/*
Title:      Main Javascript
Author:     Martin Cayouette, merlin.cayouette@nurun.com
Updated:    March 8 2008

Content:	
			Model Selector
			Showroom : Tool Tip
			Hyperlink Events Tracking
			Package Key Features
			Package Accessories
			Package Video and Pictures
			OwnerCenter/Generic Page : Apache Track System Video
			Flash Header
			Flash Home promo Box
			Flash PAC
			Flash Repository
			Pac Product Photo			
			Expand
			Other Products
			QueryUrl			
			Generic Popup Window
			Menu
			
			Send to Friend pop up
			Main Navigation for IE/Win
			Call the Sub Nav Alignment(News or Showroom)
			Specs : Open Advanced Details

*/
window.BRP = window.BRP || {};

var SelectedSiteMapNodes = "";

BRP = {
	// Main function call (page init)
	Init : function() {	

		document.body.className += " hasJS";
		
		if(typeof MCMSConsoleInit == "function") {
			AdvancedHTMLToolsLoad = false;
			MCMSConsoleInit();
			}
		if(typeof initAdvancedHTMLTools == "function") 
		{
			if (AdvancedHTMLToolsLoad)	initAdvancedHTMLTools();		
		}
	}
		
};

YAHOO.util.Event.addListener(window, "load", BRP.Init, BRP, true);

// ------[ Home - Find a dealer button and textField ]--------------------------------------------- //

BRP.FindADealer = {
	
	TextBoxInstance : null,
	ButtonInstance : null,
	Culture : null,
	
	HookEvents: function(culture,textBoxId, buttonId)
	{
		this.TextBoxInstance = document.getElementById(textBoxId);
		this.ButtonInstance = document.getElementById(buttonId);
		this.Culture = culture;
		YAHOO.util.Event.on(this.ButtonInstance,'click',this.ButtonPressed);
		YAHOO.util.Event.on(this.TextBoxInstance,'keypress',this.LocationKeyPressed);
		YAHOO.util.Event.on(this.TextBoxInstance,'focus',this.Focused);
	},
	
	LocationKeyPressed: function(e, params)
	{
		e = e || event;
		
		if((e.keyCode === 13))
		{
			YAHOO.util.Event.preventDefault(e);
            BRP.FindADealer.OpenFindADealerPopup();
		}
	},
	
	ButtonPressed: function(e, params)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
        BRP.FindADealer.OpenFindADealerPopup();
	},
	
	OpenFindADealerPopup: function()
	{
		popWin('http://www.brp.com/' + BRP.FindADealer.Culture + '/Dealer.Locator/ATV?location='+escape(BRP.FindADealer.TextBoxInstance.value),850,615,1,0);
		trackPageview('conversions/Findadealer'+document.location.pathname);
	}
};

// ------[ Model Selector ]--------------------------------------------- //

