/*
event.Keycode

48 t/m 57 = nummers
47 =  
46 =  .
45 =  -

65 t/m  90 = letters a-z
97 t/m 122 = letters A-Z

val_bs_ =  validate after input, before submit
val_i_  = validate on input, ie on keypress
val_e_  = validate when leaving a field, onBlur

*/
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

var submitpressed;
var keycode; // global

submitpressed=0;

var browser = navigator.appName;
var version = parseInt(navigator.appVersion);
var n4 = (document.layers)? true:false;
var mozilla = (browser=="Netscape" && version>=5)? true:false;
var ie4 = (navigator.userAgent.indexOf("MSIE 4")!=-1)? true:false;
var ie5 = (navigator.userAgent.indexOf("MSIE 5")!=-1)? true:false;
var ie = (ie4 || ie5)? true:false;

// if (mozilla) {
document.onkeydown = keyDown; // bepaald voor Firefox en Netscape dat de keyboard input moet kunnen worden gelezen
// }

window.onload = self.focus;

function keyDown(e) {
//var keycode;
	if (mozilla) {
		keycode = e.which;
	}else{
		keycode = event.keyCode;}
	/*
	keypressed = String.fromCharCode(keycode);
	alert(keycode+" "+keypressed);
	self.focus();
	*/
}


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_bs_SubmitOnce()
    {
        if(submitpressed)
        return false;
        submitpressed=1;
        return true;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_bs_RemoveSpaces(string) {
	var tstring = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	tstring += splitstring[i];
	return tstring;
}


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_bs_Telephone10Digits(string_telephone)
{

// - eruit strippen en dan tellen hoe groot de string is die overblijft. Moet in NL 10 tekens zijn.
// var temp
// temp = string_telephone;
// http://www.detelefoongids.nl/netnummers.html
// + 06, 0900, 0800
// string_telephone = string_telephone.replace(/-/gim,""); // verwijderen - teken voor validatie
// string_telephone = string_telephone.replace(/ /gim,""); // verwijderen spatie voor validatie
string_telephone = string_telephone.replace(/-/g,""); // verwijderen - teken voor validatie  /g werkt, gim niet in IE 5
string_telephone = string_telephone.replace(/ /g,""); // verwijderen spatie voor validatie
if(string_telephone=="0123456789"){return false;}
if(string_telephone=="1234567890"){return false;}
if(string_telephone=="0000000000"){return false;}
if(string_telephone=="1111111111"){return false;}
if(string_telephone=="2222222222"){return false;}
if(string_telephone=="3333333333"){return false;}
if(string_telephone=="4444444444"){return false;}
if(string_telephone=="5555555555"){return false;}
if(string_telephone=="6666666666"){return false;}
if(string_telephone=="7777777777"){return false;}
if(string_telephone=="8888888888"){return false;}
if(string_telephone=="9999999999"){return false;}
if (string_telephone.length==10)
{return true;}
else
{return false;}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


function val_i_NumbersOnly(){
/* alleen nummers zijn toegestaan:  */
	if(keycode==8||keycode==9||keycode==46){return true;} // tab, backspace en del
	// 48 t/m 57 is getallen, 69 t/m 105 is numerieke deel toetsenbord
	if ((keycode>=48 && keycode<=57) || (keycode>=96&&keycode<=105)){
		return true;
	}else{
		return false;}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_i_DecimalsOnly(){
/* alleen nummers zijn toegestaan en punt (110) of komma (188):  */
	if(keycode==8||keycode==9||keycode==46){return true;} // tab, backspace en del
	// 48 t/m 57 is getallen, 69 t/m 105 is numerieke deel toetsenbord
	if (	(keycode>=48 && keycode<=57)|| 
			(keycode>=96&&keycode<=105)||
			(keycode==110||keycode==188)
		){
		return true;
	}else{
		return false;}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_i_LettersOnly(){
/* alleen letters zijn toegestaan:  */
	if(keycode==8||keycode==9||keycode==46){return true;} // tab, backspace en del
	if ((keycode < 65 || keycode > 90))
	return false;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_i_TelephoneNr(){
// alleen nummers en - zijn toegestaan, bijv 038-4604959
	if(keycode==8||keycode==9||keycode==46){return true;} // tab, backspace en del
	// 48 t/m 57 is getallen, 69 t/m 105 is numerieke deel toetsenbord
	if (keycode==45||keycode==109||(keycode>=96&&keycode<=105)||(keycode>=48 && keycode<=57)){
	return true;
	}else{
	return false;}
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  function fnCountChar($search, $character)
  {
    var count = 0;
    for( var cheated = 0; cheated < $search.length; cheated++ )
      if( $search.charAt( cheated ) == $character)
        count++;
    return count;
  } 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_e_DateNL(field){
// controleert op een geldige datum in dd-mm-jjjj notatie
// uitbreiden met range, bijvoorbeeld tussen 1900 en heden - een aantal jaar.
// er zal ongetwijfeld een minimum leeftijd zijn? In ieder geval niet huidig jaar toestaan
// functie uitbreiden, moet het een leeftijd zijn, dan maximaal bv 120 jaar
// als het een toekomstdatum moet zijn ook controle hierop mogelijk 
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "-";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
   err = 0;
   DateValue = DateField.value;
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   // wat als men bijvoorbeeld 1-2-2004 invult ?
   // dus twee keer -, maar een lengte < 10
   // dan bij dag en maand een nul ervoor plaatsen?
   if(DateTemp.length <8){
	   // detecteren of voor de 1e - en 2e min slechts één getal staat
	   // dag:
	   if (DateValue.substr(1,1)=='-'){
			DateValue = '0' + DateValue;}
	   // maand:
	   if (DateValue.substr(4,1)=='-'){
			DateValue = DateValue.substr(0,2) + '0' + DateValue.substr(3,1) + DateValue.substr(5,4);}
			DateTemp = '';
	   for (i = 0; i < DateValue.length; i++) {
		  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
		     DateTemp = DateTemp + DateValue.substr(i,1);
		  }
	   }
   }
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 19xx */
   /* Indien jaar < 9 dan geen 1910 van maken maar 2009 */
   if (DateValue.length == 6) {
		if(parseInt(DateValue.substr(4,2)) < 10){
		// 20..
			DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
		}else{
		// 19..
			DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2);
		}
   }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      DateField.value = day + seperator + month + seperator + year;
   }
   /* Error-message if err != 0 */
   else {
      alert("Let op, de datum is niet correct ingevoerd. \nDe juiste notatie is dd-mm-jjjj!");
	  DateField.focus();
      DateField.select();
	  // return false;
	// --> de selectie van het veld gaat niet goed in FireFox, deze neemt dan bijvoorbeeld het volgende veld
   }
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_e_DateNLFuture(field){
// controleert op een geldige datum in dd-mm-jjjj notatie
// uitbreiden met range, bijvoorbeeld tussen 1900 en heden - een aantal jaar.
// er zal ongetwijfeld een minimum leeftijd zijn? In ieder geval niet huidig jaar toestaan
// functie uitbreiden, moet het een leeftijd zijn, dan maximaal bv 120 jaar
// als het een toekomstdatum moet zijn ook controle hierop mogelijk 

// --> Datum moet in de toekomst liggen !

	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "-";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
   err = 0;
   DateValue = DateField.value;
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   // wat als men bijvoorbeeld 1-2-2004 invult ?
   // dus twee keer -, maar een lengte < 10
   // dan bij dag en maand een nul ervoor plaatsen?
   if(DateTemp.length <8){
	   // detecteren of voor de 1e - en 2e min slechts één getal staat
	   // dag:
	   if (DateValue.substr(1,1)=='-'){
			DateValue = '0' + DateValue;}
	   // maand:
	   if (DateValue.substr(4,1)=='-'){
			DateValue = DateValue.substr(0,2) + '0' + DateValue.substr(3,1) + DateValue.substr(5,4);}
			DateTemp = '';
	   for (i = 0; i < DateValue.length; i++) {
		  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
		     DateTemp = DateTemp + DateValue.substr(i,1);
		  }
	   }
   }
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 19xx */
   /* Indien jaar < 9 dan geen 1910 van maken maar 2009 */
   if (DateValue.length == 6) {
		if(parseInt(DateValue.substr(4,2)) < 10){
		// 20..
			DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
		}else{
		// 19..
			DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2);
		}
   }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   
   
	// controle of de datum in de toekomst ligt:
	var oneDay    = 24 * 60* 60 * 1000;
	var dtNow = new Date();  // vandaag
	var dtInput = new Date(year,month-1,day)  // yyyy, mm, dd  maanden zijn 0-11 (jan-dec)
	/* var dagen_verschil = dtInput - dtNow; */
	var dagen_verschil = Math.floor(dagen_verschil/oneDay);
	if (dagen_verschil <0 && err==0){
		alert("Let op, de datum moet in de toekomst liggen!");
		DateField.value ='';
	  	DateField.focus();
      	DateField.select();
	  	return false; // einde functie
	}
	// <--- extra controle of datum in de toekomst ligt
  
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      // hier hebben we nu de waarde??
	  
	  // TODO !!!
      DateField.value = day + seperator + month + seperator + year;
	  
   }
   /* Error-message if err != 0 */
   else {
      alert("Let op, de datum is niet correct ingevoerd. \nDe juiste notatie is dd-mm-jjjj!");
	  DateField.focus();
      DateField.select();
	  // return false;
	// --> de selectie van het veld gaat niet goed in FireFox, deze neemt dan bijvoorbeeld het volgende veld
   }
   

}


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function val_bs_Email(email)
// Valideert een email adres op geldige syntax.
{
	var invalid = "";
	if (!email){
		invalid = "Er is geen email adres ingevuld";}
	else{
		if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1) ){invalid += "Het email adres bevat geen . of @";}
		if (email.indexOf("\\") > -1){invalid += "Het email adres bevat een ongeldig teken (backslash)";}
		if (email.indexOf("/") > -1){invalid += "Het email adres bevat een ongeldig teken (slash)";}
		if (email.indexOf("'") > -1){invalid += "Het email adres bevat een ongeldig teken (apostrofe)";}
		if (email.indexOf("!") > -1){invalid += "Het email adres bevat een ongeldig teken (uitroepteken)";}
		if (email.indexOf("#") > -1){invalid += "Het email adres bevat een ongeldig teken (hekje)";}
		if (email.indexOf(" ") > -1){invalid += "Het email adres bevat een ongeldig teken (spatie)";}
		if ( (email.indexOf(",") > -1) || (email.indexOf(";") > -1) ){invalid += "Het email adres bevat een ongeldig teken (komma of puntkomma)";}}
	if (invalid == ""){
	   return true;}
	else{
	   // alert (invalid);
	   return false;}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function val_bs_frmKlantenkaart() {
	var themessage = "Let op, u dient de volgende gegevens eerst nauwkeurig in te vullen:\n\n";
	if (document.klantenkaart.kvknr.value =='') {themessage = themessage + ' - Kamer van Koophandel nummer' + "\n";}
	if (document.klantenkaart.bedrijfsnaam.value =='') {themessage = themessage + ' - Bedrijfsnaam' + "\n";}
	if (document.klantenkaart.straat.value =='') {themessage = themessage + ' - Straatnaam en nummer' + "\n";}
	if (document.klantenkaart.postcode.value =='') {themessage = themessage + ' - Postcode en plaats' + "\n";}
	// if (document.klantenkaart.plaats.value =='') {themessage = themessage + ' - Telefoonnummer' + "\n";}
	// if (document.klantenkaart.faxnummer.value =='') {themessage = themessage + ' - Faxnummer' + "\n";}
	
	// if (document.klantenkaart.geslacht[0].checked ==false && document.klantenkaart.geslacht[1].checked ==false) {themessage = themessage + " -  Geslacht 1e inkoopgemachtige" + "\n";}
	// if (document.klantenkaart.titel.value =='') {themessage = themessage + ' - Titel 1e inkoopgemachtige' + "\n";}
	if (document.klantenkaart.voorletters.value =='') {themessage = themessage + ' - Voorletters 1e inkoopgemachtige' + "\n";}
	// if (document.klantenkaart.tussenvoegsel.value =='') {themessage = themessage + ' - Tussenvoegsel 1e inkoopgemachtige' + "\n";}
	if (document.klantenkaart.achternaam.value =='') {themessage = themessage + ' - Achternaam 1e inkoopgemachtige' + "\n";}
	// if (document.klantenkaart.email.value =='') {themessage = themessage + ' - E-mail adres 1e inkoopgemachtige' + "\n";}
	
	/*
	if (document.klantenkaart.geslacht2[0].checked ==false && document.klantenkaart.geslacht2[1].checked ==false) {themessage = themessage + " -  Geslacht 1e inkoopgemachtige" + "\n";}
	if (document.klantenkaart.titel2.value =='') {themessage = themessage + ' - Titel 2e inkoopgemachtige' + "\n";}
	if (document.klantenkaart.voorletters2.value =='') {themessage = themessage + ' - Voorletters 2e inkoopgemachtige' + "\n";}
	if (document.klantenkaart.tussenvoegsel2.value =='') {themessage = themessage + ' - Tussenvoegsel 2e inkoopgemachtige' + "\n";}
	if (document.klantenkaart.achternaam2.value =='') {themessage = themessage + ' - Achternaam 2e inkoopgemachtige' + "\n";}
	if (document.klantenkaart.email2.value =='') {themessage = themessage + ' - E-mail adres 2e inkoopgemachtige' + "\n";}
	*/






/*	if (document.account.arts_achternaam.value =="") {themessage = themessage + " - Achternaam" + "\n";}
	if (document.account.arts_voorletters.value =="") {themessage = themessage + " - Voorletters" + "\n";}
	if (document.account.arts_instelling.value =="") {themessage = themessage + " - Instelling" + "\n";}
	if (document.account.arts_beroepsgroep.value =="0") {themessage = themessage + " - Beroepsgroep" + "\n";}
	var big_nummer = document.account.arts_big_nummer.value;
	if (big_nummer.length != 11) {themessage = themessage + " - BIG-inschrijfnummer" + "\n";}
	if (document.account.arts_adres.value =="") {themessage = themessage + " - Adres" + "\n";}
	var arts_pc1 = document.account.arts_pc_1.value;
	if (arts_pc1.length < 4) {themessage = themessage + " - Postcode cijfers" + "\n";}
	if ((arts_pc1.length == 4) && (arts_pc1==9999)) {themessage = themessage + " - Juiste postcode" + "\n";}
	var arts_pc2 = document.account.arts_pc_2.value;
	if (arts_pc2.length < 2) {themessage = themessage + " - Postcode letters" + "\n";}
	if (document.account.arts_woonplaats.value =="") {themessage = themessage + " - Woonplaats" + "\n";}
	if (val_bs_Email(document.account.arts_email.value) ==false){themessage = themessage + " - Een geldig email adres" + "\n";}
	if (document.account.arts_telefoonnummer.value =="") {themessage = themessage + " - Telefoonnummer" + "\n";}
	if (document.account.arts_faxnummer.value =="") {themessage = themessage + " - Faxnummer" + "\n";}
*/
	if (themessage == "Let op, u dient de volgende gegevens eerst nauwkeurig in te vullen:\n\n")
	{
			return $doorgaan;
	}
	else
	{
		alert(themessage);
		submitpressed= 0;
		return false;
	}
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 