var player = null;
var videos = new Array();
var videoActual = 0;
var playlist;
var playlist2;
var trans_active = 0;
var id_video;
var playlistTop;
var playlistPositions=new Array();
var links = new Array();
var links_inicializados = false;

var primerNext = true;
var primerPrev = true;

var primerElementoPlayList2;
var ultimoElementoPlayList2;
var elementoActualPlayList2=1;
var mycarousel;
var elementosVisibles=10;
var moveElements=5;
 var numActual=0;
$(document).ready( function() {
		// initialize scrollable
	$('#playlist').jScrollPane({showArrows:true,scrollbarWidth:10, scrollbarMargin:10, animateTo:true});
	 mycarousel=$('#mycarousel');

	 $('#mycarousel').jcarousel({
			scroll:moveElements,
			visible:elementosVisibles,
        	initCallback:   mycarousel_initCallback,
        	itemFirstInCallback:  mycarousel_itemFirstInCallback,
        	itemLastInCallback:   mycarousel_itemLastInCallback,
        	itemVisibleInCallback: {
            	onBeforeAnimation: mycarousel_itemVisibleInCallbackBeforeAnimation
        	},
        	itemVisibleOutCallback: {
            	onBeforeAnimation: mycarousel_itemVisibleOutCallbackBeforeAnimation        	}
	    });

    var $targets = $('#playlist-scroll-targets');
    $playlist = $('#playlist');
    $playlist2 = $('#playlist_horizontal');
    playlistTop = parseInt($playlist.offset().top);


    $("#playlist div.thumb_video").each(function(i){
    	var posicion = parseInt($(this).offset().top);
    	playlistPositions[i]=posicion;

    	videos[i] = new Array();
    	if($(this).is(":hidden")){
    		videos[i][0] = true;
    	}else{
    		videos[i][0] = false;
    	}
    	videos[i][1] = posicion;
    	videos[i][2] = eval('('+$(this).children("div.info_video").html()+')');

    	$(this).click(function(event){
     		temp_pos=posicion - playlistTop;
    		playlistPositions[i]=temp_pos;
        	$playlist[0].scrollTo(temp_pos);
			player.sendEvent('STOP');
			player.sendEvent('REDRAW');
			videoActual = i;
    		mostrarPaginacionVideos(videos[videoActual][2]);
			seleccionar(videoActual);
			seleccionar2(videos[videoActual][2],videoActual);
			cargarVideo(videos[videoActual]);
			cargarDatosVideo(videos[videoActual],videos,videoActual);

    	});
    });

    $("#mycarousel li").each(function(i){
    	$(this).click(function(event){

    		temp_pos=playlistPositions[i]- playlistTop;
        	$playlist[0].scrollTo(temp_pos);
			player.sendEvent('STOP');
			player.sendEvent('REDRAW');
			videoActual = obtenerVideoActualPorId($(this).attr("id"));
    		mostrarPaginacionVideos(videos[videoActual][2]);
			seleccionar(videoActual);
			seleccionar2(videos[videoActual][2],videoActual);
			cargarVideo(videos[videoActual]);
			cargarDatosVideo(videos[videoActual],videos,videoActual);
    	});
    });
	mostrarPaginacionVideos(videos[videoActual][2]);
	createPlayer(videos[videoActual]);
	cargarDatosVideo(videos[videoActual],videos,videoActual);
	seleccionar(videoActual);
	seleccionar2(videos[videoActual][2],videoActual,videoActual);

	$("#trans_button").click(function(event){
		show_transcription();
		return false;
	});

	$("#trans_button_x").click(function(event){
		show_transcription();
		return false;
	});

	$("ul.marcadores li a.comparte").click(function(event){
		if(videos[videoActual][2].visible){
			player.sendEvent('PAUSE');
			//window.open(this.href+"http://"+document.domain+"/"+videos[videoActual][2].idcontenido+"/"+videos[videoActual][2].titulo_url);
			window.open(this.href);
		}
		event.preventDefault();
	});

});
var player = null;
function obtenerVideoActualPorId(video_id){
 	var elementoActual=0;
 	for(i=0;i<videos.length;i++) {
 	 	if(videos[i][2].idcontenido==video_id){
 	 		elementoActual=i;
 	 	}
 	}
 	return elementoActual;
}
function playerReady(thePlayer) {
	player = window.document[thePlayer.id];
	addListeners();
}
function addListeners() {
	if (player) {
		player.addModelListener("STATE", "stateListener");
		player.addModelListener("TIME", "positionListener");
	} else {
		setTimeout("addListeners()",100);
	}
}

