/*
Library: Base.js
Theme URI: http://www.congresovisible.org
Description: Congreso Visible funciones de elementos base
Version: 2.0
Author: http://www.monoku.com

Creada : 16.10.09
Modificada : 16.11.09
*/




var abcdario="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$(document).ready(function(){
	/*-- Ajustando la imagen de FB --*/
	$("#login-box .continer .otras-cuentas-div .twitter").prev().find("input").attr("src","/media/img/fbutton.png");
	
	/*-- Login Toggle --*/
	$("#container-header .ingreso").click(
			function(){
				if($.browser.msie && $.browser.version<8){
					$("#login-box:hidden").length>0?$("#login-box").show():$("#login-box").hide();
				}else{
					$("#login-box").slideToggle("slow");
				}
				//mostrarMensaje("Ingreso en mantenimiento", "Lo sentimos, en este momento estamos trabajando para mejorar el sistema de ingreso a <b>CongresoVisible.org</b> y su integración a Facebook, prontamente habilitaremos esta funcionalidad!")
			}
	);
	$("a.view-boletin").click(function(){
		var obj=$(this).find("input").val();
		popMeUp($(obj));
	});
	$("#container-header .close").click(
			function(){
				$(".user-panel").slideUp("slow");
			}
	);
	/*-- Caja Lista --*/
	if($("#cajalista").length!=0){
		$("#cajalista h3 a").toggle(
				function(){
					$(this).text("Contraer todo");
					$("#cajalista ul li ul").slideDown("slow");
					$("#cajalista ul li").addClass("active");
				},
				function(){
					$(this).text("Expandir todo");
					$("#cajalista ul li ul").slideUp("slow");
					$("#cajalista ul li").removeClass("active");
				}
		);
		$("#cajalista h4").click(function() {
			$(this).next().slideToggle();
			$(this).parent().toggleClass("active");
		});
		$("#cajalista .hay-mas").click(function(){
			var categoria= $(this).parent().prev().attr("id").replace("cat_","");
			verMasCategoria(categoria, $(this).parent().prev().html());
		});
	}
	/*-- Filtro Box --*/
	if($("#filtrobox").lentgh!=0){
		
	}
	/*-- ListBox --*/
	if($(".listbox").lentgh!=0){
		$(".listbox .item-selected").click(function(event){
			if($(this).next().children(".item-list:hidden")){
				$(".listbox .item-list").slideUp(100);
				var $soma=$(this).next().children(".item-list:hidden").slideDown(100);
			}else{
				$(".listbox .item-list").slideUp();
			}
			event.stopPropagation();
		});
		$('body').click(function(event) {
			$(".listbox .item-list").slideUp(100);
		});
		$(".listbox .item-list li").live("click", function(){
			$(this).parent().parent().parent().prev().children("div").html($(this).html());
			$(".listbox .item-list").slideUp(100);
		});
	}
	/*-- Go To Top Links --*/
	
	$(".go-to-top").live('click', function(){
		scrollToTop();
		return false;
	});
	/*-- Sin Reportes --*/
	$("#navigation .reportes").click(function(){
		mostrarMensaje("Reportes", "Proximamente disfrutarás de este contenido. En el momento estamos trabajando para hacerlo disponible, te invitamos a conocer las dem&aacute;s secciones de <b>CongresoVisible.org</b>.");
		return false;
	});
	/*-- Sin Algunas Actividades --*
	$("#navigation .smcitaciones,#navigation .smorden").click(function(){
		mostrarMensaje("Citaciones y Orden del Día", "Proximamente disfrutarás de este contenido. En el momento estamos trabajando para hacerlo disponible, te invitamos a conocer las dem&aacute;s secciones de <b>CongresoVisible.org</b>.");
		return false;
	});
	/*-- Animacion Links Login--*/
	$("#login-box .otras-cuentas-div .opciones a, #login-box .otras-cuentas-div .opciones form").hover(
		function(){
			if(!$(this).is(":animated")){
				$(this).animate({top:-8},"fast");
			}
		},
		function(){
			$(this).animate({top:0},"fast");
		}
	);
	$("#seguir-entidad").live("click",function(){
		$.get($(this).find(".url").val(), function(response){
			if(response){
				mostrarMensaje("Seguir", "Ahora sigues a "+$("#nombre_entidad").val()+" con éxito!");
				var ulrs=$("#seguir-entidad").attr("id","unseguir-entidad").find(".url");
				ulrs.val(ulrs.val().replace("seguir","unseguir"));
			}
		});
	});
	$("#unseguir-entidad").live("click",function(){
		$.get($(this).find(".url").val(), function(response){
			if(response){
				mostrarMensaje("No Seguir", "Ahora no sigues a "+$("#nombre_entidad").val()+"!");
				var ulrs=$("#unseguir-entidad").attr("id","seguir-entidad").find(".url");
				ulrs.val(ulrs.val().replace("unseguir","seguir"));
			}
		});
	});
	
	/**
	 * Tab Ayuda
	 */
	$('#ctxhelp .ctxhelp-btn a').click(function(){
		var $content = $('#ctxhelp .ctxhelp-content'),
			$wrapper = $content.find('> .ctxhelp-wrap').css('visibility', 'hidden');
		
		if( this.$clicked ){
			$content.animate({ width: 0}, 'normal');
			this.$clicked = false;
		}
		else{
			$content.animate({ width: 395}, 'normal', function(){
				$wrapper.css('visibility', '');
				return true;
			});
			this.$clicked = true;
		}
		return false;
	});
	
	
	$('.leer-mas-p').click(function(){
		$(this).parents('.mostrar-menos').hide().next().show();
		return false;
	});
	
	$('.leer-menos-p').click(function(){
		$(this).parents('.mostrar-mas').hide().prev().show();
		return false;
	});
	
});

