///////////////////////////////////////////////////////////////////////////////

//

//  ExtendedPlayer

//

//  This extends the base player class, you may override the base player

//  member functions or add additional player functionality here. Here 

//  we show a volume slider if you hover near the mute audio button.

//

///////////////////////////////////////////////////////////////////////////////

Type.registerNamespace('ExtendedPlayer');



ExtendedPlayer.Player = function(domElement)

{

    ExtendedPlayer.Player.initializeBase(this, [domElement]);    

}

ExtendedPlayer.Player.prototype =  {

    xamlInitialize: function() {    

        ExtendedPlayer.Player.callBaseMethod(this, 'xamlInitialize');    

        this._hoverVolumeControl = new ExtendedPlayer.MouseOverControl(this.get_element(), "VolumeControl");

    },



    xamlDispose: function() {

		if (this._hoverVolumeControl) this._hoverVolumeControl.dispose();

		this._hoverVolumeControl = null;

		ExtendedPlayer.Player.callBaseMethod(this, 'xamlDispose');    				

    }

}

ExtendedPlayer.Player.registerClass('ExtendedPlayer.Player', EePlayer.Player);



ExtendedPlayer.MouseOverControl = function(host, nameElement) {

    // plays animations on mouse enter/leave

    this._element = host.content.findName(nameElement);

    this._t1 = this._element.addEventListener("mouseEnter", Function.createDelegate(this, this._mouseEnter));

    this._t2 = this._element.addEventListener("mouseLeave", Function.createDelegate(this, this._mouseLeave));

    this._enter = host.content.findName(nameElement + "_MouseEnter");

    this._leave = host.content.findName(nameElement + "_MouseLeave");

}

ExtendedPlayer.MouseOverControl.prototype = {

    dispose: function() {

        this._element.removeEventListener("mouseEnter", this._t1);

        this._element.removeEventListener("mouseLeave", this._t2);

        this._enter = null;

        this._leave = null;

        this._element = null;

    },

    _mouseEnter: function() {

        this._enter.begin();

    },

    _mouseLeave: function() {

        this._leave.begin();

    }

}

ExtendedPlayer.MouseOverControl.registerClass("ExtendedPlayer.MouseOverControl");