//version 2.0.2.1
var isDebugEnabledVODmain = false;


// Attention ce script est en UTF-8 et est a� sauver et ouvrir en ce format
// this object give an access to vod variables
var data = new VodPlayerData();

/////////////// Parametres globaux///////////////////////////
var SessionDate;
var mediaPlayerObject;

var playtime = 0;
var navigatorType = -1;
var noError = true;
var errorTitle = "";
var errorText = "";

/**
    Initialize the current video (Load the time code)
*/
function initVodPage(idvideo,fileUrl, startPosition, playerType, weblogger) {


    if (isIE) {
       if (document.getElementById("emptyImageForWidth")){
           document.getElementById("emptyImageForWidth").width="808";
       }
    }else{
       if (document.getElementById("emptyImageForWidth")){
           document.getElementById("emptyImageForWidth").width="778";
       }
    }


	fileUrl = createVideoUrlFromLanguageCode(fileUrl, initialDiffusionLanguage, playerType);
	
    addMediaPlayer(idvideo, idvideo, "TechnicalDataDiv", "currentStatusDiv", "vodSliderDiv", fileUrl, playerType, startPosition);
    // uncomment the following line to show a pause/play button in the given div
    // mediaPlayerObject.playOrPause("startOrPauseImageDiv", startPosition);

    if(playerType!=''){
	    SetTechnicalDataTable();
			if (playerType == 'wmv'){
		    	var temp = window.setTimeout("showText()",6000);

		    }
		    else{
		    	showText();
		    }
	    launchMediaPlayer(weblogger);
    }

	if (!isIE) {// FIREFOX,CHROME TEC
		document.getElementById(idvideo).style.position="relative";
		 if ( document.getElementById("player_final_content_sb:agenda_sb:agendaform:agenda_comm")) 
              document.getElementById("player_final_content_sb:agenda_sb:agendaform:agenda_comm").style.padding="0px 15px";
              
              
	}
}

/**
    Build the MediaPlayer Object and add it to document
*/
function addMediaPlayer(videoId,playerDivId, technicalDataDiv, currentStatusDiv, vodSliderDiv, fileUrl, playerType, startPosition) {
    var datetimeOfVideo = "notSet";
    var mediaPlayerParameters = {"variableNameOfThis":"mediaPlayerObject", "divNameForTechnicalData":technicalDataDiv, "divNameForCurrentStatus":currentStatusDiv, "divNameForSlider":vodSliderDiv, "datetimeOfVideo":datetimeOfVideo, "playerHeight":310, "playerWidth":415, "startPosition":startPosition,  "isToStrecthToFit":false};
    // mediaPlayerObject = new MediaPlayer("MediaPlayer", "mms://wm.streampower.be/ep/ondemand/output_5.wmv", mediaPlayerParameters);
    // mediaPlayerObject = new MediaPlayer("MediaPlayer", "////Infobruwwpu050/share/1V21A_AnderssonJan_meta.asf", mediaPlayerParameters);

    mediaPlayerObject=selectPlayer("MediaPlayer", fileUrl, mediaPlayerParameters,playerType,videoId, false);
    if (isDebugEnabledVODmain)
	    alert("[addMediaPlayer] player is selected");
	if (mediaPlayerObject)
    	mediaPlayerObject.addPlayerToDocument(playerDivId, currentDiffusionLanguage);
}

/**
 * This method will update the "embed" textArea, if this area exists.
 */