BRP.ModelSelector = {
	FiltersContainerId : "",
	ModelsContainerId : "",
	
	Create: function(modelContainerId,filterContainerId)
	{
		this.ModelsContainerId = modelContainerId;
		this.FiltersContainerId = filterContainerId;
		YAHOO.util.Event.on(this.FiltersContainerId,'click',this.FilterClicked);
	},
	
	FilterClicked: function(e, params)
	{
		var elTarget = YAHOO.util.Event.getTarget(e);
		var optionClicked = false;
		
		while(elTarget.id != this.FiltersContainerId)
		{
			if(elTarget.nodeName.toUpperCase() == "INPUT")
			{
				optionClicked = true;
				break;
			}
			else
			{
				elTarget = elTarget.parentNode;
			}
		}
		
		if (optionClicked)
		{
			BRP.ModelSelector.RefreshModels();
		}
	},
	
	RefreshModels: function()
	{
		var inclusionArray = new Array();
		
		var filterCategories = YAHOO.util.Dom.getElementsByClassName('filterCategory',null,this.FiltersContainerId);
		var filterCategoriesLength = filterCategories.length;
		for(var i=0;i<filterCategoriesLength;i++)
		{
			var finalCategoryInclusion = "";
			var filters = YAHOO.util.Dom.getElementsByClassName('filter',null,filterCategories[i]);
			var filtersLength = filters.length;
			for(var j=0;j<filtersLength;j++)
			{
				if (filters[j].checked)
				{
					finalCategoryInclusion += filters[j].value + ";";
				}
			} 
			inclusionArray.push(finalCategoryInclusion);
		}

		//set visibility to elements accordingly
		var modelElements = YAHOO.util.Dom.getElementsByClassName("models-atv",null,this.ModelsContainerId);
		var modelElementsLength = modelElements.length;		
		var inclusionArrayLenth = inclusionArray.length;
		
		for(var k=0;k<modelElementsLength;k++)
		{
			var modelElementId = modelElements[k].id;
			//console.log("modelElementId = " + modelElementId);
			var modelIsVisible = true;
			
			for(var l=0;l<inclusionArrayLenth;l++)
			{
				if (inclusionArray[l].indexOf(modelElementId + ";") == -1)
				{
					modelIsVisible = false;
				}
			}
			
			if (modelIsVisible)
			{
				 YAHOO.util.Dom.removeClass(modelElementId,"models-off");
				 YAHOO.util.Dom.addClass(modelElementId,"models-on");				 
			}
			else
			{
				 YAHOO.util.Dom.removeClass(modelElementId,"models-on");
				 YAHOO.util.Dom.addClass(modelElementId,"models-off");
			}
		}
	}
};
// ------[ Showroom : Tool Tip ]--------------------------------------------- //
BRP.ModelToolTip = {
	
	Create: function(modelContainerId, toolContainerId)
	{
		//Show only the Main Div Element
		YAHOO.util.Dom.setStyle("models-tooltip", "display", "block")
				
		this.ModelsContainerId = modelContainerId;
		this.ToolContainerId = toolContainerId;
		BRP.ModelToolTip.ActionModelsHover(this.ModelsContainerId,this.ToolContainerId);
	},
	
	ActionModelsHover: function(elAllModels, elModelsAtv)
	{
		var containerModels = YAHOO.util.Dom.get(elAllModels);
		var modelsAtvElement = elModelsAtv;
		
		if(containerModels && modelsAtvElement) {
			/* aArray == All a Element */
			var aArray = containerModels.getElementsByTagName('a');	
			var aCount = aArray.length;			
			/* toolArray == Parent Element */
			var toolArray = YAHOO.util.Dom.getElementsByClassName(modelsAtvElement,null,containerModels);	
			
			for (i=0; i < aCount; i++) {
				//Create all "ATV Info Tool" ID				
				var toolId = toolArray[i].id+"Info";
				
				//Hide all ATV Info Tool
				//YAHOO.util.Dom.setStyle(toolId, "display", "none");
				
				//Moves "tool tip" element to the xy position of "a" element				
				var xPosition = YAHOO.util.Dom.getX(aArray[i]);
				var yPosition = YAHOO.util.Dom.getY(aArray[i]);
				
				var aElementWidth = aArray[i].offsetWidth;				
				
				//round = Arrondit à l'entier le plus proche la valeur donnée.
				var maxWidth = Math.round((107 - aElementWidth) / 2);
				
				//floor = Retourne le plus grand entier inférieur ou égal à la valeur donnée en paramètre.
				xPosition = Math.floor(xPosition + aElementWidth + maxWidth);
				yPosition = Math.floor(yPosition - 45);
				
				//Set the "tool tip" element position
				YAHOO.util.Dom.setX(toolId, xPosition);
				YAHOO.util.Dom.setY(toolId, yPosition);
				
				//Create Fade in Tool element
				BRP.ModelToolTip.ATVID =  
					new YAHOO.widget.Overlay(toolId,
						{
						visible: false,
						zIndex: 6,
						effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}
						}
				);
				
				/*				
					Call Action on Element
				*/
				YAHOO.util.Event.addListener(toolArray[i], "mouseover", BRP.ModelToolTip.ATVID.show, BRP.ModelToolTip.ATVID, true);
				YAHOO.util.Event.addListener(toolArray[i], "mouseout", function () {
					var container = toolArray[i];
					return function (e) {
						e = e || event;
						relatedTarget = YAHOO.util.Event.getRelatedTarget(e);
						if (typeof relatedTarget === "undefined") {/*If Outside ViewPort*/
							this.hide();
						} else {
							/*Look if we are inside the Parent Element*/
							var isInside = YAHOO.util.Dom.getAncestorBy(relatedTarget, function (el) {
									if (el.id === container.id) {
										return true;
									}
									return false;
							});
							if (!isInside) {
								this.hide();
							}
						}
					}
				}(), BRP.ModelToolTip.ATVID, true);
				
				
				//Create href on Parent DIV element (ex: id="out800")
				var alinks = function(e, params) {					
					var url = params.links || event;
					YAHOO.util.Event.preventDefault(e);					
					//Check to see if we clicked on an DIV element					
					//console.log("params.caller.tagName = " + params.caller.tagName);
					if (params.caller && params.caller.tagName && (params.caller.tagName.toLowerCase() == 'div')) {				
						window.location = url;
					}
				}
				YAHOO.util.Event.addListener(toolArray[i], 'click', alinks, {caller:toolArray[i], links:aArray[i]});
				
			}
		}
	}
};

// ------[ Footer Events ]--------------------------------------------- //

BRP.FooterLinks = {

	HookDealerLocatorLink: function(linkId, culture)
	{
		YAHOO.util.Event.on(linkId,'click',this.OpenFindADealerPopup,culture);
	},
	
	OpenFindADealerPopup: function(e, param)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		popWin('http://www.brp.com/' + param + '/Dealer.Locator/ATV',850,615,1,0);
		trackPageview('conversions/Findadealer'+document.location.pathname);
	}
};

// ------[ Hyperlink Events Tracking ]--------------------------------------------- //