/*-- Input Effects --*/
function myFocus(element) {
    if (element.value == element.defaultValue) {
      element.value = '';
    }
}
function myBlur(element) {
    if (element.value == '') {
      element.value = element.defaultValue;
    }
}

/*-- Slugify --*/
function slugify(val){
	if(val){
		return val.toLowerCase().replace(/\s+/g,'-').replace(/á/g,'a').replace(/é/g,'e').replace(/í/g,'i').replace(/ó/g,'o').replace(/ú/g,'u').replace(/ñ/g,'n').replace(/[^a-z0-9\-]/g,'');
	}
	return "";
}

/*-- Scroll Body o Top --*/
function scrollToTop(){
	$('html,body').animate({scrollTop: "0"}, 500);
}
/*-- Ver Más Categoria (CallBack) --*/
function verMasCategoria(categoria, nombreCat){
	var temp_url = window.location.href;
	if(window.location.href.indexOf("#")!=-1) {
		temp_url=window.location.href.substring(0,window.location.href.indexOf("#"));
	}
	temp_url=temp_url.replace("/agora/lista/","/agora/");
	
	$.get(temp_url+"ajax/catalogo/"+categoria+"/", function(data,status){
		if($.isArray(data)) {
			ventanaCategoria(categoria, nombreCat,data);
		}else {
			ventanaCategoria(categoria, nombreCat,$.evalJSON(data));
		}
	});
}
/*-- Ver Más Categoria (BOX) --*/
function ventanaCategoria(categoria, nombreCat, arrayAtributos){
	var docFragment = null;
	if(!(docFragment = $("#docfragment")).length){
		docFragment = $('<div style="display:none;" id="docfragment"></div>');
		$(document.body).append(docFragment);
	}
	
	$("#more_elements").fadeOut(function(){
		docFragment.append( $(this).html() );
		$(this).remove();
	});
	
	var $ventanaCategoria=$("<div/>").attr("id","more_elements");
	var $elementsContiner=$("<div/>").addClass("elements-continer");
	$elementsContiner.append($("<h4/>").html(nombreCat));
	var $shortCuts=$("<div/>").addClass("shortcuts");
	for ( var i = 0; i < abcdario.length; i++) {
		$shortCuts.append($("<a/>")/*.attr("href","#shortcut_"+abcdario.substring(i,i+1))*/.html(abcdario.substring(i,i+1)));
		$shortCuts.append(" ");
	}
	$shortCuts.find("a").click(function(){
		if($('#shortcut_'+$(this).html()).length>0){
			$('#more_elements .more-attributes').scrollTop($('#more_elements .more-attributes').scrollTop()+$('#shortcut_'+$(this).html()).position().top);
		}
	});
	$elementsContiner.append($shortCuts);
	var $moreAttributes=$("<div/>").addClass("more-attributes");
	var actualCatLetter=undefined;
	var $ul=undefined;
	for ( var i = 0; i < arrayAtributos.length; i++) {
		if(i==0||arrayAtributos[i].nombre.substring(0,1)>actualCatLetter){
			actualCatLetter=arrayAtributos[i].nombre.substring(0,1);
			var $h5=$("<h5/>").html(actualCatLetter).attr("id","shortcut_"+actualCatLetter);
			$moreAttributes.append($h5);
			$ul=$("<ul/>");
			$moreAttributes.append($ul);
		}
		var $li=$("<li/>"),
		sligiName = slugify(arrayAtributos[i].nombre);
		$li.append($("<span/>").html(arrayAtributos[i].nombre).addClass("text"));
		
		//verificamos que no exista ya ese elemento dentro del DOM
		if( !$('#obj_'+sligiName).length ){
			$li.find('> .text').attr('id', 'obj_'+sligiName).attr('category', nombreCat);
		}
		
		if(arrayAtributos[i].cantidad){
			var $count=$("<span/>").addClass("count")
			.append($("<span/>").addClass("inner")
					.append($("<span/>").html(""+
							(arrayAtributos[i].cantidad?arrayAtributos[i].cantidad:0)
							))
					);
			$li.append($count);
		}
		$ul.append($li);
	}
	$elementsContiner.append($moreAttributes);
	$ventanaCategoria.append($elementsContiner);
	$ventanaCategoria.css("display","none");
	$ventanaCategoria.css("top",$("#cat_"+categoria).offset().top+"px");
	$ventanaCategoria.css("left",($("#cat_"+categoria).offset().left+$("#cat_"+categoria).width()-0.5)+"px");
	$("body").append($ventanaCategoria);
	$ventanaCategoria.fadeIn();
	 $('body').one("click",function(event) {
		 $ventanaCategoria.fadeOut(function(){
			 //$(this).remove();
		 });
	 });

	 $ventanaCategoria.click(function(event){
		 if(event.target.nodeName!="LI" && event.target.nodeName!="SPAN"){
			 event.stopPropagation();
		 }
	 });
}

