
var check = 1;
var global_elem = "";

function check_number(elem, kommastellen) {
	var chkZ = 1; 
	var number_to_format = "";
	var i=elem.value.length-1;
	//Wert von hinten nach vorne ?berpr?fen, ob nur Zahlen, Trennzeichen und +/- enthalten sind
	//Wenn check == 1 ist, dann darf der Wert ?berpr?ft werden, sonst Endlosschleife im Formular m?glich.
	//Wenn elem == global_elem, dann ist das Feld das gleiche, wie bei der letzten ?berpr?fung =>
	//                          Feld darf gepr?ft werden, obwohl check==0.
	if ((check == 1) || (elem == global_elem)) {
		while ((i>=0) && (chkZ == 1)) {
		 	if ((elem.value.charAt(i) == "0") ||
		      (elem.value.charAt(i) == "1") ||
		      (elem.value.charAt(i) == "2") ||
		      (elem.value.charAt(i) == "3") ||
		      (elem.value.charAt(i) == "4") ||
		      (elem.value.charAt(i) == "5") ||
		      (elem.value.charAt(i) == "6") ||
		      (elem.value.charAt(i) == "7") ||
		      (elem.value.charAt(i) == "8") ||
		      (elem.value.charAt(i) == "9") ||
		      (elem.value.charAt(i) == ".") ||
		      (elem.value.charAt(i) == ",") ||
		      (elem.value.charAt(i) == "+") ||
		      (elem.value.charAt(i) == "-")) {
		      
					// wenn das letzte oder vorletzt Zeichen ein "," ist, dann durch "." ersetzen
					// alle anderen Trennzeichen m?ssen ein "," sein, den Rest der Formatierung erledigt
					// NumberFormat153.js => siehe unten

					//if (((i==(elem.value.length-1)) || (i==(elem.value.length-2)) || (i==(elem.value.length-3))) && (elem.value.charAt(i) == ",")) {
					if ((i<=(elem.value.length-1)) && (i>=(elem.value.length-kommastellen-1)) && (elem.value.charAt(i) == ".")) {
            number_to_format = ","+number_to_format;
					} else if ((i<(elem.value.length-kommastellen-1)) && (elem.value.charAt(i) == ",")) {								
					  number_to_format = "."+number_to_format;
					} else {
					  number_to_format = elem.value.charAt(i)+number_to_format;
					}
				} else {
          chkZ = 0;
				}
			i--;
		}

		if ((chkZ == 0) && (elem.value.length > 0)){
			//alert("Bitte nur Nummern im Feld '"+elem.title+"' verwenden!");
		  var errmsg = "Please use only numbers in the field %s!";
		  errmsg = errmsg.replace("%s", "'"+elem.title+"'")
		  alert(errmsg);
		  
			elem.click();
			elem.focus();
			elem.select();
	 		check = 0;
	 		global_elem = elem;
			return false;

		} else {
			// Number fertig formatieren und in das Feld zur?ckschreiben.
			// Formatierung mit Hilfe des downgeloadeten NumberFormat153.js
			// DOKU dazu und Testm?glichkeiten: http://www.mredkj.com/javascript/numberFormatPage2.html#advancedtryit

			var num = new NumberFormat();
			num.setInputDecimal(',');
			num.setNumber(number_to_format);
			num.setPlaces(kommastellen);
			num.setSeparators(true, '.', '.');
			elem.value = num.toFormatted();

			check = 1;
			return true;
		}
	}
}