BRP.HyperlinkEventsTracking = {

	AddOnClickEvent: function(containerId, culture)
	{
		this.Culture = culture;
	
		var allLinks= YAHOO.util.Dom.getElementsBy(function(){return true;},'A');
		var allLinksLength = allLinks.length;
		
		for(var i=0;i<allLinksLength;i++)
		{
			if ( (allLinks[i].id).toLowerCase() != "" )
			{
				switch ( (allLinks[i].id).toLowerCase() )
				{
		
					case "lnkoperatorsguide":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/outgoing/operatorsguide.brp.com'+document.location.pathname);
						break;
					case "lnkdigg":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/socialweb/digg'+document.location.pathname);
						break;
					case "lnkfacebook":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/socialweb/facebook'+document.location.pathname);
						break;
					case "lnkstumbleupon":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/socialweb/stumble'+document.location.pathname);
						break;
					case "lnkdelicious":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/socialweb/delicious'+document.location.pathname);
						break;
					case "lnkpartnerbrp":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/outgoing/Partners.brp.com'+document.location.pathname);
						break;
					case "lnkbestbrochurepdf":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,document.location.pathname+'/events/'+(allLinks[i].href).substring(allLinks[i].href.lastIndexOf('/')+1),9999);
						break;					
					case "lnkbestbrochurefloridapdf":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,document.location.pathname+'/events/'+(allLinks[i].href).substring(allLinks[i].href.lastIndexOf('/')+1),9999);
						break;	
					case "lnkepc":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,'events/outgoing/epc.brp.com'+document.location.pathname);
						break;
					case "footermodelsdetails_hlfinddealer":
						YAHOO.util.Event.on(allLinks[i],'click',this.FindDealer, allLinks[i]  );						
						break;					
					case "toolslist_hlfindadealer":
						YAHOO.util.Event.on(allLinks[i],'click',this.FindDealer, allLinks[i]  );						
						break;
					case "hlfindadealer":
						YAHOO.util.Event.on(allLinks[i],'click',this.FindDealer, allLinks[i]  );						
						break;
					case "hlfinddealerwithlocation":
						YAHOO.util.Event.on(allLinks[i],'click',this.FindDealer, allLinks[i]  );
						break;
					case "hlfinddealer":
						YAHOO.util.Event.on(allLinks[i],'click',this.FindDealer, allLinks[i]  );
						break;
					case "hlapachetrackpdf":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,document.location.pathname+'/events/'+(allLinks[i].href).substring(allLinks[i].href.lastIndexOf('/')+1),9999);
						break;
					case "hlapachetrackvideo":
						YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,document.location.pathname+'/events/'+(allLinks[i].href).substring(allLinks[i].href.lastIndexOf('/')+1),9999);
						break;
					/*case "lnktakethetour":
						allLinks[i].href = allLinks[i].href + "?utm_source=models&utm_medium=promobutton&utm_content=takethetour&utm_campaign=onsitepromo_tour";
						break;*/
					case "lnkspecialoffer":
						allLinks[i].href = allLinks[i].href + "?utm_source=models&utm_medium=promobutton&utm_content=SpecialOffer&utm_campaign=onsitepromo_specialoffer";
						break;	
					/*case "lnktechnologies":
						allLinks[i].href = allLinks[i].href + "?utm_source=models&utm_medium=promobutton&utm_content=technologie&utm_campaign=onsitepromo_technologies";
						break;	*/
					case "lnkkeyfeatures":
						if ( allLinks[i].innerText != "" && allLinks[i].innerText != null && typeof (allLinks[i].innerText)!="undefined" )
							YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,document.location.pathname + '/events/'+allLinks[i].innerHTML);
						break;
					case "lnkfacts":
						if ( allLinks[i].innerText != "" && allLinks[i].innerText != null && typeof (allLinks[i].innerText)!="undefined" )
							YAHOO.util.Event.on(allLinks[i],'click',this.TrackPageEvent,document.location.pathname + '/events/'+allLinks[i].innerHTML);
						break;
					default:
						break;
				}		
				}
		}
	},

	TrackPageEvent: function(e, params)
	{	
		trackPageview(params);
	},
	
	FindDealer: function(e, params)
	{
		trackPageview('conversions/Findadealer'+document.location.pathname);
	}
};

// ------[ Package Key Features ]--------------------------------------------- //

