var xmlHttp = new Array();

function xmlHttpCreate(id) {	
	// Internet Explorer
	try {
		xmlHttp[id]  = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
		try {
			xmlHttp[id]  = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			xmlHttp[id]  = false;
		}
	}
	// Andere Browser
	if (!xmlHttp[id]  && typeof XMLHttpRequest != 'undefined') {
		xmlHttp[id] = new XMLHttpRequest();
	}
}
	
function showSource() {	
	myWindow = window.open("", "qtFenster", 'toolbar=0');
	
	sourceString = replaceHTML(document.body.innerHTML);
	
	myWindow.document.write(sourceString);
	myWindow.document.close();
}

function replaceHTML(toReplaceString) {
	toReplaceString = toReplaceString.replace(/</g,"&lt;");
	toReplaceString = toReplaceString.replace(/>/g,"&gt;");
	toReplaceString = toReplaceString.replace(/\n/g,"<br>");
	toReplaceString = toReplaceString.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");
	
	return toReplaceString;
}

function deliciousList() {
	var ul = $('deliciousBookmarksList')
	for (var i=0, post; post = Delicious.posts[i]; i++) {
		var li = document.createElement('li');
		var a = document.createElement('a');
		a.setAttribute('href', post.u);
		a.setAttribute('target', '_blank');
		
		postEdit = post.d;
		a.setAttribute('title', postEdit);
		
		postMaxLength = 52;
		if (postEdit.length > postMaxLength) { postEdit = postEdit.substr(0, postMaxLength)+'…'; };
		a.appendChild(document.createTextNode(postEdit));
		li.appendChild(a);
		ul.appendChild(li);
	}
}

// Trash
function checkAndSubmitOld(of,felder,pflicht,loopPos,id) {
	statusDiv = $('commentStatus'+loopPos);
	statusDiv.innerHTML = '';
	
	// Variablen definieren
	var markierFarbe='#f4f4f4';
	var errorvar = true;
	var falschemail = false;
	var falschesfeld = false;
		
	var errorMsg = 'Bitte graue Pflichtelder ausfüllen';
	var errorMsgMail ='Falsches E-Mail Format';
	
	var reqfields = pflicht.split(',');
	
	
	for(var i=0;i<reqfields.length;i++) {
		var f = of[reqfields[i]];
		f.style.backgroundColor = '';
	}
	
	// Pflichtfelder checken
	for(var i=0; i<reqfields.length; i++) {
		// Prüfen ob Element vorhanden
		var f = of[reqfields[i]];
		// Wenn nicht überspringen
		if(!f) {
			continue;
		}
		// Typ der Felder feststellen
		switch(f.type.toLowerCase()) {
			case 'text':
				if(f.value=='' && f.id!='email') {
					var falschesfeld = true;
					cf_adderr(f)
				}							
				// E-Mail Feld gesondert behandeln
				if(f.id=='email' && !cf_isEmailAddr(f.value)) {
					var falschemail = true;
					cf_adderr(f)
					
				}							
			break;
			
			case 'textarea':
				if(f.value=='') {
					var falschesfeld = true;
					cf_adderr(f)
				}							
			break;
			
			case 'checkbox':
				if(!f.checked) {
					cf_adderr(f)
				}							
			break;
			
			case 'select-one':
				if(!f.selectedIndex && f.selectedIndex==0){
					cf_adderr(f)
				}							
			break;
		}
	}

	// Felder einfärben
	function cf_adderr(o) {
		o.style.backgroundColor = markierFarbe;
	}
	
	// Checken ob E-Mail Adresse ok
	function cf_isEmailAddr(str) {
		return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
	}

	// Warnmeldung festlegen
	if (falschesfeld == true && falschemail== false) {
		statusDiv.innerHTML = errorMsg;
		errorvar = false;
	}
	if (falschesfeld == true && falschemail == true) {
		errorMsg += " | " + errorMsgMail;
		statusDiv.innerHTML = errorMsg;
		errorvar = false;
	}
	if (falschesfeld == false && falschemail== true) {
		statusDiv.innerHTML = errorMsgMail;
		errorvar = false;
	}
	
	if (errorvar == true) {
		statusDiv.innerHTML = '<img src="'+PFAD_ROOT+'img/ajaxLoaderFFFFFF.gif" />';
		
		var datenString = 'cmd=commentWrite&idObj='+id;
		
		var felderArray = felder.split(',');
		
		for (var i=0; i<felderArray.length; i++) {
			var feldName = felderArray[i];
			var f = of[feldName].value;
			datenString += '&'+feldName+'='+replaceCharsForAJAX(f);
		}
		
		// Daten senden
		xmlHttpCreate(0);
		xmlHttp[0].open('POST', PFAD_ROOT+'erAJAX.php');
		xmlHttp[0].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHttp[0].send(datenString);
		
		xmlHttp[0].onreadystatechange = function () {
			if (xmlHttp[0].readyState == 4) {
				statusDiv.innerHTML = 'Kommentar erfolgreich gespeichert';
				
				for (i=0; i<felderArray.length; i++) {
					var feldName = felderArray[i];
					var f = of[feldName];
					f.value = '';
				}
				/*
				xmlHttpCreate(1);
				datenString = 'cmd=commentReload&id='+id;

				xmlHttp[1].open('POST', PFAD_ROOT+'erAJAX.php');
				xmlHttp[1].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				xmlHttp[1].send(datenString);
				
				xmlHttp[1].onreadystatechange = function () {
					if (xmlHttp[1].readyState == 4) {
						$('divRead'+loopPos).style.height = '0px';
						$('divRead'+loopPos).innerHTML = xmlHttp[1].responseText;
					}
				};
				*/
			}
		};
	}
};

