window.pemco = window.pemco || {};

/*
Creates a widget to view PEMCO commercials
*/
(function($) {

    var pub = pemco.commercials = {};

    /***** SETTINGS *****/

    var setting     = {};
    setting.autoPlay            = false;
    setting.isLoaded            = false;

    var lastLoaded  = {};
    lastLoaded.id               = null;
    lastLoaded.type             = null;
    lastLoaded.media_file       = null;
    lastLoaded.preview_file     = null;
    lastLoaded.pemco_number     = null;
    lastLoaded.pemco_title      = null;
    lastLoaded.event_count      = null;
    lastLoaded.codename         = null;
    lastLoaded.calendar_link    = null;
    lastLoaded.image_title      = null;

    var player;

    /***** FUNCTIONS *****/

    pub.construct = function() {

        pub.load();
    }
	
    pub.deconstruct = function() {

        pub.playerPause();

        //$("#jw_player_object").remove();

        $("#commercial_button").removeClass("commercial_button_selected");
        $("#commercial_button").addClass("commercial_button_clickable");
    }

    pub.load = function()
    {
        pemco.ajax.getPemcoProfileCommercials(function(res) {
            // populate sidebar
			$('#commercial_pane')
				.html(res.html)
				.jScrollPane({
					dragMaxHeight: 14,
					animateTo: !($.browser.msie && parseInt($.browser.version) == 8),
					showArrows: true
				})
			pemco.bbq.loadComplete('commercials');
			if(lastLoaded.codename) pub.setCommList(lastLoaded.codename);
        });
    }

    pub.loadmedia = function(id, type, media_file, preview_file, pemco_number, pemco_title, event_count, codename, calendar_link, autoPlayThis, image_title)
    {
        if(preview_file === undefined)
        {
            return;
        }

        // toggle icons
        var oldImage                = $('#comimage-'+lastLoaded.codename);
        var newImage                = $('#comimage-'+codename);

        if(oldImage[0])
        {
            //alert('#comimage-'+codename + ' is ' + oldImage.attr('src'));
            oldImage.attr('src', oldImage.attr('src').replace('.gif','_dark.gif'));
        }

        lastLoaded.id               = id;
        lastLoaded.type             = type;
        lastLoaded.media_file       = media_file;
        lastLoaded.preview_file     = preview_file;
        lastLoaded.pemco_number     = pemco_number;
        lastLoaded.pemco_title      = pemco_title;
        lastLoaded.event_count      = event_count;
        lastLoaded.codename         = codename;
        lastLoaded.calendar_link    = calendar_link;
        lastLoaded.image_title      = image_title;

        if(autoPlayThis)
        {
            pub.setAutoPlay(true);
        }

        if(false) //setting.isLoaded && $.browser.msie)
        {
            if(type == 'video') {
                    if(player)
                    {
                        player.sendEvent("LOAD", "../files/ads/"+type+"/"+media_file);
                        pub.playerPlay();
                    }

                    //if(codename == "goatrenterguy") so.addVariable('image', "images/movie_preview_goat_guy.jpg");
                    $("#mediaspace_object").show();
                    $("#player_preview_file").html("");
            }

            // Audio
            else {
                    if(player)
                    {
                        player.sendEvent("LOAD", "files/ads/"+type+"/"+media_file);
                        pub.playerPlay();
                    }

                    $("#mediaspace_object").hide();
                    $("#player_preview_file").html("<img src='files/ads/images/" + (preview_file || 'default_audio_image.png') + "' width=436 height=327>");
            }
        }
        else
        {
            //  CLEAN OUT OLD OBJECT
            //$("#jw_player_object").remove();
			swfobject.removeSWF('ply');

			$('#mediaspace').html("<div id='mediaspace_object'></div>");

            //if($.browser.msie)
            //{
            //    var so = new SWFObject('player/player.swf','ply','436', type == 'video' ? '325' : '325','9','#ffffff');
            //}
            //else
            //{
            //    var so = new SWFObject('player/player.swf','ply','436', type == 'video' ? '325' : '0','9','#ffffff');
            //}
            //so.addParam('allowfullscreen','true');
            //so.addParam('allowscriptaccess','always');
            //so.addParam('wmode','opaque');
            //so.addVariable('controlbar', 'none');

			//<!-- Adobe recommends that developers use SWFObject2 for Flash Player detection. -->
			//<!-- For more information see the SWFObject page at Google code (http://code.google.com/p/swfobject/). -->
			//<!-- Information is also available on the Adobe Developer Connection Under "Detecting Flash Player versions and embedding SWF files with SWFObject 2" -->
			//<!-- Set to minimum required Flash Player version or 0 for no version detection -->
			var swfVersionStr = "10.1.52";
			//<!-- xiSwfUrlStr can be used to define an express installer SWF. -->
			var xiSwfUrlStr = "";
			var flashvars = {};
			var params = {};
			params.quality = "high";
			params.bgcolor = "#f3efe7";
			params.outline = "none";
			params.play = "true";
			params.loop = "true";
			params.wmode = "opaque";
			params.scale = "showall";
			params.menu = "false";
			params.devicefont = "false";
			params.salign = "";
			params.allowscriptaccess = "sameDomain";
			var attributes = {};
			attributes.id = "ply";
			attributes.name = "ply";
			attributes.align = "middle";
			flashvars.controlbar = 'none';

            // Video
            if(type == 'video') {
                    flashvars.file = "../files/ads/"+type+"/"+media_file;
                    if(codename == "goatrenterguy")
					{
						flashvars.image = "images/movie_preview_goat_guy.jpg";
					}
                    $("#player_preview_file").html("");
            }

            // Audio
            else {
                    flashvars.file = "files/ads/"+type+"/"+media_file;
                    $("#player_preview_file").html("<img src='files/ads/images/" + (preview_file || 'default_audio_image.png') + "' width=436 height=327>");
            }

            //so.write('mediaspace');

            if($.browser.msie)
            {
                //var so = new SWFObject('player/player.swf','ply','436', type == 'video' ? '325' : '0','9','#ffffff');
				if(type == 'video')
				{
					swfobject.embedSWF(
							"player/player.swf", "mediaspace_object",
							"436", "325",
							swfVersionStr, xiSwfUrlStr,
							flashvars, params, attributes);
					$("#mediaspace_object").show();
				}
				else
				{
					swfobject.embedSWF(
							"player/player.swf", "mediaspace_object",
							"436", "0",
							swfVersionStr, xiSwfUrlStr,
							flashvars, params, attributes);
					$("#mediaspace_object").hide();
				}
            }
            else
            {
                //var so = new SWFObject('player/player.swf','ply','436', type == 'video' ? '325' : '0','9','#ffffff');
				if(type == 'video')
				{
					swfobject.embedSWF(
							"player/player.swf", "mediaspace_object",
							"436", "325",
							swfVersionStr, xiSwfUrlStr,
							flashvars, params, attributes);
				}
				else
				{
					swfobject.embedSWF(
							"player/player.swf", "mediaspace_object",
							"436", "0",
							swfVersionStr, xiSwfUrlStr,
							flashvars, params, attributes);
				}
            }

        }

        $(".relatedlinks").show();
        $(".mediacontrols").show();
        if(image_title.length)
        {
            var image_title_height = 107;

            switch(pemco_number)
            {
               case '4':
               case '42':
               case '54':
               case '75':
               case '78':
                   image_title_height = 177;
                   break;

               case '13':
               case '16':
               case '23':
               case '26':
               case '33':
               case '34':
               case '63':
               case '66':
               case '77':
               case '91':
               case '96':
               case '100':
                   image_title_height = 141;
                   break;

               case '31':
               case '52':
               case '80':
               case '82':
                   image_title_height = 73;
                   break;
            }

            $("#commercials_panel_profile_number").html("");
            $("#commercials_panel_profile_name").html("<img src='images/profiles/"+image_title+"' border='0' width='237' height='"+image_title_height+"'>");
        }
        else
        {
            $("#commercials_panel_profile_number").html("NORTHWEST PROFILE <span class=\"pound\">#</span><span class=\"number\">"+pemco_number+"</span>");
            $("#commercials_panel_profile_name").html(pemco_title);
        }
        $("#commercials_panel_profile_link").html("<a href='#profiles/"+codename+"' class='commercial_rel'><img src='images/viewthisprofile.gif' /></a>");

	pub.setCommList(codename);

        if(event_count > 0)
        {
            $("#commercials_panel_cal_link").html("<a class=\"commercial_rel cal\" href=\"/calendar.aspx?nw_type="+codename+"\"><img src=\"images/relatedcalevent.png\" /></a>");
        }

        setting.isLoaded = true;
    }

    pub.soundOff = function()
    {
        $('#player_sound_on').hide();
        $('#player_sound_off').show();

        if(player)
		{
			player.sendEvent('MUTE', 'true');
		}
    }

    pub.soundOn = function()
    {
        $('#player_sound_on').show();
        $('#player_sound_off').hide();

        if(player)
		{
			player.sendEvent('MUTE', 'false');
		}
    }

    pub.replay = function()
    {
        if(lastLoaded.id)
        {
            if(lastLoaded.type == 'video')
            {
                if(player) {
                    player.sendEvent('SEEK', 0);
                    player.sendEvent('PLAY', true);
                }
            }
            else
            {
                pemco.commercials.loadmedia(lastLoaded.id, lastLoaded.type, lastLoaded.media_file, lastLoaded.preview_file, lastLoaded.pemco_number, lastLoaded.pemco_title, lastLoaded.event_count, lastLoaded.codename, lastLoaded.calendar_link, true, lastLoaded.image_title);
            }
        }
    }

    pub.playerPlay = function()
    {
        if(player)
        {
            if(player.sendEvent)
                player.sendEvent('PLAY', true);
        }
    }

    pub.playerPause = function()
    {
        if(player)
        {
            if(player.sendEvent)
                player.sendEvent('PLAY', false);
        }
    }

    pub.playerReplay = function()
    {
        pub.replay();
    }

    pub.setAutoPlay = function(autoPlayValue)
    {
        setting.autoPlay = autoPlayValue;
    }

    pub.getAutoPlayValue = function()
    {
        return setting.autoPlay;
    }

	pub.setCommList = function(codename) {
		$('.comm_list .active').removeClass('active');
		scrollCommListTo(codename);
	}

	var scrollCommListTo = function(codename) {
		var $pane = $('#commercial_pane');
		if(!$pane[0] || !$pane[0].scrollTo) return;
		if(codename)
                {
			var $scroll = $pane.closest('.jScrollPaneContainer');
			var $center = $('#comlink-'+codename);
			var $image  = $('#comimage-'+codename);
			if($center[0]) {
				var scrollPx = Math.min(Math.max(0, $center.position().top - ($scroll.height()/2)), $pane.height() + ($scroll.height()/2));
				$center.addClass('active');

                                //alert('#comimage-'+codename + ' is ' + $image.attr('src'));
                                $image.attr('src', $image.attr('src').replace('_dark.gif','.gif'));

				$pane[0].scrollTo(scrollPx);
				return;
			}
		}
		$pane[0].scrollTo(0);
	}

	window.playerReady = function(thePlayer)
	{
		player = window.document[thePlayer.id];

		if(pemco.commercials.getAutoPlayValue())
		{
			if(player) player.sendEvent('PLAY', true);
			pemco.commercials.setAutoPlay(false);

                    if($.browser.msie && lastLoaded.type != 'video')
                    {
                        $("#mediaspace_object").hide();
                    }

		}
	}
})(jQuery);


