function indexUp() {
	index++;
	if(index>=tabHisto.length)
		index=0;
}

function startClock(){
	if(haveClock) {
		x = x-y;
		//document.frm.clock.value = x;
		timerID=setTimeout("startClock()", 1000);
		if(x==0){
			selectHisto(index);
			x=timeout;
		}
	}
}

function init() {
	index=document.getElementById('histoselect').selectedIndex;
	doScroll();
	startClock();
	autoScroll();
	registerAjaxStuff();
}

var autosens=1;
var autoscrollTimerID=null;
var autoscrollsleep=40; //40*25=1s

var autoscrollTime=30;
var autoscrollsleepCurrent=0;

function autoScroll() {
	var panoframe=window.frames['panoframe'];
	var max=panoframe.document.body.scrollWidth-panoframe.document.body.offsetWidth;

	autoscrollTimerID=setTimeout("autoScroll()", autoscrollTime);

	if(autoscrollsleepCurrent>0) {
		autoscrollsleepCurrent--;
		return;
	}
	if(sens==1) {
		if(panoframe.document.body.scrollLeft < max)
			panoframe.document.body.scrollLeft=panoframe.document.body.scrollLeft + scrollspeed;
		else {
			panoframe.document.body.scrollLeft=max;
			sens=-1;
			autoscrollsleepCurrent=autoscrollsleep;
		}
	}
	else {
		if(panoframe.document.body.scrollLeft > 0)
			panoframe.document.body.scrollLeft=panoframe.document.body.scrollLeft - scrollspeed;
		else {
			panoframe.document.body.scrollLeft=0;
			sens=1;
			autoscrollsleepCurrent=autoscrollsleep;
		}
	}
}

function doScroll(){
	var largeur=window.frames['panoframe'].document.body.offsetWidth;

	var s = 894 - (largeur / 2);

	window.frames['panoframe'].scrollBy(s,0);
}

function scrollHandler(step) {
	window.frames['panoframe'].scrollBy(-step,0);
	// panoframe.document.body.scrollLeft = panoframe.document.body.scrollLeft - step;
}


function changeHisto(sindex){
	// If the selected file name isn't blank, send it to reader.
	//	alert(fileName);
	if (index !== ""){
		document.getElementById('histoimg').src=tabHisto[sindex][0];
		document.getElementById('histoimg').style.display="block"; 
		index=sindex;
	}
	else {
		// alert(fileName);
		document.getElementById('histoimg').src=fileName;
		document.getElementById('histoimg').style.display="none";
	}
}

function selectHisto(id) {
	changeHisto(id);
	document.getElementById('histoselect').selectedIndex=id;
	indexUp();
}

function stopClock() {
	clearTimeout(timerID);
	x=timeout;
}

var scrolling;
var sens=1;
var scrollspeed=3;


function ScrollWay(D){
	stopScroll();
	
	if(D=="+"){sens=1;}
	else {sens=-1;}
	autoScroll();
}	

function stopScroll(){
	clearTimeout(autoscrollTimerID);
}

function showZoom() {
	var index = document.getElementById('histoselect').selectedIndex;
	var hz = document.getElementById('histozoom')
	var hzi = document.getElementById('histozoomimg');
	hzi.src = tabHisto[index][0];
	hz.style.display="block";
}

function hideZoom() {
	document.getElementById('histozoom').style.display="none";
}

function viewHisto() {
	var index=document.getElementById('histoselect').selectedIndex;
	var time=tabHisto[index][1];
	if(time!="") {
		ajaxEngine.sendRequest('getApplet', "id="+PVid, "type=1000", "vue="+PVvue, "time="+time, "action=ajax", "request=applet");
	}
}

function viewVideo(vue) {
	ajaxEngine.sendRequest('getApplet', "id="+PVid, "type=1000", "vue="+vue, "action=ajax", "request=applet");
	ajaxEngine.sendRequest('getHisto', "id="+PVid, "type=1000", "vue="+vue, "action=ajax", "request=histo");
	PVvue=vue;
}

///////////////////////////////
//Ajax stuff
//////////////////////////////


var histoUpdater = Class.create();
histoUpdater.prototype = {
	initialize: function() {
	},
	ajaxUpdate: function(ajaxResponse) {
		stopClock();
		if(ajaxResponse.childNodes.length < 0) {
			// pas d'histo
			document.getElementById("displayHistoSelect").style.display="none";
			document.getElementById("displayHistoText").style.display="block";
			haveClock=false;
		}
		else {
			haveClock=true;
			var selectToUpdate = document.getElementById("histoselect");
			selectToUpdate.options.length = 0;
			tabHisto = Array();
			index=0;
			for(var i=0;i<ajaxResponse.childNodes.length;i++) {
				var option = ajaxResponse.childNodes[i];
				if(ajaxResponse.childNodes[i].nodeName == "option") {
					selectToUpdate.options[selectToUpdate.options.length] = new Option(option.getAttribute("text"));
					tabHisto.push(Array(option.getAttribute("file"),option.getAttribute("date")));
				}
			}
			changeHisto(0);
			document.getElementById("displayHistoSelect").style.display="block";
			document.getElementById("displayHistoText").style.display="none";
			startClock();
		}
	}
}; 

var appletUpdater = Class.create();
appletUpdater.prototype = {
	initialize: function() {
	},

	ajaxUpdate: function(ajaxResponse) {
		var hiddenByApplet=false;
		for(var i=0;i<ajaxResponse.childNodes.length;i++) {
			var childNode = ajaxResponse.childNodes[i];
			if(childNode.nodeName=="element") {
				var eltType=childNode.getAttribute("type");

				if(eltType=="applet") {
					var txt=RicoUtil.getContentAsString(childNode);
					if(txt=="") {
						document.getElementById("applet").style.display="none";
						document.getElementById("otherformat").style.display="none";
						hiddenByApplet=true;
					}
					else {
						hiddenByApplet=false;
						document.getElementById("applet").style.display="block";
						document.getElementById("applet").innerHTML=txt;
					}
				} 
				else if(eltType=="vuetitle") {
					var title=childNode.getAttribute("text");
					document.getElementById("vuetitle").innerHTML=title;
				}
				else if(eltType=="vuedescription") {
					var description=childNode.getAttribute("text");
					document.getElementById("vuedescription").innerHTML=description;
				}
				else if(eltType=="otherformat") {
					var elt=document.getElementById("otherformat");
					var vid=childNode.getAttribute("id");
					var vtxt=childNode.getAttribute("text");
					if((vid!="")&&(vtxt!="")) {
						for(var j=0; j<elt.childNodes.length; j++) {
							if(elt.childNodes[j].nodeName == "A") {
								elt.childNodes[j].href="javascript:viewVideo("+childNode.getAttribute("id")+")";
								elt.childNodes[j].innerHTML=childNode.getAttribute("text");
								if(!hiddenByApplet)
									document.getElementById("otherformat").style.display="block";
							}
						}
					}
					else {
						document.getElementById("otherformat").style.display="none";
					}
				}
			}
		}
	}
};

function registerAjaxStuff() {
	var oHistoUpdater = new histoUpdater();
	ajaxEngine.registerRequest('getApplet',"/");
	ajaxEngine.registerRequest('getHisto',"/");
	//ajaxEngine.registerRequest('getVueTitle',"/");
	ajaxEngine.registerAjaxObject('applet', new appletUpdater());
	ajaxEngine.registerAjaxObject('histo', new histoUpdater());
	//ajaxEngine.registerAjaxElement('vuetitle');
}