BRP.PackageKeyFeatures = {
	
	TheMovieName: null,
	LinkContainer: null,
	LastSelected: null,
	
	HookFlashEvents: function(containerId,className, movieName)
	{
		this.LinkContainer = containerId;
		this.TheMovieName = movieName;
	
		var allLinks= YAHOO.util.Dom.getElementsByClassName(className,"LI",containerId);
		var allLinksLength = allLinks.length;
		
		for(var i=0;i<allLinksLength;i++)
		{
			YAHOO.util.Event.on(allLinks[i],'click',this.ShowInHeader,allLinks[i].id);
		}
	},
	
	GetMovie: function()
	{
		return document.getElementById(BRP.PackageKeyFeatures.TheMovieName);
	},
	
	ShowInHeader: function(e, params)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		var elTarget = YAHOO.util.Event.getTarget(e);
		if (BRP.PackageKeyFeatures.LastSelected)
		{
			if (YAHOO.util.Dom.hasClass(BRP.PackageKeyFeatures.LastSelected,"select"))
			{
				YAHOO.util.Dom.removeClass(BRP.PackageKeyFeatures.LastSelected,"select")
			}
		}
		
		BRP.PackageKeyFeatures.LastSelected = elTarget;
		YAHOO.util.Dom.addClass(elTarget,"select");
		
		var featureId = params;
		BRP.PackageKeyFeatures.GetMovie().getItemByID(featureId);
		window.scrollTo(0,0);
		
		trackPageview(document.location.pathname+'/events/'+elTarget.innerText);
	},
	
	SelectCurrentFeature: function(key)
	{
		//console.log(BRP.PackageKeyFeatures.LinkContainer.getElementById(key));
		var elTarget =  document.getElementById(key);
		elTarget = YAHOO.util.Dom.getFirstChild(elTarget);
		
		//var elTarget = YAHOO.util.Event.getTarget(e);
		if (BRP.PackageKeyFeatures.LastSelected)
		{
			if (YAHOO.util.Dom.hasClass(BRP.PackageKeyFeatures.LastSelected,"select"))
			{
				YAHOO.util.Dom.removeClass(BRP.PackageKeyFeatures.LastSelected,"select")
			}
		}
		//console.log(elTarget);
		BRP.PackageKeyFeatures.LastSelected = elTarget;
		YAHOO.util.Dom.addClass(elTarget,"select");
		
		window.scrollTo(0,0);
		
		trackPageview(document.location.pathname+'/events/'+elTarget.innerText);
	}
};

// ------[ Package Accessories ]--------------------------------------------- //
/*
BRP.PackageAccessories = {
	
	ReplaceHrefWithPopups: function(containerId,className)
	{
		var allLinks= YAHOO.util.Dom.getElementsByClassName(className,"A",containerId);
		var allLinksLength = allLinks.length;
		
		for(var i=0;i<allLinksLength;i++)
		{
			YAHOO.util.Event.on(allLinks[i],'click',this.PopupPac);
		}
	},
	
	PopupPac: function(e, params)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		var elTarget = YAHOO.util.Event.getTarget(e);
		var url = elTarget.href;
		var myOptions = 'width=1000,height=660,status=no,toolbar=no,menubar=0,location=no,scrollbars=no,resizable=yes';
		window.open(url,'PAC',myOptions);
	}
	
};
*/
// ------[ Package Video and Pictures ]--------------------------------------------- //

BRP.PackageVideoPictures = {
	
	TheMovieName: null,
	LinkContainer: null,
	
	HookFlashEvents: function(containerId,className, movieName)
	{
		this.LinkContainer = containerId;
		this.TheMovieName = movieName;
	
		var allLinks= YAHOO.util.Dom.getElementsByClassName(className,"A",containerId);
		var allLinksLength = allLinks.length;
		
		for(var i=0;i<allLinksLength;i++)
		{
			YAHOO.util.Event.on(allLinks[i],'click',this.ShowInHeader,allLinks[i].id);
		}
	},
	
	GetMovie: function()
	{
		return document.getElementById(BRP.PackageVideoPictures.TheMovieName);
	},
	
	ShowInHeader: function(e, params)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		
		var mediaId = params;
		BRP.PackageVideoPictures.GetMovie().getItemByID(mediaId);
	}
};
// ------[ Can-Am XTeam Gallery ]--------------------------------------------- //

BRP.CanamXTeamGallery = {
	
	TheMovieName: null,
	LinkContainer: null,
	LastSelected: null,
	
	HookFlashEvents: function(containerId,className, movieName)
	{
		this.LinkContainer = containerId;
		this.TheMovieName = movieName;
	
		var allLinks= YAHOO.util.Dom.getElementsByClassName(className,"DIV",containerId);
		var allLinksLength = allLinks.length;
		
		for(var i=0;i<allLinksLength;i++)
		{
			YAHOO.util.Event.on(allLinks[i],'click',this.ShowInHeader,allLinks[i].id);
		}
	},
	
	GetMovie: function()
	{
		return document.getElementById(BRP.CanamXTeamGallery.TheMovieName);
	},
	
	ShowInHeader: function(e, params)
	{
		
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		
		var elTarget = YAHOO.util.Event.getTarget(e);
		while(elTarget.tagName != "DIV")
		{
			elTarget = elTarget.parentNode;
		}
		
		if (BRP.CanamXTeamGallery.LastSelected)
		{
			if (YAHOO.util.Dom.hasClass(BRP.CanamXTeamGallery.LastSelected,"selected"))
			{
				YAHOO.util.Dom.removeClass(BRP.CanamXTeamGallery.LastSelected,"selected")
			}
		}
		
		BRP.CanamXTeamGallery.LastSelected = elTarget;
		YAHOO.util.Dom.addClass(elTarget,"selected");
		
		var mediaId = params;
		BRP.CanamXTeamGallery.GetMovie().getItemByID(mediaId);
		window.scrollTo(0,0);
	}
};
// ------[ OwnerCenter/Generic Page : Apache Track System Video ]--------------------------------------------- //

