/* function to create modal popup windows and appropriate triggers */

jQuery.createPopup = function(triggerID, contentID) {
	$(triggerID).click(function (e) {
		e.preventDefault();
		if($(contentID).is(':hidden')) {
			$(".condition_info_content:visible").hide();
			$(".condition_info_content a.close_popup").remove();
			$(contentID).prepend("<a href='#' class='close_popup'><strong>close</strong></a>").show();
			$(".condition_info_content a.close_popup").ifixpng();
			/* make popups draggable 
			$(contentID).Draggable({zIndex: 1000,ghosting: false,opacity: 1})
			*/
			$(contentID+" a.close_popup").click(function(e) {
				e.preventDefault();
				$(".condition_info_content:visible").hide();
				$(contentID+" a.close_popup").remove();
			});
			$(contentID).click(function(e) {
				e.preventDefault();
				$(".condition_info_content:visible").hide();
				$(contentID+" a.close_popup").remove();
			});
		} else {
			$(".condition_info_content:visible").hide();
			$(contentID+" a.close_popup").remove();
		}
	});
};

jQuery.checkZipCode = function() {
	$("#find_dealer").trigger('click');
}

function onDealerSessionSet(e, obj){
	if(obj.isDealerSession){
		$('body').css("display", "none");
		window.location = "http://"+obj.dealerDomain+"/QuickQuoteForm";
	}else{
		
	}
	
}

/************************* DOCUMENT ACTIONS ******************************/