function check_date(FormName, HiddenFieldName, FieldName) {
	var elem = document.forms[FormName].elements[FieldName];
	var v_hidden = document.forms[FormName].elements[HiddenFieldName];
	var v_value = String(elem.value);	
	if (v_value == "" || v_value == null){
		v_hidden.value = "";
		return true;
	}
			
	var regex = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
	regex.exec(v_value);
	
	var date = new Array();
	date[0] = parseInt(RegExp.$1); // Tag
	date[1] = parseInt(RegExp.$2); // Monat
	date[2] = parseInt(RegExp.$3); // Jahr
//alert("Tag: "+date[0]+", Mon: "+date[1]+", Jahr: "+date[2]);

	if (date[2] != Number.NaN && date[2] < 2200){
		if (date[2] < 999)
			date[2] += 2000;
			
		//month checking
		if (date[1] != Number.NaN && date[1] >= 1 && date[1] <= 12){ // month
			days_per_month = 31;
			if (date[1] == 4 || date[1] == 6 || date[1] == 9 || date[1] == 11){
				days_per_month = 30
			// leap year calculation
			} else if (date[1] == 2) {
				days_per_month = ((date[2] % 4 == 0) && ((date[2] % 100 != 0) || (date[2] % 400 == 0)) ? 29 : 28);
			}
			// day checking
			if (date[0] != Number.NaN && date[0] >= 1 && date[0] <= days_per_month){
				v_value = "";
				for (var cnt = 0; cnt < 3; cnt++){
					val = String(date[cnt]);
					v_value += (val.length == 1 ? '0'+ val : val) + (cnt < 2 ? '.' : '');
				}
				var v_hidden = document.forms[FormName].elements[HiddenFieldName];
				document.forms[FormName].elements[FieldName].value = v_value;
				v_hidden.value = v_value.substr(6, 4)+'-'+v_value.substr(3,2)+'-'+v_value.substr(0,2);
				return check_valid_date(v_hidden.value);
			}
		}
	}
	
  //var err_text = "Bitte ein gültiges Datum im Format Tag.Monat.Jahr eingeben.\n";
  //err_text += "Das Feld '" + elem.title + "' wird auf das urspr?ngliche Datum zur?ckgesetzt."
	//alert(err_text);
	var errmsg = "Please fill in a valid date in the format Day.Month.Year.\n The field %s will be refilled with the orginal date!";
  errmsg = errmsg.replace("%s", "'"+elem.title+"'")
  alert(errmsg);
	
	// Restore previous value
	var v_hidden = document.forms[FormName].elements[HiddenFieldName].value;
	v_value = v_hidden.substr(8,2)+'.'+v_hidden.substr(5,2)+'.'+v_hidden.substr(0,4);
	document.forms[FormName].elements[FieldName].value = v_value;
	return false;
}

function check_valid_date(p_date) {
    //Datumsformat YYYY-MM-DD
		var date=new Date();
	  var dd=date.getDate();
	  var mm=date.getMonth() + 1;  
	  var yy=date.getYear() % 100;
	  if(dd<10)dd="0"+dd;
	  if(mm<10)mm="0"+mm;  
	  if(yy<10)yy="0"+yy;
	  var yyyy="20"+yy;

		var date1_value = String(yyyy+"-"+mm+"-"+dd);
		var date2_value = String(p_date);
		var regex = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
		regex.exec(date1_value);
		var date1 = new Array();
		date1[0] = parseInt(RegExp.$1,10); // Jahr
		date1[1] = parseInt(RegExp.$2,10); // Monat
		date1[2] = parseInt(RegExp.$3,10); // Tag
		
		var regex2 = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
		regex2.exec(date2_value);
		var date2 = new Array();
		date2[0] = parseInt(RegExp.$1,10); // Jahr
		date2[1] = parseInt(RegExp.$2,10); // Monat
		date2[2] = parseInt(RegExp.$3,10); // Tag
		
		// date1 = datumvon
		// date2 = datumbis
		dat1 = (date1[0]*10000)+(date1[1]*100)+date1[2];
		dat2 = (date2[0]*10000)+(date2[1]*100)+date2[2];

		if (dat1 <= dat2) {
			return true;
		} else {
		  //alert ('Das Datumbis muss größer sein als das Datumvon!');
		  alert("The given date is in the past! Please choose an actual date.");
		  return false;
		}
	//return true;
}


