var standard_noimage_f="/media/img/imagen-perfil-mujer.jpg";
var standard_noimage_m="/media/img/imagen-perfil-hombre.jpg";
var abcdario="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var presentPage='1';
var totalpags=0;
var modeSmartPagination=false;
var standard_congressman=
	'<li>'+
    	'<div class="avatar">'+
			'<div>'+
	  			'<img src="@imagen" alt="@nombre_completo"/>'+
	  			'<a href="perfil/@nombre_slugify/@id_congresista" title="Ver perfil de @nombre_completo"></a>'+
			'</div>'+
		'</div>'+
		'<h3><a href="perfil/@nombre_slugify/@id_congresista" title="Ver perfil de @nombre_completo">@nombre_completo</a><span class="c-@es_activoactivo" title="@es_activo_title"></span><span class="c-@es_candidatocandidato" title="@es_candidato_title"></span></h3>'+
		'<p>@ultima_actividad.tipo @ultima_actividad.texto</p>'+
		'<p class="parrafo1">@ultima_actividad.fecha_hora</p>'+
		'<p class="tags-listado">'+
		'</p>'+
	'</li>';
var starndard_congressman_camara='<a class="tag-congresista"><span class="inner"><span>@camara</span></span></a>';
var starndard_congressman_comision='<a class="tag-congresista"><span class="inner"><span>@comision</span></span></a>';
var starndard_congressman_partido='<a class="tag-congresista"><span class="inner"><span>@partido</span></span></a>';
var tagsUpThere=new Array();
var resetPagination=true;
$(document).ready(function(){
	//Cuando el usuario filtra
	$("#filtrobox input").keypress(function(e) {
	    if(e.keyCode == 13) {
			js_addCategory("query",$("#filtrobox input").val());
	    }
	});
	$("#filtrobox a").click(function() {
		js_addCategory("query",$("#filtrobox input").val());
	});
	//Lista letras
	$("p.letra .paginas-disponibles a").live("click", function() {
		if($(this).hasClass("active")){
			return;
		}
		var letter=$(this).html();
		presentPage=$(this).html();
		var index=$(this).parent().find("a").index($(this)); 
		$("p.letra a").removeClass("active");
		//alert(index);
		for ( var i = 0; i < $("p.letra").length; i++) {
			$($("p.letra")[i]).find("a").eq(index).addClass("active");
		}
		if(modeSmartPagination){
			smartPaginationGenerator();
		}
		resetPagination=false;
		if(abcdario.indexOf(letter)!=-1){
			gwt_setLetter($(this).html());
		}else{
			gwt_setPage(parseInt($(this).html()));
		}
	});
	//Filtrado 
	$("#cajalista ul ul li").not(".hay-mas").click(function() {
		var value=$(this).children(".text").html();
		var category=$(this).parent().prev().html();
		js_addCategory(category,value);
	});
	$("#more_elements .more-attributes li").live("click", function(event) {
		var value=$(this).children(".text").html();
		var category=$(this).parent().parent().prev().prev().html();
		js_addCategory(category,value);
		event.stopPropagation();
	});
	$(".lista-congresistas li:odd").addClass("marcado");
	//TODO Incluir aquí la búsqueda por defecto
});

/**
 * @param congresistas arreglo de objetos congresista con la estructura:
 * [{'nombres':'',
 * 	'apellidos':'',
 * 	'partido_politico':'',
 * 	'fecha_ultima_actividad':'',
 * 	'texto_ultima_actividad':'',
 * 	'camara':'',
 * 	'comision':'',
 * 	'imagen':''}] 
 */