function updateEmbedCode() {
	if (mediaPlayerObject && document.getElementById("player_final_content_sb:download_sb:embedTextArea")) {
    	var dateObj = new Date();
    	var dateObj2 = new Date();
    	dateObj.setTime(parseInt(data.getCurrentInterventionStartTime())*1000);
    	dateObj2.setTime(parseInt(data.getCurrentInterventionEndTime() + 5)*1000);
    	var startTimeString = dateObj.getHours() - 1 + ":" + dateObj.getMinutes() + ":" + dateObj.getSeconds() + ":00";
    	var endTimeString = dateObj2.getHours() - 1 + ":" + dateObj2.getMinutes() + ":" + dateObj2.getSeconds() + ":00";
    	document.getElementById("player_final_content_sb:download_sb:embedTextArea").value = mediaPlayerObject.buildPlayerCode(currentDiffusionLanguage, data.getCurrentDiscussionUrl(), startTimeString, true, endTimeString,false);
	}


    if (mediaPlayerObject && document.getElementById("download_sb:embedTextArea")) {
    	var dateObj = new Date();
    	var dateObj2 = new Date();
    	dateObj.setTime(parseInt(data.getCurrentInterventionStartTime())*1000);
    	dateObj2.setTime(parseInt(data.getCurrentInterventionEndTime() + 5)*1000);
    	var startTimeString = dateObj.getHours() - 1 + ":" + dateObj.getMinutes() + ":" + dateObj.getSeconds() + ":00";
    	var endTimeString = dateObj2.getHours() - 1 + ":" + dateObj2.getMinutes() + ":" + dateObj2.getSeconds() + ":00";
    	document.getElementById("download_sb:embedTextArea").value = mediaPlayerObject.buildPlayerCode(currentDiffusionLanguage, data.getCurrentDiscussionUrl(), startTimeString, true, endTimeString,false);
	}
}

function updateUrlForm() {
	if(document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentDiscussionUrl") && mediaPlayerObject.getActiveUrl()!= 'undefined'){
 		document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentDiscussionUrl").value = mediaPlayerObject.getActiveUrl();
 	}
    if(document.getElementById("currentDiscussionUrl") && mediaPlayerObject.getActiveUrl()!= 'undefined'){
 		document.getElementById("currentDiscussionUrl").value = mediaPlayerObject.getActiveUrl();
 	}
 	
}


/**
    Launch the player cyclic actions
*/
function launchMediaPlayer(weblogger) {
    playLoadingGif();
    if (mediaPlayerObject) {
	    mediaPlayerObject.automaticCall(weblogger);
    }
    playLoadingGif();
}
/**
 * Only if we are using QuickTime, this method set the start position, because it can't be done directly 
 * from the embed html code, it must be done by javascript.
 */
function setTheStartPosition (playerType, startPosition){
	    if (playerType == 'mp4' && startPosition != '0' && mediaPlayerObject)
	    {
	    	mediaPlayerObject.changeVideoCurrentPosition(null, startPosition);
	    }
}

/**
    Change the language of the video
*/
function changePlayerLanguage(newlang) {
    var oldLanguage = currentDiffusionLanguage;
    selectLanguageIcon(newlang);
    currentDiffusionLanguage = newlang;
   
    
    if (mediaPlayerObject){
	    mediaPlayerObject.changeLanguage(newlang, oldLanguage);
	    currentMediaObjectLanguage = newlang;
	}
	
	
}

/**
 * Method is called just after the page is loaded.
 */
function pageOnload(){
	// we change the language after the page is loaded, because then the player is correctly loaded and audio canal can be set
	changePlayerLanguage(currentDiffusionLanguage);
}

function selectLanguageIcon(lang){
    if (document.getElementById(currentDiffusionLanguage))
        document.getElementById(currentDiffusionLanguage).src =  serverForJS + "/img/struct/languages/lg_"+currentDiffusionLanguage+"_up.gif";
    if (document.getElementById(lang))
    	document.getElementById(lang).src = serverForJS + "/img/struct/languages/lg_"+lang+"_on.gif";
}

