function trim(str) {
   return str.replace(/^\s*|\s*$/g,"");
}

function lenstring(aString,aLength,aCharacter) {
    if(aString.length<aLength) {
        returnString="";
        for(tel=0;tel<(aLength-aString.length);tel++) {
            returnString+=aCharacter;
        }
        return returnString+aString;
    } else {
        return aString;
    }
}

function IsNumeric(strString)
   //  check for valid numeric strings
   {
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }
   


function changeLastNamePrefix(aFormElement) {
    var regcaps = /\b[A-Z]+\b/
    var regexp = /[^'a-zA-Z0-9@\.\(\)\/, -Ã¼Ã©Ã¢Ã¤Ã Ã¥ÃªÃ«Ã¨Ã¯Ã®Ã¬Ã„Ã…Ã‰Ã¦Ã†Ã´Ã¶Ã²Ã»Ã¹Ã¿Ã–ÃœÃ¡Ã­Ã³ÃºÃ±Ã‘]/

    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.replace(regexp,"")
    }
    var wordArray = aFormElement.value.split(" ")

    for(var i=0;i<wordArray.length;i++) {
        //only change the first letter if they are not all capitalized
        if(wordArray[i].search(regcaps)==-1) {
            switch(wordArray[i].toLowerCase()) {
                case "van" : case "der" : case "de" : case "den" : case "v/d" : case "vd" : case "v.d." : case "v.d" :
                    if(wordArray[i].toLowerCase()=="v/d" || wordArray[i].toLowerCase()=="vd" || wordArray[i].toLowerCase()=="v.d." || wordArray[i].toLowerCase()=="v.d") {
                        wordArray[i]="van de";
                    }
                    if(wordArray[i].toLowerCase()=="v") {
                        wordArray[i]="van";
                    }
                    wordArray[i]=wordArray[i].toLowerCase();
                    break;
                default :
                    wordArray[i] = wordArray[i].substring(0,1).toUpperCase() + wordArray[i].substring(1,wordArray[i].length).toLowerCase()
            }
        }
    }
    aFormElement.value=wordArray.join(" ")
}

function changeName(aFormElement) {
    var regcaps = /\b[A-Z]+\b/
    var regexp = /[^'a-zA-Z0-9@\.\(\), ]/

    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.replace(regexp,"")
    }
    var wordArray = aFormElement.value.split(" ")


    for(var i=0;i<wordArray.length;i++) {
        //only change the first letter if they are not all capitalized
        if(wordArray[i].search(regcaps)==-1) {
            switch(wordArray[i].toLowerCase()) {
                case "van" : case "der" : case "de" : case "den" : case "ten" :
                    wordArray[i]=wordArray[i].toLowerCase();
                    break;
                case "v/d" : case "vd" : case "v.d." :
                    wordArray[i]="van de";
                    break;
                default :
                    wordArray[i] = wordArray[i].substring(0,1).toUpperCase() + wordArray[i].substring(1,wordArray[i].length).toLowerCase()
            }
        }
    }
    aFormElement.value=wordArray.join(" ")
}

function toUpper(aFormElement) {
    aFormElement.value=aFormElement.value.toUpperCase();
}

function toLower(aFormElement) {
    aFormElement.value=aFormElement.value.toLowerCase();
}

function addPoints(aFormElement) {
    //all elements which are not a-zA-Z have to be deleted
    var regexp = /[^a-zA-Z]/

    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.replace(regexp,"")
    }
    //define the startstring this is a string with only characters
    aStartString=aFormElement.value.toUpperCase()
    //set the Form-element to a string with nothing
    aFormElement.value=""
    //now put the points inside the string
    for(var i=0;i<aStartString.length;i++) {
        aFormElement.value+=aStartString.charAt(i) + "."
    }
    //only 10 characters are allowed
    aFormElement.value=aFormElement.value.substring(0,10)
}

function changeZipCode(aFormElement) {
  aFormElement.value = aFormElement.value.toUpperCase()
  if (aFormElement.value.length == 6) {
    aFormElement.value = aFormElement.value.substr(0,4) + " " + aFormElement.value.substr(4,2)
  }
  if (aFormElement.value.length > 6) {
    aFormElement.value = aFormElement.value.substr(0,4) + " " + aFormElement.value.substr(5,2)
  }
}

function changeZipCodeNoSpace(aFormElement) {
  aFormElement.value = aFormElement.value.toUpperCase()
  if (aFormElement.value.length == 6) {
    aFormElement.value = aFormElement.value.substr(0,4) + aFormElement.value.substr(4,2)
  }
  if (aFormElement.value.length > 6) {
    aFormElement.value = aFormElement.value.substr(0,4) + aFormElement.value.substr(5,2)
  }
}

