/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}
*/

/**
 *  Check Survey
 *  
 *  
 */
function checkSurvey(form) {
	var hasNoErrors = true;
	var currentformstep = document.getElementById(form.id+'_formstep').value;
	var collection = 0;
	var collectionchecked = 0;
	// check the form.
	var formsteps = getElementsByClassName(form, "DIV", "surveysection");
	
	for (i=0; i<formsteps[currentformstep-1].childNodes.length; i++) {
		nodeRef = formsteps[currentformstep-1].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='';} catch(e){}
										}
									} else {
										if (!eval(inputRef.value.length > 1)) {
											try{inputRef.parentNode.className='formerror';} catch(e){}
											hasNoErrors = false;
										} else {
											try{inputRef.parentNode.className='';} 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){}
				} else {
					if (nodeRef.className.substring(0,9)=='formerror') {
						try{nodeRef.className=nodeRef.className.substring(9,nodeRef.className.length);} 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;
								} else {
									try{inputRef.parentNode.className='';} catch(e){}
								}
							} else {
								if (!eval(inputRef.value.length > 1)) {
									try{inputRef.parentNode.className='formerror';} catch(e){}
									hasNoErrors = false;
								} else {
									try{inputRef.parentNode.className='';} catch(e){}
								}
							}
						}
					} else if (inputRef.nodeName=='TEXTAREA') {
						if (!eval(inputRef.value.length > 13)) {
							try{inputRef.parentNode.className='formerror';} catch(e){}
							hasNoErrors = false;
						} else {
							try{inputRef.parentNode.className='';} catch(e){}
						}
					}
				}
			}
		}
	}
	if ((hasNoErrors) && (currentformstep>=(formsteps.length)-1)) { // show the right formstep div.
		document.getElementById(form.id+'_formstep').value='final';
		return true;
	} else {
		if (hasNoErrors) {
			currentformstep++;
			initSurveySections(form, currentformstep);
			document.getElementById(form.id+'_formstep').value=currentformstep;
			if (currentformstep==(formsteps.length-1)) {
				document.getElementById('submiter').value='Verzenden';
			}
		}
		return false;
	}
}


function initSurveySections(form, section) {
	var i;
	var sections = getElementsByClassName(form, "DIV", "surveysection");
	for (i=0; i<sections.length; i++) {
		sections[i].style.display='none';
	}
	
	if (section=='final') {
		sections[sections.length-1].style.display='block';
		document.getElementById('labelsubmiter').style.display='none';
		location.hash = 'thankyou';
	} else if (section!=0) {
		sections[section-1].style.display='block';
		location.hash = 'formstep-'+section;
	}
	
}

