


bam.mediawall = (function(){	
	var _log=function(msg){
		if (_self.debug && typeof console!=="undefined")console.log("bam.mediawall: "+msg);
	};	
	
	var _currentPanel=1;  //start panel
	var _settings={};
		
	// game mode stuff
	var _linescoreInitialized=false;
	var _numberOfLoadRequests=0;
	var _linescore={};
	var _initLineScore = function() {
		_log("Linescore initialized.");
		if (typeof bam.linescore == "undefined") {
			$.ajax({type:"GET", async:false, cache:true, url:"/shared/scripts/bam.linescore.js", dataType:"script"});		
		}		
		_linescore.main = new bam.linescore("bam.mediawall.load");
		_linescore.main.Scale = false;
		_linescore.main.Width = 300;
		_linescore.main.Height = 60;
		_linescore.main.LinescoreFLV = "/flash/mediawall/y2009/baseLinescore.swf";
		_linescore.main.DefaultGID = $("#media_wall .mw_panels .mw_linescore").eq(0).text();	
		
		/**			
		// url params for setting data source and current date. this is for testing and does not work on prod.
		**/
		var theLoc = document.location;
		var theDomain = theLoc.hostname.toLowerCase();
		var isProd = ( (theDomain.indexOf("beta.") == -1) && (theDomain.indexOf("dev-") == -1) && (theDomain.indexOf("qa.") == -1) && (theDomain.indexOf("qa2.") == -1) ) ? true : false;
		if(!isProd && theLoc.search.indexOf("env=qa")!=-1) _linescore.main.BaseURL = "gd.qa.mlb.com";	
		if(!isProd && theLoc.search.indexOf("currentdate=")!=-1) {	
			var results = new RegExp('[\\?&]currentdate=([^&#]*)').exec(window.location.href);		
			if(!!results)_linescore.main.CurrentDate = results[1];	
			// EX: _linescore.main.CurrentDate = 20090402;	
		}		
	
		/**
		// this function does the bulk of the work. It is called repeatedly by the swf polling mechanism.
		**/
		_linescore.OnDataReady_main = function(json){				

			if(_self.debug && typeof console!=="undefined")console.log(json);
			_log("_linescore.OnDataReady_main called. gamestate=" +json.gamestate+", status="+json.status);	

			if(!!json && !!json.gamestate && !!json.status){
				var	gamestate 		= json.gamestate || "",
					status 			= json.status || "",								
					gd_link 		= json.gameday_link || "",
					default_mc_link	= _settings.mediacenterlink,
					mlbtv_link		= json.mlbtv_link || default_mc_link,    // TODO: find milb version
					pstv_link		= json.postseason_tv_link || default_mc_link,
					audio_link		= json.audio_link || "",
					wrap_link		= json.wrap_link || "",					
					banner			= "", 
					bannerbase		= _settings.bannerbase,
					gsString		= status.toLowerCase().replace(/\s+/g,'');		
							
				var currentPanelObj = $("#mw_panel_"+_currentPanel);
				currentPanelObj.find(".mw_media_link span").hide();
				currentPanelObj.find("#mw_link_wrap").hide();		
						
				// these are the post-blurb links		
				var mlbtv_anchor = currentPanelObj.find('.mw_link_mlbtv a'),
					mlbtv_label = currentPanelObj.find('.mw_link_mlbtv'),
					pstv_anchor = currentPanelObj.find('.mw_link_pstv a'),
					pstv_label = currentPanelObj.find('.mw_link_pstv'),					
					audio_anchor = currentPanelObj.find('.mw_link_gamedayaudio a'),
					audio_label = currentPanelObj.find('.mw_link_gamedayaudio'),
					gameday_anchor = currentPanelObj.find('.mw_link_gameday a'),
					gameday_label = currentPanelObj.find('.mw_link_gameday');	
					
				if(mlbtv_link!=default_mc_link)mlbtv_link="javascript:"+mlbtv_link;					
				if(pstv_link!=default_mc_link)pstv_link="javascript:"+pstv_link;	
				
				$("#media_wall .mw_game_state a").hide();
				
												
				switch(gamestate){
					case "preview":
						if(status==="Preview" || status==="Pre-Game")gsString="preview";
						else if(status==="Delayed Start"||status==="Suspended")gsString+="_preview";					
						banner=bannerbase + gsString + ".jpg";	
						currentPanelObj.find(".mw_game_state").css({
							"background" : "transparent url(" + banner + ") no-repeat"
						});					
					if(_settings.club!=="milb"){
						currentPanelObj.find(".mw_preview_lnks").css({"display" : "inline"});						
						// set post-blurb media links		
						if(!!_settings.ispostseason) {
							pstv_anchor.attr("href",pstv_link);																						
							pstv_label.css("display","inline").next().css("display","inline");	
						}						
						mlbtv_anchor.attr("href",mlbtv_link);
						mlbtv_label.css("display","inline").next().css("display","inline");									
						if(json.gameday_sw!=="N"){
							if(!!gd_link){													
								audio_label.css("display","inline").next().css("display","inline");	
								gameday_anchor.attr("href",gd_link);												
								gameday_label.css("display","inline");	
							} else {													
								if(!_settings.ispostseason)audio_anchor.text(_settings.gdaudiotext);						
								audio_label.css("display","inline");
								gameday_label.prev().andSelf().hide();
							}		
						} else {
							gameday_label.prev().andSelf().hide();
							audio_label.prev().andSelf().hide();
						}					
						if(!!mlbtv_link){
							currentPanelObj.find(".mw_lnk_video").css({"display":"inline"})
							.attr("href", mlbtv_link)
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall", _settings.tvtext + " Click"); });
						}		
						if(!!_settings.ispostseason && !!pstv_link){
							currentPanelObj.find(".mw_lnk_psvideo").css({"display":"inline"})
							.attr("href", pstv_link)
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall","Postseason.TV Click"); });
						}	
					}								
						break;
					case "live":
						if(status==="In Progress" || status==="Warmup")gsString="live";
						else if(status==="Delayed Start")gsString+="_live";								
						if(!!_settings.ispostseason && status==="Delayed Start")gsString="delayed";														
						banner=bannerbase + gsString + ".jpg";							
						currentPanelObj.find(".mw_game_state").css({
							"background" : "transparent url(" + banner + ") no-repeat"
						});	
					if(_settings.club!=="milb"){
						// set post-blurb media links
						if(!!_settings.ispostseason) {
							pstv_anchor.attr("href",pstv_link);																						
							pstv_label.css("display","inline").next().css("display","inline");		
						}											
						mlbtv_anchor.attr("href",mlbtv_link);																						
						mlbtv_label.css("display","inline").next().css("display","inline");	
						audio_label.css("display","inline").next().css("display","inline");							
						
						if(!!gd_link && json.gameday_sw!=="N"){
							gameday_anchor.attr("href",gd_link);												
							gameday_label.css("display","inline");					
							currentPanelObj.find(".mw_lnk_gameday").css({"display":"inline"})
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall","Gameday Click");});
						}else{
							gameday_label.prev().andSelf().hide();
						}	
											
						if(!!_settings.ispostseason && !!pstv_link){
							currentPanelObj.find(".mw_lnk_psvideo").css({"display":"inline"})
							.attr("href", pstv_link)
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall","Postseason.TV Click"); });
						}						
						if(!!mlbtv_link){
							currentPanelObj.find(".mw_lnk_video").css({"display":"inline"})
							.attr("href", mlbtv_link)
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall", _settings.tvtext + " Click"); });
						}
						if(!!audio_link && json.gameday_sw!=="N"){
							currentPanelObj.find(".mw_lnk_audio").css({"display":"inline"})
							.attr("href", "javascript:"+audio_link)
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall","Audio Click"); });
						} else {
							audio_label.prev().andSelf().hide();
						}
					}
						break;
					case "final":
						if(status==="Final" || status==="Game Over")gsString="final";
						else if(status==="Suspended")gsString+="_final";								
						banner=bannerbase + gsString + ".jpg";							
						currentPanelObj.find(".mw_game_state").css({
							"background" : "transparent url(" + banner + ") no-repeat"
						});
					if(_settings.club!=="milb"){
						// set post-blurb media links					
						if(!!wrap_link){
							currentPanelObj.find('#mw_link_wrap a').attr("href",wrap_link);
							currentPanelObj.find('#mw_link_wrap').css("display","inline");
							gameday_label.hide();
						}else if(json.gameday_sw!=="N"){
							var gamedayLink = "javascript:launchGameday({gid:'" + 
												currentPanelObj.find('.mw_linescore').text() + 
												"',mode:'gameday'})";
							gameday_anchor.attr("href",gamedayLink).html("Gameday");												
							gameday_label.css("display","inline");
						}
						currentPanelObj.find(".mw_lnk_boxscore").css({"display" : "inline"})
						.unbind("click").click(function(){ bam.mediawall.track("Mediawall","Box Click"); });						
						if(!!wrap_link){
							currentPanelObj.find(".mw_lnk_wrapup").css({"display" : "inline"})
							.attr("href", wrap_link)
							.unbind("click").click(function(){ bam.mediawall.track("Mediawall","Wrap Click"); });
						}
					}
						break;
				}			
				// attach tracking to post-blurb media links			
				pstv_anchor.unbind("click").click(function(){bam.mediawall.trackFlash("Postseason.TV");});
				mlbtv_anchor.unbind("click").click(function(){bam.mediawall.trackFlash(_settings.tvtext);});
				audio_anchor.unbind("click").click(function(){bam.mediawall.trackFlash("Audio");});
				gameday_anchor.unbind("click").click(function(){bam.mediawall.trackFlash("Gameday");});
				$('#mw_link_wrap a').unbind("click").click(function(){bam.mediawall.trackFlash("Wrap");});			
			}		
		};				
	};  // end _initLineScore	
	
	var _showLinescore = function(gid){	
		$("#mw_linescore_obj").css({"top":"320px", "left":"2px", "height":"60px", "width":"300px", "overflow-x":"hidden", "overflow-y":"hidden"});		
		if(_numberOfLoadRequests<3) {		
			// this is here to hide the error that happens in firefox when the mediawall is not in the browser's viewport 		
			try{ 
				_log("showLinescore called, numberOfLoadRequests="+ _numberOfLoadRequests);
				_linescore.main.LoadGame(gid, "_linescore.OnDataReady_main");				
			}catch(err){
				_log("showLinescore Error:" + err);
				_numberOfLoadRequests++;
				_showLinescore(gid);
			}		
		}else{
			//fail mechanism?
		}
	};	
	var _hideLinescore = function(){
		$("#mw_linescore_obj").css({"top":"-2000px", "left":"-2000px", "height":"2px", "width":"2px"});
		_numberOfLoadRequests=0;
	};
	// end game mode stuff
	
	var _urlEncode = function(str){
		str = escape(str);
		str = str.replace(/\+/g, "%2b");
		str = str.replace(/ /g, "+");
		return str;
	};
	
	// delivers a "stringy" json to the mediawall swf
	// the values are stored in hidden HTML elements so they can be search indexed
	var _getData = function(){
		var data = "[";					
		$("#media_wall .mw_panels").each(function(iterator){		
			var _overlay=$(this).attr("overlay") || null,
				_img=$(this).attr("photo"),
				_link=$(this).attr("link"),
				_thumb=$(this).attr("thumb"),					
				_caption=$(this).find(".mw_kicker").text(),
				_delay=$(this).attr("delay");				
			data+='{overlay:\"'+_overlay+'\", ';
			data+='img:\"'+_img+'\", ';
			data+='link:\"'+_urlEncode(_link)+'\", ';
			data+='thumb:\"'+_thumb+'\", ';
			if(!!_delay && !isNaN(_delay))data+='delay:\"'+_delay+'\", ';
			data+='caption:\"'+_caption+'\"}';
			if(iterator<5)data+=', ';
		});
		data+=']';
		return escape(data);
	};
	
	var _checkForNewXML=function(xmlURL){
		$.ajax({
			async:		false,
			url:		xmlURL,
			type:		"get",
			//cache:		false,
			timeout: 	5000,						
			error: 		function(xhr) {_log("Error in _checkForNewXML: " + xhr.status + " " + xhr.statusText);},						
			success: 	function(response) { 		
				var updatedTimestamp=$("data",response).attr("updated");
				var sourceTimestamp=$("#mwContainer").attr("timestamp");
				_log("fastUpdates enabled. updatedTimestamp="+updatedTimestamp+", sourceTimestamp="+sourceTimestamp);				
				if(updatedTimestamp>sourceTimestamp) {
					_log("A newer datafile exists. Updating source...");
					_initAjaxMediawall(response);									
				}else{
					_log("The data files are identical.");
				}						
			},
			complete:	function(){
				_createMediawall();
				_registerEvents();
			}	
		});	
	};
	
	var _initAjaxMediawall=function(xml){
		_log("Initializing Ajax mediawall.");
		createRelatedLinks=function(relatedlinks){
			var out="";			
			relatedlinks.find("link").each(function(){		
				var relatedlink = $(this);									
				var type = relatedlink.attr("type");
				var text = relatedlink.find("text").text();					
				if(type==="video"){
					out+="&nbsp;<img src=\"/shared/images/icons/video.gif\" />&nbsp;&#160;";							
					var paramsHTML = "&c_id="+_settings.club;
					var content_id = relatedlink.find("url").attr("id");							
					if(content_id!=="")paramsHTML+="content_id="+content_id;
					// topic id?							
					out+="<a href=\""+_settings.videopage+"?" + paramsHTML + "\">" + text + "</a>";					
				}else if(type==="articles"){
					out+="&nbsp;&nbsp;&bull;&nbsp;&nbsp;";
					out+="<a href=\"" + relatedlink.find("url").text() + "\">" + text + "</a>";
				}else if(type==="audio"){
					var $url = relatedlink.find("url");
					out+="<img src=\"/shared/images/icons/audio.gif\">&#160;";
					out+="<a href=javascript:(playMedia2({w_id:'";
					out+=$url.attr("w_id") + "',w:'";
					out+=$url.text() + "',";
					if(!!$url.attr("vid"))out+="vid:'" + $url.attr("vid") + "',";
					out+="pid:'" + $url.attr("pid") + "',";
					if(!!$url.attr("gid"))out+="gid:'" + $url.attr("gid") + "',";
					out+="mid:'" + $url.attr("mid") + "',";							
					out+="fid:'" + $url.attr("fid") + "',";
					out+="cid:'" + _settings.club + "',v:'2'}));";
					out+=text+"</a>";
				}else if(type==="content_short"){						
					if(text.indexOf("img")==-1)	out+="&nbsp;&nbsp;&bull;&nbsp;&nbsp;";
					else out+="&nbsp;&nbsp;";						
					if(text.indexOf("href")!=-1) out+=text;
					else out+="<a href=\""+ relatedlink.find("url").text() + "\">"+text+"</a>";							
				}
			});
			return out;
		};
		
		$("#media_wall .mw_panels").find("div").empty();
		
		$("module:lt("+_settings.numpanels+")",xml).each(function(n){
			
			var gid, panelObj = $("#mw_panel_" + (n+1));			
			
			// overlay
			var overlay=$(this).find("overlay").text();
			if(!!overlay)panelObj.attr("overlay", _settings.overlaybase+overlay);	   
			
			//photo
			var photo=$(this).find("photo").text();			
			panelObj.attr("photo",photo);
			
			//thumb
			var thumb=$(this).find("thumb:eq(0)").text();				
			panelObj.attr("thumb",thumb);
			
			//link
			var link=$(this).find("url:eq(0)").text();			
			panelObj.attr("link",link);
			
			//contentid
			var contentid=$(this).attr("cid");			
			panelObj.attr("content_id",contentid.substr(8));
			
			//game mode stuff
			var mode=$(this).attr("mode");
			
			var banner=panelObj.find(".mw_game_state");
			
			if(_settings.location==="clubhome"){
				banner = panelObj.find(".gs_banner");
				if(mode==="game" && !banner){
					panelObj.append("<div class=\"gs_banner\"></div>");
				} else if(mode==="news" && !!banner) {
					banner.remove();
				}			
			} else {				
				gid = $(this).attr("id");
				if(mode==="game"){				
					var bannerHTML="";
					var pstv_link = "<a class=\"mw_live_lnks mw_lnk_psvideo\" href=\"#\"><span>POSTSEASON.TV&raquo;</span></a>";	
					if(!!_settings.ispostseason)bannerHTML+=pstv_link;					
					var gd_link="<a class=\"mw_live_lnks mw_lnk_gameday\" href=\"javascript:launchGameday({gid:'" + gid + "'})\"><span>GAMEDAY&raquo;</span></a>";
					bannerHTML+=gd_link;					
					var audio_link = "<a class=\"mw_live_lnks mw_lnk_audio\" href=\"#\"><span>" + _settings.audiotext + "&raquo;</span></a>";
					bannerHTML+=audio_link;					
					var mlbtv_link="<a class=\"mw_live_lnks mw_lnk_video\" href=\"#\"><span>" + _settings.tvtext + "&raquo;</span></a>";
					bannerHTML+=mlbtv_link;					
					var box_link="<a class=\"mw_final_lnks mw_lnk_boxscore\" href=\"" + _settings.boxlinkbase + gid + "\"><span>BOX &raquo;</span></a>";
					bannerHTML+=box_link;			
					var wrap_link="<a class=\"mw_final_lnks mw_lnk_wrapup\" href=\"javascript:launchGameday({gid:'" + gid + "'})><span>" + _settings.wraptext + " &raquo;</span></a>";					
					bannerHTML+=wrap_link;
					if(!!banner)banner.html(bannerHTML);
					else panelObj.append("<div class=\"mw_game_state\">"+bannerHTML+"</div>");			
				} else if(mode==="news" && !!banner) {
					banner.remove();
				}			
			}			

			
			//caption
			var captionHTML="", photo_credit=$(this).find("photo_credit").text();						
			if($(this).attr("use-caption")==="1")captionHTML=$(this).find("photo_caption").text();
			if(!!photo_credit)captionHTML+="&nbsp;("+photo_credit+")";
			panelObj.find(".mw_caption").html(captionHTML);
			
			//related video
			panelObj.find(".mw_video_play").remove();
			var related_videos = $(this).find("related-video video");
			if(related_videos.length>0){			
				var $video=$(related_videos.get(0));
				var videoID=$video.find("meta").attr("content_id");
				var topicID=$video.find("meta").attr("topic_id");				
				var flashClips=$video.find("url[type='flash-video']").length;
				var wmvClips=$video.find("url[type='windows-media']").length;
				if(flashClips>0){					
					panelObj.append("<div class=\"mw_video_play\" topic_id=\"" + topicID + "\" video_id=\""+videoID+"\" ></div>");					
				} else if(flashClips===0 && wmvClips>0){
					//support for old milb-style wmv clips.							
					panelObj.append("<div class=\"mw_video_play\" launch_code=\""+$video.find("url").text()+"\"></div>");
				}			
			}						
			
			//kicker			
			var kicker=$(this).find("kicker").text();					
			panelObj.find(".mw_kicker").html("<a href=\""+link+"\">"+kicker+"</a>");
			
			//blurb
			var blurbHTML = "";
			var bigblurb=$(this).find("bigblurb").text();
			var moretext=$(this).find("moretext").text();
			var morelink=$(this).find("morelink").text();			
			if(mode==="game"){
				var moreHTML=morelink;				
				if(_settings.location==="clubhome"){
					blurbHTML = bigblurb;
					if(!!moretext) {					
						if(morelink.indexOf("gameday")!=-1)moreHTML=link;					
						blurbHTML+="&nbsp;<a href=\""+moreHTML+"\">"+ moretext + "&nbsp;&gt;</a>";					
					}					
					blurbHTML+="<div class=\"mw_related_links\">";
					blurbHTML+=createRelatedLinks($(this).find("related-links"));			
					blurbHTML+="</div>";				
				}else{
					blurbHTML = "<div class=\"mw_linescore\">"+gid+"</div>";
					blurbHTML+="<div class=\"mw_blurb_text\">";
					blurbHTML+=bigblurb+"&nbsp;";					
					if(!!moretext && morelink.indexOf("<gameday>")==-1){
						blurbHTML+="<a class=\"rel_link\" href=\""+morelink+"\">";
						blurbHTML+=moretext;
						blurbHTML+="</a>";
					}					
					if(morelink.indexOf("<gameday>")!=-1){
						blurbHTML+="<span id=\"mw_link_wrap\"><a>"+ _settings.wraptext + " &gt;</a></span>";
					}					
					blurbHTML+="</div>";		
					
					if(morelink.indexOf("<gameday>")!=-1){
						blurbHTML+="<div class=\"mw_media_link\">";
						if(!!_settings.ispostseason){
							blurbHTML+="<span class=\"mw_link_mlbtv\"><a><img src=\"/shared/components/mediawall/images/mlbtv_withtxt.gif\" border=\"0\" alt=\""+ _settings.tvtext + "\" style=\"margin-right:16px\" /></a></span>";
							blurbHTML+="<span class=\"mw_link_gamedayaudio\"><a href=\""+default_mc_link+"\"><img src=\"/shared/components/mediawall/images//audio_withtxt.gif\" border=\"0\" alt=\"Audio\" style=\"margin-right:16px\" /></a></span>";
							blurbHTML+="<span class=\"mw_link_gameday\"><a><img src=\"/shared/components/mediawall/images/gameday_withtxt.gif\" border=\"0\" alt=\"Gameday\" style=\"margin-right:12px\" /></a></span>";
							blurbHTML+="<span class=\"mw_link_pstv\"><a><img src=\"/shared/components/mediawall/images/pstv_withtxt.gif\" border=\"0\" alt=\"Postseason.TV\" /></a></span>";						
						}else{
							blurbHTML+="<span class=\"mw_link_mlbtv\"><a>"+ _settings.tvtext + "</a></span>";
							blurbHTML+="<span>&#160;|&#160;</span>";
							blurbHTML+="<span class=\"mw_link_gamedayaudio\"><a href=\""+_settings.mediacenterlink+"\">Audio</a></span>";
							blurbHTML+="<span>&#160;|&#160;</span>";
							blurbHTML+="<span class=\"mw_link_gameday\"><a>Gameday</a></span>";					
						}						
						blurbHTML+="</div>";
					}
				}			
			}else{				
				blurbHTML = bigblurb;
				if(!!moretext) {
					blurbHTML+="&nbsp;<a class=\"rel_link\" href=\"" + morelink + "\">" + moretext;
					if(_settings.location==="clubhome")blurbHTML+="&nbsp;&gt;";
					blurbHTML+="</a>";
				}
				blurbHTML+="<div class=\"mw_related_links\">";
				blurbHTML+=createRelatedLinks($(this).find("related-links"));	
				blurbHTML+="</div>";
			}
			panelObj.find(".mw_blurb").html(blurbHTML);			
		});
	};
	
	
	var _createMediawall = function(){
		_log("Creating mediawall object...");
		if($("#media_wall .mw_linescore").length>0) {_initLineScore();}
		mediaWall = new FlashObject(_settings.swf, "mediawall_flash", "480", "270", "9", "#ffffff");
		mediaWall.addParam("scale", "noscale");
		mediaWall.addParam("salign", "tl"); 
		mediaWall.addParam("wmode", "transparent");
		mediaWall.addVariable("mediawall_data", _getData());		
		mediaWall.addVariable("width", 480);
		mediaWall.addVariable("height", 270);
		mediaWall.addVariable("rotation_time", 12);
		mediaWall.addVariable("default_img", "/shared/components/mediawall/images/mw_default_"+_settings.club+".jpg"); 
		mediaWall.addVariable("default_thumb", "/shared/components/mediawall/images/mw_defaultthumb_"+_settings.club+".jpg"); 
		mediaWall.addVariable("rotation_call", "bam.mediawall.mainRotate");
		mediaWall.addVariable("tracking_call", "bam.mediawall.trackFlash");
		mediaWall.addVariable("rotation_count", 1); 
		mediaWall.write("mw_flash");
	};
	
	_registerEvents = function(){
		_log("Registering events...");
		$("#media_wall .mw_video_play[video_id]").each(function(){		
			var videoID=$(this).attr("video_id");	
			var topicID=$(this).attr("topic_id");	
			if(!!videoID){	
				$(this).click(function(){ 
					//mediaWall.stop_timer();							
					if(!!bam.thumbplayer && typeof bam.thumbplayer.playerObj!=="undefined" && !!bam.thumbplayer.playerObj)bam.thumbplayer.playerObj.execute('changeVolume', 0);							
					bam.zPlayer.play(videoID,topicID); 
					$(this).css({ "background-position" :"-50px 0" });
					bam.mediawall.trackFlash("Embedded Video");
				}).show();
			}
		});				
		bam.zPlayer.postClose = function(){	
			$("#media_wall .mw_video_play").css({ "background-position" :"0 0" }); 
			if(!!bam.thumbplayer && typeof bam.thumbplayer.playerObj!=="undefined" && !!bam.thumbplayer.playerObj)bam.thumbplayer.playerObj.execute('changeVolume', 35);
		};	
		$("#media_wall .mw_kicker a").click(function(){bam.mediawall.trackFlash("Kicker");});	
		$("#media_wall .mw_blurb > a").click(function(){bam.mediawall.trackFlash("Blurb");});	
		$("#media_wall .mw_related_links a").click(function(){bam.mediawall.trackFlash("Related Link");});	
		$("#mw_panel_1").show();			
		if($("#mw_panel_1").find(".mw_linescore").text().length>0){
			_linescore.main.Init("mw_linescore_obj");
			_linescoreInitialized=true;
			$("#mw_linescore_obj").css({"top":"320px", "left":"2px", "height":"60px", "width":"300px", "overflow-x":"hidden", "overflow-y":"hidden"});				
		}	
	};
	
	var _self = {		
		debug: false,		
		load : function(){
			_linescore.main.UpdateRequest(["gamestateGrouping","activeLinks", "gameday_sw", "status", ["individualLink", "postseason_tv"] ], "bam.mediawall.onDataReady"); 
		},		
		onDataReady: function(json) {_linescore.OnDataReady_main(json);},		
		init: function(props) {		
			if (typeof bam.zPlayer === "undefined") {
				$.ajax({type:"GET", async:false, cache:true, url:"/shared/scripts/bam/bam.zPlayer.js", dataType:"script"});		
			}
			$.extend(_settings, props);			
			var numpanels = $("#media_wall .mw_panels").length;			
			if(numpanels !== _settings.numpanels) {
				$("#media_wall").html("<b>Data error:</b> " + _settings.numpanels + " panels are required. " + numpanels + " are present.");
			} else {									
				if(!!props.fastupdates){					
					_checkForNewXML(_settings.xml);
				}else{
					_createMediawall();
					_registerEvents();
				}					
			}			
						
           delete _self.init;			
        },			
		
		mainRotate : function(panelIndex){			
			panelIndex++;
			_hideLinescore();
			$(".mw_panels").hide();			
			var panelObj = $("#mw_panel_"+panelIndex);							
			var gid = panelObj.find(".mw_linescore").text();	
			if(gid.length>0){
				if(!!_linescoreInitialized){
					_showLinescore(gid);			
					gid = null;
				}else{				
					_linescore.main.Init("mw_linescore_obj");
					_linescoreInitialized=true;
					$("#mw_linescore_obj").css({"top":"320px", "left":"2px", "height":"60px", "width":"300px", "overflow-x":"hidden", "overflow-y":"hidden"});		
				}
			}		
			panelObj.show();
			_currentPanel=panelIndex;				
		},
		
		trackFlash : function(clickedArea){
			_log("tracking: " + _settings.compname + ": " + clickedArea);
			var current = _currentPanel;
			if(current>6)current=1;		
			var next = (current>5)?1:current+1,
				previous = (current<2)?6:current-1,
				str = clickedArea.substr(0,4),
				dynamic = false, actiongen=false,				
				c_name = _settings.compname;		
			if(str=="Thum" || str=="Circ"){
				var theIndex = clickedArea.substr(clickedArea.indexOf("+")+2,1);
				theIndex++;
				clickedArea = (str=="Thum")?"Thumbnail":"Circle";
				dynamic = true;
				c_activity = clickedArea + " " + theIndex + " Click";
				actiongen = true;
				contentid=$("#mw_panel_"+theIndex).attr("content_id");			
			}else if(str=="Prev"){			
				dynamic = true;
				c_activity = "Previous Click";
				actiongen = true;
				contentid=$("#mw_panel_"+previous).attr("content_id");	
			}else if(str=="Next"){
				dynamic = true;
				c_activity = "Next Click";
				actiongen = true;
				contentid=$("#mw_panel_"+next).attr("content_id");	
			}else if(str=="Auto"){
				dynamic = true;
				c_activity = "Auto Rotate Panel " + next;
				actiongen = false;
				contentid=$("#mw_panel_"+next).attr("content_id");	
			}else if(str=="Play" || str=="Paus" || str=="Embe"){
				dynamic = false;
				c_activity = clickedArea + " Click";
				actiongen = true;
				contentid="";	
			}else if(str=="Pict"){
				dynamic = false;
				c_activity = "Panel " + current + " - Photo Click";
				actiongen = true;
				contentid=$("#mw_panel_"+current).attr("content_id");		
			}else if(str=="Kick" || str=="Blur" || str=="Rela"){
				dynamic = false;
				c_activity = "Panel " + current + " - " + clickedArea + " Click";
				actiongen = true;
				contentid=$("#mw_panel_"+current).attr("content_id");		
			}
			bam.tracking.track({
				async:{
					isDynamic: dynamic,
					compname: c_name,
					compActivity: c_activity,
					actionGen:actiongen,
					mwContentId:contentid
				}
			}, $(this)[0]);			
		},
		
		track:function(compname,compActivity){
			bam.tracking.track({
				async:{
				isDynamic: false,
				compname: compname,
				compActivity:compActivity,
				actionGen:true
				}
			}, $(this)[0]);
			return true;
		}
		
				
	};
	return _self;	
		
})();