function replaceCharsForAJAX(toReplaceString) {
	toReplaceString = toReplaceString.replace(/&/g,"**am**");
	toReplaceString = toReplaceString.replace(/=/g,"**eq**");
	toReplaceString = toReplaceString.replace(/\+/g,"**pl**");
	toReplaceString = toReplaceString.replace(/ß/g,"**ss**");
	toReplaceString = toReplaceString.replace(/\'/g,"**az**");
	
	return toReplaceString;
};

var Engine = {
  detect: function() {
    var UA = navigator.userAgent;
    this.isKHTML = /Konqueror|Safari|KHTML/.test(UA);
    this.isGecko = (/Gecko/.test(UA) && !this.isKHTML);
    this.isOpera = /Opera/.test(UA);
    this.isMSIE  = (/MSIE/.test(UA) && !this.isOpera);
  }
}
Engine.detect();

function loadMedia(objectDiv, mediaType, mediaFile) {
	objectDiv.onclick = '';
	
	mediaHeight = (mediaType == 'video') ? 256 : 16;
	
	if(Engine.isMSIE) {
		mediaHTML = '<object classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\" codebase=\"http://www.apple.com/qtactivex/qtplugin.cab\" width=\"320\" height=\"' + mediaHeight + '\">';
		mediaHTML += '<param name=\"src\" value=\"' + mediaFile + '\" />';
		mediaHTML += '<param name=\"bgcolor\" value=\"#ffffff\" />';
		mediaHTML += '<param name=\"autoPlay\" value=\"false\" />';
		mediaHTML += '<param name=\"controller\" value=\"true\" />';
		mediaHTML += '<param name=\"kioskMode\" value=\"true\" />';
		mediaHTML += '<param name=\"loop\" value=\"false\" />';
		mediaHTML += '</object>';
	} else {
		mediaHTML = '<embed src="' + mediaFile + '" width="320" height="' + mediaHeight + '" ';
		mediaHTML += 'type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/" ';
		mediaHTML += 'bgcolor="#ffffff" autoPlay="false" controller="true" kioskMode="true" loop="false">';
		mediaHTML += '</embed>';
	}
	
	objectDiv.innerHTML = mediaHTML;
};

function commentCheckAndSend(of,markierFarbe) {
	$('commentWrite').style.height = 'auto';
	
	// Variablen definieren
	var errorvar = true;
	var falschemail = false;
	var falschesfeld = false;

	var errorMsg = 'Bitte Pflichtelder ausfüllen';
	var errorMsgMail ='Falsches E-Mail Format';

	var pflicht = 'name,email,comment';
	var reqfields = pflicht.split(',');

	// Resetten
	$('commentStatus').innerText = '';
	
	for(var i=0;i<reqfields.length;i++) {
		var f = of[reqfields[i]];	
		f.style.backgroundColor = '';
	}
	
	// Pflichtfelder checken
	for(var i=0; i<reqfields.length; i++) {
		// Prüfen ob ELement vorhanden
		var f = of[reqfields[i]];
		// Wenn nicht überspringen
		if(!f) {
			continue;
		}
		// Typ der Felder feststellen
		switch(f.type.toLowerCase()) {
			case 'text':
				if(f.value=='' && f.id!='email') {
					var falschesfeld = true;
					cf_adderr(f)
				}							
				// E-Mail Feld gesondert behandeln
				if(f.name=='email' && !cf_isEmailAddr(f.value)) {
					var falschemail = true;
					cf_adderr(f)
					
				}							
			break;
			
			case 'textarea':
				if(f.value=='') {
					var falschesfeld = true;
					cf_adderr(f)
				}							
			break;
			
			case 'checkbox':
				if(!f.checked) {
					cf_adderr(f)
				}							
			break;
			

			case 'select-one':
				if(!f.selectedIndex && f.selectedIndex==0){
					cf_adderr(f)
				}							
			break;
		}
	}

	// Felder einfärben
	function cf_adderr(o) {
		o.style.backgroundColor = markierFarbe;
	}
	
	// Checken ob E-Mail Adresse ok
	function cf_isEmailAddr(str) {
		return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
	}

	// Warnmeldung festlegen
	if (falschesfeld == true && falschemail== false) {
		$('commentStatus').innerText = errorMsg;
		errorvar = false;
	}
	if (falschesfeld == true && falschemail == true) {
		errorMsg += ", " + errorMsgMail;
		$('commentStatus').innerText = errorMsg;
		errorvar = false;
	}
	if (falschesfeld == false && falschemail== true) {
		$('commentStatus').innerText = errorMsgMail;
		errorvar = false;
	}
	
	// Ergebnis auswerfen
	return errorvar;
};

function bgToggle(target) {
	//alert(target);
	//target.style.backgroundPosition = '0px -25px';
	target.style.height = '100px';
};

running = new Array();
slideshow = new Array();
effect = new Array();
rerun = new Array();

function start_slideshow(start_frame, end_frame, delay, id) {
	slideshow[id] = setTimeout(switch_slides(start_frame,start_frame,end_frame, delay, id), delay);
};

function stop_slideshow(id) {
	clearTimeout(slideshow[id]);
	clearTimeout(effect[id]);
	clearTimeout(rerun[id]);
};
						
function switch_slides(frame, start_frame, end_frame, delay, id) {
	return (function() {
		Effect.Fade('slideshow_' + id + '_' + frame);
		if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
		effect[id] = setTimeout("Effect.Appear('slideshow_" + id + '_' + frame + "');", 850);
		rerun[id] = setTimeout(switch_slides(frame, start_frame, end_frame, delay, id), delay + 850);
		
		// debug
		//document.title = frame;
	})
};


function toggle_slideshow(id, laenge) {
	if (running[id]) {
		stop_slideshow(id);		
		running[id] = false;
	} else {
		start_slideshow(1, laenge, 6000, id);
		running[id] = true;
	}
};