// VARIABLEN
// Dateipfade
var root = "http://www.koessen-online.com";
var imgdir = root+'/images';
var wcamdir = root+'/wcam';
var wcimgdir = wcamdir+'/mobotix/';
var bttndir = wcamdir+'/pic/buttons/';
// Bewertungssterne
var star_f = wcamdir+'/pic/icon-rating-star_f.gif';
var star_n = wcamdir+'/pic/icon-rating-star_n.gif';
var star_h = wcamdir+'/pic/icon-rating-star_h.gif';
// Array Bilder fuer FastBack and FastForward
var imgobj = new Array();
// Array fuer IsLoaded Flag
//var isLoaded = new Array();
var load_pointer = 0;
var start = 0;
// Timestamp Start Bilder loading
var loadstart = null;
// durchschnittliche Filegroesse Bild (zur Berechung der vorraus. Ladezeit)
var imgsize = 44;
// Standardwert Bildbreite
var imgwth = 640;
// Stil Archiv (0) oder Bestof (1)
var style = 0;
// Schalter fuer Sliderfunktion
var slactive = 'on';
// Slideroffset
var slxoff = 8;
// Verzoerungswert FastBack und FastForward
var fpspeed_bof = 2000;
var fpspeedmin_bof = 1000;
var fpspeedmax_bof = 5000;
var fpspeed = 250;
var fpspeed_old = fpspeed;
var fpspeedmin = 100;
var fpspeedmax = 3000;
// Aktuelles Bild
var curimg = 0;
var pointer = 0;
// Ratio Timeline/Breite
var tlr = 3.70370370;
var tlr1 = 3.75;
// Korrekturfaktor Slider
var tlcf;
// Images fuer Buttons
var offset_old = new Boolean;
// Flag - Images geladen
var loaded = 0;
var buttons_old = "1110001";
var buttons_new = "1110001";
var buttons_on = new Array('first_up.png','fback_up.png','back_up.png','next_up.png','fnext_up.png','last_up.png','refresh_up.png','loop_up.png');
var buttons_off = new Array('first_down.png','fback_down.png','back_down.png','next_down.png','fnext_down.png','lastt_down.png','refresh_down.png','loop_down.png');
// Buttons-Click blockiert
var blocked = false;
// Laeuft fast-Back oder fast-Forward?
var running = false;
// Fast-Back oder Fast-Forward mit Endlosschleife = (looping = 1)
var looping = 1;
// Loop-Begrenzer
var loopA = 0;
var loopB = 0;
// Flag fuer Load-Balken sichtbar
loadbeam = true;
// Flag fuer Loop-Point
loopflag = true;
// Zwischenspeicher fuer TITLE/ONCLICK-Sicherung
var pool = new Array;
// ID AD-Banner adv2
var adnr = 0;
// Sprachversionen
var lng = new Array('de','en','us');
// Timezone
var UTCtz = -1;
// FUNKTIONEN
// Initialisierung
function init(){
	var len = buttons_off.length;
	for(var i=0;i<len;i++){
		var img = new Image();
		img.src = bttndir+'/'+buttons_off[i];
	}
// Title - Strings sichern
	for(i = 1;i <= 7;i++){
		pool[i] = $('bon'+i).readAttribute('title');
	}
	
	if(looping){
		buttons_new = "1110101";
	}
	button_change();
// Localtime Marker
now = new Date();
var tzoffset = now.getTimezoneOffset();
if (tzoffset != UTCtz){
	get_localtime();
}
// LEDs initialisieren
	if(loadbeam){
		$('LED1').src ="./pic/ledgrn"; 
	}
	if(looping){
		$('LED2').src ="./pic/ledgrn";
	};
	if(ticker_len){         
		start_ticker(ticker_p);
	}
tlcf = tlr1/(tlend - tlbegin);

new PeriodicalExecuter(function(apd) {
	ad_change(adnr);
	}, 120); 
}

// Schneller Vor- und Rücklauf
function fplay(value){
// Check ob Buttonfunktion ON
var on = false;
switch(value){
 	case "fback":
 		if(buttons_new.substring(1,2) == '1' || buttons_new.substring(1,2) == '2'){
 			on = true;
 		}
 	break;
	case "fnext":
 		if(buttons_new.substring(4,5) == '1' || buttons_new.substring(4,5) == '2'){
 			on = true;
 		} 
 	break;
}
if(on){
	if(running){
		running = false;
	} else {
	ticker_flag = 1;
	var url = wcamdir+'/ajax/ajax_fplay.php';
	var pars = 'step=' + value + '&style=' + style;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			onLoading: function(){
				$('ajlgif').show();
			},
 			onComplete: function(norn,json){
 				if(value == 'fback'){
					stop = json.len;
					direc = 'back';
					buttons_new = "0200000";
					button_change();
    				buttons_old = buttons_new;
				}
				if(value == 'fnext'){
					stop = 0;
					direc = 'forw';
					buttons_new = "0000200";
					button_change();
    				buttons_old = buttons_new;
				}
				running = true;
				if(style != 1){
					path = getpath();
					files = json;
				} else {
					files = json;
				}
				if(!imgobj[0]){
					(style == 1) ? sl3.setDisabled(): sl2.setDisabled();
					preload(json.len);
					load_control();
				}
				$('ajlgif').hide();
				$('iviews').innerHTML = "";
				$('tviews').innerHTML = "";
//				$('oviews').innerHTML = "";
				$('stars').innerHTML = "";
				$('voutof').innerHTML = "";
				$('isum').innerHTML = json.len;
				showslide();
											
			},
				onFailure: function(){ alert('Fehler bei Ajax Request') }
			});	
// ENDE ELSE Running
}
// ENDE ON
}		
}

