if (!(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 6)) {
  Event.observe(window, 'load', function() {
    showChildren($("number_of_children"));
    showSpouse();

    //Carrier
    if($('has_existing_carrier_1').checked){
      $('existing_carrier_row').show();
      $('existing_carrier').addClassName('validate-selection');
    }else{
      $('existing_carrier_row').hide();
      $('existing_carrier').removeClassName('validate-selection');
    }
    
    Event.observe('has_existing_carrier_0', 'click', function() {
      $('existing_carrier_row').hide();
      Validation.reset('existing_carrier');
      $('existing_carrier').removeClassName('validate-selection');
    });
    
    Event.observe('has_existing_carrier_1', 'click', function() {
      $('existing_carrier_row').show();
      $('existing_carrier').addClassName('validate-selection');
    });
    
    
    // Medication
    $F('takes_medications_1') ? $('insured1_current_medications_detail_row').show() : $('insured1_current_medications_detail_row').hide();

    Event.observe('takes_medications_0', 'click', function() {
      $('insured1_current_medications_detail_row').hide();
      $('insured1_current_medications_detail').removeClassName('required');
    });
    
    Event.observe('takes_medications_1', 'click', function() {
      $('insured1_current_medications_detail_row').show();
      $('insured1_current_medications_detail').addClassName('required');
    });
    
    // Pre Existing Conditions
    $F('pre_existing_1') ? $('pre_existing_conditions_row').show() : $('pre_existing_conditions_row').hide();

    Event.observe('pre_existing_0', 'click', function() {
      $('pre_existing_conditions_row').hide();
    });
    
    Event.observe('pre_existing_1', 'click', function() {
      $('pre_existing_conditions_row').show();
    });
	Event.observe("add-spouse", "click", function(e){
		$("has_spouse").value	=	1;
		showSpouse();
		spouseValidation(true);
		Event.stop(e);
	});
	
	Event.observe("add-child", "click", function(e){
		var children	=	$F("number_of_children");
		if(children < 5){
			$("number_of_children").value =	parseInt($F("number_of_children")) + 1;
			showChildren($("number_of_children"));
		}
		Event.stop(e);
	});
	
	Event.observe("remove-spouse", "click", function(e){
		$("has_spouse").value	=	0;
		showSpouse();
		spouseValidation(false);
		Event.stop(e);
	});
	
	Event.observe("remove-child1", "click", function(e){
		$("child_option1").hide();
		toggleAddChild();
		changeValidationForInsured(3, false);
		shiftChildren(3);
		Event.stop(e);
	});
	
	Event.observe("remove-child2", "click", function(e){
		$("child_option2").hide();
		toggleAddChild();
		changeValidationForInsured(4, false);
		shiftChildren(4);
		Event.stop(e);
	});
	
	Event.observe("remove-child3", "click", function(e){
		$("child_option3").hide();
		toggleAddChild();
		changeValidationForInsured(5, false);
		shiftChildren(5);
		Event.stop(e);
	});
	
	Event.observe("remove-child4", "click", function(e){
		$("child_option4").hide();
		toggleAddChild();
		changeValidationForInsured(6, false);
		shiftChildren(6);
		Event.stop(e);
	});
	
	Event.observe("remove-child5", "click", function(e){
		$("child_option5").hide();
		toggleAddChild();
		changeValidationForInsured(7, false);
		shiftChildren(7);
		Event.stop(e);
	});
 
    //Bundle
    /*
    $F('agreed_to_bundle') ? $('life_policy_amount_row').show() : $('life_policy_amount_row').hide();
    Event.observe('agreed_to_bundle', 'click', function() {
      $F('agreed_to_bundle') ? $('life_policy_amount_row').show() : $('life_policy_amount_row').hide();
    });
    */

    // Validations
  	new Validation('health-form',{ immediate: false });
  });
}

