var $jPlayer = jQuery.noConflict();
var selectedPanel = "";
var dataPattern = [ 'HH_mm_ss_dd_MM_yyyy', 'dd/MM/yyyy' ];
var scrollBarPosition = [ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95 ];
var playerTypeEnum 						= new PlayerType();
var playerCompatibilityChecker			= new PlayerCompatibility();  	
 
/**
 * 	Gestione dei pulsanti per la selezione manuale del player
 */
function showPlugins(portletNamespace,hideFlash){	

	
	//$jPlayer("#BtnDrawSL"+portletNamespace).show(); 	 		
	
	$jPlayer("#BtnDrawWM"+portletNamespace).show();	 	 		
	$jPlayer("#BtnDrawRM"+portletNamespace).show();
	$jPlayer("#BtnDrawJW"+portletNamespace).show();

	/*
	 * Check di compatibilità dei player per il client
	 */
	var countHide = 0;		
	/*	  
	if(!Silverlight.isInstalled("1.0")){ 						
		$jPlayer("#BtnDrawSL"+portletNamespace).hide();
		countHide = countHide + 1; 
	}
	*/
	
 	if (!playerCompatibilityChecker.checkPlayerCompatibility(playerTypeEnum.WindowsMedia)){ 		 	 	 		
 		$jPlayer("#BtnDrawWM"+portletNamespace).hide();
 		countHide = countHide + 1;
 	}
 	if (!playerCompatibilityChecker.checkPlayerCompatibility(playerTypeEnum.Real)){ 		 		
 		$jPlayer("#BtnDrawRM"+portletNamespace).hide();
 		countHide = countHide + 1;
 	}
 	if (hideFlash || !playerCompatibilityChecker.checkPlayerCompatibility(playerTypeEnum.JWPlayer)){ 		 		
 		$jPlayer("#BtnDrawJW"+portletNamespace).hide();
 		countHide = countHide + 1;
 	}
 	
 	
}

/**
 * 	Nasconde il plugin selezionato
 */
function hidePlugin(plugin){	
	$jPlayer('#' + plugin).hide();	
	//alert($jPlayer('#' + plugin).css("display"));
}

/**
 * 
 * @return
 */
function viewVideoInPlayer(playerCfg){	
	var url; 
	if(playerCfg["quality"] == 'HIGH'){
		if (playerCfg['player']=="RM"){			
			url = playerCfg["urlHighRM"];					 
		}else{
			url = playerCfg["urlHighWM"];
		}
	}
	else{
		if (playerCfg['player']=="RM"){
			url = playerCfg["urlLowRM"];					 
		}else{
			url = playerCfg["urlLowWM"];
		}
	}	

  
	var handle = window.open(url, "", "width=0,height=0,left=0,top=0");
	
	//alert(url.length);
	//alert(url.substring(url.length-3));
	
	if(url.substring(url.length-3)!="nsc")
	  handle.close();
}

/**
 * Funzione di goto per la riproduzione
 */
function goToFrame(playerVideo, newPositionPercent){
	
	durataFilmato=playerVideo.getCurrentMediaDuration();
	posizioneAttuale=(durataFilmato/100)*newPositionPercent;
	playerVideo.setPosition(posizioneAttuale);	
}

/**
 * Funzione di goto per la riproduzione in timeshifting
 */
function goToFrameTimeShifting(playerVideo, playerCnf, newPositionPercent){
		
	posizioneAttuale=(playerVideo.videoSize/100)*newPositionPercent;
				
	var time = playerVideo.videoTimeStart.split("_");

	//alert(time);
	
	var dateTime = new Date(); 
	
	dateTime.setHours(parseInt(time[0]));
	dateTime.setMinutes(parseInt(time[1]));
	dateTime.setSeconds(parseInt(time[2]));
		
	dateTime.setDate(parseInt(parseInt(time[3])));		
	dateTime.setMonth(parseInt(parseInt(time[4]))-1);		
	dateTime.setFullYear(parseInt(time[5].split(".")[0]));
	
	//alert(dateTime);
	
	dateTime.setTime(dateTime.getTime() + (posizioneAttuale*1000));		
	
	//alert(dateTime);
	
	/* $jPlayer("#pos").html(newPositionPercent + " - " + posizioneAttuale + " - " + time + " - " + 
							dateTime.getFullYear() + " - " + 
							dateTime.getMonth() + " - " + 
							dateTime.getDate() + " - " + 
							dateTime.getHours() + " - " + 
							dateTime.getMinutes() + " - " + 
							dateTime.getSeconds());
	*/
	
	var url = playerVideo.getSource().substring(0, playerVideo.getSource().length - 23);	
	url += $jPlayer.formatDate(dateTime, dataPattern[0]) + ".wmv";		

	playerVideo.videoStart = posizioneAttuale;
	
	playIntervento(playerVideo, 
					playerCnf, 					
					url, 
					url,
					'', 
					'', 
					0, 
					playerVideo.videoSize, 
					1, 1, 2, 1, 0);
	
	playerVideo.videoPosition = posizioneAttuale;
}