$(document).ready (function() {
	$(document).bind("session:dealer", onDealerSessionSet);
	try{
		if(dealersession){
			if(dealersession.isDealerSession == true){
				$('body').css("display", "none");
				window.location = "http://"+dealersession.dealerDomain+"/QuickQuoteForm";
			}else if(dealersession.isDealerSession == false){
			
			}   
		}
	}catch(e){
	}
	
	$.preloadImages("assets/images/popup_bg.png", "assets/images/popup_close.png", "assets/images/quote_legend_tell_us_about_your_tradein.png", "/global/images/forms/loading_bg.png");
	
	$('.condition_info_content, .condition_info_content h4').ifixpng(); 
	
	$("#comments").keypress(function(e) {
  		if(e.charCode >= 48 )
    		if($("#comments").val().length > 500) 
     			return false;
	});
	
	/* bind find dealer event */
	$("#find_dealer").click(function (e) {	
		e.preventDefault();
		$.findDealer($("#zipCode").val(), "#dealer_list");
		//check for find dealer spotlight action
		if(typeof spotlightFindDealer == 'function') {
			spotlightFindDealer();
		}
	});
	
	/* prevent "return" keypress in zipCode field from submitting the form */
	$("#zipCode").keypress(function(e){
    	if(e.keyCode == 13) {
			if($("#zipCode").val().length < 5){
				//quick fix for autocomplete
				setTimeout('$.checkZipCode()', 10);
				e.preventDefault();
			}else {
				$("#find_dealer").trigger('click');
			}
    		return false;
    	}
	});
	
	/* get VW model and trim info */
	$("#trim").attr("disabled","disabled");
	
	$.attachVWModels("#modelName", "#trim");
	initCookie();
	
	/* tradein info div defaults to closed, set form requirements accordingly */
	$("#tradeIn .required").addClass('not-required').removeClass('required');
	
	$.populateForm();
	
	$("#modelName").change(function () {
		$.attachVWTrims($("#modelName").val(), "#trim");
	});

	/* set modelCode, transmission, msrpTotal based on trim value */
	
	$("#trim").change(function () {
		$.setModelDetails("#modelName", "#trim", "#transmission", "#modelCode", "#msrpTotal");
	});
	
	/* set contact info requirements for phone and email based on response */
	
	$("[name=preferredContactMethod]").click(function () {
		$.setContactRequirements($("[name=preferredContactMethod]:checked").val(), "#phone", "#email1", "#email2");
	});
	
	/* open and close tradein info div */
	$("#trade_in_yes").click(function(e) {
		$("#tradeIn .not-required").addClass('required').removeClass('not-required');
		$("#still_owe_no").trigger("click");
		$("#tradeIn").show();
		
		$.ajax({
			url: "/global/js/omniture/s_code.js",
			dataType: "script",
			async: false,
			success: function(js){
			
				var location = window.location.href.split("/");
			
				clearOmnitureVars();

				s.pageName="gaq:trade_in";				
				s.channel="gaq";
				s.prop6=getModelShortName($("#modelName").val());
				s.eVar6=getModelShortName($("#modelName").val());
				s.server=vwServerName;
				s.domain=vwDomain;
				s.nameplate="" ;
				s.modelyear=vwModelYear;
				s.microsite="www.vw.com"
				s.events="";
				void(s.t());
				
			}
		});
	});
	
	$("#trade_in_no").click(function() {
		$("#tradeIn .required").parent().addClass('not-required').removeClass('required');
		$("#tradeIn").hide();
	});
	
	var stillOwe = false;
	
	/* set remainingBalance requirement according to still owe question */
	$('[name="still_owe"]').click(function() {
		if($('[name="still_owe"]:checked').val() == "no") {
			stillOwe = false;
			$("#remainingBalance").parent().addClass('not-required').removeClass('required');
		} else {
			stillOwe = true;
			$("#remainingBalance").parent().addClass('required').removeClass('not-required');
		}
	});
	
	/* set popup triggers for modal windows */
	$.createPopup("#condition_excellent_info", "#condition_excellent_info_content");
	$.createPopup("#condition_good_info", "#condition_good_info_content");
	$.createPopup("#condition_fair_info", "#condition_fair_info_content");
	$.createPopup("#condition_poor_info", "#condition_poor_info_content");
		
	/* restrict input to certain form fields */
	$("#comments").alphanumeric({allow:"?.@-_`!#$%&*+-~ "});
	$("#firstName").alpha({allow:"' -"});
	$("#lastName").alpha({allow:"' -"});
	$("#phone").numeric({allow:".()- "});
	$("#email1").alphanumeric({allow:".@-_`!#$%*+-~"});
	$("#email2").alphanumeric({allow:".@-_`!#$%*+-~"});
	$("#zipCode").numeric();
	$("#tradeIn_year").numeric();
	$("#tradeIn_mileage").numeric();
	$("#remainingBalance").numeric();
	$("#tradeIn_make").alphanumeric({allow:".@-_`!#$%*+-~ "});
	$("#tradeIn_model").alphanumeric({allow:".@-_`!#$%*+-~ "});
	
	/* validate and submit data */
	$("#get_a_quote").submit(function(e) {
		e.preventDefault();
		
		/* set tradein info requirement to not required if no tradein selected */
		var tradeIn = true;
		if($('[name="trade_in"]:checked').val() == "no") {
			$("#tradeIn .required").addClass('not-required').removeClass('required');
			$("#tradeIn .not-required select, #tradeIn .not-required input").val("");
			tradeIn = false;
		} 
		
		/* validate form, submit if passed */
    	if($("#get_a_quote").validate({verify:"#email1, #email2"}, getFailureColor())) {
    		
    		/* trigger find a dealer action if no dealer selected */
    		if(!$('[name="dealerId"]:checked').val()) {
    			$("#find_dealer").trigger("click");
    			return false;
			}
			//populateCookie user info cookie
			var userDataObj = $("#firstName").val()+"~"+$("#lastName").val()+"~"+$("#preferredContactMethod").val()+"~"+$("#phone").val()+"~"+$("#email1").val()+"~"+$("#email2").val()+"~"+$("#zipCode").val()+"~"+tradeIn+"~"+$("#tradeIn_year").val()+"~"+$("#tradeIn_mileage").val()+"~"+$("#tradeIn_make").val()+"~"+$("#tradeIn_model").val()+"~"+stillOwe+"~"+$("#remainingBalance").val();
			buildVwFormsUserInfoCookie(userDataObj);

      		$("#get_a_quote").quote_assembleXML("#form_wrapper");

			//check for submit spotlight action
			if(typeof spotlightSubmit == 'function') {
				spotlightSubmit();
			}
			
      		return true;
      	}
      	return false;
    });

});