Event.observe(window, 'load', init, false);

function init() {
	$('text').innerHTML = "";
	loadPage( 'weather', 'weather', function() {
			var fs = new SWFObject("http://weather.lukkien.com/weather.swf", "weatherSwf", "190", "180", "7", "#ffffff");
			fs.addParam("wmode", "transparent");
			fs.write("weatherSwf");
		}
	);
	
	loadRadar();
	var pageRequest = new Ajax.Request( 'lang.php?return=currentPage', { method: 'get', onComplete: function( response ) { 
		loadPage( 'text', response.responseText );
	} } );
	loadWebcam();
	startTime();
}

function loadRadar() {
	loadPage( 'radar', 'radar', function() {
			var langRequest = new Ajax.Request( 'lang.php?return=language', { method: 'get', onComplete: function( response ) { 
				var fs = new SWFObject("swf/radar/_radar_" + response.responseText + ".swf", "radarSwf", "220", "220", "7", "#ffffff");
				fs.addParam("wmode", "transparent");
				fs.write("radarSwf");
			} } );
		}
	);
}

function setLanguage( sLang ) {
	var url = 'lang.php';
	var pars = 'language=' + sLang;
		
	var langRequest = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: function() {
		var pageRequest = new Ajax.Request( 'lang.php?return=currentPage', { method: 'get', onComplete: function( response ) { 
			loadPage( 'text', response.responseText );
			loadRadar();
		} } );
	}}); 
}

function fillAlbum( start ) {
	var langRequest = new Ajax.Request( 'lang.php?return=language', { method: 'get', onComplete: function( response ) { 
		startAlbum( start, response.responseText );
	} } );
}

function loadAlbum( page ) {
	var xmlHttp = new Ajax.Updater( 'albumContent', 'foto.php?page=' + page );
}

function loadWebcam() {
	loadPage( 'webcam', 'webcamSmall', function() {
		$('webcam').style.cursor = "pointer";
		Event.observe($('webcam'), 'click', function() {
			loadPage('text', 'webcam');
		}, false);
	});
}

function loadPage( div, page, callBack ) {
	if( aktiv ) {
		window.clearInterval( aktiv );
	}
	//alert("Loading page: " + page + " in Div: " + div );
	if( page == "stewardesses" ) {
		callBack = function() {
			var fo = new SWFObject("swf/stewardesses/stewardesses.swf", "stewardessesSwf", "350", "180", "7", "#ffffff");
			fo.addParam("wmode", "transparent");
			fo.addParam("align", "center");
			fo.write("stewardessesSwf");
			Element.show('webcam');
		}
	}
	else if( page == "movie_1") {
		callBack = function() {
			var movie = QT_WriteOBJECT_XHTML('files/Lukkien_Helihaven.mov', '320', '255', '',
				'autoplay', 'true',
				'emb#bgcolor', 'black'
			);
			$('movieContent').innerHTML = movie;
		}
	}
	else if( page == "movie_2") {
		callBack = function() {
			var movie = QT_WriteOBJECT_XHTML('files/Minister_Peijs_V2.mpg', '320', '255', '',
				'autoplay', 'true',
				'emb#bgcolor', 'black'
			);
			$('movieContent').innerHTML = movie;
		}
	}
	else if( page == "fotoAlbum" ) {
		callBack = function() {
			loadAlbum(1);
		}
	}
	else if ( page == "webcam" ) {
		callBack = function() {
			Event.observe($('webcamClick'), 'click', function() {
				popup(640, 480, 'webcam.html', 'webcamPopup' );return false;
			}, false);
			
			var webcamSmall = new Ajax.Updater( $('webcamContent'), 'webcamsmall.html', { onComplete: 
				function() { 
					setframerate(); 
				}
			});
			
			/*
			var so = new SWFObject("swf/webcam/webcam.swf", "webcamContent", "300", "220", "7", "#ffffff");
			so.addParam("wmode", "transparent");
			so.addParam("align", "left");
			so.write("webcamContent");
			*/
		}
	}
	
	var xmlHttp = new Ajax.Updater( div, 'page.php?page=' + page, { onComplete: callBack } );
}

