//Mailinglijst Formulier Validatie script
//door Willem de Vlam, Opium voor het Volk

// variables to hold for other functions
var JSmailing
var digimail = new Array()
digimail[0] = document.getElementById('idfemailadr') 
digimail[1] = document.getElementById('labelemail')


var treeware = new Array() 
treeware[0] = document.getElementById('idfhuisadr')
treeware[1] = document.getElementById('idfhuisPC')
treeware[2] = document.getElementById('idfhuisstad')
treeware[3] = document.getElementById('idfhuisland')
treeware[4] = document.getElementById('labelpostadr')
treeware[5] = document.getElementById('labelpcenstad')
treeware[6] = document.getElementById('labelpostland')

//things to do when the page loads
// 1 - set focus to voornaam field
document.getElementById('idfvoornaam').focus()


for (j=0; j<treeware.length; j++){treeware[j].style.display = 'none'}
for (i=0; i<digimail.length; i++){digimail[i].style.display = 'none'}


var checkfield 
checkfield = document.getElementById('idfcheck').value
checkfield = 0

var FirstNameError = 1
var LastNameError  = 1
var tussenError = 0
var mailingError = 1
var mailadrError = 1
var postadrError = 1
var postPCError = 1
var postStadError = 1
var postLandError = 1
var totalerrors

//email is now the default option hence the following
CheckBoxes('chbx2','alleen email')

function calcerrors(){
totalerrors = FirstNameError + LastNameError + mailingError + mailadrError + postadrError + postPCError
totalerrors = totalerrors + postStadError + postLandError
return totalerrors
}

