/*-----------------------------------------------------------*/
/*---------Slide Controls------------------------------------*/

function pushCheckSlide(){
	
	if(!is.ns4){
		var d = new Date();
		
		if(!(loopCount%6))		
			getObjectRef("imFlag").src = flagImageURL + "&unique=" + d.getTime();
			

		if(forcedSlideControl && realtimeSlide != getObjectRef("imFlag").width){
			realtimeSlide = getObjectRef("imFlag").width;
			
			if(pushDelay&&currentPlayer != 'none'){
				if(doneFirstPush){
					writeDebug("Going to push slide #" + realtimeSlide + " in " + pushDelayTime + " seconds");
					setTimeout("setSlide("+realtimeSlide+");",1000*pushDelayTime);
				}else{
					writeDebug("First slide seen, so changing slide now to: " + realtimeSlide);
					doneFirstPush = true;
					setSlide(realtimeSlide);
				}

			} else {
				writeDebug("No Delay, pushing slide to: " + realtimeSlide);
				setSlide(realtimeSlide);
			
			}
			
		}
		
		if(getObjectRef("imFlag").height != curHeight){
			writeDebug('found new height ' + getObjectRef("imFlag").height);
			curHeight = getObjectRef("imFlag").height;
			getObjectRef('lyGetCustom').src = execPageURL + "?unique=" + d.getTime();
			writeDebug(execPageURL);
		}		

	} else {
		var d = new Date();
		
		if(!(loopCount%6))
			getObjectRef("lyFlag").load(flagPageURL+"?unique=" + d.getTime(),100);

		if(getObjectRef("lyFlag") != null && getObjectRef("lyFlag").document.forms != null && getObjectRef("lyFlag").document.forms[0] != null && getObjectRef("lyFlag").document.forms[0].elements != null && getObjectRef("lyFlag").document.forms[0].elements[1] != null){
			//if(getObjectRef("imSlide").src !=  "http://development1" + slideDir + "s" + getObjectRef("lyFlag").document.forms[0].elements[0].value + ".jpg"){
			//writeDebug(getObjectRef("lyFlag").document.forms[0].elements[1].value + " " + slide);
			if(forcedSlideControl && realtimeSlide != getObjectRef("lyFlag").document.forms[0].elements[1].value){
				//writeDebug("Out of synch, pushing new slide: " + getObjectRef('lyFlag').document.forms[0].elements[1].value);
				realtimeSlide = getObjectRef("lyFlag").document.forms[0].elements[1].value;
				if(pushDelay&&currentPlayer != 'none'){
					if(doneFirstPush){
						writeDebug("Going to push slide #" + realtimeSlide + " in " + pushDelayTime + " seconds");
						setTimeout("setSlide("+realtimeSlide+");",1000*pushDelayTime);
					}else{
						writeDebug("First slide seen, so changing slide now to: " + realtimeSlide);
						doneFirstPush = true;
						setSlide(realtimeSlide);
					}

				} else {
					writeDebug("No Delay, pushing slide to: " + realtimeSlide);
					setSlide(realtimeSlide);
				
				}
			}
			
			if(curHeight != getObjectRef("lyFlag").document.forms[0].elements[0].value){
				curHeight = getObjectRef("lyFlag").document.forms[0].elements[0].value;
				//alert("new height " + curHeight + " running: " + getObjectRef("lyFlag").document.forms[0].elements[2].value);
			}
		}
		
		
		
		
	}
}
	
function syncCheckSlide(){
	
	var newSlideFound = false;
	
	if(!playerAbility)
		return false;
		
	//checkPlayer();
    //position = getPlayerPosition();
    //var nextposition = 0;
   // if (currentPlayer == "real" || currentPlayer == "qt") { nextposition = position / 1000; } else { nextposition = position; }
	
	if(!isPlaying() && !isBuffering() && !isFfw && !isRew)
		return;
	

	while(nextposition >= slideTimes[slide] && slide < maxSlide){
		newSlideFound = true;
     	slide = slide + 1;
	}
	
	while(nextposition < slideTimes[slide-1] && slide > 1){
		newSlideFound = true;
		slide = slide - 1;
	}
	
	if(newSlideFound){
		writeDebug("Must Change Slide");
		setSlide(slide);
	}
	
}

