/*
  -------------------------------------------------------------------------
	                    JavaScript Form Validator 
                                Version 2.0.2
	Copyright 2003 JavaScript-coder.com. All rights reserved.
	You use this script in your Web pages, provided these opening credit
    lines are kept intact.
	The Form validation script is distributed free from JavaScript-Coder.com

	You may please add a link to JavaScript-Coder.com, 
	making it easy for others to find this script.
	Checkout the Give a link and Get a link page:
	http://www.javascript-coder.com/links/how-to-link.php

    You may not reprint or redistribute this code without permission from 
    JavaScript-Coder.com.
	
	JavaScript Coder
	It precisely codes what you imagine!
	Grab your copy here:
		http://www.javascript-coder.com/
    -------------------------------------------------------------------------  
*/
function Validator(frmname)
{
  this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  alert("BUG: couldnot get Form object "+frmname);
		return;
	}
	if(this.formobj.onsubmit)
	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}
	else
	{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
}
function set_addnl_vfunction(functionname)
{
  this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
	for(var itr=0;itr < this.formobj.elements.length;itr++)
	{
		this.formobj.elements[itr].validationset = null;
	}
}
function form_submit_handler()
{
	for(var itr=0;itr < this.elements.length;itr++)
	{
		if(this.elements[itr].validationset &&
	   !this.elements[itr].validationset.validate())
		{
		  return false;
		}
	}
	if(this.addnlvalidation)
	{
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}
function add_validation(itemname,descriptor,errstr)
{
  if(!this.formobj)
	{
	  alert("BUG: the form object is not set properly");
		return;
	}//if
	var itemobj = this.formobj[itemname];
  if(!itemobj)
	{
	  alert("BUG: Couldnot get the input object named: "+itemname);
		return;
	}
	if(!itemobj.validationset)
	{
	  itemobj.validationset = new ValidationSet(itemobj);
	 
	}
	  
  itemobj.validationset.add(descriptor,errstr);
  
}
function ValidationDesc(inputitem,desc,error)
{
  this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.validate=vdesc_validate;
	
}
function vdesc_validate()
{
	
 if(!V2validateData(this.desc,this.itemobj,this.error))
 {
    this.itemobj.focus();
		return false;
 }
 return true;
}
function ValidationSet(inputitem)
{
    this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
  this.vSet[this.vSet.length]= 
	  new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
	
   for(var itr=0;itr<this.vSet.length;itr++)
	 {
	   if(!this.vSet[itr].validate())
		 {
		   return false;
		 }
	 }
	 return true;
}
function validateEmailv2(email)
{
// a very simple email validation checking. 
// you can add more complex email checking if it helps 
    if(email.length <= 0)
	{
	  return true;
	}
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}
function V2validateData(strValidateStr,objValue,strError) 
{ 

    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 
    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
           if(eval(objValue.value.length) == 0) 
           { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " is verplicht."; 
              }//if 
              alert(strError); 
              return false; 
           }//if 
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : "+cmdvalue+" maximum aantal karakters "; 
               }//if 
               alert(strError + "\n[huidig aantal = " + objValue.value.length + " ]"); 
               return false; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : " + cmdvalue + " minimum aantal karakters  "; 
               }//if               
               alert(strError + "\n[huidig aantal = " + objValue.value.length + " ]"); 
               return false;                 
             }//if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
               if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": ongeldige tekens aanwezig "; 
                }//if 
                alert(strError + "\n [ongeldig karakter op positie " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//case alphanumeric 
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.search("[^0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": alleen cijfers toegestaan "; 
                }//if               
                alert(strError + "\n [ongeldig karakter op positie " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break;               
           }//numeric 
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": alleen letters toegestaan "; 
                }//if                             
                alert(strError + "\n [ongeldig karakter op positie " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": toegestane tekens A-Z,a-z,0-9,- en _"; 
                }//if                             
                alert(strError + "\n [ongeldig karakter op positie " + eval(charpos+1)+"]"); 
                return false; 
              }//if 			
			break;
			}
        case "email": 
          { 
               if(!validateEmailv2(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.name+": ongeldig e-mailadres "; 
                 }//if                                               
                 alert(strError); 
                 return false; 
               }//if 
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": moet een getal zijn "); 
              return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : value should be less than "+ cmdvalue; 
              }//if               
              alert(strError); 
              return false;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : value should be greater than "+ cmdvalue; 
               }//if               
               alert(strError); 
               return false;                 
             }//if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(cmdvalue)) 
	            { 
	              if(!strError || strError.length ==0) 
	              { 
	                strError = objValue.name+": ongeldige karakters gevonden "; 
	              }//if                                                               
	              alert(strError); 
	              return false;                   
	            }//if 
			}
           break; 
         }//case regexp 
		case "dontselect": 
         { 
		
            if(objValue.selectedIndex == null) 
            { 
              alert("BUG: dontselect command for non-select Item"); 
              return false; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
             if(!strError || strError.length ==0) 
              { 
              strError = objValue.name+": selecteer een optie "; 
              }//if                                                               
              alert(strError); 
              return false;                                   
             } 
             break; 
         }//case dontselect 
    }//switch 
    return true; 
}
function DoPasswordCheck()
{
	var frm = document.forms["frmInschrijven"];
	if(frm.inpWachtwoord == null){
			return true;
		}
		else
		{	
 
  if(frm.inpWachtwoord.value != frm.inpWachtwoord2.value)
  {
    alert('De ingevulde wachtwoorden zijn niet hetzelfde.');
	frm.inpWachtwoord.focus();
    return false;
  }
  else
  {
    return true;
  }
		}
}
function DoEmailCheck()
{
  var frm = document.forms["frmInschrijven"];
  sResponse = getResponse("/voor_studenten/inschrijven/inschrijven_check.asp?check="+frm.inpEmail.value);
  
  if (skipCheckEmail == false ){
  if(sResponse=="bezet")
  {
    alert('Dit e-mailadres is al in gebruik.\nGebruik een ander e-mailadres.');
		frm.inpEmail.focus();
    return false;		  
  }
  else
  {
    return true;
  }
	} else {
		return true;
	}
	
}


