// JavaScript Document
function getElem(elemname){
	switch(elemname){
		case "q1":	return elem = document.surveyform.q1;
					break;
		case "q2":	return elem = document.surveyform.q2;
					break;
		case "q3":	return elem = document.surveyform.q3;
					break;
		case "q4":	return elem = document.surveyform.q4;
					break;
		case "q5":	return elem = document.surveyform.q5;
					break;
		case "q6":	return elem = document.surveyform.q6;
					break;
		case "q7":	return elem = document.surveyform.q7;
					break;
		case "q8":	return elem = document.surveyform.q8;
					break;
		case "q9":	return elem = document.surveyform.q9;
					break;
		case "q10":	return elem = document.surveyform.q10;
					break;
		case "q11":	return elem = document.surveyform.q11;
					break;
		case "q12":	return elem = document.surveyform.q12;
					break;
		case "q13":	return elem = document.surveyform.q13;
					break;
		default:	return false;
					break;
	}
}

function isRadioChecked(elemname){
	var checked = false;
	var elem = getElem(elemname);
	for(var i=0; i < elem.length; i++){
	   if(elem[i].checked){
		  checked = true;
	   }
	}
	return checked;
}

function getRadioCheckedValue(elemname){
	var elem = getElem(elemname);
	for(var i=0; i < elem.length; i++){
	   if(elem[i].checked){
			return elem[i].value;
	   }
	}
	return checked;	
}

function isOneOrMoreCheckboxChecked(elemname){
	var checked = false;
	var elem = getElem(elemname);
	var boxes = elem.length;
	for (i = 0; i < boxes; i++) {
		if (elem[i].checked) {
			checked = true;
		}
	}
	return checked;
}

function getCheckboxValues(elemname){
	var elem = getElem(elemname);
	var boxes = elem.length;
	var values = new Array();
	for (i = 0; i < boxes; i++){
		if(elem[i].checked) {
			values[values.length] = elem[i].value;
		}
	}
	
	return values;
}

function isTextBoxFilled(elemname){
	if(!document.getElementById(elemname)){
		alert('elemname: '+elemname);
	}
	return (document.getElementById(elemname).value == "" ? false : true);
}

