var zipcode = '';
var offerid = null;
var offertype = null;
var dealerDomain;
var quitDealerSession = false; //set to true if deep link is found
var isemailready = false;
var newemailmessage = null;
var deeplinkid = null;
var imageFadeTimeout;
var allOfferID = new Array();
var initLoad = true;
var isDocumentReady = false;
var isNavigationReady = false;


var currentmodel = window.location.href;
currentmodel = currentmodel.split("/");
currentmodel = currentmodel[3].toLowerCase();

cookieZip = readCookie('userzip');
if(cookieZip != null && cookieZip != ""){
    zipcode = readCookie('userzip');
}



/**
* Fired by universal_nav.swf if there are 
* no dealer or daa sessions active
*/
function onNavigationReady(){
	isNavigationReady = true;
	if(isDocumentReady){
		if(isValidZipCode(zipcode)){
			$('.popup-background').show().css('opacity', .8);
			$('.popup-background-model').show().css('opacity', .8);
			$('.enter-zip-code, .enter-zip-code-model').hide();
			$(document).find('.enter-zip-code-model').find('p.error').remove();
			$.getDealerDomain(zipcode);
			quitDealerSession = true;
		}else{
			$('a.location-change').trigger('click');
		}
		
		if(offertype != null){
			$('#checkbox-'+offertype).trigger('click');
			itemClicked();
		}
	}
}

$(document).ready( function(){
	isDocumentReady = true;
	$('#leftnav').checkboxSelect();
	$('#offers-list li').listItemObject();
	
	if (typeof document.body.style.maxHeight === "undefined") {
	    $(this).find('.offer-details .bottom-buttons').addClass('ie6-height');
	}
	
	$('.enter-zip-code a').click(function(e){
		e.preventDefault();
		if(isValidZipCode($(document).find('.zip-code-field').val())){
			$(document).find('.enter-zip-code').hide();
			$(document).find('.enter-zip-code').find('p.error').remove();
			zipcode = $(document).find('.zip-code-field').val();
			createCookie('userzip', zipcode);
			$.getDealerDomain(zipcode);
		}else{
			showError();
		}
	});
	$('.enter-zip-code-model a').click(function(e){
		e.preventDefault();
		if(isValidZipCode($(document).find('.zip-code-field').val())){
			$(document).find('.enter-zip-code-model').hide();
			$(document).find('.enter-zip-code-model').find('p.error').remove();
			zipcode = $(document).find('.zip-code-field').val();
			createCookie('userzip', zipcode);
			$.getDealerDomain(zipcode);
		}else{
			showError();
		}
	});
	
	if (typeof document.body.style.maxHeight === "undefined") { //if IE 6
	    $(document).find('.popup-background').css('position','absolute');
	    $(document).find('.popup-background-model').css('position','absolute');
	    $(document).find('.popup-background').css('height',jQuery("body").height() + "px");
	    $(document).find('.popup-background-model').css('height',jQuery("body").height() + "px");
    }
	
	$('.zip-code-field').val('Zip Code');
	$('input').focus( function(e){
	    if($(this).val().toLowerCase() == "zip code"){
	      $(this).val('');
	    }
	});
	$('input').blur( function(e){
	    if($(this).val() == ""){
	        $(this).val('Zip Code');
	    }
	});
	
	$('a.location-change').click( function(e){
		e.preventDefault();
		$('.popup-background').show().css('opacity', .8);
		$('.popup-background-model').show().css('opacity', .8);
		$('.enter-zip-code').show();
		$('.enter-zip-code-model').show()
		$('input.zip-code-field').attr('maxlength', 8);
		$('.enter-zip-code input').attr('value',"Zip Code");
		$('.enter-zip-code-model input').attr('value',"Zip Code");
	});
	
	$('input.zip-code-field').bind('keypress', function(e) {
		$(this).attr('maxlength', 5);
		if(e.keyCode == 13){
			$('.enter-zip-code-model a, .enter-zip-code a').trigger('click');
			return;
		}
		return ( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)) ? false : true;
	});
	
	$('.print_all').click(function(e){
		e.preventDefault();
		$(document).find('#offers-list ul').print('all');
	});
	
	$(document).find('.grey-box h1').html('<span>'+$('#offers-list li.vwspecialoffer').length + ' of ' + $('#offers-list li.vwspecialoffer').length + '</span> Special Offers Found');
	
	var queryString = unescape(vw.util.getQueryString());
	var queryArray = queryString.split("&");
	$(queryArray).each(function(i){
		var split = queryArray[i].split("=");
		var name = split[0];
		var value = split[1];
		if(name == "offerid") offerid = value;
		if(name == 'zipcode') zipcode = value;
		if(name == 'offertype') offertype = value;
	});
	
	if(isNavigationReady){
		if(isValidZipCode(zipcode)){
			$('.popup-background').show().css('opacity', .8);
			$('.popup-background-model').show().css('opacity', .8);
			$('.enter-zip-code, .enter-zip-code-model').hide();
			$(document).find('.enter-zip-code-model').find('p.error').remove();
			$.getDealerDomain(zipcode);
			quitDealerSession = true;
		}else{
			$('a.location-change').trigger('click');
		}
		
		if(offertype != null){
			$('#checkbox-'+offertype).trigger('click');
			itemClicked();
		}
	}
	hideEmail(null);
	
	$(document).bind("session:dealer", specialOffersDealerSession);
	$(document).bind("session:daa", specialOffersDaaSession);
	
	if(dealersession.isDealerSession && !quitDealerSession){
		specialOffersDealerSession();
	}
	if(daasession.isDaaSession){
		specialOffersDaaSession();
	}
});