function preload(len){
var i;
// Timestamp Downloadbegin
loadstart = new Date();
if(curimg == 0){
	start = 0;
	if(direc == 'back'){
		for(i=0;i<len;i++){
			img_preload(i);
		}	
	} else {
		for(i=len-1;i>=0;i--){
			img_preload(i);
		}
	}
} else {
	start = curimg;
	if(direc == 'back'){
		for(i=curimg;i<len;i++){
			img_preload(i);
		}
		for(i=0;i<curimg;i++){
			img_preload(i);
		}
	} else {
		for(i=curimg;i>=0;i--){
			img_preload(i);
		}
		for(i=len-1;i>curimg;i--){
			img_preload(i);
		}		
	}
}
loaded = 1;
}

function img_preload(p){
var year, month, day;
	imgobj[p]= new Image();
		if(style == 1){
			year = files[p]['file'].substr(0,2);
			month = files[p]['file'].substr(2,2);
			day = files[p]['file'].substr(4,2);
			imgobj[p].src = wcimgdir+'20'+year+'/'+month+'/'+day+'/'+files[p]['file']+'.jpg';
		} else {
			imgobj[p].src = './mobotix/'+path+files[p];
		}
}

function load_control(){
fpspeed_old = fpspeed;
// Ladebalken anzeigen ?
if(loadbeam){
	$('box36').hide();
	$('load_beam','load_1','load_2','load_track').invoke('show');
}
check_load();
new PeriodicalExecuter(function(pe) { 
	check_load();
	if(load_pointer >= (imgobj.length - 1)){
		pe.stop();
		$('loadtxt1').innerHTML = '';
		$('loadtxt2').innerHTML = '';
		$('load_beam','load_1','load_2','load_track').invoke('hide');
		fpspeed = fpspeed_old;
		load_pointer = 0;
		$('box36').show();
		(style == 1) ? sl3.setEnabled(): sl2.setEnabled();
	}
}, 1);
}

function check_load(){
var a, b, p, diff, val, lp, ci, sc_diff;
var mapper;
var len = imgobj.length;
var len1 = len - 1;
val = load_pointer;
for(var i=val;i < len;i++){
		if(direc == 'back'){
			mapper = start + i;
			if(mapper >=  len){
				mapper = mapper - len;
			}
		}
		if(direc == 'forw'){
			mapper = start - i;
			if(mapper < 0){
				mapper = mapper + len;
			}
		}
		if(imgobj[mapper].complete || imgobj[mapper].onload){
			load_pointer = i;
		} else {
			break;
		}
}	

lp = load_pointer+1;
if(direc == 'back'){
	sc_diff = curimg - start;
	if(sc_diff < 0){
		ci = sc_diff + len;
	} else {
		ci = sc_diff;
	}
} else {
sc_diff = start - curimg;
	if(sc_diff >= 0){
		ci = sc_diff;
	} else {
		ci = len - Math.abs(sc_diff);
	}
}
a = Math.round(((lp)/len)*100);
b = Math.round(((ci)/len)*100);
p = Math.round((lp)/(len/100));

if(loadbeam){
	$('loadtxt1').innerHTML = 'LOADING '+ p + '%';
	$('loadtxt2').innerHTML = 'LOADING '+ p + '%';
}
sl4.setValue(a,0);
sl4.setValue(b,1);
diff = lp - ci;
// SchÃ¤tzung Downloadgeschwindigkeit
//var loadnow = new Date();
//var loadspeed = Math.round((imgsize * (lp)) / ((loadnow.getTime()-loadstart.getTime())/1000));
//var maxkb = imgobj.length * imgsize;
//var esttime1 = maxkb / loadspeed;
//var esttime2 = (imgobj.length * fpspeed) / 1000;
if(diff < 5){
	fpspeed += 1000;
} else {
	if(fpspeed != fpspeed_old){
		fpspeed -= 1000;
	}
	if(fpspeed > fpspeed_old){
		fpspeed = fpspeed_old;
	}

}
}

function showslide(){
// Play läuft
if(running){
	slactive = 'off';
	var image = imgobj[curimg].src;
	var p = image.lastIndexOf("/");
	var h = image.substr(p+7,2);
	var m = image.substr(p+9,2);
	var s = image.substr(p+11,2);
	var f = mintodez(h,m);
	sl1.setValue(Math.abs(f) + tl_cor(tlbegin,f),1);
	if (language == 'us'){
      	$('time').innerHTML = us_time(h,m);			
    } else {
      	$('time').innerHTML = h+':'+m+':'+s;	
    } 
// BESTOF Modus
	if(style == 1){
		var year = image.substr(p+1,2);
		var month = image.substr(p+3,2);
		var day = image.substr(p+5,2);
		if (language == 'us'){
      		$('day').innerHTML = us_date(day,month,year);
      	} else {
        	$('day').innerHTML = day+'. '+month+'. '+'20'+year;
        }
		$('stars').innerHTML = stars(files[curimg]['voting'],files[curimg]['votes']);
		if(files[curimg]['votes'] == 1){
			$('voutof').innerHTML = files[curimg]['voting']+' '+files['from']+' '+files[curimg]['votes']+' '+files['rating'];
		} else {
			$('voutof').innerHTML = files[curimg]['voting']+' '+files['from']+' '+files[curimg]['votes']+' '+files['ratings'];
		}
		fpspeed = fpspeed_bof;
	}
	$('mainImg').src = imgobj[curimg].src;
	$('ioutof').innerHTML = imgobj.length - curimg;
	
	if(direc == 'back'){
		curimg++;
		if(looping == 1){
			if(loopA || loopB){
				if(curimg > loopA -1){
					curimg = loopB;
				}
			} else {
				if(curimg > imgobj.length -1){
					curimg = 0;
				}
			}
			window.setTimeout("showslide()",fpspeed);
		} else {
			if(curimg < stop){
				window.setTimeout("showslide()",fpspeed);
			} else {
				curimg--;
				if(style == 1){
					update(files[curimg]['file']);
				} else {
					update(files[curimg]);
				}
				(looping == 1) ? buttons_new = "0101111" : buttons_new = "0001111";	
				button_change();
    			buttons_old = buttons_new;
    			slactive = 'on';
    			fpspeed = fpspeed_old;
    		}
		}
	}
	if(direc == 'forw'){
		curimg--;
		if(looping == 1){
			if(loopA || loopB){
				if(curimg < loopB){
					curimg = loopA;
				}
			} else {
				if (curimg < 0){
					curimg = imgobj.length - 1;
				}
		}
			window.setTimeout("showslide()",fpspeed);
		} else {
			if(curimg >= stop){
				window.setTimeout("showslide()",fpspeed);
			} else {
				curimg++;
				if(style == 1){
					update(files[curimg]['file']);
				} else {
					update(files[curimg]);
				}
				(looping == 1) ? buttons_new = "1110101" : buttons_new = "1110001";	
				button_change();
    			buttons_old = buttons_new;
    			slactive = 'on';
    			fpspeed = fpspeed_old;
			}
		}
	}
// Play gestopt
} else {
	if(direc == 'back'){
		curimg--;
	}
	if(direc == 'forw'){
		curimg++;
	}
	if(style == 1){
		update(files[curimg]['file'],direc);
	} else {
		update(files[curimg],direc);
	}
	button_check(curimg,imgobj.length-1);
	slactive = 'on';
	ticker_flag = 0;
	fpspeed = fpspeed_old;
}
}