function compare_dates(p_form, p_date1Field, p_date2Field) {
	// wenn die Felder existieren und date2 nicht leer ist
	if ((document.forms[p_form].elements[p_date1Field]) &&
			(document.forms[p_form].elements[p_date2Field]) &&
			(document.forms[p_form].elements[p_date2Field].value) != "") {
	  var date1_elem = document.forms[p_form].elements[p_date1Field];
	  var date2_elem = document.forms[p_form].elements[p_date2Field];
		var date1_value = String(date1_elem.value);
		var date2_value = String(date2_elem.value);

		var regex = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
		regex.exec(date1_value);
		var date1 = new Array();
		date1[0] = parseInt(RegExp.$1,10); // Jahr
		date1[1] = parseInt(RegExp.$2,10); // Monat
		date1[2] = parseInt(RegExp.$3,10); // Tag
		
		var regex2 = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
		regex2.exec(date2_value);
		var date2 = new Array();
		date2[0] = parseInt(RegExp.$1,10); // Jahr
		date2[1] = parseInt(RegExp.$2,10); // Monat
		date2[2] = parseInt(RegExp.$3,10); // Tag
		
		// date1 = datumvon
		// date2 = datumbis
		dat1 = (date1[0]*10000)+(date1[1]*100)+date1[2];
		dat2 = (date2[0]*10000)+(date2[1]*100)+date2[2];

		if (dat1 <= dat2) {
		/*
		if (date1[0] <= date2[0] &&     // Jahresvergleich
        date1[1] <= date2[1] &&     // Monatsvergleich
        date1[2] <= date2[2]) {     // Tagesvergleich*/
			return true;
		} else {
		  //alert ('Das Datumbis muss größer sein als das Datumvon!');
		  alert("<Date to> must be later than <date from>!");
		  return false;
		}
	}
	return true;
}



function check_time(elem) {
	var v_value = String(elem.value);	
	if (v_value == "" || v_value == null){
		return true;
	}
			
	var regex = /0*(\d+):(\d+)/;
	regex.exec(v_value);
	
	var time = new Array();
	time[0] = parseInt(RegExp.$1);
	time[1] = parseInt(RegExp.$2);
	
	if ((isNaN(time[0]) || time[0] < 0 || time[0] > 23) || // hour
		(isNaN(time[1]) || time[1] < 0 || time[1] > 59)){  // min
		  //var err_text = "Bitte eine g?ltige Uhrzeit im Format Stunde:Minute ";
		  //err_text += "ins Feld '" + elem.title + "' eingeben."
			//alert(err_text);
			var errmsg = "Please fill in a valid time in the format Hour.Minute at the field %s!";
  		errmsg = errmsg.replace("%s", "'"+elem.title+"'")
  		alert(errmsg);
			return false;
	}
	v_value = "";
	for (var cnt = 0; cnt < 2; cnt++){
		val = String(time[cnt]);
		v_value += (val.length == 1 ? '0'+ val : val) + (cnt < 1 ? ':' : '');
	}
	elem.value = v_value;
	return true;
}

function check_email(elem) {
	var a = false;
	var res = false;
	var s = elem.value;
	if(typeof(RegExp) == 'function'){
		var b = new RegExp('abc');
		if(b.test('abc') == true){a = true;}
	}
	
	if(a == true) {
	 	reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
	                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
	                   '(\\.)([a-zA-Z]{2,4})$');
		res = (reg.test(s));
	} else {
		res = (s.search('@') >= 1 &&
		s.lastIndexOf('.') > s.search('@') &&
		s.lastIndexOf('.') >= s.length-5)
	}
	if (!res) {
		//alert("Bitte geben Sie eine korrekte Email-Adresse an!");		
	  alert("Please check your email-address. The given email-address is not valid!");
	}
	return(res);
} 


function check_http(elem) {
	var chkZ = 1;
	var i=0;
	//Wenn check == 1 ist, dann darf der Wert ?berpr?ft werden, sonst Endlosschleife im Formular m?glich.
	//Wenn elem == global_elem, dann ist das Feld das gleiche, wie bei der letzten ?berpr?fung =>
	//                          Feld darf gepr?ft werden, obwohl check==0.
	if ((check == 1) || (elem == global_elem)) {
	 	if ((elem.value.charAt(0).toLowerCase() == "h") &&
	      (elem.value.charAt(1).toLowerCase() == "t") &&
	      (elem.value.charAt(2).toLowerCase() == "t") &&
	      (elem.value.charAt(3).toLowerCase() == "p") &&
	      (elem.value.charAt(4) == ":") &&
	      (elem.value.charAt(5) == "/") &&
	      (elem.value.charAt(6) == "/")) {
        chkZ = 1;
			} else {
        chkZ = 0;
			}
		i++;
	}

	if (chkZ == 0) {
		elem.value = "http://"+elem.value;
 		check = 0;
 		global_elem = elem;
	}
	return true;
}