function showError(mssg){
	$.hideLoader();
	var errorText;
	if(mssg == null || mssg == '' || mssg == undefined)
	    errorText = "<p class='error'>Please enter a valid zip code</p>";
	else
	    errorText = "<p class='error'>"+mssg+"</p>";
	$(document).find('.enter-zip-code, .enter-zip-code-model').show();
	$(document).find('.popup-background, .popup-background-model').show();
	$(document).find('.enter-zip-code, .enter-zip-code-model').find('p.error').remove();
	$(document).find('.enter-zip-code, .enter-zip-code-model').append(errorText)
}

(function($) {
	$.fn.listItemObject = function(options){
		$('.offer-details a.offer-headline').click( function(e){
	        e.preventDefault();
	        if($(this).parent().parent().parent().hasClass('open')){
	            $(this).parent().parent().parent().find('a.hide-details').trigger('click');
	        }else{
	            $(this).parent().parent().parent().find('a.show-details').trigger('click');
	        } 
	    });
		$('.offer-details a.offer-headline').hover( function(e){
			$(this).css('text-decoration', 'underline');
		},function(){
			$(this).css('text-decoration', 'none')
		});
	    $('.offer-images a').click( function(e){
	        e.preventDefault();
	        if($(this).parent().parent().parent().parent().hasClass('open')){
	            $(this).parent().parent().parent().parent().find('a.hide-details').trigger('click');
	        }else{
	            $(this).parent().parent().parent().parent().find('a.show-details').trigger('click');
	        }
	    });
	    $('a.show-details').click( function(e){
	        e.preventDefault();
	        $(this).parent().find('a.hide-details').show();
			$(this).parent().parent().find('.utility-btns').show();
			$(this).parent().parent().find('.detail-btns a').addClass('grey');
	        $(this).hide();
	        $(this).parent().parent().parent().parent().parent().addClass('open');
	        if (typeof document.body.style.maxHeight === "undefined") {
	           $(this).parent().parent().removeClass('ie6-height');
	        }
	    });
	    $('a.hide-details').click( function(e){
	        e.preventDefault();
	        $(this).parent().find('a.show-details').show();
			$(this).parent().parent().find('.utility-btns').hide();
			$(this).parent().parent().find('.detail-btns a').removeClass('grey');
	        $(this).hide();
	        $(this).parent().parent().parent().parent().parent().removeClass('open');
	        if (typeof document.body.style.maxHeight === "undefined") {
	           $(this).parent().parent().addClass('ie6-height');
	        }
	    });
	
		$('.print').click(function(e){
			e.preventDefault();
			$(this).parent().parent().parent().parent().parent().parent().print('single');
		});
		$('.email').click(function(e){
			e.preventDefault();
			var id = $(this).parent().parent().parent().parent().parent().parent().attr('name');
			deeplinkid = id;
			showEmail();
		});
	};
}) (jQuery);

(function($) {
	$.fn.checkboxSelect = function(options){
		$(this).find('input').click( function(){
			itemClicked();
		});
		
		$(this).find('.reset-btn').click(function(e){
			e.preventDefault();
			reset();
		});
		reset(false);
	};
	
	
	function reset(showAll){
		$('.filter-box input').each(function(){
			this.checked = false
		});
		if(showAll || showAll == null)$('#offers-list li.vwspecialoffer').show();
		var dealerZipString = getZipString(zipcode);
		$(document).find('.grey-box h1').html('<span>'+$('#offers-list li.vwspecialoffer').length + ' of ' + $('#offers-list li.vwspecialoffer').length + '</span> Special Offers Found'+dealerZipString);
	}
}) (jQuery);