function lZ(h) {
    return (h > 9) ? h : "0" + h;
}
/**
    Create the text representing the current video DateTime
*/
function ChangeTime() {

	    x = new Date();
	    
	        temp=document.getElementById("player_final_content_sb:TechnicalVideoDataForm:vodStartDay").value;
		    StartGMTime=(temp.substring(0,2)*3600+ temp.substring(3,5)*60+ temp.substring(6,8)*1);
		    playtime=document.getElementById("player_final_content_sb:TechnicalVideoDataForm:vodSliderTextField").value;
	        x.setTime( (StartGMTime*1000) + (playtime*1000));
	    var oT = "x.getUTCHours()+':'+lZ(x.getUTCMinutes())+':'+lZ(x.getUTCSeconds())";
	    var StartGMTDatetxt = eval(oT);
	    document.getElementById("vodTimeStamp").innerHTML = StartGMTDatetxt;

}



function ChangeInterventionNumber (newIntervention){
    if(newIntervention>0)
    interventionNumber=newIntervention;
}


function changeFollowingPosition(){
   if(interventionNumber<maxinterventionNumber){
      interventionNumber = parseInt(interventionNumber) + 1;
      if (mediaPlayerObject) mediaPlayerObject.changeVideoCurrentPosition('', hmapStartInterv[interventionNumber],-1, currentDiffusionLanguage, initialDiffusionLanguage);
      ChangeIntervention(interventionNumber);
   }
}


function changePreviousPosition(){
   if(0<interventionNumber){
      interventionNumber=parseInt(interventionNumber) -1;
      if (mediaPlayerObject) mediaPlayerObject.changeVideoCurrentPosition('', hmapStartInterv[interventionNumber],-1, currentDiffusionLanguage, initialDiffusionLanguage);
      ChangeIntervention(interventionNumber);
   }
}
function sleep(numberMillis){
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true){
        now = new Date();
        if (now.getTime() > exitTime) return;
    }
}



function ChangeIntervention (position){
    if(position>0){

         if(document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentInterventionStartTime")){
            document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentInterventionStartTime").value=hmapStartInterv[position];
         }
         if(document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentInterventionEndTime")){
            document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentInterventionEndTime").value=hmapEndInterv[position];
         }

         if(document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentInterventionId")){
            document.getElementById("player_final_content_sb:TechnicalVideoDataForm:currentInterventionId").value=hmapId[position];
         }


        SelectInterventionBlue(hmapId[position]);
        ChangeInterventionNumber(position);
        ChangeDownload(hmapUrlInterv[position]);

        ChangeSpeaker(hmapNameInterv[position],hmapRoleInterv[position]);

        OnLoadFunctions(true);
        updateEmbedCode();
        selectTheGoodInterventionAndDiscussion();

    }else{
        sleep(2000);
    }

}

function SelectInterventionBlue(idIntervention) {


      if(document.getElementById("IntervId" + idIntervention)){


           for (x=0; x<=maxinterventionNumber; x++) {
              if(document.getElementById("IntervId" + hmapId[x])){
                 document.getElementById("IntervId" + hmapId[x]).className = "";
              }
               if (document.getElementById("ImgIntervId" +  hmapId[x])) {
                 document.getElementById("ImgIntervId" +  hmapId[x]).innerHTML = "";
                 document.getElementById("ImgIntervId" +  hmapId[x]).className = "";
               }
          }

            if (document.getElementById("ImgIntervId" + idIntervention)) {
                document.getElementById("IntervId" + idIntervention).className = "vod_boite_intervenant_contenu_selected";
            }
            if (document.getElementById("ImgIntervId" + idIntervention)) {
             document.getElementById("ImgIntervId" + idIntervention).innerHTML = "<img src='/wps-europarl-internet/vod/illustration/fleches_intervenant_courant.gif' width='25'/>";
             document.getElementById("ImgIntervId" + idIntervention).className = "vod_boite_intervenant_contenu_selected";
           }
           currentInterventionId=idIntervention;

        }

 }



function ChooseThePosition() {

   for (x=0; x<=maxinterventionNumber; x++) {
      if (data.getVodSliderTextField()>=hmapStartInterv[x] && data.getVodSliderTextField()<= hmapEndInterv[x]){
          return x;
      }
  }


}