function check_file_extension(elem) {
	var chkZ = 1;
	//Wenn check == 1 ist, dann darf der Wert ?berpr?ft werden, sonst Endlosschleife im Formular m?glich.
	//Wenn elem == global_elem, dann ist das Feld das gleiche, wie bei der letzten ?berpr?fung =>
	//                          Feld darf gepr?ft werden, obwohl check==0.
	if ((elem.value) && ((check == 1) || (elem == global_elem))) {
	 	if (((elem.value.toLowerCase().lastIndexOf(".jpeg")) == (elem.value.length-5)) ||
        ((elem.value.toLowerCase().lastIndexOf(".jpg")) == (elem.value.length-4)) ||
	      ((elem.value.toLowerCase().lastIndexOf(".png")) == (elem.value.length-4)) ||
	      ((elem.value.toLowerCase().lastIndexOf(".gif")) == (elem.value.length-4))) {
      chkZ = 1;
      check = 1;
		} else {
      chkZ = 0;
		}
	}

	if (chkZ == 0) {
		//alert("Please use only the file formats gif/jpeg/jpg/png!");	
	  alert("Please use only the file formats gif/jpeg/jpg/png!");
		elem.value = " ";
		elem.click();
		elem.focus();
		elem.select();
 		check = 0;
 		global_elem = elem;
		return false;
	}
	return true;
}


function check_passwd(p_form, p_field, p_field_conf) {
	
	//Wenn check == 1 ist, dann darf der Wert ?berpr?ft werden, sonst Endlosschleife im Formular m?glich.
	//Wenn elem == global_elem, dann ist das Feld das gleiche, wie bei der letzten ?berpr?fung =>
	//                          Feld darf gepr?ft werden, obwohl check==0.
	if ((check == 1) || (elem == global_elem)) {
    // Passwort ?berpr?fen (Code wie in validate_form!!)
		// Codeverdoppelung wegen alert in anderer Prozedure. Wenn der Alert von der
		// function check_passwd ausgegeben wird, wird das Formular trotzdem geschlossen!
	 	if (document.forms[p_form].elements[p_field].value != document.forms[p_form].elements[p_field_conf].value){
      check = 0;
	    document.forms[p_form].elements[p_field].value = "";
	 		document.forms[p_form].elements[p_field_conf].value = "";
	    document.forms[p_form].elements[p_field].click();
			document.forms[p_form].elements[p_field].focus();
			//alert("Please check your password! The confirmed password is different");
	  	alert("Please check your password! The confirmed password is different!");
	 		global_elem = elem;
	 		return false;
		}
	}
	return true;
}


function check_fieldcondition(p_form, p_referenzfeld, p_wert, p_operator, p_meldung) {
//alert('Referenzfeld: '+p_referenzfeld+' Wert: '+p_wert);
	if (document.forms[p_form].elements[p_referenzfeld] ) {
		// wenn kein Wert vorhanden ist, dann nicht gegen das Referenzfeld pr?fen
		if (p_wert == "") { return true; }
		var ref_elem = document.forms[p_form].elements[p_referenzfeld];
		ref_value = "";
		ref_feldtype = "";

		// suchen des Referenzelements
		for (var i = 0; i < document.forms[p_form].length; ++i) {
			if (ref_feldtype == "" && document.forms[p_form].elements[i].name == p_referenzfeld)
		  ref_feldtype = document.forms[p_form].elements[i].type;
		}

    if (ref_feldtype == "radio") {
		  ref_value = radioWert(ref_elem);
		} else if (ref_feldtype == "selection") {
		  ref_value = selectWert(ref_elem);
		} else {
			ref_value = ref_elem.value;
		}

		if ((p_operator == "=") ||(p_operator == "==")) {
			if (ref_value == p_wert) {
				return true;
			}
	  } else if (p_operator == "<=") {
	    if (ref_value <= p_wert) {
				return true;
			}
		} else if (p_operator == ">=") {
	    if (ref_value >= p_wert) {
				return true;
			}
		} else if (p_operator == "LENGTH") {
	    if (ref_value.length >= p_wert) {
				return true;
			}
		}
		alert(p_meldung);
		return false;
	} else {
		alert("Das Referenzfeld "+p_referenzfeld+" ist nicht vorhanden");		
		return false;
	}
}
	
														 
function save_form(p_action, p_form) {
  if (validate_form(p_form)) {
    // betrifft AFP "Speichern und Fragebogen laden
	  document.forms[p_form].elements['p_vorgaengerid'].value = p_action;
	  
	  if (p_action == null || p_action == '') { // wenn nicht AFP - Fragebogen laden
		  document.forms[p_form].elements['p_save_and_close'].value = 'J';	  
		}
		
		document.forms[p_form].submit();
		return true;
	} else {
		return false;
	}
}


