// JavaScript Document

function toggleBox(szDivid, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivid].display = iState ? "inline" : "none";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivid);
        obj.style.display = iState ? "inline" : "none";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivid].style.display = iState ? "inline" : "none";
    }
	return true;
}

function validateFormOnSubmit(theForm) {
// Check für Preisrechnerformular

  var reason = "";

  reason += validateCar(theForm.carmodel);
  reason += validateDate(theForm.checkinfrom,"1");
  reason += validateDate(theForm.checkinto,"2");
  reason += validateDateDiff(theForm.checkinfrom,theForm.checkinto);

  if (reason != "") {
    alert("Fehlende oder falsche Eingaben: \n"+ reason);
    return false;
  }

  return true;
}

function validateForm2OnSubmit(theForm) {
// Check für Reservierungsformular

  var reason = "";

  reason += validateName(theForm.pers_vorname,theForm.pers_nachname);
  reason += validateContact(theForm.pers_telefon,theForm.pers_handy,theForm.pers_email,theForm.pers_fax);
  reason += validateDate(theForm.checkinfrom,"1");
  reason += validateDate(theForm.checkinto,"2");
  reason += validateDateDiff(theForm.checkinfrom,theForm.checkinto);
  reason += validateSecDate(theForm.checkinfrom,theForm.checkinto,theForm.tripfrom,theForm.tripto);
  reason += validateCaptcha(theForm.security_code);

  if (reason != "") {
    alert("Fehlende oder falsche Eingaben: \n"+ reason);
    return false;
  }

  return true;
}

function validateForm3OnSubmit(theForm) {
// Check für Reservierungsformular

  var reason = "";

  reason += validateName(theForm.pers_vorname,theForm.pers_nachname);
  reason += validateContact(theForm.pers_telefon,theForm.pers_handy,theForm.pers_email,theForm.pers_fax);
//  reason += validateDate(theForm.checkinfrom,"1");
//  reason += validateDate(theForm.checkinto,"2");
//  reason += validateDateDiff(theForm.checkinfrom,theForm.checkinto);
  reason += validateSecDate(theForm.checkinfrom2,theForm.checkinto2,theForm.tripfrom,theForm.tripto);
  reason += validateCaptcha(theForm.security_code);

  if (reason != "") {
    alert("Fehlende oder falsche Eingaben: \n"+ reason);
    return false;
  }

  return true;
}

function validateName(fld1,fld2) {
	var error = "";
	var errorcheck = 0;
	if (fld1.value.length == 0) {
		errorcheck++;
		fld1.style.background = 'Red';
    } else {
        fld1.style.background = '#FBDA22';
    }
	if (fld2.value.length == 0) {
		errorcheck++;
		fld2.style.background = 'Red';
    } else {
        fld2.style.background = '#FBDA22';
    }
	if (errorcheck!=0) {
		error = "Bitte geben Sie Ihren kompletten Namen ein.\n"; }
	
	return error;

}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 