/**
 * 
 */
function numberFormat(context){
	/*
	var val = (context == null) ? new Number(this) : Math.abs(this);
	val = (val > 0) ? Math.ceil(val) : Math.floor(val);
	var arr = val.round(0).toFixed(0).split('.');
	arr[0] = (val < 0 ? '-' : '') + String.leftPad((val < 0 ? arr[0].substring(1) : arr[0]), 2, '0');
	arr[0] = Number.injectIntoFormat(arr[0].reverse(), '00', true).reverse();
	return arr.join('.');
	*/
	if(context.toString().length == 1)
		return "0" + context.toString();
	return context.toString();
}

/**
 * 
 * @param http://encoder06.intra.camera.it:8080/cap/camera1/11_08_33_25_02_2009.wmv
 * @return
 */
function getTimeFromMountTimeShiftingUrl(url){
	
	return url.substring(url.length - 23);
	
}


/**
 * Gestione della riproduzione
 * @param playerVideo
 * @param playerCommand
 * @return
 */
function doPlayerCommand(playerVideo, playerCommand){

	switch(playerCommand){
		case "Begin":		
			playerVideo.setPosition(0);			
			break;  
		case "Backward":		
			playerVideo.setPosition(playerVideo.getPosition()-5);	
			break; 
		case "Pause":
			playerVideo.pause();			
			playerVideo.selectedButton = "";//"Pause";
			break; 
		case "Play":
			playerVideo.play();						
			playerVideo.selectedButton = "";//"Play";			
			break; 
		case "Stop":
			playerVideo.setPosition(0);
			playerVideo.stop();			
			playerVideo.selectedButton = "";//"Stop";
			break;
		case "Forward":
			playerVideo.setPosition(playerVideo.getPosition()+5);				
			break;
		case "End":		
			if(playerVideo.getCurrentMediaDuration()!=0)
				playerVideo.setPosition(playerVideo.getCurrentMediaDuration()-5);		
			break;	
		default:
			break;	
	}
	
}

/**
 * 
 * @param playerVideo
 * @param element
 * @param playerCommand
 * @return
 */
function setMouseOut(playerVideo, element, playerCommand){		
	//alert(playerVideo.selectedButton +"\n"+ playerCommand);
	if(playerVideo.selectedButton != playerCommand)	
		setMouseBg(element, playerVideo, playerCommand, "0");
}

/**
 * 
 * @param portletNamespace
 * @param playerVideo
 * @return
 */
function clearButtonPlayer(portletNamespace, playerVideo){
	
	document.getElementById("buttonPlay"+portletNamespace).style.background='url('+playerVideo.imgPath+'player_ButtPlay.gif) no-repeat 0px 0px';
	document.getElementById("buttonPause"+portletNamespace).style.background='url('+playerVideo.imgPath+'player_ButtPause.gif) no-repeat 0px 0px';
	document.getElementById("buttonStop"+portletNamespace).style.background='url('+playerVideo.imgPath+'player_ButtStop.gif) no-repeat 0px 0px';
}

/**
 * 
 * @param element
 * @param playerCommand
 * @param over
 * @return
 */
function setMouseBg(element, playerVideo, playerCommand, over){
	
	switch(playerCommand){
		case "Pause":
			//element.style.background='url('+playerVideo.imgPath+'player_ButtPause' + over + '.gif)';
			element.style.background='url('+playerVideo.imgPath+'player_ButtPause.gif) no-repeat 0px '+over+'px';
			break; 
		case "Play":
			//element.style.background='url('+playerVideo.imgPath+'player_ButtPlay' + over + '.gif)';
			element.style.background='url('+playerVideo.imgPath+'player_ButtPlay.gif) no-repeat 0px '+over+'px';
			break; 
		case "Stop":
			//element.style.background='url('+playerVideo.imgPath+'player_ButtStop' + over + '.gif)';
			element.style.background='url('+playerVideo.imgPath+'player_ButtStop.gif) no-repeat 0px '+over+'px';
			break;
		default:
			break;	
	}	
}


/**
 * Gestione del fullscreen/normalscreen
 * @param playerVideo
 * @param stateScreen
 * @return
 */