BRP.ApacheVideo = {
	
	TheMovieName: null,
	LinkContainer: null,
	
	HookFlashEvents: function(containerId,className, movieName)
	{
		this.LinkContainer = containerId;
		this.TheMovieName = movieName;
	
		var allLinks= YAHOO.util.Dom.getElementsByClassName(className,"A",containerId);
		var allLinksLength = allLinks.length;		
		
		for(var i=0;i<allLinksLength;i++)
		{	
			YAHOO.util.Event.on(allLinks[i],'click',this.ShowInHeader,"video");
		}
	},
	
	GetMovie: function()
	{
		return document.getElementById(BRP.ApacheVideo.TheMovieName);
	},
	
	ShowInHeader: function(e, params)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		
		var mediaId = params;
		BRP.ApacheVideo.GetMovie().getItemByID(mediaId);
	}
};
// ------[ Flash Header ]--------------------------------------------- //

BRP.FlashHeader = {
	Create: function(applicationPath, flashPath, flashHeight,headerSwf,showVideoValue, gatewayUrl,gatewayNamespace,cultureIdValue,catalogNameValue,categoryIdValue,productIdValue,modelIdValue,packageIdValue,postingPathValue,resourcePathValue,videoSuperSize,CanAmlogoVisibility)
	{		
		var flashvars = {
			labelsPath: applicationPath + "/_Static/" + cultureIdValue + "/Flash/labels.xml",
			swfHeader: headerSwf,
			flashPath: applicationPath + "/_Static/neutral/flash/",
			baseGatewayUrl: gatewayUrl,
			nameSpace:gatewayNamespace,
			cultureId: cultureIdValue,
			catalogName: catalogNameValue,
			categoryId: categoryIdValue,
			productId: productIdValue,
			modelId: modelIdValue,
			packageId: packageIdValue,
			postingPath: postingPathValue,
			resourcePath: resourcePathValue,
			showLogo: true,
			showVideo : showVideoValue,
			superSize : videoSuperSize,
			logoVisibility : CanAmlogoVisibility
		};
		var params = {
			wmode: "transparent",
			quality: "high",
			allowFullScreen: "true"
		};
		var attributes = {
			id: "flashHeader",
			name: "flashHeader"
		};

		swfobject.embedSWF(applicationPath + "/_Static/neutral/flash/" + flashPath, "flashHeader", "950", flashHeight, "9.0.28",applicationPath + "/_Static/neutral/flash/expressInstall.swf", flashvars, params, attributes);
		
		var flashDetection = document.getElementById("get-flash");		
		if(flashDetection){
			YAHOO.util.Dom.setStyle(detection, "display", "block");
		}
	}
};

// ------[ Flash Home promo Box ]------------------------------------------------- //

BRP.FlashScroller = {
	Create: function(applicationPath,gatewayUrl,gatewayNamespace,cultureIdValue,postingPathValue,resourcePathValue)
	{
		var flashvars = {
			labelsPath: applicationPath + "/_Static/" + cultureIdValue + "/Flash/labels.xml",
			swfHeader: "homeSideScroller.swf",
			flashPath: applicationPath + "/_Static/neutral/flash/",
			baseGatewayUrl: gatewayUrl,
			nameSpace:gatewayNamespace,
			cultureId: cultureIdValue,
			postingPath: postingPathValue,
			resourcePath: resourcePathValue,
			showLogo: false,
			showVideo: false
		};
		var params = {
			wmode: "transparent",
			quality: "high",
			allowFullScreen: "true"
		};
		var attributes = {
			id: "scroller-box",
			name: "scroller-box"
		};

		swfobject.embedSWF(applicationPath + "/_Static/neutral/flash/mainloader.swf", "scroller-box", "950", "120", "9.0.28",applicationPath + "/_Static/neutral/flash/expressInstall.swf", flashvars, params, attributes);
		
	}
};

// ------[Flash PAC]--------------------------------------------- //

BRP.PacFlash = {
	Create: function(applicationPath,cultureIdValue, gatewayUrl,cmsRootPath,gatewayNamespace,userId, framePath,queryString,frameSize)
	{
		var flashvars = {
			NonSecureSiteUrl: applicationPath,
			CultureID: cultureIdValue,
			baseGatewayUrl: gatewayUrl,
			baseUrl: cmsRootPath,
			nameSpace:gatewayNamespace,
			connectionGuid: userId,
			siteName: "atv",
			LabelPath: applicationPath + "/_Static/" + cultureIdValue + "/Flash/labels_PAC.xml"
		};
		var params = {
			wmode: "transparent",
			quality: "high",
			scale: "noscale"
		};
		var attributes = {
			id: "MainFlash",
			name: "MainFlash"
		};
		
		if (window == window.top && window.name != 'printPop')
		{
			var repositoryFrameDiv = document.getElementById('repositoryFrameContainer');
			repositoryFrameDiv.innerHTML = "<iframe id='RepositoryFrame' name='RepositoryFrame' src='" + framePath + "?" + queryString + "' width='" + frameSize + "' height='" + frameSize + "' frameborder='0' scrolling='auto'></iframe>"
			swfobject.embedSWF(applicationPath + "/_Static/neutral/flash/master.swf", "MainFlash", "940", "600", "8.0.0",applicationPath + "/_Static/neutral/flash/expressInstall.swf", flashvars, params, attributes);
			//document.getElementById("mainFlash").style.margin = "-40px 0 0 0";
		}
		if (window.name == 'printPop')
		{
			window.print();
		}
	}
};