function validateform(){
	if(lang && lang == "fr_fr"){
		for(var r=1;r<=13;r++){
			document.getElementById('question'+r).className="normal";	
		}
	}else{
		for(var r=1;r<=10;r++){
			document.getElementById('question'+r).className="normal";	
		}
	}
	
	var error = false;
	var fullnamefilled = isTextBoxFilled('fullname');
	if(!fullnamefilled){
		error = true;
		document.getElementById('fullnamearea').className="error";		
	}
	var emailfilled = isTextBoxFilled('email');
	if(!emailfilled){
		error = true;
		document.getElementById('emailarea').className="error";		
	}
	
	//Check text boxes questions 1 & 8
	var q1filled = isTextBoxFilled('q1');
	if(!q1filled){
		error = true;
		document.getElementById('question1').className="error";
	}
	var q8filled = (isTextBoxFilled('q8input1') || isTextBoxFilled('q8input2') || isTextBoxFilled('q8input3') ? true : false);
	if(!q8filled){
		error = true;
		document.getElementById('question8').className="error";
	}
	var q10filled = isTextBoxFilled('q10');
	if(!q10filled){
		error = true;
		document.getElementById('question10').className="error";
	}
	
	//Check radio checked questions 3/4/5/6/9/10
	var q3answered = isRadioChecked('q3');
	if(!q3answered){
		error = true;
		document.getElementById('question3').className="error";
	}
	
	var q4answered = isRadioChecked('q4');
	if(!q4answered){
		error = true;
		document.getElementById('question4').className="error";
	}
	
	if(q3answered && q4answered){
		//Get Values
		var q3value = getRadioCheckedValue('q3');
		var q4value = getRadioCheckedValue('q4');
		
		if(q3value == "Yes" && q4value == "Yes"){
			//Check q5
			var q5answered = isRadioChecked('q5');
			if(!q5answered){
				error = true;
				document.getElementById('question5').className="error";
			}else{
				var q5value = getRadioCheckedValue('q5');
				if(q5value == "Yes"){
					var q6answered = isRadioChecked('q6');
					if(!q6answered){
						error = true;
						document.getElementById('question6').className="error";
					}
					
					var q6value = getRadioCheckedValue('q6');
					if(q6value == '2'){
						//Check question 6 more value
						var q6morefilled = isTextBoxFilled('q6more');
						if(!q6morefilled){
							error = true;
							document.getElementById('question6').className="error";
						}
					}
				}
			}
		}
	}
	
	var q9answered = isRadioChecked('q9');
	if(!q9answered){
		error = true;
		document.getElementById('question9').className="error";
	}
	
	//Check checkbox questions 2 & 7
	var q2filled = isOneOrMoreCheckboxChecked('q2');
	if(!q2filled){
		document.getElementById('question2').className="error";
	}else{
		var q2values = getCheckboxValues('q2');
		var checkvalue = '22';
		var checkvaluechecked = false;
		for(var f=0;f<q2values.length;f++){
			if(q2values[f] == checkvalue){
				checkvaluechecked = true;
			}
		}
		
		if(checkvaluechecked){
			//Check that they have filled in the value 
			var q2morefilled = isTextBoxFilled('q2more');
			if(!q2morefilled){
				error = true;
				document.getElementById('question2').className="error";
			}
		}
		
		if(!error){
			var q2vc = "";
			for(var t=0;t<q2values.length;t++){
				q2vc += q2values[t]+", ";
			}
			document.getElementById('q2checkedboxes').value = q2vc;
		}
	}
		
	var q7filled = isOneOrMoreCheckboxChecked('q7');
	if(!q7filled){
		document.getElementById('question7').className="error";
	}else{
		var q7values = getCheckboxValues('q7');
		var checkvalue = '10';
		var checkvaluechecked = false;
		for(var f=0;f<q7values.length;f++){
			if(q7values[f] == checkvalue){
				checkvaluechecked = true;
			}
		}
		
		if(checkvaluechecked){
			//Check that they have filled in the value 
			var q7morefilled = isTextBoxFilled('q7more');
			if(!q7morefilled){
				error = true;
				document.getElementById('question7').className="error";
			}
		}
		
		if(!error){
			var q7vc = "";
			for(var t=0;t<q7values.length;t++){
				q7vc += q7values[t]+", ";
			}
			document.getElementById('q7checkedboxes').value = q7vc;
		}
	}
	
	if(lang && lang == "fr_fr"){
		/*
		 * If French, 3 more questions than others
		 */
		
		//Check question 11
		var q11filled = isOneOrMoreCheckboxChecked('q11');
		if(!q11filled){
			document.getElementById('question11').className="error";
		}else{
			var q11values = getCheckboxValues('q11');
			var checkvalue = '7';
			var checkvaluechecked = false;
			for(var f=0;f<q11values.length;f++){
				if(q11values[f] == checkvalue){
					checkvaluechecked = true;
				}
			}
			
			if(checkvaluechecked){
				//Check that they have filled in the value 
				var q11morefilled = isTextBoxFilled('q11more');
				if(!q11morefilled){
					error = true;
					document.getElementById('question11').className="error";
				}
			}
			
			if(!error){
				var q11vc = "";
				for(var t=0;t<q11values.length;t++){
					q11vc += q11values[t]+", ";
				}
				document.getElementById('q11checkedboxes').value = q11vc;
			}
		}
		
		//Check question 12
		var q12filled = isOneOrMoreCheckboxChecked('q12');
		if(!q12filled){
			document.getElementById('question12').className="error";
		}else{
			var q12values = getCheckboxValues('q12');
			var checkvalue = '6';
			var checkvaluechecked = false;
			for(var f=0;f<q12values.length;f++){
				if(q12values[f] == checkvalue){
					checkvaluechecked = true;
				}
			}
			
			if(checkvaluechecked){
				//Check that they have filled in the value 
				var q12morefilled = isTextBoxFilled('q12more');
				if(!q12morefilled){
					error = true;
					document.getElementById('question12').className="error";
				}
			}
			
			if(!error){
				var q12vc = "";
				for(var t=0;t<q12values.length;t++){
					q12vc += q12values[t]+", ";
				}
				document.getElementById('q12checkedboxes').value = q12vc;
			}
		}
		
		//Check question 13
		var q13filled = isOneOrMoreCheckboxChecked('q13');
		if(!q13filled){
			document.getElementById('question13').className="error";
		}else{
			var q13values = getCheckboxValues('q13');
			var checkvalue = '5';
			var checkvaluechecked = false;
			for(var f=0;f<q13values.length;f++){
				if(q13values[f] == checkvalue){
					checkvaluechecked = true;
				}
			}
			
			if(checkvaluechecked){
				//Check that they have filled in the value 
				var q13morefilled = isTextBoxFilled('q13more');
				if(!q13morefilled){
					error = true;
					document.getElementById('question13').className="error";
				}
			}
			
			if(!error){
				var q13vc = "";
				for(var t=0;t<q13values.length;t++){
					q13vc += q13values[t]+", ";
				}
				document.getElementById('q13checkedboxes').value = q13vc;
			}
		}
	}
	
	if(!error){
		document.surveyform.submit();	
	}else{
		alert(errormessagetext);	
	}
}