function getMonthName(month){
	var monthname=new Array(12);
	monthname[0]="Enero";
	monthname[1]="Febrero";
	monthname[2]="Marzo";
	monthname[3]="Abril";
	monthname[4]="Mayo";
	monthname[5]="Junio";
	monthname[6]="Julio";
	monthname[7]="Agosto";
	monthname[8]="Septiembre";
	monthname[9]="Octubre";
	monthname[10]="Noviembre";
	monthname[11]="Diciembre";
	return monthname[month];
}
function getDayName(dayNumber){
	var weekday=new Array(7);
	weekday[0]="Domingo";
	weekday[1]="Lunes";
	weekday[2]="Martes";
	weekday[3]="Mi&eacute;rcoles";
	weekday[4]="Jueves";
	weekday[5]="Viernes";
	weekday[6]="S&aacute;bado";
	return weekday[dayNumber];
}
var addthis_config =
{
	services_compact:'facebook,twitter,delicious,gacetilla,meneame,email,print',
	ui_cobrand: "Congreso Visible"	
};

function popMeUp(e){
	$popback = $("<div id='popup-back'>&nbsp;</div>");
	$popback.css("height", ($(document).height()+ "px") );
	$popwrapper = $(
			"<div id='popup-wrapper'>"+
				"<div class='popup-continer'>"+
				"</div>"+
			"</div>");
	
	$closebtn = $("<a class='popup-close'>Cerrar X</a>").click(function(){closePopup();});//TODO
	$popback.click(function(){closePopup();});//TODO
	$popwrapper.append( $closebtn );
	$(e).addClass("popup-children");
	
	$popwrapper.children(".popup-continer").append( $(e) );
	$("body").append($popback).append($popwrapper);
	$popwrapper.css('margin-left', (-$popwrapper.width()/2) );
	$popback.fadeTo('normal', 0.9);
	$popwrapper.fadeIn("slow", function(){
		$popback.css("height",""+$(document).height()+"px");
	});
	$("html,body").animate({scrollTop:0});
}

