var prevDealer = {};
var campaignType;
/* function to return failure color for validation based on location (model) */

function getFailureColor() {
	/* split href - 4th element is base directory (http://www.example.com/BASE/ */
	var location = window.location.href.split("/");
	
	/* return color based on location */
	switch(location[3].toLowerCase()) {
		case "cc":
			return "#004b83";
			break;
		case "eos":
			return "#004b83";
			break;
		case "gli":
			return "#004b83";
			break;
		case "gti":
			return "#004b83";
			break;
		case "jetta":
			return "#004b83";
			break;
		case "newbeetle":
			return "#004b83";
			break;
		case "newbeetlecon":
			return "#004b83";
			break;
		case "passat":
			return "#004b83";
			break;
		case "passatwagon":
			return "#004b83";
			break;
		case "r32":
			return "#004b83";
			break;
		case "golf":
			return "#004b83";
			break;
		case "routan":
			return "#004b83";
			break;
		case "touareg":
			return "#004b83";
			break;
		case "specialeditions":
			return "#004b83";
			break;
		case "tiguan":
			return "#004b83";
			break;
		case "jettasportwagen":
			return "#004b83";
			break;
		default:
			return "#004b83";
	}	
}

/* function to get model title by location */

function getLocationModelTitle() {
	/* split href - 4th element is base directory (http://www.example.com/BASE/ */
	var location = window.location.href.split("/");
	
	/* set model based on location */
	switch(location[3].toLowerCase()) {
		case "cc":
			return "CC";
			break;
		case "eos":
			return "Eos";
			break;
		case "gli":
			return "GLI";
			break;
		case "gti":
			return "GTI";
			break;
		case "jetta":
			return "Jetta";
			break;
		case "newbeetle":
			return "New Beetle";
			break;
		case "newbeetlecon":
			return "New Beetle Convertible";
			break;
		case "passat":
			return "Passat";
			break;
		case "passatwagon":
			return "Passat Wagon";
			break;
		case "r32":
			return "R32";
			break;
		case "golf":
			return "Golf";
			break;
		case "routan":
			return "Routan";
			break;
		case "touareg":
			return "Touareg";
			break;
		case "tiguan":
			return "Tiguan";
			break;
		case "jettasportwagen":
			return "Jetta SportWagen";
			break;
		case "specialeditions":
			switch(location[4].toLowerCase()){
				case "beetleblush":
					return "New Beetle Convertible Blush Edition";
					break;
			}
			break;
		default:
			return "";
	}	
};

/* function to get model's shortname */

function getModelShortName(modelName) {

	switch(modelName) {
		case "CC":
			return "cc";
			break;
		case "Eos":
			return "eos";
			break;
		case "GLI":
			return "gli";
			break;
		case "GTI":
			return "gti";
			break;
		case "Jetta":
			return "jetta";
			break;
		case "New Beetle":
			return "newbeetle";
			break;
		case "New Beetle Convertible":
			return "newbeetlecon";
			break;
		case "Passat":
			return "passat";
			break;
		case "Passat Wagon":
			return "passatwagon";
			break;
		case "R32":
			return "r32";
			break;
		case "Golf":
			return "golf";
			break;
		case "Routan":
			return "routan";
			break;
		case "Touareg":
			return "touareg";
			break;
		case "Fahrenheit GLI":
			return "fahrenheitgli";
			break;
		case "Tiguan":
			return "tiguan";
			break;
		case "Jetta SportWagen":
			return "jettasportwagen";
			break;
		case "New Beetle Convertible Blush Edition":
			return "beetleblush";
			break;
		default:
			return "";
	}	
};

//vars used for correctly passing form data in ie6
var preformData = [];
var formDataCreated = false;

/* function to read and split url data into name/value pairs, returns array Array["name"] = "value" */
function splitURLVars() {
	
	//MSIE6 check
	var isMsie6 = $.browser.msie && $.browser.version < 7.0;
	
	var getData = new Array();
	var vars = window.location.search;
	
	if (vars) 
	{
	
		vars = vars.replace(/%3Cbr%3E/g," ");
		vars = vars.replace(/<br>/g," ");
		vars = vars.substr(1);
		
		var pairs = vars.split("&");
		
		for (var i = 0; i < pairs.length; i++)
		{
			var formData = pairs[i].split("=");
			
			var name = formData[0];
			var value = formData[1];
			getData[name] = value;
			
			if(isMsie6 && i == pairs.length - 1){
				preformData = getData;
				formDataCreated = true;
				setTimeout('$.populateForm()',1000);
			}
		}
	}
	
	if(!isMsie6){
		return getData;
	}else{
		if(!vars){
			formDataCreated = true;
			$.populateForm();
		}
	}
	
};


