var _playerState = null;
var nowPlaying = "liveplaylist";

function isCursorOverElement(id, e){
	var position = jQuery("#"+id).position();
	var offset = jQuery("#"+id).offset();
	var width = jQuery("#"+id).width();
	var height = jQuery("#"+id).height();
	
	if(e.pageX >= offset.left && e.pageX <= offset.left  + width &&
		e.pageY >= offset.top && e.pageY <= offset.top + height)
		
		return true;
		
	return false;
}

jQuery(document).ready(function () {

});

var locked = false;

//player
var currentIndex = 0;
var state = "IDLE";
var gid;
var playerlocked = true;
var player = null;
var itemPosition = 0;
 
playerSize = "small";

function updateTimes(id, index, secs){
	var hours = Math.floor(secs / (60 * 60));

    var divisor_for_minutes = secs % (60 * 60);
    var minutes = Math.floor(divisor_for_minutes / 60);
    
    var divisor_for_seconds = divisor_for_minutes % 60;
    var seconds = Math.ceil(divisor_for_seconds);

	var time = "Iniziato da ";
	if(hours) time += hours.toString() + "h ";
	if(minutes) time += minutes.toString() + "m ";	
	if(seconds) time += seconds.toString() + "s";
	
	jQuery("#bottom_middle #pl_item_" + index + " #time_" + index).html(time);
};

function playerItem(obj){
	if(obj['id'] == "player1"  || obj['id'] == "player2"){
		currentIndex = obj.index;
		updateTimes(obj['id'], obj.index, 0);
	
		jQuery("#bottom_middle .playlist_item_active .pl_time").html("");
		jQuery("#bottom_middle .playlist_item_active").css("display", "none");
		jQuery("#bottom_middle .playlist_item_active").removeClass("playlist_item");
		jQuery("#bottom_middle .playlist_item_active").removeClass("playlist_item_active");
		jQuery("#bottom_middle .playlist_item_active .playing").css("display", "none");
		
		jQuery("#bottom_middle #pl_item_" + obj.index).addClass("playlist_item_active");
		jQuery("#bottom_middle #pl_item_" + obj.index + " .playing").css("display", "block");
		
		updateInfo(obj.index);
		//ContentViews(obj.index);
	}
};

function playerTime(obj){
		updateTimes(obj['id'], currentIndex, obj.position);
		itemPosition = obj.position;
};

function playRelated(){
	jQuery("#bottom_middle .playlist_item_active .pl_time").html("");
	jQuery("#bottom_middle .playlist_item_active .playing").css("display", "none");
	jQuery("#bottom_middle .playlist_item_active").removeClass("playlist_item_active");
};

function playerItem1(obj){
	if(obj['id'] == "player3" || obj['id'] == "player4"){
		currentIndex = obj.index;
		
		jQuery("#bottom_middle .playlist_item_active .pl_time").html("");
		jQuery("#bottom_middle .playlist_item_active .playing").css("display", "none");
		jQuery("#bottom_middle .playlist_item_active").removeClass("playlist_item_active");
		
		jQuery("#bottom_middle #pl_item_" + obj.index).addClass("playlist_item_active");
		jQuery("#bottom_middle #pl_item_" + obj.index + " .playing").css("display", "block");
		
		jQuery.ajax({
  			url: '/frontpage/viewParameter/item/'+obj.index,
  			success: function(data) {		
    		},		
    		async: false
  		
		});
		
		updateInfo(obj.index);
		ContentViews(obj.index);
		
	}
};

function playerItem2(obj){
	if(obj['id'] == "player5" || obj['id'] == "player6"){
		currentIndex = obj.index;
		updateInfo(obj.index);
		ContentViews(obj.index);
	}
};

function ContentViews(itm){
	var playlist = player.getPlaylist();
	var content_id = playlist[itm].id
	
	if(content_id)
		jQuery.get("/content/recount_views", { ContentId: content_id} );
};

function playItem(itm, q){
	if(q != nowPlaying){
		new Ajax.Updater(
			'video', 
			'/frontpage/play/item/' + itm + '/q/' + q + '/update/video', 
			{asynchronous:true, evalScripts:true});
	}else{
		player = document.getElementById(gid);
		player.sendEvent("ITEM", itm);
	}	
}

var set_times_interval;
var item_while_paused = false;
function playerState(obj){
	_playerState = obj.newstate;
	
	if(item_while_paused && _playerState == "PLAYING"){
		item_while_paused = false;
		player.sendEvent("PLAY");
	}
	 
	if(obj.newstate == "PAUSED"){
		player.removeModelListener('TIME', 'playerTime');
		set_times_interval = setInterval ( setTimes, 1000 );
	}
	
	if(obj.newstate == "PLAYING" && obj.oldstate == "PAUSED"){
		clearInterval(set_times_interval);
		player.sendEvent("SEEK", itemPosition);
		player.addModelListener('TIME', 'playerTime');
	}
}

