// VIG information
var viginfo = {};
var elapsed = 0;
var firstPlayVIG = true;
var firstPlaySeg = true;
// curent language
var lang = '';
var playAllLang = '';
var entroaki=-1;
//var TotalSegment =-1;
//var for try load carrucel
var setcarrucel =0;
//var for firts item to play
    var firtsitem =-1;
var supportedLangs = {
 enUS: 'English',
 esMX: 'Spanish',
 frFR: 'French'
};


// jcarousel wrapper
var jcarousel = null;
var playerFLV = null;
function playerReady(thePlayer) {
    playerFLV = window.document[thePlayer.id];
    addmyListeners();
}


function addmyListeners() {
    if (playerFLV) { 
    try{
        addAllViewListeners();
        }catch(dd){}
    } else {
        setTimeout("addListeners()",100);
    }
}
//addlisteners
function addAllViewListeners() {
    var tries = 0;
		function tryLoad() {	
			if (!movie() ){
				if (++tries <= 50)
					setTimeout(tryLoad, 200);
				return;
			}
		}
	tryLoad();
    movie().addViewListener('ITEM', 'stateListener'); //{index,id,client,version}. 
    movie().addViewListener('PLAY', 'stateListener'); //{state,id,client,version}.
    movie().addViewListener('STOP', 'stateListener'); //{id,client,version}. 
    movie().addModelListener("STATE", "stateListener");
    movie().addControllerListener("ITEM", "itemListener");
}
function itemListener(obj) {
        getUpdate('item',obj.index,0,movie);
}
function stateListener(obj) { 
    currentState = obj.newstate; 
    //alert('Estate: ' + currentState);
    if(currentState =='PAUSED' || currentState =='STOP' || currentState == 'COMPLETED'){
        getUpdate('state',0,0,movie);
    }
     if(currentState =='ITEM' || currentState =='PLAY'  || currentState =='PLAYING' ){        
        getUpdate('state',2,0,movie);
    }
}
// fetch the movie object
function movie() {
	if (navigator.appName.indexOf('Microsoft') != -1)
		return window['flvplayer'];
	else
		return document['flvplayer'];
}

// callback when movie status changes; we use this to update
// the segment display
function getUpdate(type, pr1, pr2, swf) {
		
	if (type == 'item') {
		
		// update display
		jQuery('#vig_segment_id').text(pr1+1);
		jQuery('#vig_segment_name').text(viginfo[lang].segments[pr1].title);
		jQuery('#vig_segment_count').text(viginfo[lang].segments.length);
		if (window.parent.document.getElementById('frmplayer') != null)
            window.parent.document.getElementById('frmplayer').height = document.body.clientHeight;

		// note current item
		curitem = pr1;

		if (checexplorer() == 1 && entroaki==-1){
		    entroaki=2;
           playItem(firtsitem,1,1);
            		
        }
	}
	    
	if(type == 'state'){
		if(pr1 == 0){
	    //stop	
	        firstPlaySeg = true
	        loadXMLDoc('Player.aspx?MODE=event&pr1=0&segmentId=' + viginfo[lang].segments[curitem].segmentId + '&timeframe=' + elapsed);
		}
		if(pr1 == 1){
		//buffer	
		}
		if(pr1 == 2){
		//play
		    loadXMLDoc('Player.aspx?MODE=event&pr1=2&segmentId=' + viginfo[lang].segments[curitem].segmentId + '&timeframe=' + elapsed + '&firstPlayVIG=' + firstPlayVIG + '&firstPlaySeg=' + firstPlaySeg);
		    if(firstPlayVIG)
		        firstPlayVIG = false
            if(firstPlaySeg)
		        firstPlaySeg = false
		}
		if(checexplorer() == 1){
    		if(viginfo[lang].segments[curitem].segmentId == 0){
	    	    playItem(firtsitem,1,2);
	    	}
	    }
	}
	
	if(type == "time")
	    if (pr1 > 0)
	        elapsed = pr1;
	        
	
}