// ++++++++++++++++++++++
function getpath(){
var url = $('mainImg').src;
var a = url.indexOf("2");
var b = url.lastIndexOf("/");
var string = url.substring(a,b+1);
return string;
}

// Time-Slider-Function
function sendtime(value) {
var imgid;
if(!blocked){
	buttons_new = "0000000";
	button_change();
    buttons_old = buttons_new;
    blocked = true;
	var url = wcamdir+'/ajax/ajax_slider.php';
	var pars = 'timeval=' + value;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			onLoading: function(){
				$('ajlgif').show();
			},
 			onComplete: function(norn,json){
				var a = $('mainImg');
				var b = a.src;
				var p = b.lastIndexOf("/");
				var string = b.slice(0,p+1);
        			a.src = string + json.file;
        		imgid = json.file.substr(0,12);
        		if (language == 'us'){
      				$('time').innerHTML = us_time(json.hour,json.min);
       			} else {
        			$('time').innerHTML = json.hour+':'+json.min+':'+json.sec;
        		}
				$('ioutof').innerHTML = json.len - json.offset;
				$('stars').innerHTML = '';
				$('voutof').innerHTML = '';
				$('iviews').innerHTML = '';
				$('tviews').innerHTML = '';
				button_check(json.offset,json.len-1);
				$('ajlgif').hide();
				blocked = false;
				document.vote.imgid.value = imgid;
				curimg = json.offset;
				data_update(imgid);
			},
				onFailure: function(){ alert('Fehler bei Ajax Request') }
			});			
}		
}

function update(value,str){
var imgstr = value.substring(0,12);
var url = wcamdir+'/ajax/ajax_update.php';
var pars = 'img=' + imgstr + '&direc=' + str;
var myAjax = new Ajax.Request(
	url, 
	{
		method: 'get', 
		parameters: pars,
 		onComplete: function(norn,json){
 			$('iviews').innerHTML = json.thisviews;
			$('tviews').innerHTML = json.todayviews;
			if(json.voting){
					$('stars').innerHTML = stars(json.voting,json.votes);
					$('voutof').innerHTML = json.outof;
				} else {
					$('stars').innerHTML = '';
					$('voutof').innerHTML = '';
			}			
			document.vote.imgid.value = imgstr;
			running = false;
		},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
		});	
}
// Views- und Rating Update
function data_update(value) {
	var url = wcamdir+'/ajax/ajax_getdata_v093.php';
	var pars = 'img=' + value;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
 			onComplete: function(norn,json){
				$('iviews').innerHTML = json.thisviews;
				$('tviews').innerHTML = json.todayviews;
				if(json.voting){
					$('stars').innerHTML = stars(json.voting,json.votes);
					$('voutof').innerHTML = json.outof;
				}
			},
				onFailure: function(){ alert('Fehler bei Ajax Request') }
			});
}

function voting() {
if(!running && !blocked){
	var url = wcamdir+'/ajax/ajax_vote.php';
	var id = document.vote.imgid.value;
	var p = 0;
	for (var i = 0;i < 5;i++){
		if (document.vote.user_rating[i].checked == true) { 
		p = i+1;
		break;
		}
	}
	if (p) {
		var pars = 'vote=' + p + '&imgid=' + id;
		var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars,
				onLoading: function(){
					$('ajlgif').show();
				},
 				onComplete:function(norn,json){
 				if(json.voting.empty() && json.votes.empty()){
 					if(!json.msg.empty()){
 						alert(json.msg);
 					}
 				} else {
 					$('stars').innerHTML = stars(json.voting,json.votes);
 					$('voutof').innerHTML = json.outof;
 				}
 				//Form.reset('vote');
 				var safe = document.vote.imgid.value;
 				document.vote.reset();
 				document.vote.imgid.value = safe;
 				$('ajlgif').hide();				
				},
				onFailure: function(){ alert('Fehler bei Ajax Request') } 
			});
	} else {
		alert (mymsg);
	}
}
}
// For-/Backward 1 Step Last/First
function step(direction){
// Check ob Buttonfunktion ON
var on = false;
switch(direction){
 	case 'first':
 		if(buttons_new.substring(0,1) == '1'){
 			on = true;
 		}
 	break;
	case 'back':
 		if(buttons_new.substring(2,3) == '1'){
 			on = true;
 		} 
 	break;
 	case 'next':
 		if(buttons_new.substring(3,4) == '1'){
 			on = true;
 		} 
 	break;
 	case 'last':
 		if(buttons_new.substring(5,6) == '1'){
 			on = true;
 		} 
 	break;
}
//alert(on);
if(!blocked && !running && on){
	var imgid;
	var url = 'http://www.koessen-online.com/wcam/ajax/ajax_step.php';
	if (direction) {
		buttons_new = "0000000";
		button_change();
    	buttons_old = buttons_new;
    	blocked = true;
		var pars = 'step=' + direction + '&offset=' + curimg + '&style=' + style;
		var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars,
				onLoading: function(){
					Element.show('ajlgif');
				},
				onComplete: function(norn,json){
				if(slactive = 'on'){
					slactive = 'off';
				}
				var a = $('mainImg');
				if(style == 1 && json.style == 'bof'){
					a.src = wcimgdir + '20' + json.year + '/' + json.month + '/' + json.day + '/' + json.file;
					if (language == 'us'){
      					$('day').innerHTML = us_date(json.day,json.month,json.year);
      				} else {
        				$('day').innerHTML = json.day+'. '+json.month+'. 20'+json.year;
        			}
				} else {
					var b = a.src;
					var p = b.lastIndexOf("/");
					var string = b.slice(0,p+1);
        			a.src = string + json.file;
        		}
        		var f = mintodez(json.hour,json.min);
        		sl1.setValue(Math.abs(f) + tl_cor(tlbegin,f),1);
//        		sl1.setValue(f,1); 
        		if (language == 'us'){
      				$('time').innerHTML = us_time(json.hour,json.min);
      			} else {
        			$('time').innerHTML = json.hour+':'+json.min+':'+json.sec;
        		}
        		$('iviews').innerHTML = '';
				$('tviews').innerHTML = '';
				$('stars').innerHTML = '';
				$('voutof').innerHTML = '';
				$('ioutof').innerHTML = json.len - json.offset;
				$('isum').innerHTML = json.len;
				imgid = json.file.substr(0,12);
				Element.hide('ajlgif');
				document.vote.imgid.value = imgid;
				button_check(json.offset,json.len-1);
				curimg = json.offset;
				blocked = false;
				if(!style){
					slactive = 'on';
				}
				data_update(imgid);   	
				
			},
				onFailure: function(){ alert('Fehler bei Ajax Request') }
			});
			
	} 
}
}

