/* -------------------------------------------- fout afhandeling functies --------------------------------------------- */
function checkErrors(soort,waarde,extra) {
	/* checkt of ingevoerde waarde correct is.
	   soort = soort veld.
	   waarde = waarde wat gecontroleerd moet worden
	   extra = lengte of tld(bij domeinnaam check)
	   functie retourneert de foutmelding.*/
	var fout="";
	if (soort=="domeinnaam") { 
		if (waarde.length>63) {fout+="De gekozen domeinnaam is te lang!\n";}
		if (waarde.length<2) {fout+="De gekozen domeinnaam is te kort!\n";}
 		reg_exp=/\./i;
 		if (waarde.match(reg_exp)) {fout+='Een domeinnaam mag geen punt bevatten!\n';}
 		reg_exp=/[^A-z0-9\-]|[\_]/i;
		if (waarde.match(reg_exp)) {fout+="Een domeinnaam mag alleen letters, cijfers en het minteken bevatten!\n";}
		if (waarde.substr(waarde,1)=="-") {fout+="Een domeinnaam mag niet beginnen met een minteken!\n";}
		if (waarde.substr(waarde.length-1,1)=="-") {fout+="Een domeinnaam mag niet eindigen met een minteken!\n";}
 		reg_exp=/^\d+$/i;
		if (extra=="nl" && waarde.match(reg_exp) && waarde.length>0) {fout+="Een .nl domein mag niet uit alleen cijfers bestaan!\n";}
		if (extra=="info") {
			if (waarde.length<3) {fout+="Een .info domein moet minimaal uit 3 karakters bestaan!\n"; }
		
		}
		if (extra=="cc") {
			reg_exp=/^\d+$/i;
			if (waarde.length<3) {fout+="Een .cc domein moet minimaal uit 3 karakters bestaan!\n"; }
			if (waarde.match(reg_exp)) {fout+="Een .cc domein mag niet uit alleen cijfers bestaan!\n";}
		}
		if (extra=="je") {
			reg_exp=/^\d+$/i;
			if (waarde.length<3) {fout+="Een .je domein moet minimaal uit 3 karakters bestaan!\n"; }
			if (waarde.match(reg_exp)) {fout+="Een .je domein mag niet uit alleen cijfers bestaan!\n";}
		}
	}
	if (soort=="postcode_c") {
 		reg_exp=/\d{4}/;
 		if (!waarde.match(reg_exp)) {fout='Postcode moet vier cijfers bevatten!\n';}
 	} 
 	if (soort=="postcode_l") {
 		reg_exp=/[A-Z]{2}/i
 		if (!waarde.match(reg_exp)) {fout='Postcode moet twee letters bevatten!\n';}
	}
	if (soort=="huisnr") {
		reg_exp=/^[0-9]+/
		if (!waarde.match(reg_exp)) {fout='Huisnummer mag alleen cijfers bevatten!\n';}
	}		
	if (soort=="kvk") {
		reg_exp=/[0-9]{8}/
		if (!waarde.match(reg_exp)) {fout='KvK nummer moet uit acht cijfers bestaan!\n';}
	}
	if (soort=="kvksub") {
		reg_exp=/[0-9]{4}/
		if (!waarde.match(reg_exp)) {fout='KvK subnummer moet uit vier cijfers bestaan!\n';}
	}
	if (soort=="banknr") {
		elfproef=((waarde.charAt(0)*9)+(waarde.charAt(1)*8)+(waarde.charAt(2)*7)+(waarde.charAt(3)*6)+(waarde.charAt(4)*5)+(waarde.charAt(5)*4)+(waarde.charAt(6)*3)+(waarde.charAt(7)*2)+(waarde.charAt(8)*1))/11;
		if (elfproef!=parseInt(elfproef)) {
			fout='Banknummer is niet correct!\n';
		}
	}			
	if (soort=="email") {
		reg_exp=/^[a-z0-9]+[a-z0-9_\.\-]+[a-z0-9]+\@{1}(([a-z0-9\-])+\.)+([a-z]{2,4})$/i
		if (!waarde.match(reg_exp)) {fout=waarde+' is geen correct e-mail adres!';}
	}
return fout;
}

