/*
	Deze functie controleert de invoer van formulieren. 
	
	Er wordt gecontroleerd of:
	-Alle verplichte velden zijn ingevuld
	-Een vinkje is gezet bij het vakje 'akkoord met algemene voorwaarden'
	-Een correct e-mailadres is ingevuld
*/
function check(which, verplicht, error, emailerror){
	var empty = false;
	for (i=0;i<which.length;i++){
		var veld=which.elements[i];
		if(veld.type=="text"){
			//Maak alle achtergronden (weer) wit
			veld.style.background="#FFFFFF";
		}
		for (j=0;j<verplicht.length;j++){
			if(veld.type=="text" && veld.name==verplicht[j][0] && veld.value==''){
				veld.style.background="#FFBB99";
				empty = true;
			}
			if(veld.type=="textarea" && veld.name==verplicht[j][0] && veld.value==''){
				veld.style.background="#FFBB99";
				empty = true;
			}
			if(veld.type=="checkbox" && veld.name==verplicht[j][0] && !veld.checked && verplicht[j][1]=='voorwaarden'){
				veld.style.background="#FFBB99";
				alert("U moet wel akkoord gaan met de voorwaarden");
				return false;
			}
			if(veld.type=="text" && veld.value!='' && veld.name=='postcode' && verplicht[j][1]=='postcode') {
				postcode = veld.value.toUpperCase();
				veld.value = postcode;
				rExp = /^[1-9]{1}[0-9]{3}[A-Z]{2}$/; // van 1000AA tot 8999ZZ - Let op, geen spatie!
				if (!rExp.exec(postcode)) {
					alert('U heeft het veld postcode niet juist ingevuld.\nVul de postcode in met notatie 1234AB');
					return false;
				}
			}

			if(veld.type=="text" && veld.value!='' && veld.name=='email' && verplicht[j][1]=='email'){
				// E-mail check!
				var email=/^[_\.0-9a-z-]+\@([0-9a-z][0-9a-z-]*\.)+([a-z]{2,4})+$/i
				if(!(email.test(veld.value))){
					veld.style.background="#FF818C";
					alert("Geen geldig emailadres");
					return false;
				}
			}
		}
	}
	
	if(empty){
		alert("Niet alle velden zijn ingevuld.");
		return false;
	} else {
		if(document.getElementById("spamcheck")){
			document.getElementById("spamcheck").value = "Geen SPAM";
		}
		return true;
	}
}

function maak_roze(id){
	if(document.getElementById(id).className.search(/subselect/)>-1){
	}else{
		document.getElementById(id).className = document.getElementById(id).className+' subselect ';		
	}
}

function maak_normaal(id){
	if(document.getElementById(id).className.search(/subselect/)>-1){
		document.getElementById(id).className = document.getElementById(id).className.replace(/subselect/,'');	
	}	
}


//===================================call us================================
function showCallyou(){
		var html = '<iframe src="" id="callyou_frame" width="100%" height="100%" scrolling="no" frameborder="0" allowtransparency="true" style="margin:0 auto;margin-top:60px;position:fixed"></iframe>';
		var objBody = document.getElementsByTagName("body").item(0);
		var objOverlay = document.createElement("div");
		var arrayPageSize = getPageSize();
		objOverlay.setAttribute('id','callyou');
		objOverlay.style.display = 'block';
		objOverlay.style.width = arrayPageSize[0];
		objOverlay.style.height = arrayPageSize[1];	
		objOverlay.innerHTML = html;
		//objOverlay.onclick = function() { hideCallyou(); }
		objBody.appendChild(objOverlay);
		document.getElementById('callyou_frame').src ="/index.php?action=callYou&slug=callyou";		
}
function hideCallyou(){
		var r = document.getElementById('callyou');
		r.parentNode.removeChild(r)
}
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
//	console.log(self.innerWidth);
//	console.log(document.documentElement.clientWidth);

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

//	console.log("xScroll " + xScroll)
//	console.log("windowWidth " + windowWidth)

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
//	console.log("pageWidth " + pageWidth)

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}
//============================================================================

