$(function(){
	main.identifyVehicle();
	
	$('.share-and-download .tabs li a').click(function() {
		var cta = $(this).text();
		tracking.event.activate('trackingevent', {EventClass:  "ColoursDemos", Action: "Download", Section: "Download & Share", Vehicle: VEHICLE_ABBR, CTA: cta});
	});
	$('.addthis_toolbox .addthis_button_facebook').click(function() {
		var cta = 'Facebook';
		tracking.event.activate('trackingevent', {EventClass:  "ColoursDemos", Action: "Download", Section: "Download & Share", Vehicle: VEHICLE_ABBR, CTA: cta});
	});
	$('.addthis_toolbox .addthis_button_myspace').click(function() {
		var cta = 'My Space';
		tracking.event.activate('trackingevent', {EventClass:  "ColoursDemos", Action: "Download", Section: "Download & Share", Vehicle: VEHICLE_ABBR, CTA: cta});
	});

	video.elementSearch();
	
	main.activateApplicability();
	main.activateAccordionList();
	main.activateServiceCentreModule();
});

var VEHICLE_ID = '';
var VEHICLE_CODE = '';
var VEHICLE_TRACK_EBROCH_LINK = '';
var VEHICLE_ABBR = '';
var PAGE_NAME = '';
var PAGE_ABBR = '';
		