function validateContact(telefon,handy,email,fax) {
	var error = "";
    var temail = trim(email.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	var stelefon = telefon.value.replace(/[\(\)\.\-\ ]/g, '');
	var shandy = handy.value.replace(/[\(\)\.\-\ ]/g, '');
	var sfax = fax.value.replace(/[\(\)\.\-\ ]/g, '');
	
	telefon.style.background = '#FBDA22';
	handy.style.background = '#FBDA22';
	email.style.background = '#FBDA22';
	fax.style.background = '#FBDA22';
	
	if (telefon.value.length == 0 && handy.value.length == 0 && temail.length == 0 && fax.value.length == 0) {
		error = "Bitte geben Sie mindestens eine Kontaktnummer oder Email an.\n";
		telefon.style.background = 'Red';
		handy.style.background = 'Red';
		email.style.background = 'Red';
		fax.style.background = 'Red';
	} else {
		if (telefon.value.length != 0) {
			if (isNaN(parseInt(stelefon))) {
        		error += "Die Telefonnummer kann nur Zahlen enthalten.\n";
        		telefon.style.background = 'Red';
			}
		}
		
			if (handy.value.length != 0) {
			if (isNaN(parseInt(shandy))) {
        		error += "Die Mobil-/Handynummer kann nur Zahlen enthalten.\n";
        		handy.style.background = 'Red';
			}
		}
		
		if (temail.length != 0) {
			if (!emailFilter.test(temail)) {              //test email for illegal characters
        		email.style.background = 'Red';
        		error += "Bitte geben Sie eine gültige EMail-Adresse an.\n";
			} else if (email.value.match(illegalChars)) {
        		email.style.background = 'Red';
        		error += "Die Email-Adresse enthält ungültige Charaktere.\n";
			}
				
		}
		
		if (fax.value.length != 0) {
			if (isNaN(parseInt(sfax))) {
        		error += "Die Faxnummer kann nur Zahlen enthalten.\n";
        		fax.style.background = 'Red';
			}
		}
		
	}
	
	return error;
}

function validateDate(fld,er) {
    var error = "";
  
    if (fld.value.length == 0) {
        fld.style.background = 'Red'; 
		if (er == 1) {
        	error = "Bitte überprüfen Sie das Anfangsmietdatum.\n"; }
		if (er == 2) {
			error = "Bitte überprüfen Sie das Abgabemietdatum.\n";}
    } else {
        fld.style.background = '#FBDA22';
    }
    return error;   
}

function validateCar(fld) {
    var error = "";
	var errorcheck = 0;
	for (var i = 0; i < 6; i++) {
		if (fld[i].checked == true) {
			errorcheck++;
		}
	}
	if (errorcheck == 0) {
		error = "Bitte wählen Sie einen Fahrzeugtyp.\n"; }
	
	return error;
}

function validateCaptcha(code) {
	error = "";
	if (code.value.length == 0) {
		code.style.background = 'Red';
		error = 'Bitte geben Sie den Captcha-Code ein.\n';
	} else {
		code.style.background = '#FBDA22';
	}
	
	return error;
}

function validateDateDiff(aday,zday) {
	
	var error = "";

	if (aday.value.substr() != "" && zday.value.substr() != "" ) {
		var ddiff = 0;
		var date1 = "";
		var date2 = "";
		date1 = dateconvert(aday.value.substr());
		date2 = dateconvert(zday.value.substr());
		ddiff = compareDates(date1,"dd MMM yyyy",date2,"dd MMM yyyy");
//		alert("*" + date1 + "*\n*" + date2 + "*\nError:" +ddiff); // Debug
		if (ddiff != 0 || date1 == date2) {
			aday.style.background = 'Red';
			zday.style.background = 'Red'; 
			error = "Bitte korrigieren Sie das Datum.\n"; }
	}
	
	return error;
}

function validateSecDate(aday,zday,atrip,ztrip) {
	var error = "";
	
	if (aday.value.substr() != "" && zday.value.substr() != "" && (atrip.value.substr() != "" || ztrip.value.substr() != "")) {
		var ddiff1 = 0;
		var ddiff2 = 0;
		var date1 = "";
		var date2 = "";
		var date3 = "";
		var date4 = "";
		date1 = dateconvert(aday.value.substr());
		date2 = dateconvert(zday.value.substr());
		date3 = dateconvert(atrip.value.substr());
		date4 = dateconvert(ztrip.value.substr());

		if (atrip.value.substr() != "") {
			ddiff1 = compareDates(date3,"dd MMM yyyy",date1,"dd MMM yyyy");
//			alert("*" + date1 + "*\n*" + date2 + "*\nError:" +ddiff); // Debug
			if (ddiff1 != 0) {
				aday.style.background = 'Red';
				atrip.style.background = 'Red'; 
				error += "Das Mietdatum kann nicht vor dem Anreisedatum sein.\n"; }
		}
			
		if (ztrip.value.substr() != "") {
			ddiff2 = compareDates(date2,"dd MMM yyyy",date4,"dd MMM yyyy");
//			alert("*" + date1 + "*\n*" + date2 + "*\nError:" +ddiff); // Debug
			if (ddiff2 != 0) {
				zday.style.background = 'Red';
				ztrip.style.background = 'Red'; 
				error += "Das Abgabedatum kann nicht nach der Abreise sein.\n"; }
		}

	}
	
	return error;
	
}

function dateconvert(date) {

	date = date.replace(/. Januar/," Jan");
	date = date.replace(/. Februar/," Feb");
	date = date.replace(/. März/," Mar");
	date = date.replace(/. April/," Apr");
	date = date.replace(/. Mai/," May");
	date = date.replace(/. Juni/," Jun");
	date = date.replace(/. Juli/," Jul");
	date = date.replace(/. August/," Aug");
	date = date.replace(/. September/," Sep");
	date = date.replace(/. Oktober/," Oct");
	date = date.replace(/. November/," Nov");
	date = date.replace(/. Dezember/," Dec");
	
	return date;
} 