// play a particular item
function playItem(index, segmen,Googledata) {
	//alert('ttee '+ segmen);
	// ensure we have the item
	try{
	    getUpdate('state',0,0,movie);
	}catch(ex){}
	try{
	    curitem = index;
	}catch(ex){}
	if (index < 0 || index >= viginfo[lang].segments.length) {
	//if (index < 0 || index >=viginfo.count ) {
	//if (index < 0 || index >=viginfo[lang].segments[index] ) {
		//alert('Error: Video does not exist.');
		return;
	}
	
	
        if (segmen == "1"){
        if(Googledata == 3){
            setgoogleTraking(index,1);
            }
            var tries = 0;
	        function tryPlay2() {
		        if (!movie() || !movie().sendEvent) {
			        if (++tries <= 50)
				        setTimeout(tryPlay, 200);
			        return;
		        }
		        movie().sendEvent('stop');
		        //movie().sendEvent('playitem', index);
		        movie().sendEvent('ITEM', index);
		        document.getElementById('playAllBtn').disabled = false;
    		   
	        }
	        tryPlay2();
        }
	// if the user has not been logged in and the segment is not the first, then we don't have access to view it
   	if (!existsUser && index != firtsitem && segmen == "0") {
	    setgoogleTraking(index,0);
	    loadXMLDoc('Player.aspx?MODE=noUser&segmentId=' + viginfo[lang].segments[index].segmentId);	   
	    
	    //window.parent.document.location.href = "/DNNTest/Home/Account/tabid/281/language/es-MX/Default.aspx";
		//document.location.href="http://localhost:2298/DNNTest/Home/Account/tabid/116/language/es-MX/Default.aspx";
		return;
	}else{
	    // play the movie!
	    // keep trying every 200 msec until it works or until
	    // we hit 50 tries (10 seconds)	 
	//    alert('entro con el id= '+ index) ;
	if(Googledata == 3){
            setgoogleTraking(index,1);
            }
	    var tries = 0;
	    function tryPlay() {
		    if (!movie() || !movie().sendEvent) {
			    if (++tries <= 50)
				    setTimeout(tryPlay, 200);
			    return;
		    }
		    movie().sendEvent('stop');
		    try{
		    //movie().sendEvent('playitem', index);
		    movie().sendEvent('ITEM', index);
		    }catch(ee){
		    //alert(ee);
		    };
		    document.getElementById('playAllBtn').disabled = false;
		   
	    }
	    tryPlay();
    }
}