// Refresh - setzt Session zurück und lädt Bilder neu
function refresh() {
if(!blocked && !running && buttons_new.substring(6) == '1'){
	var url = 'http://www.koessen-online.com/wcam/ajax/ajax_refresh.php';
	var pars = 'load=new';
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			onLoading: function(){
			Element.show('ajlgif');
		},
		onComplete: function(norn,json){
		slactive = 'off';
		loopflag = false;
		var a = $('mainImg');
		a.src = wcimgdir+'20'+json.year+'/'+json.month+'/'+json.day+'/'+json.file;
		var f = mintodez(json.hour,json.min);
		tlbegin = json.tlinebegin;
		tllast = json.tlinelast;
		tlend = json.tlineend;
		tlcf = tlr1/(tlend - tlbegin);
		sl1.setEnabled();   
        sl1.setValue(json.tlinebegin-7,0); 
       	sl1.setValue(json.tlinelast+30,2);
       	sl1.setValue(Math.abs(f) + tl_cor(tlbegin,f),1);
 //     sl1.setValue(f,1);
        sl5.setValue(json.tlinebegin-25,0);
        sl5.setValue(json.tlinebegin-19,1);
        sl5.setValue(json.tlinelast,3);
        sl5.setValue(json.tlinelast+19,2);
      	if (language == 'us'){
      		$('time').innerHTML = us_time(json.hour,json.min);
      		$('tzone').innerHTML = '';
      		$('day').innerHTML = us_date(json.day,json.month,json.year);
      	} else {
        	$('time').innerHTML = json.hour+':'+json.min+':'+json.sec;
        	$('tzone').innerHTML = timezone;
        	$('day').innerHTML = json.day+'. '+json.month+'. 20'+json.year;
        }
    
		$('iviews').innerHTML = json.thisviews;
		$('tviews').innerHTML = json.todayviews;
		$('ioutof').innerHTML = json.len - json.offset;
		$('isum').innerHTML = json.len;
		$('modus').innerHTML = '';
		if(json.voting){
					$('stars').innerHTML = stars(json.voting,json.votes);
					$('voutof').innerHTML = json.outof;
				} else {
					$('stars').innerHTML = '';
					$('voutof').innerHTML = '';
		}
		var begin = Math.round(json.tlinebegin*json.unit);
		var last = Math.round(json.tlinelast*json.unit);
		var end = Math.round(json.tlineend*json.unit);
		var length1 = last - begin;
		var length2 = imgwth - end;
		document.getElementById("outblock1").style.width = begin+'px';
		document.getElementById("onlineblock").style.left = begin+'px';
		document.getElementById("onlineblock").style.width = length1+'px';
		document.getElementById("outblock2").style.left = end+'px';
		document.getElementById("outblock2").style.width = length2+'px';
		document.getElementById("timemark1").style.left = last+'px'; 		
		fpspeed = fpspeed_old;
		loopA = 0;
		loopB = 0;	
		$('ajlgif').hide();
		$('handle5').hide();
		$('outblock1','outblock2','onlineblock','handle4','handle7','handle8').invoke('show');
		document.vote.imgid.value = json.file.substr(0,12);
		sl3.setDisabled();
		sl2.setEnabled();
		button_check(json.offset,json.len-1);
		curimg = json.offset;
		style = 0;
		slactive = 'on';
		imgobj = new Array();
		load_pointer = 0;
		loopflag = true;
		$('box38').show();  
	},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}
}