//check vordering formulier==========================================================================
function checkNr() {
	 var n = document.objectform.bankrk_nr; n.value = n.value.replace(/[^\d\.]/g,'');
	 var c = n.value.replace(/\D/g,'').split(''), a = c.length, e = 0;
	 if (a == 9) for (var i = 0; i < 9; i++) e += (9 - i) * c[i];
	 if(a < 3 || a == 8 || e % 11 != 0 ||  a > 9) {
		var check = confirm("Geen geldig Nederlands bankrekening nummer ingevoerd, wilt u doorgaan?");
		if(check){
			return true;
		} else {
			return false;
		}
	  };
};
 
 //check het bestelformulier
function check_vorderingform(){
	var formelements = document.getElementById('vorderingform');	
	var element = '';
	
	var error   = false;
	var name;
	var message = "";
	var rExp;
	for(i=0; i<formelements.elements.length; i++)
	{
		element = formelements.elements[i] ;
		element.className = "";
		
		if(element.type == "text" && element.title == "check"){
			name = element.name;
			//reset class
			if(element.className.replace(/error/)){
				element.className = element.className.replace(/error/);
			}
			
			if(name.search(/bestand/) <= -1 ){
				if(!element.value || element.value=="" || element.value==" "){
					element.className = "error";
					error = true;	
				}
				else if(name.search(/bankrk/)>-1){
					if (checkNr()) {
						
					}else{
						message += '- Controleer het met uw bankrekening nummer\n';
					  	element.className = "error";
					  	error = true;
					}
				}
				else if(name.search(/email/)>-1){					
					 var email = element.value.toLowerCase();
					 rExp = /^[a-z0-9\._%-]{2,}@[a-z0-9\._%-]{2,}\.[a-z]{2,4}$/;
					 if (!rExp.exec(email)) {
					  message += '- Controleer het veld "Email"\n';
					  element.className = "error";
					  error = true;
					 }else{
						 element.value = email;
					 }
				}
				else if(name.search(/postcode/)>-1){
					 var postcode = element.value.toUpperCase().split(' ').join('');
					 rExp = /^[1-9]\d{3}[A-Z]{2}$/;
					 if (!rExp.exec(postcode)) {
					  message += '- Vul de postcode in met notatie 1234AB\n';
					  element.className = "error";
					  error = true;
					 }else{
						 element.value = postcode;	 
					}
				}
			}
		}
	}
	var bestandnaam="";
	var matches = "";
	for(i=1;i<6;i++){
		if(!error){
			bestandnaam = 'bestand'+i;
			if( document.getElementById(bestandnaam+'_naam').className.replace(/error/)){
				 document.getElementById(bestandnaam+'_naam').className	=  document.getElementById(bestandnaam+'_naam').className.replace(/error/);
			}
			if( document.getElementById(bestandnaam+'_locatie').className.replace(/error/)){
				 document.getElementById(bestandnaam+'_locatie').className	=  document.getElementById(bestandnaam+'_locatie').className.replace(/error/);
			}
			if((document.getElementById(bestandnaam+'_naam') && document.getElementById(bestandnaam+'_locatie')) && (document.getElementById(bestandnaam+'_naam').value || document.getElementById(bestandnaam+'_locatie').value)){
					if(document.getElementById(bestandnaam+'_naam').value){
						if(document.getElementById(bestandnaam+'_locatie').value){
							if(((document.getElementById(bestandnaam+'_locatie').value.split('.').length )-1) > 1){
								 message += "- Uw bestands naam bevat te veel '.' verwijder een '.' uit uw bestands naam. Mogelijk moet u hier voor de extensie veranderen.\n";	
								 error = true;
							}
						}
						else{
							 message += "- U heeft geen bestand aangegeven\n";	
							  error = true;
						}
					}else{
						 message += "- U heeft geen omschrijving ingevoerd bij een bestand\n";	
						 document.getElementById(bestandnaam+'_naam').className = "error";
						 document.getElementById(bestandnaam+'_locatie').className = "error";
						 error = true;
					}
				}
		}
	}
	
	//controleren of de bedragen wel nummers zijng
	if(!isFloat(document.getElementById('vordering_bedrag').value) || !isFloat(document.getElementById('vordering_btw').value)){
		if(!isFloat(document.getElementById('vordering_bedrag').value)){
			document.getElementById('vordering_bedrag').className = "error check";
		}else{
				document.getElementById('vordering_bedrag').className = "check";
		}
		if(!isFloat(document.getElementById('vordering_btw').value)){
			document.getElementById('vordering_btw').className = "error check";
		}else{
			document.getElementById('vordering_btw').className = "check";
		}
		error = true;
		message += '- Controleer de vordering bedragen, deze voldoen niet aan het invoer masker\n';
	}
	
	if(error){
		if(message!=""){
			alert('U heeft niet alle gegevens correct ingevoerd.\n' + message);	
		}
		else{
			alert('U heeft niet alle gegevens correct ingevoerd.\n');		
		}		
	}
	else{
		formelements.submit();	
	}
}
 //=================================================================================================

