﻿

function resetAllGroups() {
	//No need to toggle groups off here.

}

//Switches display to block or none.
function toggleItem(id, bShow) {
	if (bShow) {
		document.getElementById(id).style.display = 'block';
	}
	else {
		document.getElementById(id).style.display = 'none';
	}
}

//Show / hide first question (diagnosed with BPD)
function toggleDiagnosed(bShow) {
	if (bShow) {
		toggleItem('group3', true);
	}
	else {
		toggleItem('group3', false);
	}
}

//Show / hide the typing tool
function toggleCaregiver(bShow) {
	var bIsRetypePage = isOnPage(RETYPE_ABS_PATH);
	if (!bIsRetypePage) {
		if (bShow) {
			toggleItem('group4', true);
		}
		else {
			toggleItem('group4', false);
		}
	}
}

//Show / hide the typing tool
function toggleTypingTool(bShow) {
	if (bShow) {
		disableMedicationQuestions(true);
		toggleItem('group5', true);
	}
	else {
		toggleItem('group5', false);
	}
}

//Disable / enable medication questions
function disableMedicationQuestions(bDisable) {
	document.getElementById('reg_survey_7').disabled = bDisable;
	document.getElementById('reg_survey_8').disabled = bDisable;
	document.getElementById('reg_survey_9').disabled = bDisable;
	document.getElementById('reg_survey_10').disabled = bDisable;
	document.getElementById('reg_survey_11').disabled = bDisable;
	document.getElementById('reg_survey_12').disabled = bDisable;
	document.getElementById('reg_survey_13').disabled = bDisable;
	document.getElementById('reg_survey_14').disabled = bDisable;
	document.getElementById('reg_survey_15').disabled = bDisable;
	document.getElementById('reg_survey_NOTA').disabled = bDisable;
}

//Change the color on child form elements, given the parent, type and hex code.
//hexT = hex color of text; hexA = hex color of asterisk.
function swapTextColor(parentid, hexT, hexA) {
	var parent = document.getElementById(parentid);
	
	//Swap question text color
	var fieldset = parent.getElementsByTagName('fieldset')[0];
	var pQuestion = fieldset.getElementsByTagName('p')[0];
	pQuestion.style.color = hexT;
	
	//Swap question asterisk text color
	var spnAsterisk = pQuestion.getElementsByTagName('span')[0];
	spnAsterisk.style.color = hexA;

	//Swap answer text color
	var elems = parent.getElementsByTagName('label');
	for (var i = 0; i < elems.length; i++ ) {
		elems[i].style.color = hexT;
		//Swap answer text color for child span tags.
		if (elems[i].childNodes.length > 0) {
			for (var j = 0; j < elems[i].childNodes.length; j++) {
				if (elems[i].childNodes[j].style) {
					elems[i].childNodes[j].style.color = hexT;
				}
			}
		}
	}
}

//Disable / enable form items
function disableItem(id, bDisable) {
	if (bDisable) {
		document.getElementById(id).disabled = true;
	}
	else {
		document.getElementById(id).disabled = false;
	}
}

function clearField(id) {
	document.getElementById(id).value = '';
}

function toggleOption(id, bChecked) {
	if(document.getElementById(id) != null) document.getElementById(id).checked = bChecked;
}

function clearMed2_3() {
	//4
	toggleOption('reg_survey_7', false);
	toggleOption('reg_survey_8', false);
	toggleOption('reg_survey_9', false);
	toggleOption('reg_survey_10', false);
	toggleOption('reg_survey_11', false);
	toggleOption('reg_survey_12', false);
	toggleOption('reg_survey_13', false);
	toggleOption('reg_survey_14', false);
	toggleOption('reg_survey_15', false);
	toggleOption('reg_survey_NOTA', false);
}

/**
 * Ignore defines the reset functionality.
 * 1 = don't reset the first question
 * 2 = don't reset the first or second question
 */
function clearSurveyItems(ignore) {

    if(ignore == undefined || ignore == null)
        ignore = 0;

	var bIsRetypePage = isOnPage(RETYPE_ABS_PATH);
	
	//1
	if(ignore != 1 && ignore != 2){
	    toggleOption('reg_survey_1', false);
	    toggleOption('reg_survey_2', false);
	}
	//2
	if (!bIsRetypePage) {
		toggleOption('reg_survey_3', false);
		toggleOption('reg_survey_4', false);
	}
	//3
	if(ignore != 2){
	    toggleOption('reg_survey_5', false);
	    toggleOption('reg_survey_6', false);
	}
	//4, 5
	clearMed2_3();
}

function toggleChecks(id, excludeid, excludelabelid) {

	var strOffHex = '#dddddd';
	var strOnHex = '#666666';
	var bOn = document.getElementById(excludeid).checked;
	var div = document.getElementById(id);
	var checks = div.getElementsByTagName('input');
	var labels = div.getElementsByTagName('label');
	
	//Adjust checks
	for (var i = 0; i < checks.length; i++) {
		if (checks[i].type == 'checkbox' && checks[i].id != excludeid) {
			checks[i].checked = (bOn ? false : false);
			checks[i].disabled = (bOn ? true : false);
		}
	}
	//Adjust color of labels
	for (var i = 0; i < labels.length; i++) {
		if (labels[i].id != excludelabelid) {
			labels[i].style.color = (bOn ? strOffHex : strOnHex);
			//Apply change to childnodes as well (to affect spans).
			if (labels[i].childNodes.length > 0) {
				for (var j = 0; j < labels[i].childNodes.length; j++) {
					if (labels[i].childNodes[j].style) {
						labels[i].childNodes[j].style.color = (bOn ? strOffHex : strOnHex);
					}
				}
			}
		}
	}
}

