/* OBJECT CHECKERS ... */

function isNum(str) {
  if (isNaN(str)) {
    //alert('['+str+'] is Not a Number - Hallo Spencer !!!!')
    return false;
  }
  if (new Number(str) == parseInt(str)) {
    //alert('['+str+'] is an int')
    return true
  }
  if (new Number(str) == parseFloat(str)) {
    //alert('['+str+'] is a float')
    return true
  }
  //alert('Dunno Spence,  what ['+str+'] is ')
  return false
}



function chkObject(inParent,theVal) {
	if(inParent){
		if (window.opener.document.getElementById(theVal) != null) {
			return true;
		} else {
			return false;
		}
	}else{
		if (document.getElementById(theVal) != null) {
			return true;
		} else {
			return false;
		}
	}
}

function EMail(s)
{
 var a = false;
 var res = false;
 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)
 }
 return(res);
}



/* 
FUNKTION: errorHandler(act_form)
======================

WOFÜR? REQUIRED-, FEHLEINGABE- (z.B. string bei int...) UND UNIQUE-CHECK
FÜR FORMULARE

ÜBERGABE: act_form = formular object (document.forms.formname)
RÜCKGABE: Nichts - Bei Fehler: meldung im DIV, sonst wird das formular normal submitted. 

VORAUSSETZUNG FORMULAR ELEMENTE
==========================

DIE NORMALEN HTML FORM-TAGS "INPUT", "CHECKBOX", USW. BEKOMMEN FOLGENDE ZUSATZATTRIBUTE:

adform="" adformtype="" adformname=""

adform='req_field'
adformtype= 'dec' / 'string' / 'url' / 'email' / 'checkbox' / 'int' / ...
adformname='Bla Foo' (Der 'Schöne' Name des Input-Feldes für die Fehlermeldung)

PS: Für adformtype sind noch nicht alle eventuellen Abfragen (z.B.: adformtype='email') drin. Bei Bedarf muss das
Skript erweitert werden.

HTML -  ÜBER DEM FORMULAR
===================

<div id="errorMessage" align="left" class="errorMessageDiv"></div>

DAMIT DIE FEHLERMELDUNG AUCH ERSCHEINT ...


!!! *** WICHTIG *** !!!

Funktioniert zur zeit nur mit req_field

*/

