
var urlPlaylist="playlist.aspx?v={id}";
var videoW=432;
var videoH=324;
var wmp = "Player"

/************************************************/
// Crea il Player
/************************************************/

function wmpCreate() {
    var str = "";
    if (is.ie) {
         // create the WMP for IE
         str = '<object id="' + wmp + '" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="' + videoW + '" height="' + videoH +'">';
    } else {
         // create it for FF.
         str = '<object id="' + wmp + '" type="application/x-ms-wmp" data="" width="' + videoW + '" height="' + videoH +'">';
    }
    str += '<param name="url" value="" />';
    str += '<param name="uiMode" value="none">';
    str += '<param name="autoStart" value="true" />';
    str += '</object>';
    //str += '<img style="margin-top:2px" src="documenti/video_progress-bar.gif" width="' + videoW + '" height="12" border="0" alt="">';
    str += '<div id="ProgressBar" style="width: ' + (videoW-6) + 'px; height: 12px; border: solid 1px #333333; background-color: #8E0101; color: #FFD000; font-size:10px; padding-left:5px;">';
    str += '<TABLE width="100%" cellspacing="0" cellpadding="0" border="0"><TR><TD ID="PlayState"></TD><TD ID="PlayerDuration" align="right"></TD></TR></TABLE>'
    str += '</div>';
    //str += '<div id="ProgressBar" style="height: 12px; border: solid 1px #333333; background-color: #8E0101; color: #FFD000; font-size:10px; padding-left:5px;"></div>';
    return str;
}

function drmCreate(){
    var s = '<object classid="clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062" height="0" width="0" id="netobj"  name="netobj" style="height:0px" VIEWASTEXT> ';
    
    if (is.ie)
    {
        s += '<embed id="netobj" mayscript TYPE="application/x-drm-v2" hidden="true" style="height:0px" ></embed>';
    }
    else
    {
        //do nothing
    }
    
    s += '</object>';
    return s;
}

var inconValues = new Array("ico-attenzione.gif", "ico-info.gif", "ico-key.gif", "ico-no.gif", "ico-ok.gif");

function ShowMessage(Message, Priority)
{
    player_Stop();
    
    //setto il messaggio
    document.getElementById('ErrorMessage').innerHTML = Message;
    document.getElementById('Video_WebTVLogin_ErrorMessageLogin').innerHTML = Message;
     
    //setto la priorità del messaggio
    document.getElementById('ErrorPriority').src = 'img/' + inconValues[Priority];
    document.getElementById('ErrorPriorityLogin').src = 'img/' + inconValues[Priority];
    
    //visualizzo il messaggio
    document.getElementById('wmpPlayer').style.display = 'none';
    if (Message.toLowerCase().indexOf('login')>-1)
    {
        document.getElementById('ErrorBox').style.display = 'none';
        document.getElementById('divLogin').style.display = 'block';   
    }
    else
    {
        document.getElementById('divLogin').style.display = 'none';
        document.getElementById('ErrorBox').style.display = 'block';
    }
    
    DisplayVideoControls(false);
}


function ShowPlayer()
{
    //visualizzo il player
    document.getElementById('ErrorBox').style.display = 'none';
    document.getElementById('divLogin').style.display = 'none';
    document.getElementById('wmpPlayer').innerHTML = wmpCreate();
    document.getElementById('wmpPlayer').style.display = 'block';
    
    //ho dovuto usare la variabile "Disable" per tutte le volte che è NULL.
    DisplayVideoControls(true);
}

function DisplayVideoControls(display)
{
    var ControlBox = document.getElementById('ControlBox');
    if (display)
    {
        //abilito i controlli
        ControlBox.className = ControlBox.className.replace(' controlli-disabled', '');
        document.getElementById('ajaxbottoni-disabled').style.display = 'none';
        document.getElementById('ajaxbottoni').style.display = 'block';
    }
    else
    {
        //disabilito i controlli
        if (ControlBox.className.indexOf('controlli-disabled')<=0) ControlBox.className += ' controlli-disabled';
        document.getElementById('ajaxbottoni-disabled').style.display = 'block';
        document.getElementById('ajaxbottoni').style.display = 'none';
    }
}


