var daysInMonth = new Array();
	daysInMonth[1] = 31;
	daysInMonth[2] = 29;   // must programmatically check this
	daysInMonth[3] = 31;
	daysInMonth[4] = 30;
	daysInMonth[5] = 31;
	daysInMonth[6] = 30;
	daysInMonth[7] = 31;
	daysInMonth[8] = 31;
	daysInMonth[9] = 30;
	daysInMonth[10] = 31;
	daysInMonth[11] = 30;
	daysInMonth[12] = 31;
//##########################################
function chkFormular() {
	var frm = eval(window.document.forms['FormularVertrieb']);
	var msg = '';
	
	if(frm.txt_unternehmen.value == '') {
		msg += '    - Unternehmen\n';
	}
	
	if(frm.txt_rechtsform.value == '') {
		msg += '    - Rechtsform\n';
	}
	
	if(frm.txt_position.value == '') {
		msg += '    - Position\n';
	}
	
	/*if(frm.txt_vorname.value == '') {
		msg += '    - Vorname\n';
	}*/
			
	if(frm.txt_nachname.value == '') {
		msg += '    - Nachname\n';
	}
	
	if(frm.txt_strasse.value == '') {
		msg += '    - Strasse\n';
	}
		
	if(frm.txt_plz.value != '') {
		if (!IsPostCode(frm.txt_plz.value)) {
			msg += '    - Postleitzahl\n';
		}
	}
	
	if(frm.txt_ort.value == '') {
		msg += '    - Ort\n';
	}
	
	if(frm.txt_telefon.value == '') {
		msg += '    - Telefonnummer\n';
	}
	
	/*if(frm.txt_telefax.value == '') {
		msg += '    - Faxnummer\n';
	}*/
	
	/*if(frm.txt_mobil.value == '') {
		msg += '    - Mobilnummer\n';
	}*/
	
	if(frm.txt_email.value != '' && !emailCheck(frm.txt_email.value)){
		msg += '    - E-Mail Adresse\n';
	}
	
	/*if(frm.txt_url.value == '') {
		msg += '    - Webseiten-Adresse\n';
	}*/
	
	if(frm.txt_branche.value == '') {
		msg += '    - Branche\n';
	}
	
	if(frm.txt_land.value == '') {
		msg += '    - Bundesland\n';
	}
	
	if(frm.txt_gebiet.value == '') {
		msg += '    - Gebiet\n';
	}
	
	if(frm.txt_nachricht.value == '') {
		msg += '    - Mitteilung\n';
	}
	
	if (msg == '') {
		frm.submit();
	} else {
		msg = 'Die folgenden Felder sind nicht korrekt:\n\n' + msg;
		alert(msg);
	}
}
//##########################################
function IsNumeric(Value) {
  if (Value == "") return false;
  for (var i = 0; i< Value.length; i++) {
    if (Value.charAt(i) < "0" || Value.charAt(i) > "9")
      return false;
  }    
  return true;    
}
//##########################################
function emailCheck (emailStr) {

	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)

	if (matchArray==null) {
	  	return false;
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
	      return false;
	}
	if(user.length < 2 ) return false;

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	  	  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
		  	return false;
		    }
	    }
	    return true
	}

	var domainArray=domain.match(domainPat)

	if (domainArray==null) {
	    return false;
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
 				return false;
	}
	
	if (len<2) {
 				var errStr="This address is missing a hostname!"
 				return false;
	}

return true;
}
//##########################################
function IsPostCode(value) {
  if (!IsNumeric(value)) return false;
  if (value.length != 5) return false;
  if (value < 1000 || value == 99999) return false;
 
  return true;    
}
//##########################################
function isIntegerInRange (intVar, intLow, intHigh){
	    return ((intVar >= intLow) && (intVar <= intHigh));
	}
//##########################################
function isDay (intDay){
		return isIntegerInRange (intDay, 1, 31);
	}
	
	function isMonth (intMonth){
		return isIntegerInRange (intMonth, 1, 12);
	}

	function isYear (intYear){
	    return isIntegerInRange (intYear, 1900, 2009);
	}
	
	function daysInFebruary (intYear){		// February has 29 days in any year evenly divisible by four,
	    								// EXCEPT for centurial years which are not also divisible by 400.
	    return (  ((intYear % 4 == 0) && ( (!(intYear % 100 == 0)) || (intYear % 400 == 0) ) ) ? 29 : 28 );
	}
//##########################################
function isDate (intYear, intMonth, intDay){
    if (! (isYear(intYear) && isMonth(intMonth) && isDay(intDay))) return false;

    // catch invalid days, except for February
    if (intDay > daysInMonth[intMonth]) return false; 

    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;

    return true;
}
//##########################################
function IsValidDate(strDate){
	var blnIsDate = false;
	
	var objRegExp = /^(\d{2})\.(\d{2})\.(\d{4})$/;
	blnIsDateFormat = objRegExp.test(strDate);
	if (blnIsDateFormat){
		objRegExp.exec(strDate);
		intDay 		= parseInt(RegExp.$1, 10);
		intMonth 	= parseInt(RegExp.$2, 10);
		
		if (RegExp.$3.length == 2){
			intYear = parseInt("19"+ RegExp.$3, 10);
		}
		else if(RegExp.$3.length == 4){
			intYear		= parseInt(RegExp.$3, 10);
		}
		else {
			return false;
		}
		blnIsDate = isDate(intYear,intMonth,intDay);
	}
	return blnIsDate;
}