// called to change our current language
function setLang(new_lang,viewList) {
try{ 
    
	// only do all this work if it's a new language
	 if (new_lang != lang) {
		// save the current language
		lang = new_lang;
		
		// ensure we have this lang
		if (!viginfo[lang])
		{
		//add dinamically the language images for the VIG
		    var itemAsString = "";
	        for(var item in viginfo){
                if(item != ""){
	                itemAsString = item; 
	            }    
	        }
	        if(itemAsString == ""){
		        // set the new title
                jQuery('#vig_title').text('');
		        if(!viewList){
                    if (self.parent.frames.length != 0){
                   // self.parent.LanguageAvailable(supportedLangs[lang], 'inline')
                    }
		        }
	            jQuery('#button1').css('display', 'none');
	            jQuery('#divSegmentTitles').css('display', 'none');
	            jQuery('#vig_segments').css('display', 'none');
	            jQuery('#vigData').css('display', 'none');
		        lang = itemAsString;
		        return;
		    }
		     if(!viewList){
                    if (self.parent.frames.length != 0){
                    //self.parent.LanguageAvailable(supportedLangs[lang], 'inline')
                    }
		    }
		    lang = itemAsString;
		    
		}
		else{
		    if(!viewList){
		         if (self.parent.frames.length != 0){
                       // self.parent.LanguageAvailable('', 'none')
                        }
		        jQuery('#button1').css('display', 'inline');
		        jQuery('#divSegmentTitles').css('display', 'inline');
		    }
		}
		//popup('DescriptionPopup.aspx?LanguageId=en-Us');
		//self.parent.SetCurrLang();
		// set language info
		//jQuery('#vig_langname').text(lang.substring(0,2) + '_' + lang.substring(2,4));
        if(lang.substring(0,2) == "es"){
		jQuery('#vig_langname').text('sp');
		}else
		{jQuery('#vig_langname').text(lang.substring(0,2));}
		
        jQuery('#vig_langimg').attr('src', 'lang-'+lang+'.gif').attr('title', supportedLangs[lang]).attr('alt', supportedLangs[lang]);
		// set the new title
		jQuery('#vig_title').css('display', 'none');
		jQuery('#vig_title').text( viginfo[lang].title);

		// update segment display
		jQuery('#vig_segment_id').text(1);
		jQuery('#vig_segment_name').text(viginfo[lang].segments[0].title);
		jQuery('#vig_segment_count').text(viginfo[lang].segments.length);

		// (re)create the jcarousel wrapper
		if(!viewList){
		    jQuery('#vigData').css('display', 'block');
		    if (!jcarousel) {
		    //jQuery('#vig_segments').css('display', 'inline');
		       jQuery('#button1').css('display', 'inline');
		       jQuery('#divSegmentTitles').css('display', 'inline');
			    jQuery('#vig_segments').jcarousel({
				    wrap: 'last',
//				    size: viginfo[lang].segments.length,
				    itemLoadCallback: function(self, state) {
					    // only care about initialization
					    if (state != 'init')
						    return;

					    // load items from playlist
//					    if (viginfo[lang].segments.length <=3){
//					        self.size(viginfo[lang].segments.length - 1);
//                        } else{
//                            if (viginfo[lang].segments.length > 0){    
//                            self.size(viginfo[lang].segments.length);
//                            }
//                        }
                        if (viginfo[lang].segments.length > 0){ 
                            try{
                                self.size(viginfo[lang].segments.length);
                            }catch(exem){}   
                        }
                        var itempo =-1;
					    for (i = 0; i <= viginfo[lang].segments.length -1; ++i) {
						    itempo++;
						    // reference item
						    var item = viginfo[lang].segments[i];
						    if(item.image==1){
						        //defiendo fitr item to play
						        if (firtsitem==-1){
						            firtsitem=i;
						        }
						    //alert ('el iten es2'+item.image);
						    // format data about item
						    var title = item.title.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/"/,'&quot;');
						    //var caption = title;
                            var caption = '';
						    
						    if(lang == 'enUS'){
						        caption = 'Segment '+(itempo+1);
						        if (itempo == 0) caption = 'Introduction';
						    }else if(lang == 'esMX'){
						        caption = 'Segmento '+(itempo+1);
						        if (itempo == 0) caption = 'Introducci&#243;n';
						    }else if(lang == 'frFR'){
						        caption = 'Segment '+(itempo+1);
						        if (itempo == 0) caption = 'Introduction';
						    }else{
						        caption = 'Segment '+(itempo+1);
						        if (itempo == 0) caption = 'Introduction';
						    }

						    // item html
						    //var html = '<li><a href="PLAY"  onclick="playItem('+i+'); return false;"><img src="'+item.thumb+'" alt="'+title+'" title="'+title+'"/></a><div style="text-align: center; font-size: 10pt">'+caption+'</div></li>';
						    var html = '<li style="text-align: center;" ><a href="PLAY"  onclick="playItem('+i+','+item.video + ',3); return false;"><img src="'+item.thumb+'" width="76" height="41" alt="'+title+'" title="'+title+'"/></a><div style="width:84px; text-align: center; font-size: 10pt; ">' + caption + '</div></li>';
                            //add items for safari
                            if (checexplorer() == 1 ){
						     var a = itempo;
						     if (a==0){
						        a=1;
						        htmlsafari=html;
						     }
						        self.add(a, html);
						    }else{
						        self.add(itempo, html);
						    }
						    }
                            else{
                           itempo=itempo-1;
                            }
					    }
					    if (checexplorer() == 1){
					        
					        if ((viginfo[lang].segments.length -1) >0 && itempo >0){
                                self.add(0, htmlsafari);
                            }
                        }
                        //en items for safari
					    // store reference
					     
					    jcarousel = self;
					    
//					    setTimeout(function(){
//                        jcarousel.reset();
//                        setLang(lang,viewList);},500);
				      
				    }
			    });
		    } else {
		        jcarousel.reset();
		    }
		}
		else{
		    jQuery('#button1').css('display', 'none');
		    jQuery('#divSegmentTitles').css('display', 'none');
		    jQuery('#vigData').css('display', 'none');
	        jQuery('#vig_title').text('');
		}
		if (widget){
		    jQuery('#button1').css('display', 'none');   
		    jQuery('#divSegmentTitles').css('display', 'none');
		    //jQuery('#vigData').css('display', 'none');
	        
		}
      
		// load the new playlist
		// keep trying every 200 msec until it works or until
		// we hit 50 tries (10 seconds)
		var tries = 0;
		function tryLoad() {	
			if (!movie() ){
				if (++tries <= 50)
					setTimeout(tryLoad, 200);
				return;
			}
			if (checexplorer() == 1 ){
               var tries2 = 0;
               function tryLoad2() {
                   //if(!movie().loadFile({file:viginfo[lang].playlist})){
                        if (++tries2 <= 6) {
                            if(tries2 > 4){
                                try{
                                    //movie().loadFile({ file: viginfo[lang].playlist });
                                } catch(ex){};
                            }
                            playItem(firtsitem,1,4);
                            setTimeout(tryLoad2, 200);
                        }
                        else{
                            if(setcarrucel == 0){ 
                                checktrycarrucel=0;
                                trycarrucel();
                                return;
                            }
                            else{
                                if (++tries2 <= 26){ 
                                    if(tries2 > 24){
                                    try{
                                       // movie().loadFile({ file: viginfo[lang].playlist });
                                    } catch(ex){};
                                   }
                                   setTimeout(tryLoad2, 200);
                                   playItem(firtsitem,1,4);
                                  return;
                                }
                                else{
                                		playItem(firtsitem,1.5);
//                                    if(repeatMode){
//                                        playItem(0);
//                                        return;
//                                    }
                                }
                            }
                        }
                   //}
                    //movie().loadFile({file:viginfo[lang].playlist});
                   //return;
               }
               tryLoad2();
           }else{
            var asd = movie();
           }
			//movie().loadFile({file:viginfo[lang].playlist});
			if (window.parent.document.getElementById('frmplayer') != null){
			
			if (document.body.clientHeight < 200){
			        window.parent.document.getElementById('frmplayer').height = 482;
			
			} else{
			        window.parent.document.getElementById('frmplayer').height = document.body.clientHeight;
			}
			    }
			if(repeatMode){
			    playItem(0,1,7);
            }
    		playItem(firtsitem,1,8);
            
		}
		tryLoad();
	}
	}
catch(ex){
}

}
//*** Description popup window
function popupTitles(){
popup('DescriptionPopup.aspx?LanguageId=' + lang +'');
    //jQuery('#divSegmentTitlesPopup').css('display', '');   
    //self.parent.showDescriptionTitles();
}