function checkDomain(formulier) {			
	tekst="Uw invoer bevat de volgende fout:\n\n";
	fout="";
	domeinnaam=formulier.domeinnaam.value;
	regexp=/^(\s*)(\w*)(\s*)$/
	domeinnaam=formulier.domeinnaam.value;
	domeinnaam=domeinnaam.replace(regexp,"$2");
	if (domeinnaam.length==0) {
		alert('U heeft geen domeinnaam opgegeven!');
		document.getElementById('domcheck').src='./images/domcheck.gif';
		return false;
	}
	var tld=0;
	for(teller=1;teller<formulier.length;teller++) {
		if (formulier.elements[teller].checked) {
			tld = 1;
			fout+=checkErrors('domeinnaam',domeinnaam,formulier.elements[teller].value);
		}
	}
	if (tld==0) {fout="U heeft geen extensie opgegeven!";}
	if (fout.indexOf("\n")!=fout.lastIndexOf("\n")) {tekst="De domeincheck bevat de volgende fouten:\n\n";} else {tekst="De domeincheck bevat de volgende fout:\n\n";}
	if (fout!="") {
		document.getElementById('domcheck').src='./images/domcheck.gif';
		alert(tekst+fout);
		return false;
	}
}

function isDisplayed(hetObj) {
	if(hetObj.style.display=="none") { return false; }
	if(hetObj.parentElement!=null) { return isDisplayed(hetObj.parentElement); } 
	else { return true; }
}
/* -------------------------------------------------------------------------------------------------------------------- */
/* --------------------------------------------       shopping cart       --------------------------------------------- */
function  AddToCart(pakket) {
	pakketarray=pakket.split(";");
	top.cart.location.replace('/php/cart.php?item='+pakket);
}

function DeleteFromCart(item) {
	if (confirm('Wilt u deze regel verwijderen?')) {
		top.cart.location.replace('/php/cart.php?regel=reg'+item);
	}
return;
}

function ShowRows(nummer) {
	test=eval("document.getElementById('row_"+nummer+"')");
	if (test.src.indexOf('open')>0)
	{
		test.src='/images/cart_line_close.gif';
	} else {
		test.src='/images/cart_line_open.gif';
	}
	teller=1;
	row=nummer+'_'+teller;
	test=eval("document.getElementById('"+row+"')");
	while(test) {
		if (test.style.display=='none')
		{
			try {test.style.display='table-row';}
			catch(e) {
				test.style.display='block';
			}
		} else {
			test.style.display='none';
		}
		teller++;
		row=nummer+'_'+teller;
		test=eval("document.getElementById('"+row+"')");
	}

}

function editRow(nummer) {
		parent.document.location.href='/edit/'+nummer;
}

function changeMaster(item,form) {
	if ((!item.value && item=='checked') || (item.value && item.checked)) {
		test='checked';
	} else {
		test='';
	}
if (test=='checked') {
		form.master.value='checked';
		form.dom.checked=true;
		form.red.disabled=true;
		form.forw.disabled=true;
	} else {
		form.master.value='unchecked';
		form.red.disabled=false;
		form.forw.disabled=false;
	}
}

/* -------------------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------------- formulier functies----------------------------------------------- */
function VeranderSoort(item) {
 	if (item.checked && item.value=="particulier") {
		document.getElementById('btw_text').style.display='none';
		document.getElementById('btw_input').style.display='none';
		document.getElementById('kvk_text').style.display='none';
		document.getElementById('kvk_input').style.display='none';
 	} else {
		document.getElementById('btw_text').style.display='block';
		document.getElementById('btw_input').style.display='block';
		document.getElementById('kvk_text').style.display='block';
		document.getElementById('kvk_input').style.display='block';

	}
}