/************************************************/
// Event Handler
/************************************************/
 // This function will run every time the Media changes in Windows Media Player
function wmpMediaChange(item) {

     // get a handle to the Windows Media Player
     var wmp = document.getElementById('Player');

     // alert the data for convenience
     //alert ( wmp.currentMedia.name );
     //alert ( wmp.currentMedia.sourceURL );
}

var playstateValues = new Array("Undefined", "Stopped", "Paused", "Playing", "Fast forward", "Rewind", "Buffering", "Waiting", "End Of Stream", "Transitioning", "Ready", "Reconnetting");

var Player = document.getElementById(wmp);

// This function will run every time the Play State changes in Windows Media Player
function wmpPlayStateChange(newState) {
    // alert the play state value in plain text for convenience
    //alert ( playstateValues[newState] );
    //alert(newState);
    TogglePlayPause(newState);

    var Player = document.getElementById(wmp);
    //alert(Player.currentMedia.duration);
    document.getElementById("PlayState").innerHTML = playstateValues[newState];
    var durata = (Language=='it') ? "durata " : "duration ";
    if (Player.currentMedia) document.getElementById("PlayerDuration").innerHTML = durata + Player.currentMedia.durationString;
}

function wmpPositionChange(oldPosition, newPosition){
    //document.getElementById("PlayerDuration").innerHTML = newPosition + ' of ' + Player.currentMedia.durationString;
}



/************************************************/
// Funzioni per il player video
/************************************************/

function PlayerBarButtons() {
	if(document.getElementById('playerBAR')){
		var playerBar=document.getElementById('playerBAR');
		var buttons=playerBar.getElementsByTagName('div');
		for(i=0;i<buttons.length;i++){
			buttons[i].onmouseover = function(){this.className='divHOVER'}
			buttons[i].onmouseout = function(){this.className=''}
		}
	}
}

function TogglePlayPause(newState)
{
    switch (newState){
        case 1:
        case 2:
        case 8:
            var PP = document.getElementById("PlayPause");
            PP.title= 'Play';
            if (newState==8)
            {
                PP.href = 'javascript:player_Replay()';
            }else{
                PP.href = 'javascript:player_Play()';
            }
            imgPlayPause_on.src = imgPath + "control-play_.gif";
            imgPlayPause_off.src = imgPath + "control-play.gif";
            imgPlayPause_sel.src = imgPath + "control-play_.gif";
			setStatus('imgPlayPause',2);
			try
			{
			    SetImgPlay(currentVideo);
			}
			catch(e) {}
            break;
        case 3:
            var PP = document.getElementById("PlayPause");
            PP.title= 'Pausa';
            PP.href = 'javascript:player_Pause()';
            imgPlayPause_on.src = imgPath + "control-pause_.gif";
            imgPlayPause_off.src = imgPath + "control-pause.gif";
            imgPlayPause_sel.src = imgPath + "control-pause_.gif";
            setStatus('imgPlayPause',2);
            try
            {
                SetImgNowPlayng(currentVideo);
            }
            catch(e) {}
            break;
    }
}


function OpenVideo(videoID) 
{
	//Load dell'oggetto video
	var res = LoadVideoInformation(videoID);
        
	//Aggiorno il box info del video
	DisplayVideoInformation(res);
	
	//presento, se è previsto, il box ADV
	if (res.BannerText!='') DisplayADV(res.BannerText, res.BannerTime, res.BannerLink);
		
	//play!
	//var Title = '[' + res.CategoryName + '] ' + res.Title;
	ChangeVideoSource(res);
}

function ChangeQuality(Video, quality){
    CheckSecurity(Video.Id);
	SetQualityCookie(quality);
	HighlightConnectionQuality(quality);
	ChangeVideoSource(Video);
}


