// on load
if (top.location != location) { top.location.href = document.location.href; }
YUS('MY10PromosTemp').set("#my10_promoData", { display : "none" });
YUS('MY10PromosTemp').set("#MY10_Promos", { position : "relative" });

// Globals
var oldHash = "start"; // store old hash value
var checkEspot; // interval that watches for changes in hash
var oldEspotCustomOrEmail;
var linkArray = [];	

var promosHtmlDC = [ 
	// dark custom
	'<a name="dark_custom" href="/wcm/Content/Pages/Dark_Custom/dark_custom.jsp?locale=en_US"><img src="/en_US/Media/images/eSpots/2010_Motorcycles/pro_darkcustom_noexcuses.jpg"></a>',
	// learn to ride   
	'<a name="pro_promo1_notLicensed" href="/wcm/Content/Pages/Get_On_A_Bike/Learn_To_Ride/learn_to_ride.jsp?locale=en_US"><img src="/en_US/Media/images/eSpots/2010_Motorcycles/pro_promo1_notLicensed_espot_test.jpg" /></a>',			
	// email
	'<a name="emailsignup_first" href="https://profile.harley-davidson.com/cpapp/profile/emailSignupPage.h-d?req_uri=http://www.harley-davidson.com/en_US/Content/Pages/2010_Motorcycles/2010_Motorcycles.html&ret_uri=http://www.harley-davidson.com/wcm/il/init_session.h-d&locale=en_US"><img src="/en_US/Media/images/eSpots/2010_Motorcycles/pro_emailsignup_findoutfirst.jpg"></a>',
	// fit shop
	'<a name="fit_shop" href="/wcm/Content/Pages/Genuine_Motor_Accessories/fitshop.jsp?locale=en_US"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_fs_en_US.jpg"></a>', 
	// mcm
	'<a name="pro_mcm" href="/mcm/mcm_main.jsp?locale=en_US&bmLocale=en_US"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_mcm_en_US.jpg"></a>', 
	// ride true
	'<a name="pro_ridetrue" href="/wcm/Content/Pages/Ride_True/Ride_True.jsp?locale=en_US"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_ridetrue_en_US.jpg"></a>' 
];

var promosHtmlStandard = [ 
	// learn to ride   
	'<a name="pro_promo1_notLicensed" href="/wcm/Content/Pages/Get_On_A_Bike/Learn_To_Ride/learn_to_ride.jsp?locale=en_US"><img src="/en_US/Media/images/eSpots/2010_Motorcycles/pro_promo1_notLicensed_espot_test.jpg" /></a>',			
	// email
	'<a name="emailsignup_first"href="https://profile.harley-davidson.com/cpapp/profile/emailSignupPage.h-d?req_uri=http://www.harley-davidson.com/en_US/Content/Pages/2010_Motorcycles/2010_Motorcycles.html&ret_uri=http://www.harley-davidson.com/wcm/il/init_session.h-d&locale=en_US"><img src="/en_US/Media/images/eSpots/2010_Motorcycles/pro_emailsignup_findoutfirst.jpg"></a>',
	// fit shop
	'<a name="fit_shop" href="/wcm/Content/Pages/Genuine_Motor_Accessories/fitshop.jsp?locale=en_US&hbx_camp_id=hdredirect&urlvar=fitshop&camp_id=16&source_cd=Vanity_fitshop"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_fs_en_US.jpg"></a>', 
	// mcm
	'<a name="pro_mcm" href="/mcm/mcm_main.jsp?locale=en_US&bmLocale=en_US"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_mcm_en_US.jpg"></a>', 
	// ride true
	'<a name="pro_ridetrue" href="/wcm/Content/Pages/Ride_True/Ride_True.jsp?locale=en_US"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_ridetrue_en_US.jpg"></a>' 
];

var promosHtmlDreamHarley = [ 
	// schedule a test ride
	'<a name="test_ride" href="https://www.harley-davidson.com/en_US/Content/Pages/Try_a_Bike/Test_Ride_a_Bike.html?locale=en_US"><img src="/en_US/Media/images/eSpots/2010_Motorcycles/pro_test_ride.jpg"></a>', 		
	// fit shop
	'<a name="fit_shop" href="/wcm/Content/Pages/Genuine_Motor_Accessories/fitshop.jsp?locale=en_US&hbx_camp_id=hdredirect&urlvar=fitshop&camp_id=16&source_cd=Vanity_fitshop"><img src="/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_fs_en_US.jpg"></a>'
];

