
var JStxtbTitle = 'Dalai Lama'; //'Sample demo title';
var TStxtbPresenters = 'Dalai Lama';// 'John Doe';
var JStxtDateTime = '3rd October 2009';
var JSMedia1 = 'http://qmjhl.edgeboss.net/wmedia-live/qmjhl/59497/700_qmjhl-pqm-20091003-dala_090927.asx'; //'http://cool02.campus.mcgill.ca:8000/SD1.wmv'; //'To_The_Limit_720.wmv'; // 'http://cool02.campus.mcgill.ca:8000/HD1.wmv'; // 'mms://media1.campus.mcgill.ca:80/COOLContent/SpecialEvents/TESTING/20090219_1801_50_10112/20090219_1801_50_10112.VID.wmv'; //'mms://cool02.campus.mcgill.ca:8000/PULL_VGA_2'; //'mms://media1.campus.mcgill.ca:80/COOLCONTENT/200801/BIOL-202-001/20080130_0830_99694/20080130_0830_99694.VGA.asf.wmv';	//
var JSMedia2 = 'http://qmjhl.edgeboss.net/wmedia-live/qmjhl/59497/700_qmjhl-pqm-20091003-dala_090927.asx'; //mms://cool02.campus.mcgill.ca:8000/PULL_VGA_2'; //'mms://media1.campus.mcgill.ca:80/COOLCONTENT/200801/BIOL-202-001/20080130_0830_99694/20080130_0830_99694.VID.wmv';	//"20090211_2023_25_53551.VID.wmv";
var JSEnableFeedback = false;
var JSEventState = 'NOTSTARTED'; //'NOTSTARTED'; //'PUBLISHING'; //'TEMP' 'AAA' //'BROADCASTING'
var JSMediaChapters = '';

function rgbToHex(rgb)
{
	var strHex="0123456789ABCDEF";
	var ichBracket=rgb.indexOf("(");
	if (ichBracket!=-1) {
		var rgstr = rgb.substr(ichBracket+1, rgb.length-ichBracket-2).split(',');
		rgb = "#"+ strHex[parseInt(rgstr[0])>>4]+strHex[parseInt(rgstr[0])%16]+
			   strHex[parseInt(rgstr[1])>>4]+strHex[parseInt(rgstr[1])%16]+
			   strHex[parseInt(rgstr[2])>>4]+strHex[parseInt(rgstr[2])%16];
	}
	return rgb;
}

function StartPlayer_0(parentId) {
    try {
    	eval('document.body.style.backgroundColor="#ffffff"');
    } catch(e){}

    this._hostname = ExpressionPlayer.Player._getUniqueName("xamlHost");
    Silverlight.createObjectEx( {   source: 'player.xaml',
                                    parentElement: $get(parentId ||"divPlayer_0"),
                                    id:this._hostname,
                                    properties:{ width:'100%', height:'100%', version:'1.0', background:rgbToHex(document.body.style.backgroundColor), isWindowless:'false', inplaceInstallPrompt:true },
                                    events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );
    this._currentMediainfo = -1;
}
StartPlayer_0.prototype= {
    _handleLoad: function() {
        this._player = $create(   ExtendedPlayer.Player,
                                  { // properties
                                    autoPlay       : this.autoPlayParam(),
                                    autoLoad       : this.autoLoadParam(),
				    scaleMode 	   : this.scaleModeParam(),
                                    muted          : this.mutedParam(),
				    enableCaptions : this.enableCaptionsParam(),
                                    volume         : 1.0
                                  },
                                  { // event handlers
                                    mediaEnded: Function.createDelegate(this, this._onMediaEnded),
                                    mediaFailed: Function.createDelegate(this, this._onMediaFailed),
                                    playPreviousVideo: Function.createDelegate(this, this._onPlayPreviousVideo),
                                    playNextVideo: Function.createDelegate(this, this._onPlayNextVideo)
                                  },
                                  null, $get(this._hostname)  );

    this._playlist=[];

	try {
		if ((JSEventState == 'BROADCASTING') && (JSMedia2 != '')) {
			var tempmedia = JSMedia1;
			JSMedia1 = JSMedia2;
			JSMedia2 = tempmedia;

			var nhost = document.getElementById("xamlHost0");
			var CMP1 = nhost.content.findName("VideoWindow");
			var CMP2 = nhost.content.findName("VideoWindow2");
			var newBuf = CMP1.BufferingTime.Seconds;
			newBuf = 0;
			CMP1.BufferingTime.Seconds = newBuf;
			CMP2.BufferingTime.Seconds = newBuf;
		}
	} catch(e){}

    try {
        eval( 'this._playlist=['+
		'{"mediaSource":"' + JSMedia1 + '",'+
		'"placeholderSource":"",'+
		'"chapters":' +
			'[' +
	            JSMediaChapters +
			']}' +
		'];');
	} catch(e){}

    this._galleryItems=[];
    try {
        eval( 'this._galleryItems=['+
		'new ExpressionPlayer.GalleryItem("TEST","2008-FALL_32-QA-CHWR_20081009_1610_31_57670[1].VGA_Thumb.jpg")'+
		'];' );
    }
    catch(e){}

    this._player.set_galleryInfo( this._galleryItems, Function.createDelegate(this, this._onClickGalleryItem) );
    this._onPlayNextVideo(null,null);

	this._loadSS(null);

//	this._loadEventsUI(null);
//	this._loadEventsMetaData(null);
//	if ((JSEventState == 'BROADCASTING') && (JSMedia2 != '')) {this.BroadCastingSwap(null, null);}
    },


_loadSS : function() {
	var nhost = document.getElementById("xamlHost0");
	this.BWSelector = nhost.content.findName("BWSelector");
	this.BWSelector.Visibility = "Visible";


	this.buttonHBW = nhost.content.findName("ConnectHBW");
	this.buttonLBW = nhost.content.findName("ConnectLBW");
	this.VideoWindow = nhost.content.findName("VideoWindow");


	if (this.VideoWindow.Source == "") {
		this.BWSelector.Visibility = "Visible";
	} else {
		this.BWSelector.Visibility = "Collapsed";
	}

	this.buttonHBW.addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this.handlerConnectoHBW));
	this.buttonLBW.addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this.handlerConnectoLBW));

	this.buttonresolution = nhost.content.findName("resolution");
	this.buttonresolution.addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this.handlerresolution));

},