function js_setCongresistas(congresistas){	
	var result=$.evalJSON(congresistas);
	var array_congresistas;
	$(".lista-congresistas .lista1").parent().height($(".lista-congresistas .lista1").parent().height());
	if($.isArray(result)){
		array_congresistas=result;
	}else{		
		array_congresistas=result.congresistas;
	}
	$(".lista-congresistas .lista1").html("");
	if(resetPagination){
		$("p.letra .paginas-disponibles").html("");
		if(result.pags){
			$("p.letra .label").html("B&uacute;squeda por P&aacute;gina: ");
			if(result.pags<20){
				modeSmartPagination=false
				for ( var a = 1; a <= result.pags; a++) {
					var $letra=$("<a/>").html(a);
					if(a==1){
						$letra.addClass("active");
					}
					$("p.letra .paginas-disponibles").append($letra);
					$("p.letra .paginas-disponibles").append(" ");
				}
			}else{
				modeSmartPagination=true;
				totalpags=result.pags;
				smartPaginationGenerator();
			}
		}else{
			modeSmartPagination=false;
			$("p.letra .label").html("B&uacute;squeda por Letra: ");
			presentPage='1';
			totalpags=0;
			for ( var a = 0; a < abcdario.length; a++) {
				var $letra=$("<a/>").html(abcdario.substring(a,a+1));
				if(a==0){
					$letra.addClass("active");
				}
				$("p.letra .paginas-disponibles").append($letra);
				$("p.letra .paginas-disponibles").append(" ");
			}
		}
	}
	resetPagination=true;
	if(array_congresistas==null){
		return;
	}
	if(array_congresistas.length==0){
		$(".lista-congresistas .lista1").html("Sin Resultados");
	}
	$(".lista-congresistas .lista1").animate({opacity:0}, "fast", function(){
		$(this).html("");
		for ( var i = 0; i < array_congresistas.length; i++) {
			var congresista=array_congresistas[i];
			var edited_congressman=standard_congressman;
			var nombre_completo=congresista.nombres+" "+congresista.apellidos;
			edited_congressman=edited_congressman.replace("@imagen",congresista.imagen);
			edited_congressman=edited_congressman.replace(/@nombre_completo/g,nombre_completo);
			edited_congressman=edited_congressman.replace(/@nombre_slugify/g,slugify(nombre_completo));
			edited_congressman=edited_congressman.replace(/@id_congresista/g,congresista.id);
			edited_congressman=edited_congressman.replace("@es_activo",congresista.es_activo?"":"no");
			edited_congressman=edited_congressman.replace("@es_candidato",congresista.es_candidato?"":"no");
			edited_congressman=edited_congressman.replace("@es_activo_title",congresista.es_congresista?"Activo":"Inactivo");
			edited_congressman=edited_congressman.replace("@es_candidato_title",congresista.es_candidato?"Candidato":"No es Candidato");
			edited_congressman=edited_congressman.replace("@ultima_actividad.tipo",congresista.ultima_actividad?congresista.ultima_actividad.tipo:" ");
			edited_congressman=edited_congressman.replace("@ultima_actividad.texto",congresista.texto_ultima_actividad?congresista.texto_ultima_actividad:" ");
			edited_congressman=edited_congressman.replace("@ultima_actividad.fecha_hora",congresista.fecha_ultima_actividad?congresista.fecha_ultima_actividad:" ");
			var $congresElem=$(edited_congressman);
			if(congresista.camara){
				var tempcamara=starndard_congressman_camara.replace("@camara",congresista.camara);
				$congresElem.find(".tags-listado").append($(tempcamara));
			}
			if(congresista.comision){
				var tempcomision=starndard_congressman_comision.replace("@comision",congresista.comision);
				$congresElem.find(".tags-listado").append($(tempcomision));
			}
			if(congresista.partido_politico){
				var temppartido=starndard_congressman_partido.replace("@partido",congresista.partido_politico);
				$congresElem.find(".tags-listado").append($(temppartido));
			}
			$(this).append($congresElem);
		}
		$(this).parent().animate({height:$(this).height()+"px"}, "fast", function(){
			$(this).height("auto");
		});
		$(this).animate({opacity:100}, "fast");
	});
	$(".lista-congresistas li:odd").addClass("marcado");

}
function js_addCategory(category, value){
	$("#congresistas-reportebase").slideUp("normal");
	$("#congresistas-reportebase").fadeOut("normal");
	//Si ya existe entre los tags de busqueda...
	var tags=$(".tag-busqueda");
	try{
		gwt_toggleCategory(category, value);
	}catch(e){
		alert("Error: "+e.description);
	}
	for ( var i = 0; i < tags.length; i++) {
		if($(tags[i]).data("category")==category){
			$(tags[i]).data("value",value);
			$(tags[i]).find(".value").html(value.substring(0,15));
			$(tags[i]).attr("title",value);
			return;
		}
	}
	var $plusTag=$("<span/>").addClass("tag-plus").css("display","none"); //+
	var $tag=$("<span/>").addClass("tag-busqueda").attr("title",value); //tag en si
	var $valTag=$("<span/>").addClass("value").html(value.substring(0,15)); //el value
	var $rightTag=$("<span/>").addClass("right");//borde derecho
	var $closeTag=$("<span/>").addClass("close").html("x").attr("title","Quitar: "+category);//Close X
	$tag.append($valTag).append($rightTag).append($closeTag).css("display","none");
	$tag.data("category",category);
	$tag.data("value",value);
	$closeTag.click(function(){
		var $parent=$(this).parent();
		var cat_e=$parent.data("category");
		$parent.animate({width:"0"},"fast",function(){
			$(this).prev().animate({width:"0"},"fast",function(){
				$(this).remove();
			});
			$(this).remove();
		});
		try{
			gwt_removeCategory(cat_e);
		}catch(e){
			alert("Error: "+e.description);
		}
	});
	
	$plusTag.css("display","none");
	$tag.css("display","none");
	
	if(category=='query'){
		$(".block-tags .content-block").prepend($tag);
		$(".block-tags .content-block").prepend($plusTag);
	}else{
		$(".block-tags .content-block").append($plusTag);
		$(".block-tags .content-block").append($tag);
	}
	$plusTag.show("fast",function(){		
		$tag.show("fast");
	});
}
function cargarReporteComposicion(elem,grupo){
	if($(elem).hasClass("active")){
		return false;
	}
	$("ul.reportes-lista li").removeClass("active");
	$(elem).addClass("active");
	var temp;
	if (escandidato) {
		temp="&es_candidato=True";
	}else{
		temp="&es_congresista=True"
	}
	var width=465;
	var height=245;
	$("#grafico_reporte_composicion").attr("src","/api/composicion/pie/?group_by="+grupo+"&height="+height+"&width="+width+temp);
}
function cargarReporteComposicionTipo(elem,grupo,tipo){
	if($(elem).hasClass("active")){
		return false;
	}
	$("ul.reportes-lista li").removeClass("active");
	$(elem).addClass("active");
	var temp;
	if (escandidato) {
		temp="&es_candidato=True";
	}else{
		temp="&es_congresista=True";
	}
	var width=465;
	var height=(tipo=='pie'?245:245);
	$("#grafico_reporte_composicion").attr("src","/api/composicion/"+tipo+"/?group_by="+grupo+"&height="+height+"&width="+width+temp);
}

