//ROTATOR
function Rotator(mainDivName,imageZone){
	var previousImage = 0;
	var nextImage = 0;
	var imageCount = 0;
	var myFx = new Fx.Tween($(mainDivName+"-title"));
	var myFxFrame = new Fx.Tween($(mainDivName));
	window.addEvent('domready', initRotator);
	
	function initRotator(){
		var requestItems = new Request({method: 'get', url: 'image-zone-items.php?z='+imageZone});
		requestItems.send();
		requestItems.addEvent('success', setupRotate);
		 $(mainDivName+"-title-headline").addEvent('click',handleClick);
		 $(mainDivName+"-title-description").addEvent('click',handleClick);
		 $(mainDivName+"-player-overlay-close").addEvent('click',closeVideo);
		 $(mainDivName+"-player-overlay-more").addEvent('click',goToMessagePage);
		 $(mainDivName+"-back").addEvent('click',goBack);
		 $(mainDivName+"-forward").addEvent('click',goForward);
		 $(mainDivName+"-player").fade("hide");
		 //$(mainDivName+"-title").fade("hide");
		 $(mainDivName+"-title").origTop = 311;
		 $(mainDivName+"-title").setStyle("top", ($(mainDivName+"-title").origTop + 65)+'px');
		 $(mainDivName+"-player-overlay").fade('hide');
		 $(mainDivName+'-playbutton').fade("hide")
		 $(mainDivName+"-playbutton").addEvent('click',handleClick);
		 
		 
	}
	function getValue(object, key){
		if(object.getElementsByTagName(key)[0].childNodes[0] != null){
			return thisItem.getElementsByTagName(key)[0].childNodes[0].nodeValue;
		} else {
			return " ";
		}
	}
	function setupRotate(responseText, responseXML){
		
		items = responseXML.getElementsByTagName("item");
		for(i=0; i<items.length; ++i){
			thisItem = items[i];
			
			//extract data from xml
			thisImage = getValue(thisItem,'image');
			thisTitle = getValue(thisItem,'title');;
			thisDescription = getValue(thisItem,'description');;
			thisLinkType = getValue(thisItem,'linktype');;
			thisLink = getValue(thisItem,'link');
			if(thisLink == " "){thisLink = null;}
			thisMessageID = getValue(thisItem,'messageid'); 
			thisMessageName = getValue(thisItem,'messagename');
			thisSeriesName = getValue(thisItem,'seriesname');
			thisMessageM4V = getValue(thisItem,'messagem4v');
			
			//Each image in the rotator needs to have code like this...
			var newImage = document.createElement("img");
			newImage.id = mainDivName + '-item'+i+'-image';
			newImage.src = '/dimages/900/375/'+thisImage;		
				
			var newItemDiv = document.createElement("div");
			newItemDiv.id = mainDivName + '-item'+i;
			newItemDiv.className = mainDivName + '-item';
			newItemDiv.appendChild(newImage);
			
			//Pass data from XML into the item div object as properties
			newItemDiv.thisTitle = thisTitle;
			newItemDiv.thisDescription = thisDescription;
			newItemDiv.thisLink = thisLink;
			newItemDiv.thisLinkType = thisLinkType;
			newItemDiv.thisMessageID = thisMessageID;
			newItemDiv.thisMessageName = thisMessageName;
			newItemDiv.thisSeriesName = thisSeriesName;
			newItemDiv.thisMessageM4V = thisMessageM4V;
			
			if(thisLink != null){
				linkarr = thisLink.split('.');
				ext = linkarr[linkarr.length-1];
				if(ext=='m4v'||ext=='mp4'||ext=='flv'){
					newItemDiv.thisMessageID = "X";
					newItemDiv.thisMessageName = thisTitle;
					newItemDiv.thisMessageM4V = thisLink;
					newItemDiv.thisLink = null;
				}
			}
			newItemDiv.thisImage = thisImage;
			
			$(mainDivName).appendChild(newItemDiv);
			$(mainDivName+'-item'+i).set('opacity',0);
			$(mainDivName+'-item'+i+"-image").addEvent('click',handleClick);
			if(thisLink != null){$(mainDivName+'-item'+i+"-image").setStyle('cursor','pointer');}
			
			/*var newBoxDiv = document.createElement("div");
			newBoxDiv.id = mainDivName+'-box'+i;
			newBoxDiv.className = 'rotator-boxes rotator-box-off';
			$(mainDivName+'-boxes').appendChild(newBoxDiv);
			$(mainDivName+'-box'+i).addEvent('click', boxclick.pass(i));*/
		}
		imageCount = items.length;
		
		doRotate();
		
	}
	function goBack(){
		//go to the previous image
		x = previousImage - 1;
		if(x < 0){x = imageCount-1;}
		boxclick(x);
	}
	function goForward(){
		//go to the next image
		boxclick(nextImage);
	}
	function boxclick(whichbox){
		
		if(playerActive == true){
			//destroy video box, if active
			playerActive = false;
			var fadeOutVideo = new Fx.Tween(mainDivName+"-player")
			fadeOutVideo.start('opacity',0);
			fadeOutVideo.addEvent('complete',function(){$(mainDivName+"-player").empty(); $(mainDivName+"-player").setStyle("display","none");});
		}
		
		nextImage = whichbox;
		$clear(rotateTimer);
		doRotate();
	}
	
	var rotateTimer = 0;
	var CurrentLink = null;
	var CurrentLinkType = null;
	function doRotate(){
		$clear(rotateTimer);
		if($(mainDivName+'-item'+nextImage+'-image').complete == true && playerActive == false){
			//transition to the next image
			if(previousImage != nextImage){	
				$(mainDivName + '-item'+previousImage).tween('opacity',0);
				//$(mainDivName+'-box'+previousImage).removeClass('rotator-box-on');
				//$(mainDivName+'-box'+previousImage).addClass('rotator-box-off');
			} else {
				//first time, Insert handlers for mouse enter and leave
				$(mainDivName).addEvent('mouseover',handleMouseOver);
				$(mainDivName).addEvent('mouseout',handleMouseOut);
			}
			$(mainDivName+'-item'+nextImage).tween('opacity',1);
			//$(mainDivName+'-box'+nextImage).removeClass('rotator-box-off');
			//$(mainDivName+'-box'+nextImage).addClass('rotator-box-on');
			
			//Bring title & description into textbox, in case it's needed
			$(mainDivName+'-title-headline').innerHTML = $(mainDivName + '-item'+nextImage).thisTitle;
			CurrentLink = $(mainDivName + '-item'+nextImage).thisLink;
			CurrentLinkType = $(mainDivName + '-item'+nextImage).thisLinkType;
			
			//decide whether to show play button
			if($(mainDivName + '-item'+nextImage).thisMessageID != " " && $(mainDivName).MouseOn == true && $(mainDivName + '-item'+nextImage).thisMessageM4V != " "){$(mainDivName + '-playbutton').fade("in");} else {$(mainDivName + '-playbutton').fade("out");}

			
			$(mainDivName+'-title-description').innerHTML = $('home-rotator-item'+nextImage).thisDescription;
			//$('rotator-description').thisLink = $('home-rotator-item'+nextImage).thisLink;
			//if($('rotator-description').thisLink!=""){$('home-rotator').setStyle('cursor','pointer');}
						
			//go to the next image
			previousImage = nextImage;
			++nextImage;
			if(nextImage >= imageCount){nextImage = 0;}
			rotateTimer = doRotate.delay(5000);
		} else {
			rotateTimer =doRotate.delay(100);
		}
	
	}
	
	$(mainDivName).MouseOn = false;
	function handleMouseOver(){
		$(mainDivName).MouseOn = true;
		$clear(rotateTimer);
		//$(mainDivName+"-title").fade("in");
		myFx.cancel();
		myFx.start('top',$(mainDivName+"-title").origTop+'px');
		
		if(playerActive == true){
			//pop-in top info bar
			$(mainDivName+"-player-overlay").fade('in');
		}
		//decide whether or not to show play button
		if($(mainDivName + '-item'+previousImage).thisMessageID != " " && $(mainDivName + '-item'+previousImage).thisMessageM4V != " "){$(mainDivName + '-playbutton').fade("in");} else {$(mainDivName + '-playbutton').fade("out");}
		
	}
	function handleMouseOut(){
		$(mainDivName).MouseOn = false;
		$clear(rotateTimer);
		rotateTimer = doRotate.delay(5000);
		//$(mainDivName+"-title").fade("out");
		myFx.cancel();
		myFx.start('top',($(mainDivName+"-title").origTop + 65)+'px');
		
		if(playerActive == true){
			//pop-out top info bar
			$(mainDivName+"-player-overlay").fade('out');
			$(mainDivName+"-playbutton").fade('out');
		}
		//hide play button
		$(mainDivName + '-playbutton').fade("out");
	}
	var playerActive = false;
	function handleClick(){
		ActiveItem = $(mainDivName + '-item'+previousImage);
		if(CurrentLink != null){
			if(CurrentLink.substring(0,7)=='http://'){
				window.open(CurrentLink);
			} else {
				window.location.href = (CurrentLink);
			}
		}
		if(ActiveItem.thisMessageID != " " && ActiveItem.thisMessageM4V != " "){
			playerActive = true;
			if(ActiveItem.thisSeriesName != " " && ActiveItem.thisMessageName != " "){
				$(mainDivName+"-player-overlay-title").innerHTML = ActiveItem.thisSeriesName.toUpperCase()+' / '+ActiveItem.thisMessageName.toUpperCase();
			} else {
				if(ActiveItem.thisMessageName != " "){
					$(mainDivName+"-player-overlay-title").innerHTML = ActiveItem.thisMessageName.toUpperCase();
				} else {
					$(mainDivName+"-player-overlay-title").innerHTML = "";
				}
			}
			$(mainDivName+"-player-overlay").fade('in');
			myFxFrame.cancel();
			myFxFrame.start('height','500px');
			Extension = ActiveItem.thisMessageM4V.split(".");
			Extension = Extension[1];
			if(Browser.Plugins.Flash.version > 0){
				//user has flash, use flowplayer
				flowplayer("home-rotator-player", {src: '/flowplayer-3.2.4.swf', wmode: 'opaque'}, { 
					canvas: {
						backgroundGradient: 'none',
						backgroundColor: '#000000'
					},
					clip: {  
						url: "/av/"+ActiveItem.thisMessageM4V,   
						autoPlay: true
					}, 
					// streaming plugins are configured under the plugins node  
					plugins: { 
						controls: {
							autoHide: 'always',
							backgroundGradient: 'none',
							backgroundColor: '#000000'
						},
						lighttpd: {
							url: '/flowplayer.pseudostreaming-3.2.4.swf',
							rangeRequests: true
						}
					},
					onBeforeFinish: function(){
						//var fadeOutVideo = new Fx.Tween(mainDivName+"-player")
						//fadeOutVideo.start('opacity',0);
						//fadeOutVideo.addEvent('complete',function(){
						  closeVideo();
						  
						  //pop-out top info bar
						  
						//});
						return false;
					}
				});
			} else {
				//no flash, just give user the video file
				$(mainDivName+"-player").innerHTML = '<video width="100%" height="100%" controls="true" src="/av/' + ActiveItem.thisMessageM4V + '"><a href="/av/' + ActiveItem.thisMessageM4V + '"><img src=/dimages/900/500/"'+ActiveItem.thisImage+'" /></a></video>';
			}
			$(mainDivName+"-player").setStyle("display","block");
			$(mainDivName+"-player").fade("in");
		}
	}
	function goToMessagePage(){
		ActiveItem = $(mainDivName + '-item'+previousImage);
		if(ActiveItem.thisMessageID != " "){
			window.location.href = "/media/messages/"+ActiveItem.thisMessageID+".html";
		}
	}
	function closeVideo(){
		$(mainDivName+"-player").empty(); 
		$(mainDivName+"-player").setStyle("display","none"); 
		playerActive = false;
		myFxFrame.cancel();
		myFxFrame.start('height','375px');
		$clear(rotateTimer);
		rotateTimer = doRotate.delay(3000);
		$(mainDivName+"-player-overlay").fade('out');
							  
	}
	function handlePlayerDone(){
		playerActive = false;
		myFxFrame.cancel();
		myFxFrame.start('height','375px');
	}
}


