// Fügt eine Function zum onresize-Event dazu ohne die bereits gesetzten Funktionen zu überschreiben

function addOnResizeFunction(func) {
	
	var oldOnResizeFunction = window.onresize;
	
	if (typeof oldOnResizeFunction != 'function') {
		// assign function
		window.onresize = func;
	} else {
		// add function
		window.onresize = function() {
			oldOnResizeFunction();
			func();
		}
	}
}

// Fügt eine Function zum onload-Event dazu ohne die bereits gesetzten Funktionen zu überschreiben

function addOnLoadFunction(func) {
	
	var oldOnLoadFunction = window.onload;
	
	if (typeof oldOnResizeFunction != 'function') {
		// assign function
		window.onload = func;
	} else {
		// add function
		window.onload = function() {
			oldOnLoadFunction();
			func();
		}
	}
}

//Fügt eine Function zum onscroll-Event dazu ohne die bereits gesetzten Funktionen zu überschreiben

function addOnScrollFunction(func) {
	
	var oldOnScrollFunction = window.onscroll;
	
	if (typeof oldOnScrollFunction != 'function') {
		// assign function
		window.onscroll = func;
	} else {
		// add function
		window.onscroll = function() {
			oldOnScrollFunction();
			func();
		}
	}
}

// Berechnet die Größe des aktuellen Viewports einer Seite
function getPageSize() {

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}
	
	return [pageWidth,pageHeight];
}


/**
 * Alle Felder, Checkboxen, Radiobuttons, Textareas werden Zurueckgesetzt (leer).<b>
 * Bei den Select-Boxen wird das Erste Element ausgewaehlt.
 * @author Wichan & Alex
 */
function clearForm(form) {
	for (var i=0;i<document.forms.length;i++) {
		if(document.forms[i].name == form) {
			for (var j=0;j<document.forms[i].elements.length;j++) {
				if ((document.forms[i].elements[j].type == 'text') || (document.forms[i].elements[j].type == 'password') || (document.forms[i].elements[j].type == 'textarea')) {
					document.forms[i].elements[j].value = '';
				}
				if ((document.forms[i].elements[j].type == 'radio') || (document.forms[i].elements[j].type == 'checkbox')) {
					document.forms[i].elements[j].checked = '';
				}
				if (document.forms[i].elements[j].type == 'select-one') {
					document.forms[i].elements[j].options[0].selected = true;
				}
			}
		}
	}
}

