$(document).ready(function() {
	var lead_form = "#lead_form_container #lead_form ", current_step = 0, max_step = 2, step_width = 525, loan_type = $(lead_form + "#loan_type").val(), tab_code = 9;
	change_step_action(current_step); //Make sure to start on the first step
	loan_type_label(); //Set correct label for loan type depending on loan type's current value
	$(lead_form + " #step_nav .step_nav_button").eq(current_step).addClass("current_button"); //Add current step to Step 1
	$(lead_form).css("display","block"); //Fade in the lead form (display: none; originally in case JS is disabled)
	
	/* STEP NAV CLICKED */
	$(lead_form + " #step_nav .step_nav_button").bind("mousedown", function(index) {
		if(current_step != $(this).attr("step_num")) {
			change_step_decide($(this).attr("step_num"));
		}
	});
	
	/* DECIDE TO CHANGE STEP OR NOT */
	function change_step_decide(new_step) {
		if(validate(lead_form + "#step" + (current_step+1))) {
			$(lead_form + "#step" + (current_step+1) + " .alert_container .step_error").fadeOut(function() {
				$(lead_form + "#step" + (current_step+1) + " .alert_container .step_intro2").fadeIn();
			});
			if(current_step < max_step || current_step > new_step) {
				change_step_action(new_step);
			}
			else if(current_step == max_step) {
				if(validate(lead_form + "#step2")) {
					//$(lead_form + "form").submit();	
					$("#lead_form_container").fadeOut("slow", function() {
						$.ajax({
							type: "POST",
							url: "http://www.valoancertificateofeligibility.com/backend.php",
							data: $("form#steps_container").serialize(),
							success: function(msg){
								window.location.hash += msg;
							}
						});
						$("#form_success #lead_name").text($("#LeadFName").val());
						$("#form_success #lead_phone").text($("#pnum1a").val() + '-' + $("#pnum1b").val() + '-' + $("#pnum1c").val());
						$("#form_success").fadeIn("slow");
					});				
				}
				else {
					change_step_action(1);
				}
			}
		}
		else {
			$(lead_form + "#step" + (current_step+1) + " .alert_container .step_intro2").fadeOut(function() {
				$(lead_form + "#step" + (current_step+1) + " .alert_container .step_error").fadeIn();
			});
		}
	}
	/* ACTUALLY CHANGE STEP */
	function change_step_action(new_step) {
		$(lead_form + "#step_nav .step_nav_button").eq(current_step).removeClass("current_button");
		current_step = new_step;
		$(lead_form + "#step_nav .step_nav_button").eq(current_step).addClass("current_button");
		$(lead_form + "#steps_container").animate({marginLeft: ((current_step)*-step_width) +'px'},'slow');
		
		if(current_step == 2) {
			/*for(divID in hideOn3) {
				$(hideOn3[divID]).hide();
			}
			for(divID in showOn3) {
				$(showOn3[divID]).show();
			}*/
			$(lead_form + "#green_box h3").text("Last Step. You're Almost There!");
		}
		else {
			$(lead_form + "#green_box h3").text("Get Started Here, See if You Qualify");
		}					
	}
	
	$(lead_form + ".back_button").bind("mousedown", function() {
		if(current_step > 0) {
			change_step_action(current_step-1);
		}
	});
	
	/* LOAN TYPE CHANGE */
	$(lead_form + "#loan_type").bind("change", function() {
		loan_type = $(this).val();
		loan_type_label();
	});

	/* CHANGE LOAN TYPE LABEL TO CORRECT WORDING */
	function loan_type_label() {
		switch(loan_type) {
			case "P":
				$(lead_form + "label[for=home_value]").text("Approximate Loan Amount:");
				$(lead_form + ".field.refi input, " + lead_form + ".field.refi select").removeClass("required");
				$(lead_form + ".field.refi").hide();
				$(lead_form + ".field.purchase input, " + lead_form + ".field.purchase select").addClass("required");
				$(lead_form + ".field.purchase").show();
				break;
			case "R":
				$(lead_form + "label[for=home_value]").text("Your Home's Current Value:");
				$(lead_form + ".field.purchase input, " + lead_form + ".field.purchase select").removeClass("required");
				$(lead_form + ".field.purchase").hide();
				$(lead_form + ".field.refi input, " + lead_form + ".field.refi select").addClass("required");
				$(lead_form + ".field.refi").show();
				break;
		}				
	}
	
	/* LIVE VALIDATION */
	$(lead_form + " .field input, " + lead_form + " .field select").bind("change", function() {
		var submitable = true;
		var field = $(this);
		var parent = $(this).closest(".field");
		parent.find("input").each(function() {
			submitable &= sValidate($(this));
		});
		parent.find("select").each(function() {
			submitable &= sValidate($(this));
		});
		if(!submitable) {
			parent.removeClass("field_pass");
			field.addClass("input_fail");
			parent.addClass("field_fail");
			if($(lead_form + "#step" + (current_step+1)).find(".field_fail").size() > 0) {
				$(lead_form + "#step" + (current_step+1) + " .alert_container .step_intro2").fadeOut(function() {
					$(lead_form + "#step" + (current_step+1) + " .alert_container .step_error").fadeIn();
				});
			}
		} else {
			parent.removeClass("field_fail");
			field.removeClass("input_fail");
			parent.addClass("field_pass");
			if($(lead_form + "#step" + (current_step+1)).find(".field_fail").size() == 0) {
				$(lead_form + "#step" + (current_step+1) + " .alert_container .step_error").fadeOut(function() {
					$(lead_form + "#step" + (current_step+1) + " .alert_container .step_intro2").fadeIn();
				});
			}
		}
	});
	
	/* AUTO TAB ON PHONE INPUTS */
	$(lead_form + " input.phone").bind("keyup", function() {
		if(($(this).val()).length == $(this).attr("maxlength") && !($(this).val()).match(/[^\d]/g)) {
			$(lead_form + " #" + $(this).attr("next")).focus().select();
		}
	});
	
	/* ACTION BUTTON CLICKED */
	$(lead_form + " .action_button").bind("click", function(e) {
		e.preventDefault();
		change_step_decide(current_step+1);
	});
	
	/* FIX TO PREVENT TABBING ON ACTION BUTTON AND MESSING THE SLIDE ACTION UP */
	$(lead_form + " .action_button").bind("keydown", function(e) { 
		return e.keyCode != tab_code; 
	});
	
	/* VALIDATION FUNCTIONS */
	function clean_form(id) {
		$(id + " .field").removeClass("field_fail field_pass");
		$(id + " .field input, " + id + " .field select").removeClass("input_fail")
	}

	function validate(id) {
		var submitable = true;
		clean_form(id);

		$(id + " input, " + id + " select, " + id + " textarea").each(function() {
			submitable &= sValidate($(this));
		});

		return submitable;
	}
	
	function sValidate(field) {
		var valid = true;
		if(!field.hasClass("action_button")) {
			var parent = field.closest(".field");
			
			field.removeClass("input_fail");

			if(field.hasClass('required') && ((jQuery.trim(field.val()) == "") || (jQuery.trim(field.val()) == "0"))) {
				valid = false;
			}
			if(field.hasClass('numeric') && (field.val().match(/[^\d]/g))) {
				valid = false;
			}
			if(field.hasClass('email') && (!field.val().match(/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i))) {
				valid = false;
			}
			if(field.hasClass('length') && (jQuery.trim(field.val()).length != field.attr("maxlength"))) {
				valid = false;
			}					
			if(field.attr('mask') && (field.val() == field.attr('mask'))) {
				valid = false;
			}
			if(field.hasClass('check') && !field.is(':checked')) {
				valid = false;
			}

			if(!valid) {
				field.addClass("input_fail");
				parent.removeClass('field_pass');
				parent.addClass('field_fail');
			} else {
				field.removeClass("input_fail");
				if(parent.find(".input_fail").size() == 0) {
					parent.removeClass("field_fail");
					parent.addClass("field_pass");	
				}
			}
		}
		return valid;
	}
	
	/* IN VA MORTGAGE QUESTION */
	$(lead_form + "#loan_type, " + lead_form + "#home_value, " + lead_form + "#mortgage_balance").bind("change", function() {
		var l_t = $(lead_form + "#loan_type").val(); // lead type
		var h_v = parseFloat($(lead_form + "#home_value").val()); // home value
		var m_b = parseFloat($(lead_form + "#mortgage_balance").val()); // mortgage balance
		
		if(l_t == "R" && h_v != 0 && m_b != 0 && m_b > h_v) {
			$(lead_form + "#in_va_mortgage_field select#in_va_mortgage").addClass("required");
			$(lead_form + "#in_va_mortgage_field").slideDown();
		}
		else {
			$(lead_form + "#in_va_mortgage_field select#in_va_mortgage").removeClass("required");
			$(lead_form + "#in_va_mortgage_field").slideUp();		
		}
	});
	
	
	//OVERLAYS FOR TERMS AND PRIVACY POLICY
	/*var positions=[
			[0, 750],
			[375, 750]
		];
	$("a.overlay_form_trigger[rel]").each(function(i){
		$(this).overlay({
			oneInstance: false,
			closeOnClick: false,
			top: positions[i][0],
			left: positions[i][1],
			effect: 'apple',
			onBeforeLoad: function(){
				var wrap=this.getContent().find(".contentWrap");
				wrap.load(this.getTrigger().attr("href"));
			}
		});
	});*/
});