/* modular dealer search */
var timesThroughInit = 0;
jQuery.dealerSearch = function(zipCode, markerNum, dealerID) {
	//$.setZipCookie(zipCode)
	currentzip = zipCode;
	if(!isNaN(parseInt(zipCode))){
		var searchData = "searchBy=zip&distance=100&zipCode="+zipCode;
	}else {
		var searchData = "searchBy=name&distance=100&name="+zipCode;
	}
	$.ajax({
		type:		"GET",
		url:		"/dealer/DealerSearch.do",
		//url:		"/quote/en/us/data/DealerSearch.xml",
		data: 		searchData,
		dataType:	"xml",
		success:	function(xml) {
			/* create init div tag for list */
			$('#dealer_list_init').remove();
			var $h3 = $("#dealer").find("h3");
			$h3.after("<div id='dealer_list_init'></div>");
			
			$('#dealer_list').html('');
			$('#dealer_list_init').html('');
			$('#dealer_list_init').hide();
			if(timesThroughInit < 1){
				$("#zipCode").width($("#zipCode").width() + 95);
				timesThroughInit++
			}
			
			$("#dealer_locator").find('label').html('Please enter your zip code');
			
			if(unescape(dealerID) !=""){
				$(xml).find('dealer').each(function() {
					if($(this).find('id').text() == unescape(dealerID)){
						phone = $(this).find('phone').text();
						phone = phone.substring(0,3) + '.' + phone.substring(3,6) + '.' + phone.substring(6,10);
						$('#dealer_list_init').append('<div class="dealer"><p class="dealer_selection"><input type="radio" name="dealerId" id="dealer_'+$(this).find('id').text()+'" value="'+$(this).find('id').text()+' "></input><input type="hidden" id="dealerName_'+$(this).find('id').text()+'" name="dealerName_'+$(this).find('id').text()+'" value="'+$(this).find('name').text()+'"></input></p><p class="dealer_info"><label for="dealer_'+$(this).find('id').text()+'">'+$(this).find('name').text()+'</label><br/>'+$(this).find('address1').text()+'<br/>'+$(this).find('city').text()+', '+$(this).find('state').text()+' '+$(this).find('zip').text()+'<br/>'+phone+'</p></div>');
						prevDealer.id = $(this).find('id').text();
						$('#dealer_list_init').show();
						$('#dealer_list_init').find('input[type="radio"]:first').attr('checked','checked');
						$("#find_dealer").css("background-position", "bottom");
						$('#dealer_locator').css("margin-top", "12px");
						$("#dealer_list_init").css('border-bottom', '1px solid #d4d4d4');
						$('#dealer_list_init').append("<a href='#' id='change_dealer'><strong>Change Dealer</strong></a><br/>").show();
						$('#dealer_list_init').find('input[type="radio"]').hide();
						return false;
					}
				});
			}else {
				
				if($(xml).find('dealer').filter(function(index) {
					if(dealerID != "") {
						return $(this).find('id').text() == unescape(dealerID);
					} else if (markerNum != "") {
						return index == markerNum;
					} else {
						return index == 1;
					}
				}).each(function() {
					phone = $(this).find('phone').text();
					phone = phone.substring(0,3) + '.' + phone.substring(3,6) + '.' + phone.substring(6,10);
					$('#dealer_list_init').append('<div class="dealer"><p class="dealer_selection"><input type="radio" name="dealerId" id="dealer_'+$(this).find('id').text()+'" value="'+$(this).find('id').text()+' "></input><input type="hidden" id="dealerName_'+$(this).find('id').text()+'" name="dealerName_'+$(this).find('id').text()+'" value="'+$(this).find('name').text()+'"></input></p><p class="dealer_info"><label for="dealer_'+$(this).find('id').text()+'">'+$(this).find('name').text()+'</label><br/>'+$(this).find('address1').text()+'<br/>'+$(this).find('city').text()+', '+$(this).find('state').text()+' '+$(this).find('zip').text()+'<br/>'+phone+'</p></div>');
					prevDealer.id = $(this).find('id').text();
				}).size() > 0) {			
					$('#dealer_list_init').show();
					$('#dealer_list_init').find('input[type="radio"]:first').attr('checked','checked');
					$("#find_dealer").css("background-position", "bottom");
					$('#dealer_locator').css("margin-top", "12px");
					$("#dealer_list_init").css('border-bottom', '1px solid #d4d4d4');
					$('#dealer_list_init').append("<a href='#' id='change_dealer'><strong>Change Dealer</strong></a><br/>").show();
					$('#dealer_list_init').find('input[type="radio"]').hide();
				}
			}
			
			$('#change_dealer').click(function(e) {
				e.preventDefault();
				$('#dealer_list').html('');
				$('#dealer_list_init').remove();
				$('#find_dealer').show();
				$('#zipCode').show();
				$("#zipCode").removeClass("zipCodeLarge");
				$("#dealer_locator").find('label').html('Your zip code');
				if($("#zipCode").width() > 107) {
					$("#zipCode").width($("#zipCode").width() - 95);
				}
				$("#find_dealer").trigger('click');
				
				
			});
			$('#find_dealer').hide();
		}
	});
}

