	var pic_url="";
	var noframepath="";
	var n=Math.floor(Math.random()*1000000);
	var session_id=Math.floor(Math.random()*1000000);
	var startn=n;
	var GetItOn=1;
	var framerate=2;//X fps
	var buffer= new Image();
	var aktiv=null;
	var db_enabled=0;
	var passiv=null;
	var current_refresh_method_nr=0;
  var refreshmethods_type=new Array(0,0,0,1,2);
	
	//FUNCION DE INICIALIZACION
	function iniParams(serverPath)
	{
		pic_url="http://" + serverPath + "/record/current.jpg";
	}
	
	
	function openExtNoDeko(path,winname) {
		if ( path.search(/^!/) >= 0 ) {
			path=path.replace(/^!/,"");
			path=path+"?cachedummy="+Math.floor(Math.random()*1000000);
		}
		return window.open(path,winname,"scrollbars=yes,resizable=yes,width=722,height=700");
	}
			
  	function DoComplete()
  	{
		if (db_enabled != 0) {
			if (db_enabled<0) {
				//document.CamPic.style.filter="";buffer.style.filter="alpha(opacity=70,style=0)";
				document.CamPic.style.display="";
				buffer.style.display="none";
			} else {
				//document.CamPic.style.filter="alpha(opacity=70,style=0)";buffer.style.filter="";
				buffer.style.display="";
				document.CamPic.style.display="none";
			}
			db_enabled*=-1;
		} else {
	  	document.CamPic.src = buffer.src;
		}
 		GetItOn = 1;
		if (current_refresh_method_nr == 1 && framerate>0) {// Sync onload implementieren
			if (passiv==null)
				Animation();
			//else
				// Moz. ruft manchmal LoadError und DoComplete kurz hintereinander auf
		}
  	}
  
	function LoadError()
	{
		if (db_enabled != 0) {
			db_enabled*=-1;
		} else {
			document.CamPic.src=noframepath;
		}
		GetItOn = 1;
		if (current_refresh_method_nr == 1 && framerate>0) // Sync onload Fehlerbehandlung
			passiv=setTimeout("passiv=null;Animation();",1000);
	}

	function onframeratechange() {
		//framerate=getframerate();
 		if (aktiv) {
			window.clearInterval(aktiv);
			aktiv = null;
		}
		document.CamPic.onerror=null;
		buffer.onerror=null;
		if (framerate<0) {
			if (current_refresh_method_nr == 2) { //  Stream ausschalten
				GetItOn=1; Animation();
			}
			return;
		}
		// Refresh Typen
		if (current_refresh_method_nr == 2) { //  Stream anschalten
			buffer.onload = null;
			buffer.onerror= null;
			document.CamPic.onload=null;
			// wg. Mozilla Bug # 42224 "Spontaner Abbruch des Streams"
			document.CamPic.onerror= function () {setTimeout("onframeratechange();",500) } ;
			document.CamPic.src = "/cgi-bin/faststream.jpg?stream=full&fps="+framerate+"&rand=" + String(n++);
			return;
		} else if (current_refresh_method_nr == 1) { // OnLoad synced
			session_id++;
			Animation();
			return;
		}
		aktiv=window.setInterval("Animation()",1000/framerate);
		GetItOn=1;	// auf alle Faelle anzeigen!
		Animation(); // und go...
	}
	function Animation()
  	{
		var my_rm_nr=current_refresh_method_nr;
		var my_fr=framerate;
		var my_session=session_id;

		if (GetItOn == 1 || (my_rm_nr == 1 && my_fr>0))
		 	// Bild ist geladen und das naechste kann
	  	{	// angefordert werden.
			GetItOn = 0;
			if (db_enabled<0) {
				buffer.onerror=buffer.onload=null;
				document.CamPic.onerror= LoadError;
				document.CamPic.onload = DoComplete;
				if (my_rm_nr == 0)
					document.CamPic.src = pic_url + "?rand=" + String(n++);
				else
					document.CamPic.src = pic_url + "?sync="+my_fr+"&session="+my_session+"&rand="+String(n++);
			} else {
				document.CamPic.onerror=document.CamPic.onload=null
				buffer.onerror= LoadError;
				buffer.onload = DoComplete;
				if (my_rm_nr == 0)
					buffer.src = pic_url + "?rand=" + String(n++);
				else
					buffer.src = pic_url + "?sync="+my_fr+"&session="+my_session+"&rand="+String(n++);
			}
		}
  	}
  
  	function animation_init(pserverPath) {
		iniParams(pserverPath);
		if ( document.all
				&& (navigator.platform.substr(0,3) != "Mac")
				&& (document.CamPic.inserAdjacentHTML)
				 ) {
			document.CamPic.insertAdjacentHTML("AfterEnd","<img border=0 style=\"display:none;\" name=dbbuffer><\/b>");
			buffer=document.dbbuffer;
			db_enabled=1;
		}
		onframeratechange();
	}

	function switchRefreshMethod(new_value,fps) {
		if (refreshmethods_type[new_value]!=refreshmethods_type[current_refresh_method_nr]) {
			var urlparts = location.href.split("?");
			var url = urlparts[0]+"?REFRESHMETHOD="+new_value;
			if (typeof fps != "undefined" && fps > 0)
				url += "&REFRESHRATE=" + fps;
			location.href = url;
		} else {
			current_refresh_method_nr=new_value;
			if (typeof fps != "undefined" && fps > 0)
				return true;
			onframeratechange();
		}
	}
	function reloadPage(new_fps) {
		var urlparts = location.href.split("?");
		var url = urlparts[0]+"?REFRESHMETHOD="+current_refresh_method_nr;
		if (typeof new_fps != "undefined" && new_fps > 0)
			url += "&REFRESHRATE=" + new_fps;
		location.href = url;
	}
	
	function can_switch_to_activex() {
		return 1;
	}
		
	function switch_to_activex(fps) {
		switchRefreshMethod(4,fps);
	}
		