// ------[Flash Repository]--------------------------------------------- //
BRP.FlashRepository = {
	Create: function(applicationPath,repositorySwfPath,screenId,flashGuid, queryString)
	{
		var flashvars = {};
		var params = {};
		var attributes = {
			id: "repository",
			name: "repository"
		};
		
		if (window.name == 'RepositoryFrame')
		{
			swfobject.embedSWF(applicationPath + repositorySwfPath + "?screen=" + screenId + "&connectionGuid=" + flashGuid + "&" + queryString, "repository", "100", "30", "8.0.0",applicationPath + "/_Static/neutral/flash/expressInstall.swf", flashvars, params, attributes);
		}
	}
};

//-----------[Pac Product Photo] ----------------------//
BRP.PacProductPhoto = {

	ResizeWindow: function(width,height)
	{
		window.resizeTo(width,height);
	}
};

// ------[ Expand ]------------------------------------------------- //	
BRP.Expand = function(el) {
	if (el) {
		this.Root = el;
		YAHOO.util.Event.addListener(window, "load", this.Init, this, true);
	}
};

BRP.Expand.prototype = {
	
	Root : null,

	Init : function() {
		div = document.getElementById(this.Root);
		if(div) {
			dl = div.getElementsByTagName("dl");	

			for (var j=0; j<dl.length; j++) {
				var dt = dl[j].getElementsByTagName('dt');
				dt[0].dl = dl[j];
				dl[j].className += ' closed';
				dt[0].onclick = function() { 
					state = (this.dl.className.indexOf("opened") != -1 ) ? false : true;
					if(state) {
						this.dl.className = this.dl.className.replace('closed','opened');
					} else {
						this.dl.className = this.dl.className.replace('opened','closed');
					}
				};
			}
		}	
	}
};

// ------[ Other Products ]------------------------------------------------- //	
BRP.OtherProducts = {
	IsShow : false,
	Timer : null,
	DivElement : null,
	strCrossContentHref : null,
	strCrossContentPage : null,
	
	Init : function() {		
		this.DivElement = document.getElementById("other-brp-products");
		if(this.DivElement) {
			this.DivElement.onmouseover = this.Show;
			this.DivElement.onmouseout = this.Hide;
			}
		//Keep the div "other-brp-products" open in the cross-content web page
			strCrossContentHref = window.location.href;
			strCrossContentPage = strCrossContentHref.indexOf("cross-content.htm");			
			if(strCrossContentPage >= 0) {
				BRP.OtherProducts.DivElement.style.display = "block";
			}
		},
	
	Show : function() {
		clearTimeout(BRP.OtherProducts.Timer);
		BRP.OtherProducts.Timer = false;
		BRP.OtherProducts.DivElement.style.display = "block";
		BRP.OtherProducts.IsShow = true;
		window.scrollTo(0,10000000);		
		},
		
	Hide : function() {
			if(strCrossContentPage <= 0) { 
				//console.log("Function Hide strCrossContentPage = " + strCrossContentPage);
				BRP.OtherProducts.Timer = setTimeout('BRP.OtherProducts.HideTimer()',500);
			}
		},

	HideTimer : function() {
		BRP.OtherProducts.Timer = false;
		BRP.OtherProducts.DivElement.style.display = "none";
		BRP.OtherProducts.IsShow = false;			
		},
	
	Display : function() {
		if(this.DivElement) {
			if(!this.IsShow) {
				this.Show();
				//this.Timer = setTimeout('BRP.OtherProducts.HideTimer()',1500);
				}
			else this.Hide();
			}
		}
};
YAHOO.util.Event.addListener(window, "load", BRP.OtherProducts.Init, BRP.OtherProducts, true);

BRP.Cookie = {

	Load: function (id) {
		var search = id + "=";  
		var cookie = null;
		if (document.cookie.length > 0) { 					// if there are any cookies      
			offset = document.cookie.indexOf(search);       
			if (offset != -1) { 							// if cookie exists          
				offset += search.length; 					// set index of beginning of value         
				end = document.cookie.indexOf(";", offset);	// set index of end of cookie value         
				if (end == -1) end = document.cookie.length;
				cookie = unescape(document.cookie.substring(offset, end));   
				}    
			}	
		return cookie;	
	},

	Save: function (id, data, session) {
		if(session) {
			var now = new Date();
			var expires = now.getTime() + 365 * 24 * 60 * 60 * 1000;
			var expires = new Date(expires);
			session = "; expires=" + expires.toGMTString();
		} else session = "";

		document.cookie = id + "=" + escape(data) + session + "; path=/";
	}			


};


