if (!sbweb.component.navigation) sbweb.component.navigation = function() {
	
	var mBasePath = "/sbweb/common/includes/header/navigation/flash";
	var mExpressPath = "/assets/flash/expressInstall.swf";
	var mBrowserURL = sbweb.util.url.getURL(false);
	var mIsPlay = "true";
	var mIsLoop = "false";
	var mQuality = "high"
	var mWMode = "transparent";
	var mScriptAccess = "always";
	var mName = "GlobalNavigation";
	var mFile = "GlobalNavigation.swf";
	var mSWFVersion = "0076";
	var mContainer = "navContainer";
	var mFlashContainer = "navFlashContainer";
	var mWidth = "970";
	var mHeight = "550";
	var mVersion = "9.0.28";
	
	return {
		loadNavigation : function (pIsProduction,pIsAffiliate,pKbid,pAkamaiURL,pSCaccount,pIsSquareLayout) {
			sbweb.util.log.debug("Load Global Navigation Begin");
			var flashvars = {};
			flashvars.basePath = pAkamaiURL+mBasePath;
			flashvars.browserURL = mBrowserURL;
			flashvars.isProduction = pIsProduction;
			flashvars.isAffiliate = pIsAffiliate;
			flashvars.kbid = pKbid;
			flashvars.SWFVersion = mSWFVersion;
			flashvars.scAccount = pSCaccount;
			flashvars.isSquareLayout = pIsSquareLayout;
			var params = {};
			params.play = mIsPlay;
			params.loop = mIsLoop;
			params.quality = mQuality;
			params.wmode = mWMode;
			params.allowscriptaccess = mScriptAccess;
			var attributes = {};
			attributes.id = mName;
			attributes.name = mName;
			sbweb.flash.embedSWF(pAkamaiURL + mBasePath + "/" + mFile +"?version=" + mSWFVersion, mContainer, mWidth, mHeight, mVersion, pAkamaiURL + mBasePath + mExpressPath, flashvars, params, attributes);
			sbweb.util.log.debug("Load Global Navigation End");
		},
		
		menuDisplay: function(pState) {
			sbweb.util.log.debug("Navigation: menuDisplay(): " + pState);
			
			var nav = document.getElementById(mFlashContainer);
			if (pState == "open") {
				nav.style.zIndex = 100000;
			}
			else if (pState == "close") {
				nav.style.zIndex = 0;
			}
			
			var searchHideFrame = document.getElementById("internalSearchHideFrame");
			if (pState == "open") {
				try {
					searchHideFrame.style.display = "inline";
				}
				catch(pError) {}
			}
			else if (pState == "close") {
				try {
					searchHideFrame.style.display = "none";
				}
				catch(pError) {}
			}
		},
		
		followLink: function(pWindow,pURL) {
			// filter all qbo links to add an mboxSession parameter
			if (mboxFactoryDefault) {
				try {
					var sessionId = mboxFactoryDefault.getSessionId().getId();
					lowerCaseUrl = pURL.toLowerCase();
					if (lowerCaseUrl.indexOf('.getqb.com') != -1 || lowerCaseUrl.indexOf('oe.quickbooks.com') != -1)
	                {
						pURL = sbweb.util.url.appendUrlParam(pURL, "mboxSession", sessionId);
	                }
				}
				catch(e) {}
			}
			
			if (pWindow == "_blank") {
				window.open(pURL);
			}
			else {
				var anchor = document.createElement("a");
				if (anchor.click) {
					anchor.setAttribute("id", "navigationRedirect");
					anchor.setAttribute("href", pURL);
					document.body.appendChild(anchor);
					document.getElementById("navigationRedirect");
					anchor.click();
				}
				else {
					window.location = pURL;
				}
			}
		},
		
		scPageName: function() {
			return s.pageName;
		}
		
	};
	
}();