function ValidateForm (frm, fields)	{
	var vf = Validate(fields);
	var cf = CheckForm(frm);
	if (cf) { return true; }
	else { return false; }
}

function ValidateElektraForm (frm, fields)	{
	var vf = Validate(fields);
	var cf = CheckElektraForm(frm);

	if (cf && vf) { return true; }
	else { return false; }
}

function ValidateGasForm (frm, fields)	{
	var vf = Validate(fields);
	var cf = CheckGasForm(frm);

	if (cf && vf) { return true; }
	else { return false; }
}

function ValidatePasswordForm (frm, fields)	{
	var vf = Validate(fields);
	var cf = CheckPasswordForm(frm);

	if (cf && vf) { return true; }
	else { return false; }
}

function ValidateBrancheForm (frm, fields)	{
	var vf = Validate(fields);
	var cf = CheckBrancheForm(frm);

	if (cf && vf) { return true; }
	else { return false; }
}


missings = new Array();
missings['geen_emailadres'] = 'U heeft geen email adres ingevuld.';
missings['geen_geldig_emailadres'] = 'Het ingevulde email adres is geen geldig email adres.';
missings['ongeldige_tekens_voor'] = 'Het emailadres bevat ongeldige tekens voor de @.';
missings['ongeldige_tekens_na'] = 'Het emailadres bevat ongeldige tekens na de @.';

missings['geen_eancode'] = 'Vul minstens één EAN-code in.';
missings['ongeldige_eancode'] = "U heeft een ongeldige EAN-code ingevuld.\nAlleen cijfers zijn toegestaan.";
missings['geen_begindatum'] = 'U heeft geen begindatum gekozen.';
missings['geen_einddatum'] = 'U heeft geen einddatum gekozen.';

missings['geen_verbruik'] = 'U heeft geen te verwachten verbruik ingevuld.';

missings['geen_adres'] = 'U heeft geen adres ingevuld.';
missings['geen_postcode'] = 'U heeft geen postcode ingevuld.';
missings['geen_plaats'] = 'U heeft geen plaats ingevuld.';
missings['geen_provincie'] = 'U heeft geen provincie gekozen.';
missings['geen_voorletters'] = 'U heeft geen voorletters ingevuld.';
missings['geen_achternaam'] = 'U heeft geen achternaam ingevuld.';
missings['geen_naam'] = 'U heeft geen naam van de contactpersoon ingevuld.';
missings['geen_emailadres'] = 'U heeft geen emailadres ingevuld.';
missings['geen_telefoon'] = 'U heeft geen telefoonnummer ingevuld.';
missings['geen_login'] = 'U heeft geen loginnaam of emailadres ingevuld.';
missings['geen_bedrijf'] = 'U heeft geen bedrijfsnaam ingevuld.';
missings['geen_branche'] = 'U heeft geen branche ingevuld.';
missings['geen_loginnaam'] = 'U heeft geen gebruikersnaam ingevuld.';
missings['geen_wachtwoord'] = 'U heeft geen wachtwoord ingevuld.';

function nummers(val){
	var waarde = val;
	var vergelijk = new String('0123456789');
	for (i=0;i<waarde.length;i++) {
		if (vergelijk.indexOf(waarde.charAt(i)) == -1) return false;
	}
	return true;
}

