
	var overlayPlayer = {};
	
	overlayPlayer.syncRefreshIntervalID;
	overlayPlayer.MODE_NORMAL = "normal";
	overlayPlayer.MODE_MINI = "mini";
	overlayPlayer.MODE_FULLSCREEN = "fullscreen";
	
	overlayPlayer.NORMAL_WIDTH = 1000;
	overlayPlayer.NORMAL_HEIGHT = 640;
	overlayPlayer.NORMAL_SWF_HEIGHT = 504;
	overlayPlayer.NORMAL_HEADER_HEIGHT = 45;
	overlayPlayer.NORMAL_FOOTER_HEIGHT = 91;
	
	overlayPlayer.MINI_WIDTH = 320;
	overlayPlayer.MINI_HEIGHT = 342;
	overlayPlayer.MINI_SWF_HEIGHT = 180;
	
	overlayPlayer.initialized = false;
	overlayPlayer.moduleID = "overlayPlayer";
	overlayPlayer.currMode ="";
	overlayPlayer.tileID = "";
	overlayPlayer.synch1URL = "";
	overlayPlayer.synch2URL = "";
	
					
	overlayPlayer.init = function()
	{
		if (!overlayPlayer.swfURL)
			alert("SWF Url not set")
			
		var swfURL = ""; 	
		var flashVars = {}
		
		swfURL += overlayPlayer.swfURL;
		swfURL += (navigator.appVersion.indexOf("MSIE") != -1) ? "?" + new Date().valueOf() : "" ;
		
		flashVars.configURL = overlayPlayer.configURL;
		flashVars.JSEventListener = "overlayPlayer.onOverlayPlayerEvent";
		if(swfobject.getQueryParamValue("defaultChannelID").length > 0)
			flashVars.defaultChannelID = swfobject.getQueryParamValue("defaultChannelID");
			
		var swfParams = {
			allowScriptAccess:"always",
			allowFullScreen:"true", 
			bgcolor: "#000000"
		};
		
		swfobject.embedSWF(swfURL, "moduleDiv", "100%", "100%", "9.0.0", "swf/expressInstall.swf", flashVars, swfParams,{id:overlayPlayer.moduleID,name:overlayPlayer.moduleID});
		overlayPlayer.switchMode(overlayPlayer.MODE_NORMAL);
	}	

				
	overlayPlayer.onOverlayPlayerEvent = function(p_event)
	{
		switch (p_event.type) 
		{				
			case "adPlaylistRequested":
				clearTimeout(overlayPlayer.syncRefreshIntervalID);
				overlayPlayer.syncRefreshIntervalID = setTimeout("overlayPlayer.setSyncAd(" + p_event.data + ")", overlayPlayer.SYNC_ADS_CALL_DELAY );
				break;		
			case "modeChanged":
				overlayPlayer.initialized = true;
				if(overlayPlayer.currMode == p_event.mode) return;
				overlayPlayer.switchMode(p_event.mode);
				clearTimeout(overlayPlayer.syncRefreshIntervalID);
				overlayPlayer.syncRefreshIntervalID = setTimeout("overlayPlayer.setSyncAd()", overlayPlayer.SYNC_ADS_CALL_DELAY );	
				p_event.data
				break;					
			default:
				break;	
		}
	}
	
	
	overlayPlayer.switchMode = function(p_val)
	{
		if (p_val != null) 
		{
			// hide ads & show when setSyncAd is called
			document.getElementById("banner_header").style.display = "none";
			document.getElementById("banner_footer").style.display = "none";
		
			overlayPlayer.currMode = p_val;
			
			overlayPlayer.setWindowSize();
			
			var wrapper = document.getElementById("page-wrapper");
			var swf = document.getElementById(overlayPlayer.moduleID);

			// let the SWF know the mode has changed
			if(overlayPlayer.initialized)
				swf.setAppMode(p_val);
				
			switch (p_val) 
			{
				case overlayPlayer.MODE_NORMAL:
					wrapper.className = "normal";
					wrapper.style.width = overlayPlayer.NORMAL_WIDTH + "px";
					wrapper.style.height = overlayPlayer.NORMAL_HEIGHT + "px";
					
					swf.width = overlayPlayer.NORMAL_WIDTH;
					swf.height = overlayPlayer.NORMAL_SWF_HEIGHT;
					break;
				
				case overlayPlayer.MODE_MINI:
					wrapper.className = "mini";
					wrapper.style.width = overlayPlayer.MINI_WIDTH + "px";
					wrapper.style.height = overlayPlayer.MINI_HEIGHT + "px";
					
					swf.width = overlayPlayer.MINI_WIDTH;
					swf.height = overlayPlayer.MINI_SWF_HEIGHT;
					break;
				
				case overlayPlayer.MODE_FULLSCREEN:
					wrapper.className = "normal full";
					wrapper.style.width = "100%";
					wrapper.style.height = "100%";
					
					var height = overlayPlayer.getBrowserHeight();
					swf.width = "100%";
					swf.height = height - overlayPlayer.NORMAL_HEADER_HEIGHT - overlayPlayer.NORMAL_FOOTER_HEIGHT;					
					break;
			}
		}
		
		return;
	}
	

    overlayPlayer.setSyncAd = function(p_tileID)
    {
		if(!overlayPlayer.SYNC_ADS_ENABLED) return;
		clearTimeout(overlayPlayer.syncRefreshIntervalID);
		
		overlayPlayer.tileID = isNaN(p_tileID) ? new Date().valueOf() : p_tileID;
		
		overlayPlayer.synch1URL = overlayPlayer.sync_header[overlayPlayer.currMode];
		overlayPlayer.synch2URL= overlayPlayer.sync_footer[overlayPlayer.currMode];

		switch (overlayPlayer.currMode)
		{
			case overlayPlayer.MODE_NORMAL:
			case overlayPlayer.MODE_FULLSCREEN:
				window.frames["banner_header"].location.replace("adProxy.html?overlayPlayer.synch1URL");
				window.frames["banner_footer"].location.replace("adProxy.html?overlayPlayer.synch2URL");
				break;
			case overlayPlayer.MODE_MINI:
				window.frames["banner_header"].location.replace("adProxy.html?overlayPlayer.synch1URL");
				window.frames["banner_footer"].location.replace("adProxy.html?overlayPlayer.synch2URL");
				break;
			default:
				break;
		}
		
		document.getElementById("banner_header").style.display = "block";
		document.getElementById("banner_footer").style.display = "block";
		
		overlayPlayer.syncRefreshIntervalID = setTimeout("overlayPlayer.setSyncAd()", overlayPlayer.SYNC_ADS_REFRESH_RATE * 1000 );		
    }
	
	
	overlayPlayer.setWindowSize = function()
	{
		var viewWidth;
		var viewHeight;
		var dX, dY;

		if (typeof window.innerWidth != 'undefined')
		{
			viewWidth = window.innerWidth;
		    viewHeight = window.innerHeight;
		}
		else if (typeof document.documentElement != 'undefined' && 
				typeof document.documentElement.clientWidth != 'undefined' 
				&& document.documentElement.clientWidth != 0)
		{
	    	viewWidth = document.documentElement.clientWidth,
	        viewHeight = document.documentElement.clientHeight
		}
		else
		{
			viewWidth = document.getElementsByTagName('body')[0].clientWidth,
		    viewHeight = document.getElementsByTagName('body')[0].clientHeight
		}
		

		switch (overlayPlayer.currMode) 
		{
			case overlayPlayer.MODE_NORMAL:
				dX = overlayPlayer.NORMAL_WIDTH > viewWidth ? overlayPlayer.NORMAL_WIDTH - viewWidth : (viewWidth - overlayPlayer.NORMAL_WIDTH) * -1;
				dY = overlayPlayer.NORMAL_HEIGHT > viewHeight ? overlayPlayer.NORMAL_HEIGHT - viewHeight : (viewHeight - overlayPlayer.NORMAL_HEIGHT) * -1;
				window.resizeBy(dX, dY);
				break;
				
			case overlayPlayer.MODE_MINI:
				dX = overlayPlayer.MINI_WIDTH > viewWidth ? overlayPlayer.MINI_WIDTH - viewWidth : (viewWidth - overlayPlayer.MINI_WIDTH) * -1;
				dY = overlayPlayer.MINI_HEIGHT > viewHeight ? overlayPlayer.MINI_HEIGHT - viewHeight : (viewHeight - overlayPlayer.MINI_HEIGHT) * -1;
				window.resizeBy(dX, dY);
				break;
				
			case overlayPlayer.MODE_FULLSCREEN:
				window.moveTo(0, 0);
				window.resizeTo(screen.availWidth, screen.availHeight);
				window.resizeTo(screen.width, screen.height);
				break;
		}
	}


	overlayPlayer.getBrowserHeight = function()
	{			
		var y = 0;
		if (self.innerHeight)
       		y = self.innerHeight;
		else if (document.documentElement && document.documentElement.clientHeight)
			y = document.documentElement.clientHeight;
		else if (document.body)
			y = document.body.clientHeight;
		return y;
	}