handlerresolution: function(sender, eventArgs) {
	var nhost = document.getElementById("xamlHost0");
	this.BWSelector = nhost.content.findName("BWSelector");
	this.BWSelector.Visibility = "Visible";
},

handlerConnectoHBW: function(sender, eventArgs) {
	var nhost = document.getElementById("xamlHost0");
	this.VideoWindow = nhost.content.findName("VideoWindow");
	this.VideoWindow.Source = JSMedia1;

	this.BWSelector = nhost.content.findName("BWSelector");
	this.BWSelector.Visibility = "Collapsed";
//	alert(this.BWSelector.Visibility);
//	alert(this.VideoWindow.C);
},

handlerConnectoLBW: function(sender, eventArgs) {
	var nhost = document.getElementById("xamlHost0");
	this.VideoWindow = nhost.content.findName("VideoWindow");
	this.VideoWindow.Source = JSMedia2;

	this.BWSelector = nhost.content.findName("BWSelector");
	this.BWSelector.Visibility = "Collapsed";
},


	_loadEventsMetaData : function() {
		try {
				var nhost = document.getElementById("xamlHost0");
				this.txtbTitle = nhost.content.findName("txtbTitle");
				this.txtbPresenters = nhost.content.findName("txtbPresenters");
				this.txtbDateTime = nhost.content.findName("txtbDateTime");

				this.txtbTitle.text = JStxtbTitle;
				this.txtbPresenters.text = TStxtbPresenters;
				this.txtbDateTime.text = JStxtDateTime;
		} catch(e){}
	},

	_loadEventsUI : function() {
	    try {
			var nhost = document.getElementById("xamlHost0");
			var Placeholder1 = nhost.content.findName("Placeholder1");
			var Placeholder2 = nhost.content.findName("Placeholder2");
			var CMP1 = nhost.content.findName("VideoWindow");
			var CMP2 = nhost.content.findName("VideoWindow2");

			if (JSEventState == 'PUBLISHING') {
				if (Placeholder1) {Placeholder1.Source = "PUBLISHING.jpg";}
				if (Placeholder2) {Placeholder2.Source = "PUBLISHING.jpg";}
			} else {
				if (Placeholder1) {Placeholder1.Source = "NOTSTARTED.jpg";}
				if (Placeholder2) {Placeholder2.Source = "NOTSTARTED.jpg";}
			}

			if (CMP2) {
				CMP2.source = JSMedia2;
				this.btnSwap = nhost.content.findName("swap");
				this.btnSwap.addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this.handleswap));
			}

	        this.ButtonAsk = nhost.content.findName("ButtonAsk");
	        this.ButtonAsk.addEventListener("MouseLeftButtonUp", Function.createDelegate(this, this.handleButtonAsk));
			if (JSEnableFeedback) {
				this.ButtonAsk.Visibility = 'Visible';
			} else {
				this.ButtonAsk.Visibility = 'Collapsed';
			}

	    } catch(e){alert(e);}
	},

    handleButtonAsk: function(sender, eventArgs) {
        // The following line of code shows how to find an element by name and call a method on it.
        alert("going to open new page");
        //window.open('../SubmitFeedback.aspx', 'Feedback', 'width=900,height=300,toolbar=no, location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no, resizable=yes');
    },

    handleswap: function(sender, eventArgs) {
	    try {
	        var VB1BV = sender.findName("VB1BV");
			var VB1FS = sender.findName("VB1FS");
			var VB2BV = sender.findName("VB2BV");
	        var VB2FS = sender.findName("VB2FS");
			if (VB2BV) {
		        if (VB1BV.SourceName == "VideoWindow") {
		            VB1BV.SourceName = "VideoWindow2";
		            VB1FS.SourceName = "VideoWindow2";
					VB2BV.SourceName = "VideoWindow";
		            VB2FS.SourceName = "VideoWindow";
		        } else {
		            VB1BV.SourceName = "VideoWindow";
		            VB1FS.SourceName = "VideoWindow";
					VB2BV.SourceName = "VideoWindow2";
		            VB2FS.SourceName = "VideoWindow2";
		        }
			}
	    } catch(e){alert(e);}
    },

    BroadCastingSwap: function(sender, eventArgs) {
	    try {
			var nhost = document.getElementById("xamlHost0");
	        var VB1BV = nhost.content.findName("VB1BV");
			var VB1FS = nhost.content.findName("VB1FS");
			var VB2BV = nhost.content.findName("VB2BV");
	        var VB2FS = nhost.content.findName("VB2FS");
			if (VB2BV) {
		        if (VB1BV.SourceName == "VideoWindow") {
		            VB1BV.SourceName = "VideoWindow2";
		            VB1FS.SourceName = "VideoWindow2";
					VB2BV.SourceName = "VideoWindow";
		            VB2FS.SourceName = "VideoWindow";
		        } else {
		            VB1BV.SourceName = "VideoWindow";
		            VB1FS.SourceName = "VideoWindow";
					VB2BV.SourceName = "VideoWindow2";
		            VB2FS.SourceName = "VideoWindow2";
		        }
			}
	    }catch(e){alert(e);}
    },

    _onClickGalleryItem : function (galleryItemIndex) {
        this._player.set_mediainfo( this._playlist[ galleryItemIndex ] );
        this._currentMediainfo = galleryItemIndex+1;
    },

    _onMediaEnded: function(sender, eventArgs) {
        window.setTimeout( Function.createDelegate(this, this._onPlayNextVideo), 1000);
    },

    _onMediaFailed: function(sender, eventArgs) {
        alert(String.format( Sys.UI.Silverlight.MediaPlayer.Res.mediaFailed, this._player.get_mediaSource() ) );
    },


    _onPlayPreviousVideo: function(sender, eventArgs) {
        if (this._playlist!=null) {
            if (this._currentMediainfo>0) {
                this._player.set_mediainfo( this._playlist[ --this._currentMediainfo ] );
            }
        }
    },

    _onPlayNextVideo: function(sender, eventArgs) {
        if (this._playlist!=null) {
            if (this._currentMediainfo<this._playlist.length-1) {
                this._player.set_mediainfo( this._playlist[ ++this._currentMediainfo ] );
            }
        }
    },

    autoLoadParam: function() {
	    var autoLoad=true;
	    try {
		    eval("autoLoad=('True'!=='False')");
	    } catch(e){}
	    return autoLoad;
    },

    autoPlayParam: function() {
	    var autoPlay=true;
	    try
	    {
		    eval("autoPlay=('True'!=='False')");
	    } catch(e){}
	    return autoPlay;
    },

    scaleModeParam: function() {
	    var scaleMode = 1/*Normal*/;
	    try {
		    eval("scaleMode=1;");
	    } catch(e){}
	    return scaleMode;
    },

    enableCaptionsParam: function() {
	    var enableCaptions=true;
	    try {
		    eval("enableCaptions=('True'!=='False');");
	    } catch(e){}
	    return enableCaptions;
    },

    mutedParam: function() {
	    var muted=false;
	    try {
		    eval("muted=('False'!=='False');");
	    } catch(e){}
	    return muted;
    }
}

function StartWithParent(parentId, appId) {
    new StartPlayer_0(parentId);
}