function CheckForm (theForm) {
	var undefined;
	if (theForm.g_eancodeElektra.value.trim() == "" && theForm.g_eancodeGas.value.trim() == "") {
		alert(missings['geen_eancode']);
		theForm.g_eancodeElektra.focus();
		return (false);
	}else if(theForm.g_eancodeElektra.value.trim() != ""){
		var retval = nummers(theForm.g_eancodeElektra.value);
		if(retval == false){
			alert(missings['ongeldige_eancode']);
			theForm.g_eancodeElektra.focus();
			return (false);
		}
	}else if(theForm.g_eancodeGas.value.trim() != ""){
		var retval = nummers(theForm.g_eancodeGas.value);
		if(retval == false){
			alert(missings['ongeldige_eancode']);
			theForm.g_eancodeGas.focus();
			return (false);
		}
	}
	if (theForm.g_leveringAdres.value.trim() == "") {
		alert(missings['geen_adres']);
		theForm.g_leveringAdres.focus();
		return (false);
	}
	if (theForm.g_leveringPostcode.value.trim() == "") {
		alert(missings['geen_postcode']);
		theForm.g_leveringPostcode.focus();
		return (false);
	}
	if (theForm.g_leveringPlaats.value.trim() == "") {
		alert(missings['geen_plaats']);
		theForm.g_leveringPlaats.focus();
		return (false);
	}
	if (theForm.g_leveringProvincie.selectedIndex == 0) {
		alert(missings['geen_provincie']);
		return (false);
	}
	if(theForm.g_sameContactPerson == undefined || (theForm.g_sameContactPerson && theForm.g_sameContactPerson.value != 1)){
		if (theForm.g_voorletters.value.trim() == "") {
			alert(missings['geen_voorletters']);
			theForm.g_voorletters.focus();
			return (false);
		}
		if (theForm.g_achternaam.value.trim() == "") {
			alert(missings['geen_achternaam']);
			theForm.g_achternaam.focus();
			return (false);
		}
		if (!emailCheck(theForm.g_email)){
			theForm.g_email.focus();
			return (false);
		}
	}
	if(theForm.g_bedrijf){
		if (theForm.g_bedrijf.value.trim() == "") {
			alert(missings['geen_bedrijf']);
			theForm.g_bedrijf.focus();
			return (false);
		}
		if (theForm.g_loginnaam.value.trim() == "") {
			alert(missings['geen_loginnaam']);
			theForm.g_loginnaam.focus();
			return (false);
		}
		if (theForm.g_wachtwoord.value.trim() == "") {
			alert(missings['geen_wachtwoord']);
			theForm.g_wachtwoord.focus();
			return (false);
		}
	}
	if (theForm.g_eancodeElektra.value.trim() != ""){
		if (theForm.g_peakload.value.trim() == "") {
			alert(missings['geen_verbruik']);
			theForm.g_peakload.focus();
			return (false);
		}
		if (theForm.g_offpeakload.value.trim() == "") {
			alert(missings['geen_verbruik']);
			theForm.g_offpeakload.focus();
			return (false);
		}
	}
	if (theForm.g_eancodeGas.value.trim() != ""){
		if (theForm.g_afname.value.trim() == "") {
			alert(missings['geen_verbruik']);
			theForm.g_afname.focus();
			return (false);
		}
		if (theForm.g_afnameMax.style.display == 'block' && theForm.g_afnameMax.value.trim() == "") {
			alert(missings['geen_verbruik']);
			theForm.g_afnameMax.focus();
			return (false);
		}
	}
	return (true);
}

function CheckElektraForm (theForm) {
	if (theForm.begindatumElektra.selectedIndex == 0) {
		alert(missings['geen_begindatum']);
		return (false);
	}
	if (theForm.einddatumElektra.selectedIndex == 0) {
		alert(missings['geen_einddatum']);
		return (false);
	}
	
	return (true);
}
	
function CheckGasForm (theForm) {
	if (theForm.begindatumGas.selectedIndex == 0) {
		alert(missings['geen_begindatum']);
		return (false);
	}
	if (theForm.einddatumGas.selectedIndex == 0) {
		alert(missings['geen_einddatum']);
		return (false);
	}
	
	return (true);
}

function CheckPasswordForm (theForm) {
	if (theForm.login.value.trim() == "") {
		alert(missings['geen_login']);
		theForm.login.focus();
		return (false);
	}
	return (true);
}

