/***********************************************************************************************************
* AJAX http request
************************************************************************************************************/
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();
/***********************************************************************************************************
* Check if numeric
************************************************************************************************************/
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;
}
/***********************************************************************************************************
* send email
************************************************************************************************************/
function sendemail() {
    /*******************************************************************************************************
    VALIDATE FORM
    *******************************************************************************************************/
    var approved=true;
    
    var elm = document.getElementById('contactform').elements;
    for(var i = 0; i < elm.length; i++) {            
        // check for required radio buttons        
        if(elm[i].type=="radio"){            
            if(elm[i].type=="radio" && elm[i].id ==1){
                var name = document.getElementById('contactform').elements[i].name;
                var checked=0;
                for (var f=0; f<document.getElementById('contactform').elements[name].length; f++)  {
                    if(document.getElementById('contactform').elements[name][f].checked){
                        checked=1;
                    }                    
                } // end for loop
                if (checked==1) {
                    document.getElementById("contactform_"+elm[i].name).innerHTML = "";                        
                } // end if
                else {                        
                    document.getElementById("contactform_"+elm[i].name).innerHTML = "<img src='/_img/exclamation.png'>";
                    approved = false;
                } // end else
            } // end if
        } // end if
        else {
            // check required fields
            if(elm[i].type=="text" && elm[i].id ==1 && elm[i].value==""){
                document.getElementById("contactform_"+elm[i].name).innerHTML = "<img src='/_img/exclamation.png'>";
                approved = false;
            } // end if
            else if (elm[i].type=="text" && elm[i].id ==1 && elm[i].value!=="") {               
               document.getElementById("contactform_"+elm[i].name).innerHTML = "";       
            } // emd else
        }
    } // end for
    
    // postcode check
    rExp = /^[1-9]{1}[0-9]{3}[A-Za-z]{2}$/;
    if(document.forms['contactform'].elements["zip"] && document.forms['contactform'].elements["zip"].id==1){
        if (!rExp.exec(document.forms['contactform'].elements['zip'].value)) {
            document.getElementById("contactform_zip").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        }
        else {
            document.getElementById("contactform_zip").innerHTML = "";
        }
    }
    
    if(document.forms['contactform'].elements["email"] && document.forms['contactform'].elements["email"].id==1){
        // check email
        if (checkEmail()==false) {
            approved = false;
        }
    }
    
    if(document.forms['contactform'].elements["amount"] && document.forms['contactform'].elements["amount"].id==1){
        // check email
        if (! (parseInt(document.forms['contactform'].elements["amount"].value) > 2)) {
            document.getElementById("contactform_amount").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        } 
        else if (IsNumeric(document.forms['contactform'].elements["amount"].value) == false) {
            document.getElementById("contactform_amount").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        }        
    }
    
    // 11 proef op bankrekening als het nederlandse inschrijving is
    if(document.forms['contactform'].elements["bankaccount"] && document.forms['contactform'].elements["bankaccount"].id==1){
        var bnk = document.forms['contactform'].elements["bankaccount"].value;        
        // verwijder alle tekens die geen cijfers zijn
        bnk=bnk.replace(/\D/, "");
        if(bnk.length>=10){
            document.getElementById("contactform_bankaccount").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        }
        else{
            if(bnk.length>=8){
                var som=0;
                // loop door de 9 cijfers met de 11 proef formule
                for (i=1; i<10; i++) {
                    getal=bnk.charAt(i-1);
                    som+=getal*(10-i);
                } 
                // geef resultaat van check terug
                if (som % 11!=0){
                    document.getElementById("contactform_bankaccount").innerHTML = "<img src='/_img/exclamation.png'>";
                    approved = false;
                } // end if
            } // end if
        } // end else
    } // end if
    
    // show message if not all fields are filled in correctly
    if (approved==false){
        alert("U heeft een aantal velden niet correct ingevuld, controleer a.u.b. de velden met een uitroepteken ervoor.");            
    }
	
	/*******************************************************************************************************
	IF AlL OKAY, SEND DATA
	*******************************************************************************************************/
	if (approved==true){		
		
		// build data string
		var data = '';
		var elm = document.getElementById('contactform').elements;
		// save data from text fields
		for(var i = 0; i < elm.length; i++) {	
			if(elm[i].type=="text" && elm[i].value !==""){
				data += elm[i].name +"="+ elm[i].value +"&";				
			} // end if
		} // end for
		
		// save data from checkbox
		for(var i = 0; i < elm.length; i++) {	
			if(elm[i].type=="checkbox" && elm[i].value !==""){
				if (elm[i].checked==true){
				data += elm[i].name +"="+ elm[i].value +"&";				
				}
			} // end if
		} // end for
		
		// save data from radio buttons
		for(var i = 0; i < elm.length; i++) {	
			if(elm[i].type=="radio" && elm[i].value !==""){
				var name = elm[i].name;
				var checked=0;
				for (var f=0; f<document.getElementById('contactform').elements[name].length; f++)  {
					if (document.getElementById('contactform').elements[name][f].checked){
						data += document.getElementById('contactform').elements[name][f].name +"="+ document.getElementById('contactform').elements[name][f].value +"&";				
					}				
				} // end for loop				
			} // end if
		} // end for
		
		
	    http.open('get', '/_form/_inc/process_form.php?formid='+document.forms['contactform'].elements["formid"].value+'&'+data);
	    http.onreadystatechange = handleResponse;
	    http.send(null);
	}
}