function itemClicked(){
	var selectedArr = [];
	var modelArr = [];
	var offerArr = [];
	$('#model-filters input').each(function(){
		if(this.checked) {
			modelArr.push(this.value);
			selectedArr.push(this.value);
		}
	});
	$('#offer-filters input').each(function(){
		if(this.checked) {
			offerArr.push(this.value);
			selectedArr.push(this.value);
		}
	});
	$('#offers-list li.vwspecialoffer').removeClass('selected').hide();
	
	var dealerZipString = getZipString(zipcode);
	
	if(selectedArr.length > 0){
		
		$('#offers-list li.vwspecialoffer').each(function(i){
			var shouldBeSelected = false;
			var offer = $(this);
			if(modelArr.length > 0){
				$(modelArr).each(function(j){
					if(offer.hasClass(modelArr[j])){
						shouldBeSelected = true;
						return;
					}
				});
				if(offerArr.length > 0 && shouldBeSelected){
					var loopStop = false;
					$(offerArr).each(function(j){
						if(offer.hasClass(offerArr[j])){
							shouldBeSelected = true;
							loopStop = true;
							return;
						}else if(loopStop == false){
							shouldBeSelected = false;
						}
					});
				}
			}else{
				if(offerArr.length > 0){
					var loopStop = false;
					$(offerArr).each(function(j){
						if(offer.hasClass(offerArr[j])){
							offer.addClass('selected').show();
							loopStop = true;
							return;
						}else if(loopStop == false) {
							shouldBeSelected = false;
						}
					});
				}
			}
			
			if(shouldBeSelected){
				offer.addClass('selected').show();
			}
		});
		
		$(document).find('.grey-box h1').html('<span>'+$('#offers-list li.vwspecialoffer.selected').length + ' of ' + $('#offers-list li.vwspecialoffer').length + '</span> Special Offers Found'+dealerZipString);
	}else{
		$('#offers-list li.vwspecialoffer').addClass('selected').show();
		$(document).find('.grey-box h1').html('<span>'+$('#offers-list li.vwspecialoffer').length + ' of ' + $('#offers-list li.vwspecialoffer').length + '</span> Special Offers Found'+dealerZipString);
	}
}


jQuery.fn.print = function(type){
	if (this.size() > 1){
		this.eq( 0 ).print();
		return;
	} else if (!this.size()){
		return;
	}
	
	$('.printer-frame').remove();

	var strFrameName = ("printer-" + (new Date()).getTime());

	var jFrame = $( "<iframe name='" + strFrameName + "' class='printer-frame'>" );

	jFrame
		.css( "width", "1px" )
		.css( "height", "1px" )
		.css( "position", "absolute" )
		.css( "left", "-9999px" )
		.appendTo( $( "body:first" ) )
	;
	
	var objFrame = window.frames[ strFrameName ];

	var objDoc = objFrame.document;
	
	var jStyleDiv = $( "<div>" ).append(
		$( "style" ).clone()
		);
	
	if(type == 'single'){
		
		objDoc.open();
		objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
		objDoc.write( "<html>" );

		objDoc.write( "<head>" );
		objDoc.write( "<title>" );
		objDoc.write( document.title );
		objDoc.write( "</title>" );
		objDoc.write( "<link rel='Stylesheet' media='print' href='/vwoffers/en/us/css/print.css' />" );
		objDoc.write( "</head>" );
		objDoc.write( "<body>" );
		objDoc.write( "<div id='mainContent'>" )
		objDoc.write( "<div id='offers-list'>" );
		objDoc.write( "<ul>" );
		objDoc.write( "<li>" );
		objDoc.write( this.html() );
		objDoc.write( "</li>" );
		objDoc.write( "</ul>" );
		objDoc.write( "</div>" );
		objDoc.write( "</div>" );
		objDoc.write( "</body>" );
		objDoc.write( "</html>" );
		objDoc.close();

		objFrame.focus();
		objFrame.print();
	}else{
		objDoc.open();
		objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
		objDoc.write( "<html>" );

		objDoc.write( "<head>" );
		objDoc.write( "<title>" );
		objDoc.write( document.title );
		objDoc.write( "</title>" );
		objDoc.write( "<link rel='Stylesheet' media='print' href='/vwoffers/en/us/css/print.css' />" );
		objDoc.write( "</head>" );
		objDoc.write( "<body>" );
		objDoc.write( "<div id='mainContent'>" )
		objDoc.write( "<div id='offers-list'>" );
		objDoc.write( "<ul>" );
		$(this).find('.vwspecialoffer').each(function(i){
			objDoc.write('<li>' );
			objDoc.write( $(this).html() );
			objDoc.write('</li>' );
			objDoc.write( '<hr/>' );
		});
		
		objDoc.write( "</ul>" );
		objDoc.write( "</div>" );
		objDoc.write( "</div>" );
		objDoc.write( "</body>" );
		objDoc.write( "</html>" );
		objDoc.close();
		objFrame.focus();
		objFrame.print();
	}
}

var imgPreload = new Array;
imgPreload[1] = new Image;
imgPreload[1].src = "/global/images/forms/loader.gif";

jQuery.showLoader = function() {
	$('.enter-zip-code').after("<div id='loader'><img src='/global/images/forms/loader.gif'></div>");	
	$('.enter-zip-code-model').after("<div id='loader-model'><img src='/global/images/forms/loader.gif'></div>");
};
jQuery.hideLoader = function() {
	$("#loader").remove();
	$("#loader-model").remove();
}