function setParamsForRequest(portletNamespace, playerVideo, playerCfg, formName){		
		
	document.getElementById(portletNamespace + "timecode").value 			= playerVideo.videoPosition;
	document.getElementById(portletNamespace + "volume").value 				= playerVideo.volume;
	document.getElementById(portletNamespace + 'mute').value 				= playerCfg['videoMuting'];	
	document.getElementById(portletNamespace + "state").value 				= playerVideo.volume;	
	document.getElementById(portletNamespace + 'urlHighWM').value 			= playerCfg['urlHighWM'];
	document.getElementById(portletNamespace + 'urlLowWM').value 			= playerCfg['urlLowWM'];
	document.getElementById(portletNamespace + 'urlHighRM').value 			= playerCfg['urlHighRM'];
	document.getElementById(portletNamespace + 'urlLowRM').value 			= playerCfg['urlLowRM'];
	document.getElementById(portletNamespace + 'idsource').value 			= playerCfg['idVideo'];
	if(playerVideo.videoSize == -1)
		document.getElementById(portletNamespace + 'timeshiftingData').value 	= "";
	else
		document.getElementById(portletNamespace + 'timeshiftingData').value 	= playerVideo.videoSize + "|" + playerVideo.videoPosition + "|" + playerVideo.videoStart + "|" + playerVideo.videoTimeStart;
	
	//alert(document.getElementById(portletNamespace + 'idsource').value);
	//alert(document.getElementById(portletNamespace + 'timeshiftingData').value);
	document.getElementById(formName).submit();
	
}

/**
 * Carica gli indirizzi di streaming per il player selezionato
 * @param playerCfg
 * @param playerType
 * @param quality
 * @return
 */
function getSource(playerCfg, quality, playerType){

	if(quality == 'HIGH'){
		if (playerType == playerTypeEnum.Real){
			return	playerCfg["urlHighRM"];					 
		}else if (playerType == playerTypeEnum.WindowsMedia){
			return	playerCfg["urlHighWM"];
		}else{
			return playerCfg["urlHighFM"];
		}
	}
	else{
		if (playerType == playerTypeEnum.Real){
			return	playerCfg["urlLowRM"];					 
		}else if (playerType == playerTypeEnum.WindowsMedia){
			return	playerCfg["urlLowWM"];
		}
		else{
			return playerCfg["urlLowFM"];
		}
	}
	
}

/**
 * 
 * @param portletNamespace
 * @param type
 * @param player_video
 * @param videoCfg
 * @return
 */
function loadPlayer(portletNamespace, type, player_video, videoCfg){	
	
	//console.log(videoCfg);
	var checker	= new PlayerCompatibility();

	/////////////////////////////////////////////
	// Verica compatibilità player selezionato //
	/////////////////////////////////////////////
	/*
	if(type == playerTypeEnum.JWPlayer){
		//if(!Silverlight.isInstalled("1.0")){
		//	alert("Impossibile instanziare il player selezionato !!!");
		//	return false;
		//}
		
		return false;
	}
	else{
		*/
		if(!checker.checkPlayerCompatibility(type)){
			alert("Impossibile instanziare il player selezionato !!!");
			return false;
		}
	//}	
	
	videoCfg['timeCode'] = player_video.videoPosition;
	player_video.stop();
	
	//--- TODO andrebbe implementato il metodo interfaccia remove nel PlayerVideo
	if (player_video.type == player_video.playerType.JWPlayer)
		player_video.player.playerObject.remove();
		
	$jPlayer("div#playerObject_<portlet:namespace/>").hide();
	
	//////////////////////////////////////////////////////////////////////
	// Configurazione dei parametri per il nuovo player da caricare		//
	//////////////////////////////////////////////////////////////////////	
	player_video.setConfiguration(videoCfg);
	
	//////////////////////////////////////////////////////////////////////
	// Caricamento del player selezionato								//
	//////////////////////////////////////////////////////////////////////	
	showPlugins(portletNamespace,!isFlashVisible(videoCfg)); 

	
	
	if(type == playerTypeEnum.JWPlayer){								
			player_video.loadJWPlayerObject(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.JWPlayer));
			videoCfg["player"] = "JW"; 			
			document.getElementById(portletNamespace+'player').value = "JW";
			$jPlayer("#BtnDrawJW" + portletNamespace).hide();			
			$jPlayer("div#playerObject_<portlet:namespace/>").show();
			
			//var metaa = player_video.player.playerObject.getMeta();
			//console.log("LOAD JW >>> "+metaa);
			
			return true;
	}
	else{											
			if (type == playerTypeEnum.WindowsMedia){
				//player_video.loadPlayerObjectByType(type);  		  		
				//player_video.setSource(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.WindowsMedia));
				player_video.loadWindowsMediaPlayerObject(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.WindowsMedia));
				videoCfg["player"] = "WM";
				document.getElementById(portletNamespace+'player').value = "WM";
				$jPlayer("#BtnDrawWM" + portletNamespace).hide();				
			}
	 		else{	 				 		
	 			player_video.loadRealPlayerObject(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.Real));	 			
	 			videoCfg["player"] = "RM";
	 			document.getElementById(portletNamespace+'player').value = "RM";
	 			$jPlayer("#BtnDrawRM" + portletNamespace).hide();	 			
	 		}	
			
			//player_video.setVolume(videoCfg["volume"]);			
			
			$jPlayer("div#playerObject_<portlet:namespace/>").show();
			
			if(videoCfg['videoAutostart'])
				player_video.updateControllBar("Play");				
			else
				player_video.updateControllBar("Stop");
			
	 		return true;			
 	} 	
}

