$(document).ready(function() {
	var current_step = 1, old_step = 0, tab_code = 9, type = $("#lead_form_lightbox #step_container .form_container #loan_type").val();

	switch(type) {
		case 'P':
			$("#lead_form_lightbox #step_container .form_container .field.refi").hide();					
			$("#lead_form_lightbox #step_container .form_container .field.purchase").show();
			$("#lead_form_lightbox #step_container .form_container .field #home_value_label").text("Approx Loan Amount:");
			break;
		case 'R':
			$("#lead_form_lightbox #step_container .form_container .field.purchase").hide();					
			$("#lead_form_lightbox #step_container .form_container .field.refi").show();
			$("#lead_form_lightbox #step_container .form_container .field #home_value_label").text("Your Home's Current Value:");
			break;
		default:
			break;
	}
	$("#lead_form_lightbox #step_nav_container .step_nav, #lead_form_lightbox #step_container .step .button").click(function(e) {
		e.preventDefault();
		if(current_step > $(this).attr("step") && $(this).attr("id") != "finish") {
			move_step(this);
		}					
		else if($(this).attr("id") != "finish" && validate("#step" + current_step + "_container") && current_step < $(this).attr("step")) {
			move_step(this);
		}
		else if($(this).attr("id") == "finish" && validate("#step" + current_step + "_container")) {
			if(validate("#step1_container")) {
				if(validate("#step2_container")) {
					$("#lead_form_lightbox form").fadeOut(function() {
						$("#lead_form_lightbox #waiting").fadeIn(function() {
							$("#lead_form_lightbox #success #lead_name").html($("#lead_form_lightbox form #fname").val());
							$("#lead_form_lightbox #success #lead_phone").html($("#lead_form_lightbox form #pNum1a").val() + "-" + $("#lead_form_lightbox form #pNum1b").val() + "-" + $("#lead_form_lightbox form #pNum1c").val());
							$.ajax({
								type: "POST",
								url: "http://www.vamortgagecenter.com/backend.php",
								data: $("#lead_form_lightbox form").serialize(),
								success: function(msg){
									$("#lead_form_lightbox #waiting").fadeOut(function() {
										success_action();
										$("#lead_form_lightbox #success").fadeIn();
									});
								}
							});

						});
					
						
					});
				}
				else {
					move_step($("#step2"));
				}
			}
			else {
				move_step($("#step1"));
			}
		}
	});
	$("#loan_type").bind("change", function() {
		type = $("#lead_form_lightbox #step_container .form_container .field #loan_type").val();
		if(type == 'P') {
			$("#lead_form_lightbox #step_container .form_container .field.refi").hide();					
			$("#lead_form_lightbox #step_container .form_container .field.purchase").show();
			$("#lead_form_lightbox #step_container .form_container .field #home_value_label").text("Approx Loan Amount:");
		}
		else if(type == 'R') {
			$("#lead_form_lightbox #step_container .form_container .field.purchase").hide();					
			$("#lead_form_lightbox #step_container .form_container .field.refi").show();
			$("#lead_form_lightbox #step_container .form_container .field #home_value_label").text("Your Home's Current Value:");
		};
	});
	$(".button").bind("keydown", function(e) { 
		return e.keyCode != tab_code; 
	});
	$(".phone").bind("keyup", function() {
		if(($(this).val()).length == $(this).attr("maxlength") && !($(this).val()).match(/[^\d]/g)) {
			$("#lead_form_lightbox #" + $(this).attr("next")).focus().select();
		}
	});
	function move_step(div) {
		$("#lead_form_lightbox #step_nav_container .step_nav").removeClass("selected");
		$("#lead_form_lightbox #step_container h4.error_msg").hide();
		old_step = current_step;
		current_step = $(div).attr("step");
		$("#lead_form_lightbox #step_nav_container #step" + current_step).addClass("selected");
		if(old_step < current_step) { // move forward
			$("#lead_form_lightbox #step_container").animate({marginLeft: ((current_step-1)*-440) +'px'},'slow');
		}
		else { // move backwards
			$("#lead_form_lightbox #step_container").animate({marginLeft: ((current_step-1)*-440) +'px'},'slow');
		}
	}
	function validate(id) {
		var submitable = true;
		clean_step(id);

		$("#lead_form_lightbox " + id + " input, #lead_form_lightbox " + id + " select").each(function() {
			submitable &= sValidate($(this));
		});
		if(!submitable) {
			$(id + " h4.default_msg").fadeOut(function() {
				$("#step" + current_step + "_container h4.error_msg").fadeIn();
			});
		}
		else {
			$(id + " h4.error_msg").fadeOut(function() {
				$("#step" + current_step + "_container h4.default").fadeIn();							
			});
		}

		return submitable;
	}
	function clean_step(id) {
		$(id).find('.error').removeClass('error');				
	}

	function sValidate(field) {
		valid = true;

		if((type == 'R' && !field.parent().hasClass("purchase")) || (type == 'P' && !field.parent().hasClass("refi"))) {
			if(field.hasClass('required')) {
			  if(jQuery.trim(field.val()) == '' || jQuery.trim(field.val()) == '0') {
				valid = false;
			  }
			}

			if(field.hasClass('check')) {
			  if(!field.is(':checked')) {
				valid = false;
				field.parent("label").addClass('error');
			  }
			}

			if(field.hasClass('numeric')) {
			  if(field.val().match(/[^\d]/g)) {
				valid = false;
			  }
			}

			if(field.hasClass('email')) {
			  if(!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')) {
			  if(jQuery.trim(field.val()).length != field.attr("maxlength")) {
				valid = false;
			  }
			}

			var field_id = field.attr("id");
			if(!valid) {
				field.addClass('error');
				$("#" + field_id + "_label").addClass("error");
				if(field.hasClass("phone")) {
					$("#pN_label").addClass("error");

				}
				field.closest(".field").find(".c").hide();
			}
			else {
				field.removeClass("error");
				$("#" + field_id + "_label").removeClass("error");
				if(field.hasClass("phone")) {
					$("#pN_label").removeClass("error");
				}
				field.closest(".field").find(".c").show();
			}
		}

		return valid;
	}
	
	
	function twiddleTicks(field) {
		_this = field.closest(".field");
		var isFilled = true;

		_this.find('input, select').each(function() {
			isFilled = (isFilled && ($(this).val() != '' && (!$(this).hasClass('length') || $(this).attr('maxlength') === undefined || $(this).val().length == $(this).attr('maxlength'))));
			if(!isFilled) return false;
			if($(this).hasClass('numeric') && !isNumeric($(this))) isFilled = false;
			if($(this).hasClass('email') && !isEmail($(this))) isFilled = false;
			if($(this).hasClass('check') && !isCheck($(this))) isFilled = false;
		});

		if(isFilled) {
			_this.find(".c").show();
			_this.find(".error").removeClass('error');
			_this.find(".hiddenError").hide();
		} else {
			_this.find(".c").hide();
		}
		
		var parent_div = field.parent().parent().parent().children('div');
		if(parent_div.find(".error").size() == 0) {
			parent_div.find("h4.error_msg").fadeOut(function() {
				parent_div.find("h4.default_msg").fadeIn();							
			});					
		}
	}
	
	$("#lead_form_lightbox input, #lead_form_lightbox select").bind('change blur', function() {
		twiddleTicks($(this));
	});
	function isNumeric(n) {
		return !n.val().match(/[^\d]/g);
	}
	function isEmail(n) {
		return n.val().match(/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i);
	}
	function isCheck(n) {
		return n.is(':checked');
	}
	
	$("a.lightbox_form_trigger[rel]").each(function(i){
		$(this).overlay({
			oneInstance: false,  
			closeOnClick: false,
			effect: 'apple',
			onBeforeLoad: function(){
				var wrap=this.getContent().find(".contentWrap");
				wrap.load(this.getTrigger().attr("href"));
			}
		});
	});
	
	// City, State from zipcode
	$("#city_state_ajax").html('<input type="hidden" id="city" name="city" /><input type="hidden" id="address_state" name="address_state" /><span id="city_state_container"></span>');
	$("#zip").bind("keyup", function() {
		if(($(this).val()).length == $(this).attr("maxlength") && !($(this).val()).match(/[^\d]/g)) {
			$("#city_state_container").html("validating...");
			var zip = $(this).val();
			var send_url = 'http://www.vamortgagecenter.com/includes/vamclo_get_single_city_state.php?zip='+zip;
			$.ajax({
				type: "GET",
				url: send_url,
				success: function(data) {
					if(data == "|" || data == "no city name|ns") {
						$("#city_state_container").html("Invalid Zipcode");
					}
					else {
						var result = data.toUpperCase().replace("|", ", ") + " " + zip;
						var result_a = data.split("|");
						$("#city").val(result_a[0]);
						$("#address_state").val(result_a[1]);
						$("#city_state_container").html(result);
					}
				}
			});
		}
	});
	
	/* IN VA MORTGAGE QUESTION */
	$("#lead_form_lightbox #loan_type, #lead_form_lightbox #home_value, #lead_form_lightbox #mortgage_balance").bind("change", function() {
		var l_t = $("#lead_form_lightbox #loan_type").val(); // lead type
		var h_v = parseFloat($("#lead_form_lightbox #home_value").val()); // home value
		var m_b = parseFloat($("#lead_form_lightbox #mortgage_balance").val()); // mortgage balance
		
		if(l_t == "R" && h_v != 0 && m_b != 0 && m_b > h_v) {
			$("#lead_form_lightbox #in_va_mortgage_field select#in_va_mortgage").addClass("required");
			$("#lead_form_lightbox #in_va_mortgage_field").slideDown();
		}
		else {
			$("#lead_form_lightbox #in_va_mortgage_field select#in_va_mortgage").removeClass("required");
			$("#lead_form_lightbox #in_va_mortgage_field").slideUp();		
		}
	});
	
	/* PREVENTING LOAN QUESTION */
	$("#lead_form_lightbox #loan_type, #lead_form_lightbox #when_loan").bind("change", function() {
		var l_t = $("#lead_form_lightbox #loan_type").val(); // lead type
		var w_l = $("#lead_form_lightbox #when_loan").val() // when loan
		
		if(l_t == "P" && w_l == "over 6 months") {
			$("#lead_form_lightbox #preventing_loan_field select").addClass("required");
			$("#lead_form_lightbox #preventing_loan_field").show();
		}
		else {
			$("#lead_form_lightbox #preventing_loan_field select").removeClass("required");
			$("#lead_form_lightbox #preventing_loan_field").hide();		
		}
	});
	
	/* PROPERTY TYPE QUESTION  */
	$("#loan_type, #home_value").bind("change", function() {
		var l_t = $("#loan_type").val(); // lead type
		var h_v = $("#home_value").val(); // home_value
		h_v = h_v.replace("<","");
		h_v = parseFloat(h_v);

		if((l_t == "R") && ((h_v < 100000 && h_v != 0) || h_v == "< 60000")) {
			$("select#property_type, #property_type_field").addClass("required");
			$("select#property_type").attr("name", "property_type");
			$("#property_type_field").show();
		}
		else {
			$("select#property_type, #property_type_field").removeClass("required");
			$("select#property_type").attr("name", "");
			$("#property_type_field").hide();
		}
	});
});
