

var winOpen = 0;
var win;
var debug = false;

function openWin(datei, width, height, scrollbar) {
	if (winOpen == 1) {
		win.close();
	}
	win = eval("window.open('" + datei + "','Name1','toolbar=0,location=0,directories=0,status=0,resizable=1,width=" + width + ",height=" + height + ",scrollbars="+scrollbar+",top=70,left=70')");
	win.focus();
	winOpen = 1;
}

function openExtWin(datei, width, height) {
	if (winOpen == 1) {
		win.close();
	}
	win = eval("window.open('" + datei + "','Name1','toolbar=0,location=0,directories=0,status=0,resizable=1,width=" + width + ",height=" + height + ",scrollbars=1,menubar=yes,top=70,left=70')");
	winOpen = 1;
}

function openWinCourse(datei, width, height, scrollbar) {
	if (winOpen == 1) {
		win.close();
	}
	win = eval("window.open('" + datei + "','Name1','menubar=1,toolbar=0,location=0,directories=0,status=0,resizable=1,width=" + width + ",height=" + height + ",scrollbars="+scrollbar+",top=70,left=70')");
	win.focus();
	winOpen = 1;
}

/*Uebergabe der E-Mail-Adressen*/
function sendmail(mehlbox) {
			document.write('<a href=\"mailto:' + mehlbox + '@lohndirekt.de' + '\">' + mehlbox + '@lohndirekt.de' + '</a>');
	}
	
	function sendmailAlt(mehlbox, alternativtext) {
			document.write('<a href=\"mailto:' + mehlbox + '@lohndirekt.de' + '\">' + alternativtext  + '</a>');
	}
/*resize current window*/
function resize(width,height) {
	window.resizeTo(width,height);
}

/*show hidden-field*/
function setVisibility (fieldName, vis) {
	if (document.getElementById(fieldName)) {
		if(vis) {
			document.getElementById(fieldName).style.visibility = "visible";
			document.getElementById(fieldName).style.display = "inline";
		} else {
			document.getElementById(fieldName).style.visibility = "hidden";
			document.getElementById(fieldName).style.display = "none";
		}
	}
}


/*toggle-fieldvisibility*/
function toggleVisibility (fieldName) {
	if (document.getElementById(fieldName)) {
		if(document.getElementById(fieldName).style.visibility == "hidden") {
			setVisibility(fieldName,true);
		} else {
			setVisibility(fieldName,false);
		}
	}
}
/*Formulare ausdrucken*/
function printAll() {
	var bemerkung = "<font class='menue'>Vielen Dank, dass Sie <strong>lohn</strong><em>direkt</em> testen wollen.<br><br>Wir weisen Sie daraufhin, dass die Test-Abrechnung von uns auf Ihre Anforderung hin erstellt wird. Die Test-Abrechnung dient lediglich zu Vergleichszwecken gegen&uuml;ber der von Ihnen aktuell eingesetzten L&ouml;sung. Daher werden mit dieser Test-Abrechnung auch keine Meldungen an Finanz&auml;mter, Krankenkassen und Buchungen ausgel&ouml;st.<br><br>Zudem basiert die Test-Abrechnung auf den uns heute vorliegenden bzw. den von Ihnen f&uuml;r diesen Zweck an <strong>lohn</strong><em>direkt</em> &uuml;bergebenen Daten und Angaben. Der Umfang der uns zur Verf&uuml;gung gestellten Daten und Angaben kann Auswirkungen auf die korrekte Berechnung von Bez&uuml;gen und Abz&uuml;gen haben. Daher besteht f&uuml;r diese Test-Abrechnung ein Gew&auml;hrleistungsausschluss.<br><br>Die Weitergabe dieser Test-Abrechnung oder einzelner Bestandteile an Dritte als auch deren Vervielf&auml;ltigung ist ausdr&uuml;cklich untersagt.<br><br>Bei Fragen rund um Ihre Test-Abrechnung scheuen Sie sich bitte nicht, mit uns in Kontakt zu treten. Sie erreichen unseren Gesch&auml;ftskunden-Service montags bis freitags von 8.00 bis 19.00 Uhr.<br><br>Wir hoffen Sie sehr bald als neuen <strong>lohn</strong><em>direkt</em>-Kunden begr&uuml;&szlig;en zu d&uuml;rfen.<br><br>Mit freundlichen Gr&uuml;ssen<br><br>Ihre <strong>lohn</strong><strong>direkt</strong> <strong>/ aktiengesellschaft</strong><br><br><br></font>";

	document.all.testabrechnung_bemerkung.innerHTML = bemerkung;
	
	print();
	}

/*PopUps im Hauptfenster oeffnen*/
function kickPopups(openSite) {
		try {
			if (window.opener.parent) {
				// ...then do nothing! it's alright, you're a popup which popped up...
			}
		} 
		
		catch(e) {
			//location.href = openSite;
		}
	}



	
/**
 *Formularabfrage
 */
var anzahlFehler = 0;
var message = new String();

// returns an element by name
function getElement(eleName) {
	var element = document.forms[0].elements[eleName];
	if(element != null) {
		if(element[0] != null) {
			return element[0];
		} else {
			return element;
		}
	} else {
		if(debug) {
			alert("Element '" + eleName + "' nicht gefunden!");
		}
	}
}


