hld_documentReady("globalGoogleAnalytics");

function globalGoogleAnalytics()
{
	addBottomVehicleLinks();
	addGlobalSearchTracking();
	addVehicleFlyoutTracking();
	
	addGoogleClickEvent(".header > a:first", "Homepage", "Holden Logo", hld_tracking_id);
	
	addGoogleClickEvent("[href$='www.holdencampaign.com.au/newsletter/subscribe.jsp']", "Exit Page", "Subscribe to Holden Updates", "Top Navigation");
	
	addGoogleClickEvent("[href$='www.holdenmotorsport.com/']", "Exit Page", "Holden Motorsport", "");
	
	// Top Navigation
	addGoogleClickEvent(".vehicles", "Vehicle Showroom", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent(".latestOffers", "Latest Offers", "Top Navigation", hld_tracking_id);
	//addGoogleClickEvent(".usedCars", "Exit Page", "Used Cars", "Top Navigation");
	addGoogleClickEvent(".fleet", "Exit Page", "Fleet", "Top Navigation");
	
	// Owners info link
	addGoogleClickEvent(".ownersInfo", "Owners Info", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998107GA", "Owners Info - Warranty Info", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998127GA", "Owners Info - Owners Tips", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220587793492GA", "Owners Info - Kids in Cars", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998111GA", "Exit Page", "Change of Ownership","Top Navigation");
	addGoogleClickEvent("#1220581998123GA", "Owners Info - FAQ","Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998131GA", "Owners Info - Contact Us","Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220590317149GA", "Owners Info - Service and Parts","Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220591553629GA", "Owners Info - Technical Data","Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220618364449GA", "Owners Info - Request a Service","Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998115GA", "Owners Info - Bluetooth","Top Navigation", hld_tracking_id);
	
	// Products and Services
	addGoogleClickEvent(".productsServices", "Products and Services", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998145GA", "Products and Services - Accessories", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998149GA", "Products and Services - Merchandise", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998153GA", "Products and Services - Holden Assist", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998157GA", "Products and Services - Roadside Assistance", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998161GA", "Products and Services - Service and Parts", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220617044070GA", "Products and Services - Request a Service", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998173GA", "Products and Services - GM Holden Card", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220620976320GA", "Products and Services - Holden Insurance", "Top Navigation", hld_tracking_id);
	//addGoogleClickEvent("#1220581998177GA", "Products and Services - Extended Warranty", "Top Navigation", "");
	addGoogleClickEvent("#1220621080324GA", "Products and Services - Extended Factory Warranty", "Top Navigation", hld_tracking_id);
	
	// Holden Innovation
	addGoogleClickEvent(".holdenInnovation", "Holden Innovation", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998183GA", "Holden Innovation - EcoLine", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220618481090GA", "Holden Innovation - Design", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220617083692GA", "Holden Innovation - Safety", "Top Navigation", hld_tracking_id);

	// Holden Innovation
	addGoogleClickEvent(".corporate", "Corporate", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220587743787GA", "Corporate - About Holden", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998241GA", "Corporate - News", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998229GA", "Corporate - Careers", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998225GA", "Corporate - Supplying to Holden", "Top Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998233GA", "Corporate - Contact Us", "Top Navigation", hld_tracking_id);

	// More on Holden.com.au links
	addGoogleClickEvent("#allVehiclesBottomGA", "Vehicle Showroom", "Bottom Navigation", hld_tracking_id);
	addGoogleClickEvent("#commodoreVehiclesBottomGA", "Commodore", "Bottom Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581998283-Bottom-GA", "Help Me Choose", "Bottom Navigation", hld_tracking_id);
	addGoogleClickEvent("#1220581995741-Bottom-GA", "Latest Offers", "Bottom Navigation", hld_tracking_id);
	//addGoogleClickEvent("#1220581995745-Bottom-GA", "Used Cars", "Bottom Navigation", "");
	addGoogleClickEvent("#1220581995749-Bottom-GA", "Fleet", "Bottom Navigation", hld_tracking_id);

	// Holden Innovation links
	addGoogleClickEvent("#1220581998183-Bottom-GA", "EcoLine", "Bottom Navigation", "");
	addGoogleClickEvent("#1220581998187-Bottom-GA", "Volt", "Bottom Navigation", "");
}

function addVehicleFlyoutTracking()
{
	try {
		// track left vehicle names
		$(".vehicledropdown > li > a").unbind();
		$(".vehicledropdown > li > a").click(function()
		{
			var arr = this.href.split("/");
			var car = whiteSpace($(this).html());
			var thisClass = $(this).attr('class');
			if(thisClass.indexOf("externalPopup") > -1)
			{
				showInPopupWindow(this.href);
				if(car.indexOf("Cruze") > -1)
					hld_trackEventClick("Microsite", "Cruze", "Top Navigation");
				return false;
			}else
			{
				hld_trackEventClick(car, "Top Navigation", hld_tracking_id);
				return true;
			}
		});
		
		// Track the images
		$(".carInfo > a").unbind();
		$(".carInfo > a").click(function()
		{
			var arr = this.href.split("/");
			var car = arr[arr.length-1];
			hld_trackEventClick(car, "Vehicle Fly Out Menu", hld_tracking_id);
			var thisClass = $(this).attr('class');
			if(thisClass.indexOf("externalPopup") > -1)
			{
				showInPopupWindow(this.href);
				return false;
			}else
				return true;
		});
		
		// Track the model names
		$(".flyOut > div.carModelList > ul > li > a").unbind();
		$(".flyOut > div.carModelList > ul > li > a").click(function()
		{
			var arr = this.href.split("/");
			var modelName = arr[arr.length-1];
			var vehicleName = arr[arr.length-2];
			modelName = modelName.replace(/-/g, ' ');
			hld_trackEventClick(vehicleName + " " + modelName, "Vehicle Fly Out Menu", hld_tracking_id);
			var thisClass = $(this).attr('class');
			if(thisClass.indexOf("externalPopup") > -1) // This is a special case for the cruze, remove once in CMS
			{
				showInPopupWindow(this.href);
				return false;
			}else
				return true;
		});
		
		// Track the latest offers
		$(".flyOut > div.carInfo > div.flyOutModule > a").unbind();
		$(".flyOut > div.carInfo > div.flyOutModule > a").click(function()
		{
			var arr = this.href.split("/");
			hld_trackEventClick("Latest Offers", "Vehicle Fly Out Menu", arr[arr.length-1]);
			var thisClass = $(this).attr('class');
			if(thisClass.indexOf("externalPopup") > -1) // This is a special case for the cruze, remove once in CMS
			{
				showInPopupWindow(this.href);
				return false;
			}else
				return true;
		});
		
		// Track test drives
		$(".flyOut > div.carInfo > div.flyOutModule > ul > li > a").unbind();
		$(".flyOut > div.carInfo > div.flyOutModule > ul > li > a").click(function()
		{
			var buttonPressed = whiteSpace($(this).html());
			buttonPressed = buttonPressed.replace('<p>','').replace('</p>','');
			if(buttonPressed == 'Test Drive')
				buttonPressed = buttonPressed + " request";
			hld_trackEventClick(buttonPressed, "Vehicle Fly Out Menu", whiteSpace(currentFlyoutVehicle));
			return true;
		});
	} catch (err) {
		return false;
	}
}

var gaVehicleLike = "[id$='-GAVehicle'],[id$='-GAVehicle-bottom']";
function addBottomVehicleLinks()
{
	try {
		$(gaVehicleLike).unbind();
		$(gaVehicleLike).click(function()
		{
			var vehicleName = splitValue(this.id, "-", [0]);
			//alert(vehicleName);
			hld_trackEventClick(vehicleName, "Bottom Navigation", "");
			return true;
		});
	}catch (err){
		return false;
	}
}

function addGlobalSearchTracking()
{
	try {
		$(".siteSearch > .goButton").click(function()
		{
			var value = $(".siteSearch > #searchTerm").attr('value');
			hld_trackEventClick("Search", "Global Search", value);
			return true;
		});
	} catch (err) {
		return false;
	}
}


function addGoogleClickEvent(ident, evCategory, evAction, evLabel)
{
	try {
	$(ident).click(function()
	{
		hld_trackEventClick(evCategory, evAction, evLabel);
		return true;
	});
	} catch (err) {
		return false;
	}
}

function trackExternalLinkClick(url)
{
	if(url == 'http://www.holden.org.au/')
		hld_trackEventClick("Exit Page", "Car Club", "");
	else if(url == 'http://www.holden.carsales.com.au/')
		hld_trackEventClick("Exit Page", "Used Cars", "");
}


function addConfirmGoogleClickEvent(evCategory, evAction, evLabel, externalUrl)
{
	$(ident).unbind();
	$(ident).click(function()
	{
		hld_trackEventClick(evCategory, evAction, evLabel);
		return true;
	});
}

function showInPopupWindow(href)
{
	var params  = 'width='+ (screen.width);
 	params += ', height='+ (screen.height);
 	params += ',menubar=0';
 	params += ',toolbar=0';
 	params += ', top=0, left=0';
 	//params += ', fullscreen=yes';

	window.open(href,"", params);
}

function whiteSpace(value)
{
     value = value.replace(/^\s*|\s*$/g,'');
	 return value;
}

function promotionTracking(area)
{
	// Ecoline Diesel Models
	$(".secondaryContent > a").click(function()
	{
		var promotionUrl = $(this).attr('href');
		hld_trackEventClick("Promo Area", promotionUrl, area);
		return true;
	});
}

hld_documentReady("registerHREFTrackingEvents");
function registerHREFTrackingEvents() {
	 	var filetypes = /\.(pdf)$/;
		var blobheader = /(blobheader=application%2Fpdf)/;
       	var baseHref = "";
	   
       	if (jQuery('base').attr('href') != undefined) {
            baseHref = jQuery('base').attr('href');
		}
			
        jQuery('a').each(function() {
           	var href = jQuery(this).attr('href');
           	
			if (href && (href.match(filetypes) || href.match(blobheader))) {
               	jQuery(this).click(function() {
                   	var filePath = href;
					var filename = "";
                   	
                   	if (href.match(filetypes)) {
                   		var url = filePath;
	                   	//this removes the anchor at the end, if there is one
	                   	url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#"));
	                   	//this removes the query after the file name, if there is one
	                   	url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?"));
	                   	//this removes everything before the last slash in the path
	                   	filename = url.substring(url.lastIndexOf("/") + 1, url.length);
                   	} else if (href.match(blobheader)) {
                   		filename = jQuery(this).html();
                   	}
                   	pageTracker._trackEvent("DOWNLOAD-PDF", filename, document.location);
                   	
                   	if (jQuery(this).attr('target') != undefined && jQuery(this).attr('target').toLowerCase() != '_blank') {
                       	setTimeout(function() { location.href = baseHref + href; }, 200);
                       	return false;
                   	}
               	});
           	}
			
        });
	
}