/* function to prepopulate forms */
jQuery.populateForm = function() {
	// 03.31.2009 -- cmpwr -- prepopulating year field with current year
	$("#year").val("2009");
	
	var isMsie6 = $.browser.msie && $.browser.version < 7.0;
	
	
	if(isMsie6 && formDataCreated == false){
		splitURLVars();
		return;
	}
		
	if(!isMsie6){
		var formData = splitURLVars();
	}else{
		var formData = preformData;
	}
	
	
	if(formData) {
		if(formData["topic"]) {
			$("#regarding option").each(function() {
				if(unescape(formData["topic"]).toLowerCase() == $(this).val().toLowerCase())
					$(this).attr("selected", "selected");
			});
		}
			
		if(formData["model"]) {
			$("#modelName option").each(function() {
				if(unescape(formData["model"]).toLowerCase() == $(this).val().toLowerCase()) {
					$(this).attr("selected", "selected");
					$.attachVWTrims($("#modelName").val(), "#trim");
				}
			});
		}
		
		if(formData["trim"]) {
			$("#trim option").each(function() {
				if(unescape(formData["trim"]).toLowerCase() == $(this).val().toLowerCase())
					$(this).attr("selected", "selected");
			});
			// Sackerman 07/01/08
			// if trim is preselected via query string and form is not "Contact a Dealer",
			// hide the generic car image, collapse the margine 
			// and increase the height of the comments textarea.
			//if(document.title.substring(0,7) != "Contact"){
				//$('#vehicle').css({background: 'none'}).find('h3').css({marginBottom: '18px'});
				//$('#comments').css({height: 190	});
			//}
		}
		
		if(formData["comments"]) {
			$("#comments").val(unescape(formData["comments"]));	
		}
		
		if(formData["zipCode"] && !formData["dealerID"]) {
			if(!isNaN(parseInt(unescape(formData["zipCode"])))) {
				$("#zipCode").val(unescape(formData["zipCode"]));
			}
			$("#find_dealer").trigger("click");
		}
		
		if(formData["dealerID"] && formData["zipCode"]) {
			if(!isNaN(parseInt(unescape(formData["zipCode"])))) {
				$("#zipCode").val(unescape(formData["zipCode"]));
			}
			
			if(!isNaN(parseInt(unescape(formData["dealerID"])))) {
				$.dealerSearch(unescape(formData["zipCode"]), "", unescape(formData["dealerID"]));
			}
		}
		
		if(formData["dealerID"] && formData["searchstr"]) {
			if(!isNaN(parseInt(unescape(formData["searchstr"])))) {
				$("#zipCode").val(unescape(formData["searchstr"]));
			}
			
			if(!isNaN(parseInt(unescape(formData["dealerID"])))) {
				$.dealerSearch(unescape(formData["searchstr"]), "", unescape(formData["dealerID"]));
			}	
		}
		
		if(formData["searchstr"] && formData["markernum"]) {
			if(!isNaN(parseInt(unescape(formData["searchstr"])))) {
				$("#zipCode").val(unescape(formData["searchstr"]));
			}
			
			if(!isNaN(parseInt(unescape(formData["markernum"])))) {
				$.dealerSearch(unescape(formData["searchstr"]), unescape(formData["markernum"]), "");
			}	
		}
		
		if(formData["searchstr"] && !formData["markernum"] && !formData['dealerID']) {
			if(!isNaN(parseInt(unescape(formData["searchstr"])))) {
				$("#zipCode").val(unescape(formData["searchstr"]));
			}
			$("#find_dealer").trigger("click");
		}
		
		
		if(formData['tradeyear']){
			$('#tradeIn_year').val(unescape(formData['tradeyear']));
			$('#trade_in_yes').trigger('click');
			$('#tradeIn').show();
			$("#tradeIn .not-required").addClass('required').removeClass('not-required');
		}
		if(formData['trademileage']){
			$('#tradeIn_mileage').val(unescape(formData['trademileage']));
			$('#trade_in_yes').trigger('click');
			$('#tradeIn').show();
			$("#tradeIn .not-required").addClass('required').removeClass('not-required');
		}
		if(formData['trademake']){
			$('#tradeIn_make').val(unescape(formData['trademake']));
			$('#trade_in_yes').trigger('click');
			$('#tradeIn').show();
			$("#tradeIn .not-required").addClass('required').removeClass('not-required');
		}
		if(formData['trademodel']){
			$('#tradeIn_model').val(unescape(formData['trademodel']));
			$('#trade_in_yes').trigger('click');
			$('#tradeIn').show();
			$("#tradeIn .not-required").addClass('required').removeClass('not-required');
		}
		if(formData['tradecondition']){
			switch(formData['tradecondition'].toLowerCase()){
				case "excellent":
					$('#condition_excellent').trigger('click');
					$('#tradeIn').show();
					$("#tradeIn .not-required").addClass('required').removeClass('not-required');
					break;
				case "good":
					$('#condition_good').trigger('click');
					$('#tradeIn').show();
					$("#tradeIn .not-required").addClass('required').removeClass('not-required');
					break;
				case "fair":
					$('#condition_fair').trigger('click');
					$('#tradeIn').show();
					$("#tradeIn .not-required").addClass('required').removeClass('not-required');
					break;
				case "poor":
					$('#condition_poor').trigger('click');
					$('#tradeIn').show();
					$("#tradeIn .not-required").addClass('required').removeClass('not-required');
					break;
			}
		}
		
		if(formData['traderemainingbalance'] && formData['traderemainingbalance'] != 0){
			$('#remainingBalance').val(unescape(formData['traderemainingbalance']));
			$('#trade_in_yes').trigger('click');
			$('#tradeIn').show();
			$("#tradeIn .not-required").addClass('required').removeClass('not-required');
			$('#still_owe_yes').trigger('click');
		}else{
			$('#still_owe_amount').parent().removeClass('required').addClass('no-required');
		}
		
		if(formData['campaigntype']){
			campaignType = formData['campaigntype'].toLowerCase();
		}
	}
	
	return this;
};


/* function to preload images */

jQuery.preloadImages = function() {
  for(var i = 0; i<arguments.length; i++) {
    jQuery("<img>").attr("src", arguments[i]);
  }
};

/* function to attach models from XML to drop down */