function validate_form(p_form) {
	var failed = 0;
	var i=0;
	var elem = "";
	
	if (p_form == "0") {
		p_form = document.forms[p_form].name;
	}
	
	while ((i < document.forms[p_form].length) && (failed == 0)) {

/*
if (document.forms[p_form].elements[i].id.charAt(0) == "*") {
alert (document.forms[p_form].elements[i].id);
alert ('**'+document.forms[p_form].elements[i].value+'**');
}
*/

    elem = document.forms[p_form].elements[i].name;
    obj = document.forms[p_form].elements[i];

    if (document.forms[p_form].elements[i].type != "hidden") {
    
      // Pflichtfeld?berpr?fung - mit AUSNAHME von AFP-FRAGEBOGEN
		  if ((document.forms[p_form].elements[i].id.charAt(0) == "*") &&
				  ((document.forms[p_form].elements[i].value == "") || (document.forms[p_form].elements[i].value == "-1") ||
					 (document.forms[p_form].elements[i].value == " ") )) {
				failed = 1;
			}

			// pr?fen, ob einer von den Radio-Buttons ausgew?hlt wurde
			else if ((p_form.search(/klient_afp_anlage_form_V/) == -1) &&
		      			document.forms[p_form].elements[i].type == "radio") {
			  if (!radioValidate(p_form, obj)) {
			  	failed = 4;
				}
			}

			// pr?fen, welche Checkboxes ausgew?hlt wurden
			else if (document.forms[p_form].elements[i].type == "checkbox") {
				if ( document.forms[p_form].elements[i].checked &&
						 document.forms[p_form].elements[i].onchange) {
		      if (document.forms[p_form].elements[i].onchange()==false) {
		        failed = 3;
					}
				}
			}

			//call von onchange auf dem Feld => somit wird auch auf die G?ltigkeit der
			// Emailadresse, HTTP etc gepr?ft.
			else if (document.forms[p_form].elements[i].type != "select-one" &&
	             document.forms[p_form].elements[i].value != "" &&
							 document.forms[p_form].elements[i].onchange) {
	      if (document.forms[p_form].elements[i].onchange()==false) {
	        failed = 3;
				}
			}
		}
		
    i++;
	}
	i=i-1;
	
	// Ersetzen von HTML-Tags im Titel f?r die Fehlermeldung
	var feldtitel = document.forms[p_form].elements[i].title;
	feldtitel = feldtitel.replace(/<.*>/g, " ");
	
	if (failed == 1) {
		//alert("Das Feld '"+feldtitel+"' ist ein Pflichtfeld. Bitte geben Sie einen Wert ein!");
		var errmsg = "The Field %s is mandatory. Please fill in the field!";
 		errmsg = errmsg.replace("%s", "'"+feldtitel+"'")
 		alert(errmsg);
	  document.forms[p_form].elements[i].focus();
		//document.forms[p_form].elements[i].select();
    return false;
	}
	
	// Im OnChange-Event des Feldes wurde ein Fehler festgestellt.
	if (failed == 3) {
	  //alert(document.forms[p_form].elements[i].title+" kann nicht validiert werden");
		document.forms[p_form].elements[i].focus();
 		return false;
	}
	
	if (failed == 4) {
		//alert("Bitte wählen Sie eine Option für das Feld '"+feldtitel+"'!");
		var errmsg = "Please choose an option for the field %s!";
 		errmsg = errmsg.replace("%s", "'"+feldtitel+"'")
 		alert(errmsg);
		document.forms[p_form].elements[i].focus();
    return false;
	}
	
	return true;
}