function popup(mylink){
    var windowname = 'Description'
    if (! window.focus)return true;
    var href;
    if (typeof(mylink) == 'string')
       href=mylink;
    else
       href=mylink.href;
    window.open(href, windowname, 'width=400, height=200, resizable=no, toolbar=no, scrollbars=yes, titlebar=no, location=no');
    return false;
}
// lang info loader callback
function onLoadVIGInfo(data,viewList){
	// save the info
	//alert(swf);
	viginfo = data;
	
	//add dinamically the language images for the VIG
	/*for(var item in viginfo){
	    var itemAsString = "";
	    itemAsString = item;
	    var img = document.createElement('<img src="france.gif" alt="English" border="0" style="display:inline" onclick="setLang(\'' + itemAsString + '\'); return false;>');
	    document.getElementById('vig_languages').appendChild(img);
	}*/
        
    // enable language choosers
	if (viginfo.enUS) jQuery('#vig_lang_en').css('display', 'none');
	if (viginfo.esMX) jQuery('#vig_lang_sp').css('display', 'none');
	if (viginfo.frFR) jQuery('#vig_lang_fr').css('display', 'none');
	
	// play VIG
	if(repeatMode){
        setLang(playAllLang,viewList);
    }else{
        setLang(config.lang,viewList);
    }
    
//	
//	  if(viewList){
//	        jQuery('#button1').css('display', 'none');
//          jQuery('#divSegmentTitles').css('display', 'none');
//	        jQuery('#vigData').css('display', 'none');
//	        jQuery('#vig_title').text('');
//		    //jQuery('#vig_title').css('display', 'none');
//		    
//	  }
	 
}

