// SocioDemographic validation

var page = "https://qualityoflifesurvey.net/Controller.aspx?"

function changePassword(){
	regWindow = window.open("changePassword.aspx",'myPasswordWin','toolbar=no,menubar=no,resizable=no,directories=no,location=no,scrollbars=no,width=500,height=250'); 
}

function validateRegistration(link){

	var msg ="";
	
	// ********** Study **********
	if(document.getElementById("_ctl5_lstStudy").selectedIndex < 1){
		msg += "Study";
	};
	
	// ********** Date Approached **********
	if(document.getElementById("_ctl5_txtDateApproached").value == ""){
		if(msg.length > 0){
			msg += ", ";
		}
		msg += "Date Approached";
	};
	
	// ********** Site **********
	if(document.getElementById("_ctl5_lstSite").selectedIndex < 1){
		if(msg.length > 0){
			msg += ", ";
		}
		msg += "Site";
	};
	
	// ********** Gender **********
	if(document.getElementById("_ctl5_txtGender1").checked == false && document.getElementById("_ctl5_txtGender2").checked == false){
		if(msg.length > 0){
			msg += ", ";
		}
		msg += "Gender";
	};
	
	// ********** Consent **********
	var objRequired  = document.getElementById("_ctl5_optConsent1");
	var objRequired1  = document.getElementById("_ctl5_optConsent2");
	var objRequired2  = document.getElementById("_ctl5_optConsent3");
	if(objRequired.checked == false && objRequired1.checked == false && objRequired2.checked == false){
		if(msg.length > 0){
			msg += ", ";
		}
		msg += "Consent Obtained";
	};
	
	// *********** Only required if consented to participate ***********
	if(objRequired.checked == true){
	
		// ********** Date Birth **********
		if(document.getElementById("_ctl5_txtDateOfBirth").value == ""){
			if(msg.length > 0){
				msg += ", ";
			}
			msg += "Date of Birth";
		};
	
	
		// ********** Password **********
		//if(document.getElementById("_ctl5_txtPassword").value == ""){
		//	if(msg.length > 0){
		//		msg += ", ";
		//	}
		//	msg += "Password";
		//};
	
	
		// ********** Ethnicity **********
		if(document.getElementById("_ctl5_lstEthnicity").selectedIndex == -1){
			if(msg.length > 0){
				msg += ", ";
			}
			msg += "Ethnicity";
		};
		
		// ********** Race **********
		if(document.getElementById("_ctl5_lstRace").selectedIndex == -1){
			if(msg.length > 0){
				msg += ", ";
			}
			msg += "Race";
		};
			
	}
	// *********** Only required if consented to participate ***********
	
	if(msg.length == 0){
		gotoModule(link);
	}else{
		 var spanMsg = document.getElementById("Message");
		spanMsg.innerText = "Required Field(s): " + msg;
	}

}
function clearControl(ctlName){

	
	var els = document.forms[0].elements;
	var pos;
    var ctlCheck;
    
		for(i = 0;i< els.length; i++){
		
			pos =els[i].name.indexOf(ctlName);
			ctlCheck = (ctlName == els[i].name.substr(pos, els[i].name.length - pos));	
		
			//Clear radio button
			if(els[i].checked && ctlCheck){
				//alert(els[i].name)
				els[i].checked = false;
			}	
			
			//Clear textbox
			if(ctlCheck && els[i].type == "text"){
				//alert(els[i].name)
				els[i].value="";
			}	
			
			//Clear list
			if(ctlCheck && els[i].type == "select-one"){
				//alert(els[i].name)
				els[i].selectedIndex=-1;
			}				
		}
	

}
function gotoModule(link){
	
	// Enable Study listbox in case moving from registration page
	objNext =  getmyObject("lstStudy");
	if (objNext !=null){
		objNext.disabled = false;
	}

	
	document.forms[0].action = page + link;
	document.forms[0].submit();
}