/**
 * 
 * @param portletNamespace
 * @param playerVideo
 * @param videoCfg
 * @param value
 * @return
 */
function setQuality(portletNamespace, playerVideo, videoCfg, value){	
	
	$jPlayer("#" + portletNamespace + 'quality').val(value);			
	videoCfg["quality"] = value;		
	
	loadPlayer(portletNamespace, playerVideo.type, playerVideo, videoCfg);
	
	if(value == 'HIGH'){		
		$jPlayer("#"+portletNamespace+"hiDef").hide();
		$jPlayer("#"+portletNamespace+"loDef").show();		
	}
	else{	
		$jPlayer("#"+portletNamespace+"loDef").hide();
		$jPlayer("#"+portletNamespace+"hiDef").show();
	}
}

/**
 * Stato del muting per un solo player
 * @param playerVideo
 * @param videoCfg
 * @param pathImg
 * @param element
 * @return
 */
function switchVolumeOnOff(playerVideo, videoCfg, pathImg, element){

	var muteState = "false";	
	if(playerVideo.getMuteState()){
		playerVideo.setMute(false);
		muteState = "false";	
		$jPlayer(element).attr("src", pathImg + "player_VolumeOn.gif"); 
	}
	else{
		playerVideo.setMute(true);
		muteState = "true";
		$jPlayer(element).attr("src", pathImg + "player_VolumeOff.gif");
	}		

	videoCfg['videoMuting'] = muteState;
	
}


/**
 * Stato del muting per il fullscreen
 * @param playerVideo
 * @param videoCfg
 * @param pathImg
 * @param element
 * @return
 */
function switchVolumeOnOffFull(playerVideo, videoCfg, pathImg, element){

	var muteState = "false";	
	if(playerVideo.getMuteState()){
		playerVideo.setMute(false);
		muteState = "false";	
		//$jPlayer(element).attr("src", pathImg + "player_VolumeOn.gif");
		document.getElementById(element).style.background="url('"+pathImg + "player_VolumeOn.gif')";
	}
	else{
		playerVideo.setMute(true);
		muteState = "true";
		//$jPlayer(element).attr("src", pathImg + "player_VolumeOff.gif");
		document.getElementById(element).style.background="url('"+pathImg + "player_VolumeOff.gif')";
	}		

	videoCfg['videoMuting'] = muteState;
	
}

/**
 * Setta a mute tutti i pannelli della parete
 * @param listVideoPanel
 * @param pathImg
 * @param elementPrefix
 * @return
 */
function muteWall(listVideoPanel, pathImg, elementPrefix){
	for(var i=0; i<listVideoPanel.length; i++){
		listVideoPanel[i].setMute(true);
		document.getElementById(elementPrefix + i).src = pathImg + "player_VolumeOff.gif";
	}	
}

/**
 * Imposta il muting per un dato player/pannello
 * @param mute
 * @param playerVideo
 * @param videoCfg
 * @param pathImg
 * @param element
 * @return
 */
function setMuteOnOff(mute, playerVideo, videoCfg, pathImg, element){
	
	if(!mute){
		playerVideo.setMute(false);		
		$jPlayer(element).attr("src", pathImg + "player_VolumeOn.gif"); 		
	}
	else{
		playerVideo.setMute(true);		
		$jPlayer(element).attr("src", pathImg + "player_VolumeOff.gif");		
	}		
	
	videoCfg['videoMuting'] = mute; 
}

/**
 * Imposta il muting per un dato player/pannello fullscreen
 * @param mute
 * @param playerVideo
 * @param videoCfg
 * @param pathImg
 * @param element
 * @return
 */