// makes the player play all clips
function playAll () {
    if(!repeatMode)
    {
        document.getElementById("playAllBtn").disabled=true;
        repeatMode = true;
        destroyPlayer();
        bunload();
        createDIV(false);
        playAllLang = lang;
        lang = '';
        setTimeout(
            function(){
                loadXMLDoc('Player.aspx?MODE=loguser');
            }
        , 1000);
    }else{
        playItem(0,1,9);
    }
    
    /*document.getElementById('playAllBtn').disabled = true;
    movie().sendEvent('STOP', 'null');
    destroyPlayer();
    bunload();
    repeatMode = true;
    createPlayer();
    playItem(curitem);
    document.getElementById('playAllBtn').disabled = false;*/
    
    // recreate the player in repeat mode
    /*document.getElementById('playAllBtn').disabled = true;
    movie().sendEvent('STOP', 'null');
    var nlang = lang;
    setTimeout(
        function(){
            destroyPlayer();
            bunload();
            repeatMode = true; 
            window.onbeforeunload = bunload;
            lang = '';        
            init();
        }
    , 500);
                
    setTimeout(
        function(){
            playLanguage(nlang);
        }
    , 3000);

    setTimeout(
        function()
        {
            playItem(curitem);
        }
    , 4000);*/
}

//shows the popup menu for languages
function ShowLangMenu(visibility, time){
    if(visibility != 'hidden'){
        jQuery('#vig_langselect').css('visibility', visibility);
        if(document.getElementById('vigdata') != null)
            document.getElementById('vig_langselect').style.top = parseInt(document.getElementById('vigdata').offsetTop) + parseInt(document.getElementById('vig_languages').offsetHeight);
    }
    else{
        setTimeout(jQuery('#vig_langselect').css('visibility', visibility), time)
    }
}

// makes the player play new language
function playLanguage(language) {
    // recreate the player in repeat mode
    if(!repeatMode)
        movie().sendEvent('STOP', 'null');
    lang='';
    setLang(language,false);
}

// function try  to add carrucel
var checktrycarrucel =0;
function trycarrucel(){
       if (checktrycarrucel <90){ 
            checktrycarrucel++;
            setTimeout(trycarrucel(), 5000);
        }
        else{
        
        setcarrucel =1; 
        destroyPlayer();
        bunload();
        createDIV(false);
       playAllLang = lang;
        lang = '';

       setTimeout(
            function(){
                loadXMLDoc('Player.aspx?MODE=loguser');
            }
        , 1000);
       //alert('entro al final');
                return;
        
        }
        return;
}

// this function is for check the explorer
function checexplorer(){
    if (navigator.userAgent.indexOf("Safari")!=-1) {
        return 1;
    }else{
        return 0;
    }
}
function setLangAllApp(new_lang){
   loadXMLDoc('Player.aspx?MODE=lang&LanguageId=' + new_lang);
   checkstate();
}
function checkstate()
{
if (xmlhttp.readyState==4){// 4 = "loaded"
        if (xmlhttp.status==200){// 200 = OK
              loadparent();
        }else{ setTimeout(checkstate,50) ;}
 }else{setTimeout(checkstate,50) ;}
}