function startPollingJs() {
    window.setTimeout("startPollingJs()", 1000);


    if(mustReloadMetadata()){

         if(interventionNumber<maxinterventionNumber) {

          interventionNumber = ChooseThePosition();

          var paramtoadd=""
            if (wpsparam !=''){
               paramtoadd="&" + wpsparam;
            }

          ChangeIntervention(interventionNumber);

        }
    }
}
/**
    Method edits the enhancement (enrichissement) data
    This method will call itself every second to refresh data
*/
function showText() {

     window.setTimeout("showText()", 1000);

    if (mediaPlayerObject && mediaPlayerObject.getStatus() == 3) {
               playtime = mediaPlayerObject.getCurrentPosition();
    }
   
    
     if(currentMediaObjectLanguage != currentDiffusionLanguage){
    	    changePlayerLanguage(currentDiffusionLanguage);
    	    updateUrlForm();
     }
   
   
    ChangeTime();

	if (mediaPlayerObject){
      var interval=20;
      if(!data.isOldVod()){
	    	if((parseInt(data.getCurrentDiscussionEndTime() - interval) >  mediaPlayerObject.getLengthSlider()) 
	    		|| (mediaPlayerObject.getLengthSlider() > (parseInt(data.getCurrentDiscussionEndTime() + interval)))  ){
	    		// reinitialisation of slider if more difference that previous interval , TO force reinitialisation if problem subsist
	    		mediaPlayerObject.reinitSlider();
	    	}
      }
	}
	
    //mise a jour du slider time - todo
}
/**
    Method changes the position of the video, in funtion of the current Event - 1
*/
function player_prec_ora() {
}
/**
    Method changes the position of the video, in funtion of the current Event + 1
*/
function player_next_ora() {
}
function display_msg(titletxt, msgtxt) {
    var txt = "<table width=\"415px\"  border=\"0\" cellpadding=\"5\" cellspacing=\"0\"><tr><td bgcolor=\"#999900\"  class=\"mepname\">" + titletxt + "</td></tr>";
    txt = txt + "<tr><td bgcolor=\"#999900\" class=\"titlemep\">" + msgtxt + "</td></tr></table>";
    document.getElementById("playerDiv").innerHTML = txt;
}

function playCurrentDiscussion(){
	if (mediaPlayerObject){
		mediaPlayerObject.changeVideoCurrentPosition(data.getCurrentDiscussionUrl(), data.getCurrentDiscussionStartToPlayPosition(),data.getCurrentDiscussionEndTime(), currentDiffusionLanguage, initialDiffusionLanguage);
	}
}



/**
    Method returns true if the current video doesn't correspond to the current interventon metadata.
*/
function mustReloadMetadata() {
   /* if (!data.isPollingActive()){
    	if (isDebugEnabledVODmain){alert("mustReloadMetadata:false");}

        return false;
    }
    */
    //alert(data.getCurrentInterventionEndTime()  +  " ? < "   + data.getVodSliderTextField()) ;

    if ((data.getCurrentInterventionEndTime()) <= data.getVodSliderTextField()) {
    	if (isDebugEnabledVODmain){alert("mustReloadMetadata:true");}
        return true;
    }
    
     /*
     if (data.getVodSliderTextField() == 0) {
    	if (mediaPlayerObject &&  mediaPlayerObject.getStatus()==1) {
       		 return true;
    	}
    }   */
    
    if (data.getCurrentInterventionStartTime() > data.getVodSliderTextField()) {
    	if(data.getVodSliderTextField()< (data.getCurrentInterventionStartTime() - 5) && data.isOldVod()){
    		   if (isDebugEnabledVODmain){alert("mustReloadMetadata:.....");}
    		   if (mediaPlayerObject && mediaPlayerObject.getStatus() == 3 ) {
					if (isDebugEnabledVODmain){alert(" mediaPlayerObject.getStatus()== 3");}

		        }
		        else{
		             //  don't move position for old vod when start is not ready
		             if (isDebugEnabledVODmain){alert(" mediaPlayerObject.getStatus()!= 3");}
		        	 return false;
		        }
    	}
	    if (mediaPlayerObject && mediaPlayerObject.getStatus() == 3 ) {
	        return true;
	    }
	    else
		    return false;
    }
    return false;
}