jQuery.getDealerDomain = function(zip){
	$.hideLoader();
	$.showLoader();
	$('.popup-background').show().css('opacity', .8);
	$('.popup-background-model').show().css('opacity', .8);
	if(!dealersession.isDealerSession){
		var url;
		if(daasession.isDaaSession){
			var code = daasession.daaID;
			url = "/cdajax.php?cdservice=72.4.115.44:443/DAADealerSearch.php?cdmethod=get&&zipCode="+zip+"&daaCode="+code+"&searchScope=multi";
		}else{
		    url = "/dealer/DealerSearch.do?searchBy=zip&distance=100&zipCode="+zip+"&crm=false";
		}
		if(url == null){
		    $.loadOffers(zip);
		    return;
		}
		$.ajax({
			type:"GET",
			url:url,
			dataType:"xml",
			success: function(data){
				dealerDomain = $(data).find('dealer:first url').text();
				
				if(daasession.isDaaSession){
					zip = $(data).find('dealer:first zip').text();
					zipcode = zip;
				}
				
				if(dealerDomain == ""){
					showError();
				}else{
					$.loadOffers(zip);
				}
			},
			error: function(data){
				showError();
			}
		});
	}else{
		if(initLoad){
			dealerDomain = "http://"+dealersession.dealerDomain;
			zipcode = dealersession.dealerZip;
			$.loadOffers(zipcode);
		}else{
			url = "/dealer/DealerSearch.do?searchBy=zip&distance=100&zipCode="+zip+"&crm=false";
			
			if(url == null){
			    $.loadOffers(zip);
			    return;
			}
			$.ajax({
				type:"GET",
				url:url,
				dataType:"xml",
				success: function(data){
					dealerDomain = $(data).find('dealer:first url').text();
					if(dealerDomain == ""){
						showError();
					}else{
						zipcode = zip;
						$.loadOffers(zip);
					}
				},
				error: function(data){
					showError();
				}
			});
		}
	}
	initLoad = false;
}

jQuery.loadOffers = function(zip){
	
	clearTimeout(imageFadeTimeout);
	
	$('.popup-background').show().css('opacity', .8);
	$('.popup-background-model').show().css('opacity', .8);
	
	var urlStr = "/offers/ZIP_"+zip+".xml";
	
	$.ajax({
		type: "GET",
		url: urlStr,
		dataType: "xml",
		success: function(data){
			zipcode = zip;
			$.buildDeals($(data));
		},
		error: function(data){
		    $.hideLoader();
		    $('.popup-background, .popup-background-model').hide();
		    $('.enter-zip-code-model, .enter-zip-code').hide();
			$('p.error').remove();
		    $('.grey-box').before('<p class="error">There was an error while loading your offers.  Please try again later.</p><br/>');
		    $('.car-details').attr('href', "javascript:cb.appendCampaign(\'"+ dealerDomain + "/NewVehicleSearch/\')");
		    $('.visit-dealer a, .more-offers a').attr('href', "javascript:cb.appendCampaign(\'"+ dealerDomain + "/NewVehicleSearch/\')");
        	    $('a.contact-dealer').attr('href', "javascript:cb.appendCampaign(\'"+ dealerDomain + "/ContactUsForm/\')");
	        }
	});
}

jQuery.buildDeals = function(data){
	$.hideLoader();
	$('.popup-background, .popup-background-model').hide();
	
	$(document).find('#offers-list ul').html('');
	
	allOfferID = new Array();
	
	data.find('daa').find('deal').each(function(i){
		var listItem = createListItem($(this), "daa", $(this).parent().attr('name'));
		$(document).find('#offers-list #offers').append(listItem);
	});
	
	data.find('regional').find('deal').each(function(i){
		var listItem = createListItem($(this), "regional", $(this).parent().attr('name'));
		$(document).find('#offers-list #offers').append(listItem);
	});
	
	data.find('national').find('deal').each(function(i){
		var listItem = createListItem($(this), "national", $(this).parent().attr('name'));
		$(document).find('#offers-list #offers').append(listItem);
	});
	
	hideEmail();
	
	dealerDomain = stripTrailingSlash(dealerDomain);
	
	$('li.vwspecialoffer').each(function(i){
		if($(this).hasClass('pre_loved')){
			$(this).find('a.car-details, a.daa-details').attr('href', "javascript:cb.appendCampaign(\'"+dealerDomain + "/PreOwnedVehicleSearch/\')");
		}else{
			$(this).find('a.car-details, a.daa-details').attr('href', "javascript:cb.appendCampaign(\'"+dealerDomain + "/NewVehicleSearch/\')");
		}
		$(this).find('a.contact-dealer').attr('href', "javascript:cb.appendCampaign(\'"+dealerDomain + "/ContactUsForm/\')");
	});
	
	$('.visit-dealer a, .more-offers a').attr('href', "javascript:cb.appendCampaign(\'"+ dealerDomain + "/NewVehicleSearch/\')");
	
	
	$('#offers-list li').listItemObject();
	$('.filter-box input').each(function(){
		this.checked = false
	});
	
	var dealerZipString = getZipString(zipcode);
	$(document).find('.grey-box h1').html('<span>'+$('#offers-list li.vwspecialoffer').length + ' of ' + $('#offers-list li.vwspecialoffer').length + '</span> Special Offers Found'+dealerZipString);
	
	var $target = $(document).find('#'+offerid);
	if(offerid != null && $target.length){
		
		var targetOffset = $target.offset().top;
		$('html,body').animate({scrollTop:targetOffset}, 0);
		
		$target.find('a.show-details').trigger('click');
		
		offerid = null;
	}
	
	if(offertype != null){
		$('.filter-box input').each(function(){
			if(this.id == 'checkbox-'+offertype){
				if(this.checked != true){
					$('#checkbox-'+offertype).trigger('click');
					itemClicked();
				}
			}else{
				this.checked = false;
			}
		});
	}
	offertype = null;
	
	clearTimeout(imageFadeTimeout);
	imageFadeTimeout = setTimeout(function(){rotateImage()}, 8000);
	
	dealersession.isDealerSession = false;
}


