
function SilverlightPlayer( DOMparent, SceneFile, ThemeFile, Url, IsAd, BugUrl,VideoTitle, PermalinkUrl, ImageUrl )
{
	this.url			= Url;
	this.isAd			= IsAd;
	this.bugUrl			= BugUrl;
	this.imageUrl		= ImageUrl;
	this.permalinkUrl	= PermalinkUrl;
	this.videoTitle		= VideoTitle;
	
	_silverlightPlayer	= this;
	
	SilverlightPlayer.ThemeFile = ThemeFile;
	
	if( SilverlightController.IsCrossDomainLoad )
	{
		//give the xaml script time to initialize...
		setTimeout( function() { createMySilverlightPlugin( DOMparent, SceneFile, ThemeFile ); }, 200 );
}	
	else
	{
		//
		createMySilverlightPlugin( DOMparent, SceneFile, ThemeFile );
	}
}

SilverlightPlayer.ThemeFile;
SilverlightPlayer.ThemeNodes;
SilverlightPlayer.SilverlightVersion = '1.0';//'0.90.0';

SilverlightPlayer.prototype.PlayUrl = function( url, isAd, bugUrl,PermalinkUrl, ImageUrl )
{	
	var __Player = getPlayerInstance();
	
	if( __Player )
	{
		__Player.playUrl( url, isAd, bugUrl, PermalinkUrl, ImageUrl  );
	}
}

SilverlightPlayer.prototype.Wait = function()
{	
	var __Player = getPlayerInstance();
	
	if( __Player )
	{
		__Player.wait();
	}
}

SilverlightPlayer.prototype.Loading = function()
{	
	var __Player = getPlayerInstance();
	
	if( __Player )
	{
		__Player.loading();
	}
}
var _width;
var _height;
var _theme;

function getPlayerHeight()
{
	return _height;
}
function getPlayerWidth()
{
	return _width;
}
function getPlayerTheme()
{
	return _theme;
}

function createMySilverlightPlugin( DOMparent, SceneFile, ThemeFile )
{  
    _width = '' + DOMparent.clientWidth;
    _height = '' + DOMparent.clientHeight;
    _theme  = ThemeFile;
	
     var sceneParameter = SilverlightController.IsCrossDomainLoad ? '#xamlContent' : SceneFile;
	
     Silverlight.createObject(
        sceneParameter,
        DOMparent,                  // DOM reference to hosting DIV tag.
        "SilverlightPlayer",         // Unique plug-in ID value.
        {                               // Per-instance properties.
            width: _width,   // Width of rectangular region of 
                                        // plug-in area in pixels.
            height: _height, // Height of rectangular region of 
                                        // plug-in area in pixels.
            inplaceInstallPrompt:true, // Determines whether to display 
                                        // in-place install prompt if 
                                        // invalid version detected.
            background:'#000000',       // Background color of plug-in.
            isWindowless:'true',       // Determines whether to display plug-in 
                                        // in Windowless mode.
                                        
            framerate:'30',             // MaxFrameRate property value.
            version:SilverlightPlayer.SilverlightVersion // Silverlight version to use.
        },
        {
            onError:_HandleError,        // OnError property value -- 
                                        // event handler function name.
            onLoad:null        // OnLoad property value -- 
                                        // event handler function name.
        },
        null);                          // Context value -- event handler function name.
}

function _HandleError( sender, errorArgs )
{
	 // The error message to display.
    var errorMsg = "Silverlight Player Error: \n\n";
    
    // Error information common to all errors.
    errorMsg += "Error Type:    " + errorArgs.errorType + "\n";
    errorMsg += "Error Message: " + errorArgs.errorMessage + "\n";
    errorMsg += "Error Code:    " + errorArgs.errorCode + "\n";
    
    // Determine the type of error and add specific error information.
    switch(errorArgs.errorType)
    {
        case "RuntimeError":
            // Display properties specific to RuntimeErrorEventArgs.
            if (errorArgs.lineNumber != 0)
            {
                errorMsg += "Line: " + errorArgs.lineNumber + "\n";
                errorMsg += "Position: " +  errorArgs.charPosition + "\n";
            }
            errorMsg += "MethodName: " + errorArgs.methodName + "\n";
            break;
        case "ParserError":
            // Display properties specific to ParserErrorEventArgs.
            errorMsg += "Xaml File:      " + errorArgs.xamlFile      + "\n";
            errorMsg += "Xml Element:    " + errorArgs.xmlElement    + "\n";
            errorMsg += "Xml Attribute:  " + errorArgs.xmlAttribute  + "\n";
            errorMsg += "Line:           " + errorArgs.lineNumber    + "\n";
            errorMsg += "Position:       " + errorArgs.charPosition  + "\n";
            break;
        case "ImageError":
            break;
        default:
            break;
    }

	Player.Error( errorMsg );
}