function changePhoneNumber(aFormElement) {
    var regexp = /[^0-9 \-\+\(\)]/
    if(aFormElement.value!="") {
        while(aFormElement.value.search(regexp)!=-1) {
            aFormElement.value = aFormElement.value.replace(regexp,"");
        }
        aFormElement.value = aFormElement.value.replace(/[)]/,"-");
        aFormElement.value = aFormElement.value.replace("--","-");
        regexp = /[^0-9\-]/
        while(aFormElement.value.search(regexp)!=-1) {
            aFormElement.value = aFormElement.value.replace(regexp,"");
        }
        if(aFormElement.value.substr(0,1)!="0") {
            aFormElement.value="0" + aFormElement.value;
        }
        if(aFormElement.value.search(/[-]/)==-1) {
            if(aFormElement.value.substr(0,2)=="06") {
                aFormElement.value = aFormElement.value.substr(0,2) + "-" + aFormElement.value.substr(2,15);
            } else if(
                aFormElement.value.substr(0,3)=="010" ||
                aFormElement.value.substr(0,3)=="013" ||
                aFormElement.value.substr(0,3)=="015" ||
                aFormElement.value.substr(0,3)=="020" ||
                aFormElement.value.substr(0,3)=="023" ||
                aFormElement.value.substr(0,3)=="024" ||
                aFormElement.value.substr(0,3)=="026" ||
                aFormElement.value.substr(0,3)=="030" ||
                aFormElement.value.substr(0,3)=="033" ||
                aFormElement.value.substr(0,3)=="035" ||
                aFormElement.value.substr(0,3)=="036" ||
                aFormElement.value.substr(0,3)=="038" ||
                aFormElement.value.substr(0,3)=="040" ||
                aFormElement.value.substr(0,3)=="043" ||
                aFormElement.value.substr(0,3)=="045" ||
                aFormElement.value.substr(0,3)=="046" ||
                aFormElement.value.substr(0,3)=="050" ||
                aFormElement.value.substr(0,3)=="053" ||
                aFormElement.value.substr(0,3)=="055" ||
                aFormElement.value.substr(0,3)=="058" ||
                aFormElement.value.substr(0,3)=="070" ||
                aFormElement.value.substr(0,3)=="071" ||
                aFormElement.value.substr(0,3)=="072" ||
                aFormElement.value.substr(0,3)=="073" ||
                aFormElement.value.substr(0,3)=="074" ||
                aFormElement.value.substr(0,3)=="075" ||
                aFormElement.value.substr(0,3)=="076" ||
                aFormElement.value.substr(0,3)=="077" ||
                aFormElement.value.substr(0,3)=="078" ||
                aFormElement.value.substr(0,3)=="079"
            ) {
                aFormElement.value = aFormElement.value.substr(0,3) + "-" + aFormElement.value.substr(3,14);
            } else {
                aFormElement.value = aFormElement.value.substr(0,4) + "" + aFormElement.value.substr(4,13);
            }
        }
        if(aFormElement.value=="-") {
            aFormElement.value = "";
        }
        aFormElement.value = aFormElement.value.substr(0,17);
        //if(aFormElement.value.length!=11) {
        //    alert("Je telefoonnummer is niet geldig, deze moet uit 10 cijfers bestaan");
        //}
    }
}

function number_format (number, decimals, dec_point, thousands_sep)
{
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("â‚¬");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }

  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ?
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }

  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
    for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }

  return sign + integer + fractional + exponent;
}

function changeMoney(aFormElement) {
    var regexp = /[^0-9,]/

    aFormElement.value=aFormElement.value.replace(",",".")

    aFormElement.value=number_format(aFormElement.value,2,",","");

    aFormElement.value="EUR " + aFormElement.value;
}

function changeInteger(aFormElement) {
    var regexp = /[^0-9]/

    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.replace(regexp,"")
    }
}

function changeEmailAddress(aFormElement) {
    var regexp = /[^0-9a-z@\._\-]/
	var regcaps = /\b[A-Z]+\b/


    aFormElement.value=aFormElement.value.toLowerCase()
    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.replace(regexp,"")
		alert("Je e-mailadres is niet correct.");
    }
	
	apos=aFormElement.value.indexOf("@");
	dotpos=aFormElement.value.lastIndexOf(".");
	if (apos<1||dotpos-apos<2) 
	  {alert("Je e-mailadres is niet correct.");}
	
}

function cropText(aFormElement,aSize) {
    aFormElement.value = aFormElement.value.substring(0,aSize)
}

function changeHomeNumber(aFormElement,aExtentionElement) {
    var regexp = /[^0-9]/;
    var newvalue = "";
    var Length = aFormElement.value.length;

    for (var i=0; i<Length; i++) {
        if(IsNumeric(aFormElement.value.charAt(i))) {
            newvalue+=aFormElement.value.charAt(i).toString();
        } else {
            break;
        }
    }
    if(aExtentionElement.value=="") {
        aExtentionElement.value=trim(aFormElement.value.substring(i));
    }
    aFormElement.value=newvalue;
}