// set class attribute to "orange strong"
function makeOrange(divName) {
	try {	// IE
		for(l=0;l < document.all.tags("div").length;l++) {
			if(document.all.tags("div")[l].name == divName) {
				document.all.tags("div")[l].className = "orange strong";
			}
		}
		for(l=0;l < document.all.tags("span").length;l++) {
			if(document.all.tags("span")[l].name == divName) {
				document.all.tags("span")[l].className = "orange strong";
			}
		}
	} catch (e){
		// firefox
		for (k=0;k < document.getElementsByName(divName).length;k++) {
			var knoten = document.getElementsByName(divName)[k];
			if(knoten.nodeName=="DIV"||knoten.nodeName=="SPAN") {
				knoten.setAttribute("class","orange strong");
			}
		}
	}
}

// clear class "orange strong"
function clearOrange(divName) {
	try {//IE
		for(l=0;l < document.all.tags("div").length;l++) {
			if(document.all.tags("div")[l].name == divName) {
				document.all.tags("div")[l].className = "";
			}
		}
		for(l=0;l < document.all.tags("span").length;l++) {
			if(document.all.tags("span")[l].name == divName) {
				document.all.tags("span")[l].className = "";
			}
		}
	} catch (e){
		//firefox
		for (k=0;k < document.getElementsByName(divName).length;k++) {
			var knoten = document.getElementsByName(divName)[k];
				if(knoten.nodeName=="DIV"||knoten.nodeName=="SPAN") {
					knoten.setAttribute("class","");
				}
		}
	}
}

// creates message like this "- Produkt" for "*produkt&&type"
function createErrorMessageString(error) {
	while(error.match(/_/)) {
		error = error.replace(/_/,' ');
	}
	error = error.replace(/\[\]/,' ');
	error = error.replace(/\*/,'');
	return "- " + error.charAt(0).toUpperCase() + error.substring(1,error.length);
}

// add custom error message, count errors
function addError(message, elementName) {
	if (!containsMessage(message)) {
		makeOrange(elementName);
		message = message + "\t" + createErrorMessageString(message)+ "\n" ;
		anzahlFehler++;
	}
}


// add error message, count errors
function addErrorMessage(elementName) {
	if (!containsMessage(elementName)) {
		makeOrange(elementName);
		message = message + "\t" + createErrorMessageString(elementName)+ "\n" ;
		anzahlFehler++;
	}
}

// check whether allready contains an error
function containsMessage(elementName) {
	var regexx = new RegExp(createErrorMessageString(elementName), "g");
	return regexx.test(message);
}

// check whether a string is an empty one
function isEmpty(str) {
	var string = str;
	var regex = new RegExp(" ", "g");
	string = string.replace(regex,"");
	if(string == null || string == "") {
		return true;
	}
	return false;
}

// check whether an element is set
function isSet(ele) {
	if(ele != null){ 
		//alert(ele.name+" is " + ele.type);
		if (ele.type == "text" || ele.type == "textarea" || ele.type == "password") {
			// input text
			return checkField(ele);
		} else if(ele.type == "radio" || ele.type == "checkbox") {
			// input radio or checkbox
			//alert("array:"+ele.name + " is "+checkArray(ele));
			return checkArray(ele);
		} else if(ele.options != null) {
			//option field
			return ele.options.selectedIndex != 0;
		} else {
			return false;
		}
	} else {
		if(debug) {
			alert("null parameter an isSet");
		}
	}
}

//check arrays (if any)	
function checkArray(ele) {
	var str = ele.name;
	if(document.forms[0].elements[ele.name][0] != null) {
		//alert("array:"+ele.name + " is an array");
		for(a = 0;a < document.forms[0].elements[ele.name].length;a++) {
			if(document.forms[0].elements[ele.name][a].checked == true) {
				return true;
			}	
		}
		return false;
	} else {
		return ele.checked;	
	}
}	


// check simple fields	
function checkField(ele) {
	if(!isEmpty(ele.value)) {
		if (name == "*telefon" && isEmpty(ele.value)) {
			alert("Telefon ist nicht richtig ausgef"+unescape("%FC")+"llt"); //&FC = ue
		}else if(name == "*e-Mail" &&  isEmpty(ele.value)) {
			alert("EMail ist nicht richtig ausgef"+unescape("%FC")+"llt"); //&FC = ue
		} else {
			return true;
		}
	}
	return false;
}

// check main function
function check() {
	for (i=0;i < document.forms[0].elements.length;i++) {
		var currElement = document.forms[0].elements[i];
		var eleName = currElement.name;
		// is an element required? (starts with '*')
		if (eleName != null && eleName != "" && eleName.charAt(0) == "*") {
			if(!containsMessage(currElement.name)) {
				// clear or set Orange
				if(!isSet(currElement)) {
					addErrorMessage(currElement.name);
				} else {
					clearOrange(currElement.name);
				}
			}
		}	
	}
		
	if(anzahlFehler > 0) {
		alert("Bitte folgende(s) Pflichtfeld(er) ausf"+unescape("%FC")+"llen: \n\n" + message); //&FC = ue
		message = "";
		anzahlFehler = 0;
		return false;
	}
	
	/*Groesse des Antwortfensters bei Formularen*/
	window.resizeTo(481, 205);
	return true;
}