/**
 * IHQ Contact Expando
 **/

var ttIHQContactExpando = {
	oldValidationCache : null,
	oldResetCache : null,
	btn : null,
	aboutYou : null,
	initFields : function () {
	ttIHQContactExpando.btn = jQuery("#button input:first");
		ttIHQContactExpando.aboutYou = jQuery("#about-you");
	},
	// Cache the old button image, use new button image //button-view-quotes
	replaceButton : function () {
		ttIHQContactExpando
			.btn
			.clone()
			.attr("src", "/images/continue-button.jpg")
			.insertAfter(ttIHQContactExpando.btn)
			.show();
		ttIHQContactExpando.btn.hide();
	},
	// Hide the "About You" section
	hideAboutYou : function () {
		ttIHQContactExpando.aboutYou.hide();
		
	},
	// Show the "About You" section, use old validation, and switch the button image
	showContactInfo : function () {
		ttIHQContactExpando.aboutYou.slideDown("slow", function() {
			jQuery("#button input:eq(1)").hide();
			ttIHQContactExpando.btn.show();
		});
		window.resetValidation = ttIHQContactExpando.oldResetCache;
		window.healthFormValidation = ttIHQContactExpando.oldValidationCache;
		frmvalidator.clearAllValidations();
		healthFormValidation(frmvalidator);
		return false; // Form must not submit just yet...
	},
	removeOldValidation : function () {
		frmvalidator.clearAllValidations();
		ttIHQContactExpando.oldValidationCache = healthFormValidation;
		ttIHQContactExpando.oldResetCache = resetValidation;
	},
	useShortValidation : function() {
		
		window.resetValidation = function(frmvalidator){
			frmvalidator.clearAllValidations();
			healthFormValidation(frmvalidator);
		};
		
		window.healthFormValidation = function(frmvalidator){
			// form name
			var form = document.forms[frmvalidator.formobj._sfm_form_name];

			// validate gender
			frmvalidator.addValidation("insured_1_gender","selone_radio",SEL_GENDER);

			//Validate DOB month
			frmvalidator.addValidation("insured_1_dobMM","req", DOB_MM_REQ);
			frmvalidator.addValidation("insured_1_dobMM","numeric", DOB_MM_NUMERIC);
			frmvalidator.addValidation("insured_1_dobMM","lt=13",DOB_MM_LESS_THAN);
			frmvalidator.addValidation("insured_1_dobMM","gt=0",DOB_MM_GREATER_THAN);	
						
			//Validate DOB day
			frmvalidator.addValidation("insured_1_dobDD","req",DOB_DD_REQ);
			frmvalidator.addValidation("insured_1_dobDD","numeric", DOB_DD_NUMERIC);
			frmvalidator.addValidation("insured_1_dobDD","lt=32",DOB_DD_LESS_THAN);
			frmvalidator.addValidation("insured_1_dobDD","gt=0",DOB_DD_GREATER_THAN);
				
			//Validate DOB year
			frmvalidator.addValidation("insured_1_dobYYYY","req",DOB_YYYY_REQ);
			frmvalidator.addValidation("insured_1_dobYYYY","num",DOB_YYYY_NUMERIC);
			frmvalidator.addValidation("insured_1_dobYYYY", "minlen=4", DOB_YYYY_MIN_LEN);
			frmvalidator.addValidation("insured_1_dobYYYY","gt="+(d.getFullYear()-101),DOB_YYYY_GREATER_THAN);	
			frmvalidator.addValidation("insured_1_dobYYYY","lt="+(d.getFullYear()+1),DOB_YYYY_LESS_THAN);	
				
			//Validate Height Feet
			frmvalidator.addValidation("insured_1_heightFT","req",HEIGHT_FT_REQ);
			frmvalidator.addValidation("insured_1_heightFT","num",HEIGHT_FT_NUMERIC);
			frmvalidator.addValidation("insured_1_heightFT","lt=8",HEIGHT_FT_LESS_THAN);
			frmvalidator.addValidation("insured_1_heightFT","gt=0",HEIGHT_FT_GREATER_THAN);
				
			//Validate Height inches
			frmvalidator.addValidation("insured_1_heightIN","req",HEIGHT_IN_REQ);
			frmvalidator.addValidation("insured_1_heightIN","num",HEIGHT_IN_NUMERIC);
			frmvalidator.addValidation("insured_1_heightIN","lt=12",HEIGHT_IN_LESS_THAN);
			frmvalidator.addValidation("insured_1_heightIN","gt=-1",HEIGHT_IN_GREATER_THAN);
				
			//Validate Weight
			frmvalidator.addValidation("insured_1_weight","req",WEIGHT_REQ);
			frmvalidator.addValidation("insured_1_weight","num",WEIGHT_NUMERIC);
			frmvalidator.addValidation("insured_1_weight","gt=0",WEIGHT_GREATER_THAN);
				
			//validate medical conditions
			frmvalidator.addValidation("insured_1_health_conditions","selone_radio",HEALTH_CONDITIONS_SEL);	
			if(form.insured_1_health_conditions[0].checked){ 			
				var conditionsDetail=form.insured_1_health_conditions_detail.value;
				//If have conditions was selected and no conditions were selected;
				if(trim(conditionsDetail).length<3 || conditionsDetail == "none selected") {
					frmvalidator.addValidation("insured_1_health_conditions_detail","req",HEALTH_CONDITIONS_REQ);			
				}
			}			
			// Validate Spouse
			if(spouse == 1) {
				// Spouse's gender
				frmvalidator.addValidation("insured_2_gender","selone_radio", SPOUSE_SEL_GENDER);
					
				// Spouse's birth month
				frmvalidator.addValidation("insured_2_dobMM", "req", SPOUSE_DOB_MM_REQ);
				frmvalidator.addValidation("insured_2_dobMM", "num", SPOUSE_DOB_MM_NUMERIC);
				frmvalidator.addValidation("insured_2_dobMM", "gt=0", SPOUSE_DOB_MM_GREATER_THAN);
				frmvalidator.addValidation("insured_2_dobMM", "lt=13", SPOUSE_DOB_MM_LESS_THAN);
				
				// Spouse's birth day
				frmvalidator.addValidation("insured_2_dobDD", "req", SPOUSE_DOB_DD_REQ);
				frmvalidator.addValidation("insured_2_dobDD", "num", SPOUSE_DOB_DD_NUMERIC);
				frmvalidator.addValidation("insured_2_dobDD", "gt=0", SPOUSE_DOB_DD_GREATER_THAN);
				frmvalidator.addValidation("insured_2_dobDD", "lt=32", SPOUSE_DOB_DD_LESS_THAN);
					
				// Spouse's birth year
				frmvalidator.addValidation("insured_2_dobYYYY", "req", SPOUSE_DOB_YYYY_REQ);
				frmvalidator.addValidation("insured_2_dobYYYY", "num", SPOUSE_DOB_YYYY_NUMERIC);
				frmvalidator.addValidation("insured_2_dobYYYY", "minlength=4", SPOUSE_DOB_YYYY_MIN_LEN);
				frmvalidator.addValidation("insured_2_dobYYYY", "gt=" + (d.getFullYear()-101), SPOUSE_DOB_YYYY_GREATER_THAN);
				frmvalidator.addValidation("insured_2_dobYYYY", "lt=" + (d.getFullYear()+1), SPOUSE_DOB_YYYY_LESS_THAN);
					
				// Spouse's Height (Feet)
				frmvalidator.addValidation("insured_2_heightFT", "req", SPOUSE_HEIGHT_FT_REQ);
				frmvalidator.addValidation("insured_2_heightFT", "num", SPOUSE_HEIGHT_FT_NUMERIC);
				frmvalidator.addValidation("insured_2_heightFT","lt=8", SPOUSE_HEIGHT_FT_LESS_THAN);
				frmvalidator.addValidation("insured_2_heightFT","gt=0", SPOUSE_HEIGHT_FT_GREATER_THAN);
					
				// Spouse's Height (Weight)
				frmvalidator.addValidation("insured_2_heightIN", "req", SPOUSE_HEIGHT_IN_REQ);
				frmvalidator.addValidation("insured_2_heightIN", "num", SPOUSE_HEIGHT_IN_NUMERIC);
				frmvalidator.addValidation("insured_2_heightIN", "lt=12", SPOUSE_HEIGHT_IN_LESS_THAN);
				frmvalidator.addValidation("insured_2_heightIN", "gt=-1", SPOUSE_HEIGHT_IN_GREATER_THAN);
				
				// Spouse's Weight (in lbs)
				frmvalidator.addValidation("insured_2_weight", "req", SPOUSE_WEIGHT_REQ);
				frmvalidator.addValidation("insured_2_weight", "num", SPOUSE_WEIGHT_NUMERIC);
				frmvalidator.addValidation("insured_2_weight", "gt=0", SPOUSE_WEIGHT_GREATER_THAN);

				// Spouse's Smoker Status
				frmvalidator.addValidation("insured_2_smoker","selone_radio",SPOUSE_SEL_SMOKING);	
			
					
			}
			// Validate Children
			for(var j=1; j<7; j++) {
				var childinst = document.getElementById("child" + j);
				if(childinst.style.display == "block") {
					i = j+2;
					// Child's gender
					frmvalidator.addValidation("insured_" + i + "_gender","selone_radio", CHILD_SEL_GENDER);
					
					// Child's birth month
					frmvalidator.addValidation("insured_" + i + "_dobMM", "req", CHILD_DOB_MM_REQ);
					frmvalidator.addValidation("insured_" + i + "_dobMM", "num", CHILD_DOB_MM_NUMERIC);
					frmvalidator.addValidation("insured_" + i + "_dobMM", "gt=0", CHILD_DOB_MM_GREATER_THAN);
					frmvalidator.addValidation("insured_" + i + "_dobMM", "lt=13", CHILD_DOB_MM_LESS_THAN);
			
					// Child's birth day
					frmvalidator.addValidation("insured_" + i + "_dobDD", "req", CHILD_DOB_DD_REQ);
					frmvalidator.addValidation("insured_" + i + "_dobDD", "num", CHILD_DOB_DD_NUMERIC);
					frmvalidator.addValidation("insured_" + i + "_dobDD", "gt=0", CHILD_DOB_DD_GREATER_THAN);
					frmvalidator.addValidation("insured_" + i + "_dobDD", "lt=32", CHILD_DOB_DD_LESS_THAN);
						
					// Child's birth year
					frmvalidator.addValidation("insured_" + i + "_dobYYYY", "req", CHILD_DOB_YYYY_REQ);
					frmvalidator.addValidation("insured_" + i + "_dobYYYY", "num", CHILD_DOB_YYYY_NUMERIC);
					frmvalidator.addValidation("insured_" + i + "_dobYYYY", "minlen=4", CHILD_DOB_YYYY_MIN_LEN);
					frmvalidator.addValidation("insured_" + i + "_dobYYYY", "gt="+(d.getFullYear()-101), CHILD_DOB_YYYY_GREATER_THAN);
					frmvalidator.addValidation("insured_" + i + "_dobYYYY", "lt="+(d.getFullYear()+1), CHILD_DOB_YYYY_LESS_THAN);				

					// Child's Height (Feet)
					frmvalidator.addValidation("insured_" + i + "_heightFT", "req", CHILD_HEIGHT_FT_REQ);
					frmvalidator.addValidation("insured_" + i + "_heightFT", "num", CHILD_HEIGHT_FT_NUMERIC);
					frmvalidator.addValidation("insured_" + i + "_heightFT","lt=8", CHILD_HEIGHT_FT_LESS_THAN);
					frmvalidator.addValidation("insured_" + i + "_heightFT","gt=0", CHILD_HEIGHT_FT_GREATER_THAN);
						
					//Child's Height (Weight)
					frmvalidator.addValidation("insured_" + i + "_heightIN", "req", CHILD_HEIGHT_IN_REQ);
					frmvalidator.addValidation("insured_" + i + "_heightIN", "num", CHILD_HEIGHT_IN_NUMERIC);
					frmvalidator.addValidation("insured_" + i + "_heightIN", "gt=-1", CHILD_HEIGHT_IN_GREATER_THAN);
					frmvalidator.addValidation("insured_" + i + "_heightIN", "lt=12", CHILD_HEIGHT_IN_LESS_THAN);
						
					// Child's Weight (in lbs)
					frmvalidator.addValidation("insured_" + i + "_weight", "req", CHILD_WEIGHT_REQ);
					frmvalidator.addValidation("insured_" + i + "_weight", "num", CHILD_WEIGHT_NUMERIC);
					frmvalidator.addValidation("insured_" + i + "_weight", "gt=0", CHILD_WEIGHT_GREATER_THAN);			
				}
			}
			frmvalidator.setAddnlValidationFunction(ttIHQContactExpando.showContactInfo);
		};
		healthFormValidation(frmvalidator);
	},
	onReady : function() {
		//Keep the following line
		ttIHQContactExpando.initFields();
		
		ttIHQContactExpando.replaceButton();
		ttIHQContactExpando.hideAboutYou();
		
		// Keep these!
		ttIHQContactExpando.removeOldValidation();
		ttIHQContactExpando.useShortValidation();
	}
};
jQuery(ttIHQContactExpando.onReady);