function ChangeVideoSource(Video) 
{
    
    var videoID = Video.Id;
    var VideoTitle = '[' + Video.CategoryName + '] ' + Video.Title;
    
    //memorizzo il videoID nel caso in cui debba visualizzare il form Login
    document.getElementById('Video_WebTVLogin_hiddenVideoID').value = videoID;
    
    var str = '';
    
    //Rate video
    var sRateUrl = 'Rate.aspx?v=' + videoID;
    if (VideoTitle) sRateUrl += '&t=' + VideoTitle;
    if (document.getElementById('Rate')) document.getElementById('Rate').src = sRateUrl;
     
    //controlli
    if (typeof window.ActiveXObject != 'undefined' ) // IE
    {
        netobj=document.getElementById("netobj");
        var ok=true;
        try
        {        
            var clientinfo=netobj.GetSystemInfo();
        }
        catch(err1)
        {
            ok=false;
            //ShowMessage("ATTENZIONE!<br>Per poter utilizzare le funzionalit&agrave; Micorsoft DRM &egrave; necessario attivare l'ActiveX premendo sulla Barra Informazioni di Internet Explorer e selezionando 'Esegui contollo ActiveX'. <br>Una volta attivato, occorre chiudere e riaprire la WebTV.", 2);
            ShowMessage("WARNING!<br>In order to use Microsoft DRM functionality, you have to enable 'DRM ActiveX network object'. <br>Please click on the Internet Explorer Information bar and select 'Run ActiveX control'.", 0);
            return;
        }
        
        if(ok)
        {
            try
            {
                xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
                xmlDoc.open( "POST", "validator.aspx?idvideo=" + videoID, false );
                xmlDoc.send(clientinfo);
                str = xmlDoc.responseText;
            }
            catch(err)
            {
                ShowMessage("An error occurred calling DRM License Issuer: "+err.description, 2);
               return; 
            }
        }
    }
    else // FFOX
    {
        try
        {
            xmlDoc = new XMLHttpRequest();
            xmlDoc.open( "POST", "validator.aspx?idvideo=" + videoID, false );
            //xmlDoc.open( "GET", "validator.aspx?idvideo=" + videoID, false );
            xmlDoc.send("");
            //alert(xmlDoc.responseText);
            str = xmlDoc.responseText; 
            //alert(str);
        }
        catch(err)
        {
            ShowMessage("An error occurred  calling DRM License Issuer: "+err.description, 2);
            return;
        }
    }
    
    
    if (str.indexOf('<ERRORE>')>-1) // Caso errore.
    {
        ShowMessage(str, 2);
        return;
    }
    else if((str.length>0) && (str.indexOf('StoreLicense')>-1)) // Dovrei avere la licenza
    {
        //abbiamo la licenza e la scriviamo
      try
      { 
            eval(str);
      }
      catch(err)
      {
            ShowMessage("An error occurred installing license : " + err.description, 2);
            return;
      }
    }
   else // FireFox o utente già scaricata licenza.
   {
        // donothing
   }
   
    //controllo per il live: 
    //se c'è una data di inizio live e quella data non è ora,
    //non mostro il live.
    var now = new Date();
    var d = Video.dtModDate;
    var data;
    var ora;
    if (Language=='it')
    {
        data = d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear();
        ora = d.getHours() + ':' + d.getMinutes();
    }
    else
    {
        data = (d.getMonth()+1) + '/' + d.getDate() + '/' + d.getFullYear();
        if (d.getHours()>12)
        {
            ora = (d.getHours()-12) + ':' + d.getMinutes() + ' PM';
        }
        else
        {
            ora = (d.getHours()-12) + ':' + d.getMinutes() + ' AM';
        }
    }
    
    //alert(Video.dtModDate + '\n' + now);
    if (Video.LiveUrl!='')
    {
       if (Video.dtModDate > now)
       {
            var label = GetLabel('msg_wait_for_live');
            var msg = label.replace('<data>', data).replace('<ora>', ora);
            //var msg = data + ' ' + ora + '\n' + d.toString();
            ShowMessage(msg, 2);
            return;
       }
    }
   
    
   ShowPlayer();
   
   
   if(checkPlayerCreated())
   {
        url = urlPlaylist.replace("{id}", videoID);
        
	    player_Stop();
	    document.getElementById(wmp).URL = url;
	    player_Play();
    	
	    //sostituisco l'immagine Play nella Playlist
	    //SetImgNowPlayng(videoID);
	    SetImgPlay(currentVideo);
    	
	    //incremento la visita
	    IncrementRenderVisits(videoID);
    	
	    currentVideo = videoID;
   } 
   else
   {
        if (typeof window.ActiveXObject != 'undefined' ) // IE
        {
            ShowMessage("An error occurred creating Media Player in this page. <br>Please check your browser configuration.",3);
        }
        else
        {
            ShowMessage("An error occurred creating Player Plugin. <br>Please check the presence of the Install plugin button and click it.",3);
        }
   }
}