function positionListener(obj) {
	var currentPosition1 = obj.position;
	var currentPosition=currentPosition1;
	var aPlayList=player.getPlaylist();
	var tiempo_video=document.getElementById("tiempo_video");
	var total=aPlayList[0].duration;
	restante=parseInt(total-currentPosition);
	intValue=parseInt(restante*1000);
	var dd=new Date(); // creates a new date object
	dd.setTime(intValue); // sets the date/time

	hours=dd.getHours()-1;
	if(hours<10){
		hours="0"+hours;
	}

	minutes=dd.getMinutes();
	if(minutes<10){
		minutes="0"+minutes;
	}

	seconds=dd.getSeconds();
	if(seconds<10){
		seconds="0"+seconds;
	}
	tiempo_video.innerHTML=hours+":"+minutes+":"+seconds+ " min";

	Cufon.replace('#tiempo_video');
}

function stateListener(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
	currentState = obj.newstate;
	previousState = obj.oldstate;

	var tmp = document.getElementById("state");
	if (tmp) {
		tmp.innerHTML = "actual: " + currentState +	"<br>anterior: " + previousState;
	}
	if((currentState == "BUFFERING") && (previousState == "IDLE")){
		player.sendEvent('PLAY');
	}
	if ((currentState == "COMPLETED")&&(previousState == "PLAYING")) {
		player.sendEvent('STOP');
		player.sendEvent('REDRAW');
		videoActual++;
		if(videoActual < videos.length){
			//cargarVideo(videos[videoActual]);
			//seleccionar(videoActual);
			hacerClick(videoActual);
		}
		if($('#repetir-playlist').is(':checked') && videoActual == videos.length){
			videoActual = 0;
			//cargarVideo(videos[videoActual]);
			//seleccionar(videoActual);
			hacerClick(videoActual);
		}
	}
}
function mostrarPaginacionVideos(elemento){
 var total=0;
 var tmp_actual=0;
 var cortinilla=true;
 $("#playlist_horizontal div div div ul li").each(function(i){
	tmp_actual=tmp_actual+1;
	if($(this).attr("id")==elemento.idcontenido){
		numActual=tmp_actual;
		cortinilla=false;
	}
 })
 if(cortinilla){
 	numActual=numActual+1;
 }

 for(i=0;i<videos.length;i++) {
  	if(videos[i][0]==false){
 		 		total=total+1;
  	}
 }
 document.getElementById("video_actual").innerHTML=numActual;
 document.getElementById("total_videos").innerHTML=total;
}
function hacerClick(elemento){
	mostrarPaginacionVideos(videos[elemento][2]);
	if(videos[elemento][2].video){
		temp_pos=videos[elemento][1] - playlistTop;
        $playlist[0].scrollTo(temp_pos);
		player.sendEvent('STOP');
		player.sendEvent('REDRAW');
		cargarVideo(videos[elemento]);
		cargarDatosVideo(videos[elemento],videos,videoActual);
		seleccionar(elemento);
		seleccionar2(videos[elemento][2],elemento);
		id_video = videos[elemento][2].idcontenido;
	}else{
		videoActual++;
		hacerClick(videoActual);
	}
}


function seleccionar(elemento){
	desseleccionarTodos();
	id_video = videos[elemento][2].idcontenido;
	$("#playlist div.thumb_video").each(function(i){
		if(i == elemento){
			$(this).attr("class","thumb_video active");
			return false;
		}
	});
}
function seleccionar2(oVideo,elemento){
	var elementoActualPlayList2=obtenerNumeroElemento(oVideo.idcontenido);
	desseleccionarTodos2();
	if(elementoActualPlayList2!=null){
		if(primerElementoPlayList2<ultimoElementoPlayList2){
			if(primerElementoPlayList2<=elementoActualPlayList2 && elementoActualPlayList2<=ultimoElementoPlayList2){
				activarElemento(elementoActualPlayList2);
			}else{

				mycarousel.scroll(jQuery.jcarousel.intval(elementoActualPlayList2));
				mycarousel.prev();
				activarElemento(elementoActualPlayList2);
			}

		}
	}
}
function obtenerNumeroElemento(idElemento){
	var result=null;
	$("#playlist_horizontal div div div ul li").each(function(i){
		if(idElemento==$(this).attr("id")){
			result= $(this).attr("jcarouselindex");
		}
	});
	return result;
}

function activarElemento(elemento){
	$("#playlist_horizontal div div div ul li").each(function(i){
		if($(this).attr("jcarouselindex") == elemento){
			var actual_class=$(this).attr("class");
			$(this).attr("class",actual_class+" horizontal_thumb_activa");
			return false;
		}
	});
}