function smartPaginationGenerator() {
	$("p.letra .paginas-disponibles").html("");
	$("p.letra .paginas-disponibles").append($("<a/>").html("1"));
	$("p.letra .paginas-disponibles").append(" ");
	$("p.letra .paginas-disponibles").append($("<a/>").html("2"));
	$("p.letra .paginas-disponibles").append(" ");
	$("p.letra .paginas-disponibles").append($("<a/>").html("3"));
	$("p.letra .paginas-disponibles").append(" ");
	$("p.letra .paginas-disponibles").append($("<a/>").html("4"));
	$("p.letra .paginas-disponibles").append(" ");
	$("p.letra .paginas-disponibles").append($("<a/>").html("5"));
	$("p.letra .paginas-disponibles").append(" ");
	var numeroactual=parseInt(presentPage);
	if(numeroactual>9&&numeroactual<totalpags-9){
		$("p.letra .paginas-disponibles").append($("<span/>").html("..."));
		$("p.letra .paginas-disponibles").append(" ");
		for ( var a = numeroactual-3; a <= numeroactual+3; a++) {
			var $letra=$("<a/>").html(a);
			if(a==1){
				$letra.addClass("active");
			}
			$("p.letra .paginas-disponibles").append($letra);
			$("p.letra .paginas-disponibles").append(" ");
		}
		$("p.letra .paginas-disponibles").append($("<span/>").html("..."));
		$("p.letra .paginas-disponibles").append(" ");
	}else if(numeroactual<totalpags-10){
		$("p.letra .paginas-disponibles").append($("<a/>").html("6"));
		$("p.letra .paginas-disponibles").append(" ");
		$("p.letra .paginas-disponibles").append($("<a/>").html("7"));
		$("p.letra .paginas-disponibles").append(" ");
		$("p.letra .paginas-disponibles").append($("<a/>").html("8"));
		$("p.letra .paginas-disponibles").append(" ");
		$("p.letra .paginas-disponibles").append($("<a/>").html("9"));
		$("p.letra .paginas-disponibles").append(" ");
		$("p.letra .paginas-disponibles").append($("<a/>").html("10"));
		$("p.letra .paginas-disponibles").append(" ");
		$("p.letra .paginas-disponibles").append($("<span/>").html("..."));
		$("p.letra .paginas-disponibles").append(" ");
	}else{
		$("p.letra .paginas-disponibles").append($("<span/>").html("..."));
		$("p.letra .paginas-disponibles").append(" ");
		for ( var a = totalpags-10; a <= totalpags-6; a++) {
			var $letra=$("<a/>").html(a);
			$("p.letra .paginas-disponibles").append($letra);
			$("p.letra .paginas-disponibles").append(" ");
		}
	}
	for ( var a = totalpags-5; a <= totalpags; a++) {
		var $letra=$("<a/>").html(a);
		$("p.letra .paginas-disponibles").append($letra);
		$("p.letra .paginas-disponibles").append(" ");
	}
	var anchors=$("p.letra .paginas-disponibles a");
	for ( var e = 0; e < anchors.length; e++) {
		if($(anchors[e]).html()==presentPage){
			$(anchors[e]).addClass("active");
		}
	}
}