function closePopup(){
	$popback.fadeOut('slow');
	$popwrapper.fadeOut("slow",function(){	
		$popback.remove();
		$popwrapper.remove();
	});
}
function tooltipMeUpOver(element, destination){
	var $thistip=$("<div>").addClass("tooltip-basic")
	.append($("<div>").addClass("content"))
	.append($("<div>").addClass("bottom"));
	$(destination).hover(function name() {
		$thistip.fadeIn();
	}, function name() {
		$thistip.fadeOut();
	});
	$thistip.find(".content").append($(element));
	$("body").append($thistip);
	var x=$(destination).offset().left+($(destination).width()/2)-$thistip.width();
	var y=$(destination).offset().top+($(destination).height()/2)-$thistip.height();
	//alert("x"+x+",y"+y);
	$thistip.css("left",x+"px");
	$thistip.css("top",y+"px");
}

function mostrarMensaje(titulo, mensaje) {
	popMeUp($("<div class='disculpas-wrapper'>").html("<h3>"+titulo+"</h3><br><p>"+mensaje+"</p>").css("padding","15px"));
}

/**
 * Devuelve la fecha en formato dddd dd de mmmm de yyyy
 */
function parseFechaLegible(date){
	var dia = date.getDate();
	var diaString = dia<10?"0"+dia:""+dia;
	var diaSemanaString = parseFechaDia(date);
	var mesString=parseFechaMes(date);
	var ano = date.getFullYear();	
	
	return parseDia(date)+" "+dia+" de "+mesString+" de "+ano;
}

 /**
 * Devuelve la fecha en formato mmm yyyy
 */
 function parseFechaMesAno(date){
 	var ano = date.getFullYear();
 	var mesString=parseFechaMes(date).substring(0,3);

 	return mesString+" "+ano;
 }

 /**
 * Devuelve la fecha en formato mmm d
 */
 function parseFechaDia(date){
	var dia = date.getDate();
	var diaString = dia<10?"0"+dia:""+dia;
 	var mesString=parseFechaMes(date).substring(0,3);
 	return mesString+" "+diaString;
 }

 /**
 * Devuelve la fecha en formato mmm d
 */
 function parseNumeroDia(date){
	var dia = date.getDate();
	var diaString = dia<10?"0"+dia:""+dia;
 	return diaString;
 }

 /**
 * Devuelve el nombre del dia
 */
function parseDia(date){
	var dia_semana = date.getDay();
	if(dia_semana==0)
		return "Domingo";
	else if(dia_semana==1)
		return "Lunes";
	else if(dia_semana==2)
		return "Martes";
	else if(dia_semana==3)
		return "Miércoles";
	else if(dia_semana==4)
		return "Jueves";
	else if(dia_semana==5)
		return "Viernes";
	else if(dia_semana==6)
		return "Sábado";
}

function parseFechaMes(date){
	var mes = date.getMonth();
	if(mes==0)
		return "Enero";
	else if(mes==1)
		return "Febrero";
	else if(mes==2)
		return "Marzo";
	else if(mes==3)
		return "Abril";
	else if(mes==4)
		return "Mayo";
	else if(mes==5)
		return "Junio";
	else if(mes==6)
		return "Julio";
	else if(mes==7)
		return "Agosto";
	else if(mes==8)
		return "Septiembre";
	else if(mes==9)
		return "Octubre";
	else if(mes==10)
		return "Noviembre";
	else
		return "Diciembre";
}
function validateUrl(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	return regexp.test(s);
}
function checkEmail(s) {
	var regexp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	return regexp.test(s);
}

function mostrarGacetilla(gacetilla){
	var numero=gacetilla.substring(0,gacetilla.indexOf('/'));
	var sanio=gacetilla.substring(gacetilla.indexOf('/')+1);
	//alert(sanio);
	var anio=parseInt(sanio);
	var year;
	if(anio>50){
		year="19"+sanio;
	}else{
		year="20"+sanio;
	}
	var url='http://docs.google.com/viewer?url='+"http%3A%2F%2Fservoaspr.imprenta.gov.co%3A7778%2Fgacetap%2Fgaceta.nivel_3%3Fv_anog%3D"+year+"%26v_formato%3DPDF%26v_num%3D"+numero+"%26v_seleccion%3DIniciar%2BBusqueda&embedded=true";
	//alert(url);
	popMeUp($("<iframe>").attr("frameborder",'0').css("height",'530px').css("width",'700px').attr("src",url));
}