function desseleccionarTodos(){
	$("#playlist div.thumb_video").each(function(i){
		$(this).attr("class","thumb_video");
	});
}
function desseleccionarTodos2(){
	$("#playlist_horizontal div div div ul li").each(function(i){
		oldClassValue=$(this).attr("class");
		var is_active=oldClassValue.indexOf(' horizontal_thumb_activa');
		if (is_active!=-1){
		  	newClassValue=oldClassValue.substring(0, is_active);
		  	$(this).attr("class",newClassValue);
		}
	});


}
function createPlayer(video) {
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	if (hasReqestedVersion) {
		var flashvars = {
            file:video[2].video,
            skin:"/swf/skin/kleur.swf",
            image:video.thumbnail,
            plugins:"googlytics-1",
            autostart:"true",
            id:"mediaplayer",
            logo:"/img/mosca.png"
		}
		var params = {
            allowfullscreen:"true",
			wmode:"transparent",
            allowscriptaccess:"always"
		}
		var attributes = {
            id:"mediaplayer",
            name:"mediaplayer",
			wmode:"opaque"
		}
		swfobject.embedSWF("/swf/player.swf", "el_player", "768", "491", "9.0.115", "false", flashvars, params, attributes);
	} else {
		var alternateContent = 'Actualice su version de Flash Player. '
			+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
			document.getElementById("cont_player").innerHTML=alternateContent;
	}

}
function cargarVideo(video){
	player.sendEvent("LOAD",video[2].video);
	player.sendEvent('PLAY');
}

function limpiarDatosVideo(){
    document.getElementById('video_title').innerHTML='';
    document.getElementById('video_title').href='#';
    document.getElementById('link_video_title').innerHTML='';
    document.getElementById('link_video_title_href').href='#';
    document.getElementById('info_extra_tema').innerHTML='';
    document.getElementById('info_extra_fuente').innerHTML='';
    document.getElementById('info_extra_centro').innerHTML='';
    document.getElementById('info_extra_municipio').innerHTML='';
    document.getElementById('info_extra_duracion').innerHTML='';
    document.getElementById('txt_transcripcion').innerHTML='';
    document.getElementById('info_extra_hace').innerHTML='';
    quitarAviso();
}

function cargarDatosVideo(video,videos,videoActual) {
      var p_video= video;
      var esCortinilla=p_video[0];

	   limpiarDatosVideo();

     if (esCortinilla){
          $("#video_options").hide();
    	    if (videos != undefined && videoActual!=undefined){
            if (videos.length > (videoActual+1)){
                p_video=videos[videoActual+1];
            }
          }
      }else{
          $("#video_options").show();
      }


      document.getElementById('video_title').innerHTML=p_video[2].txt_titulo;
    	//document.getElementById('video_title').href='http://'+document.domain+"/"+videos[videoActual][2].idcontenido+"/"+videos[videoActual][2].titulo_url;
        document.getElementById('video_title').href='http://'+document.domain+"/"+p_video[2].idcontenido+"/"+p_video[2].titulo_url;
    	if(p_video[2].link_video != ""){
    		document.getElementById('zlayer').style.display = "block";
//    		document.getElementById('link_video_title').innerHTML=p_video[2].txt_titulo;
    		document.getElementById('link_video_title_href').href=p_video[2].link_video;
    	}else{
    		document.getElementById('zlayer').style.display = "none";
    	}
    	var html_tematica="";


    	if(p_video[2].a_tematica!=null){
    		for(i=0;i<p_video[2].a_tematica.length;i++) {
    			if(i==0){
    				html_tematica=p_video[2].a_tematica[i].txt_tematica;
    			}else{
    				html_tematica=html_tematica+" "+p_video[2].a_tematica[i].txt_tematica;
    			}

    		}
    	}
    	var html_lugar="";
    	if(p_video[2].a_lugar!=null){
    		for(i=0;i<p_video[2].a_lugar.length;i++) {
    			if(i==0){
    				html_lugar=p_video[2].a_lugar[i].txt_tematica;
    			}else{
    				html_lugar=html_lugar+" "+p_video[2].a_lugar[i].txt_tematica;
    			}

    		}
    	}
		if(p_video[2].fuente!=null){
			document.getElementById('info_extra_fuente').innerHTML=p_video[2].fuente;
		}
    	document.getElementById('info_extra_tema').innerHTML=html_tematica;
    	document.getElementById('info_extra_centro').innerHTML=html_lugar;
    	document.getElementById('info_extra_municipio').innerHTML=p_video[2].localidad_autor;
    	document.getElementById('info_extra_duracion').innerHTML=p_video[2].duracion;
    	var txt_transcripcion="";
    	if(p_video[2].url_transcripcion!=""){
    		get_transcription(p_video[2].url_transcripcion);
    	}else{
    		document.getElementById('txt_transcripcion').innerHTML="";
    	}
    	document.getElementById('info_extra_hace').innerHTML=p_video[2].fecha_publi;

    	quitarAviso();
    /*	  $("ul.stars li.cont-star ul").fadeOut("slow" , function() {
    		  $(this).attr("class", "rating star"+videos[videoActual][2].valorVotos);
    		});
    	  $("ul.stars li.cont-star ul").fadeIn("slow");
    	  $("span.current_rating span.votos").html(videos[videoActual][2].numeroVotos);*/
    	  $("ul.video_options li.egin_izuzkinak a").attr("href", "/"+p_video[2].idcontenido+"/"+p_video[2].titulo_url+"#comment");
    	  if(!links_inicializados){
    		  inicializa_links();
    	  }
    	  for(i=1;i<=num_links_compartir;i++) {
    		  var url_tweet='http://'+window.location.hostname+'/'+p_video[2].idcontenido+'/'+p_video[2].titulo_url+'&via=tveuskadi&text='+p_video[2].titulo_tweet;
    		  //'http://'+window.location.hostname+'/'+p_video[2].idcontenido+'/'+p_video[2].titulo_url
    		  link_comp=links[i].replace('@url_video@',url_tweet);


			$("#compartir"+i).attr("href",link_comp);
    	  }
    	  url_detalle = p_video[2].idcontenido+'/'+p_video[2].titulo_url;
    	  $.ajax({
    		  type: "GET",
    		  url: "/votos/"+p_video[2].idcontenido+"/video",
    		  success: function(votos){
    		  	votos_object = eval('(' + votos + ')');
    		  	//alert(votos_object.rating);
    		  	//alert(votos_object.numeroVotos);
    		  		$("ul.stars li.cont-star ul").fadeOut("slow" , function() {
    		  			$(this).attr("class", "rating star"+votos_object.rating);
    		  		});
    		  		$("ul.stars li.cont-star ul").fadeIn("slow");
    		  		$("span.current_rating span.votos").html(votos_object.numeroVotos);
    	  		}
    	  });

    	recufon();

}
function inicializa_links(){
	for(i=1;i<=num_links_compartir;i++) {
		links[i]=$("#compartir"+i).attr("href");
	}
	links_inicializados=true;
}
/*********************************************************************/

