// YouTube init function
function onYouTubePlayerReady(playerId) {
	var player = EL.getObject(playerId);
	if (player) {
		player.initYoutube();
	}
}

// JWPlayer init function
function playerReady(obj)
{
	var player = EL.getObject(obj.id);
	if (player) {
		player.initJW();
	}
};


EL.Video = function (type, id, props)
{
	this.id = id;
	this.type = type;
	this.props = props;
	this.link = "/library/research/video_view-"+id;
	
	var swfUrlStr = "";
	var replaceElemIdStr = props.domid;
	var swfVersionStr = "8";
	var xiSwfUrlStr = null;
	var flashvarsObj = null;
	var parObj = {allowScriptAccess: "always"};
	var attObj = {id: props.domid};
	var useSWFObject = true;
	switch (type) {
		case 'youtube':
			swfUrlStr = "http://www.youtube.com/v/"+this.props['ytid']+"&enablejsapi=1&playerapiid="+props.domid;
			break;
		case 'jw':
			var frame = '/files/video/frame/'+id+'.jpg';
			var v = this;
			swfUrlStr = "/files/flash/jw_player.swf";
			swfVersionStr = "9.0.115";
			flashvarsObj = {
				'file' : 'http://energyland.info/files/video/'+id+'.'+this.props['ext'],
				'image' : frame,
				id: props.domid,
				autostart: props.autostart
			};
			parObj.allowfullscreen = "true";
			attObj = {"id" : props.domid, 'name': props.domid};
			break;
		case 'flow':
			var frame = '/files/video/frame/'+id+'.jpg';
			var v = this;
			useSWFObject = false;
			var clipItem = {url:"http://energyland.info/files/video/"+id+'.'+props['ext'], autoPlay:props.autostart};
			if (v.props.onclick == 'link') {
				clipItem.autoBuffering = false;
				clipItem.linkUrl = v.link;
				clipItem.linkWindow = '_self';
				clipItem.onBegin = function(clip){
					this.stop();
					this.stopBuffering();
					v.redirect();
					return false;
				}
			} else {
				clipItem.onBegin = function(clip){
					v.increaseCounter();
				}
			}
			flowplayer(props.domid, "/files/flash/flowplayer/flowplayer-3.1.1.swf", {
				playlist:[{url:frame,scaling:"scale"}, clipItem]
			});
			break;
		default:
			throw "Unknown video type";
	}
	if (useSWFObject) {
		swfobject.embedSWF(swfUrlStr, props.domid, props.width, props.height, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj);
	}
};

EL.Video.prototype = {
	initYoutube: function()
	{
		var v = this;
		v.player = $('#'+this.props.domid).get(0);
		v.player.addEventListener('onStateChange', "EL.getObject('"+this.props.domid+"').youtubeEvent()");
		if (v.props.autostart) {
			v.player.playVideo();
		}
	},
	youtubeEvent: function()
	{
		if (this.player.getPlayerState() == 3 && this.props.onclick == 'link') {
			this.player.stopVideo();
			this.redirect();
		} else {
			this.increaseCounter();
		}
	},
	initJW: function()
	{
		var v = this;
		v.player = $('#'+this.props.domid).get(0);
		if (v.player.tagName == 'OBJECT') {
			v.player.addViewListener("PLAY", "function(){EL.getObject('"+this.props.domid+"').jwEvent()}");
		}
	},
	jwEvent: function(args)
	{
		if (this.props.onclick == 'link') {
			this.player.sendEvent("STOP","true");
			this.redirect();
		} else {
			this.increaseCounter();
		}
	},
	redirect: function()
	{
		document.location = this.link;
	},
	increaseCounter: function()
	{
		$.post('/ajax/video_counter.php', {id: this.id});
	}
};