function shopPopup( lang ) {  
	var screenWidth = screen.width;
	var screenHeight = screen.height;

	var popupLeft = ( screenWidth / 2 ) - 200;
	var popupTop = ( screenHeight / 2 ) - 150;

	var myWindow = window.open('swf/mail/shop.php','shop',"toolbar=0,scrollbars=0,location=0,status=0,menubar=0,width=400,height=300,left=" + popupLeft + ",top=" + popupTop );
	myWindow.focus();
}

function openWeatherStation() {
	var screenWidth = screen.width;
	var screenHeight = screen.height;

	var popupLeft = ( screenWidth / 2 ) - 479;
	var popupTop = ( screenHeight / 2 ) - 295;

	var myWindow = window.open('http://weather.lukkien.com/Loader.swf?bgcolor=#FFFFFF','shop',"toolbar=0,scrollbars=0,location=0,status=0,menubar=0,width=955,height=590,left=" + popupLeft + ",top=" + popupTop );
	myWindow.focus();
}

function buildAlbum( start, lang ) {
	var begin = start;
	var end = 15;
	var perPage = 9;
	var rows = 3;
	var perRow = perPage / rows;
	var output;
	
	if( lang == "en" ) {
		var nextText = "next";
		var previousText = "previous";
	}
	else {
		var nextText = "volgende";
		var previousText = "vorige";
	}
	
	output = "\n<table cellpadding='0' cellspacing='0'>\n\t<tbody>\n\t\t<tr>\n"
	for( var i = start; i <= perPage+start-1; i++ ) {
		if( i <= end ) {
			output += "\t\t\t<td class='albumImage' style='width:80px;padding:10px;'><a href='javascript:popupFoto(" + i + ");'><img class='albumImage' width='100%' height='100%' src='swf/album/small/" + i + ".jpg'></a></td>\n";
			if( i % perRow == 0 ) {
				output += "\t\t</tr>\n\t\t<tr>\n";
			}
		}
	}
	output += "\t\t</tr>\n\t</tbody>\n</table>\n";
	
	if( begin > 1 ) {
		output += "<a style='float:left' href='javascript:fillAlbum(" + parseInt(begin - perPage) + ");'><< " + previousText + "</a> "
	}
	if( begin < end ) {
		var next = parseInt(begin + perPage );
		if( end > next ) {
			output += " <a style='float:right' href='javascript:fillAlbum(" + next + ");'>" + nextText + " >></a>"
		}
	}
	
	return output;
}

function startAlbum( start, lang ) {
	document.getElementById('albumContent').innerHTML = buildAlbum( start, lang );
}

function popupFoto(id, portrait ) {
	var screenWidth = screen.width;
	var screenHeight = screen.height;
	
	if( portrait == 'ja' ) {
		var popupLeft = ( screenWidth / 2 ) - 188;
		var popupTop = ( screenHeight / 2 ) - 250;
		var width = 375;
		var height = 500;
	}
	else {
		var popupLeft = ( screenWidth / 2 ) - 345;
		var popupTop = ( screenHeight / 2 ) - 259;
		var width = 690;
		var height = 518
	}

	var myWindow = window.open('fotoPopup.php?id=' + id,'shop',"toolbar=0,scrollbars=0,location=0,status=0,menubar=0,width=" + width + ",height=" + height + ",left=" + popupLeft + ",top=" + popupTop );
	myWindow.focus();
}

function startTime() {
	var today=new Date();
	var h=today.getHours()-1;
	var m=today.getMinutes();
	var s=today.getSeconds();
	
	// add a zero in front of numbers<10
	m = checkTime( m );
	s=checkTime(s);
	$('time').innerHTML=h+":"+m+":"+s;
	t = setTimeout('startTime()',500);
}