jQuery.attachVWModels = function(modelSelectID, trimSelectID, notAtThisTime) {
	var model = getLocationModelTitle();
	$(modelSelectID).html('');
	if(model) {
		if(notAtThisTime){
			$(modelSelectID).append('<option value="none">Not at this time.</option>');
		}
		$(modelSelectID).append('<option value="'+model+'" SELECTED="selected">'+model+'</option>');
	}else {
		if(notAtThisTime){
			$(modelSelectID).append('<option value="none">Not at this time.</option>');
		}else {
			$(modelSelectID).append('<option value="">SELECT YOUR VW</option>');
		}
	}
	
	$.ajax({
		type:		"GET",
		url:		"/global/forms/data/trims_en_us.xml", 
		async:		false,
		cache:		false,
		dataType:	"xml",
		success:	function(xml) {
			
			$(xml).find('model').each(function() {
				if(model != $(this).find('title:first').text()) {
					$(modelSelectID).append('<option value="'+$(this).find('title:first').text()+'">'+$(this).find('title:first').text()+'</option>');
				}
			});
			
			//$(modelSelectID).children().eq(0).attr("selected", "selected");
			
			if(trimSelectID != "" && model) {
				$.attachVWTrims(model, trimSelectID);
			}
			
			$.populateForm();
			/*if($("#zipCode").val() == "") {
				$.getZipCookie();
			}*/
		}
	});
};

/* function to attach model trims from XML to drop down */

jQuery.attachVWTrims = function(modelName, trimSelectID) {
	
	model = modelName;
	
	if(model == "") {
		model = "jetta";
	} else {
	 	model = model.replace(/\s/g, '').toLowerCase();
	}
	
	if(model != "cc1"){
		var vehicleImage = new Image(); 
		vehicleImage.src = '/global/images/forms/column_car_bg_'+model+'.png';
		vehicleImage.onload = $("#vehicle").css("background-image","url("+vehicleImage.src+")");
		$("#vehicle").find('h3').css("margin-bottom", "136px");
	}else {
		$("#vehicle").css("background-image","none");
		$("#vehicle").find('h3').css("margin-bottom", "18px");
	}
	
	$.ajax({
		type:		"GET",
		url:		"/global/forms/data/trims_en_us.xml",
		async:		false,
		cache:		false,
		dataType:	"xml",
		success:	function(xml) {

			$(trimSelectID).html("<option>SELECT YOUR TRIM</option>").attr("disabled","disabled");
			if(modelName) {
				$(trimSelectID).html('<option value="" selected="selected">SELECT YOUR TRIM</option>').attr('disabled','');
				
				$(xml).find('model').filter(function() {
						return $(this).find('title:first').text() == modelName;
					}).find('trim').each(function() {
						$(trimSelectID).append('<option value="'+$(this).find('title:first').text()+'">'+$(this).find('title:first').text()+'</option>');
				});
			}
			
			$(trimSelectID).children().eq(0).attr("selected", "selected");
		}
	});
	
};

/* function to set transmission, modelCode, and price based on selected trim */

jQuery.setModelDetails = function(modelSelectID, trimSelectID, transmissionID, modelCodeID, msrpTotalID) {

	var defaultTrans = new String();
	var basePrice = 9999999999;
	
	if($(trimSelectID).val() == "") {
	
		$.ajax({
			type:		"GET",
			url:		"/global/forms/data/trims_en_us.xml", 
			async:		false,
			cache:		false,
			dataType:	"xml",
			success:	function(xml) {
			
				$(xml).find('model').filter(function() {
							return $(this).find('title:first').text() == $(modelSelectID).val();
						}).find('transmission').each(function() {
							currentPrice = parseInt(stripAlphaChars($(this).find('price').text()));
							if(currentPrice < basePrice)
								basePrice = currentPrice;
						});
						
	
				$(xml).find('model').filter(function() {
							return $(this).find('title:first').text() == $(modelSelectID).val();
						}).find('transmission').filter(function() {
							return parseInt(stripAlphaChars($(this).find('price').text())) == basePrice;
						}).each(function (){
							$(modelCodeID).val($(this).find('modelcode').text());
						});	
			}	
		});
	
	} else {
		$.ajax({
			type:		"GET",
			url:		"/global/forms/data/trims_en_us.xml", 
			async:		false,
			cache:		false,
			dataType:	"xml",
			success:	function(xml) {
			
				$(xml).find('model').filter(function() {
							return $(this).find('title:first').text() == $(modelSelectID).val();
						}).find('trim').filter(function() {
							return $(this).find('title:first').text() == $(trimSelectID).val();
						}).find('transmission').each(function() {
							currentPrice = parseInt(stripAlphaChars($(this).find('price').text()));
							if(currentPrice < basePrice)
								basePrice = currentPrice;
						});
						
	
				$(xml).find('model').filter(function() {
							return $(this).find('title:first').text() == $(modelSelectID).val();
						}).find('trim').filter(function() {
							return $(this).find('title:first').text() == $(trimSelectID).val();
						}).find('transmission').filter(function() {
							return parseInt(stripAlphaChars($(this).find('price').text())) == basePrice;
						}).each(function (){
							$(transmissionID).val($(this).find('title').text());
							$(modelCodeID).val($(this).find('modelcode').text());
							$(msrpTotalID).val($(this).find('price').text());
						});
			}	
		});
	}
}

/* function to find nearest dealers based on zipcode */

