var curPos = 1; //track the current position of the playlists
var maxPos = 2; //How many pages of clips do we have?
var cVideos = 8; //How many video Clips do we have?
var xmlDoc;
var url
function get_mediainfo(mediainfoIndex) {
    var longitudXML = xmlDoc.firstChild.nextSibling.childNodes.length;
    if (mediainfoIndex < longitudXML) {
        url = xmlDoc.firstChild.nextSibling.getElementsByTagName('miembro')[mediainfoIndex].getAttribute('url_video');
    } else {
       url = ''
    }
    
    switch (mediainfoIndex) {        
        case 0:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 1:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 2:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 3:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 4:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 5:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 6:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                

        case 7:
            return { "mediaUrl": url,
                      "placeholderImage": "",
                      "chapters": [               
                                  ] };                                                                
                          
        default:
             throw Error.invalidOperation("No such mediainfo");
     }
}


function crearObjetoXML(archivoXML) {
    //--- Compruebo si se trata de IE o no.
    //--- Si es IE el objeto ActiveXObject existirá.
    if (window.ActiveXObject) {
        //--- Creo un nuevo objeto de la librería Microsoft.XMLDOM que es la que se encarga
        //--- en Internet Explorer de 'parsear' un archivo XML.
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        //--- Defino la asincronización a false
        xmlDoc.async = false;
        xmlDoc.load(archivoXML);
              
    } else if (document.implementation && document.implementation.createDocument) {
        xmlDoc = document.implementation.createDocument("", "", null);
        xmlDoc.load(archivoXML);
        //--- Le decimos que cuando haya terminado de cargar el XML
        //--- ejecute la función de parsear el mismo.
        //--- NOTA: Se le llama a la función sin los paréntesis. Si se le colocan no funciona
        xmlDoc.onload = parsearXML;
    } else {
        alert('Su navegador no puede soportar este script');
    }
}

function StartWithParent(parentId, appId) {
    new StartPlayer_0(parentId);
}
//en esta funcion pongo las caracteristicas de tamaño del control silverlight en este caso video
function StartPlayer_0(parentId) {
    this._hostname = EePlayer.Player._getUniqueName("xamlHost");
    Silverlight.createObjectEx( {   source: 'player.xaml', 
                                        parentElement: $get(parentId ||"divPlayer_0"), 
                                        id:this._hostname, 
                                            properties:{ width:'270', height:'100%', version:'1.0', background:document.body.style.backgroundColor, isWindowless:'false' }, 
                                        events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );
    //Aqui corre el video al abrirse la página por primera vez
    //pero en mi caso no necesito que inicie sino que el usuario inicie el video que desee
    //this._currentMediainfo = 0;
}
StartPlayer_0.prototype= {
    _handleLoad: function(plugIn) {
        this._player = $create(   ExtendedPlayer.Player,
                                  { // properties
                                    autoPlay    : true, 
                                    volume      : 1.0,
                                    muted       : false
                              }, 
                                  { // event handlers
                                    mediaEnded: Function.createDelegate(this, this._onMediaEnded),
                                    mediaFailed: Function.createDelegate(this, this._onMediaFailed)
                                   // FullScreenChange: Function.createDelegate(this, this._onFullScreenChange)
                                  },
                                  null, $get(this._hostname)  ); 
		
		//wire up the rollover and click events for each of our play buttons		
		for (var i = 0; i < cVideos; i++)
		{
			var element = plugIn.Content.findName('play' + i);
			element.addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));
			element.addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));
			element.addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._playX));
		}
		
		plugIn.Content.findName('LeftArrow').addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));
		plugIn.Content.findName('LeftArrow').addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));
		plugIn.Content.findName('LeftArrow').addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._slideLeft));
		plugIn.Content.findName('RightArrow').addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));
		plugIn.Content.findName('RightArrow').addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));
		plugIn.Content.findName('RightArrow').addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._slideRight));

        this._playNextVideo();    
    },

	_rollOver: function(sender, eventArgs) {
		sender.opacity=1;
   },
   
    _rollOut: function(sender, eventArgs) {
		sender.opacity=0.74;
   },
   
   _playX: function(sender, eventArgs) {
		var X = Number(sender.Name.substring(4));
		this._currentMediainfo = X;
		this._player.set_mediainfo( get_mediainfo( X ));
		sender.opacity=1;
   },
   
   _slideLeft: function(sender, eventArgs) {
        switch(curPos)
        {
            case 1:
                //sender.findName("LeftArrow").opacity = 0.85;
                break;
            default:
                sender.findName("MoveRight0" + curPos).Begin();
                curPos--;   
        }
   },  
   
   _slideRight: function(sender, eventArgs) {
		switch(curPos)
        {               
            case maxPos:
                //sender.findName("RightArrow").opacity = 0.85;  
				break;				
            default:
				sender.findName("MoveLeft0" + curPos).Begin();
                curPos++;
                //sender.findName("LeftArrow").opacity = 1;      
        }
   },
    
    _onMediaEnded: function(sender, eventArgs) {
        //window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000);
    },
    _onMediaFailed: function(sender, eventArgs) {
        alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );
    },
    _playNextVideo: function() {
        if (this._currentMediainfo<cVideos)
            this._player.set_mediainfo( get_mediainfo( this._currentMediainfo++ ) );    
    }       
}