function changeDate(aFormElement) {
    var aDay,aMonth,aYear;

    theDate = new Date();
    theYear = theDate.getYear();
    if (theYear<1900) theYear=theYear+1900;

    var regexp = /[\/]/
    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.toString().replace(regexp,"-");
    }
    regexp = /[^0-9/-]/
    while(aFormElement.value.search(regexp)!=-1) {
        aFormElement.value = aFormElement.value.replace(regexp,"")
    }
    regexp = /[/-]/
    if(aFormElement.value.search(regexp)==-1) {
        //only numbers
        if(aFormElement.value.length>=8) {
            aDay=aFormElement.value.charAt(0) + aFormElement.value.charAt(1);
            aMonth=aFormElement.value.charAt(2) + aFormElement.value.charAt(3);
            aYear=aFormElement.value.charAt(4) + aFormElement.value.charAt(5) + aFormElement.value.charAt(6) + aFormElement.value.charAt(7);
        }
        if(aFormElement.value.length==7) {
            aDay=aFormElement.value.charAt(0);
            aMonth=aFormElement.value.charAt(1) + aFormElement.value.charAt(2);
            if(parseInt(aMonth)>12) {
                aDay=aFormElement.value.charAt(0) + aFormElement.value.charAt(1);
                aMonth=aFormElement.value.charAt(2);
            }
            aYear=aFormElement.value.charAt(3) + aFormElement.value.charAt(4) + aFormElement.value.charAt(5) + aFormElement.value.charAt(6);
        }
        if(aFormElement.value.length==6) {
            aDay=aFormElement.value.charAt(0) + aFormElement.value.charAt(1);
            aMonth=aFormElement.value.charAt(2) + aFormElement.value.charAt(3);
            aYear=aFormElement.value.charAt(4) + aFormElement.value.charAt(5);
        }
        if(aFormElement.value.length==5) {
            aDay=aFormElement.value.charAt(0);
            aMonth=aFormElement.value.charAt(1) + aFormElement.value.charAt(2);
            if(parseInt(aMonth)>12) {
                aDay=aFormElement.value.charAt(0) + aFormElement.value.charAt(1);
                aMonth=aFormElement.value.charAt(2);
            }
            aYear=aFormElement.value.charAt(3) + aFormElement.value.charAt(4);
        }
        if(aFormElement.value.length==4) {
            aDay=aFormElement.value.charAt(0) + aFormElement.value.charAt(1);
            aMonth=aFormElement.value.charAt(2) + aFormElement.value.charAt(3);
            aYear=theYear;
        }
        if(aFormElement.value.length==3) {
            aDay=aFormElement.value.charAt(0);
            aMonth=aFormElement.value.charAt(1) + aFormElement.value.charAt(2);
            if(parseInt(aMonth)>12) {
                aDay=aFormElement.value.charAt(0) + aFormElement.value.charAt(1);
                aMonth=aFormElement.value.charAt(2);
            }
            aYear=theYear;
        }
        if(aYear>50 && aYear<100) {
            aYear="19" + lenstring(aYear.toString(),2,"0");
        } else if(aYear<=50) {
            aYear="20" + lenstring(aYear.toString(),2,"0");
        } else if(aYear<1000) {
            aYear="2" + lenstring(aYear.toString(),3,"0");
        }
        if(aFormElement.value.length<3) {
            aFormElement.value="";
        } else {
            aFormElement.value=lenstring(aDay.toString(),2,"0") + "-" + lenstring(aMonth.toString(),2,"0") + "-" + lenstring(aYear.toString(),4,"0");
        }
    } else {
        DateArray=aFormElement.value.split("-");
        if(DateArray.length==3) {
            if(DateArray[0]>100) {
                aDay=(DateArray[2] % 31)==0?31:(DateArray[2] % 31);
                aMonth=(DateArray[1] % 12)==0?12:(DateArray[1] % 12);
                aYear=DateArray[0];
            } else {
                aDay=(DateArray[0] % 31)==0?31:(DateArray[0] % 31);
                aMonth=(DateArray[1] % 12)==0?12:(DateArray[1] % 12);
                if(DateArray[2]>=10000) {
                    DateArray[2]=DateArray[2]%10000;
                }
                if(DateArray[2]>50 && DateArray[2]<100) {
                    aYear="19" + lenstring(DateArray[2].toString(),2,"0");
                } else if(DateArray[2]<=50) {
                    aYear="20" + lenstring(DateArray[2].toString(),2,"0");
                } else if(DateArray[2]<1000) {
                    aYear="2" + lenstring(DateArray[2].toString(),3,"0");
                } else {
                    aYear=DateArray[2];
                }
            }
            aFormElement.value=lenstring(aDay.toString(),2,"0") + "-" + lenstring(aMonth.toString(),2,"0") + "-" + lenstring(aYear.toString(),4,"0");
        } else if(DateArray.length==2) {
            aDay=(DateArray[0] % 31)==0?31:(DateArray[0] % 31);
            aMonth=(DateArray[1] % 12)==0?12:(DateArray[1] % 12);
            aYear=theYear;

            aFormElement.value=lenstring(aDay.toString(),2,"0") + "-" + lenstring(aMonth.toString(),2,"0") + "-" + lenstring(aYear.toString(),4,"0");
        } else {
            aFormElement.value="";
        }
    }
}

