function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function barraProgreso()
// despliega una barra con el progreso de la descarga
{

	if(ytplayer && ytplayer.getDuration) 
	{
		var bytes_total = ytplayer.getVideoBytesTotal();
		
		var bytes_cargados = ytplayer.getVideoBytesLoaded();
		
		var porcentaje = Math.round(bytes_cargados * 480 / bytes_total);
		
	
		if(bytes_total > 0)
		{
			document.getElementById("bar").width = porcentaje;
		
			if(bytes_cargados == bytes_total)
			{
				clearInterval(lapso);
			
			}
			
		}
		
	}
}


// carga el archivo xml
var xmlDoc;

if (window.XMLHttpRequest)
  {
  xmlDoc=new window.XMLHttpRequest();
  xmlDoc.open("GET","bing.xml",false);
  xmlDoc.send("");
  xmlDoc=xmlDoc.responseXML;
  }
else if(ActiveXObject("Microsoft.XMLDOM"))
// IE 5 and IE 6
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.load("playlist.xml");
  }
  
  
var videos=xmlDoc.getElementsByTagName("track");

var total_videos = videos.length;

var video = 0;  


var cancion;
var url;
  
  
videos_orden = new Array();
// creo un array para almacenar el orden de los videos a reproducir
    
    
// alimento el arrray
for (var i=0;i<total_videos;i++)
{
	videos_orden.push(i);
}
    
      
      
// si el video no existe... carga el siguiente
function onPlayerError(errorCode) 
{
	if(video < total_videos-1)
	{
		video++;
	}
	else
	{
		video = 0;
	}
	
	orden = videos_orden[video];
	
		
	cancion = videos[orden].getElementsByTagName("title")[0].childNodes[0].nodeValue;
	
	url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue; 
	
	var url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue;
	
	url = url.slice(31);
	
	ytplayer.cueVideoById(url, 0, "small");
	
	ytplayer.playVideo();
	
	document.getElementById('cancion').innerHTML=cancion;  

    lapso = window.setInterval(barraProgreso, 250);
    // inicio la barra...  
      

}


function onPlayerStateChange(newState) 
// This function is called when the player changes state
{

	if(newState==0)
	// si el video se detiene, reproduce el siguiente
	{
      
      
      
      if(video < total_videos-1)
      {
      	video++;
      }
      else
      {
      	video = 0;
      }
      
      
	
	orden = videos_orden[video];
	
	
	cancion = videos[orden].getElementsByTagName("title")[0].childNodes[0].nodeValue;
	
	url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue; 
	
	var url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue;
	
	url = url.slice(31);
	
	ytplayer.cueVideoById(url, 0, "small");
     
    ytplayer.playVideo();
    
	document.getElementById('cancion').innerHTML=cancion;  
    
    lapso = window.setInterval(barraProgreso, 250);
    // inicio la barra...  
      
  }

}


function playVideo() {
  if (ytplayer) 
  {
    ytplayer.playVideo();
    
    document.getElementById('pause').style.display = 'block';
    document.getElementById('play').style.display = 'none';
    
  }
}

function pauseVideo() 
{
  if (ytplayer) 
  {
    ytplayer.pauseVideo();
    
    document.getElementById('pause').style.display = 'none';
    document.getElementById('play').style.display = 'block';
  }
}


function nextVideo() 
{
  if (ytplayer) 
  {
    ytplayer.pauseVideo();
    
    document.getElementById('pause').style.display = 'block';
    
    document.getElementById('play').style.display = 'none';
    
    
      if(video < total_videos-1)
      {
      	video++;
      }
      else
      {
      	video = 0;
      }
      
      
	orden = videos_orden[video];
	
	cancion = videos[orden].getElementsByTagName("title")[0].childNodes[0].nodeValue;
	
	url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue; 
	
	var url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue;
	
	url = url.slice(31);
	
	ytplayer.cueVideoById(url, 0, "small");
     
    ytplayer.playVideo();

	document.getElementById('cancion').innerHTML=cancion;  

    lapso = window.setInterval(barraProgreso, 250);
    // inicio la barra...  
    
  }
}



// This function is automatically called by the player once it loads
function onYouTubePlayerReady(playerId) 
{
  ytplayer = document.getElementById("ytPlayer");

 
  ytplayer.addEventListener("onStateChange", "onPlayerStateChange");
  
  ytplayer.addEventListener("onError", "onPlayerError");
  
  //Load an initial video into the player
	orden = videos_orden[0];
	
	
	cancion = videos[orden].getElementsByTagName("title")[0].childNodes[0].nodeValue;
	
	url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue; 
	
	var url = videos[orden].getElementsByTagName("location")[0].childNodes[0].nodeValue;
	
	url = url.slice(31);
	
	ytplayer.cueVideoById(url, 0, "small");
  	
  	ytplayer.playVideo();
  	
	document.getElementById('cancion').innerHTML=cancion;  

    lapso = window.setInterval(barraProgreso, 250);
    // inicio la barra...  

}



// The "main method" of this sample. Called when someone clicks "Run".
function loadPlayer() 
{
  // Lets Flash from another domain call JavaScript
  var params = { allowScriptAccess: "always" };
  
  // The element id of the Flash embed
  var atts = { id: "ytPlayer" };

  // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
  swfobject.embedSWF("http://www.youtube.com/apiplayer?" +
                     "&enablejsapi=1&playerapiid=player1", 
                     "videoDiv", "480", "295", "8", null, null, params, atts);
}



function _run() 
{
  loadPlayer();
  
}

google.setOnLoadCallback(_run);