// ------[ QueryUrl ]---------------------------------- //
BRP.QueryUrl = {
	
	Search : function(q) {
		if(q.length > 1) this.q = q.substring(1, q.length);
		else this.q = null;
		this.keyValuePairs = new Array();
		
		if(q) {
			for(var i=0; i < this.q.split("&").length; i++) {
				this.keyValuePairs[i] = this.q.split("&")[i];
				}
			}
		
		this.getKeyValuePairs = function() { return this.keyValuePairs; }
		this.getValue = function(s) {
			for(var j=0; j < this.keyValuePairs.length; j++) {
				if(this.keyValuePairs[j].split("=")[0] == s) return this.keyValuePairs[j].split("=")[1];
				}
			return;
			}
		
		this.getParameters = function() {
			var a = new Array(this.getLength());
			for(var j=0; j < this.keyValuePairs.length; j++) {
				a[j] = this.keyValuePairs[j].split("=")[0];
				}
			return a;
			}
		
		this.getLength = function() { return this.keyValuePairs.length; }		
		},
	
	Get : function(key) {
		var page = new this.Search(window.location.search);
		return unescape(page.getValue(key));		
		}
};

// ------[ Generic Popup Window ]------------------------------------------------- //
function popWin(url,w,h,scroll,tools,name,center) {
	var str = "height=" + h + ",innerHeight=" + h;
	str += ",width=" + w + ",innerWidth=" + w;
	if(!center) center = true;
	if(!scroll) scroll = 0;
	if(!tools) tools = 0;
	if(!name) name = "pop";

	if((window.screen) && (center)) {
		var ah = screen.availHeight - 30;
		var aw = screen.availWidth - 10;

		var xc = (aw - w) / 2;
		var yc = (ah - h) / 2;

		str += ",left=" + xc + ",screenX=" + xc;
		str += ",top=" + yc + ",screenY=" + yc;
		}
	window.name = "main";
	pop = window.open(url,name,'toolbar=' + tools + ',location=0,directories=0,status=0,menubar=0,scrollbars=' + scroll + ',resizable=0,' + str).focus();
	}

// ------[ Menu ]------------------------------------------------- //
YAHOO.util.Event.onContentReady("main-nav", function () {  

	/**
	* Initialize the Menu
	* Ul Navigation: Display 'block' to show nav after Loading
	*/

	function MenuInit(){
		var UlNavObject = document.getElementById("main-nav-container");
		YAHOO.util.Dom.setStyle(UlNavObject, "display", "block");				
	};
	
	MenuInit();
	
});//YAHOO.util.Event.onContentReady("main-nav", function ()

// ------[ Send to Friend pop up ]------------------------------------------------- //

/**
 * Base namespace setup
 */
var ATV = {
    globals: {
		labels: {}
	},
    pages: {
        all: {},
        home: {}, //Slide show banner image
        news: {}, //Call the Sub Nav Alignment
        specs: {} //Open Advanced Details
        
    },
    widgets: {}
}

/**
 * Init for all pages
 */
ATV.pages.all.init = function () {
      
	/**
	* Initialize Send to a Friend Pop up page
	*/
	ATV.globals.sendEmail = new YAHOO.widget.Panel(
		"sendtofriend",
		{ 
			width: "600px",
			height: "315px",
			constraintoviewport: true,  
			underlay:"shadow",  
			close:true,  
			visible:false,  
			fixedcenter: true,  
			draggable:false,
			zIndex: 5,
			modal: true //Window bkg
		}
	);
	//Render the panel for screen
	ATV.globals.sendEmail.render(document.body);
 
	//Create an array with all anchor with the classname "sendfriend"
     var el = YAHOO.util.Dom.getElementsByClassName('sendfriend','a');

     for (var i=0; el[i]; i++) {
		el[i].onclick = function() {
			var pnl = ATV.globals.sendEmail;
			pnl.setBody("<iframe width='600' marginwidth='0' marginheight='0' scrolling='no' frameborder='0' height='315' src='" + this.href + "'></iframe>");
			pnl.render();
			pnl.show();
	        return false;
			}
		el[i].style.visibility = "visible";
      }
      
      //IE6 Only patch Navigation : onmouseover level
      MainNavigationInit();

		ATV.globals.clubSupportForm = new YAHOO.widget.Panel(
			"club-support-popup",
			{ 
				width: "792px",
				height: "495px",
				constraintoviewport: true,  
				underlay:"none",  
				close:true,  
				visible:false,  
				fixedcenter: true,  
				draggable:false,
				zIndex: 6,
				modal: true
			}
		);
		//Render the panel for screen
		ATV.globals.clubSupportForm.render(document.body);

		//Create an array with all anchor with the classname "clubsupportpopup"
			var elm = YAHOO.util.Dom.getElementsByClassName('clubsupportpopup','a');

			for (var i=0; elm[i]; i++) {
			elm[i].onclick = function() {
				var pnlt = ATV.globals.clubSupportForm;
				pnlt.setBody("<iframe width='792' marginwidth='0' marginheight='0' scrolling='no' frameborder='0' height='495' src='" + this.href + "'></iframe>");
				pnlt.render();
				pnlt.show();
				return false;
				}
			elm[i].style.visibility = "visible";
			}
 }