// Wenn die Checkbox ver?ndert wird, muss auch der Value entsprechend mitge?ndert
// werden.
function set_checkbox_value(FormName, HiddenFieldName, FieldName) {
  if(!document.forms[FormName])
		return false;
		
	var v_checkbox = document.forms[FormName].elements[FieldName];
	var v_hidden = document.forms[FormName].elements[HiddenFieldName];
	if (v_checkbox.checked) {
    v_checkbox.value="J";
    v_hidden.value="J";
  } else {
    v_checkbox.value="N";
    v_hidden.value="N";
	}
	return true;
}


function selectWert(sObj) {
  with (sObj) return options[selectedIndex].value;
}


function radioWert(rObj) {
  for (var i=0; i<rObj.length; i++) {
	  if (rObj[i].checked) {
	    return rObj[i].value;
		}
	}
  return false;
}

function radioValidate(p_form, rObj) {
	elem_name = rObj.name;
	obj = document.forms[p_form].elements[rObj.name];
	return radioWert(obj);
}

function multipleWert(sObj, trenn) {
  var rVal = '';
  for (var i=0; i<sObj.options.length; i++) with (sObj.options[i])
    if (selected) rVal += trenn + value;
  return rVal.substring(trenn.length);
}
  
  
/*******************  TOOLTIP F?R SELECTION *********************************/
  
function showTooltip (nextTo, tip) {
  //var tt = document.getElementById('tooltip');
alert(tip);
	elem = nextTo;
  elem.innerHTML = tip;
  elem.style.left = (getPageLeft(nextTo) + nextTo.offsetWidth) + 'px';
  elem.style.top = getPageTop(nextTo) + 'px';
  elem.style.visibility = 'visible';
}
function hideTooltip () {
  //document.getElementById('tooltip').style.visibility = 'hidden';
  elem.style.visibility = 'hidden';
}
function getPageLeft (el) {
  var left = 0;
  do
    left += el.offsetLeft;
  while ((el = el.offsetParent));
  return left;
}
function getPageTop (el) {
  var top = 0;
  do
    top += el.offsetTop;
  while ((el = el.offsetParent));
  return top;
}
  
  
  
  
/*******************  FILE UPLOAD POPUP WINDOW *********************************/

var y1 = 200;   // change the # on the left to adjuct the Y co-ordinate
(document.getElementById && !document.all) ? dom = true : dom = false;

function hideIt() {
  if (dom) {document.getElementById("layer1").style.visibility='hidden';}
  if (document.layers) {document.layers["layer1"].visibility='hide';}
  if (document.all) {document.all["layer1"].style.visibility='hidden';}
  }

function showIt() {
  if (dom) {document.getElementById("layer1").style.visibility='visible';}
  if (document.layers) {document.layers["layer1"].visibility='show';}
  if (document.all) {document.all["layer1"].style.visibility='visible';}}

function placeIt() {
  if (dom) {
		document.getElementById("layer1").style.top = window.pageYOffset + (window.innerHeight - (window.innerHeight-y1));
		document.getElementById("layer1").style.left = ((window.pageXOffset + window.innerWidth)/2)-100;
	}
  if (document.layers) {
		document.layers["layer1"].top = window.pageYOffset + (window.innerHeight - (window.innerHeight-y1));
		document.layers["layer1"].left = ((window.pageXOffset + window.innerWidth)/2)-100;
	}
  if (document.all) {
		document.all["layer1"].style.top = document.body.scrollTop + (document.body.clientHeight - (document.body.clientHeight-y1));
		document.all["layer1"].style.left = (document.body.clientWidth/2)-100;
	}
	window.setTimeout("placeIt()", 10);
//  window.setTimeout('document.images["sanduhr"].src = "pics/sanduhr.gif"', 30000);
//	document.getElementById("layer1").innerHTML = "<img src='pics/sanduhr.gif'>";

 }


var y1_parent = 200;   // change the # on the left to adjuct the Y co-ordinate
(parent.document.getElementById && !parent.document.all) ? dom_parent = true : dom_parent = false;

function hideIt_parent() {
  if (dom_parent) {parent.document.getElementById("layer1").style.visibility='hidden';}
  if (parent.document.layers) {parent.document.layers["layer1"].visibility='hide';}
  if (parent.document.all) {parent.document.all["layer1"].style.visibility='hidden';}
  }