function getEspot()
{

	// are you on the My Dream Harley page? 
	var MDH_hash = location.hash.split("/")[1];
	if(MDH_hash == "mydreamharley") {
		var isMDH = true;
	} else {
		var isMDH = false;
	}
	
	// grab bike model from url 
	bikeModel = location.hash.split("/")[2];

	// do XHR for each and store promos	
	var isUS = /en_US/i.test(location.href);
	
	
	if(isUS)
	{
		
		// add for flash

	var name =  (location.hash.split("/").length >= 2) ? location.hash.split("/")[2].toUpperCase() : "";
	var isDC = /DY|SP|SO|FXDB|FXDL|FLSTSB|XL1200X|XL883N|XL1200N/i.test(name);  


		
	var promos = (isDC) ?  promosHtmlDC : ((isMDH) ? promosHtmlDreamHarley : promosHtmlStandard);
	var cPromoIds = 1;
		
		// clear promo div and add new
		var elOut = document.getElementById("my10_promoData");
		elOut.innerHTML = "";


		for(var i=0, len=promos.length; i<len; i++) //
		{		
			var elNew = document.createElement("div");			
			elNew.innerHTML = promos[i];	
			elNew.className = "bottomPromoLeft bottomPromoShell hdPromo";
			elNew.id = "eSpot_2010PromoSlot" + cPromoIds;
			elOut.appendChild(elNew);
			cPromoIds++;
		}	
		

		
		// non flash, just show my10_promoData images
		if(swfobject.getFlashPlayerVersion().major == 0)
		{
			// main condition
			document.getElementById("my10_promoData").style.display = "block";									
		}
		// flash, get data out of promo div for
		else 
		{
			// create array and overwrite event
			linkArray = [];
			elsLinks = document.getElementById("my10_promoData").getElementsByTagName("a");
			for (var i = 0; i < elsLinks.length; i++) {
				linkArray[i] = {
					
					name: elsLinks[i].name,
					href: elsLinks[i].href,
					onclick: null,
					target: null
				}
				elsLinks[i].href = "event:"+i;
			} 
			var isFlashObject = window.document["my10PromosFlash"];
			if(!isFlashObject)
			{
				
				// add an object to replace with flash
				var elNew = document.createElement("div");
				elNew.id = "my10PromosFlash";
				document.getElementById("disclaimer").parentNode.insertBefore(elNew, document.getElementById("disclaimer"));
				 
				 // do the replace
				 var flashvars = { promoContainerID: 'my10_promoData' };
				 var params = { wmode: 'opaque', bgcolor: '#333333', allowscriptaccess: "always" };
				 var attributes = { id: 'my10PromosFlash', name: 'my10PromosFlash'};
				 swfobject.embedSWF('/en_US/Media/flash/2010_Motorcycles/MY10_Promos_espot_test.swf', "my10PromosFlash",
						 '817', '100', '9.0.115.0', '', flashvars, params, attributes, MY10.embedPromosCallback);
			}
			else
			{
				// the flash object is there, just update
				window.document["my10PromosFlash"].update();
			}			
							
		}
			
		
	} 
	else 
	{	    
	    // stop if no promos div
	    var elPromos = document.getElementById("my10_promos");
	    //if(!elPromos) return false;
			
		// get locale from querystring or path name    	    
	    var locale;
	    if(MY10.util.getRequestParam("locale") != null)
	    	locale = MY10.util.getRequestParam("locale");
	    else
	    	locale = location.pathname.split(/\//)[1];
		
		// en_CA has a different url
		var isEN_CA = (locale == "en_CA");	    	
	    if (isEN_CA) { 
			var href = "/gma/gma_main.jsp?locale=en_CA&bmLocale=en_CA";		
			var src = "/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_gma_" + locale + ".jpg";		
			var promos1 = '<a href="' + href + '"><img src="' + src + '"></a>';
	
			var href = "/mcm/mcm_main.jsp?locale=en_CA&bmLocale=en_CA";		
			var src = "/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_mcm_" + locale + ".jpg";		
			var promos2 = '<a href="' + href + '"><img src="' + src + '"></a>';
	
			var promos = promos1 + promos2;			
		} else {
			var isGMA = !/es_MX|da_DK|no_NO/i.test(locale); 
		    // images are available for (16): de_CH, de_DE, en_AU, en_GB, en_US, es_XX, es_ES, es_MX, fr_BE, fr_CA, fr_CH, fr_FR, it_CH, it_IT, nl_BE
		    // all else are en_XX
		    var isImageAvailable = /de_CH|de_DE|en_AU|en_GB|en_US|es_XX|es_ES|es_MX|fr_BE|fr_CA|fr_CH|fr_FR|it_CH|it_IT|nl_BE/i.test(MY10.util.getRequestParam("locale"));
		    locale = (isImageAvailable) ? locale : "en_XX";		    
		    if(isGMA)
		    {
				var href = "/wcm/Content/Pages/Genuine_Motor_Accessories/genuine_motor_accessories.jsp?locale=" + locale + "&bmLocale=" + locale;		
				var src = "/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_gma_" + locale + ".jpg";		
				var promos1 = '<a href="' + href + '"><img src="' + src + '"></a>';
		
				var href = "/wcm/Content/Pages/MotorClothes_Merchandise/motorclothes.jsp?locale=" + locale + "&bmLocale=" + locale;		
				var src = "/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_mcm_" + locale + ".jpg";		
				var promos2 = '<a href="' + href + '"><img src="' + src + '"></a>';
		
				var promos = promos1 + promos2;
		    }
		    else
		    {
				var localeFirst = locale.split("_")[0].toUpperCase();		
				var href = "/DE/LOC/" + localeFirst + "/DealerLocator.asp?bmLocale=" + locale; 
				var src = "/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_dealer_en_XX.jpg";		
				var promos1 = '<a href="' + href + '"><img src="' + src + '"></a>';
		
				var href = "/" + locale + "/Motorcycles/compare-bikes.html?&bmLocale=" + locale;		
				var src = "/en_US/Media/images/Apps/2010_Motorcycles/promos/pro_compare_en_XX.jpg";		
				var promos2 = '<a href="' + href + '"><img src="' + src + '"></a>';
		
				var promos = promos1 + promos2;
		    }			
		}

	    // create the promos
	    elPromos.innerHTML = promos;
	    elPromos.style.display = "block";
	}
}



function startCheckEspot()
{	
	checkEspot = setInterval(function()
	{
		if(location.hash != oldHash || oldHash == "start")
		{
			// choose type of promos
			oldHash = location.hash;
			getEspot();					
		} else {
			return false;			
		}
	}, 250)	
}


YAHOO.util.Event.onDOMReady(function(){  
	startCheckEspot(); 
	if(typeof MY10.initMy10 != "undefined") MY10.initMy10();
	// WCS.util.ESpot.display is called near embed	
});





/**
	 * This method will determine whether a market selector is needed or not
	 * and in turn display the appropiate content/flash
	 * for use in next-gen delivered pages
	 * 
	 * @method initMy10	  
	 * @return none 
	 */
MY10.initMy10 = function() {	
	
	if(/\.jsp?/i.test(location.href))
		return false;
	// get the locale param		
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE,MY10.app.handleStateChange);

	if(MY10.util.getRequestParam("locale")){						
		// check if it is valid locale if not set to en_US					
		if (localeHash[MY10.util.getRequestParam("locale").toLowerCase()]) {
			locale = MY10.util.getRequestParam("locale").toLowerCase();
		}
		else {
			locale = "en_us";
		}
	}			
	else{
		locale = "en_us";	
	}	
	
	// set location parameters
	language = locale.substring(0,2);
	if(language == "da" || language == "no" || language == "pt"){
		language = "en";
	}
	market = locale.substring(3,5);	// will get reset if in marketSelector locale					

	// check if the locale needs a market selector
	var displayMarketSelector = MY10.isDisplayMarketSelector(locale);
	
	// check if there is a compare deep link if so set true
	isCompareDeepLink = MY10.util.getRequestParam("compare");
	
	// check if there is a estimate payment deep link if so set true
	isEstPayDeepLink = MY10.util.getRequestParam("estPay");			
	
	//check for dwp page variable and set pricing var in flash true if regex for msrp tests out
	if(typeof dwp == "undefined" || !dwp){
		dwp = false;
		dwp_active = false;
		dwp_price = false; // set hide flag to show = yes
	}

	if(dwp){
		dwp_active = true;
		dwp_price = false;
		flaDwpShowPrice = false;
	}
	
	if(/msrp/gi.test(dwp)){
		dwp_price = true;
		flaDwpShowPrice = true;
	}
	//end dwp param set
	
	// if the locale needs a market selector display it, if not display the flash
	if(displayMarketSelector){
		var cookieValue = MY10.getMarketCookie();	
		
		if (cookieValue) {
			// remove temp styles added earlier.
			YAHOO.util.StyleSheet('MY10Temp').unset("#" + my10Container, 'display');
			//document.getElementById("my10_container").style.display = "block";
			market = MY10.getMarketCookie(); // reset market
			market_type = marketTypeHash[market];
			pricing_file_ext = pricingHash[market];				
			MY10.initFlash(my10Container, locale);								
		}
		else {				
			// make AJAX request to get the market selector data file
			var marketSelectorFileName = "/en_US/Media/data/Apps/2010_Motorcycles/utility/marketSelector_" + locale + ".webxml";		
			YUC.asyncRequest('GET', marketSelectorFileName, getMarketSelectorDataCallback);						
		}	
		
	}
	else {	
		// set global params
		market_type = marketTypeHash[market];
		pricing_file_ext = pricingHash[market];					
		
		// check if we should open the compare bike section			
		if (isCompareDeepLink) {
			MY10.openCompareSpecs("");
		}
		else 
			if (isEstPayDeepLink && (locale == "en_us")) {
				MY10.openEstimatePayments();
			}
			else {
				// init the flash		
				initView();
			}
		// remove the temp stylesheet
		YAHOO.util.StyleSheet('MY10Temp').unset("#" + my10Container, 'display');
	}
};