function WriteInfoString()
{
	var infostringpre = "<p><span style='font-size:13;font-weight:bold;'>U schreef:</span><br><span style='font-size:12; '>"

	infostringpre = infostringpre + "<b>naam: </b>" + document.getElementById('idfvoornaam').value + " " + trim(document.getElementById('idftussen').value + " " + document.getElementById('idfachternaam').value) + "<br>" + "<b>U krijgt: </b>" + document.getElementById('idfmailing').value + "<br>"

	if (document.getElementById('idfmailing').value != "alleen post"){
		infostringpre = infostringpre + "<b>emailadres: </b>" + document.getElementById('idfemailadr').value + "<br>"
	}
	if (document.getElementById('idfmailing').value != "alleen email"){
		infostringpre = infostringpre + "<b>postadres: </b>" + document.getElementById('idfhuisadr').value + "<br>" + document.getElementById('idfhuisPC').value + ", " + document.getElementById('idfhuisstad').value + "<br>" + document.getElementById('idfhuisland').value
	}
	document.getElementById('youwrote').innerHTML = infostringpre + '</span></p>'
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function showarrow(id,b){
/*	var Arrow = document.getElementById(id)
	if (b== true){
	Arrow.style.display = 'inline'
	} else if (b == false){
	Arrow.style.display = 'none'
	}
*/
	}

function CheckMe(fieldid)
{
var field 
field = document.getElementById(fieldid)

//Checks the name fields
	  if (fieldid == 'idfvoornaam'){
	  	 if (field.value != ""){
		 capitalizeMe(field)
	  	 showarrow('namecell', false)
		 FirstNameError=0	
		 WriteInfoString()  
		 }
		 else {
		 showarrow('namecell', true)
		 FirstNameError = 1
 		 }
	  } else if (fieldid == 'idftussen'){
	  	 if (field.value != ""){
		 WriteInfoString()
		 }
	  } else if (fieldid == 'idfachternaam'){
	  	 if (field.value !=""){
		 	 var tussenfout = /\,| de | van der | van | der | het | \'t | ter/
		 	 if (field.value.search(tussenfout) != -1 && field.value.search(tussenfout)<=5 ){
			 tussenError = 1 
			 showarrow('namecell',true)
			 } else {
		 tussenError = 0
		 capitalizeMe(field)
	  	 showarrow('namecell',false)
		 LastNameError = 0	
		 WriteInfoString()
		 	}	
		 }
	   }


	   
//check the mailing options
if (fieldid == 'idfmailing'){
   if (JSmailing == null){
   mailingError = 1
   showarrow('mailingcell', true) 
   } else {
   showarrow('mailingcell', false)
   mailingError = 0
   }
}

//checks the treeware fields
	   if(fieldid == 'idfhuisadr'){
	      if(JSmailing == 'post en email' || JSmailing == 'alleen post'){
		    if(field.value == ""){
			postadrError = 1
			showarrow('streetcell', true)
			}else {
			postadrError = 0
			capitalizeMe(field)
			showarrow('streetcell', false)
			} 			   
		  } else {
		  showarrow('streetcell', false)
		  } 			  			  		  
	    } else if(fieldid == 'idfhuisPC'){
	      if(JSmailing == 'post en email' || JSmailing == 'alleen post'){
		    if(field.value == ""){
			postPCError = 1
			showarrow('PCcitycell', true)
			}else {
			postPCError = 0
			showarrow('PCcitycell', false)
			} 			   
		  } else {
		  showarrow('streetcell', false)
		  } 	 			  			  		  
	    } else if(fieldid == 'idfhuisstad'){
	      if(JSmailing == 'post en email' || JSmailing == 'alleen post'){
		    if(field.value == ""){
			postadrError = 1
			showarrow('PCcitycell', true)
			}else {
			capitalizeMe(field)
			postStadError = 0
			showarrow('PCcitycell', false)
			} 			   
		  } else {
		  showarrow('streetcell', false)
		  } 	 			  			  		  
	    }else if(fieldid == 'idfhuisland'){
	      if(JSmailing == 'post en email' || JSmailing == 'alleen post'){
		    if(field.value == ""){
			postLandError = 1
			showarrow('countrycell', true)
			}else {
			capitalizeMe(field)
			postLandError = 0
			showarrow('countrycell', false)
			} 			   
		  } else {
		  showarrow('streetcell', false)
		  } 
		WriteInfoString()	
	    }
	   
	 

//Check the email fields calling the checkemail function 
// returns an error if mailing is set to email or email en post 
	  if (fieldid == 'idfemailadr'){
   	  	 if (checkemail(field.value) == false){
   	  	 	if (JSmailing == "alleen email" || JSmailing == "post en email"){
			mailadrError = 1
			showarrow('emailcell', true)
			} else {
			mailadrError = 0
			showarrow('emailcell', false)
			}
   		 } else {
		 mailadrError = 0
		 showarrow('emailcell', false)
		 WriteInfoString()
		 }
		 
   	 }
	 
//Check the phone number
//we don't really need this
	 if (fieldid == 'idftelnr'){
	 	if (field.value.length < 10){
		alert('dit zijn minder dan tien cijfers')
		} else if (field.value.length >= 10){
		var seppos
		var sep = new Array
		sep[0] = /-/g
		sep[1] = /\(*\)/g
			   for (i=0; i<2;i++){
			   	   if (field.value.search(sep[i]) != -1){
				   seppos = field.value.search(sep[i])
			   	   } 
		  		}
		if (seppos == null){
		alert('geen scheidingsteken tussen kengetal en telefoonnummer')
		} else {alert(seppos)}
		
		}
	}

};

function CheckBoxes(fieldid, mailarg){

var JScheckbox = document.getElementById(fieldid)
var JScheckboxes = new Array
JScheckboxes = document.getElementsByName('chboxes')

	for (i=0;i<JScheckboxes.length;i++){
		if (JScheckboxes[i].id != fieldid){
		JScheckboxes[i].value = 'no'
		JScheckboxes[i].checked = false
		}else{
		JScheckboxes[i].value =  'yes'
		JScheckboxes[i].checked = true
		JSmailing = mailarg
		mailingError = 0
		document.getElementById('idfmailing').value = JSmailing
		
		}
	};

if (JSmailing == "alleen email"){
		for (j=0; j<treeware.length; j++){treeware[j].style.display = 'none'}
		for (i=0; i<digimail.length; i++){digimail[i].style.display = 'inline'}
		showarrow('mailingcell', false)
		postadrError= 0
		postPCError = 0
		postStadError = 0
		postLandError = 0
		mailadrError = 1
		clearfield('post')
		if (document.getElementById('idfachternaam').value != ''){
		}
} else if (JSmailing == "alleen post"){
		for (i=0; i<treeware.length;i++){treeware[i].style.display = 'inline'}
		for (j=0; j<digimail.length; j++){digimail[j].style.display = 'none'}
		showarrow('mailingcell', false)
		showarrow('emailcell', false)
		postadrError = 1
		postPCError = 1
		postStadError = 1
		postLandError = 1
		mailadrError = 0
		clearfield('email')
		document.getElementById('idfhuisland').value = "Nederland"
} else if (JSmailing == "post en email") {
		for (i=0; i<treeware.length;i++){treeware[i].style.display = 'inline'}
		for (j=0; j<digimail.length; j++){digimail[j].style.display = 'inline'}
		showarrow('mailingcell', false)
		postadrError = 1
		postPCError = 1
		postStadError = 1
		postLandError = 1
		mailadrError = 1
		document.getElementById('idfhuisland').value = "Nederland"
} else if (JSmailing == "niet"){
		for (j=0; j<treeware.length; j++){treeware[j].style.display = 'none'}
		for (j=0; j<digimail.length; j++){digimail[j].style.display = 'none'}
		showarrow('mailingcell', false)
		postadrError = 0
		postPCError = 0
		postStadError = 0
		postLandError = 0
		mailadrError = 0
		clearfield('all')
} 
WriteInfoString()
};

function RunThrough(){

CheckMe('idfvoornaam')
CheckMe('idftussen')
CheckMe('idfachternaam')
CheckMe('idfmailing')
CheckMe('idfemailadr')
CheckMe('idfhuisadr')
CheckMe('idfhuisPC')
CheckMe('idfhuisstad')
CheckMe('idfhuisland')

  if(calcerrors() == 0){
	checkfield = 1
	alert('Dank U. Uw informatie wordt verzonden.')
	document.formulier.submit()
	
  } else {
	if (calcerrors() == 1){
	  	 alert("er zit nog één fout in het formulier. Controleer het aub nog een keer goed")
	} else {
	  alert("er zijn nog " + calcerrors() +  " fouten in het formulier. Controleer het aub nog een keer goed")
	}
  }
};

function capitalizeMe(obj) {
        val = obj.value;
        newVal = '';
        val = val.split(' ');
        for(var c=0; c < val.length; c++) {
                newVal += val[c].substring(0,1).toUpperCase() +
val[c].substring(1,val[c].length) + ' ';
        }
        obj.value = newVal;
};

function checkemail(str){
  var filter=/^.+@.+\..{2,3}$/
  return (filter.test(str))
  }	;
  
function clearfield(arg){
var postarr = new Array()
postarr[0] = 'idfhuisadr'
postarr[1] = 'idfhuisPC'
postarr[2] = 'idfhuisstad'
postarr[3] = 'idfhuisland' 

if (arg == 'post'){

   for (i=0;i<postarr.length;i++ ){
   document.getElementById(postarr[i]).value = ''
   }
  
}else if (arg== 'email'){
	  document.getElementById('idfemailadr').value = ''
}else if (arg == 'all'){

postarr[4] = 'idfemailadr'
for (i=0;i<postarr.length;i++ ){
   document.getElementById(postarr[i]).value = ''
   }
} 
};