function getSlideURLResized(slideNum,width,height){

	writeDebug(slideDir);
	writeDebug("Getting Slide Path for slide " + slideNum + " at " + width + "x" + height + ":" + slideDir.replace("%S%",slideNum).replace("%W%",width).replace("%H%",height) );
	return slideDir.replace("%S%",slideNum).replace("%W%",width).replace("%H%",height);
}

function getSlideURL(slideNum){
	return getSlideURLResized(slideNum,initLySlide[2],initLySlide[3]);


}

function setSlide(slideNum){


	// Sets the slide, caches next slide
	writeDebug("Setting Slide: " + slideNum);
    

	getObjectRef("imSlide").src = getSlideURL(slideNum);
	
	
	slide = slideNum;
	//alert(getObjectRef('inSlideList'));
	
	setSlideList(slide);


	customInterfaceOnSlideChange();
	customOnSlideChange();

}


function slideListSetSlide(newSlide){

	getObjectRef("imSlide").src = getSlideURL(newSlide);
	slide = newSlide;
    if (slideControl == "sync") { syncAudio(); }


}

function jumpToSlide(newSlide) {
	// syncs everything to given slide (slide, dropdown, media).
	
	setSlide(newSlide);
    if (slideControl == "sync") { syncAudio(); }
	
}

function refreshSlideList(){

	writeDebug("Writing Slide List"); 

	if(listType=="plaintext"){
		writeToLayer('lySlideList','Slide Name: ' + slideTitles[0]);
		
	} else if (listType == "dropdown") {
		
		buffer = ""
		
		if(!(is.mac && is.ie) && initLySlideList[2]>0)
			buffer+="<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD width="+initLySlideList[2]+" align=center>";
		else
			buffer+="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
			
		buffer = buffer + "<form name='inSlideList' id='inSlideList' method='post'>";
		buffer = buffer + "\n<select name='inCurrentSlide'  id='inCurrentSlide'  onChange='pullDownChanged(this.selectedIndex);'>";
		
		for(i=0; i<slideTitles.length; i++)
			buffer = buffer + "\n<option value='" + i+1 + "'>" + slideTitles[i] + "</option>";
		
		buffer = buffer + "\n</select></form>";
		
		if(!(is.mac && is.ie) && initLySlideList[2]>0)
			buffer+="</TD></TR></TABLE>";
		
		writeToLayer("lySlideList",buffer);
		
	} else {
	
		writeDebug("Can't refresh the slide list!"); 
	}
	
	//writeDebug(getObjectRef("inSlideList").width);
}

function setSlideList(listNum){

	if(listType=="plaintext"){
		writeToLayer('lySlideList','Slide Name: ' + slideTitles[listNum-1]);
		writeDebug("Writing SlideList "+listNum-1); 
	} else if (listType == "dropdown") {
		getObjectRef("inSlideList").elements[0].selectedIndex = (slide-1);
		writeDebug("Setting SlideList "+getObjectRef('inSlideList').elements[0].selectedIndex); 
	} else if(listType.length){
		writeDebug("Running custom setSlideList function:  "+listType+"("+listNum+")"); 
		eval(listType+"("+listNum+")");
	} else {
		writeDebug("Can't set slide to "+listNum); 
	}

}

function centerSlide(){
	
	//initLySlide = new Array(275,15,420,-1,2,1);
	if(getObjectRef('imSlide').width > 100 && getObjectRef('imSlide').height > 100){
		var newSlideLeft = (initLySlide[2] - getObjectRef('imSlide').width)/2 + initLySlide[0];
		var newSlideTop = (initLySlide[3] - getObjectRef('imSlide').height)/2 + initLySlide[1];
		writeDebug(initLySlide[3]+ " " + getObjectRef('imSlide').height+ " " + initLySlide[1]);
		writeDebug("Centering slide to : " + newSlideLeft + "," + newSlideTop);
		
		
		setLayerLeft('lySlide',newSlideLeft);
		setLayerTop('lySlide',newSlideTop);
		
		setLayerVisible('lySlide');
	} else {
	
		setTimeout("centerSlide()",1000);
	
	
	}
	//LayerTop = (Config Height - Slide Height / 2) + Config To;
	//LayerLeft =  (Condfig Width - Slide Width / 2) + Config Left

}