function VeranderBetaal(item) {
	if (item.checked) {
		document.getElementById('betaal').style.display='block';
		document.bestelling.aincasso.value='on';
	} else {
		document.getElementById('betaal').style.display='none';
		document.bestelling.aincasso.value='';
	}
}

function elfProof(nr,sign) {
	var res=0; for(i=0;i<8;i++) { res+=(9-i)*nr.substr(i,1); }
	if(sign){ res+=1*nr.substr(8,1); } else { res-=1*nr.substr(8,1); }
	if(res%11==0) { return true; } else { return false; }
}
function form_controle(deForm) {
	/* TODO:
	- bedrijfsnaam/handelsnaam trimmen [\x20\x09\x0A\x0D\x00\x0B]* o.i.d., dan kan /S{2} eruit en wordt .{3,255} .{2,255}
	- straat vanaf 5 karakters uitwerken
	- toevoeging uitwerken
	- plaats uitwerken
	- email validatie is niet 100% goed
	- confirm postbank nummer, indien {1,7} en ^[^Pp]
	- tnv veld check
	*/
	var form_controle = new Array();
	form_controle["kvknr"] = new Array(/^[0-9]{8}$/,false,"KvK nummer");
	form_controle["kvknr_s"] = new Array(/^[0-9]{4}$/,false,"KvK nummer");
	form_controle["btwnr"] = new Array(/^[0-9]{9}$/,false,"BTW nummer");
	form_controle["btwnr_s"] = new Array(/^[0-9]{2}$/,false,"BTW nummer");
	form_controle["debnr"] = new Array(/^[1-9]{1}[0-9]{0,6}$/,false,"BISNIS debiteurnummer");
	form_controle["bedrijfsnaam"] = new Array(/^(\S{2}|.{3,255})$/,true,"Bedrijfsnaam");
	form_controle["handelsnaam"] = new Array(/^(\S{2}|.{3,255})$/,false,"Handelsnaam");
	form_controle["straat"] = new Array(/^([A-Za-z]{1,4}|.{5,255})$/,true,"Straat");
	form_controle["huisnr"] = new Array(/^[1-9]{1}[0-9]{0,4}$/,true,"Huisnummer");
	form_controle["toevoeg"] = new Array(/^.*$/,false,"Toevoeging");
	//form_controle["postcode_c"] = new Array(/^[1-9]{1}[0-9]{3}$/,true,"Postcode");
	//form_controle["postcode_l"] = new Array(/^[A-Za-z]{2}$/,true,"Postcode");
	form_controle["plaats"] = new Array(/^.{2,255}$/,true,"Plaats");
	form_controle["p_straat"] = new Array(/^([A-Za-z]{1,4}|.{5,255})$/,false,"Straat");
	form_controle["p_huisnr"] = new Array(/^[1-9]{1}[0-9]{0,4}$/,false,"Huisnummer");
	form_controle["p_toevoeg"] = new Array(/^.*$/,false,"Toevoeging");
	//form_controle["p_postcode_c"] = new Array(/^[1-9]{1}[0-9]{3}$/,false,"Cijfers postcode postadres");
	//form_controle["p_postcode_l"] = new Array(/^[A-Za-z]{2}$/,false,"Letters postcode postadres");
	form_controle["p_plaats"] = new Array(/^.{2,255}$/,false,"Plaats");
	form_controle["email"] = new Array(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/,false,"Algemeen e-mail adres");
	form_controle["easymail"] = new Array(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/,false,"EasyOffer e-mail adres");
	form_controle["vnaam"] = new Array(/^.+$/,true,"Uw voorletters");
	form_controle["tussen"] = new Array(/^.{2,}$/,false,"Uw naam tussenvoegsel");
	form_controle["anaam"] = new Array(/^.{2,}$/,true,"Uw achternaam");
	form_controle["functie"] = new Array(/^.{4,}$/,true,"Uw functie");
	form_controle["functie_o"] = new Array(/^.{4,}$/,true,"Uw functie");
	form_controle["c_tel_d"] = new Array(/^[0-9]{1,4}$/,false,"Uw doorkiesnummer");
	form_controle["c_email"] = new Array(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/,false,"Uw e-mail adres");
	/*
        form_controle["reknr"] = new Array(/^([1-9]{1}[0-9]{8}|[Pp]?[1-9]{1}[0-9]{0,6})$/,true,"Bank-/gironr.");
	form_controle["tnv"] = new Array(/^.{2,}$/,true,"Ten name van");
	*/
        foutmelding='';
	/*regexp voor email werkt niet goed*/
	if (deForm.c_email.value.length<5) {foutmelding+='Uw e-mail adres is niet correct ingevuld\n';}
	for(var i=0; i<deForm.elements.length; i++) {
		hetObj = deForm.elements[i];
		if(isDisplayed(hetObj) && form_controle[hetObj.name] && ((form_controle[hetObj.name][1] && !hetObj.value.match(form_controle[hetObj.name][0])) || (hetObj.value.length>0 && !hetObj.value.match(form_controle[hetObj.name][0])))) { foutmelding+=form_controle[hetObj.name][2]+' is niet correct ingevuld.\n'; }
	}	
	/* samenhangend verband */
	/* postcode */
		if (!(deForm.postcode_c.value+deForm.postcode_l.value).match(/^[1-9]{1}[0-9]{3}[A-Za-z]{2}$/)) {foutmelding+="Postcode fout ingevuld.\n";}
	/* postcode postadres */
		if (((deForm.p_postcode_c.value+deForm.p_postcode_l.value).length>0) && !(deForm.p_postcode_c.value+deForm.p_postcode_l.value).match(/^[1-9]{1}[0-9]{3}[A-Za-z]{2}$/)) {foutmelding+="Postcode postadres fout ingevuld.\n";}
	/* tel + fax */
	tel = deForm.tel_r.value + deForm.tel_a.value; if(!tel.match(/^(.{0}|(0(800|90(6|9|0))([0-9]{4}|[0-9]{7})|0[1-8]{1}[0-9]{8}))$/)) { foutmelding+='Algemeen telefoonnummer is niet correct ingevuld.\n';}
	fax = deForm.fax_r.value + deForm.fax_a.value; if(!fax.match(/^(.{0}|(0(800|90(6|9|0))([0-9]{4}|[0-9]{7})|0[1-8]{1}[0-9]{8}))$/)) { foutmelding+='Algemeen faxnummer is niet correct ingevuld.\n';}
	c_tel = deForm.c_tel_r.value + deForm.c_tel_a.value; if(!c_tel.match(/^(0800([0-9]{4}|[0-9]{7})|0[1-8]{1}[0-9]{8})$/)) { foutmelding+='Uw telefoonnummer is niet correct ingevuld.\n'; }
	ident = deForm.kvknr.value + deForm.btwnr.value + deForm.debnr.value; if(!ident.match(/^.+$/) && deForm.soort[1].checked) { foutmelding+='U dient een KvK-, BTW- of debiteurnummer in te geven.\n'; }
	/* 11 proof */
	hetObj = deForm.btwnr; if(hetObj.value.length>1 && !elfProof(hetObj.value,0)) { foutmelding+='Ongeldig BTW nummer ingegeven.\n'; }
	hetObj = deForm.reknr; if(parent.isDisplayed(hetObj) && hetObj.value.match(/^[0-9]{9}$/) && !elfProof(hetObj.value,1)) { foutmelding+='Ongeldig bankrekeningnummer ingegeven.\n'; }
	if (!deForm.akkoord.checked) {foutmelding+='U dient akkoord te gaan met de Algemene Voorwaarden van BISNIS Online BV.\n';}
	if (foutmelding!='') {alert(foutmelding);return false;}
	return true;
}
/* -------------------------------------------------------------------------------------------------------------------- */

/* ------------------------------------------------   Openers                          -------------------------------- */
function openwin(item) {
	infowindows= window.open('/info/'+item,'','HEIGHT=200, WIDTH=200');
}
/* -------------------------------------------------------------------------------------------------------------------- */