function CheckBrancheForm (theForm) {
	if (theForm.q_branche.value.trim() == "") {
		alert(missings['geen_branche']);
		theForm.q_branche.focus();
		return (false);
	}
	if (theForm.q_contactpersoon.value.trim() == "") {
		alert(missings['geen_naam']);
		theForm.q_contactpersoon.focus();
		return (false);
	}
	if (!emailCheck(theForm.q_email)){
		theForm.q_email.focus();
		return (false);
	}
	if (theForm.q_telefoon.value.trim() == "") {
		alert(missings['geen_telefoon']);
		theForm.q_telefoon.focus();
		return (false);
	}
	
	return (true);
}

	<!--//--><![CDATA[//><!--
function trim(str)
  {
    s = str.replace(/^(\s)*/, '');
    s = s.replace(/(\s)*$/, '');
    return s;
  }
  
function Validate(check)
{
	var undefined;
	var pass = true;
	var fields = new Array();
	var i = 0;
	var f = '';
	var val = '';

	fields = check.split(',');

	for (i=0;i<fields.length;i++) {
		f = trim(fields[i]);
		el = document.getElementById(fields[i]);
		if(el != undefined){
			el.parentNode.className = el.parentNode.className.replace('missing', '');
			
			/* remove word 
			var els = el.parentNode.getElementsByTagName('strong');
			for (j=0; j<els.length; j++)
			{
				el.parentNode.removeChild(els[j]);
			}
			
			var errTag = document.createElement('strong');
			var errTxt = document.createTextNode(' !');
			/* end: remove word */
			
			if(el.tagName == 'SELECT'){
				val = el.options[el.options.selectedIndex].value;
			}else {
				val = el.value;
			}
			if (val == '' || val == '-1') {
				el.parentNode.className = el.parentNode.className + ' missing';
				
				/* add word */
				//el.parentNode.appendChild(errTag);
				//errTag.appendChild(errTxt);
				pass = false;
			}
	
			// Safety
			if (i>50) { break; }
		}
	}
	return pass;
}
//--><!]]>
	
	
function emailCheck (obj) { 
emailObj=obj;
emailStr = emailObj.value; 
if(emailStr == "") 
{ 
    alert ( missings['geen_emailadres'] ); 
    return false; 
} 
var checkTLD=0; 
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; 
var emailPat=/^(.+)@(.+)$/; 
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; 
var validChars="\[^\\s" + specialChars + "\]"; 
var quotedUser="(\"[^\"]*\")"; 
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; 
var atom=validChars + '+'; 
var word="(" + atom + "|" + quotedUser + ")"; 
var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); 
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); 
var matchArray=emailStr.match(emailPat); 
if (matchArray==null) { 
alert(missings['geen_geldig_emailadres']); 
return false; 
} 
var user=matchArray[1]; 
var domain=matchArray[2]; 
for (i=0; i<user.length; i++) { 
if (user.charCodeAt(i)>127) { 
alert(missings['ongeldige_tekens_voor']); 
return false; 
} 
} 
for (i=0; i<domain.length; i++) { 
if (domain.charCodeAt(i)>127) { 
alert(missings['ongeldige_tekens_na']); 
return false; 
} 
} 
if (user.match(userPat)==null) { 
alert(missings['geen_geldig_emailadres']); 
return false; 
} 
/*
var IPArray=domain.match(ipDomainPat); 
if (IPArray!=null) { 
for (var i=1;i<=4;i++) { 
if (IPArray[i]>255) { 
alert("Het IP adres klopt niet."); 
return false; 
} 
} 
return true; 
} 
*/
var atomPat=new RegExp("^" + atom + "$"); 
var domArr=domain.split("."); 
var len=domArr.length; 
for (i=0;i<len;i++) { 
if (domArr[i].search(atomPat)==-1) { 
alert(missings['geen_geldig_emailadres']); 
return false; 
} 
} 
if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) { 
alert(missings['geen_geldig_emailadres']); 
return false; 
} 
if (len<2) { 
alert(missings['geen_geldig_emailadres']); 
return false; 
} 
return true
}



