//	[Info]
//	-----------------------------------------------------------------
//	Developer: Ronnie Schaaf
//	Needs: jQuery
//	Needs: jquery.timers.js
//	Needs: jquery.animation.easing.js


//	[HOTBOX] Vars
//	-----------------------------------------------------------------
		var slideshowXML,
				slideshowContainer,
				slideshowXMLLength,
				slideshowXMLFile,
				slideshowUndefined,
				slideshowCounter = 0,
				slideshowPreviousItemTemp,
				slideshowInterval,
				slideshowStatus,
				slideshowStop,
				slideshowNavActivity = false,
				slideshowShowPagination = false;


//	[HOTBOX] Load XML
//	-----------------------------------------------------------------
		function slideshowLoadXML( slideshowXMLFile ) {
			//var theXML = ( slideshowXMLFile == "undefined" || !slideshowXMLFile ) ? "xml/slideshow-home.xml" : slideshowXMLFile;
			var theXML = slideshowXMLFile;
			
			$.ajax({
        type: "GET",
/* 				url: "xml/slider.xml", */
				url: theXML,
				dataType: "xml",
				success: function(xml) {
					slideshowXML = xml;
					slideshowXMLLength = $(slideshowXML).find('item').length;
					slideshowCollectItemInfo();

					if(slideshowShowPagination == true) {
						slideshowPagination();
					}
				}
			});

		};


//	[HOTBOX] Collect XML Info for item
//	-----------------------------------------------------------------
		function slideshowCollectItemInfo() {

			slideshowStatus = "busy";

			var xmlItem 	= $(slideshowXML).find('item:eq(' + slideshowCounter + ')');
			var sTitle		=	$(xmlItem).find('title').text();
			var sPath 		=	$(xmlItem).find('path').text();
			var sFileName =	$(xmlItem).find('filename').text();
			var sInterval =	$(xmlItem).find('interval').text();

			slideshowInterval = parseInt(sInterval);
			slideshowPlaceItem(sTitle, sPath, sFileName);
		};


//	[HOTBOX] Place item on stage
//	-----------------------------------------------------------------
		function slideshowPlaceItem(sTitle, sPath, sFileName) {

			var itemName 	= "slideshow" + slideshowCounter;
			var itemStyle = "top: 0px; left: 0px; opacity: 0;";
			var item = ' \
				<div class="slideshow-item" id="'+itemName+'" style="'+ itemStyle +'"></div> \
			';

			$(slideshowContainer+' .slideshow').append( item );
			$("#"+itemName).load(sPath+sFileName);
		};


//	[HOTBOX] Transition
//	-----------------------------------------------------------------
		function slideshowTransitionItem() {
			var easeType	= "expoEaseOut";
			var aniTime		= 1000;

			$("#slideshow"+slideshowCounter).animate({opacity:1}, aniTime, easeType, slideshowDeleteItem);
		}


//	[HOTBOX] Delete item
//	-----------------------------------------------------------------
		function slideshowDeleteItem() {

			$(slideshowPreviousItemTemp).remove();
			slideshowPreviousItemTemp = "#slideshow"+slideshowCounter;

			if(!slideshowNavActivity == true) {
				slideshowSetInterval(slideshowInterval);
			}

			if(slideshowShowPagination == true) {
				slideshowPaginationHighlight();
			}

			slideshowStatus = "idle"
		};


//	[HOTBOX] Set interval
//	-----------------------------------------------------------------
		function slideshowSetInterval(time) {
			$(slideshowContainer+' .slideshow').everyTime(time, "int", function() {

    			slideshowCheckStatus("next");
  		});
		};


//	[HOTBOX] Clear interval
//	-----------------------------------------------------------------
		function slideshowClearInterval() {
			$(slideshowContainer+' .slideshow').stopTime("int");
		};


//	[HOTBOX] Check status
//	-----------------------------------------------------------------
		function slideshowCheckStatus(page) {

			if(slideshowStatus == "busy") {
				//alert("slideshow is busy.. chill dude!")
			}else if(slideshowStatus == "idle") {
				//	Check if page is not temp page
				if(page == slideshowCounter) {
					//alert("this is already the same item")
				}else{
					slideshowControl(page);
				}
			}
		}


//	[HOTBOX] Controler
//	-----------------------------------------------------------------
		function slideshowControl(page) {

			slideshowClearInterval();

			if(page == "next") {
				if(slideshowCounter == (slideshowXMLLength-1)) {
					slideshowCounter = 0;
				}else{
					slideshowCounter++;
				}

			}else if (page == "previous") {
				if(slideshowCounter == 0) {
					slideshowCounter = slideshowXMLLength-1;
				}else{
					slideshowCounter--;
				}

			}else{
				slideshowCounter = parseInt(page);
			}

			slideshowCollectItemInfo();
		};


//	[HOTBOX] Create pagination
//	-----------------------------------------------------------------
		function slideshowPagination() {

			var list = $('<ul>');

			$(slideshowXML).find('item').each(function(index){
				list.append(
					'<li><a href="javascript:;" id="slideshow-pagination-link-'+index+'" onclick="slideshowNumberItem('+index+')">'+index+'</a></li>'
				);
			});

			$(slideshowContainer+' .slideshow-pagination').append(list);
		}


//	[HOTBOX] Highlight
//	-----------------------------------------------------------------
		function slideshowPaginationHighlight() {

			$(slideshowXML).find('item').each(function(index){
				$("#slideshow-pagination-link-"+index+"").removeClass("active");
			});
			$("#slideshow-pagination-link-"+slideshowCounter+"").addClass("active");

		}


//	[HOTBOX] Control Next slide
//	-----------------------------------------------------------------		
		function slideshowNextItem() {
			slideshowNavActivity = true;
			slideshowCheckStatus("next");
		}


//	[HOTBOX] Control Previous slide
//	-----------------------------------------------------------------		
		function slideshowPreviousItem() {
			slideshowNavActivity = true;
			slideshowCheckStatus("previous");
		}


//	[HOTBOX] Control Slides Start Position
//	-----------------------------------------------------------------		
		function slideshowNumberItem(page) {
			slideshowNavActivity = true;
			slideshowCheckStatus(page);
		}


//	[HOTBOX] Close & End Slideshow
//	-----------------------------------------------------------------		
		function slideshowReset() {
			
			slideshowClearInterval();
			slideshowNavActivity = false,
			slideshowCounter = 0,
			slideshowStatus = "idle",
			slideshowPreviousItemTemp = slideshowUndefined;
			slideshowReseting = true;

			$(slideshowContainer+ ' .slideshow').empty();
			$(slideshowContainer+ ' .slideshow-pagination').empty();
		}


//	[HOTBOX - Init]
//	Arg = Show pagination, XML file
//	-----------------------------------------------------------------		
		function initSlideshow(container,pagination, xml){
			slideshowContainer = container;
			slideshowShowPagination = pagination;
			slideshowNavActivity = false;
			slideshowXMLFile = xml;
			slideshowLoadXML(slideshowXMLFile);
		}
