var cVideos = 20; //How many video Clips do we have?
var QueryString = "";
var currentMediaInfo = 0;

function get_mediainfo(mediainfoIndex) {

    switch (mediainfoIndex) {        

        case 0:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net/a2294/o21/presspass/BillG/Anthem_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [  
                                  ] }; 
        case 1:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Greenberg-Photo_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [                                          
                                  ] }; 
        case 2:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Marquardt-Investment_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 3:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Shirley-Public_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };   
        case 4:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Raiked-Bug_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };   
        case 5:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Wood_Mattress_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] }; 
        case 6:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Maritz_Review_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] }; 
        case 7:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Maples_workhours_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };   
        case 8:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Braiterman_future_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };   
        case 9:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Gates_TrafOData_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };   
        case 10:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Myhrvold-MSR_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };
        case 11:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Lubow-Suit_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };
        case 12:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/BillG-The_Early_Years_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 13:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/BillG-Harvard_and_Beyond_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 14:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/The_Birth_of_MS_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 15:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Comp_On_Every_Desk_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 16:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/The_Win_Revolution_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 17:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/Growing_Pains_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 18:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/The_Revolution_Continue_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };  
        case 19:
            return  { "mediaUrl": "http://msstudios.wmod.llnwd.net:80/a2294/o21/presspass/BillG/BillG-Changing_the_World_MBR.wmv",
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
        default:
             throw Error.invalidOperation("No such mediainfo '" + mediainfoIndex + "'");
     }
}

function StartWithParent(parentId, appId) {
    new StartPlayer_0(parentId);
}