function clearTakingMedsQuestion() {
	toggleOption('reg_survey_5', false);
	toggleOption('reg_survey_6', false);
}

//Hides/reveals registration control groups based on
//the origin group and selection.
function getRegGroup(intOriginGroup,        //The group from which the selection was made.
                     intOriginSelection) {  //The selection made.

	var arrShow = [];					//Array of groups to show based on criteria.
	
	if (Common.isNumeric(intOriginGroup) && Common.isNumeric(intOriginSelection)) {
		//Depending on what our origin group and selection are, 
		//we'll hide and/or reveal different information.
		switch(intOriginGroup) {
			case 1:
				clearAllErrors();
				switch(intOriginSelection) {
					case 1: //Diagnosed with MDD.
						clearSurveyItems(1);
						toggleCaregiver(false);
						toggleItem("group3b", true);
					    $('span#reg_survey_3_type').html("major depressive disorder");
					    break;
					    
					case 2://Diagnosed with BPD.
						clearSurveyItems(1);
						toggleCaregiver(false);
						toggleItem("group3b", true);
					    $('span#reg_survey_3_type').html("bipolar disorder");
						break;
						
					case 3: //Not diagnosed with BPD.
						clearSurveyItems(1);
						clearTakingMedsQuestion();
						toggleCaregiver(true);
						toggleItem("group3b", false);
						break;
				}
				break;
			case 2:
				clearAllErrors();
				break;
			case 3: 
				clearAllErrors();
				switch(intOriginSelection) {
					case 1: //Taking medication
					    //disableMedicationQuestions(false);
						toggleTypingTool(true);
						disableMedicationQuestions(false);
						break;
					case 2: //Not taking medication
					    clearSurveyItems(2);
						toggleTypingTool(false);
						//clearMed2_3();
						//disableMedicationQuestions(true);
						break;
				}
				break;
			case 4:
			case 8:
				clearAllErrors();
				switch(intOriginSelection) {
					case 8: //None of the above (prescription medications)
						toggleChecks('reg_survey_4_ctr', 'reg_survey_NOTA', 'lblNone');
						break;
				}
				break;
			case 5: //Note: This question was removed 2/9/09.
				clearAllErrors();
				break;
			case 6:
				clearAllErrors();
				break;
			case 7:
				clearAllErrors();
				break;
		}
	}
}

function enableSubmitButton() {
	document.getElementById('btnSubmitRegistration').style.display = 'block';
}

function disableSubmitButton() {
	document.getElementById('btnSubmitRegistration').style.display = 'none';
}

function getRandom() {
	var randomnumber = Math.floor(Math.random()*100001);
	return randomnumber;
}

//Prepopulate form values (for testing only).
function loadUserTestFormValues() {
	var r = getRandom();
	var eml = r + '@user.com';
	document.getElementById('reg_user_FirstName').value = 'John';
	document.getElementById('reg_user_LastName').value = 'Smith';
	document.getElementById('reg_user_Address1').value = '123 main st';
	document.getElementById('reg_user_Address2').value = '2nd floor';
	document.getElementById('reg_user_City').value = 'motown';
	document.getElementById('reg_user_State').selectedIndex = 2;
	document.getElementById('reg_user_Zip').value = '12345';
	document.getElementById('reg_user_EmailAddress').value = eml;
	document.getElementById('reg_user_ConfirmEmail').value = eml;
	document.getElementById('reg_user_DOB').value = '02/10/1991';
}
//For testing only.
function restartForm() {
	var strURL = window.location.href;
	window.location.href = strURL;
}
//For testing only.
function loadOptTestFormValues() {
	document.getElementById('reg_optin_1').checked = true;
	document.getElementById('reg_optin_3').checked = true;
}
//For testing only.
function loadSurveyTestFormValues() {

}

//Hide whatever groups we don't want shown.
function showRegGroups(arrGroupsToShow) {
	if (arrGroupsToShow.length > 0) {
		toggleAllGroups(false);
		for (var x = 0; x < arrGroupsToShow.length; x++) {
			var item = arrGroupsToShow[x];
			for (var y = 1; y <= intGroupCount; y++) {
				var bMatch = (item == y);
				if (bMatch) {
					toggleGroup(y,true);
				}
			}
		}
	}
}

function toggleAllGroups(bShowAll) {
	for (var g = 1; g < m_intGroupCount; g++) {
		var grp = 'group' + g;
		if (bShowAll) { document.getElementById(grp).style.display = 'block'; }
		else { document.getElementById(grp).style.display = 'none'; }
	}
}

function toggleGroup(id,bShow) {
	var grp = 'group' + id;
	if (bShow) { document.getElementById(grp).style.display = 'block'; }
	else { document.getElementById(grp).style.display = 'none'; }
}


//Clears form values so we don't have stale data on page refresh.
function resetRegisterForm() {
	
	var refreshflag = document.getElementById('hidResetOnRefresh');
	if (refreshflag.value == 'true') {

		var inputs = document.getElementsByTagName('input');
		var selects = document.getElementsByTagName('select');
		for (var i in inputs) {
			var typ = inputs[i].type;
			if (typ == 'checkbox' || typ == 'radio') { inputs[i].checked = false; }
			if (typ == 'text' || typ == 'password') { inputs[i].value = ''; }
		}
		for (var j in selects) {
			selects[j].selectedIndex = 0;
		}
	}
}


//Toggles the user validation flag ON.
function setHiddenAsValid() {
	var hValid = document.getElementById('hidValidUserData');
	hValid.value = '1';
}

//Toggles the user validation flag OFF.
function setHiddenAsInvalid() {
	var hValid = document.getElementById('hidValidUserData');
	hValid.value = '0';
}