function createListItem(data, type, name){
	var listItem = '';
	var id = data.attr("id");
	var types = parseOfferTypes(data.find('offerTypes'));
	var title = data.find('title').text();
	var subtitle = data.find('subtitle').text();
	var copy = data.find('copy').text();
	var legal = data.find('legal').text();
	var expiresDate = parseExpiresData(data.find('endDate').text());
	var customImage = data.find('customImage').find('name').text();
	var excludes = data.find('exclusions').text();
	var modelArray = parseModels(data.find('car'));
	var modelnamestr = getModelClassString(modelArray, customImage);
	
	
	var leaseOfferBoilerPlate = checkExcludes(excludes);
	
	var imageNamesArray = parseImageNames(modelArray, customImage);
	
	var region = "";
	if(type == "regional"){
		region = "Regional Offer";
	}else if(type == "daa"){
		region = name;	
	}else {
		region = "National Offer";
	}
	if(currentmodel == "vwoffers" || hasCorrectModel(modelArray, currentmodel)){
		if(isOfferValid(expiresDate) && !isDuplicateOffer(id)){
			listItem += '<li id="'+id+'" name="'+id+'" class="vwspecialoffer '+types.toLowerCase()+' '+modelnamestr+'">';
			listItem += '	<div class="offer-images">';
			listItem += '		<ul class="thumbnail">';
		    listItem += '			'+getImageListHTML(imageNamesArray, 'thumb');
			listItem += '		</ul>';
			listItem += '		<ul class="expanded">';
			listItem += '			'+getImageListHTML(imageNamesArray, 'main');
		    listItem += '		</ul>';
			listItem += '	</div>';
			listItem += '	<div class="offer-details">';
			listItem += '		<div>';
			listItem += '			<a class="offer-headline" href="#"><h4>'+title+'</h4></a>';
			listItem += '			<h5>'+subtitle+" "+leaseOfferBoilerPlate+'</h5>';
			listItem += '			<p class="offer-desc">'
			listItem += '				'+copy;
			listItem += '				'+getMoreAboutCopy(modelArray, customImage);
			listItem += '			</p>';
			listItem += '			<p>';
			listItem += '				<span class="offer-region"><b>'+region+'</b></span>';
			listItem += '				<span>|</span>';
			listItem += '				<span class="offer-expires"><b>Offer ends '+getMonthName(parseInt(expiresDate['month']))+' '+parseInt(expiresDate['day'])+', '+expiresDate['year']+'</b></span>';
			listItem += '			</p>';
			listItem += '			<div class="offer-legal">';
			listItem += '				<p>'+legal+'</p>';
			listItem += '			</div>';
			listItem += '			<div class="bottom-buttons">';
			listItem += '				<div class="btns">';
			listItem += '					<p class="detail-btns">';
			if(daasession.isDaaSession){
				listItem += '						<a class="daa-details" href="#" alt="Find at participating dealer">Find at participating dealer</a>';
			}else{
				listItem += '						<a class="car-details" href="#" alt="Find at local dealer">Find at local dealer</a>';
			}
			listItem += '						<a class="contact-dealer" href="/contactadealer/en/us/" alt="Contact a Volkswagen Dealer">CONTACT A VOLKSWAGEN DEALER</a>';
			listItem += '					</p>';
			listItem += '					<p class="utility-btns">';
			listItem += '						<a class="email" href="#">email</a>';
			listItem += '						<a class="print" href="#">print</a>';
			listItem += '					</p>';
			listItem += '				</div>';
			listItem += '				<div class="hide-show">';
			listItem += '					<a class="show-details" href="#"><b>View Offer Details</b></a>';
			listItem += '					<a class="hide-details" href="#"><b>Hide Offer Details</b></a>';
			listItem += '				</div>';
			listItem += '			</div>';
			listItem += '		</div>';
			listItem += '	</div>';
			listItem += '</li>';
			allOfferID.push(id);
		}
	}
	
	return listItem;
}


function parseOfferTypes(types){
	var t = "";
	$(types).find('type').each(function(i){
		t += $(this).text() + " ";
	});
	return t;
}

function checkExcludes(ex){
    var t = "";
    if(ex != "" && ex != undefined && ex != null){
		if(ex.substring(ex.length-1) != "."){
			ex += ".";
		}
		var lower = ex.toLowerCase();
		if(lower.indexOf("excludes") < 0){
			ex = "Excludes "+ex;
		}
		t = "<span class='lease-title'>("+ex+")</span>";
	}
	return t;
}


function parseCarImage(modelshort, trim){
	var m = '';
	switch(modelshort){
		case "jettasportwagen":
			m = 'jsw';
			break;
		case "newbeetle":
			m = 'nb';
			break;
		case "newbeetlecon":
			m = 'nbc';
			break;
		default:
			m = modelshort
			break;
	}
	if(trim != "" && trim != null && trim != undefined){
		m += "-" + trim;
	}
	m += '-vwcom';
	return m;
}