jQuery.findDealer = function(zip, targetID) {
	if(zip == "" || zip.length != 5) {
		$(targetID).html('<p id="zip_instructions">Please enter a valid 5 digit zip code to find your nearest Volkswagen dealer.');
		$(targetID).show();
		return false;
	}
	
	//$.setZipCookie(zip);
	
	// Fake a dealer session here
	//daasession.isDaaSession = true;
	//daasession.daaTemplate = "single";
	//daasession.daaID="66f838283cd710048f100003ba0acbe3";
	
	// $.showLoader();
	$.showDealerLoader("fieldset#dealer");
    
    // Set up the AJAX request variables
    var formSubmitType = "GET"
    var formSubmitUrl = "/dealer/DealerSearch.do"
    var formSubmitData = "searchBy=zip&distance=100&zipCode="+zip;
    var formSubmitDataType = "xml";

    // Are we in a dealer session?  If so, some of those request variables are different.
    if (daasession.isDaaSession) {
        
        // Use cdajax.php proxy for cross-domain ajax request
        formSubmitUrl = "/cdajax.php?cdservice=72.4.115.44:443/DAADealerSearch.php?cdmethod=get";
        // fake local XML file for testing:
        // formSubmitUrl = "/testresponse.xml" 
        formSubmitData = "&zipCode=" + zip + "&daaCode=" + daasession.daaID;
        formSubmitData += "&searchScope="+daasession.daaTemplate;
    }
	$.ajax({
		type:		formSubmitType,
		url:		formSubmitUrl,
		data: 		formSubmitData,
		dataType:	formSubmitDataType,
		success:	function(xml) {
		
			// Are we in a dealer session, and is the zipcode a part of the DAA?
		    var boolIsValidZip = true;
		    if (daasession.isDaaSession) {
		        strValid = $(xml).find('dealers').attr('ZIPValidForDAA');
		        if (strValid=="false") {
		            boolIsValidZip = false;
		        } else {
		            // Just in case we inserted the error message earlier, let's make sure it's gone
		            $("#invalid_zip").remove();
		        }
		    }
			$('#dealer_list_init').remove();
			$('#find_dealer').show();
			$("#dealer_locator").find('label').html('Your zip code');
			if($("#zipCode").width() > 107) {
				$("#zipCode").width($("#zipCode").width() - 95);
			}
			$('#zipCode').show();
		
			/* empty any previous results */
			$(targetID).html('');
		
			$(targetID).hide();
			
			var firstDeal = $(xml).find('dealer:lt(1)');
			var showAll = false;
			if(firstDeal.find('id').text() == prevDealer.id){
				showAll = true;
			}
			
			// Are we in a multi dealer session?  If so, then we want to show all
			if (daasession.isDaaSession && (daasession.daaTemplate=="multi")) {
			    showAll = true;
			}

			
			////////////////////////////////////////////////////////////////
			//12.10.2008 -- cmpwr -- feedback if request returns empty xml
			var nodeLengthCheck = $(xml).find('dealer').text().length;
			if(nodeLengthCheck == 0){
				$(targetID).html('<p id="zip_instructions">Please enter a valid 5 digit zip code to find your nearest Volkswagen dealer.</p>')
				$(targetID).show();
			}
			////////////////////////////////////////////////////////////////
			
				
			$(xml).find('dealer:lt(10)').each(function() {
			
				/* find and format the phone number */
				phone = $(this).find('phone').text();
				phone = phone.substring(0,3) + '.' + phone.substring(3,6) + '.' + phone.substring(6,10);
		
				/* insert dealer list into the DOM */
				var strHtml = "";
				strHtml += '<div class="dealer"><p class="dealer_selection"><input type="radio" name="dealerId" id="dealer_'+$(this).find('id').text();
				strHtml += '" value="'+$(this).find('id').text()+'"></input>';
				strHtml += '<input type="hidden" id="dealerName_'+$(this).find('id').text();
				strHtml += '" name="dealerName_'+$(this).find('id').text()+'" value="'+$(this).find('name').text();
				strHtml += '"></input></p><p class="dealer_info"><label for="dealer_'+$(this).find('id').text()+'">'+$(this).find('name').text();
				strHtml += '</label><br/>'+$(this).find('address1').text()+'<br/>'+$(this).find('city').text()+', '+$(this).find('state').text();
				strHtml += ' '+$(this).find('zip').text()+'<br/>'+phone+'</p></div>';
				$(targetID).append(strHtml);

			})
			jQuery.each(jQuery.browser, function(i, val) {
			    if(i == 'msie' && val) {
			        $(targetID).find('[type="radio"]').css("margin-top", "-2px");
			        $(targetID).find('[type="radio"]:first').css("margin-top", "5px");
			        return false
			    }
			});

			if($(xml).find('dealer').size() > 1){ //more than one result
				//$(targetID).find('[type="radio"]').show();
				
				if (daasession.isDaaSession && !boolIsValidZip) {
				    $("#dealer_locator").hide();
				    $("#choose_your_dealer").css("background-image", "url(/joyride/en/us/assets/images/joyride_legend_participating_dealer.png)");
				    var strMessage = '<p id="invalid_zip">The zip code you entered is not part of this dealer association. The closest dealership in the association is displayed above.</p>';
				    if (daasession.daaTemplate == "multi") {
				        strMessage = '<p id="invalid_zip">The zip code you entered is not part of this dealer association. Please see the list of participating dealers above.</p>';
				    }
				    $("#dealer").append(strMessage);
				}
				
				
				if(!showAll){
					$(targetID).find('[type="radio"]').hide();
					
					$(targetID).append("<p id='show_more_dealers'><a href='#'>Show More</a></p>").find(".dealer:gt(0)").hide();

					prevDealer.id = $(xml).find('dealer:lt(1)').find('id').text();

				}
				$(targetID).find("#show_more_dealers a").click(function(e) {
					e.preventDefault();

					// If we're in a dealer session and the zip is not valid, we need to
					// hide the dealer locator, change the label, and show the error message
		
					if (daasession.isDaaSession && !boolIsValidZip) {
					    $("#dealer_locator").hide();
					    $("#choose_your_dealer").css("background-image", "url(/joyride/en/us/assets/images/joyride_legend_participating_dealer.png)");
					    $("#invalid_zip").remove();
					    $("#dealer").append('<p id="invalid_zip">We\'re afraid that the zip code you entered is not associated with our Association. Please see our list of participating dealers</p>');
					}
					
					$(targetID).find('[type="radio"]').show();
					$(targetID).find(".dealer:gt(0)").show();
					$(targetID).find("#show_more_dealers").remove();

					var location = window.location.href.split("/");

					if(location[3] != "contactadealer") {
						$.ajax({
							url: "/global/js/omniture/s_code.js",
							dataType: "script",
							async: false,
							success: function(js){

								clearOmnitureVars();

								if(location[3] == "quote" || location[4] == "quote") {
									s.pageName="gaq:more_dealers";
									s.channel="gaq";
								}
								if(location[3] == "joyride" || location[4] == "joyride") {
									s.pageName="tatd:more_dealers";	
									s.channel="tatd";
								}

								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());
							}
						});	
					}
				});
			}else { //one result or less
				$(targetID).find('[type="radio"]').hide();
			}
		
		
			var location = window.location.href.split("/");
			if(location[3] == "contactadealer" || location[4] == "contactadealer") {
				$(targetID).css("height", "210px");
				$(targetID).css("#height", "180px");
				$(targetID).css("_height", "180px");
			}else {
				$(targetID).css("height", "240px");
				$(targetID).css("#height", "210px");
				$(targetID).css("_height", "210px");
			}
			
		
			$(targetID).find('input[type="radio"]:first').attr('checked','checked');
			$(targetID).show();
		
			$("#find_dealer").css("background-position", "bottom");
		
			$.hideDealerLoader("fieldset#dealer");
		
			/* Omniture Tracking */
		
			var location = window.location.href.split("/");
		
			if(location[3] != "contactadealer") {
				$.ajax({
					url: "/global/js/omniture/s_code.js",
					dataType: "script",
					async: false,
					success: function(js){
				
						clearOmnitureVars();
					
						if(location[3] == "quote" || location[4] == "quote") {
							s.pageName="gaq:find_dealer";
							s.channel="gaq";
						}
						if(location[3] == "joyride" || location[4] == "joyride") {
							s.pageName="tatd:find_dealer";	
							s.channel="tatd";
						}
				
						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());
					}
				});
			}
		
		},
		error:	function(request, status, error) {
			$('#dealer_list').html('');
			$('#dealer_list_init').remove();
			$('#find_dealer').show();
			if($("#zipCode").width() > 107) {
				$("#zipCode").width($("#zipCode").width() - 95);
			}
			$("#dealer_locator").find('label').html('Your zip code');
			$(targetID).html('<p id="zip_instructions">We are unable to load the data right now. Please try again in a few minutes.</p>')
			//alert("error: " + status + ", " + "\n" + error + ", " + request.getAllResponseHeaders());

			$(targetID).show();
			$.hideDealerLoader("fieldset#dealer");
		}
	});
		
};