/**
    this method will activate the polling
*/
function activePolling() {
    data.setPollingActive(true);
}

/**
    this method will desactivate the polling
*/
function desactivePolling() {
    data.setPollingActive(false);
}

/**
    This method change the style of the current intervention and the current discussion in the lists.
*/
function selectTheGoodInterventionAndDiscussion() {


	if (isDebugEnabledVODmain)
    	alert("[selectTheGoodInterventionAndDiscussion]");

    // unselect the SELECTED discussion (thus the old)
    if (data.getSelectedDiscussionId() && document.getElementById(data.getSelectedDiscussionId())) {
        document.getElementById(data.getSelectedDiscussionId()).className = "";
    }
    // unselect the SELECTED intervention (thus the old)
    if (data.getSelectedInterventionId() && document.getElementById(data.getSelectedInterventionId())) {
        document.getElementById(data.getSelectedInterventionId()).className = "";
    }
    
    if (document.getElementById("Img" + data.getSelectedInterventionId())){
        document.getElementById("Img" + data.getSelectedInterventionId()).innerHTML = "";
        document.getElementById("Img" + data.getSelectedInterventionId()).className = "";
    }
    
    // select the CURRENT intervention
    if (document.getElementById("IntervId" + data.getCurrentInterventionId())) {;
        SelectInterventionBlue( data.getCurrentInterventionId());
        //document.getElementById("IntervId" + data.getCurrentInterventionId()).className = "vod_boite_intervenant_contenu_selected";
    }
    // add an image to the CURRENT intervention
    if (document.getElementById("ImgIntervId" + data.getCurrentInterventionId())) {
    	document.getElementById("ImgIntervId" + data.getCurrentInterventionId()).innerHTML = "<img src='/wps-europarl-internet/vod/illustration/fleches_intervenant_courant.gif' width='25'/>";
        document.getElementById("ImgIntervId" + data.getCurrentInterventionId()).className = "vod_boite_intervenant_contenu_selected";
    }

    // select the CURRENT discussion
    if (document.getElementById("DiscId" + data.getCurrentDiscussionId())) {
        document.getElementById("DiscId" + data.getCurrentDiscussionId()).className = "vod_boite_intervenant_contenu_selected";
    }
    
    // reccord the new selected intervention and discussion
    data.setSelectedDiscussionId("DiscId" + data.getCurrentDiscussionId());
    data.setSelectedInterventionId("IntervId" + data.getCurrentInterventionId());    
    
    // update the embed textarea code
    updateEmbedCode();
       
     

}

function reloadPlayerUrlIfNeeded(currentDiffusionLanguage,initialDiffusionLanguage) {
	var newurl = data.getCurrentDiscussionUrl();
	
		/// Change URL in local adress to  test if quickTime have problem with audio reception (RV)
		//if(isLocalIsma){
		//		newurl = newurl.replace("http://vod.europarl.europa.eu/nasvod01/", "http://localhost:8080/wps-europarl-internet/faces/players-prototype/video/");
		//}
	    //reload player with new URL
		if(mediaPlayerObject && mediaPlayerObject.getActiveUrl()!=newurl && mediaPlayerObject.getActiveUrl()!= 'undefined')
		{	
			if (isDebugEnabledVODmain){alert("[reloadPlayerUrlIfNeeded] mediaplayerobject" + mediaPlayerObject  + " ,oldurl:" + mediaPlayerObject.getActiveUrl()  + ", newurl = " + newurl + ", new posistion "  + data.getCurrentDiscussionStartTime());}
			mediaPlayerObject.reinitSlider();
			mediaPlayerObject.changeVideoCurrentPosition(newurl,data.getCurrentDiscussionStartTime(),data.getCurrentDiscussionEndTime(),currentDiffusionLanguage,initialDiffusionLanguage)
			
		}

}