function player_Restart(){
    player_Stop();
    player_Play();
}

function player_Replay()
{
    //ricarico il video xche currentVideo è l'ID e non l'oggetto video.
    var res = LoadVideoInformation(currentVideo);
    if (res) ChangeVideoSource(res);
}

// Serve a capire se è stato creato correttamente l'oggetto player
function checkPlayerCreated()
{
   try
   {
        var test=document.getElementById(wmp).uiMode;

        if(typeof test != 'undefined')
            return true;
        else
            return false;
   }
   catch(err)
   {
        return false;        
   }
}

function player_Play()
{
	if(document.getElementById(wmp)) document.getElementById(wmp).controls.play();
}
	
function player_Stop()
{
	if(document.getElementById(wmp)) document.getElementById(wmp).controls.stop();
}
	
function player_Pause()
{
	if(document.getElementById(wmp)) document.getElementById(wmp).controls.pause();
	//UpdateBP();
}

function player_FastForward()
{
    if(document.getElementById(wmp)) {
      if (document.getElementById(wmp).controls.isAvailable('FastForward')) document.getElementById(wmp).controls.fastForward();
    }
}

function player_FastReverse()
{
    if(document.getElementById(wmp)) {
        if (document.getElementById(wmp).controls.isAvailable('FastReverse')) document.getElementById(wmp).controls.fastReverse();
    }
}

function player_Previous()
{
    if(document.getElementById(wmp)) document.getElementById(wmp).controls.Previous();
}

function player_Next()
{
    if(document.getElementById(wmp)) document.getElementById(wmp).controls.Next();
}

function player_SetVolume(increment)
{
    if(!document.getElementById(wmp))  return;
    
	if(increment == "+")
	{
		document.getElementById(wmp).settings.volume = document.getElementById(wmp).settings.volume + 10;
	}
	if(increment == "-")
	{
		document.getElementById(wmp).settings.volume = document.getElementById(wmp).settings.volume - 10;
	}		
	if(document.getElementById(wmp).settings.volume < 0)
	{
		document.getElementById(wmp).settings.volume = 0;
	}
	if(document.getElementById(wmp).settings.volume > 100)
	{
		document.getElementById(wmp).settings.volume = 100;
	}
}

function player_SetMute()
{
    if(!document.getElementById(wmp))  return;
    document.getElementById(wmp).settings.mute = !document.getElementById(wmp).settings.mute;
}

function player_Fullscreen()
{
    if(!document.getElementById(wmp))  return;
	 if (document.getElementById(wmp).playState == 3) document.getElementById(wmp).fullScreen = true;
}

function player_State(NewState)
{
	// Test for the player current state, display a message for each.
	switch (NewState){
	  case 1:
	   BP.innerHTML = "Video: stopped";
	   break;
	
	  case 2:
	   BP.innerHTML = "Video: paused";
	   break;
	
	  case 3:
	   BP.innerHTML = "Video: playing";
	   break;
	   
	  // Other cases go here.
	  default:
	   BP.innerHTML = "&nbsp;";
	}
}
function player_Buffering(Start){
	var idI; // Variable for the interval id.

   // Test whether buffering has started or stopped.
   if (true == Start){ 
      // Start the timer. Call the function to update the display every second.
      //idI = window.setInterval("UpdateBP()", 500);
   }

   else{
      // Buffering is complete. Stop the timer.
	  window.clearInterval(idI);
   }
}
function UpdateBP(){
	if(document.getElementById(wmp).playState != 1 && document.getElementById(wmp).playState != 2 && document.getElementById(wmp).playState != 3)
	{
	   BP.innerHTML = "Video: buffering progress: " + document.getElementById(wmp).network.bufferingProgress;
	   BP.innerHTML += " %";
   }
}