<!--

var ie = (document.all)? true:false;
var opera = (document.all && !document.styleSheets)? true:false;
var ns4 = (document.layers)? true:false;
var ns6 = (document.getElementById && !document.all)? true:false;
var dom = (document.getElementById)? true:false;

function cms_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=cms_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}	

function cms_swapImgRestore() { //v3.0
  var i,x,a=document.webautor_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function cms_swapImage() { //v3.0
  var i,j=0,x,a=cms_swapImage.arguments; document.cms_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=cms_findObj(a[i]))!=null){document.cms_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function cms_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=cms_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function cms_toggle(id) {
	var s = cms_findObj(id).style;
	s.display = (s.display == "block" ? "none" : "block");
}

function encrypt(theForm){ // 160-bit Passwortverschlüsselung 
	if (theForm.login_passwort.value.length < 40){
	 	var passwort=theForm.login_passwort.value.toLowerCase();
	  theForm.login_passwort.value = hex_sha1(passwort);
	}
	return true;
}


// Flash
function cms_flash(src, movie, width, height, version, quality, menu, bgcolor, flashvars, loop) {
	document.write("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+version+"' width='" +width+ "' height='" +height+ "' id='" +movie+ "'>");
	document.write("<param name='movie' value='" +src+ "' />");
	document.write("<param name=\"FlashVars\" value=\"" +flashvars+ "\">");
	document.write("<param name='quality' value='" +quality+ "' />");
	document.write("<param name='menu' value='" +menu+ "' />");
	document.write("<param name='bgcolor' value='" +bgcolor+ "' />");
	document.write("<param name='loop' value='" +loop+ "' />");
	document.write("<param name='PLAY' value='true' />");
	document.write("<param name='wmode' value='transparent'>");
	document.write("<param name='allowFullScreen' value='true'>");
	document.write("<embed src='" +src+ "' allowFullScreen='true' wmode='transparent' swLiveConnect='true' menu='" +menu+ "' FlashVars='" +flashvars+ "' quality='" +quality+ "' bgcolor='" +bgcolor+ "' width='" +width+ "' height='" +height+ "' loop='" +loop+ "' name='" +movie+ "' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />");
	document.write("</object>");
}

function cms_mediaplayer(src, movie, width, height, version, quality, menu, bgcolor, flashvars, loop) {
	document.write("<embed src='" + src + "' width='" + width + "' height='" + height +"' allowscriptaccess='always' allowfullscreen='true' flashvars='height=" + height + "&width=" + width + "&file=" + movie + flashvars + "&fullscreen=true'/>");
}

// Formular Validierung
function validateForm(formObj) {
	var success = true;
	var msg = '';
	var focusFlag = true;
	
	validateHash.each(function(pair) {
		//Schleifeninhalt
  	var field = document.getElementById(pair.key);
		var successTmp;
		var hasLabel = true;
		
		switch (field.nodeName.toUpperCase()) {
			case 'TEXTAREA':
				successTmp = validateField(field, pair.value);	// Textarea
				break;
			
			case 'SELECT':
				successTmp = validateField(field, pair.value);	// DropDown
				break;
			
			default:
				for (var i=0; i<field.attributes.length; i++) {
					if (field.attributes[i].nodeName.toUpperCase() == 'TYPE') {
						switch (field.attributes[i].nodeValue.toUpperCase()) {
							case 'RADIO':
								successTmp = validateRadio(field, pair.value);
								hasLabel = false;
								break;
								
							case 'CHECKBOX':
								successTmp = validateCheckbox(field, pair.value);
								break;
								
							default:
								successTmp = validateField(field, pair.value);	// Text Field
								
						}	// end switch() from default
					}
				}	// end for
		}// end switch()
		
		if (!successTmp && hasLabel) {
			var label = getLabel(field);
			msg += '<li>' + getLabelText(label) + '</li>';
		}
		if (!successTmp && focusFlag) {
			field.focus();
			focusFlag = false;
		}
		
		success = success && successTmp;
	});	//end each()
	
	var msgDiv = document.getElementById('validationMsg');
	if (!success) {
		for (var i=0; i<msgDiv.childNodes.length; i++) {
			if (msgDiv.childNodes[i].nodeName.toUpperCase()=='UL') {
				msgDiv.childNodes[i].innerHTML = msg;
				i = msgDiv.childNodes.length;
			}
		}
		//msgDiv.show();
		msgDiv.style.display = 'block';
	} else {
		//msgDiv.hide();
		msgDiv.style.display = 'none';
	}
	if (success==true) {
		cms_swapImage('progressicon','','/img/progress.gif');
	}
	return success;
}

function getLabel(obj) {
	var label = obj.previousSibling;
	if (label==null) {
		label = getLabelParent(obj);
	} else {
		while (label.nodeName.toUpperCase()!='LABEL') {
			label = label.previousSibling;
			if (label==null) {
				label = getLabelParent(obj);
			}
		}
	}
	return label;
}

function getLabelParent(obj) {
	if (obj.parentNode.nodeName.toUpperCase()=='LABEL') {
		return obj.parentNode;
	} else {
		var parent = obj.parentNode;
		if (parent.nodeName.toUpperCase()=='TD') {
			var tmp = parent.previousSibling;
			while (tmp.nodeType!=1) {
				tmp = tmp.previousSibling;
			}
			if (tmp.nodeName.toUpperCase()=='TD') {
				if (tmp.firstChild.nodeType==1) {
					if (tmp.firstChild.nodeName.toUpperCase()=='LABEL') {
						return tmp.firstChild;	// Label im vorhergehenden TD
					}
				}
			}
		}
		return null;
	}
}

function getLabelText(lbl) {
	for (var i=0; i<lbl.attributes.length; i++) {
		if (lbl.attributes[i].nodeName.toUpperCase()=='TITLE') {
			if (lbl.attributes[i].nodeValue.length>0) {	// nötig für IE (jedes Element hat einen Title)
				return lbl.attributes[i].nodeValue;		// Titel Rückgabe
			} else {
				break;
			}
		}
	}
	
	var child = lbl.childNodes[0];
	try {
		while (child.nodeValue==null) {
			child = child.childNodes[0];
		}
	}
	catch (err) {
		return 'no Title';
	}
	
	if (stringTrim(child.nodeValue).length==0) {
		return 'no Title';
	}
	return child.nodeValue.replace(/\* *$/, "");
}

function validateRadio(oField, vReg) {
	for (var i = 0; i < oField.length; ++i) {
		if (oField[i].checked == true) {
			return true;
		}
	}
	return false;
}

function validateField(oField, vReg) {
	b = true;
	if (vReg instanceof RegExp) {
		b = vReg.test(oField.value+"");
	} else {
		if (vReg=='date') {
			b = gueltigesDatum(oField.value);
		}
	}
	
	var className = ''+oField.className;
	if (!b) {
		className = className.replace(/text$/, "warning");
	} else {
		className = className.replace(/warning$/, "text");
	}
	oField.className = className;
	
	return b;
}

function validateCheckbox(oField, value) {
	return oField.checked == value;
}

// Quelle: http://aktuell.de.selfhtml.org/artikel/javascript/datumueberpruefen/
function gueltigesDatum (datum) {
 //(Schritt 1) Fehlerbehandlung
 if (!datum) return false;
 datum=datum.toString();
 //(Schritt 2) Aufspaltung des Datums
 datum=datum.split(".");
 if (datum.length!=3) return false;
 //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats
 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;
 //(Schritt 4) Behandlung Jahr nur zweistellig
 if (datum[2].length==2) datum[2]="20"+datum[2];
 //(Schritt 5) Erzeugung eines neuen Dateobjektes
 var kontrolldatum=new Date(datum[2],datum[1],datum[0]);
 //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
 return (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2] && kontrolldatum.getFullYear()>1900 && kontrolldatum.getFullYear()<2100)
}

function stringTrim(str) { return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };	// Quelle: http://blog.stevenlevithan.com/archives/faster-trim-javascript

// schliesst das Lightview und lädt die parent Seite neu
function reloadParent() {
	Lightview.hide();
	setTimeout( 'location.reload(true)', 10 );
}
//-->