function parseImageNames(modelArray, customImage){
	returnArray = new Array();
	if(customImage == ''){
		for(var i = 0; i < modelArray.length; i++){
			var model = modelArray[i];
			var modelshort = model['shortname'];
			var trim = (model['trim'] == undefined) ? '' : model['trim'];
			var item = new Array();
			var m;
			switch(modelshort){
				case "jettasportwagen":
					m = 'jsw';
					break;
				case "newbeetle":
					m = 'nb';
					break;
				case "newbeetlecon":
					m = 'nbc';
					break;
				default:
					m = modelshort;
					break;
			}
			if(trim != "" && trim != null && trim != undefined){
				m += "-" + trim;
			}
			m += '-vwcom';
		
			item['image'] = m.toLowerCase();
			item['folder'] = model['year'];
			item['alt'] = "Volkswagen "+model['modelname'];
			returnArray.push(item);
		
		}
	}else{
		item = new Array();
		
		var cImage = customImage.toLowerCase();
		item['folder'] = cImage.split("/")[0];
		
		var nameValues = cImage.split("/")[1].split("-");
		var name = '';
		for(var i = 0; i < nameValues.length-1; i++){
			name += nameValues[i];
			if(i < nameValues.length -2){
				name += "-";
			}
		}
		
		item['image'] = name;
		item['alt'] = '';
		returnArray.push(item);
	}
	return returnArray;
}


function getImageListHTML(imagesArray, type){
	var returnString = '';
	var imgPath = '/vwoffers/en/us/assets/images/models/vwcom/';
	var w;
	var h;
	var sizePath;
	if(type == "thumb"){
		w = 151;
		h = 120;
		sizePath = 'thumbnail/';
	}else{
		w = 294;
		h = 217;
		sizePath = 'large/';
	}
	
	for(var i = 0; i < imagesArray.length; i++){
		if(i == 0){
			returnString += '<li class="img-on">';
		}else{
			returnString += '<li class="img-off">';
		}
		returnString += '<a href="#"><img src="'+imgPath+imagesArray[i]['folder']+"/"+sizePath+imagesArray[i]['image']+'-'+type+'.jpg" width="'+w+'" height="'+h+'" alt="'+imagesArray[i]['alt']+'"/></a>';
		returnString += '</li>';
	}
	
	return returnString;
}

function parseModels(modelsArray){
	var returnArray = new Array();
	$(modelsArray).each(function(){
		var item = new Array();
		item['model'] = $(this).find('model').text();
		if($(this).find('trim').text() == undefined || $(this).find('trim').text() == null || $(this).find('trim').text() == '')
			item['trim'] = '';
		else
			item['trim'] = $(this).find('trim').text();
		item['year'] = $(this).find('year').text();
		item['modelname'] = getModelName(item['model']);
		item['shortname'] = getModelShortName(item['modelname']);
		returnArray.push(item);
	})
	return returnArray;
}

function getModelClassString(modelArray, customImage){
	var returnString = '';
    var modelDupCatch = new Array();
	for(var i = 0; i < modelArray.length; i++){
		var model = modelArray[i];
		var isGood = true;
		for(var j = 0; j < modelDupCatch.length; j++){
		    if(model['model'] == modelDupCatch[j]){
		        isGood = false;
		        break;
		    }
		}
		if(isGood){
		    modelDupCatch.push(model['model']);
		    returnString += model['shortname']+' ';
		}
	}
	return returnString;
}

function parseExpiresData(expiresNode){
	var returnArray = new Array();
	expiresSplit = expiresNode.split("-");
	returnArray['year'] = expiresSplit[0];
	var monthSplit = expiresSplit[1].split('');
	if(parseInt(monthSplit[0]) == 0){
		returnArray['month'] = monthSplit[1]
	}else{
		returnArray['month'] = expiresSplit[1];
	}
	var daySplit = expiresSplit[2].split('');
	if(parseInt(daySplit[0]) == 0){
		returnArray['day'] = daySplit[1]
	}else{
		returnArray['day'] = expiresSplit[2];
	}
	return returnArray;
}

function getMoreAboutCopy(modelArray, customImage){
	var returnString = '';
    var modelDupCatch = new Array();
	for(var i = 0; i < modelArray.length; i++){
		var model = modelArray[i];
		var isGood = true;
		for(var j = 0; j < modelDupCatch.length; j++){
		    if(model['model'] == modelDupCatch[j]){
		        isGood = false;
		        break;
		    }
		}
		if(isGood){
		    modelDupCatch.push(model['model']);
		    var link = '/'+model['shortname']+'/en/us/';
		    returnString += '<a href="'+link+'" class="blue-link">More about the '+model['modelname']+'.</a> ';
		}
	}
	return returnString;
}

function hasCorrectModel(modelArray, currentModel){
	
	for(var i = 0; i < modelArray.length; i++){
		var model = modelArray[i];
		if(model['shortname'].toLowerCase() == currentModel){
			return true;
		}
	}
	return false;
}


