// $Id: VideoListPage.js 17002 2009-07-20 19:39:13Z ajl $
/**
 *  @author ajl
 */ 
 
if (typeof EXPOTV == "undefined") EXPOTV = {};
if (typeof EXPOTV.Widget == "undefined") EXPOTV.Widget = {};
if (typeof console == "undefined") { var console = {}; console.log = function(){}; /*fail silently in IE*/ }
 
EXPOTV.Widget.VideoListPage = new function()
{
    var self = this;
    this.playerEventsTriggerFunctionStr = "EXPOTV.VideoPlayerManager.broadcastEventsHandler";
    
    this.init = function()
    {
	    self.videoItemsObj = EXPOTV.Widget.VideoListPage.items;			
	    self.$popup = $("div.popup");
	    self.attachVideoLinkHandlers();
	    self.attachPopupCloseHandlers();
    }

   this.initVideoPlayer = function(i)
    {
	   	var so = new SWFObject("http://images.expotv.com/brickabracka/ExpoTVPlayer/ExpoTVPlayer.swf", "player", "320", "270", "9", "#000000");
		so.addParam("allowFullScreen", "true");
		so.addParam("scale", "noscale");
		so.addParam("salign", "TL");
		so.addParam("wmode", "transparent");
		so.addParam("allowScriptAccess", "always");
		so.addVariable("triggerFunctionName", "triggerEvent");
		so.addVariable("playerId", "ExpoTVPlayer");
		so.addVariable("show_controls", "true");
		so.addVariable("autoplay", "false");
		so.addVariable("video_id", self.videoItemsObj[i].video_id);
		so.addVariable("video_url", self.videoItemsObj[i].video_url);
		so.addVariable("still_image_url", self.videoItemsObj[i].still_image_url); 
		so.addVariable("preload", "false");
		so.addVariable("host", "www5.bc.expotv.com");
	    so.addVariable("partner_id", "5");
	    so.addVariable("client_ip", "204.246.201.162");
	    so.write("playerContainer");
	   
	}
    
    
    this.attachVideoLinkHandlers = function()
    {
			var $videoLinks = $(".video a:not(.noJs)");
			$videoLinks.each(function(i)
       {
            $(this).click(function(e)
            {
    					e.preventDefault();
							self.initVideoPlayer(i);
							
							var videoIndexInt = $(".video").index($(this).closest(".video"));
							var videoIdInt = $(this).attr("href").match(/\d+/);
							var videoInfoObj = self.videoItemsObj[i];
            		
							
							
							$(this).closest('.video').siblings().removeClass('on');
							$(this).closest('.video').addClass('on');
							
							
							self.$popup
									.show()
									.find(".playerContainer").css("visibility", "visible").end()
							// Fill in popup stuff
							//.find(".title").text(videoInfoObj.video_title).end()
									.find(".username").text(videoInfoObj.video_username).end()
									.find("a.username").attr('href', '/profile/home/' + videoInfoObj.video_username).end()
									.find(".userState").text(videoInfoObj.user_state || '').end()
									.find(".description").text(videoInfoObj.video_description).end()
							//.find(".playerContainer").html(self.videoPlayer).end()
	
							 self.setMargin();
	   			
		    			console.log(videoInfoObj);
		   				self.logVideoClick(videoIdInt);
						});
    	});
    }
    
    this.attachPopupCloseHandlers = function()
    {
    	self.$popup.find("a.close").click(function(e)
    	{
    		e.preventDefault();
    		
    		$("div.popup")
                .find(".playerContainer").css("visibility", "hidden").end() // Avoid weird flash fadeout
    		    .fadeOut(function()
	    		{
	    			$(this).find("#playerContainer").empty();
	    		});
    	});
    }
    
    this.logVideoClick = function(videoIdInt)
    {
        var postUrlStr = document.location.pathname.replace(/.html$/, '.log');
        
    	$.post(postUrlStr, { video_id: videoIdInt });
    }
		
		this.setMargin = function () {
				var w = self.$popup.outerWidth();
				var h = self.$popup.outerHeight();
        var mLeft = -w/2;
        var mTop = -h/2;
				self.$popup.css({marginLeft: mLeft+"px", marginTop: mTop+"px"});
			
    }
    
};

$(EXPOTV.Widget.VideoListPage.init);