function wissel(id,id2,display){
	document.getElementById(id2).style.display = display;
}

function wisselV2(id,id2,id3,display,display2){
	if(document.getElementById(id).checked){
		document.getElementById(id2).style.display = display;
		document.getElementById(id3).style.display = display2;
	} else if(document.getElementById(id2).checked){
		document.getElementById(id2).style.display = display2;
		document.getElementById(id3).style.display = display;
	}
}

function checkBetaling(){
	if(document.getElementById("betaling1").checked){
		document.getElementById("ideal").submit();
	} else {
		document.getElementById("factuur").submit();	
	}
}

//formulier controleren
function check_form(formid){	
	var formelements = document.getElementById(formid);	
	var element = '';	
	var error   = false;
	var name;
	var message = "";
	var rExp;
	var radioArray =Array();
	for(i=0; i<formelements.elements.length; i++)
	{
		element = formelements.elements[i] ;
		if(element.className.search(/check/) > -1){
			element.className = "check";
			if(element.type == "text" || element.type == "select-one"){
				name = element.name;
				if(!element.value || element.value=="" || element.value==" "){
					element.className = "error check";
					error = true;	
				}
				else if(name.search(/email/)>-1){					
					 var email = element.value.toLowerCase();
					 rExp = /^[a-z0-9\._%-]{2,}@[a-z0-9\._%-]{2,}\.[a-z]{2,4}$/;
					 if (!rExp.exec(email)) {
					  message += '- Controleer het veld "Email"\n';
					  element.className = "error check";
					  error = true;
					 }else{
						 element.value = email;
					 }
				}
				else if(name.search(/postcode/)>-1){
					 var postcode = element.value.toUpperCase().split(' ').join('');
					 rExp = /^[1-9]\d{3}[A-Z]{2}$/;
					 if (!rExp.exec(postcode)) {
					  message += '- Vul de postcode in met notatie 1234AB\n';
					  element.className = "error check";
					  error = true;
					 }else{
						 element.value = postcode;	 
					}
				}
			}
			else if(element.type == "textarea"){
				 if(!element.value || element.value=="" || element.value==" "){
					 element.className = "error check";
					 error = true;
					 message += '- Controleer alle tekstvelden\n';
				 }
			}
			else if(element.type == "radio"){
					element.className = "error check";
					radioArray[radioArray.length] = element.name;
			}
			// Voor de algemene voorwaarden
			else if(element.type == "checkbox" && element.name == "voorwaarden"){
				if(document.getElementById("voorwaarden").checked == false){
					element.className = "error check";
					error = true;
					message += '- U moet akkoord gaan met de algemene voorwaarden.\n';
				}
			}
		}
	}
	
	//haal dubbele array dingen weg
	function RemoveDuplicates(arr)
   {
		//get sorted array as input and returns the same array without duplicates.
		var result=new Array();
		var lastValue="";
		for (var i=0; i<arr.length; i++)
		{
		  var curValue=arr[i];
		  if (curValue != lastValue)
		  {
			result[result.length] = curValue;
		  }
		  lastValue=curValue;
		}
		return result;
   }
   
	radioArray = RemoveDuplicates(radioArray);
	if(radioArray.length>0){
		var oneSelected = false;
		var radioName;
		for(i=0;i<radioArray.length;i++){
			oneSelected = false;	
			radioName =radioArray[i];
			element = formelements[radioName];
			len = element.length;
			for (a = 0; a <len; a++) {
				if(element[a].checked) {
					oneSelected = true;
				}
			}
			
			if(!oneSelected){
				error = true;
				message += '- Controleer alle selectie velden\n';
				break;
			}
		}
	}
	
	if(error){
		if(message!=""){
			alert('U heeft niet alle gegevens correct ingevoerd.\n' + message);	
		}
		else{
			alert('U heeft niet alle gegevens correct ingevoerd.\n');		
		}		
	}
	else{
		formelements.submit();	
	}
}