/* function to return model short name */

jQuery.setModelBrochureLink = function(modelName, anchorID) {

	$.ajax({
		type:		"GET",
		url:		"/global/forms/data/trims_en_us.xml", 
		dataType:	"xml",
		success:	function(xml) {

			var modelShortName = $(xml).find('model').filter(function() {
						return $(this).find('title:first').text() == modelName;
					}).find('name:first').text();
					
			if(modelName == "" || modelName == "none"){
				$(anchorID).attr("href","/jetta/brochure/en/us/");
			}
			else if(modelName == "beetleblush"){
			    $(anchorID).attr("href","/newbeetlecon/brochure/en/us/"); 
			}else{
				$(anchorID).attr("href","/"+modelShortName+"/brochure/en/us/"); 
			}		
		}										
	});
	
};

/* function to set bg image based on model name for success page */

jQuery.setSuccessModelBackground = function(modelName, targetID) {
	
	if(modelName == "" || modelName == "none") {
		modelName = "jetta";
	} else {
	 	modelName = modelName.replace(/\s/g, '').toLowerCase();
	}
	
	var vehicleImage = new Image(); 
	vehicleImage.src = '/global/images/forms/success_bg_'+modelName+'.png';
	vehicleImage.onload = $(targetID).css("background-image","url("+vehicleImage.src+")");
	
	//calling spotlight tag for 'Thank you' page
	$('body').append(trackDoubleClickFloodlight('thankyou'));
	
};




/* function to set email and phone requirements based on contact preference answer */

jQuery.setContactRequirements = function(contactPreference, phoneID, emailID, emailVerifyID) {
	switch(contactPreference) {
		case "phone":
			$(phoneID).parent().each(function() {
				if($(this).hasClass("not-required")) { 
					$(this).addClass("required").removeClass("not-required");
				}
			});
			$(emailID+", "+emailVerifyID).parent().each(function() {
				if($(this).hasClass("required")) {
					$(this).addClass("not-required").removeClass("required");
				}
			});
			break;
		case "email":
			$(phoneID).parent().each(function() {
				if($(this).hasClass("required")) { 
					$(this).addClass("not-required").removeClass("required");
				}
			});
			$(emailID+", "+emailVerifyID).parent().each(function() {
				if($(this).hasClass("not-required")) {
					$(this).addClass("required").removeClass("not-required");
				}
			});
			break;
		case "email or phone":
			$(phoneID+", "+emailID+", "+emailVerifyID).parent().each(function() {
				if($(this).hasClass("not-required")) { 
					$(this).addClass("required").removeClass("not-required");
				}
			});
			break;
	}
	
};