// Archive - Lädt Daten aus dem Archiv
function imgarchive() {
if(!blocked && !running){
	var year = $F('selectyear');
	var month = $F('selectmonth');
	var day = $F('selectday');
	var url = 'http://www.koessen-online.com/wcam/ajax/ajax_archive.php';
	var pars = 'aryear=' + year + '&armonth=' + month + '&arday=' + day;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			onLoading: function(){
			Element.show('ajlgif');
		},
		onComplete: function(norn,json){
		slactive = 'off';
		loopflag = false;
		var a = $('mainImg');
		a.src = wcimgdir+'20'+json.year+'/'+json.month+'/'+json.day+'/'+json.file;
        var f = mintodez(json.hour,json.min);
        tlbegin = json.tlinebegin;
		tllast = json.tlinelast;
		tlend = json.tlineend;
		tlcf = tlr1/(tlend - tlbegin);
		sl1.setValue(json.tlinebegin-7,0); 
       	sl1.setValue(json.tlinelast+30,2);
       	sl1.setValue(Math.abs(f) + tl_cor(tlbegin,f),1);
//      sl1.setValue(json.tlinelast,1);
        sl5.setValue(json.tlinebegin-25,0);
        sl5.setValue(json.tlinebegin-19,1);
        sl5.setValue(json.tlineend,3);
        sl5.setValue(json.tlineend+19,2);
        if (language == 'us'){
      		$('time').innerHTML = us_time(json.hour,json.min);
      		$('tzone').innerHTML = '';
      		$('day').innerHTML = us_date(json.day,json.month,json.year);
      	} else {
        	$('time').innerHTML = json.hour+':'+json.min+':'+json.sec;
        	$('tzone').innerHTML = '';
        	$('day').innerHTML = json.day+'. '+json.month+'. 20'+json.year;
        }
        $('iviews').innerHTML = json.thisviews;
		$('tviews').innerHTML = json.todayviews;
		$('ioutof').innerHTML = json.len - json.offset;
		$('isum').innerHTML = json.len;
		$('modus').innerHTML = json.modus;
		if(json.voting){
					$('stars').innerHTML = stars(json.voting,json.votes);
					$('voutof').innerHTML = json.outof;
				} else {
					$('stars').innerHTML = '';
					$('voutof').innerHTML = '';
		}
		var begin = Math.round(json.tlinebegin*json.unit);
		var end = Math.round(json.tlineend*json.unit);
		document.getElementById("outblock1").style.width = begin+'px';
		document.getElementById("outblock2").style.left = end+'px';
		document.getElementById("outblock2").style.width = (640-end)+'px';
		document.getElementById("timemark1").style.left = end+'px'; 	
		fpspeed = fpspeed_old;
		$('ajlgif').hide();
		$('handle5').hide();
		$('onlineblock','timemark1').invoke('hide');
		$('outblock1','outblock2','handle4','handle7','handle8').invoke('show');
		fpspeed = fpspeed_old;
		sl3.setDisabled();
		sl2.setEnabled();
		document.vote.imgid.value = json.file.substr(0,12);
		button_check(json.offset,json.len-1);
		curimg = json.offset;
		style = 0;
		slactive = 'on';
		imgobj = new Array();
		load_pointer = 0; 
		loopflag = true;
		loopA = 0;
		loopB = 0; 
		$('box38').hide();
		},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}
}

// 1 Year back
function yback() {
if(!blocked && !running){
	var time = document.vote.imgid.value.substr(6,4);
	var url = 'http://www.koessen-online.com/wcam/ajax/ajax_1yearback.php';
	var pars = 'time=' + time;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			onLoading: function(){
			Element.show('ajlgif');
		},
		onComplete: function(norn,json){
		slactive = 'off';
		loopflag = false;
		var a = $('mainImg');
		a.src = wcimgdir+'20'+json.year+'/'+json.month+'/'+json.day+'/'+json.file;
        var f = mintodez(json.hour,json.min);
        tlbegin = json.tlinebegin;
		tllast = json.tlinelast;
		tlend = json.tlineend;
		tlcf = tlr1/(tlend - tlbegin);
		sl1.setValue(json.tlinebegin-7,0); 
       	sl1.setValue(json.tlinelast+30,2);
       	sl1.setValue(Math.abs(f) + tl_cor(tlbegin,f),1);
        sl5.setValue(json.tlinebegin-25,0);
        sl5.setValue(json.tlinebegin-19,1);
        sl5.setValue(json.tlineend,3);
        sl5.setValue(json.tlineend+19,2);
        if (language == 'us'){
      		$('time').innerHTML = us_time(json.hour,json.min);
      		$('tzone').innerHTML = '';
      		$('day').innerHTML = us_date(json.day,json.month,json.year);
      	} else {
        	$('time').innerHTML = json.hour+':'+json.min+':'+json.sec;
        	$('tzone').innerHTML = '';
        	$('day').innerHTML = json.day+'. '+json.month+'. 20'+json.year;
        }
        $('iviews').innerHTML = json.thisviews;
		$('tviews').innerHTML = json.todayviews;
		$('ioutof').innerHTML = json.len - json.offset;
		$('isum').innerHTML = json.len;
		$('modus').innerHTML = json.modus;
		if(json.voting){
					$('stars').innerHTML = stars(json.voting,json.votes);
					$('voutof').innerHTML = json.outof;
				} else {
					$('stars').innerHTML = '';
					$('voutof').innerHTML = '';
		}
		var begin = Math.round(json.tlinebegin*json.unit);
		var end = Math.round(json.tlineend*json.unit);
		document.getElementById("outblock1").style.width = begin+'px';
		document.getElementById("outblock2").style.left = end+'px';
		document.getElementById("outblock2").style.width = (640-end)+'px';
		document.getElementById("timemark1").style.left = end+'px'; 	
		fpspeed = fpspeed_old;
		$('ajlgif').hide();
		$('handle5').hide();
		$('onlineblock','timemark1').invoke('hide');
		$('outblock1','outblock2','handle4','handle7','handle8').invoke('show');
		fpspeed = fpspeed_old;
		sl3.setDisabled();
		sl2.setEnabled();
		document.vote.imgid.value = json.file.substr(0,12);
		button_check(json.offset,json.len-1);
		curimg = json.offset;
		style = 0;
		slactive = 'on';
		imgobj = new Array();
		load_pointer = 0; 
		loopflag = true;
		loopA = 0;
		loopB = 0; 
		},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}
}
// Bestof - Lädt Bilder für den Bestof Modus
function bestof(mod) {
	if(running){ running = false;}
	if(mod == ''){
		mod = 'all';
	}
	var url = 'http://www.koessen-online.com/wcam/ajax/ajax_bestof.php';
	var pars = 'bof='+ mod;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			onLoading: function(){
			Element.show('ajlgif');
		},
		onComplete: function(norn,json){
		slactive = 'off';
		tlbegin = 0;
		tlend = 2400;
		tlcf = tlr1/(tlend - tlbegin);
		var a = $('mainImg');
		a.src = wcimgdir+'20'+json.year+'/'+json.month+'/'+json.day+'/'+json.file;
        var f = mintodez(json.hour,json.min);
        
//        var tz = get_timeoffset('20'+json.year,json.month,json.day,json.hour,json.min,json.sec);
        if (language == 'us'){
      		$('time').innerHTML = us_time(json.hour,json.min);
      		$('tzone').innerHTML = '';
      		$('day').innerHTML = us_date(json.day,json.month,json.year);
      	} else {
        	$('time').innerHTML = json.hour+':'+json.min+':'+json.sec;
        	$('tzone').innerHTML = '';
        	$('day').innerHTML = json.day+'. '+json.month+'. 20'+json.year;
        }
      	$('iviews').innerHTML = json.thisviews;
		$('tviews').innerHTML = json.todayviews;
		$('stars').innerHTML = stars(json.voting,json.votes);
		$('voutof').innerHTML = json.outof;
		$('ioutof').innerHTML = json.len - json.offset;
		$('isum').innerHTML = json.len;
		$('modus').innerHTML = json.modus;
		sl1.setValue(1,0); 
        sl1.setValue(2400,2);
	  	sl1.setValue(Math.abs(f) + tl_cor(tlbegin,f),1);     
//      sl1.setValue(f,1);
        sl1.setDisabled();   
		Element.hide('ajlgif');
		$('outblock1','outblock2','onlineblock','timemark1','handle4','handle7','handle8').invoke('hide');
		$('handle5').show();
		sl2.setDisabled();
		sl3.setEnabled();
		fpspeed = fpspeed_bof;	
		document.vote.imgid.value = json.file.substr(0,12);
		button_check(json.offset,json.len-1);
		curimg = 0;
		style = 1;
		ticker_flag = 0;
		imgobj = new Array();
		load_pointer = 0;
		$('box38').hide();
		},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}