function showIt_parent() {
  if (dom_parent) {parent.document.getElementById("layer1").style.visibility='visible';}
  if (parent.document.layers) {parent.document.layers["layer1"].visibility='show';}
  if (parent.document.all) {parent.document.all["layer1"].style.visibility='visible';}}

function placeIt_parent() {
  if (dom_parent) {
		parent.document.getElementById("layer1").style.top = parent.window.pageYOffset + (parent.window.innerHeight - (parent.window.innerHeight-y1_parent));
		parent.document.getElementById("layer1").style.left = ((parent.window.pageXOffset + parent.window.innerWidth)/2)-100;
	}
  if (parent.document.layers) {
		parent.document.layers["layer1"].top = parent.window.pageYOffset + (parent.window.innerHeight - (parent.window.innerHeight-y1_parent));
		parent.document.layers["layer1"].left = ((parent.window.pageXOffset + parent.window.innerWidth)/2)-100;
	}
  if (parent.document.all) {
		parent.document.all["layer1"].style.top = parent.document.body.scrollTop + (parent.document.body.clientHeight - (parent.document.body.clientHeight-y1_parent));
		parent.document.all["layer1"].style.left = (parent.document.body.clientWidth/2)-100;
	}
  parent.window.setTimeout("placeIt_parent()", 10);
//  parent.window.setTimeout('parent.document.images["sanduhr"].src = "pics/sanduhr.gif"', 30000);
//	parent.document.getElementById("layer1").innerHTML = "<img src='pics/sanduhr.gif'>";
 }

// Selektiert und deselektiert alle Checkboxen
function check_all_checkboxes(p_form, akt_aktion) {
	var i=0;
	var check_val = false;
	var check_val_hidden = 'N';
	var ret_val = "alle";
	var elem_name = "";
	
	var shown = false;
	
	if (akt_aktion == 'alle') {
	  check_val = true;
	  check_val_hidden = 'J';
	  ret_val = "keine";
	}
	
	while (i < document.forms[p_form].length) {
    // Checkboxen aktivieren / deaktivieren
    if (document.forms[p_form].elements[i].type == "checkbox") {
			document.forms[p_form].elements[i].checked = check_val;
			//Hiddenfield ebenfalls anpassen
			elem_name = document.forms[p_form].elements[i].name;
			elem_name_array = elem_name.split("_checkbox");
			elem_name = elem_name_array[0];
			// Wenn hidden-Field vorhanden, dann setzen
			if ((elem_name+elem_name_array[1]) == document.forms[p_form].elements[i-1].name) {
				document.forms[p_form].elements[i-1].value = check_val_hidden;
			}
		}
		i++;
	}
	return ret_val;
}

// Liefert die Anzahl der ?bernachtungen
function calculate_days(FormName, FieldName_Datumvon, FieldName_Datumbis, FieldName_Days) {
	if (document.forms[FormName].elements[FieldName_Datumvon] != "" &&
	    document.forms[FormName].elements[FieldName_Datumbis] != "" ) {
	  /*1 Tag in Millisekunden*/
	  var tag_msec=1000*60*60*24;
	  var datumvon_elem = document.forms[FormName].elements[FieldName_Datumvon];
	  var datumbis_elem = document.forms[FormName].elements[FieldName_Datumbis];
		var datumvon_value = String(datumvon_elem.value);
		var datumbis_value = String(datumbis_elem.value);

		var regex = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
		regex.exec(datumvon_value);
		var date1 = new Array();
		date1[0] = parseInt(RegExp.$1,10); // Jahr
		date1[1] = parseInt(RegExp.$2,10); // Monat
		date1[2] = parseInt(RegExp.$3,10); // Tag
		
		var regex2 = /0*(\d+)\D+0*(\d+)\D+0*(\d.+)/;
		regex2.exec(datumbis_value);
		var date2 = new Array();
		date2[0] = parseInt(RegExp.$1,10); // Jahr
		date2[1] = parseInt(RegExp.$2,10); // Monat
		date2[2] = parseInt(RegExp.$3,10); // Tag
		
		// date1 = datumvon
		// date2 = datumbis
	  
    var datumvon = new Date(date1[0], date1[1], date1[2]);
    var datumbis = new Date(date2[0], date2[1], date2[2]);
	  document.forms[FormName].elements[FieldName_Days].value = (datumbis.getTime() - datumvon.getTime()) / tag_msec;
	}
}