/* functions to show and hide loader div */
var imgPreload = new Array;
imgPreload[1] = new Image;
imgPreload[1].src = "/global/images/forms/loader.gif";
jQuery.showLoader = function() {
	$(".container").prepend("<div id='loader'><img src='/global/images/forms/loader.gif'></div>");	
};
jQuery.showDealerLoader = function(strTarget) {
    $(strTarget).append("<div id='loader-dealer'><img src='/global/images/forms/loader.gif'></div>")
};
jQuery.hideDealerLoader = function(strTarget) {
	$("#loader-dealer").remove();
};

jQuery.hideLoader = function() {
	$("#loader").remove();
}

/*
jQuery.setZipCookie = function(zip) {
	if(!isNaN(parseInt(zip))) {
		document.cookie = "zipCode=" + zip;
	}
	return true;
}

jQuery.getZipCookie = function(){
	var allCookies = document.cookie.split(";");
	for(var i=0;i<allCookies.length;i++){
		var cookiePair = allCookies[i].split("=");
		if(cookiePair[0] == "zipCode"){
			$("#zipCode").val(cookiePair[1]);
			$("#find_dealer").trigger("click");
		}
	}
}
*/
/* function to clear omniture variables */

function clearOmnitureVars() {
	s.pageName="" ;
	s.server=vwServerName;
	s.domain=vwDomain;
	s.channel="" ;
	s.nameplate="" ;
	s.modelyear=vwModelYear;
	s.microsite=""
	s.events="";
}


/* function to return spotlight tag data */
function getFormType(formType, tagType, model){
	
	var formDataHash = new Array();
	formDataHash['quote'] = new Array();
	formDataHash['joyride'] = new Array();
	formDataHash['contactadealer'] = new Array();
	
	//types of spotlight tags correspond to these arrays
	formDataHash['quote']['thankyou'] = new Array();
	formDataHash['joyride']['thankyou'] = new Array();
	formDataHash['contactadealer']['thankyou'] = new Array();
	
	//quote thank you values//
	formDataHash['quote']['thankyou']['cc'] = 'ccgaqtyf';
	formDataHash['quote']['thankyou']['eos'] = 'eosgaqtf';
	formDataHash['quote']['thankyou']['gli'] = 'gligaqtf';
	formDataHash['quote']['thankyou']['gti'] = 'gtigaqtf';
	formDataHash['quote']['thankyou']['jetta'] = 'jetgaqfl';
	formDataHash['quote']['thankyou']['jettasportwagen'] = 'sptgaqfl';
	formDataHash['quote']['thankyou']['newbeetle'] = 'newbgaqf';
	formDataHash['quote']['thankyou']['newbeetlecon'] = 'nbcgaqfl';
	formDataHash['quote']['thankyou']['passat'] = 'pasgaqfl';
	formDataHash['quote']['thankyou']['passatwagon'] = 'waggaqfl';
	formDataHash['quote']['thankyou']['rabbit'] = 'rabgaqfl';
	formDataHash['quote']['thankyou']['routan'] = 'rougaqfl';
	formDataHash['quote']['thankyou']['tiguan'] = 'tiggaqfl';
	formDataHash['quote']['thankyou']['touareg'] = 'tougaqfl';
	formDataHash['quote']['thankyou']['generic'] = 'gaqtyfl';
	
	//joyride thank you values//
	formDataHash['joyride']['thankyou']['cc'] = 'cctdtyfl';
	formDataHash['joyride']['thankyou']['eos'] = 'eostdtyf';
	formDataHash['joyride']['thankyou']['gli'] = 'glitdtyf';
	formDataHash['joyride']['thankyou']['gti'] = 'gtitdtyf';
	formDataHash['joyride']['thankyou']['jetta'] = 'jettdfd';
	formDataHash['joyride']['thankyou']['jettasportwagen'] = 'spttdfl';
	formDataHash['joyride']['thankyou']['newbeetle'] = 'newbetdf';
	formDataHash['joyride']['thankyou']['newbeetlecon'] = 'nbctdfl';
	formDataHash['joyride']['thankyou']['passat'] = 'psastdfl';
	formDataHash['joyride']['thankyou']['passatwagon'] = 'wagtdfl';
	formDataHash['joyride']['thankyou']['rabbit'] = 'rabtdfl';
	formDataHash['joyride']['thankyou']['routan'] = 'routdfl';
	formDataHash['joyride']['thankyou']['tiguan'] = 'tigtdfl';
	formDataHash['joyride']['thankyou']['touareg'] = 'toutdfl';
	formDataHash['joyride']['thankyou']['generic'] = 'satdtyfl';
	
	//contactadealer thank you values//
	formDataHash['contactadealer']['thankyou']['cc'] = 'cccadtyf';
	formDataHash['contactadealer']['thankyou']['eos'] = 'eoscadtf';
	formDataHash['contactadealer']['thankyou']['gli'] = 'glicadtf';
	formDataHash['contactadealer']['thankyou']['gti'] = 'gticadtf';
	formDataHash['contactadealer']['thankyou']['jetta'] = 'jetcadfl';
	formDataHash['contactadealer']['thankyou']['jettasportwagen'] = 'sptcadfl';
	formDataHash['contactadealer']['thankyou']['newbeetle'] = 'newbcadf';
	formDataHash['contactadealer']['thankyou']['newbeetlecon'] = 'nbccadfl';
	formDataHash['contactadealer']['thankyou']['passat'] = 'pascadfl';
	formDataHash['contactadealer']['thankyou']['passatwagon'] = 'wagcadfl';
	formDataHash['contactadealer']['thankyou']['rabbit'] = 'rabcadfl';
	formDataHash['contactadealer']['thankyou']['routan'] = 'roucadtl';
	formDataHash['contactadealer']['thankyou']['tiguan'] = 'tigcadfl';
	formDataHash['contactadealer']['thankyou']['touareg'] = 'toucadfl';
	formDataHash['contactadealer']['thankyou']['generic'] = 'cadtyfl';
	
	return String(formDataHash[formType][tagType][model]);
	
}