function errorHandler(act_form) {
	
	// NOCH ANIMIEREN ??????
	//document.getElementById(\"$div_id\").innerHTML = \"<img src='./images/ajax-animation.gif'>\";
	
	document.getElementById('errorMessage').innerHTML = "";
	
	if (document.getElementById('errorMessageKD')) {
	
		document.getElementById('errorMessageKD').innerHTML = "Bitte geben Sie hier Ihre Kundennummer des Abonnements ein.<br>Ohne Kundennummer ist eine Registrierung nicht möglich.";
	
	}
	
	var checkBoxCheckedArray = new Array();
	var checkBoxExists = false;
	var checkBoxMessage = "";
	
	var errorString = "<p><b>Bitte f&uuml;llen Sie folgende Felder aus:</b></p>";
	
	var errors = false;
	var kderrors = false;
	
	for (i=0; i < act_form.elements.length; i++) {
		
		
		if (act_form.elements[i].attributes.adform) {
		
			if (act_form.elements[i].attributes.adform.value == 'req_field') {
				
				act_form.elements[i].style.backgroundColor = "#FFFFFF";
				
				// NORMALFALL
				if (act_form.elements[i].value == '') {
				
					act_form.elements[i].style.backgroundColor = "#ffd7db";
					errorString += "- " + act_form.elements[i].attributes.adformname.value + " <br />";
					
					errors = true;
				
				// SPEZIALFÄLLE (URL, DEC, ...)
				} else {
								
					if (act_form.elements[i].attributes.adformtype.value == 'url') {
					
						if (act_form.elements[i].value == 'http://') {
						
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + " <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'int') {
					
						if (!isNum(act_form.elements[i].value.replace(/,/g, "."))) {
						
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine Zahl eingeben</b> <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'password') {
						
						
						//alert (act_form.elements[i].value.length);
						
						if (act_form.elements[i].value != act_form.passwort2.value) {
														
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Die Passw&ouml;rter stimmen nicht überein</b> <br />";
							
							errors = true;
						
						} else {
						
							if (act_form.elements[i].value.length < 8) {
														
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte mindestens 8 Zeichen verwenden.</b> <br />";
								
								errors = true;
							
							}
						
						}
						
						
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'kundennummer') {
						
						
						
						
						ajaxURL='inc/checkkdnum.php' + '?kdnum=' + act_form.elements[i].value;
						
						// alert(act_form.elements[i].value);
	
						//document.getElementById("mydiv").innerHTML = "<img src='./images/ajax-animation.gif'>";
					
						xmlhttp.open("GET", ajaxURL, true);
						xmlhttp.onreadystatechange=function() {
						if (xmlhttp.readyState==4) {
					
							if ( xmlhttp.responseText == "" ) {
							
									document.forms.regform.kderror.value="ok";
									document.forms.regform.flag3.style.color = "#FFFFFF";
									document.forms.regform.flag3.style.backgroundColor = "lightgreen";
									document.getElementById('errorMessageKD').style.color = "darkgreen";
									document.getElementById('errorMessageKD').innerHTML = "Kundennummer OK.";
							
							} else {
							
								ajaxResponse = xmlhttp.responseText;
								
								if (ajaxResponse == 'vorhanden') {
									
									document.forms.regform.kderror.value="error";
									document.forms.regform.flag3.style.backgroundColor = "#ffd7db";
									document.getElementById('errorMessageKD').style.color = "maroon";
									document.getElementById('errorMessageKD').innerHTML = "<b>Fehler: Diese Kundennummer wird schon benutzt.</b><br>Wenn Sie Abonnent sind, schreiben uns eine  <a href='mailto:online_personalwirtschaft@wolterskluwer.de'>E-Mail.</a>.";

								}
								
								if (ajaxResponse == 'nichtvorhanden') {
									
									document.forms.regform.kderror.value="error";
									document.forms.regform.flag3.style.backgroundColor = "#ffd7db";
									document.getElementById('errorMessageKD').style.color = "maroon";
									document.getElementById('errorMessageKD').innerHTML = "<b>Fehler: Ein Abonnement mit dieser Kundennummer ist nicht vorhanden.</b> <br>Wenn Sie Abonnent sind und Ihre Nummer nicht erkannt wird, schreiben uns eine <a href='mailto:online_personalwirtschaft@wolterskluwer.de'>E-Mail.</a>";
								
								}
					
							}					   
							
						}
						}
						xmlhttp.send(null);
						

					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'select') {
												
						if (act_form.elements[i].value == '0') {
														
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine Hinweisart ausw&auml;hlen</b> <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'email') {
						
						//alert(EMail(act_form.elements[i].value));
						
						if (act_form.email2) {
						
							if (act_form.elements[i].value != act_form.email2.value) {
															
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Die E-Mails stimmen nicht überein</b> <br />";
								
								errors = true;
							
							} else {
							
								if (!EMail(act_form.elements[i].value)) {
															
									act_form.elements[i].style.backgroundColor = "#ffd7db";
									errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine g&uuml;ltige E-Mail angeben</b> <br />";
									
									errors = true;
								
								}
							
							}
							
						} else {
						
							if (!EMail(act_form.elements[i].value)) {
															
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine g&uuml;ltige E-Mail angeben</b> <br />";
								
								errors = true;
							
							}
					
						}
						
						
					
					}
						
				// END ELSE
				}
						
			}
		
		}
		
	}
	
	if (checkBoxCheckedArray.length < 1 && checkBoxExists) {
		
		errorString += "- " + checkBoxMessage;
		errors = true;
		
	}

	if (errors) {
		
		document.getElementById('errorMessage').style.marginBottom = '10px';
		document.getElementById('errorMessage').innerHTML = errorString;
		
		new Effect.Highlight(document.getElementById('errorMessage'));
		
		//alert(errorString);
		//return false;
	
	} else {
		
		setTimeout('if (document.forms.regform.kderror.value != "error") {document.forms.regform.submit();}', 1100);
	
	}

}

function errorHandlerJB(act_form) {
	
	// NOCH ANIMIEREN ??????
	//document.getElementById(\"$div_id\").innerHTML = \"<img src='./images/ajax-animation.gif'>\";
	
	document.getElementById('errorMessage').innerHTML = "";
	
	if (document.getElementById('errorMessageKD')) {
	
		document.getElementById('errorMessageKD').innerHTML = "Bitte geben Sie hier den Buch-Code  ein.<br>Ohne Code ist eine Registrierung nicht möglich.";
	
	}
	
	var checkBoxCheckedArray = new Array();
	var checkBoxExists = false;
	var checkBoxMessage = "";
	
	var errorString = "<p><b>Bitte f&uuml;llen Sie folgende Felder aus:</b></p>";
	
	var errors = false;
	var kderrors = false;
	
	for (i=0; i < act_form.elements.length; i++) {
		
		
		if (act_form.elements[i].attributes.adform) {
		
			if (act_form.elements[i].attributes.adform.value == 'req_field') {
				
				act_form.elements[i].style.backgroundColor = "#FFFFFF";
				
				// NORMALFALL
				if (act_form.elements[i].value == '') {
				
					act_form.elements[i].style.backgroundColor = "#ffd7db";
					errorString += "- " + act_form.elements[i].attributes.adformname.value + " <br />";
					
					errors = true;
				
				// SPEZIALFÄLLE (URL, DEC, ...)
				} else {
								
					if (act_form.elements[i].attributes.adformtype.value == 'url') {
					
						if (act_form.elements[i].value == 'http://') {
						
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + " <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'int') {
					
						if (!isNum(act_form.elements[i].value.replace(/,/g, "."))) {
						
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine Zahl eingeben</b> <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'password') {
						
						
						//alert (act_form.elements[i].value.length);
						
						if (act_form.elements[i].value != act_form.passwort2.value) {
														
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Die Passw&ouml;rter stimmen nicht überein</b> <br />";
							
							errors = true;
						
						} else {
						
							if (act_form.elements[i].value.length < 8) {
														
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte mindestens 8 Zeichen verwenden.</b> <br />";
								
								errors = true;
							
							}
						
						}
						
						
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'code') {
						
						
						
						
						if (act_form.elements[i].value != 'jbpe5839') {
							
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte richtigen Buch-Code eingeben</b> <br />";
							
							errors = true;
							
						}
						

					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'select') {
												
						if (act_form.elements[i].value == '0') {
														
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine Hinweisart ausw&auml;hlen</b> <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'email') {
						
						//alert(EMail(act_form.elements[i].value));
						
						if (act_form.email2) {
						
							if (act_form.elements[i].value != act_form.email2.value) {
															
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Die E-Mails stimmen nicht überein</b> <br />";
								
								errors = true;
							
							} else {
							
								if (!EMail(act_form.elements[i].value)) {
															
									act_form.elements[i].style.backgroundColor = "#ffd7db";
									errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine g&uuml;ltige E-Mail angeben</b> <br />";
									
									errors = true;
								
								}
							
							}
							
						} else {
						
							if (!EMail(act_form.elements[i].value)) {
															
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine g&uuml;ltige E-Mail angeben</b> <br />";
								
								errors = true;
							
							}
					
						}
						
						
					
					}
						
				// END ELSE
				}
						
			}
		
		}
		
	}
	
	if (checkBoxCheckedArray.length < 1 && checkBoxExists) {
		
		errorString += "- " + checkBoxMessage;
		errors = true;
		
	}

	if (errors) {
		
		document.getElementById('errorMessage').style.marginBottom = '10px';
		document.getElementById('errorMessage').innerHTML = errorString;
		
		new Effect.Highlight(document.getElementById('errorMessage'));
		
		//alert(errorString);
		//return false;
	
	} else {
		
		setTimeout('if (document.forms.regform.kderror.value != "error") {document.forms.regform.submit();}', 1100);
	
	}

}

function errorHandler2(act_form) {
	
	// NOCH ANIMIEREN ??????
	//document.getElementById(\"$div_id\").innerHTML = \"<img src='./images/ajax-animation.gif'>\";
	
	document.getElementById('errorMessage').innerHTML = "";
	
	var checkBoxCheckedArray = new Array();
	var checkBoxExists = false;
	var checkBoxMessage = "";
	
	var errorString = "<p><b>Bitte f&uuml;llen Sie folgende Felder aus:</b></p>";
	
	var errors = false;
	
	for (i=0; i < act_form.elements.length; i++) {
		
		
		if (act_form.elements[i].attributes.adform) {
		
			if (act_form.elements[i].attributes.adform.value == 'req_field') {
				
				act_form.elements[i].style.backgroundColor = "#FFFFFF";
				
				// NORMALFALL
				if (act_form.elements[i].value == '') {
				
					act_form.elements[i].style.backgroundColor = "#ffd7db";
					errorString += "- " + act_form.elements[i].attributes.adformname.value + " <br />";
					
					errors = true;
				
				// SPEZIALFÄLLE (URL, DEC, ...)
				} else {
								
					if (act_form.elements[i].attributes.adformtype.value == 'url') {
					
						if (act_form.elements[i].value == 'http://') {
						
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + " <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'int') {
					
						if (!isNum(act_form.elements[i].value.replace(/,/g, "."))) {
						
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine Zahl eingeben</b> <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'password') {
						
						
						//alert (act_form.elements[i].value.length);
						
						if (act_form.elements[i].value != act_form.passwort2.value) {
														
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Die Passw&ouml;rter stimmen nicht überein</b> <br />";
							
							errors = true;
						
						} else {
						
							if (act_form.elements[i].value.length < 8) {
														
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte mindestens 8 Zeichen verwenden.</b> <br />";
								
								errors = true;
							
							}
						
						}
						
						
					
					}
					
					
					
					else if (act_form.elements[i].attributes.adformtype.value == 'select') {
												
						if (act_form.elements[i].value == '0') {
														
							act_form.elements[i].style.backgroundColor = "#ffd7db";
							errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine Hinweisart ausw&auml;hlen</b> <br />";
							
							errors = true;
						
						}
					
					}
					
					else if (act_form.elements[i].attributes.adformtype.value == 'email') {
						
						//alert(EMail(act_form.elements[i].value));
						
						if (act_form.email2) {
						
							if (act_form.elements[i].value != act_form.email2.value) {
															
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Die E-Mails stimmen nicht überein</b> <br />";
								
								errors = true;
							
							} else {
							
								if (!EMail(act_form.elements[i].value)) {
															
									act_form.elements[i].style.backgroundColor = "#ffd7db";
									errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine g&uuml;ltige E-Mail angeben</b> <br />";
									
									errors = true;
								
								}
							
							}
							
						} else {
						
							if (!EMail(act_form.elements[i].value)) {
															
								act_form.elements[i].style.backgroundColor = "#ffd7db";
								errorString += "- " + act_form.elements[i].attributes.adformname.value + ": <b>Bitte eine g&uuml;ltige E-Mail angeben</b> <br />";
								
								errors = true;
							
							}
					
						}
						
						
					
					}
						
				// END ELSE
				}
						
			}
		
		}
		
	}
	
	if (checkBoxCheckedArray.length < 1 && checkBoxExists) {
		
		errorString += "- " + checkBoxMessage;
		errors = true;
		
	}

	if (errors) {
		
		document.getElementById('errorMessage').style.marginBottom = '10px';
		document.getElementById('errorMessage').innerHTML = errorString;
		
		new Effect.Highlight(document.getElementById('errorMessage'));
		
		//alert(errorString);
		//return false;
	
	} else {
		
		act_form.submit();
	
	}

}


function checkFilledData(act_form, real_form) {
	
	if (act_form != real_form)
		real_form.item_description.value = '';
	real_form.agenda_texts.value = '';
	
	formLength = act_form.childNodes.length;
	
	for (i = 0; i < formLength; i++) {
	
	if (act_form[i]) {
	
	//alert(act_form[i].name);
	

		if (act_form[i].name == 'item_description' && act_form != real_form) {
		
			//alert(act_form[i].name + ": " + act_form[i].value);
			
			real_form.item_description.value = act_form[i].value;
		
		} else {
		
			//alert(act_form[i].name + ": " + act_form[i].value);
		
		}
		
		if (act_form[i].name.indexOf('agenda_txt') > -1) {
		
			//alert(act_form[i].name + ": " + act_form[i].value);
			
			real_form.agenda_texts.value += "___" + act_form[i].name + "///" + act_form[i].value;
			
			//alert(real_form.agenda_texts.value);
			
		}
		
	}

}

}