function changeValidationForInsured(insured, validate) {
  var id      = 'gender' + insured;
  var gender  = $F(id);
  
  if ( validate ) {
    $('gender' + insured).addClassName('validate-selection');
    $('insured' + insured + '_height').addClassName('required');
    $('insured' + insured + '_weight').addClassName('required');
    $('insured' + insured + '_weight').addClassName('validate-number');
    $('dob' + insured + '_yyyy_on').addClassName('validate-three-part-dob');
  } else {
    Validation.reset('gender' + insured);
    Validation.reset('insured' + insured + '_height');
    Validation.reset('insured' + insured + '_weight');
    Validation.reset('dob' + insured + '_yyyy_on');

    $('gender' + insured).removeClassName('validate-selection');
    $('insured' + insured + '_height').removeClassName('required');
    $('insured' + insured + '_weight').removeClassName('required');
    $('insured' + insured + '_weight').removeClassName('validate-number');
    $('dob' + insured + '_yyyy_on').removeClassName('validate-three-part-dob');
	$('gender' + insured).clear();
	$("insured" + insured + "_height").clear();
	$("insured" + insured + "_weight").value	=	"";
	$("dob" + insured + "_mm_on").clear();
	$("dob" + insured + "_dd_on").clear();
	$("dob" + insured + "_yyyy_on").clear();
  }
}

function spouseValidation(validate){
  if ( validate ) {
    $('gender2').addClassName('validate-selection');
    $('insured2_height').addClassName('required');
    $('insured2_weight').addClassName('required');
    $('insured2_weight').addClassName('validate-number');
    $('dob2_yyyy_on').addClassName('validate-three-part-dob');
  } else {
    Validation.reset('gender2');
    Validation.reset('insured2_height');
    Validation.reset('insured2_weight');
    Validation.reset('dob2_yyyy_on');

    $('gender2').removeClassName('validate-selection');
    $('insured2_height').removeClassName('required');
    $('insured2_weight').removeClassName('required');
    $('insured2_weight').removeClassName('validate-number');
    $('dob2_yyyy_on').removeClassName('validate-three-part-dob');
	$('gender2').clear();
	$("insured2_height").clear();
	$("insured2_weight").value	=	"";
	$("dob2_mm_on").clear();
	$("dob2_dd_on").clear();
	$("dob2_yyyy_on").clear();
  }
}

function showSpouse(){
   if($F("has_spouse") == 1){
      $("add-spouse").hide();
      $("disabled-spouse").show();
      $("spouse-row").show();
      spouseValidation(true);
   }else{
      $("add-spouse").show();
      $("disabled-spouse").hide();
      $("spouse-row").hide();
      spouseValidation();
   }
}

function showChildren(el) {
	var num_children = $F(el);
	for (var i = 1;i <= 5; i++) {
		var id			= "child_option" + i;
		var insured = i + 2;
		if ( i <= num_children ) {
			$(id).show();
			changeValidationForInsured(insured, true);
		} else {
			$(id).hide();
			$("gender" + insured).value = "";
			changeValidationForInsured(insured, false);
		}
	}
	toggleAddChild();
}

function toggleAddChild(){
   var num_children  =  $F("number_of_children");
   if(num_children == 5){
      $("disabled-child").show();
      $("add-child").hide();
   }else{
      $("disabled-child").hide();
      $("add-child").show();
   }
}