/* function returns the DoublleClick car type */
function getDoubleClickType(model,formType){
	
	if(formType == 'quote' || formType == 'joyride' || formType == 'contactadealer'){
		formType = 'quote_joyride_contact';
	}
	
	switch(formType){
	
		case 'quote_joyride_contact':
			var typeHash = new Array()
			typeHash['cc'] = 'cc';
			typeHash['eos'] = 'eos';
			typeHash['gli'] = 'gli';
			typeHash['gti'] = 'gti';
			typeHash['jetta'] = 'jetta';
			typeHash['jettasportwagen'] = 'jettawag';
			typeHash['newbeetle'] = 'newbeet';
			typeHash['newbeetlecon'] = 'nbc';
			typeHash['passat'] = 'passat';
			typeHash['passatwagon'] = 'passwagn';
			typeHash['rabbit'] = 'rabbit';
			typeHash['routan'] = 'routan';
			typeHash['tiguan'] = 'tiguan';
			typeHash['touareg'] = 'toureg';
			typeHash['generic'] = 'generic';
		break;
	
	}
	
	return String(typeHash[model]);
}

/* function to send doubleclick tracking info  */
function trackDoubleClickFloodlight(tagType){

	/* split href - 4th element is base directory (http://www.example.com/BASE/ */
	var location = window.location.href.split("/");
	var src = '1033942';
	var type = '';
	var cat = '';
	
	var formType = '';
	var model = '';
	var check1 = location[3].toLowerCase();
	var check2 = location[4].toLowerCase();
	
	if(check1 == 'quote' || check1 == 'joyride' || check1 == 'contactadealer'){
		formType = check1;
		model = 'generic';
	}else{
		formType = check2;
		model = check1;
	}
	
	type = String(getDoubleClickType(model,formType));
	cat = String(getFormType(formType,tagType,model));
	
	if(cat != undefined && cat != 'undefined' && cat != ''){
		var axel = Math.random()+"";
		var a = axel * 10000000000000;
		var floodlightTag = '<IFRAME SRC="http://fls.doubleclick.net/activityi;src=' + src + ';type=' + type + ';cat=' + cat + ';ord=1;num='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME>'
		// sample floodlight tag = '<IFRAME SRC="http://fls.doubleclick.net/activityi;src=1033942;type=cc;cat=cctdtyfl;ord=1;num='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME>' //
		return floodlightTag;
	}

}

// sackerman 08/21/08
// added cookie functionality
// for form data persistence.

cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

function initCookie(){
	var location = window.location.href.split("/");
	var userInfo = buildVwFormsUserInfoCookie();
	if(userInfo != undefined){
		var cookieArray = userInfo.split("~");
		$("#firstName").val(cookieArray[0]);
		$("#lastName").val(cookieArray[1]);
		$("#preferredContactMethod").val(cookieArray[2]);
		$("#phone").val(cookieArray[3]);
		$("#email1").val(cookieArray[4]);
		$("#email2").val(cookieArray[5]);
		$("#zipCode").val(cookieArray[6]);
		if(cookieArray[7]=="true"){
			$("#trade_in_yes").attr('checked','checked');
			$("#tradeIn .not-required").addClass('required').removeClass('not-required');
			$("#still_owe_no").trigger("click");
			$("#tradeIn").show();
			$("#tradeIn_year").val(cookieArray[8]);
			$("#tradeIn_mileage").val(cookieArray[9]);
			$("#tradeIn_make").val(cookieArray[10]);
			$("#tradeIn_model").val(cookieArray[11]);
			if(cookieArray[12]=="true"){
				$("#still_owe_yes").attr('checked','checked');
				$("#remainingBalance").parent().addClass('required').removeClass('not-required');
			}
			$("#remainingBalance").val(cookieArray[13]);
		}	
	}
}

function buildVwFormsUserInfoCookie(userInfo) { 
	var cookie_value;
	if (userInfo != undefined) {  
		cookie("vwFormsUserInfoCookie", userInfo,{path: '/'});
		return cookie_value;                  
	} else {
		cookie_value = cookie("vwFormsUserInfoCookie");
		return cookie_value;
	} 
};

function checkTDI(x) {
	var optSelected = document.getElementById(x).value;
	if (optSelected == 'TDI') {
		var selbox = document.getElementById('modelName');
		selbox.options.length = 0;
		selbox.options[0] = new Option('Jetta','Jetta');

		document.getElementById("modelCode").value = '1K277L';
		return
		
	} else {
		jQuery.attachVWModels("#modelName", "", true);
	}
}