function checkTime(i) {
	if (i<10) {
		i="0" + i;
	}
	return i;
}

function setHash( hash ) {
	document.location.hash = hash;
}

function checkLocation() {
	
	window.location.hash = $('currentLocation').value;
	
	setTimeout( function() {
		checkLocation();
	},250);
}

function hashTest() {
	setTimeout( function() {
		setHash('een');
		setTimeout( function() {
			setHash('twee');
			setTimeout( function() {
				setHash('drie');
			},1000);
		}, 1000);
	},1000);
}

/* WEBCAM JAVASCRIPT */
var pic_url="http://213.154.235.158/record/current.jpg";
var noframepath="http://213.154.235.158/decor/m1m-error.jpg";
var n=Math.floor(Math.random()*1000000);
var session_id=Math.floor(Math.random()*1000000);
var startn=n;
var GetItOn=1;
var recordmult=1;
var framestep=recordmult*12;
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);

function refreshMethod(new_value) {
	if (refreshmethods_type[new_value]!=refreshmethods_type[current_refresh_method_nr]) {
		var url=location.href.split("?");
		location.href=url[0]+"?REFRESHMETHOD="+new_value;
	} 
	else {
		current_refresh_method_nr=new_value;
		setframerate();
	}
}

function DoComplete() {
	//debugmsg("DoComplete() buffer.src="+buffer.src);
	/*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 && framestep>0) {// Sync onload implementieren
		if (passiv==null)
			Animation();
		else 
		// Moz. ruft manchmal LoadError und DoComplete kurz hintereinander auf
		debugmsg("timer for Animation() already started...");
	}
}
function LoadError() {
	debugmsg("LoadError:#"+(n-1)+"  db:"+db_enabled);
	if (db_enabled != 0) {
		db_enabled*=-1;			
	} 
	else {
		document.CamPic.src=noframepath;
	}
	GetItOn = 1;
	if (current_refresh_method_nr == 1 && framestep>0) // Sync onload Fehlerbehandlung
		passiv=setTimeout("passiv=null;Animation();",1000);
}

function setframerate() {
	
	recordmult=window.document.dkdk.recordmult.options[window.document.dkdk.recordmult.selectedIndex].value;
	framestep=Math.round(recordmult*12);
	debugmsg("setframerate: aktiv="+aktiv+" rm="+current_refresh_method_nr+" mult:"+recordmult+" fs="+framestep);
	if (aktiv) {
		window.clearInterval(aktiv);
		aktiv = null;
	}
	document.CamPic.onerror=null;
	buffer.onerror=null;
	if (recordmult<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("setframerate();",500) } ;
		document.CamPic.src = "/cgi-bin/faststream.jpg?framestep="+framestep+"&rand=" + String(n++);
		return;
	} 
	else if (current_refresh_method_nr == 1) { // OnLoad synced
		session_id++;
		Animation();
		return;
	}
	aktiv=window.setInterval("Animation()",1000*recordmult);
	GetItOn=1;	// auf alle Faelle anzeigen!
	Animation(); // und go...
}
function Animation() {
	var my_rm_nr=current_refresh_method_nr;
	var my_fr_step=framestep;
	var my_session=session_id;

	if (GetItOn == 1 || (my_rm_nr == 1 && my_fr_step>0))
	// Bild ist geladen und das naechste kann 
	{	// angefordert werden.
		GetItOn = 0;
		//debugmsg("Animate:#"+n+" aktiv="+aktiv+" db:"+db_enabled);
		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_step+"&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_step+"&session="+my_session+"&rand="+String(n++);
		}
	}
}
function animation_init() {
	if ( document.all && (navigator.platform.substr(0,3) != "Mac") ) {
		document.CamPic.insertAdjacentHTML("AfterEnd","<img border=0 style=\"display:none;\" name=dbbuffer></b>");
		buffer=document.dbbuffer;
		db_enabled=1;
	}
	setframerate();
}