//functie om 3 rijen aan te maken bij de vennootschapsakte
var iteration = 2;
var iteration2 = 2;
function addRowToTable(id1,id2)
{
	var tbl = document.getElementById(id1);
	var lastRow0 = tbl.rows.length;
	// if there's no header row in the table, then iteration = lastRow + 1
	iteration++;
	var row0 = tbl.insertRow(lastRow0);
	
	//1e rij
	var lastRow0 = tbl.rows.length;
	var row0 = tbl.insertRow(lastRow0);
	var cellLeft0 = row0.insertCell(0);
	var ondertekendeNode = document.createTextNode("Ondertekende " + iteration);
	cellLeft0.appendChild(ondertekendeNode);
	
	// right cell
	var cellRight0 = row0.insertCell(1);
	var el0 = document.createTextNode("");
	cellRight0.appendChild(el0);
	
	//2e rij
	// left cell
	var lastRow1 = tbl.rows.length;
	var row1 = tbl.insertRow(lastRow1);
	var cellLeft1 = row1.insertCell(0);
	var naamNode = document.createTextNode("Persoon " + iteration + ":");	
	cellLeft1.appendChild(naamNode);
	
	// right cell
	var cellRight1 = row1.insertCell(1);
	var el1 = document.createElement('input');
	el1.type = 'text';
	el1.className = 'check';
	el1.name = 'ondertekende[' + iteration + '][naam]';
	el1.size = 27;
	cellRight1.appendChild(el1);
	
	//3e rij
	var lastRow2 = tbl.rows.length;
	var row2 = tbl.insertRow(lastRow2);
	var cellLeft2 = row2.insertCell(0);
	var plaatsNode = document.createTextNode("Woonplaats " + iteration + ":");
	cellLeft2.appendChild(plaatsNode);
	
	// right cell
	var cellRight2 = row2.insertCell(1);
	var el2 = document.createElement('input');
	el2.type = 'text';
	el2.className = 'check';
	el2.name = 'ondertekende[' + iteration + '][woonplaats]';
	el2.size = 27;
	cellRight2.appendChild(el2);
	
	var tbl1 = document.getElementById(id2);
	var lastRow3 = tbl1.rows.length;
	// if there's no header row in the table, then iteration = lastRow + 1
	iteration2++;
	var row3 = tbl1.insertRow(lastRow3);
	
	//1e rij, 2e tabel
	var lastRow3 = tbl1.rows.length;
	var row3 = tbl1.insertRow(lastRow3);
	var cellLeft3 = row3.insertCell(0);
	var inbrengNode = document.createTextNode("Inbreng persoon " + iteration2 + ":");
	cellLeft3.appendChild(inbrengNode);
	
	// right cell
	var cellRight3 = row3.insertCell(1);
	var el3 = document.createElement('textarea');
	el3.className = 'check';
	el3.name = 'ondertekende[' + iteration2 + '][inbreng]';
	cellRight3.appendChild(el3);
	
	document.getElementById('aantal_contract').value = iteration;
}

//float check
function isFloat(val) {
	val.replace(",",".");
	val = parseFloat(val);

	if(!isNaN(val)) {
		return(true);
	} else {
		return(false);
	}
}