// Funktion zur Generierung der Bewertungssterne
function stars(value,ratings){
var starstring = '';
var star_img_f = '<img src=\"'+star_f+'\" width=\"16px\" height=\"14px\" alt=\"\" />';
var star_img_n = '<img src=\"'+star_n+'\" width=\"16px\" height=\"14px\" alt=\"\" />';
var star_img_h = '<img src=\"'+star_h+'\" width=\"16px\" height=\"14px\" alt=\"\" />';
var a = Math.floor(value);
var b = value - a;
for(var i = 1;i <= 5;i++){
	if(i <= a){
		starstring = starstring  + star_img_f;
	} else {
		if((i == a+1) && (b >= 0.5)){
			starstring = starstring  + star_img_h;
		} else {
			starstring = starstring  + star_img_n
		}
	}
}
return starstring;
}

function mintodez(hour,minut){
var a;
var b = Math.round((minut/60)*100);
if(b < 10){
	b = '0'+b;
}
if(hour){
	if(b){
 		a = hour+b;
	}else {
		a = hour+'00';
	}
}else {
	if(b){
 		a = '00'+b;
	}else {
		a = '0000';
	}
}
return a;
}

// Prüfen ob die Steuerungs-Buttons gewechselt werden müssen
function button_check(offset,len){
var chkval;
if(!offset){
	chkval = 'none';
}
if(!offset && len == 1){
	chkval = 'first';
}
if(offset && (len > 1 && len < 10)){
	chkval = 'min';
}
if(offset  == len){
	chkval = 'begin';
}
switch (chkval) {
  case "none":
  	if(looping){
  		buttons_new = "1110101";
  	} else {
  		buttons_new = "1110001";
  	}
  	if(buttons_new != buttons_old){
    	button_change();
    	buttons_old = buttons_new;
    }
    break;
   case "first":
  	buttons_new = "0000001";
  	if(buttons_new != buttons_old){
    	button_change();
    	buttons_old = buttons_new;
    }
    break;
    case "min":
  	buttons_new = "1011011";
  	if(buttons_new != buttons_old){
    	button_change();
    	buttons_old = buttons_new;
    }
    break;
  case 'begin':
  	if(looping){
  		buttons_new = "0101111";
  	} else {
  		buttons_new = "0001111";
  	}
  	if(buttons_new != buttons_old){
    	button_change();
    	buttons_old = buttons_new;
    }
    break;
  default:
  	buttons_new = "1111111";
  	if(buttons_new != buttons_old){
    	button_change();
    	buttons_old = buttons_new;
    }
    break;
}
}

// Ändert die Steuerungs-Buttons
function button_change(){
var a = buttons_new.toArray();
var b = buttons_old.toArray();
for(var i = 0;i < 7;i++){
	var p = i+1;
	switch(a[i]){
	case "1":
		$('bon'+p).src = bttndir + buttons_on[i];
		$('bon'+p).setStyle({backgroundColor:'#ffffff'});
		$('pb'+p).setStyle({cursor:'pointer'});
		$('bon'+p).writeAttribute('title',pool[p]);
		$('bon'+p).writeAttribute('alt',pool[p]);
		break;
	case "2":
		$('bon'+p).src = bttndir+'stop_up.png';
		$('pb'+p).setStyle({cursor:'pointer'});
		$('bon'+p).writeAttribute('title',stp);
		$('bon'+p).writeAttribute('alt',stp);
		break;
	default:
		$('bon'+p).src = bttndir + buttons_on[i];
		$('bon'+p).setStyle({backgroundColor:'#000000'});
		if(b[i] == 2){
			$('bon'+p).writeAttribute('title',stp);
			$('bon'+p).writeAttribute('alt',stp);
		}
		$('bon'+p).writeAttribute('title',wof);
		$('bon'+p).writeAttribute('alt',wof);
		$('pb'+p).setStyle({cursor:'default'});
	break;
	}
}
}