function isOfferValid(expiresDate){
	var d = new Date();
	var currYear = d.getFullYear();
	var currMonth = d.getMonth() + 1;
	var currDay = d.getDate();
	if(currYear < parseInt(expiresDate['year'])){
		return true;
	}else if(currYear > parseInt(expiresDate['year'])){
		return false;
	}else{
		if(currMonth < parseInt(expiresDate['month'])){
			return true;
		}else if(currMonth > parseInt(expiresDate['month'])){
			return false;
		}else{
			if(currDay <= parseInt(expiresDate['day'])){
				return true;
			}else{
				return false;
			}
		}
	}
}

function isDuplicateOffer(id){
    for(var i = 0; i < allOfferID.length; i++){
        if(allOfferID[i] == id){
            return true;
        }
    }
    return false;
}


function zipcodeSessionHandler() {
	// is there a cookie with the zipcode?
	cookieZip = readCookie('userzip');
	if(cookieZip != null && cookieZip != ""){
		zipcode = readCookie('userzip');
		
		if(dealersession.dealerDomain != null && dealersession.dealerDomain != undefined) {
			dealerDomain = "http://"+dealersession.dealerDomain;
		}
		else {
			$.getDealerDomain(zipcode);
		}
		$.hideLoader();
		$.showLoader();
		$.loadOffers(zipcode);
	}
	else { // if not, display the form
		$('a.location-change').trigger('click');
	}
}

function specialOffersDealerSession(e, obj){
	if(dealersession.isDealerSession && !quitDealerSession){
		if(dealersession.dealerZip != null && dealersession.dealerZip != undefined && dealersession.dealerZip.toString().length == 5 && parseInt(dealersession.dealerZip) != NaN){
			zipcode = dealersession.dealerZip;
			dealerDomain = "http://"+dealersession.dealerDomain;
			initLoad = true;
			$(document).find('.enter-zip-code-model').hide();
			$(document).find('.enter-zip-code').hide();
			$(document).find('.enter-zip-code-model').find('p.error').remove();
			$.loadOffers(dealersession.dealerZip);
			createCookie('userzip', zipcode);
		}
		else {
			zipcodeSessionHandler();
			
		}
	}
}

function specialOffersDaaSession(e, obj){
	if(daasession.isDaaSession){
		$('.visit-dealer h4').addClass('daa');
		$('.more-offers').html('<span>&nbsp;</span><a href="#">More Offers From Participating Dealer</a>');
		$('.car-details').addClass('daa-details').removeClass('.car-details');
		$(document).find('.enter-zip-code-model').show();
		$(document).find('.enter-zip-code').show();
		
		if(zipcode != null && isValidZipCode(zipcode)){
		    $(document).find('.enter-zip-code-model').hide();
			$(document).find('.enter-zip-code').hide();
			$(document).find('.enter-zip-code-model').find('p.error').remove();
			$.getDealerDomain(zipcode);
			createCookie('userzip', zipcode);
		}
		$('.popup-background').show().css('opacity', .8);
		$('.popup-background-model').show().css('opacity', .8);
	}
}

function resetEmailMask(){
	hideEmail();
}


function showEmail() {
    if($.browser.msie){
		var so = new SWFObject("/global/email/swf/email.swf", "emailer", "100%", "100%", "8", "#ffffff");
		so.addVariable("hybridEmail","true");
		so.addParam('allowscriptaccess', 'always');
		so.addParam("wmode", "transparent");	
		so.write("emailDiv");
	}
	
	var scrollObj = getScrollXY();
	document.getElementById("emailMask").style.visibility = "visible";
	document.getElementById("emailMask").style.height = ($(document).height() + 150) + 'px';
	document.getElementById("emailDiv").style.visibility = "visible";
	document.getElementById("emailDiv").style.top = scrollObj[1] + 150 + "px";
	$('#emailDiv').show();
	$('#emailMask').show();
	repositionEmail();
	
	newemailmessage = "placeholder";
	if(isemailready){
		setEmailMessage(newemailmessage);
	}
	
	clearTimeout(imageFadeTimeout);
	
	return false;
}

function hideEmail(test) {
	isemailready = false;
	newemailmessage = null;
	document.getElementById("emailDiv").style.visibility = "hidden";
	$('#emailDiv').hide();
	document.getElementById("emailMask").style.visibility = "hidden";
	document.getElementById("emailMask").style.height = '100px';
	if($.browser.msie){
	    $('#emailDiv').html('');
	}
	clearTimeout(imageFadeTimeout);
	if(test != null)
		imageFadeTimeout = setTimeout(function(){rotateImage()}, 8000);
	
	return false;
}