function gotoModule2(link, prefix){
	

	// Enable Study listbox in case moving from registration page
	objNext =  getmyObject("lstStudy");
	if (objNext !=null){
		objNext.disabled = false;
	}


	var rtn = true;

	var els = document.forms[0].elements;
		

	var displayMSG = false;
	
	
	

		for(i = 0;i< els.length; i++){


			// *********  ONLY VALIDATE FIELDS WITH PREFIXES *********** // 



			if(els[i].name.indexOf(prefix) > 0 ){


				if(els[i].className == "OptionalChoices"){
					continue; 
				}


				// *************** TEXT BOX *********************** //
				if(els[i].type == "text"){


				if(els[i].value == ""){
					formatValidation(els[i].name);
					displayMSG = true;
				}else{
					unformatValidation(els[i].name);
				}
				}
				// **************** TEXT BOX *********************** //
				
	
				// **************** DROP-DOWN LIST **************** //
				if(els[i].type == "select-one"){
				if(els[i].selectedIndex < 1){
					formatValidation(els[i].name);
					displayMSG = true;
				}else{
					unformatValidation(els[i].name);
				}
				}			
				// ************** DROP-DOWN LIST ***************** //

				// ***************** RADIO *********************** //
				if(els[i].type == "radio"){
					

					var myRadio = document.forms[0][els[i].name];

					formatValidation(els[i].name);
					var displayMSG2 = true;

					for(j=0;j< myRadio.length; j++){

						if (myRadio[j].checked){
							displayMSG2 = false;
							unformatValidation(els[i].name);

						}

					}

					if(displayMSG2 == true){
						displayMSG = true;
					}
					

				}
				// ***************** RADIO *********************** //
			}

		}



		if(displayMSG){
			
			input_box = confirm("You didn't answer this question.\r\r Click 'OK' if you want to go back and answer this question.\rClick 'Cancel' if you want to skip this question.");
	
			//input_box = confirm("The denoted field(s) have not been answered.\r\r Do you want to skip the field(s)?");

			if (input_box == true){
				rtn = false;
			}else{
				rtn = true;
			}

		}



	if(rtn == true){


		objSave =  getmyObject("Save");
		if (objSave !=null){
			objSave.disabled = true;
		
		}

		document.forms[0].action = page + link;
		document.forms[0].submit();
	}


}


function unformatValidation(fldName){

	var mySpan;


	mySpan = document.getElementById(fldName.replace(":","_") + "span");
				
	//if(mySpan.innerHTML.indexOf("*") > 0){
	//	mySpan.innerHTML = mySpan.innerHTML.substring(0, mySpan.innerHTML.length -1);  

		mySpan.style.color="black";
					
	//}

}

function formatValidation(fldName){

	var mySpan;


	mySpan = document.getElementById(fldName.replace(":","_") + "span");
				
	//if(mySpan.innerHTML.indexOf("*") == -1){
	//	mySpan.innerHTML += "*";
		mySpan.style.color="red";
					
	//}


}

function validate(Section){

		var rtn =true;

		var els = document.forms[0].elements;
		

		var msg = ""
		var checked = 0
		var controls = 0
		var ctlName = ""

		for(i = 0;i< els.length; i++){
			if (els[i].checked){
				checked += 1;
			}
			if(els[i].name.indexOf(ctlName) ==0){	
				controls += 1;
				ctlName = els[i].name;
			}
		}

	/*
		if(controls != checked){		
			input_box=confirm("You have not answered all the questions.\r Are you sure you want to continue? \r\r  Click OK to Continue");
			if (input_box==true)
			rtn = true;			
		}else{
			rtn = true;
		}
	*/		

		if(rtn){
		
			
			document.forms[0].action = page + "Module=2&Section=" + Section;
			document.forms[0].submit();
		}


	};


	// Self Reported Response validation
	function currentselection(obj, value){

		var els = document.forms[0].elements;
		for(i = 0;i< els.length; i++){
			if (els[i].style.color == "darkred"){
				els[i].style.color= "black";
			}	
		}

		obj.style.color="darkred";

		objNext =  getmyObject("Next");
		objNext.style.color = "darkred";	
		
		objResponse=  getmyObject("txtResponse");
		objResponse.value =  value;
		
	}
	
	function go(NavIndex){

		objResponse = getmyObject("txtResponse")
		//objResponse = document.getElementById(prefix + "txtResponse");
		
		if (objResponse.value ==""){
			alert("Please select a choice first.")
			return;
		}
	
		document.forms[0].action = page + "Module=3&NavIndex=" + NavIndex;
		document.forms[0].submit();
	};

	function go2(NavIndex){

		objResponse = getmyObject("txtResponse")
		//objResponse = document.getElementById(prefix + "txtResponse");
		


		if (objResponse.value ==""){



			objText = document.getElementById("_ctl2__ctl0_Question");
				
			if(objText != null){
			
				objText.style.color="red";
					
			
			}

			input_box = confirm("You didn't answer this question.\r\rClick 'OK' if you want to go back and answer this question.\r Click 'Cancel' if you want to skip this question.");
			if (input_box == false){
				objResponse.value ="-2";
			}else{
				return;
			}

		}

		objSave =  getmyObject("Next");
		if (objSave !=null){
			objSave.disabled = true;
		
		}
		
		document.forms[0].action = page + "Module=3&NavIndex=" + NavIndex;
		document.forms[0].submit();
	};
	
	function goNoValidate(NavIndex){

		objResponse = getmyObject("txtResponse");
		objResponse.value ="-2";

		objSave =  getmyObject("Next");
		if (objSave !=null){
			objSave.disabled = true;
		
		}
			
		document.forms[0].action = page + "Module=3&NavIndex=" + NavIndex;
		document.forms[0].submit();
	};

	function getmyObject(name){
			
		var els = document.forms[0].elements;

		for(i = 0;i< els.length; i++){
			if (els[i].id.indexOf(name)> 0){
				return els[i];
			}				
		}
		return null;	
	}
	
	
	
	function submitenter(myfield, e, location){
	
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;

		if (keycode == 13){
			gotoModule(location);
			myfield.form.submit();
		return false;
		}else
		return true;
	}

	