//Allgemeine Funktionen
function auto_complete(val,mod){
var proxy, year, pars;
var strg_day = "<select id=\"selectday\" name=\"arday\">";
var strg_month = "<select id=\"selectmonth\" name=\"armonth\" onChange=\"auto_complete(this.value,'day')\">";
if(mod == 'day'){
	year = $('selectyear').getValue();
	var pars = 'month='+ val+'&year='+year+'&mod='+mod;
}
if(mod == 'month'){
	year = val;
	var pars = 'month=0&year='+year+'&mod='+mod;
}

var url = 'http://www.koessen-online.com/wcam/ajax/ajax_acomplete.php';
var myAjax = new Ajax.Request(
	url, 
	{
		method: 'get', 
		parameters: pars,
		
		onComplete: function(norn,json){
		if(json.mod == 'month'){
			for(var i = json.months.first();i <= json.months.last();i++){
				if(i == json.months.last()){
					strg_month =strg_month+"<option value=\""+i+"\" selected=\"selected\">"+i+"</option>";
				} else {
					strg_month =strg_month+"<option value=\""+i+"\">"+i+"</option>";
				}
				
			}
			strg_month = strg_month+'</select>';
			$('selectmonth').replace(strg_month); 
		}
		
		proxy = Math.abs(json.days);
		// Codeblock funktioniert im Firefox nicht richtig !!!!
		for(var i = 1; i <= proxy;i++){
			if(i == proxy){
				strg_day = strg_day+"<option value=\""+i+"\" selected=\"selected\">"+i+"</option>";
			} else {
				strg_day = strg_day+"<option value=\""+i+"\">"+i+"</option>";
			}
		}
		strg_day = strg_day+'</select>';
		//$('selectday').replace(strg_day);
		Element.replace('selectday',strg_day);
	},
			onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}

function ad_change(nr){
var url = 'http://www.koessen-online.com/wcam/ajax/ajax_ch_banner.php';
var myAjax = new Ajax.Request(
	url, 
	{
		method: 'get', 
		parameters: nr,
		
		onComplete: function(norn,json){
			if(json.ad){
				$('adv2').innerHTML = json.ad;
			}
			if(json.id){
				adnr = json.id;
			}
		
	},
			onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}

// Endlos-Funktion EIN/AUS
function loop(){
if(looping == 1){
	$('LED2').src ="./pic/ledgry";
	looping = 0;
} else {
	$('LED2').src ="./pic/ledgrn";
	looping = 1;
}
}
// Ladebalken-Anzeige EIN/AUS
function load_beam(){
if(loadbeam){
	$('LED1').src ="./pic/ledgry";
	loadbeam = false;
} else {
	$('LED1').src ="./pic/ledgrn";
	loadbeam = true;
}
}

// Loop Endpunkte ermitteln
function set_lpoint(valA,valB){
if(loopflag == true){
	var url = 'http://www.koessen-online.com/wcam/ajax/ajax_looppoints.php';
	var pars = 'valA='+ valA +'&valB='+ valB;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars,
			
		onComplete: function(norn,json){
			loopA = json.offsetA;
			loopB = json.offsetB;
		},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}
}

// Buttons 
function bttn_down(nr){
var a = buttons_new.toArray();
if(a[nr-1]){
	switch(a[nr-1]) {
		case "1":
			$('bon'+nr).src = bttndir + buttons_off[nr-1];
			break;
		case "2":
			$('bon'+nr).src = bttndir + 'stop_down.png';
			break;
	}
} else {
	switch(nr) {
		case 7:
			$('bon7').src = bttndir + 'refresh_down.png';
			break;
		case 8:
			$('loop_img').src = bttndir + 'loop_down.png';
			break;
		case 9:
			$('vchart_img').src = bttndir + 'chart_down.png';
			break;
		case 10:
			$('loadb_img').src = bttndir + 'load_down.png';
			break;
	}
}
}

function bttn_up(nr){
var a = buttons_new.toArray();
if(a[nr-1]){
	switch(a[nr-1]) {
		case "1":
			$('bon'+nr).src = bttndir + buttons_on[nr-1];
			break;
		case "2":
			$('bon'+nr).src = bttndir + 'stop_up.png';
			break;
	}
} else {
	switch(nr) {
		case 7:
			$('bon7').src = bttndir + 'refresh_up.png';
			break;
		case 8:
			$('loop_img').src = bttndir + 'loop_up.png';
			break;
		case 9:
			$('vchart_img').src = bttndir + 'chart_up.png';
			break;
		case 10:
			$('loadb_img').src = bttndir + 'load_up.png';
			break;
	}
}
}

// 1-Click Movie Bestof-Pictures
function bof_mov(){
// ticker_flag verhindert mehrfaches starten des bof_of Abrufes
ticker_flag = 1;
bestof('all');
if(looping){looping = 0;}
loop();
fplay('fback');
}

// COMMENT - Funktionen
function load_form(){
var url = 'http://www.koessen-online.com/wcam/ajax/ajax_load_form.php';
var pars = '';
var myAjax = new Ajax.Request(
	url, 
	{
	method: 'get', 
	parameters: pars,
	onComplete: function(norn,json){
	if($('form').empty()){
		$('form').insert(json,{position: content});
	} else {
		$('form').update(json);
	}
	new Effect.SlideDown('comment_form',{duration:1.0});		
	},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
}

function save_form(){
$('c_comment').request({
	method: 'post',   parameters: { img_ID:document.vote.imgid.value}, 
	onComplete: function(){
		alert('Form data saved!');
		new Effect.SlideUp('comment_form',{duration:2.0});
	 } 
})
}

function reset_form(){
$('c_comment').reset();
}

function close_form(){
new Effect.SlideUp('comment_form',{duration:1.0});
}

// Textaustausch - Sprachenwechsel
function change_text(val){
if(val != language){
var a = buttons_new.toArray();
var alt,title,ihtml,pointer,timestr,y,m,d,h,min,s,proxy;
var p = 1;
var z = 0;
var url = 'http://www.koessen-online.com/wcam/ajax/ajax_text_map.php';
var pars = 'lang='+ val;
var myAjax = new Ajax.Request(
	url, 
	{
	method: 'get', 
	parameters: pars,
	onComplete: function(norn,json){
	var len = json.length;
	mymsg = json[59]['txt'];
	wof = json[60]['txt'];
	stp = json[61]['txt'];
	for(var i = 0; i <= 58;i++){
	
		if(json[i]){
		  if($(json[i]['id'])){
			switch(json[i]['typ']) {
				case "alt":
					alt = $(json[i]['id']).readAttribute('alt');
					if(alt){
						$(json[i]['id']).writeAttribute('alt',json[i]['txt'].unescapeHTML());			
					}
					break;
				case "title":
					title = $(json[i]['id']).readAttribute('title');
					if(title){
						$(json[i]['id']).writeAttribute('title',json[i]['txt'].unescapeHTML());
					}
					break;
				case "value":
					$(json[i]['id']).writeAttribute('value',json[i]['txt'].unescapeHTML());
					break;
				case "innerHTML":
					$(json[i]['id']).innerHTML = json[i]['txt'].unescapeHTML();
					break;
				}
			
			if(i > 10 && i < 24 && (i % 2)){
				pool[p] = json[i]['txt'];
				if(a[p-1] == 0){
					$(json[i]['id']).writeAttribute('title',wof);				
				}
				if(a[p-1] == 2){
					$(json[i]['id']).writeAttribute('title',stp);
				}
				p++;
			}
		  }
		}
		
	}
// PROVISORIUM
	proxy ='<< 1 '+json[68]['txt'].unescapeHTML();
	$('1y_button').writeAttribute('value',proxy);
	$('l_flag1').writeAttribute('title',json[62]['txt'].unescapeHTML());
	$('l_flag2').writeAttribute('title',json[63]['txt'].unescapeHTML());
	$('l_flag3').writeAttribute('title',json[67]['txt'].unescapeHTML());

	timestr = $('mainImg').src;
	timestr = timestr.substr(timestr.lastIndexOf('/')+1,12);
	y = timestr.substr(0,2);
	m = timestr.substr(2,2);
	d = timestr.substr(4,2);
	h = timestr.substr(6,2);
	min = timestr.substr(8,2);
	s = timestr.substr(10,2);
	if (val == 'us'){
		$('a8').src = "./pic/timelineAMPM.png";
		$('tzone').innerHTML = '';
		$('time').innerHTML = us_time(h,min);
		$('day').innerHTML = us_date(d,m,y);
	} else {
		$('a8').src = "./pic/timeline.png";
		$('tzone').innerHTML = timezone;
		$('time').innerHTML = iso_time(h,min,s);
		$('day').innerHTML = iso_date(y,m,d);
	}
	
	switch(val) {
		case "de":
			$('l_flag1').setStyle({borderColor:'yellow'});
			$('l_flag2').setStyle({borderColor:'#000000'});
			$('l_flag3').setStyle({borderColor:'#000000'});
			break;
		case "en":
			$('l_flag1').setStyle({borderColor:'#000000'});
			$('l_flag2').setStyle({borderColor:'yellow'});
			$('l_flag3').setStyle({borderColor:'#000000'});
			break;
		case "us":
			$('l_flag1').setStyle({borderColor:'#000000'});
			$('l_flag2').setStyle({borderColor:'#000000'});
			$('l_flag3').setStyle({borderColor:'yellow'});
			break;
		default:
			$('l_flag1').setStyle({borderColor:'yellow'});
			$('l_flag2').setStyle({borderColor:'#000000'});
			$('l_flag3').setStyle({borderColor:'#000000'});
			break;
	}
	
	language = val;
	
	var vstr = $('voutof').innerHTML;
	if(vstr.length > 5){
		var c = vstr.split(' ');
		c[1] = json[64]['txt'];
		if(c[2] > 1){
			c[3] = json[66]['txt'];
		} else {
			c[3] = json[65]['txt'];
		}
		$('voutof').innerHTML = c[0]+' '+c[1]+' '+c[2]+' '+c[3];
	
	}
	
//	if (navigator.cookieEnabled == true){
//		dokument.cookie = "mylang="+language;
//	}
		
	},
		onFailure: function(){ alert('Fehler bei Ajax Request') }
	});
// End IF
}
}

function us_time(std,min){
var a;
var rstr = '';
if(Math.abs(std) < 12){
	rstr = std+':'+min+' AM';
} else {
	a = Math.abs(std) - 12;
	if(a > 0){
		if (a >= 10){
			rstr = a+':'+min+' PM';
		} else {
			rstr = '0'+a+':'+min+' PM';
		} 
	} else {
		rstr = '12:'+min+' PM';
	}
}
return rstr;
}

function tl_cor(begin,last){
return Math.round((last - begin) * tlcf);
}

function us_date(day,month,year){
var usstr = month+'/'+day+'/20'+year;
return usstr;
}

function iso_time(std,min,sec){
var isostr = std+':'+min+':'+sec;
return isostr;
}

function iso_date(year,month,day){
var isostr = day+'. '+month+'. 20'+year;
return isostr;
}

function get_localtime(){
var year = now.getFullYear();
var month = now.getMonth();
var day = now.getDate();
var year = now.getDate();
var hour = now.getHours();
var minutes = now.getMinutes();
usertime = hour+':'+minutes;
userday = day+'. '+month+'. '+year;
}

function chartopen(id, per, typ){
var scroll = 'no';
if (screen.height < 750) {
scroll = 'yes';
}
chartwindow = open("http://www.koessen-online.com/wcam/jowcamchart.php?lid="+id+"&per="+per+"&style="+typ,"Chart","width=470, height=370, screenX=15, screenY=15, scrollbars="+scroll);
}

function mapopen(){
mapwindow = open("http://www.koessen-online.com/wcam/googlemap.html","Map","width=600, height=600, screenX=15, screenY=15, scrollbars=no");
}

function help(id,lg,hg){
var scroll = 'yes';
helpwindow = open("http://www.koessen-online.com/wcam/help.php?hid="+id+"&lang="+lg,"Glossary","dependent=yes, toolbar=yes, width=350, height="+hg+", screenX=15, screenY=15, scrollbars="+scroll);
}