// Popup für den Weiterempfehlen Dialog
function openWindow(site) {
 	var w = 642;
	var h = 555;
	var x = screen.availWidth/2-w/2;
	var y = screen.availHeight/2-h/2;
	var popupWindow = window.open(site,'tests','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',scrollbars=no');
}

// Popup für den VCF Link
function openPopup(site, height, width) {
 	var w = width;
	var h = height;
	var x = screen.availWidth/2-w/2;
	var y = screen.availHeight/2-h/2;
	var popupWindow = window.open(site,'Popup','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',scrollbars=no');
}

// Popup für den Formulargenerator
function openFormPopup(site, titel, width, height) {
	var x = screen.availWidth/2-width/2;
	var y = screen.availHeight/2-height/2;
	var popupWindow = window.open(site,titel,'width='+width+',height='+height+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',scrollbars=no');
}

// Popup für den Weiterempfehlen Dialog
function openHilfePopup(site, titel) {
 	var w = 300;
	var h = 400;
	var x = screen.availWidth/2-w/2;
	var y = screen.availHeight/2-h/2;
	var popupWindow = window.open(site,titel,'width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',scrollbars=no');
}

// Popup für den VCF Link
function openVcfPopup(site, width, height) {
 	var w = width;
	var h = height;
	var x = screen.availWidth/2-w/2;
	var y = screen.availHeight/2-h/2;
	var popupWindow = window.open(site,'Visitenkarte','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',scrollbars=no');
}

// Popup für den Web2Pdf Link
function openWeb2PdfPopup(site) {
 	var w = 360;
	var h = 502;
	var x = screen.availWidth/2-w/2;
	var y = screen.availHeight/2-h/2;
	var popupWindow = window.open(site,'Web2Pdf','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y+',scrollbars=no');
}

// Mailadresse Syntaxpruefung
function checkMail() {

	// Die eingegebene Absender-Email
	var mailAbsender = document.getElementsByName("value(mailFrom)")[0].value;

	// Die eingegebene Empf?nger-Email
	var mailEmpfaenger = document.getElementsByName("value(mailTo)")[0].value;

	// Alert-Ausgabe im Fehlerfall
	var ausgabe = "";

	// Indikator, ob der Browser regul?re Ausdr?cke erlaubt
	var regularExpressions = false;

	// Indikator, ob die Absender-Mail korrekt eingegeben ist
	var absenderEmail = false;

	// Indikator, ob die Empf?nger-Mail korrekt eingegeben ist
	var empfaengerEmail = false;

	// Es wird gepr?ft, ob die Regul?re Ausdr?cke m?glich sind
	if(typeof(RegExp) == 'function') {
		var b = new RegExp('abc');
		if(b.test('abc') == true){
			regularExpressions = true;
		}
	}

	if(regularExpressions == true) {
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
        '(\\@)([a-zA-Z0-9\\-\\.]+)'+
        '(\\.)([a-zA-Z]{2,4})$');
		absenderEmail = (reg.test(mailAbsender));
		if(absenderEmail == false) {
			ausgabe = "Bitte geben Sie eine g%FCltige Email f%FCr den Absender ein.\n";
		}
		empfaengerEmail = (reg.test(mailEmpfaenger));
		if(empfaengerEmail == false) {
			ausgabe += "Bitte geben Sie eine g%FCltige Email f%FCr den Empf%E4nger ein.\n";
		}
	} else {
 		absenderEmail = (mailAbsender.search('@') >= 1 &&
        mailAbsender.lastIndexOf('.') > mailAbsender.search('@') &&
        mailAbsender.lastIndexOf('.') >= mailAbsender.length-5);

		empfaengerEmail = (mailEmpfaenger.search('@') >= 1 &&
        mailEmpfaenger.lastIndexOf('.') > mailEmpfaenger.search('@') &&
        mailEmpfaenger.lastIndexOf('.') >= mailEmpfaenger.length-5);

        if(absenderEmail == false) {
			ausgabe = "Bitte geben Sie eine valide Absender-Email ein. \n";
		}
		if(empfaengerEmail == false) {
			ausgabe += "Bitte geben Sie eine valide Empf%E4nger-Email ein. \n";
		}
	}

	if((absenderEmail && empfaengerEmail) == false) {
		alert(unescape(ausgabe));
	}
	return(absenderEmail && empfaengerEmail);
}

function submitMwc(elementName, target) {
	if(target == "_blank") {
		window.open(document.getElementsByName(elementName)[0].value,"_blank");
	} else {
		window.location.href=document.getElementsByName(elementName)[0].value;
	}
}

/**
 * Open und Close Mechanismus des Sitemap 2010 Templates
 * @author sno
 */
function openSitemap(divID) {
	document.getElementById(divID + '_Trigger').className='xLink_Hoch_Gross_Links ebene2BorderLeft';
	document.getElementById(divID).style.display = "block";
	document.getElementById(divID + '_Trigger').innerHTML="<a href=\"javascript:closeSitemap('" + divID + "');\">&nbsp;</a>";
}
function closeSitemap(divID) {
	document.getElementById(divID + '_Trigger').className='xLink_Runter_Gross_Links ebene2BorderLeft';
	document.getElementById(divID).style.display = "none";
	document.getElementById(divID + '_Trigger').innerHTML="<a href=\"javascript:openSitemap('" + divID + "');\">&nbsp;</a>";
}