function setEmailMessage(mssg){
	if(isemailready){
		newemailmessage = null;
		
		var url = 'http://';
		var loc = window.location.href.split("/");
		if(currentmodel == "vwoffers"){
			url += loc[2] + '/' + loc[3] + '/' + loc[4] + '/' + loc[5];
		}else{
			url += loc[2] + '/' + loc[3] + '/' + loc[4] + '/' + loc[5] + '/' + loc[6];
		}
		url += '?zipcode='+zipcode+'&offerid='+deeplinkid;
		
		var message = "I thought you might like to see this on vw.com.\n";
		message += url+"\n";
		message += "If I'm mistaken, please disregard.\n";
		message += "If not, check it out. And pass it on.\n";
		message += "Then thank me for keeping you in the loop by sending me an interesting VW link of your own.\n";
		thisMovie("emailer").replaceEmailMessage(message);
	}else{
	    var url = 'http://';
		var loc = window.location.href.split("/");
		if(currentmodel == "vwoffers"){
			url += loc[2] + '/' + loc[3] + '/' + loc[4] + '/' + loc[5];
		}else{
			url += loc[2] + '/' + loc[3] + '/' + loc[4] + '/' + loc[5] + '/' + loc[6];
		}
		url += '?zipcode='+zipcode+'&offerid='+deeplinkid;
	
	    var message = "I thought you might like to see this on vw.com.\n";
		message += url+"\n";
		message += "If I'm mistaken, please disregard.\n";
		message += "If not, check it out. And pass it on.\n";
		message += "Then thank me for keeping you in the loop by sending me an interesting VW link of your own.\n";
		newemailmessage = message;
		lastemailmessage = message;
		if($.browser.msie){
			try{
				thisMovie("emailer").replaceEmailMessage(message);
			}catch(e){
				//
			}
		}
	}
}


function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}


function getIEEmailMessage(){
	return lastemailmessage;
}


function onEmailReady(){
	isemailready = true;
	if(newemailmessage != null){
		setEmailMessage(newemailmessage);
	}
}

function returnMessage(){
    var mssg = lastemailmessage;
    lastemailmessage = '';
    return mssg;
}


function stripTrailingSlash(str){
	try{
		if(str.substring(str.length-1) == "/"){
			str = str.substring(0, str.length-1);
		}
		return str;
	}catch(e){}
}


function getModelName(modelstr){
	switch(modelstr.toLowerCase()){
		case "eos":
			return "Eos";
		case "cc":
			return "CC";
		case "gli":
			return "GLI";
		case "gti":
			return "GTI";
		case "jetta":
			return "Jetta";
		case "jsw":
		case "jettasportwagen":
		case "jetta sportwagen":
			return "Jetta SportWagen";
		case "nb":
		case "newbeetle":
		case "new beetle":
			return "New Beetle";
		case "nbc":
		case "newbeetlecon":
		case "new beelte con":
		case "newbeetleconvertible":
		case "new beetle convertible":
			return "New Beetle Convertible";
		case "passat":
			return "Passat";
		case "pwagon":
		case "passatwagon":
		case "passat wagon":
			return "Passat Wagon";
		case "rabbit":
			return "Rabbit";
		case "routan":
			return "Routan";
		case "tiguan":
			return "Tiguan";
		case "touareg":
		case "touareg2":
		case "touareg 2":
			return "Touareg 2";
		default:
			return modelstr.toLowerCase();
	}
}

function getModelShortName(modelstr){
	switch(modelstr.toLowerCase()){
		case "eos":
			return "eos";
		case "cc":
			return "cc";
		case "gli":
			return "gli";
		case "gti":
			return "gti";
		case "jetta":
			return "jetta";
		case "jetta sportwagen":
			return "jettasportwagen";
		case "new beetle":
			return "newbeetle";
		case "new beetle convertible":
			return "newbeetlecon";
		case "passat":
			return "passat";
		case "passat wagon":
			return "passatwagon";
		case "rabbit":
			return "rabbit";
		case "routan":
			return "routan";
		case "tiguan":
			return "tiguan";
		case "touareg 2":
			return "touareg";
		default:
			return modelstr.toLowerCase();
	}
}


function getMonthName(num){
	switch(num){
		case 1:
			return "January";
		case 2:
			return "February";
		case 3:
			return "March";
		case 4:
			return "April";
		case 5:
			return "May";
		case 6:
			return "June";
		case 7:
			return "July";
		case 8:
			return "August";
		case 9:
			return "September";
		case 10:
			return "October";
		case 11:
			return "November";
		case 12:
			return "December";
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


function rotateImage(){
	$('#offers ul').each(function(i){
		if($(this).children().length > 1){
		    var currentImageOn = $(this).find('.img-on');
			currentImageOn.removeClass('img-on').addClass('img-off');
		    if(currentImageOn.html() != $(this).find('li:last').html()){
				currentImageOn.next().addClass('img-on').removeClass('img-off');
			}else{
				$(this).find('li:first').addClass('img-on').removeClass('img-off');
			}
		}
	});
	clearTimeout(imageFadeTimeout);
	imageFadeTimeout = setTimeout(function(){rotateImage()}, 8000);
}

function getZipString(zcode){
	var dealerZipString = '';
	if(dealersession.isDealerSession && zcode == dealersession.dealerZip){
		dealerZipString = " for your local dealer.";
	}else if(daasession.isDaaSession){
		dealerZipString = ' at Participating Dealer.';
	}else{
		if(zcode != undefined && zcode != null && zcode != ""){
			dealerZipString = " for " + zcode;
		}
	}
	return dealerZipString;
}