// ------[ Main Navigation for IE/Win ]------------------------------------------------- //
function MainNavigationInit() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("main-nav-container");
		if(navRoot) MainNavigationLoop(navRoot, 2)
		}
	}	
	function MainNavigationLoop(obj, level) {
		for (var i=0; i<obj.childNodes.length; i++) {
			node = obj.childNodes[i];		
			if(node.nodeName=="LI") {
				node.level = level;
				node.onmouseover = MainNavOver;
				node.onmouseout = MainOut;				
				}
			if(node.childNodes.length > 2) {
				node2 = node.childNodes[2];
				MainNavigationLoop(node2, level+1)
				}
			}
		}		
function MainNavOver() {
	this.className+="navOver" + this.level.toString();			
	}			
function MainOut() {
	this.className=this.className.replace("navOver" + this.level.toString(), "");
	}

// ------[ Call the Sub Nav Alignment ]------------------------------------------------- //
ATV.pages.news.init = function () {
	//Initialize Variable
	subNavObject = null;
	ulSubNav = null;
	liSubNav = null;
	liWidth = null;
	liWidthTotal = null;
	liCount = null;
	
	//Find the Sub Nav
	subNavObject = document.getElementById('sub-nav-menu');
	//Find the UL
	ulSubNav = subNavObject.getElementsByTagName('ul');

	//Find the LI and the Count
	liSubNav = subNavObject.getElementsByTagName('li');
	liCount = liSubNav.length;	

	//Total Width of LI
	for(var i=0; i < liCount; i++) {	
		liWidth = liSubNav[i].offsetWidth;
		liWidthTotal = parseInt(liWidthTotal + liWidth);		
	}

	//Add the Good With on the main UL (center alignment)
	YAHOO.util.Dom.setStyle(ulSubNav, 'width', liWidthTotal + "px");
	
	// Main UL Sub Navigation: Display 'visible' to show sub nav after Loading
	// Used to prevent the moving alignment.
	YAHOO.util.Dom.setStyle(ulSubNav, "visibility", "visible");
}

// ------[ Specs : Open Advanced Details ]------------------------------------------------- //
ATV.pages.specs = {

	el : null,
	ContainerId: null,
	
	Init : function() {		

			this.ContainerId = "specifications";
			
			var dlArray = [];
			var ddArray = [];
			var aArray = [];
			var Categories = YAHOO.util.Dom.getElementsByClassName('advanced',null,this.ContainerId);
			var CategoriesLength = Categories.length;		
		
			for (i=0; i < CategoriesLength; i++) {		
				//Create Advanced Object & Generate unique ID in the DL advanced
				Categories[i].id = "advanced_" + i;
				dlArray.push(Categories[i]);		
				
				//Find the link (A) element
				var dt = dlArray[i].getElementsByTagName('dt')[0];			
				var a = dt.getElementsByTagName('a');
				aArray.push(a);	

				//Find the Details (DD) element
				var dd = dlArray[i].getElementsByTagName('dd')[0];
				ddArray.push(dd);
				
				//Call Action
				YAHOO.util.Event.addListener(aArray[i], 'click', this.Display, {caller:aArray[i], details:ddArray[i]});
			}
		},
	
	Show : function(el) {
			YAHOO.util.Dom.setStyle(el, "display", "block");
			ATV.pages.specs.IsShow = true;		
		},
		
	Hide : function(el) {
			YAHOO.util.Dom.setStyle(el, "display", "none");
			ATV.pages.specs.IsShow = false;
		},
	
	Display : function(e, params) {
		var elCaller = params.caller || event;
		YAHOO.util.Event.preventDefault(e);
			
		var elStyle = YAHOO.util.Dom.getStyle(params.details, "display");
			if(elCaller) {
				if(elStyle != "block")
				{
					ATV.pages.specs.Show(params.details);
				}
				else
				{
					ATV.pages.specs.Hide(params.details);
				}
			}
	}	
}


// ------[ Can-Am Facts ]--------------------------------------------- //

BRP.CanAmFacts = {
	
	TheMovieName: null,
	LinkContainer: null,
	LastSelected: "media0",
	
	HookFlashEvents: function(containerId,className, movieName)
	{
		this.LinkContainer = containerId;
		this.TheMovieName = movieName;
	
		var allLinks= YAHOO.util.Dom.getElementsByClassName(className,"A",containerId);
		var allLinksLength = allLinks.length;
		
		for(var i=0;i<allLinksLength;i++)
		{
			YAHOO.util.Event.on(allLinks[i],'click',this.ShowInHeader,allLinks[i].id);
		}
	},
	
	GetMovie: function()
	{
		return document.getElementById(BRP.CanAmFacts.TheMovieName);
	},
	
	ShowInHeader: function(e, params)
	{
		e = e || event;
		YAHOO.util.Event.preventDefault(e);
		var elTarget = YAHOO.util.Event.getTarget(e);
		if (BRP.CanAmFacts.LastSelected)
		{
			if (YAHOO.util.Dom.hasClass(BRP.CanAmFacts.LastSelected,"select"))
			{
				YAHOO.util.Dom.removeClass(BRP.CanAmFacts.LastSelected,"select")
			}
		}
		
		BRP.CanAmFacts.LastSelected = params;
		YAHOO.util.Dom.addClass(params,"select");
		
		var mediaId = params;
		BRP.CanAmFacts.GetMovie().getItemByID(mediaId);
	}
};



