﻿///////////////////////////////////////////////////////////////////////////////
//
//  ExtendedPlayer
//
//  This extends the base player class, you may override the base player
//  member functions or add additional player functionality here.
//
///////////////////////////////////////////////////////////////////////////////
Type.registerNamespace('ExtendedPlayer');

ExtendedPlayer.Player = function(domElement) {
	ExtendedPlayer.Player.initializeBase(this, [domElement]);  
}
ExtendedPlayer.Player.prototype =  {
	onPluginLoaded: function(args) {    
		ExtendedPlayer.Player.callBaseMethod(this, 'onPluginLoaded', [args]);            
	},

    onCurrentStateChanged: function(args) {
        ExtendedPlayer.Player.callBaseMethod(this, "onCurrentStateChanged", [args]);
		try {
			var nhost = document.getElementById("xamlHost0");
			var vv = nhost.content.findName("VideoWindow2");

			//this._me.currentState === 'Buffering'	'Closed'	'Error'		'Opening'	'Paused'	'Playing'	'Stopped'
			switch(this._me.currentState)
			{
				case 'Playing':
				  var VGAsec = Math.floor(this._me.position.seconds); //parseInt(this._me.position.seconds);
				  var VIDsec = Math.floor(vv.position.seconds); //parseInt(this._me.position.seconds);
				  if (VGAsec != VIDsec) {
				  	this.set_position(VGAsec + 0.1);
				  } else {
				  	vv.play();
				  }
				  break;    
				case 'Paused':	//alert('Paused');
				  vv.pause();
				  break;
				case 'Buffering':	//alert('Paused');
				  vv.pause();
				  break;  
				case 'Error':
					alert("Encountered an error...");
					break;
				default:
			}
	    }
	    catch(e){
			alert(e);	
	    }
    },
	
	set_position: function(value) {
		ExpressionPlayer.Player.callBaseMethod(this, 'set_position', [value]);
		try {
			var nhost = document.getElementById("xamlHost0");
			var vv = nhost.content.findName("VideoWindow2");
			var npos = vv.position;
			npos.seconds = this._me.position.seconds;
			vv.position = npos;
//			alert(vv.source);
//			vv.position.seconds = this._me.position.seconds;			
	    }
	    catch(e){
			alert(e);	
	    }
//		alert(this._me.position.seconds);
	},

	pluginDispose: function() {
		ExtendedPlayer.Player.callBaseMethod(this, 'pluginDispose');
	}
}
ExtendedPlayer.Player.registerClass('ExtendedPlayer.Player', ExpressionPlayer.Player);