/***********************************************************************************************************
* submit form
************************************************************************************************************/
function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
         
        }
    }
}


/***********************************************************************************************************
* check valid email address
************************************************************************************************************/
function checkEmail() {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/.test(document.contactform.email.value)){
	return true;
}
	document.getElementById("contactform_email").innerHTML = "<img src='/_img/exclamation.png'>";
	return false;
}

/***********************************************************************************************************
* function to check choices and visible
************************************************************************************************************/
function checkVisibleSource() {
	if(document.forms['contactform'].elements["bron"].value=="Anders namelijk"){
		document.getElementById("visible_bron2").style.display = "block";
	}
	else {
		document.getElementById("visible_bron2").style.display = "none";
	}
}

/***********************************************************************************************************
* function to check choices and visible
************************************************************************************************************/
function checkVisibleInformation() {
	
	if(document.forms['contactform'].elements['betreft']['0'].checked==true){
		document.getElementById("visible_row1").style.display = "";
		document.getElementById("visible_row2").style.display = "";
		document.getElementById("visible_row3").style.display = "";
		document.getElementById("visible_row4").style.display = "";
	}
	else if(document.forms['contactform'].elements['betreft']['1'].checked==true) {
		document.getElementById("visible_row1").style.display = "none";
		document.getElementById("visible_row2").style.display = "none";
		document.getElementById("visible_row3").style.display = "none";
		document.getElementById("visible_row4").style.display = "none";
	}
}

/***********************************************************************************************************
* Send value from radio button
************************************************************************************************************/
function SendValue(elm) {
	var value;	
	for (var i=0; i < document.forms['contactform'].elements[elm].length; i++) {
		if (document.forms['contactform'].elements[elm][i].checked==true) {
			var value = document.forms['contactform'].elements[elm][i].value;
		}
	}
	if (value==undefined) {
		value=0;
	}
	return value;
}
/*******************************************************************************************************
changetopoint
*******************************************************************************************************/
function changetopoint(mThis){
    var inhoud = mThis.value;
    var newinhoud = inhoud.replace(',','.');
    mThis.value = newinhoud;
}

/*******************************************************************************************************
ideal amount
*******************************************************************************************************/
function deletepoint(mThis){
    var inhoud = mThis.value;
    
    var iChars = ".";   
	for (var i = 0; i < inhoud.length; i++) {   
		if (iChars.indexOf(inhoud.charAt(i)) != -1) {   	
			var newinhoud = inhoud.replace('.','');
			alert("Alleen hele getallen toegestaan.");
			mThis.value = newinhoud;
		}  
	}

	var iChars = ",";   
	for (var i = 0; i < inhoud.length; i++) {   
		if (iChars.indexOf(inhoud.charAt(i)) != -1) {   	
			var newinhoud = inhoud.replace(',','');
			alert("Alleen hele getallen toegestaan.");
			mThis.value = newinhoud;
		}  
	}  
}