function ischecked(items,form,strError)
    {					
		var frmobj = document.forms[form]
		if(frmobj == null){
			return true;
		}
		if(frmobj[items] == null){
			return true;
		}
		else
		{	
        if (!frmobj[items].checked) {
         
				 if(!strError || strError.length ==0) 
				  { 
				  	strError = items+": vink optie aan"; 
				  }//if                                                               
				  	alert(strError); 
					
				  return false;         
			} 
			 else
			 {
			 return true;  
			 }
		  }
       } 




function checkmin(items,form,iMin,strError)
         {				
		var frmobj = document.forms[form]
		if(frmobj == null){
		return true;
		}
		if(frmobj[items] == null){
		return true;
		}
		else
		{	
			var checkboxes_checked = 0;
			
 			for (i=0; i< frmobj[items].length; i++) {
  				
     				if (frmobj[items][i].checked) {
    					checkboxes_checked = checkboxes_checked + 1;
  					}
   				
			 }
            if(checkboxes_checked < eval(iMin)) 
            { 
				 if(!strError || strError.length ==0) 
				  { 
				  	strError = items+": vink minimaal "+iMin+" optie's aan"; 
				  }//if                                                               
				  	alert(strError);  
				  return false;         
				 } 
			 else
			 {
			 return true;  
			 }
		}
         } 
         
