var hasListener;
var debug;
var isInitPlayer;
var isPlaying;

function initCanal(){
    hasListener = false;
    debug =  false;
    isInitPlayer = false;
    isPlaying = false;	    
    initOfflineMsg();    
    checkStatus();
}

function initPlayer(){

    if (!isInitPlayer){
       var s1 = new SWFObject('http://www.uestv.cl/player/flvplayer/player.swf','canal_player','512','384','10','#FFFFFF'); 
       s1.addParam('allowfullscreen','true'); 
       s1.addParam('allowscriptaccess','always'); 
       s1.addParam('flashvars','backcolor=#000000&frontcolor=#CCCCCC&width=512&height=384&enablejs=true&plugins=livestream&livestream.file=canal&livestream.streamer=rtmp://videos.uestv.cl:80/uestv/&livestream.message=Conectando a UESTV ...&livestream.interval=1&logo=http://www.uestv.cl/player/flvplayer/logo_uestv.png&logo.file=http://www.uestv.cl/player/flvplayer/logo_uestv.png&logo.position=top-left&logo.hide=false&controlbar=over&bufferlength=3&fullscreen=true');
       s1.write('div_player');      	 
	   isInitPlayer = true;
	   isPlaying = true;
	   //setTimeout(function () { initEventosPlayer(); }, 3000);
	} 
	
}
 
function initOfflineMsg(){	 
     var player = document.getElementById('canal_player'); 
     var divplayer = document.getElementById('div_player');
     if (isInitPlayer){
	    divplayer.innerHTML="";
	    isInitPlayer = false;
	 }   
	 divplayer.innerHTML = "<img src='http://www.uestv.cl/images/noprogram.jpg' width='512' height='384' />" ;	
	 isPlaying = false; 	 	 
}

function initEventosPlayer(){
    var player = document.getElementById('canal_player');
    
    if (isInitPlayer && !hasListener){
      // player.addViewListener("PLAY","showState");
      // player.addViewListener("STOP","showState");
      player.addModelListener("ERROR", "showError");
      player.addModelListener("STATE", "showState");
      player.addModelListener("TIME", "showTime");
      player.addModelListener("META", "showMeta");
      //player.addEventListener("JWPLAYER_PLAYER_STATE","showState2");    
      // player.sendEvent("PLAY","true");
      // player.addControllerListener("STOP","showState");
      hasListener = true;
      
    }
    
    /* if (stop){
        player.sendEvent("STOP","true");
        stop = false;
    }else{
        player.sendEvent("PLAY","true");
        stop = true;    
    }*/
    
 }  

 function showError(obj) { 
 	if (debug){ 
	  console.log('error: ');  
    } 
 }; 
 
 function showError2(obj) { 
	 if (debug){ 
	  console.log('error2: ');  
	 } 
 }; 
 
 function showState(obj) { 
	 if (obj.newstate == "COMPLETED"){		  
	    initOfflineMsg();	
	 }   
	 
	 if (obj.newstate == "PLAYING"){
	     isPlaying = true;	 
	 }
	  
	 if (debug){ 
	  console.log('state: ');  
	 } 
 };
 
 function showState2(obj) { 
	 if (debug){ 
	  console.log('state2: '+obj.newstate);  
	 } 
 };
 
 function showTime(obj) { 
	 if (debug){ 
	   console.log('time: ');  
	 }  
 };
 
 function showMeta(obj) { 
	//alert(obj);
	 if (debug){ 
	   console.log('SHOWMETA');  
	 }  
 };
 

function objetoAjax(){
   var oAjax=false;
   var asParsers=["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
   for (var iCont=0; ((!oAjax) && (iCont<asParsers.length)); iCont++){
      try{
           oAjax=new ActiveXObject(asParsers[iCont]);
      }catch(e){
        oAjax=false;
      }
    }

    if ((!oAjax) && (typeof XMLHttpRequest!='undefined')){
        oAjax=new XMLHttpRequest();
    }
    return oAjax;
}

function checkStatus(){
        var date = new Date();
        var url = "/player/getCanalStatus.php/"+date.getMilliseconds();        
        ajax=objetoAjax();
        ajax.open("GET", url);
        ajax.onreadystatechange=function() {
              if (ajax.readyState==4) {
				  //alert(ajax.responseText);
				   if (ajax.responseText == "PLAYING"){
					   if (!isPlaying){
	                       initPlayer();					   
					   }
				   }else{
					  if (isPlaying){ 					   
					     initOfflineMsg();									  
				      }
				   }
              }else{
				 //initOfflineMsg(); 
			  }
        }

        ajax.send(null);
        
}

window.onload = function(){	
	initCanal();
	setInterval(function (){ checkStatus(); }, 60000);
};