/**
 * This is the callback function which receives notification
 * right after initialisation of the carousel
 */
function mycarousel_initCallback(carousel, state) {
        mycarousel=carousel;
};


/**
 * This is the callback function which receives notification
 * when an item becomes the first one in the visible range.
 */
function mycarousel_itemFirstInCallback(carousel, item, idx, state) {
    primerElementoPlayList2=idx;

};

/**
 * This is the callback function which receives notification
 * when an item becomes the first one in the visible range.
 */
function mycarousel_itemLastInCallback(carousel, item, idx, state) {
   ultimoElementoPlayList2=idx;
};

/**
 * This is the callback function which receives notification
 * when an item becomes the first one in the visible range.
 * Triggered before animation.
 */
function mycarousel_itemVisibleInCallbackBeforeAnimation(carousel, item, idx, state) {
    // No animation on first load of the carousel
    if (state == 'init')
        return;
    jQuery('img', item).fadeIn('slow');
};


/**
 * This is the callback function which receives notification
 * when an item is no longer the first one in the visible range.
 * Triggered before animation.
 */
function mycarousel_itemVisibleOutCallbackBeforeAnimation(carousel, item, idx, state) {
    jQuery('img', item).fadeOut('slow');
};

function show_transcription(){
	if(!trans_active) {
		$('#cont_transcrip').fadeIn("slow");
		player.width=575;
		player.height=383;
		trans_active=1;

	} else {
		$('#cont_transcrip').hide();
		player.width=768;
		player.height=452;
		trans_active=0;
	}
}

function get_transcription(url_value){
	$.ajax({
	   type: "POST",
	   url: "/get_transcription.php",
	   data: "url="+url_value,
	   success: function(result){
	     document.getElementById('txt_transcripcion').innerHTML=html_entity_decode(result);
	   }
	});
}

function recufon(){
Cufon.set('fontFamily', 'HelveticaCd');
//Cufon.replace('h2');
Cufon.replace('h2:not(.nocufon)');
Cufon.replace('h2_detalle');
Cufon.replace('h2 a');
Cufon.replace('h3');
Cufon.replace('h4');
Cufon.replace('.tooltip_actual');
Cufon.replace('.tit_siguiente_video');
Cufon.replace('#tiempo_video');
Cufon.replace('#video_title');
Cufon.replace('.cufon');
Cufon.replace('.cont_thumb_video_duracion');
}

function html_entity_decode(str) {
	if(str!=null) {
	  var ta=document.createElement("textarea");
	  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
	  return ta.value;
	} else
		return str;
	}

