// JavaScript Document
// amateurmuziek.nl
//



/* ********************************* */
/*  CHECK FORMS
/* ********************************* */
function checkForm(form) {
	var hasNoErrors = true;
	var msg = "Het formulier dat u probeert te versturen is nog niet compleet. Nog niet alle velden zijn goed ingevuld.\n\nControleer de velden met een (*) gemarkeerd.";
	var firstFieldRef = null;
	var collection = 0;
	var collectionchecked = 0;
	// check the form.
	for (i=0; i<form.childNodes.length;i++) {
		var nodeRef = form.childNodes[i];
		if (nodeRef.nodeType==1) {
			if (nodeRef.attributes.getNamedItem("required") && nodeRef.nodeName=='FIELDSET') {
				collection = 0;
				collectionchecked = 0;
				for (j=0; j<nodeRef.childNodes.length; j++) {
					if (nodeRef.childNodes[j].nodeName=='LABEL') {
						for (k=0; k<nodeRef.childNodes[j].childNodes.length; k++) {
							var inputRef = nodeRef.childNodes[j].childNodes[k];
							if (inputRef.nodeName=='INPUT') {
								if (inputRef.attributes.getNamedItem("type").value=='text') {
									if (inputRef.parentNode.attributes.getNamedItem("required").value=='email') {
										if (!eval(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(inputRef.value))) {
											try{inputRef.parentNode.className='formerror';} catch(e){}
											hasNoErrors = false;
										} else {
											try{inputRef.parentNode.className='formvalidated';} catch(e){}
											if (firstFieldRef==null) { firstFieldRef = inputRef; }
										}
									} else if (inputRef.parentNode.attributes.getNamedItem("required").value=='postalcode') {
										if (!eval(/^[0-9]{4}(\s)*[a-z]{2}$/i.test(inputRef.value))) {
											try{inputRef.parentNode.className='formerror';} catch(e){}
											hasNoErrors = false;
										} else {
											try{inputRef.parentNode.className='formvalidated';} catch(e){}
											if (firstFieldRef==null) { firstFieldRef = inputRef; }
										}
									} else {
										if (!eval(inputRef.value.length > 1)) {
											try{inputRef.parentNode.className='formerror';} catch(e){}
											hasNoErrors = false;
											if (firstFieldRef==null) { firstFieldRef = inputRef; }
										} else {
											try{inputRef.parentNode.className='formvalidated';} catch(e){}
										}
									}
								}
								if ((inputRef.attributes.getNamedItem("type").value=='checkbox') || 
								    (inputRef.attributes.getNamedItem("type").value=='radio'))
								{
									collection++;
									if (inputRef.checked==true) {
										collectionchecked++;
									}
								}
							}
						}
					}
				}
				if ((collection>0) && (collectionchecked<1)) {
					hasNoErrors = false;
					try{nodeRef.className='formerror '+nodeRef.className;} catch(e){}
					if (firstFieldRef==null) { firstFieldRef = inputRef; }
				} else {
					if (nodeRef.className.substring(0,9)=='formerror') {
						try{nodeRef.className=nodeRef.className.substring(9,nodeRef.className.length);} catch(e){}
						try{nodeRef.className='formvalidated '+nodeRef.className;} catch(e){}
					}
				}
			} else if (nodeRef.attributes.getNamedItem("required") && nodeRef.nodeName=='LABEL') {
				for (j=0; j<nodeRef.childNodes.length; j++) {
					var inputRef = nodeRef.childNodes[j];
					if (inputRef.nodeName=='INPUT') {
						if (inputRef.attributes.getNamedItem("type").value=='text') {
							if (inputRef.parentNode.attributes.getNamedItem("required").value=='email') {
								if (!eval(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(inputRef.value))) {
									try{inputRef.parentNode.className='formerror';} catch(e){}
									hasNoErrors = false;
									if (firstFieldRef==null) { firstFieldRef = inputRef; }
								} else {
									try{inputRef.parentNode.className='formvalidated';} catch(e){}
								}
							} else if (inputRef.parentNode.attributes.getNamedItem("required").value=='postalcode') {
										if (!eval(/^[0-9]{4}(\s)*[a-z]{2}$/i.test(inputRef.value))) {
											try{inputRef.parentNode.className='formerror';} catch(e){}
											hasNoErrors = false;
										} else {
											try{inputRef.parentNode.className='formvalidated';} catch(e){}
											if (firstFieldRef==null) { firstFieldRef = inputRef; }
										}
							} else{
								if (!eval(inputRef.value.length > 1)) {
									try{inputRef.parentNode.className='formerror';} catch(e){}
									hasNoErrors = false;
									if (firstFieldRef==null) { firstFieldRef = inputRef; }
								} else {
									try{inputRef.parentNode.className='formvalidated';} catch(e){}
								}
							}
						}
					} else if (inputRef.nodeName=='TEXTAREA') {
						if (!eval(inputRef.value.length > 13)) {
							try{inputRef.parentNode.className='formerror';} catch(e){}
							hasNoErrors = false;
							if (firstFieldRef==null) { firstFieldRef = inputRef; }
						} else {
							try{inputRef.parentNode.className='formvalidated';} catch(e){}
						}
					}
				}
			}
		}
	}
	if (hasNoErrors==true) { 
		return true;
	} else {
		try{firstFieldRef.focus();} catch(e){}
		alert(msg);
		return false;
	}
}