function StartPlayer_0(query, parentId) {
    if (query != "" && query <= cVideos)
    {
        QueryString = query;
        //play video specified in query string
        currentMediaInfo = Number(query);         
    }
    else
        currentMediaInfo = 0;
        
        this._hostname = EePlayer.Player._getUniqueName("xamlHost");
        Silverlight.createObjectEx( {   source: 'player.xaml', 
                                            parentElement: $get(parentId ||"divPlayer_0"), 
                                            id:'pluginname', 
                                            properties:{ width:'692', height:'660', version:'1.0', background:"#00000000", isWindowless:'true' }, 
                                            events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );
  
}
StartPlayer_0.prototype= {
   
    _handleLoad: function(plugIn) {
        var playerControls = plugIn.Content.findName("PlayerControls");
        playerControls.Visibility = "Visible";
        
        //Initiate video player - automatically start video
            this._player = $create(   ExtendedPlayer.Player, 
                              { // properties
                                autoPlay    : true, 
                                volume      : 0.7,
                                muted       : false
                              }, 
                              { // event handlers
                                mediaEnded: Function.createDelegate(this, this._onMediaEnded),
                                mediaFailed: Function.createDelegate(this, this._onMediaFailed)
                              },
                              null, $get('pluginname')  );     
                             
        //Start - Setup scrollbar events 
   		this.buttonOverAni = plugIn.Content.findName("buttonOver");
		this.buttonOutAni = plugIn.Content.findName("buttonOut");	
		
        for (var i = 0; i < cVideos; i++)
        {
            var element = plugIn.Content.findName('btn_' + i);				
	
		    element.addEventListener("MouseEnter", Function.createDelegate(this, this.buttonOver));
		    element.addEventListener("MouseLeave", Function.createDelegate(this, this.buttonOut));
		    element.addEventListener("MouseLeftButtonDown",Function.createDelegate(this, this.buttonDown));
		    element.addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._playX));  
		} 
        //End - Setup scrollbar events

        if(QueryString != "" && QueryString != null)
        {
            //Querystring provided; automatically play video
            this.setHeading(plugIn.Content, QueryString); 
            this.resetSplash();
            this._playVideo();
        }
        else
        {
             //No querystring provided, show anthem splash page 
            this.setHeading(plugIn.Content, 0);
            this.showAnthemSplash(plugIn.Content);         
        }
        
             
    }, 
    resetSplash: function()
    {
        var plugIn = $get('pluginname');
        plugIn.content.findName("AnthemSplash").Visibility = "Collapsed";
        plugIn.content.findName("PlayerControls").Visibility = "Visible";   
        plugIn.content.findName("btn_Watch").Visibility = "Collapsed";          
        plugIn.content.findName("BlackFade").Opacity = 0;         
    },
    showAnthemSplash: function(sender)
    {
        sender.findName("AnthemSplash").Visibility = "Visible";
        sender.findName("PlayerControls").Visibility = "Collapsed";
        var Btn = sender.findName("btn_Watch");
        Btn.addEventListener("MouseLeftButtonDown",Function.createDelegate(this, this.WatchVideo));        
    },
    WatchVideo: function(sender, eventArgs)
    {   
        this._playVideo(); 
        sender.findName("btn_Watch").Visibility = "Collapsed";          
        sender.findName("PlayerControls").Visibility = "Visible";
    },
    ReplayVideo: function()
    {           
        this.resetSplash();
        this.hideReplayBackground();
        this._playVideo();
    },    
    //Play video - thumbnail clicked
    _playX: function(sender, eventArgs) {
        var X = Number(sender.Name.substring(4));
        
        sender.findName("blueFill_" + X).Opacity = "0";	    
	    
	    //Set Active heading
	    this.setHeading(sender, X);  
	    
	    this.hideReplayBackground();
        
        currentMediaInfo = X;        
        this._playVideo();
        sender.opacity=1;
    },
    //Set Video heading 
    setHeading: function(sender, ID)
    {
	    //Hide all
	    for (var i = 0; i < cVideos; i++)
        {
	        var Heading = sender.findName("txtHeading_" + i);
	        Heading.Visibility = "Collapsed";
	    }
	    //Set active 
	    var activeHeading = sender.findName("txtHeading_" +ID);
	    activeHeading.Visibility = "Visible";          
    },
    //Set Active replay background    
    showReplayBackground: function()
    {
        var plugIn = $get('pluginname');
        var btnReplay = plugIn.content.findName("btn_Replay_" + currentMediaInfo);
        btnReplay.Visibility = "Visible";   
        btnReplay.addEventListener("MouseLeftButtonDown",Function.createDelegate(this, this.ReplayVideo));
             
    },
    //Hide all replay backgrounds
    hideReplayBackground: function()
    {
        var plugIn = $get('pluginname');	    
	    for (var i = 0; i < cVideos; i++)
        {
	        var replayImage = plugIn.content.findName("btn_Replay_" + i);
	        replayImage.Opacity = 0;
	        replayImage.Visibility = "Collapsed";
	    }  
    },  
    //Thumbnail button down        
	buttonDown: function(sender, eventArgs) 
	{
	    var X = Number(sender.Name.substring(4));
	    var BlueFill = sender.findName("blueFill_" + X);
	    BlueFill.opacity = "100";
		this.resetSplash();
	},
	//Thumbnail button release
	buttonRelease: function(sender, eventArgs) 
	{
	    var X = Number(sender.Name.substring(4));
	    var BlueFill = sender.findName("blueFill_" + X);
	    BlueFill.opacity = "0";	
	},
	//Thumbnail button over
	buttonOver:function(sender, args)
	{
	    this.buttonOverAni.stop();
	    
	    //Set animation targets to current slide elements
	    var X = Number(sender.Name.substring(4));
	    var myBo_X = sender.findName("bo_X");
	    var myBo_Y = sender.findName("bo_Y");	    
	    var myBo_XT = sender.findName("bo_XTooltip");
	    var myBo_YT = sender.findName("bo_YTooltip");
	    var myBo_Tooltip = sender.findName("bo_Tooltip");
	    var myBo_Shimmer1 = sender.findName("bo_Shimmer1");
	    var myBo_Shimmer2 = sender.findName("bo_Shimmer2");
	    var myBo_Shimmer3 = sender.findName("bo_Shimmer3");	 
	    myBo_XT["Storyboard.TargetName"] = "txtTooltip_" + X;  
	    myBo_YT["Storyboard.TargetName"] = "txtTooltip_" + X; 
	    myBo_Tooltip["Storyboard.TargetName"] = "txtTooltip_" + X; 
	    myBo_X["Storyboard.TargetName"] = sender.Name;
	    myBo_Y["Storyboard.TargetName"] = sender.Name;
	    myBo_Shimmer1["Storyboard.TargetName"] = "shimmer_" + X;
	    myBo_Shimmer2["Storyboard.TargetName"] = "shimmer_" + X;
	    myBo_Shimmer3["Storyboard.TargetName"] = "shimmer_" + X;
	    	    
	    this.buttonOverAni.begin();
	},
	//Thumbnail button out
	buttonOut:function(sender, args)
	{
	    this.buttonOutAni.stop();
	    
	    this.buttonRelease(sender, args);   //remove Blue Fill
	    
	    //Set animation targets to current slide elements
	    var X = Number(sender.Name.substring(4));
	    var myBout_X = sender.findName("bOut_X");
	    var myBout_Y = sender.findName("bOut_Y");
	    var myBout_XT = sender.findName("bOut_XTooltip");
	    var myBout_YT = sender.findName("bOut_YTooltip");
	    var myBout_Tooltip = sender.findName("bOut_Tooltip");	    
	    myBout_X["Storyboard.TargetName"] = sender.Name;
	    myBout_Y["Storyboard.TargetName"] = sender.Name;
	    myBout_XT["Storyboard.TargetName"] = "txtTooltip_" + X;  
	    myBout_YT["Storyboard.TargetName"] = "txtTooltip_" + X; 
	    myBout_Tooltip["Storyboard.TargetName"] = "txtTooltip_" + X; 	    
	    
	    this.buttonOutAni.begin();
	},
	           
    _onMediaEnded: function(sender, eventArgs) {
        var plugIn = $get('pluginname')
        plugIn.content.findName("PlayerControls").Visibility = "Collapsed";
        this.hideReplayBackground();
        
        //Fade-in black background & show the share module     
        plugIn.Content.findName("blackfade_show").begin();
        //update share module visibility
        hidden = false; 
               
        this.showReplayBackground();                
    },
    _onMediaFailed: function(sender, eventArgs) {
        alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );
    },
    _playVideo: function() {
        if (currentMediaInfo<cVideos)
            this._player.set_mediainfo( get_mediainfo( currentMediaInfo ) );    
    }        
}