function setTimes(){
	itemPosition++;
	var playlist = player.getPlaylist();
	
	if(itemPosition > playlist[currentIndex]["duration"]){
		itemPosition = 0;
		clearInterval(set_times_interval);
		item_while_paused = true;
		player.sendEvent("NEXT");
		player.addModelListener('TIME', 'playerTime');
	}else{
		updateTimes(gid, currentIndex, itemPosition);
	}
}

function play(view){
	clearInterval(set_times_interval);
	
	jQuery.ajax({
  			url: '/frontpage/viewParameter/view/'+view,
  			success: function(data) {		
    		},		
    		async: false
	});
}

function playerReadyCallback(obj) {
	gid = obj['id'];
	player = document.getElementById(obj['id']);
	
	if(obj['id'] == "player2" || obj['id'] == "player1"){
		nowPlaying = "liveplaylist";	
		player.addModelListener('STATE', 'playerState');
		player.addControllerListener('ITEM', 'playerItem');
		player.addModelListener('TIME', 'playerTime');
	}
	
	if(obj['id'] == "player4"  || obj['id'] == "player3"){
		//nowPlaying = "other"
		player.addControllerListener('ITEM', 'playerItem1');	
	}
	
	if(obj['id'] == "player5"  || obj['id'] == "player6"){
		nowPlaying = "content"
		player.addControllerListener('ITEM', 'playerItem2');	
	}
	
	player.addViewListener('CHANGESIZE', 'playerChangeSize');
	player.sendEvent("CHANGESIZE", playerSize);
	
	playerlocked = false;
};

playerSize = "small";
function playerChangeSize(obj){
	playerSize = obj.state;
	if(playerSize == "large"){
		jQuery('#video_info').css('border-left', '0px solid #E0E0E0');
		jQuery('#video_info').css('width', '0px');
		jQuery('#video_info_loader').css('border-left', '0px solid #E0E0E0');
		jQuery('#video_info_loader').css('width', '0px');
		
		jQuery('#video').css("width", "968px");
		jQuery('#video').css("height", "722px");
		
		var video_offset = jQuery("#video").offset();
		jQuery.scrollTo(video_offset.top - 36, 500);
		
		jQuery(".video_info_nav_a").addClass("video_info_nav_a_large_player");
	}
	else{
		jQuery('#video').css("width", "624px");
		jQuery('#video').css("height", "470px");
		jQuery('#video_info').css('border-left', '4px solid #E0E0E0');
		jQuery('#video_info').css('width', '324px');
		jQuery('#video_info_loader').css('width', '324px');
		jQuery('#video_info_loader').css('border-left', '4px solid #E0E0E0');
		
		jQuery(".video_info_nav_a").removeClass("video_info_nav_a_large_player");
	}
};

function setVideoInfoNav(){
	if(playerSize == "large"){
		jQuery(".video_info_nav_a").addClass("video_info_nav_a_large_player");
	}
	else{
		jQuery(".video_info_nav_a").removeClass("video_info_nav_a_large_player");
	}
};

function videoInfoNavClick(){
	if(playerSize == "large"){
		player.sendEvent("CHANGESIZE", "small");
	}
};

function updateInfo(itm){
	var playlist = player.getPlaylist();
	var content_id = playlist[itm].id;

	new Ajax.Updater(
		'video_info',
		'/content/details/ContentId/'+content_id, {asynchronous:true, evalScripts:true,
			onComplete:function(request, json){frontend_hide('video_info_loader'); frontend_show('video_info'); 
				setVideoInfoNav();}, 
			onLoading:function(request, json){frontend_hide('video_info');frontend_show('video_info_loader');}
	});
};

/**/

/**/
function frontend_hide(id)
{
	document.getElementById(id).style.display = "none";
}
function frontend_show(id)
{
	document.getElementById(id).style.display = "block";
}

function videolist_hide(id){
	document.getElementById(id).style.display = "none";
}
function videolist_show(id){
	document.getElementById(id).style.display = "block";
}

function playSearch(){
	jQuery(".left_list_active").removeClass("left_list_active");
	
	new Ajax.Updater(
		'video',
		'/frontpage/play/q/search_res/search/' + document.getElementById('search').value, {asynchronous:true, evalScripts:true});
};


//-- user playlist
function userPlaylistAdd(content_id, obj)
{ 
	new Ajax.Updater('playlist_list', 
	'/userplaylist/add/content_id/' + content_id + '/update/playlist_list', 
	{asynchronous:true, evalScripts:true
	});
};


function upRemove(content_id)
{	
	new Ajax.Updater('bottom_middle', 
	'/userplaylist/remove/content_id/' + content_id + '/view/list/update/bottom_middle',  
	{asynchronous:true, evalScripts:true,
		onComplete: refreshPlaylist()
	});	
};

function refreshPlaylist(){
	new Ajax.Updater('video', '/frontend.php/frontpage/play/q/upl/update/video', {asynchronous:true, evalScripts:true}); return false;
};
//-- end user playlist