var main = {
	identifyVehicle: function(){
		var oBody = $('body');
		
		/*BASE VEHICLE INFORMATION*/
		if (oBody.attr('id') == 'vehicles') {
			if(oBody.hasClass('avensis')){
				VEHICLE_ID = '2';
				VEHICLE_CODE = 'avensis';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'avensis';
			}else if(oBody.hasClass('camry')){
				VEHICLE_ID = '3';
				VEHICLE_CODE = 'camry';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'camry';
			}else if(oBody.hasClass('corolla')){
				VEHICLE_ID = '4';
				VEHICLE_CODE = 'corolla';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'corolla';
			}else if(oBody.hasClass('tarago')){
				VEHICLE_ID = '6';
				VEHICLE_CODE = 'tarago';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'tarago';
			}else if(oBody.hasClass('coaster')){
				VEHICLE_ID = '7';
				VEHICLE_CODE = 'coaster';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'coaster';
			}else if(oBody.hasClass('hiace')){
				VEHICLE_ID = '9';
				VEHICLE_CODE = 'hiace';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'hiace';
			}else if(oBody.hasClass('hilux')){
				VEHICLE_ID = '10';
				VEHICLE_CODE = 'hilux';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'hilux';
			}else if(oBody.hasClass('landcruiser-70-series')){
				VEHICLE_ID = '11';
				VEHICLE_CODE = 'landcruiser-70-series';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'LC70';
			}else if(oBody.hasClass('kluger')){
				VEHICLE_ID = '16';
				VEHICLE_CODE = 'kluger';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'kluger';
			}else if(oBody.hasClass('prado')){
				VEHICLE_ID = '18';
				VEHICLE_CODE = 'prado';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'prado';
			}else if(oBody.hasClass('rav4')){
				VEHICLE_ID = '19';
				VEHICLE_CODE = 'rav4';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'rav4';
			}else if(oBody.hasClass('rukus')){
				VEHICLE_ID = '36';
				VEHICLE_CODE = 'rukus';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'rukus';				
			}else if(oBody.hasClass('prius')){
				VEHICLE_ID = '20';
				VEHICLE_CODE = 'prius';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'prius';
			}else if(oBody.hasClass('yaris')){
				VEHICLE_ID = '27';
				VEHICLE_CODE = 'yaris';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'yaris';
			}else if(oBody.hasClass('aurion')){
				VEHICLE_ID = '28';
				VEHICLE_CODE = 'aurion';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'aurion';
			}else if(oBody.hasClass('landcruiser-200')){
				VEHICLE_ID = '33';
				VEHICLE_CODE = 'landcruiser-200';
				VEHICLE_TRACK_EBROCH_LINK = 'true'; 
				VEHICLE_ABBR = 'lc200';
			}else if(oBody.hasClass('camry-hybrid-camry')){
				VEHICLE_ID = '34';
				VEHICLE_CODE = 'camry-hybrid-camry';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'hybridCamry';
			}else if(oBody.hasClass('corolla-sedan')){
				VEHICLE_ID = '35';
				VEHICLE_CODE = 'corolla';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'corolla';
			}else if(oBody.hasClass('fj-cruiser')){
				VEHICLE_ID = '37';
				VEHICLE_CODE = 'fj-cruiser';
				VEHICLE_TRACK_EBROCH_LINK = 'true';
				VEHICLE_ABBR = 'FJCruiser';
			}
		}
		
		/*BASE PAGE TYPE INFORMATION*/
		if (oBody.attr('id') == 'vehicles') {
			if(oBody.hasClass('homepage')){
				PAGE_NAME = 'homepage';
				PAGE_ABBR = 'HP';
			}else if(oBody.hasClass('range')){
				PAGE_NAME = 'range';
				PAGE_ABBR = 'Range';
			}else if(oBody.hasClass('specifications')){
				PAGE_NAME = 'specifications';
				PAGE_ABBR = 'Specifications';
			}else if(oBody.hasClass('compare-grades')){
				PAGE_NAME = 'compare-grades';
				PAGE_ABBR = 'CompareGrades';
			}else if(oBody.hasClass('features')){
				PAGE_NAME = 'features';
				PAGE_ABBR = 'Features';
			}else if(oBody.hasClass('colours')){
				PAGE_NAME = 'colours';
				PAGE_ABBR = 'Colours';
			}else if(oBody.hasClass('accessories')){
				PAGE_NAME = 'accessories';
				PAGE_ABBR = 'Accessories';
			}else if(oBody.hasClass('prices')){
				PAGE_NAME = 'prices';
				PAGE_ABBR = 'Prices';
			}else if(oBody.hasClass('special-offers')){
				PAGE_NAME = 'special-offers';
				PAGE_ABBR = 'SpecialOffers';
			}else if(oBody.hasClass('media-gallery')){
				PAGE_NAME = 'gallery';
				PAGE_ABBR = 'Gallery';
			}else if(oBody.hasClass('ebrochure')){
				PAGE_NAME = 'ebrochure';
				PAGE_ABBR = 'Ebro';
			}
		}
		
		if(VEHICLE_ID != ''){
			main.changeCtaLinks(VEHICLE_ID, VEHICLE_CODE, VEHICLE_TRACK_EBROCH_LINK, VEHICLE_ABBR);
		}

	},
	changeCtaLinks: function(sVehicleId, sVehicleCode, bVehicleTrackEbrochLink, sVehicleAbbr){
		/*CTA LINK UPDATES*/
		if($('#main .module-ebrochure a.more-link')[0] != null){
			var ebrochureLocation = $('#main .module-ebrochure a.more-link').attr('href');
			if(bVehicleTrackEbrochLink == 'true') {
				if(ebrochureLocation.indexOf('/ebrochure?') > -1){
					$('#main .module-ebrochure a.more-link').attr('href','/'+sVehicleCode+ebrochureLocation+'&WT.ebro_submit=1&VehicleConversionID='+sVehicleAbbr+'&');
				}else{
					$('#main .module-ebrochure a.more-link').attr('href',ebrochureLocation+'&WT.ebro_submit=1&VehicleConversionID='+sVehicleAbbr+'&');
				}
			} else {
				if(ebrochureLocation.indexOf('/ebrochure?') > -1){
					$('#main .module-ebrochure a.more-link').attr('href','/'+sVehicleCode+'/ebrochure?');
				}else{
					$('#main .module-ebrochure a.more-link').attr('href',ebrochureLocation+'?');
				}			
			}
		}
		
		if ($('#main .module-dealer-enquiry a.more-link')[0] != null) {
			var dealerEnquiryLocation = $('#main .module-dealer-enquiry a.more-link').attr('href');
			$('#main .module-dealer-enquiry a.more-link').attr('href', dealerEnquiryLocation + '&vehicle-id=' + sVehicleId);
		}
		if ($('#main .module-book-a-test-drive a.more-link')[0] != null) {
			var bookATestDriveLocation = $('#main .module-book-a-test-drive a.more-link').attr('href');
			$('#main .module-book-a-test-drive a.more-link').attr('href', bookATestDriveLocation + '&vehicle-id=' + sVehicleId);
		}
		
		if(bVehicleTrackEbrochLink == 'true') {
			$('#footer .module-ebrochure a.more-link').attr('href','/'+sVehicleCode+'/ebrochure?WT.ebro_submit=1&VehicleConversionID='+sVehicleAbbr+'&');
		} else {
			$('#footer .module-ebrochure a.more-link').attr('href','/'+sVehicleCode+'/ebrochure?');
		}
		$('#footer .module-dealer-enquiry a.more-link').attr('href','/dealer-enquiry?vehicle-id='+sVehicleId);
		$('#footer .module-book-a-test-drive a.more-link').attr('href','/book-a-test-drive?vehicle-id='+sVehicleId);
		
		/*TRACKING - WT.AC TAGGING*/
		/*CTAs*/
		/*FOOTER TRACKING*/
		var footerEbroHref = $('#footer .module-ebrochure a.more-link').attr('href');
		var footerDEHref = $('#footer .module-dealer-enquiry a.more-link').attr('href');
		var footerBATDHref = $('#footer .module-book-a-test-drive a.more-link').attr('href');
		$('#footer .module-ebrochure a.more-link').attr('href', footerEbroHref + 'WT.ac=VHFooterIconebro');
		$('#footer .module-dealer-enquiry a.more-link').attr('href', footerDEHref + '&WT.ac=VHFooterIconDE');
		$('#footer .module-book-a-test-drive a.more-link').attr('href', footerBATDHref + '&WT.ac=VHFooterIconBATD');
		
		/*RIGHT HAND SIDE TRACKING*/
		var RHSEbroHref = $('#sidebar-b .module-ebrochure a.more-link').attr('href');
		var RHSDEHref = $('#sidebar-b .module-dealer-enquiry a.more-link').attr('href');
		var RHSBATDHref = $('#sidebar-b .module-book-a-test-drive a.more-link').attr('href');
		$('#sidebar-b .module-ebrochure a.more-link').attr('href', RHSEbroHref + 'WT.ac=VH_'+sVehicleAbbr+PAGE_ABBR+'_RHS_ebro');
		$('#sidebar-b .module-dealer-enquiry a.more-link').attr('href', RHSDEHref + '&WT.ac=VH_'+sVehicleAbbr+PAGE_ABBR+'_RHS_DE');
		$('#sidebar-b .module-book-a-test-drive a.more-link').attr('href', RHSBATDHref + '&WT.ac=VH_'+sVehicleAbbr+PAGE_ABBR+'_RHS_BATD');
		
		/*HOMEPAGE TRACKING*/
		var HPEbroHref = $('.homepage #section-b .module-ebrochure a.more-link').attr('href');
		var HPDEHref = $('.homepage #section-b .module-dealer-enquiry a.more-link').attr('href');
		var HPBATDHref = $('.homepage #section-b .module-book-a-test-drive a.more-link').attr('href');
		$('.homepage #section-b .module-ebrochure a.more-link').attr('href', HPEbroHref + 'WT.ac=VH_'+sVehicleAbbr+PAGE_ABBR+'_RHS_ebro');
		$('.homepage #section-b .module-dealer-enquiry a.more-link').attr('href', HPDEHref + '&WT.ac=VH_'+sVehicleAbbr+PAGE_ABBR+'_RHS_DE');
		$('.homepage #section-b .module-book-a-test-drive a.more-link').attr('href', HPBATDHref + '&WT.ac=VH_'+sVehicleAbbr+PAGE_ABBR+'_RHS_BATD');
		
		/*RANGE LEFT HAND SIDE TRACKING*/
		var RLHSEbroHref = $('.compare-grades .side-controls .module-ebrochure a.more-link').attr('href');
		var RLHSDEHref = $('.compare-grades .side-controls .module-dealer-enquiry a.more-link').attr('href');
		var RLHSBATDHref = $('.compare-grades .side-controls .module-book-a-test-drive a.more-link').attr('href');
		var PARAM_VEHICLES = getURLVariable('vehicleId');
		PARAM_VEHICLES = PARAM_VEHICLES.replace(/,/g, '_')
		$('.compare-grades .side-controls .module-ebrochure a.more-link').attr('href', RLHSEbroHref + 'WT.ac=GCT_'+VEHICLE_ID+'_'+PARAM_VEHICLES+'_ebro');
		$('.compare-grades .side-controls .module-dealer-enquiry a.more-link').attr('href', RLHSDEHref + '&WT.ac=GCT_'+VEHICLE_ID+'_'+PARAM_VEHICLES+'_DE');
		$('.compare-grades .side-controls .module-book-a-test-drive a.more-link').attr('href', RLHSBATDHref + '&WT.ac=GCT_'+VEHICLE_ID+'_'+PARAM_VEHICLES+'_BATD');

		/*SPECIFICATIONS TRACKING*/
		var SpecLHSEbroHref = $('.specifications #sidebar-a .module-ebrochure a.more-link').attr('href');
		var SpecLHSDEHref = $('.specifications #sidebar-a .module-dealer-enquiry a.more-link').attr('href');
		var SpecLHSBATDHref = $('.specifications #sidebar-a .module-book-a-test-drive a.more-link').attr('href');
		$('.specifications #sidebar-a .module-ebrochure a.more-link').attr('href', SpecLHSEbroHref + 'WT.ac=VH_'+sVehicleAbbr+'_RangeSpecs_Specspage_LHS_ebro');
		$('.specifications #sidebar-a .module-dealer-enquiry a.more-link').attr('href', SpecLHSDEHref + '&WT.ac=VH_'+sVehicleAbbr+'_RangeSpecs_Specspage_LHS_DE');
		$('.specifications #sidebar-a .module-book-a-test-drive a.more-link').attr('href', SpecLHSBATDHref + '&WT.ac=VH_'+sVehicleAbbr+'_RangeSpecs_Specspage_LHS_BATD');
		
		/*FINANCE*/
		/*PRICING TRACKING*/
		var pricingFinanceModuleMedia = $('.prices .module-finance .media a').attr('href');
		var pricingFinanceModuleLink = $('.prices .module-finance a.more-link').attr('href');
		$('.prices .module-finance .media a').attr('href', pricingFinanceModuleMedia+'&WT.ac=VH_'+sVehicleAbbr+'_PrcingFinance');
		$('.prices .module-finance a.more-link').attr('href', pricingFinanceModuleLink+'&WT.ac=VH_'+sVehicleAbbr+'_PricingFianance_FindoutMore');

		/*TSA*/
		/*FEATURES TRACKING*/
		var pricingFinanceModuleMedia = $('.features .module-service-advantage .media a').attr('href');
		var pricingFinanceModuleLink = $('.features .module-service-advantage a.more-link').attr('href');
		$('.features .module-service-advantage .media a').attr('href', pricingFinanceModuleMedia+'&WT.ac=VH_'+sVehicleAbbr+'_Features_TSA');
		$('.features .module-service-advantage a.more-link').attr('href', pricingFinanceModuleLink+'&WT.ac=VH_'+sVehicleAbbr+'_Features_TSA_FindoutMore');
		
	},
	activateApplicability: function(){
		var sAction = 'not specified';
		
		function showBlock(oBlock){
			oBlock.find('.opened a').click(function(){
				hideBlock(oBlock);
				return false;
			});

			/*tracking*/
			var sItemHeader = $('.viewer:visible .figure-box h3').text();
			//tracking.event.activate('trackingevent', {EventClass: "Accessories", Action: sAction, Vehicle: vehicle, Item: sItemHeader});
			
			oBlock.find('.opened').show().click(function(){
				return false;
			});
			$('body').click(function(){
				hideBlock(oBlock);
				return false;
			});
		}
		
		function hideBlock(oBlock){
			oBlock.find('.opened a').unbind('click');
			oBlock.find('.opened').hide().unbind('click');
			$('body').unbind('click');
		}	
		
		$('.applicability .closed a').live('click', function() {
			sAction = 'Applicability';
			showBlock($(this).parents('.applicability'));
			return false;
		});
	},
	activateAccordionList: function() {
		$('.accordion-list li').each(function(i,n) {
			$(n).find('dt').click(function() {
				if($(n).hasClass('expanded')) {
					$(n).find('dd').hide();
					$(n).addClass('collapsed');
					$(n).removeClass('expanded');
					main.adjustSEOSEMLinkLocation();
				} else {
					$(n).find('dd').show();
					$(n).addClass('expanded');
					$(n).removeClass('collapsed');
					main.adjustSEOSEMLinkLocation();
					var sTrackingTitle = $(n).find('dt').attr('rel');
					//dcsMultiTrack('WT.ac', sTrackingTitle, 'WT.cg_n', '', 'WT.cg_s', '');			
				}
			});
		});
		
		$('.accordion-list li:first dt').click();
	},
	adjustSEOSEMLinkLocation: function() {
		jQuery.each(jQuery.browser, function(i, val) {
			if(i == "msie" && jQuery.browser.version.substr(0,3) == "6.0") {
				topPosition = $('#page-container').height() - 30;
				$('.seo-page-title h1').css({'position':'relative'});
				$('.seo-page-title h1').css({'position':'absolute', 'top':topPosition+'px'});
			}
		});
	},
	activateServiceCentreModule: function() {
		function serviceCentreSearchShowLoadError(obj, msg) {
			$('#service-centre').find('#userInfo .location').parent().find('.error-message').remove();
			$('#service-centre').find('#userInfo .location').append('<div class="error-message" style="font-size: 11px; margin-bottom: 5px;">'+msg+'</div>');
		}

		function serviceCentreSearchHideLoadError(obj) {
			$('#service-centre').find('#userInfo .location').parent().find('.error-message').remove();
		}
		
		$('#service-centre-search #userInfoLocation').autocomplete({
			source: function( request, response ) {
				serviceCentreSearchHideLoadError('#userInfoLocation');
				$.ajax({
					url: '/service/autocomplete/suburbPostcode/'+request.term+'.json',
					dataType: 'json',
					type: 'GET',
					success: function( data ) {
						if (data.valid == false) {
							serviceCentreSearchShowLoadError('#userInfoLocation', data.error.message);
						}
						else {
							response( $.map( data.data, function( item, index ) {
								return {
									label: item.suburb + ', ' + item.postcode + ' ' + item.state,
									value: item.postcode + '/' + encodeURI(item.suburb),
									suburb: item.suburb,
									postcode: item.postcode,
									xcoord: item.xcoord,
									ycoord: item.ycoord
								}
							}));
						}
					},
					error: function() {
						serviceCentreSearchShowLoadError('#userInfoLocation', 'List could not be loaded');
					}
				});
			},
			minLength: 3,
			select: function( event, ui ) {
				if(ui.item.label != 'error') {
					$('#service-centre-search #userInfoLocation').val( ui.item.label );
					$('#service-centre').find('form#service-centre-search input[name="suburb"]').val(ui.item.suburb);
					$('#service-centre').find('form#service-centre-search input[name="postcode"]').val(ui.item.postcode);
					$('#service-centre').find('form#service-centre-search input[name="xcoord"]').val(ui.item.xcoord);
					$('#service-centre').find('form#service-centre-search input[name="ycoord"]').val(ui.item.ycoord);
					$('#service-centre-search input#serviceCentreSubmit').removeAttr('disabled');
				} else {
					$('#service-centre-search #userInfoLocation').val( ui.item.value );
				}
				return false;
			},
			focus: function( event, ui ) {
				$('#service-centre-search #userInfoLocation').val( ui.item.label );
				return false;
			}
		});
		
		var UserDetailsLocationValue = 'eg. 2000 or Sydney';
		$('#service-centre').find('form#service-centre-search input[name="userInfoLocation"]').focus(function() {
			currentUserDetailsLocationValue = $(this).val();
			serviceCentreSearchHideLoadError('#userInfoLocation');
			if ($(this).val() == 'Postcode / suburb' || $(this).val() == UserDetailsLocationValue)
				$(this).val('');
		})
		.blur(function() {
			if ($(this).val() == '')
				$(this).val(currentUserDetailsLocationValue);
			serviceCentreSearchHideLoadError('#userInfoLocation');
		});
		
		$('#service-centre #service-centre-search #serviceCentreSubmit').click(function() {
			if($(this).attr('disabled') != 'true') {
				hh_WT.trackEvent({'WT.ac':'Toyota_PASM_Service_FindAServiceCentreEnterPostCode'}, false);
			}
		});
	}
}