function DoCustomValidationCVtalent1()
{	
  if(document.getElementById("inpTalen6").checked == true) {
  	if (document.forms["frmInstellingen"]["nldropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Nederlands niveau.");
  		document.frmInstellingen.inpTalen6.focus();
  		return false;
  	}
  }
    if(document.getElementById("inpTalen5").checked == true) {
  	if (document.forms["frmInstellingen"]["itdropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Italiaans niveau.");
  		document.frmInstellingen.inpTalen5.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen4").checked == true) {
  	if (document.forms["frmInstellingen"]["esdropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Spaans niveau.");
  		document.frmInstellingen.inpTalen4.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen3").checked == true) {
  	if (document.forms["frmInstellingen"]["dedropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Duits niveau.");
  		document.frmInstellingen.inpTalen3.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen2").checked == true) {
  	if (document.forms["frmInstellingen"]["frdropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Frans niveau.");
  		document.frmInstellingen.inpTalen2.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen1").checked == true) {
  	if (document.forms["frmInstellingen"]["endropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Engels niveau.");
  		document.frmInstellingen.inpTalen1.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen7").checked == true) {
  	if (document.forms["frmInstellingen"]["ardropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Arabisch niveau.");
  		document.frmInstellingen.inpTalen7.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen8").checked == true) {
  	if (document.forms["frmInstellingen"]["madropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Marokaans niveau.");
  		document.frmInstellingen.inpTalen8.focus();
  		return false;
  	}
  }
  if(document.getElementById("inpTalen9").checked == true) {
  	if (document.forms["frmInstellingen"]["tkdropdown"].selectedIndex == 0 ) {
  		alert("Selecteer je Turks niveau.");
  		document.frmInstellingen.inpTalen9.focus();
  		return false;
  	}
  }
      
  
  
  
  
  
  
  
  
  
  
  if(!checkmin("internationaal","frmInstellingen",1,"Kies je land van interesse.")){
	return false;
  }         

}

function DoCustomValidationCvtalentVragen()
{
	if (document.getElementById("interesseja").checked)
	{
		//voor internationaal!!
		if (!document.getElementById("intja").checked&&!document.getElementById("intnee").checked&&!document.getElementById("intlb").checked)
		{
			alert("Selecteer internationaal of niet")
			return false;
		}
		//opleidingsniveau!!
		if (!document.getElementById("hbo").checked&&!document.getElementById("mbo").checked&&!document.getElementById("wo").checked)
		{
			alert("Selecteer iig één opleidingsniveau")
			return false;
		}
		//contracttoesturen!!
		if (!document.getElementById("contracttoesturennee").checked&&!document.getElementById("contracttoesturenja").checked)
		{
			alert("Kies contract doorsturen of doorverbinden")
			return false;
		}		
	}
}


function DoCustomValidationInschrijvenBedrijfStap1()
{
	if (document.getElementById("inpEmail").value!=document.getElementById("inpEmail2").value){
		alert("emailadressen zijn niet hetzelfde");
		return false;
	}
}
         
function DoCustomValidation()
{	

  if(!checkmin("inpRijbewijs","frmInvoeren",1,"Je moet aangeven of een rijbewijs noodzakelijk is.")){
	return false;
  }


  if(!ischecked("inpAgree","frmInschrijven","U dient akkoord te gaan met de Algemene Voorwaarden.")){
	return false;
  }   
  if(!checkmin("inpTalen","frmInschrijven",1,"Je moet minimaal één taal selecteren.")){
	return false;
  }
  if(!checkmin("inpGeslacht","frmInschrijven",1,"Je moet je geslacht selecteren")){
	return false;
  }

  if(false == DoPasswordCheck())
  {
    return false;
  }
  else
  if(false == DoEmailCheck())
  {
    return false;
  }
  else
  {
    return true;
  }
}

function DoCustomValidationPayroll() {


if (!(document.frm.optemail[1].checked) && !(document.frm.optemail[0].checked))
		{ 
			alert("Selecteer telefoon of email");
			return false;
		} 
	
if (!(document.frm.aanhef[1].checked) && !(document.frm.aanhef[0].checked))
		{ 
			alert("Selecteer aanhef");
			return false;
		} 

if (document.frm.optemail[0].checked && document.frm.telefoon.value== "" ) 
		{ 			
			alert("Vul een telefoonnummer in");
			return false;
		} 
if (document.frm.optemail[1].checked && document.frm.email.value== ""  ) 
		{ 
			alert("Vul een email adres in");
			return false;
		} 
	
}

function DoCustomValidationContact() {

if (!(document.frmContact.optemail[1].checked) && !(document.frmContact.optemail[0].checked))
		{ 
			alert("Selecteer telefoon of email");
			return false;
		} 	


if ((document.frmContact.optemail[1].checked) && (document.frmContact.telefoon.value== "") )
		{ 
			alert("Vul een telefoonnummer in"); 
			return false;
		} 	
if ((document.frmContact.optemail[0].checked) && (document.frmContact.email.value== ""))
		{ 
			
			alert("Vul een emailadres in"); 
			return false;
		} 	
}

function DoCustomValidationZafrika() {

if (!(document.frmZdafrika.bijeenkomst[1].checked) && !(document.frmZdafrika.bijeenkomst[0].checked)&& !(document.frmZdafrika.bijeenkomst[2].checked))
		{ 
			alert("Selecteer een datum");
			return false;
		} 	

}


function DoCustomValidationFraude() {
var strTitel	= document.frmInvoeren.inpTitel.value
var strOmschr	= document.frmInvoeren.inpStageomschrijving.value
var strExtra	= document.frmInvoeren.inpExtra.value

if ( strTitel.search(email)  != -1 ) {
	alert("Het is niet toegestaan om een emailadres in de titel te plaatsen  \n Verwijder het emailadres uit de titel van de stage."); 
	document.frmInvoeren.inpTitel.focus();
	return false;
}
if ( strOmschr.search(email)  != -1 ) {
	alert("Het is niet toegestaan om een emailadres in de omschrijving te plaatsen. \n Verwijder het emailadres uit de omschrijving van de stage."); 
	document.frmInvoeren.inpStageomschrijving.focus();
	return false;
	
}
if ( strExtra.search(email)  != -1 ) {
	alert("Het is niet toegestaan om een emailadres in de omschrijving te plaatsen. \n Verwijder het emailadres uit de aanvullende informatie van de stage."); 
	document.frmInvoeren.inpExtra.focus();
	return false;
}


}

function DoCustomValidationZmractie() {

if (!(document.frmZmractie.keuze[0].checked) && !(document.frmZmractie.keuze[1].checked) && !(document.frmZmractie.keuze[2].checked) && !(document.frmZmractie.keuze[3].checked))
		{ 
			alert("Selecteer abonnementsvorm");
			return false;
		} 	


}


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;
   }


/*
	Copyright 2003 JavaScript-coder.com. All rights reserved.
*/