function shiftChildren(child_removed){
	var packed_children	=	new Array();
	var insured_kid			=	3;
	var total_children	=	0;
	var start_total			=	$F("number_of_children");

	//Shift children down
	for (i=3; i<=7; i++) {
			if(
					$F("gender" +1) != "" && $F("insured" +  i + "_height") != "" &&
					$F("dob" +  i + "_yyyy_on") != "" && $F("dob" +  i + "_mm_on") != "" && $F("dob" +  i + "_dd_on") != ""
				){						
				if(i < child_removed){
					packed_children["gender" + insured_kid]											=	$F("gender" + i);
					packed_children["insured" + insured_kid + "_height"]		=	$F("insured" +  i + "_height");
					packed_children["insured" + insured_kid + "_weight"]				=	$F("insured" +  i + "_weight");
					packed_children["is_smoker" + insured_kid]						=	$("is_smoker" +  i).checked;
					packed_children["is_student" + insured_kid]					=	$("is_student" +  i).checked;
					packed_children["dob" + insured_kid + "_yyyy_on"]						=	$F("dob" +  i + "_yyyy_on");
					packed_children["dob" + insured_kid + "_mm_on"]							=	$F("dob" +  i + "_mm_on");
					packed_children["dob" + insured_kid + "_dd_on"]							=	$F("dob" +  i + "_dd_on");
					insured_kid++;
				}else if (i > child_removed){
					if($F("gender" + i) != ""){
						packed_children["gender" + insured_kid]											=	$F("gender" + i);
						packed_children["insured" + insured_kid + "_height"]		=	$F("insured" +  i + "_height");
						packed_children["insured" + insured_kid + "_weight"]				=	$F("insured" +  i + "_weight");
						packed_children["is_smoker" + insured_kid]						=	$("is_smoker" +  i).checked;
						packed_children["is_student" + insured_kid]					=	$("is_student" +  i).checked;
						packed_children["dob" + insured_kid + "_yyyy_on"]						=	$F("dob" +  i + "_yyyy_on");
						packed_children["dob" + insured_kid + "_mm_on"]							=	$F("dob" +  i + "_mm_on");
						packed_children["dob" + insured_kid + "_dd_on"]							=	$F("dob" +  i + "_dd_on");
						insured_kid++;
					}
				}
			}
		}

		for (i=3; i<=7; i++) {
			if(i < insured_kid){
				$("insured" +  i + "_height").value	 									= packed_children["insured" +  i + "_height"];
				$("insured" +  i + "_weight").value													= packed_children["insured" +  i + "_weight"];
				$("gender" +  i + "").value																	= packed_children["gender" +  i + ""];
				$("is_smoker" +  i).checked						 							= packed_children["is_smoker" +  i];
				$("is_student" +  i).checked													= packed_children["is_student" +  i];
				$("dob" +  i + "_yyyy_on").value														= packed_children["dob" +  i + "_yyyy_on"];
				$("dob" +  i + "_mm_on").value															= packed_children["dob" +  i + "_mm_on"];
				$("dob" +  i + "_dd_on").value															= packed_children["dob" +  i + "_dd_on"];
			}else{
				if(packed_children["gender" + i] != undefined){
					changeValidationForInsured(i, false);
				}
			}
		}

		$("number_of_children").value	=	start_total - 1;
		showChildren($("number_of_children"))
}
/*
function changeValidationForInsured(insured, add_validations) {
	var id			= "gender" + insured;
	var gender	= $F(id);

	if ( add_validations ) {
		$(id + "_error").addClassName("required");
		$("insured" + insured + "_height_error").addClassName("validate-number");
		$("insured" + insured + "_weight_error").addClassName("validate-weight");
		$("dob" + insured + "_on_error").addClassName("validate-child-dob");
	} else {
		$(id).clear();
		$("insured" + insured + "_height").clear();
		$("insured" + insured + "_weight").value	=	"";
		$("dob" + insured + "_mm_on").clear();
		$("dob" + insured + "_dd_on").clear();
		$("dob" + insured + "_yyyy_on").clear();
		$(id + "_error").removeClassName("required");
		$("insured" + insured + "_height_error").removeClassName("validate-number");
		$("insured" + insured + "_weight_error").removeClassName("validate-weight");
		$("dob" + insured + "_on_error").removeClassName("validate-child-dob");
		$(id + "_error").hide();
		$("insured" + insured + "_height_error").hide();
		$("insured" + insured + "_weight_error").hide();
		$("dob" + insured + "_on_error").hide();
	}
}
*/