function setMuteOnOffFull(mute, playerVideo, videoCfg, pathImg, element){
	
	if(!mute){
		playerVideo.setMute(false);		
		//$jPlayer(element).attr("src", pathImg + "player_VolumeOn.gif");
		document.getElementById(element).style.background="url('"+pathImg + "player_VolumeOn.gif')";
	}
	else{
		playerVideo.setMute(true);		
		//$jPlayer(element).attr("src", pathImg + "player_VolumeOff.gif");		
		document.getElementById(element).style.background="url('"+pathImg + "player_VolumeOff.gif')";
	}		
	
	videoCfg['videoMuting'] = mute; 
}

/**
 * 
 * @param listVideoPanel
 * @param videoCfg
 * @param pathImg
 * @param elementPrefix
 * @param userMonitor
 * @return
 */
function switchVolumeOnOffWall(listVideoPanel, videoCfg, pathImg, elementPrefix, userMonitor){

	var img = document.getElementById(elementPrefix + userMonitor); 

	for(var i=0; i<listVideoPanel.length; i++){
		if(i!=userMonitor)
		{
			listVideoPanel[i].setMute(true);
			document.getElementById(elementPrefix + i).src = pathImg + 'player_VolumeOff.gif';
			videoCfg[i]['videoMuting'] = true; 
		}
	}
	
	if(listVideoPanel[userMonitor].getMuteState()){
		listVideoPanel[userMonitor].setMute(false);
		img.src = pathImg + 'player_VolumeOn.gif';
		videoCfg[userMonitor]['videoMuting'] = true;
	}
	else{
		listVideoPanel[userMonitor].setMute(true);
		img.src = pathImg + 'player_VolumeOff.gif';
		videoCfg[userMonitor]['videoMuting'] = true;
	}
	
}

/**
 * Regolazione del volume per il singolo player e per il fullscreen
 * 
 * @param userVolume
 * @return
 */
