/* Positief getest in:

   Windows:
   Netscape 7.02
   Internet Explorer 4.0 SP1
   Internet Explorer 5.0 SP3
   Internet Explorer 6.0 SP1
   Opera 7.11
   
   MacOS:
   Netscape 7.0
   Internet Explorer 5.2
*/

// Teksten
nvsf_text_validmail = "A valid e-mail address is required";
nvsf_text_onefield = "The following field is required:";
nvsf_text_multiplefields = "The following fields are required:";

// Controleert of de ingedrukte knop een nummer is, zo ja, mag het ingetypt worden, zo nee, pech
function nvsf_checknum(what) {
	var keyascii=event.keyCode;
	if((keyascii>47) && (keyascii<58))  { return true; }
	if(keyascii==13) { return true; }
	event.returnValue=false;
	return false;
}
// Controleert of een veld een emailadres bevat. Zo ja, reageer true, anders false met een alert
function nvsf_checkmail(what) {
	if(what.value=="") { return true; }
	var re_email = /.+\@.+\..+/;
	if(!re_email.test(what.value)) { alert(nvsf_text_validmail); what.focus(); what.select(); return false; }
	return true;
}
// Haalt alle formulieritems op van een bepaald formid en htmltag en bron-array
function nvsf_haalitems(formid,htmltag,itemlist) {
	var re_formid=new RegExp("^nvsf"+formid+"-");

	if ((document.all) && (document.getElementById)) {
		// IE 5+
		var inputs=document.body.parentElement.getElementsByTagName(htmltag);
	} else if (document.all) {
		// IE 4
		var inputs=document.body.all.tags(htmltag);
	} else {
		// Netscape 7 + other
		var inputs=document.getElementsByTagNameNS('*',htmltag);
	}

	var j=itemlist.length;
	for(i=0;i<inputs.length;i++) {
		if(re_formid.test(inputs[i].id)) {
			// in inputs[i] zit een object wat hoort bij formid
			itemlist[j]=inputs[i];
			j++;
		}
	}
	return itemlist;
}
// Functie wordt voor de submit getriggered. Kijkt of van een bepaald formid alles klopt en antwoord met true of false
function nvsf_voorsubmit(formid) {
	var items=new Array();
	var vermist=new Array();
	var j=0;
	items=nvsf_haalitems(formid,"INPUT",items);
	items=nvsf_haalitems(formid,"TEXTAREA",items);
	items=nvsf_haalitems(formid,"SELECT",items);
	for(i=0;i<items.length;i++) {
		if(typeof items[i].getAttribute != 'undefined') {
			if(items[i].getAttribute('nvsf_vereist')) { var vereist=true; } else { var vereist=false; }
			if(items[i].getAttribute('nvsf_type')) { var veldtype=items[i].getAttribute('nvsf_type'); } else { var veldtype=''; }
		}
		if((vereist) && (items[i].value=="")) { vermist[j]=items[i]; j++; }
		if((veldtype=="email") && (!nvsf_checkmail(items[i]))) { return false; }
	}
	if(vermist.length==1) {
		if(vermist[0].getAttribute('nvsf_omschrijving')) { var omschrijving=vermist[0].getAttribute('nvsf_omschrijving'); } else { var omschrijving=vermist[0].name.replace("_"," "); }
		var txt=nvsf_text_onefield+"\n"+omschrijving;
	}
	if(vermist.length>1) {
		var txt=nvsf_text_multiplefields+"\n";
		for(i=0;i<vermist.length;i++) {
			if(vermist[i].getAttribute('nvsf_omschrijving')) { var omschrijving=vermist[i].getAttribute('nvsf_omschrijving'); } else { var omschrijving=vermist[i].name.replace("_"," "); }
			txt+=omschrijving+"\n";
		}
	}
	if(vermist.length>0) {
		alert(txt);
		vermist[0].focus();
		vermist[0].select();
		return false;
	}
	return true;
}
// Functie die alleen een click triggered
function nvsf_click(id) {
	if(document.getElementById) {
		document.getElementById(id).click();
	} else {
		document.body.all.id.click();
	}	
}