/*******************************************************************************************************
validate date format
*******************************************************************************************************/
function regularExp(type, value) {
    
    if( type == '' ) {
        return false;
    } 
    else {
    
        if( type == 'postcode' ) {
            var rExp = /^[1-9]{1}[0-9]{3}[A-Za-z]{2}$/;
            return rExp.exec(value);
        }
        
        if( type == 'datum' ) {
            var rExp = /^[0-3][0-9]-[0-1][0-9]-[0-9]{4}$/;
            return rExp.exec(value);
        }
    }
}
/*******************************************************************************************************
VALIDATE FORM
*******************************************************************************************************/
function validateForm() {
    var approved=true;

    var elm = document.getElementById('contactform').elements;
    for(var i = 0; i < elm.length; i++) {            
        // check for required radio buttons        
        if(elm[i].type=="radio"){            
            if(elm[i].type=="radio" && elm[i].id == 1){
                var name = document.getElementById('contactform').elements[i].name;
                var checked=0;
                
                // check if only 1 element of a single radio button is present
                if(document.getElementById('contactform').elements[name].length == undefined){
                	if(document.getElementById('contactform').elements[name].checked){
                		checked=1;
                	}
                }
                // if more elements are present, check them
                else {
                	 for (var f = 0; f < document.getElementById('contactform').elements[name].length; f++)  {
                         if(document.getElementById('contactform').elements[name][f].checked){
                             checked=1;
                         }                    
                     } // end for loop	
                }
                
                if (checked==1) {
                    document.getElementById("contactform_"+elm[i].name).innerHTML = "";                        
                } // end if
                else {                        
                    document.getElementById("contactform_"+elm[i].name).innerHTML = "<img src='/_img/exclamation.png'>";
                    approved = false;
                } // end else
            } // end if
        } // end if
        else {
            // check required fields
            if(elm[i].type=="text" && elm[i].id==1 && elm[i].value==""){
                document.getElementById("contactform_"+elm[i].name).innerHTML = "<img src='/_img/exclamation.png'>";
                approved = false;
            } // end if
            else if (elm[i].type=="text" && elm[i].id==1 && elm[i].value!=="") {               
               document.getElementById("contactform_"+elm[i].name).innerHTML = "";       
            } // end else
           
            if(elm[i].type=="text" && elm[i].id==2){
            	if( !regularExp('datum', elm[i].value) ) {
				    document.getElementById("contactform_"+elm[i].name).innerHTML = "<img src='/_img/exclamation.png'>";
				    approved = false;
				}
				else {
					document.getElementById("contactform_"+elm[i].name).innerHTML = "";
				}
            } // end if
        }
    } // end for
    
    // postcode check
    rExp = /^[1-9]{1}[0-9]{3}[A-Za-z]{2}$/;
    if(document.forms['contactform'].elements["zip"] && document.forms['contactform'].elements["zip"].id==1){
        if (!rExp.exec(document.forms['contactform'].elements['zip'].value)) {
            document.getElementById("contactform_zip").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        }
        else {
            document.getElementById("contactform_zip").innerHTML = "";
        }
    }
    
    if(document.forms['contactform'].elements["email"] && document.forms['contactform'].elements["email"].id==1){
        // check email
        if (checkEmail()==false) {
            approved = false;
        }
    }
    
    if(document.forms['contactform'].elements["amount"] && document.forms['contactform'].elements["amount"].id==1){
        if (! (parseInt(document.forms['contactform'].elements["amount"].value) > 0)) {
            document.getElementById("contactform_amount").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        } 
        else if (IsNumeric(document.forms['contactform'].elements["amount"].value) == false) {
            document.getElementById("contactform_amount").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        }        
    }
    
    // 11 proef op bankrekening als het nederlandse inschrijving is
    if(document.forms['contactform'].elements["bankaccount"] && document.forms['contactform'].elements["bankaccount"].id==1){
        var bnk = document.forms['contactform'].elements["bankaccount"].value;        
        // verwijder alle tekens die geen cijfers zijn
        bnk=bnk.replace(/\D/, "");
        if(bnk.length>=10){
            document.getElementById("contactform_bankaccount").innerHTML = "<img src='/_img/exclamation.png'>";
            approved = false;
        }
        else{
            if(bnk.length>=8){
                var som=0;
                // loop door de 9 cijfers met de 11 proef formule
                for (i=1; i<10; i++) {
                    getal=bnk.charAt(i-1);
                    som+=getal*(10-i);
                } 
                // geef resultaat van check terug
                if (som % 11!=0){
                    document.getElementById("contactform_bankaccount").innerHTML = "<img src='/_img/exclamation.png'>";
                    approved = false;
                } // end if
            } // end if
        } // end else
    } // end if
    
    if(document.getElementById('contactform').elements["newsletter"]){
	    if(document.getElementById('contactform').elements["newsletter"].checked){
	    	if(document.forms['contactform'].elements["email"].value=="" && document.forms['contactform'].elements["email"].id==0){
	    		alert("Als u de digitale nieuwsbrief wenst te ontvangen, dient u een email adres op te geven.");
	            approved = false;        	
	    	}
	    }
    }
    
    // show message if not all fields are filled in correctly
    if (approved==false){
        alert("U heeft een aantal velden niet correct ingevuld, controleer a.u.b. de velden met een uitroepteken ervoor.");            
        return false;
    }
    else {
        return true;
    }
}