function setVolumeControl(ledSuffix, playerVideo, videoCfg, pathImg, muteElement, userVolume){	

	document.getElementById("volumeLed1"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed01.gif')"; 
	document.getElementById("volumeLed2"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed02.gif')"; 
	document.getElementById("volumeLed3"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed03.gif')"; 
	document.getElementById("volumeLed4"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed04.gif')"; 
	document.getElementById("volumeLed5"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed05.gif')"; 
	document.getElementById("volumeLed6"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed06.gif')"; 
	document.getElementById("volumeLed7"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed07.gif')"; 
	document.getElementById("volumeLed8"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed08.gif')"; 
	document.getElementById("volumeLed9"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed09.gif')"; 
	document.getElementById("volumeLed10"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed10.gif')"; 

	if (userVolume>0)
		document.getElementById("volumeLed1"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed01_Over.gif')"; 
	if (userVolume>1)
		document.getElementById("volumeLed2"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed02_Over.gif')";
	if (userVolume>2)
		document.getElementById("volumeLed3"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed03_Over.gif')"; 
	if (userVolume>3)
		document.getElementById("volumeLed4"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed04_Over.gif')"; 
	if (userVolume>4)
		document.getElementById("volumeLed5"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed05_Over.gif')"; 
	if (userVolume>5)
		document.getElementById("volumeLed6"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed06_Over.gif')";
	if (userVolume>6)
		document.getElementById("volumeLed7"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed07_Over.gif')";
	if (userVolume>7)
		document.getElementById("volumeLed8"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed08_Over.gif')";
	if (userVolume>8)
		document.getElementById("volumeLed9"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed09_Over.gif')";
	if (userVolume>9)
		document.getElementById("volumeLed10"+ledSuffix).style.background="url('" + pathImg + "player_volumeLed10_Over.gif')";

	

	if(userVolume!=0){
		playerVideo.setVolume(userVolume*10);
		setMuteOnOff(false, playerVideo, videoCfg, pathImg, muteElement);		
	}
	else{
		playerVideo.setVolume(userVolume*10);
		setMuteOnOff(true, playerVideo, videoCfg, pathImg, muteElement);		
	}
	
}

/**
 * 
 * @param listVideoPanel
 * @param videoCfg
 * @param pathImg
 * @param elementPrefix
 * @param userMonitor
 * @return
 */
function switchVolumeOnOffMulti(listVideoPanel, videoCfg, pathImg, elementPrefix, userMonitor){

	var img = document.getElementById(elementPrefix); 

	for(var i=0; i<listVideoPanel.length; i++){
		if(i!=userMonitor)
		{
			listVideoPanel[i].setMute(true);			
			videoCfg[i]['videoMuting'] = true; 
		}
	}
	
	
	if(listVideoPanel[userMonitor].getMuteState()){
		listVideoPanel[userMonitor].setMute(false);
		img.src = pathImg + 'player_VolumeOn.gif';
		videoCfg[userMonitor]['videoMuting'] = true;
	}
	else{
		listVideoPanel[userMonitor].setMute(true);
		img.src = pathImg + 'player_VolumeOff.gif';
		videoCfg[userMonitor]['videoMuting'] = true;
	}
	
}

function isFlashVisible(videoCfg){
	if (!videoCfg)
		return false
	else
		return videoCfg['urlHighFM'] != null && videoCfg['urlHighFM'] != "";
}
/**
 * 
 * @param playerVideo
 * @param videoCfg
 * @return
 */
function selectPlayer(portletNamespace, playerVideo, videoCfg){
	var flashFlag =isFlashVisible(videoCfg);
 	showPlugins(portletNamespace,!flashFlag);
 	
	/*
	 * Selezione del player di default per il client
	 */	
 	
	 if (playerCompatibilityChecker.checkPlayerCompatibility(playerTypeEnum.WindowsMedia) &&
 			  (videoCfg['player']=="" || videoCfg['player']=="WM")){  	 	 		  		
		 	playerVideo.loadWindowsMediaPlayerObject(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.WindowsMedia));
	 		videoCfg['player']="WM";
	 		document.getElementById(portletNamespace+'player').value = "WM";
	 		$jPlayer("#BtnDrawWM"+portletNamespace).hide();	 			 			 		 				 						  	 		 							 	 			  	
	 }
	 else if (flashFlag && playerCompatibilityChecker.checkPlayerCompatibility(playerTypeEnum.JWPlayer) &&
				(videoCfg['player']=="" || videoCfg['player']=="JW")){
			playerVideo.loadJWPlayerObject(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.JWPlayer));
			videoCfg['player']="JW";
			document.getElementById(portletNamespace+'player').value = "JW";
			$jPlayer("#BtnDrawJW"+portletNamespace).hide();
			
	 }
	 else if (playerCompatibilityChecker.checkPlayerCompatibility(playerTypeEnum.Real) &&
				(videoCfg['player']=="" || videoCfg['player']=="RM")){
			playerVideo.loadRealPlayerObject(getSource(videoCfg, videoCfg["quality"], playerTypeEnum.Real));
			videoCfg['player']="RM";
			document.getElementById(portletNamespace+'player').value = "RM";
			$jPlayer("#BtnDrawRM"+portletNamespace).hide();
			
	 }else{  				 				
				 $jPlayer('div#screenArea'+portletNamespace).html($jPlayer('div#pluginPanel'+portletNamespace).html());
				 return false;
		}			 
	
	  if(playerVideo.getMuteState() == "PluginError")
	  {
	    $jPlayer('div#screenArea'+portletNamespace).html($jPlayer('div#pluginPanel'+portletNamespace).html());
		  return false;
	  }
	
	 return true;
	 
}

/**
 * 
 * @return
 */
function displayRicerca(archivio){			
	
	var $ric_cfg = jQuery.noConflict();
		
	$ric_cfg.get(
            '/CameraWebTVWeb/RicercaServlet',
            {               	          
            },
            function(data) {    
            	$ric_cfg('div[title^=archivio]').html("");
            	$ric_cfg('div#'+archivio).html(data);        	  	
        	  	$ric_cfg('div#'+archivio).slideDown("slow");  
        	  },
            'html'            
        );
}



/**
 * 
 * @param idcategoria
 * @param idvideo
 * @param idcontenuto
 * @param titolo
 * @return
 */
function selezionaVideo(idcategoria, idvideo, idcontenuto, titolo){	
	var $ric_cfg = jQuery.noConflict();
	
	
	document.getElementById("titolo_sorgente"+selectedPanel).innerHTML = "Archivio: " + titolo;
	document.getElementById('videoSourceTitle'+ selectedPanel).value = "Archivio: " + titolo;
	document.getElementById('videoIdentifier'+ selectedPanel).value = idcategoria+"|"+idvideo+"|"+idcontenuto+"|0";
	document.getElementById('videoSourceType'+ selectedPanel).value = 0;		
	$ric_cfg('div[title^=archivio]').slideUp("slow");
}



/**
 * 
 * @return
 */
function setSourceTitleDiretta(){
	
	var select_dirette = document.getElementById('selectDirette');
	var selected_diretta = select_dirette.selectedIndex;	
	var sorgente = "Diretta: " + select_dirette.options[selected_diretta].text;	
	document.getElementById("titolo_sorgente").innerHTML = sorgente;
	document.getElementById('videoSourceTitle').value = sorgente;
	document.getElementById('videoIdentifier').value = sorgente;
	document.getElementById('videoSourceType').value = select_dirette.options[selected_diretta].value;
}




/**
 * 
 * @return
 */
function setSourceTitleArchivio(){	
	var sorgente = "Archivio: ";	
	document.getElementById("titolo_sorgente").innerHTML = sorgente;
	document.getElementById('videoSourceTitle').value = sorgente; 		
}

/**
 * 
 * @param parameter
 * @return
 */
function detailControl(parameter) {
	var $ric_cfg = jQuery.noConflict();
	$ric_cfg('#'+parameter).clearForm();
	$ric_cfg('#'+parameter).slideToggle();	
}

/**
 * 
 * @param displayActivated
 * @return
 */
function displayStreamingWait(displayActivated, element, pathImg){

	if (displayActivated)
		document.getElementById(element).style.background="url('" + pathImg + "player_ClessidraBufferizzazioneON.gif')";
	else
		document.getElementById(element).style.background="url('" + pathImg + "player_ClessidraBufferizzazioneOFF.gif')";
}


/*
 * Caricamento di un nuovo video nel player
 *
 * urlHighWM: 	url della sorgene windows media alta qualità
 * urlHighWM: 	url della sorgene windows media bassa qualità
 * urlHighRM: 	url della sorgene real media alta qualità
 * urlLowRM: 	url della sorgene real media bassa qualità
 * timeCode: 	istante di partenza (0 per l'inizio)
 * titolo: 		titolo video
 * descrizione: descrizione del video
 * legislatura: legislatura della seduta
 * seduta: 		numero della seduta
 * idVideo: 	identificativo del video nelle banche dati
 *
 */
function playIntervento(playerVideo, videoCfg, urlHighWM, urlLowWM, urlHighRM, urlLowRM, timeCode, durata, idCategoria, idVideo, diretta, idCsm,urlHighFM){
	
	videoCfg["urlHighWM"] = urlHighWM;
	videoCfg["urlLowWM"] = urlLowWM;
	videoCfg["urlHighRM"] = urlHighRM;
	videoCfg["urlLowRM"] = urlLowRM;
	videoCfg["urlHighFM"] = urlHighFM; 
	videoCfg["timeCode"] = timeCode;
	videoCfg["durata"] = durata;
	
	
	if(diretta == "1"){		
		videoCfg["idVideo"] = idCategoria; 
	}
	else{
		videoCfg["idVideo"] = idCategoria + "|" + idVideo + "|" + idCsm + "|" + diretta;			
	}
	
	playerVideo.setSource(getSource(videoCfg, videoCfg["quality"], playerVideo.type));
	
	//!!! check per jwplayer,sembra che non gli piace il timecode=0
	if (timeCode > 0)
		playerVideo.setPosition(timeCode);
	
	playerVideo.setMute(videoCfg["videoMuting"]);
	playerVideo.play();

}

function mostraContenuti(idodl, idVideo, diretta, idcategoria, dataEvento) {
	var $jpannello = jQuery.noConflict();
	
	$jpannello.get('/CameraWebTVWeb/PannelloContenutiServlet',
        		{ 
	            	idodl: idodl,
	            	idVideo: idVideo,
	            	diretta: diretta,
	            	idcategoria: idcategoria,
	            	encoderTimeShifting: dataEvento,
	            	event_action: "carica_pannello",
	            	parametroVariabile: Math.random()
	            		
            	},
            	function(data) {
            		$jpannello('#rightVideoDetails').html(data);
            	},
    	    	'html');
 }

/**
 * Ritorna l'id categoria del video in riproduzione
 * @param videoCfg
 * @return
 */
function getIdCategoria(videoCfg){
	
	if(videoCfg["idVideo"].indexOf("|")==-1){										
		return videoCfg["idVideo"];				
	}else{																
			var videoIdentifier = videoCfg["idVideo"];
			return videoIdentifier.split("|")[0];													
	}	
}

/**
 * Ritorn l'id del video in riproduzione. Nel caso della diretta restituisce stringa vuota
 * @param videoCfg
 * @return
 */
function getIdVideo(videoCfg){
	
	return videoCfg["idVideo"];
		
}

/**
 * 
 * @param videoPlayer
 * @return
 */
function isWindowsMediaPlayer(videoPlayer){
	
	if (videoPlayer.type == playerTypeEnum.WindowsMedia)
		return true;
	
	return false;		
}


/**
 * Interroga il servizio per verificare se è in corso una diretta
 * @return
 */
function testDiretta(nodiretta, player){
	
	$jPlayer.getJSON(
     		'/CameraWebTVWeb/VideoPlayerServlet',
     		{ 
     			eventoaction: "test-diretta",
     			parametroVariabile: Math.random()
     		},
     		function(data) {          	     							
     							if(data[0].value == "KO"){     								     
     								$jPlayer(nodiretta).show();
     								$jPlayer(player).hide();
     								
     							}
	            			}
	      );		
}

/*
function testDirettaVideo(playerVideo, videoMountPoint){
	
	$jPlayer.getJSON(
     		'/CameraWebTVWeb/VideoPlayerServlet',
     		{ 
     			eventoaction: "test-diretta",
     			parametroVariabile: Math.random()     			     			         			
     		},
     		function(data) {          	     							
     							if(data[0].value == "KO"){
     								if(isWindowsMediaPlayer(playerVideo))
     									playerVideo.setSource(videoMountPoint + ".wmv");
     								else
     									playerVideo.setSource(videoMountPoint + ".rm");
     							}
	            			}
	      );		
}
*/

function testDirettaVideo(playerVideo, videoCfg, videoNoDirettaWmv, videoNoDirettaRm, idCategoria){
	
	$jPlayer.getJSON(
     		'/CameraWebTVWeb/VideoPlayerServlet',
     		{ 
     			eventoaction: "test-diretta",
     			parametroVariabile: Math.random()     			     			         			
     		},
     		function(data) {          	     							
     							if(data[0].value == "KO"){
     								playIntervento(playerVideo, 
     											   videoCfg, 
     											   videoNoDirettaWmv, 
     											   videoNoDirettaWmv,
     											   videoNoDirettaRm,
     											   videoNoDirettaRm, 
     											   0, 
     											   40, 
     											   idCategoria, 
     											   0, 
     											   1, 
     											   0);
     							}
	            			}
	      );		
}

function testDirettaGuida(canale){
	
	$jPlayer.getJSON(
     		'/CameraWebTVWeb/VideoPlayerServlet',
     		{ 
     			eventoaction: "test-diretta",
     			parametroVariabile: Math.random()     			     			         			
     		},
     		function(data) {          	     							
     							if(data[0].value == "KO"){     								
     								$agenda_base(canale).removeClass('guidaTV_CanaleSedute');						
     								$agenda_base(canale).addClass('guidaTV_CanaleSedute_disabilitato');
     								$agenda_base(canale).unbind('click');
     							}
	            			}
	      );		
}

/**
 * Visualizza la mini guida 
 *
 * @return
 */
function showMiniGuide(){			
		
	var $miniGuide = jQuery.noConflict();
	$miniGuide.get(
            		'/CameraWebTVWeb/EventiAgendaServlet',
            		{ 
            			parametroVariabile: Math.random()
            		},
            		function(data) {		            						
            							$miniGuide('div#agenda').html(data);
            							$miniGuide('div#teleContainer').show();	            							
		            },
		            'html'
		      );
}

/**
 * 
 * @param videoCfg
 * @param context
 * @return
 */
function rssGet(videoCfg, context){
	  
	  if(videoCfg["idVideo"].indexOf("|")==-1){										
		  window.open(context + "/FeedServlet?id_cat=" + videoCfg["idVideo"] + "&id_diretta=1"+"&parametroVariabile="+Math.random());		
	  }else{																
		  var videoIdentifier = videoCfg["idVideo"];
		  idCategoria = videoIdentifier.split("|")[0];
		  idVideo		= videoIdentifier.split("|")[1];					
		  window.open(context + "/FeedServlet?id_cat=" + idCategoria + "&id_video=" + idVideo+"&parametroVariabile="+Math.random());								
	  }
	  
}

/**
 * 
 * Prende in ingresso l'id del video e restituisce l'indicazione se si tratta di una diretta o meno.
 * 
 * @param idVideo
 * @return
 */
function isDiretta(idVideo){
	
	if(idVideo.indexOf("|")==-1)
		return true;
	return false;
}

/*
 * The source 
 * source pattern : streamer,file,cdn_conf
 */
function decodeSource(source){
	var splits = source.split(",");
	var p0 = splits[0];
	var p1 = null;
	var p2 = null;
	var len =  splits.length;
	if (len > 1 && splits[1].length>0){
		p1=splits[1];
	}
	
	if (len > 2 && splits[2].length>0){
		//p1=splits[1];
		p2=splits[2];
	}
	
	return {base:p0,file:p1,cdn:p2};
}


