/*
 @fileoverview Este archivo es la base del ajax implementado en Minrel
 @author Basilio Cáceres, Max Villegas
 @version 0.1
*/

var porid = {
	global : new Array(),
	idname : function(e){
		if(e.target.id){
			if(eval("this."+e.target.id)!=undefined){
				eval("this."+e.target.id)(e.target);
				}
			}
	},
	volv : function(e){
		history.back();
	},
	claseBody : function(){
		$("#tools").show();
		if(document.cookie.match(/size/) && porclass.readCookie("size")!="12"){
			var size = porclass.readCookie("size");
			$("body").addClass("size-"+size);
		}
		else{
			if(porclass.readCookie("size")=="12") document.cookie = "size=12; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/";
			$("body").addClass("size-12");
		}
	},
	aumentar : function(e){
		claseBody = document.body.className;
		if(claseBody != "size-16"){
			clase = claseBody.split("size-");
			size = eval(clase[1]) + 1;
			$("body").removeClass(claseBody);
			$("body").addClass("size-"+size);
			porclass.setCookie(size);
		}
	},
	disminuir : function(e){
		claseBody = document.body.className;
		if(claseBody != "size-11"){
			clase = claseBody.split("size-");
			size = eval(clase[1]) - 1;
			$("body").removeClass(claseBody);
			$("body").addClass("size-"+size);
			porclass.setCookie(size);
		}
	},
	imprimir : function(e){
		window.print();
	},
	amigo : function(){
		$("#comparteLink").before("<img src='http://chileabroad.gov.cl/wp-content/themes/imag/auxi/auxiLoad.gif' alt='Loading' />");
		var n = $("#comparteLink").attr("title");
		var n = n.split(" | ");
		var str = "tools=true&url="+n[0]+"&title="+n[1];
		jQuery.get("index.php", str, function(data){
			$("#comparteLink").prev().remove();
			$('.oculShar').html(data);
			if(document.getElementById('red') && navigator.userAgent.match(/MSIE/)) {
				$(".red").css("z-index","100");
				$("#red").css("cursor","pointer");
			}
			$('#red').bind("click", function(){ porid.red(); return false;});
			$('#enviar').bind("click", function(e){ return false;});
			$('#enviar').bind("click", function(e){ porid.comprobar(e); return false;});
			$('#cerrComp').bind("click", function(e){porid.share(e); return false;});
		});
	},
	enviar_amigo : function(e){
		$("#boxShar").toggle();
	},
	close_amigo : function(e){
		$("#boxShar").hide();
	},
	comprobar : function(e){
		boton = e.target.id;
		comp = $("#form").serialize();
		str = $("#form").serializeArray();
		var filtro = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
  		jQuery.each(str, function(i, field){
			if ((field.value=="" || (field.name=="email" && filtro.test(field.value)==false) || (field.name=="emailamigo" && filtro.test(field.value)==false)) && field.name!="mensaje"){
				$('#'+field.name).addClass('alert');
				if(!document.getElementById(''+field.name+'req')) $('#'+field.name).prev().after("<p class='req' id='"+field.name+"req'>error</req>");
			}
			else{
				var req = field.name+"req";
				$('#'+field.name).removeClass('alert');
				if(document.getElementById(req)){
					$('#'+field.name).prev().remove();
				}
			}
		});
		var total = comp+"&total=true";
		jQuery.get("index.php", total, function(data){
			if(data=="ok"){
				comp = $("#form").serialize();
				str = $("#form").serializeArray();
				if(boton == "enviar"){
					$("#comparteLink").before("<img src='http://chileabroad.gov.cl/web/wp-content/themes/imag/auxi/auxiLoad.gif' alt='Loading' />");
					var comp = comp;
					jQuery.getJSON("index.php", comp, function(data){
						porid.enviar(data);
					});
				}
			}
		});
	},
	enviar : function (data){
		$('#form').html(data.texto);
		$('.js').bind("click", function(e){porid.idname(e); return false;});
	}
}

var changeByClass = {
	consulados : function(e){
		valor = e.target.value;
		jQuery.getJSON("index.php",{query:"consulado", pais: valor }, function(datos){
			infos = datos;
			consulado = ""; consulado += '<option value="">'+datos[1]+'</option>';
			for(i = 0 ; i < datos[0].length ; i++){
				consulado  += '<option value="'+datos[0][i].url+'">'+datos[0][i].ciudad+'</option>';
			}
			jQuery("#consulado").html(consulado).attr('disabled', false).val("0").removeClass("inac");

		});
	},
	openSite : function(e){
 		if ($("#"+e.target.id).val()=="") return;
 		window.open($("#"+e.target.id).val() + "/","_self","");
	}
}

var porclass = {
	/***********************************************************************************  Mapas home ***/
	linkEmbajada : function(e){
		$('.linkEmbajada').unbind("click");
		var newid = e.target.href.split("#");
		$("#loading").show();
		jQuery.getJSON("../index.php",{get:"pais", continente:newid[1], tipo:"embajada"}, function(datos){
			$("#loading").hide();
			paises = "";
			for(i = 0 ; i < datos.length ; i++){
				last = datos.length==parseInt(i+1) ?' class="last"':'';
				first = i==0 ?' class="first"':'';
				paises  += '<li'+last+first+'><a href="'+datos[i].path+'" title="'+datos[i].pais+'">'+datos[i].pais+'</a></li>';
			}
			elements_mapa = jQuery(".mapaCont").children();
			for(i = 0 ; i < elements_mapa.length ; i++){
				id = elements_mapa[i].childNodes[0].id;
				$("#mapaConti_"+id).html('<a href="#'+id+'" title="'+elements_mapa[i].childNodes[0].title+'" class="linkEmbajada">'+elements_mapa[i].childNodes[0].title+'</a>').removeClass("acti");
				if ( newid[1] == id ) conti = elements_mapa[i].childNodes[0].title;
			}
			$("#mapaConti_"+newid[1]).html('<strong>'+conti+'</strong><ul>'+paises+'</ul>').addClass("acti");
			$(".mapaCont li").removeClass("acti");
			$("#"+newid[1]).parent().addClass("acti");
			$('.linkEmbajada').bind("click", function(e){porclass.linkEmbajada(e); return false;});
			if (location.pathname.replace(/^\//,'') == e.target.pathname.replace(/^\//,'') && location.hostname == e.target.hostname) {
				var $target = $(e.target.hash);
				$target = $target.length && $target || $('[name=' + e.target.hash.slice(1) +']');
				if ($target.length) {
					var targetOffset = $target.offset().top;
					$('html,body').animate({scrollTop: targetOffset}, 1000);
					return false;
				}
			}
		});
	},
	linkConsulado : function(e){
		$('.linkConsulado').unbind("click");
		var newid = e.target.href.split("#");
		$("#loading").show();
		jQuery.getJSON("../index.php",{get:"pais", continente:newid[1], tipo:"consulado"}, function(datos){
			$("#loading").hide();
			paises = "";
			consulados = "";
			if(datos){
				for(i = 0 ; i < datos.length ; i++){
					first = i == 0 ?' style="display:show"':' style="display:none"';
					acti = i == 0 ?' class="acti"':'';
					paises  += '<li'+acti+'><a title="'+datos[i].pais+'" href="#listPais" class="linkPaisCons" id="Pais_'+i+'">'+datos[i].pais+'</a></li>';

					consulados += '<ul class="listFloat" id="boxPais_'+i+'" '+first+'>';
					for(n = 0 ; n < datos[i].info.length ; n++){
						consulados += '<li><a href="'+datos[i].info[n].url+'" title="'+datos[i].info[n].nombre+'">'+datos[i].info[n].nombre+'</a></li>';
					}
					consulados += '</ul>';
				}
				if(!$.id("#listConsulados")){
					$(".mapaCont").after('<div id="listConsulados" class="linkRela cf linkBox"><ul id="listPais">'+paises+'</ul>'+consulados+'</div>');
				} else {
					$(".linkRela").html('<ul id="listPais">'+paises+'</ul>'+consulados);
				}
			}
			else{
				if($.id("#listConsulados")) $("#listConsulados").remove();
			}
			$(".mapaCont li").removeClass("acti");
			$("#"+newid[1]).parent().addClass("acti");
			$('.linkConsulado').bind("click", function(e){porclass.linkConsulado(e); return false;});
			$('.linkPaisCons').bind("click", function(e){porclass.paisConsulado(e); return false;});
			if (location.pathname.replace(/^\//,'') == e.target.pathname.replace(/^\//,'') && location.hostname == e.target.hostname) {
				var $target = $(e.target.hash);
				$target = $target.length && $target || $('[name=' + e.target.hash.slice(1) +']');
				if ($target.length) {
					var targetOffset = $target.offset().top;
					$('html,body').animate({scrollTop: targetOffset}, 1000);
					return false;
				}
			}
		});
	},
	paisConsulado : function(e){
		$('#listPais li').removeClass("acti");
		$('.listFloat').hide();
		$('#box'+e.target.id).show();
		$('#'+e.target.id).parent().addClass("acti");
	},
	ocultar_boton : function(){
		$('.boxHome input').hide();
		$('.boxHome').height(200);
	},
	/***********************************************************************************  Cookies tamanos de tipografia ***/
	setCookie : function(size){
		var date = new Date();
		date.setTime(date.getTime()+(5*24*60*60*1000));
		document.cookie = "size="+size+"; expires="+date.toGMTString()+"; path=/";
	},
	readCookie : function(nombre){
		var nameEQ = nombre + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	/***********************************************************************************  Pestanas ***/
	pestanas : function (e){
		var url = e.target.href.split("#");
		var padre = e.target.parentNode;
		var id = url[1];
		$(".menuPest li").removeClass('acti');
		padre.className = 'acti';
		$(".boxColo").hide();
		$("#"+id).show();
	},
	pestana_activa : function(){
		$(".boxColo").hide();
		$("#menuPest li").removeClass("acti");
		if(document.URL.match(/#/)){
			url = document.URL.split("#");
			$("#"+url[1]).show();
			$("#link_"+url[1]).parent().addClass("acti");
		}
		else{
			elements_divs = $(".xplicaCont");
			id_xplica = elements_divs[0].id;
			$("#"+id_xplica).show();
			$("#menuPest li:first-child").addClass("acti");
		}
	},
	/***********************************************************************************  Box Noticias - Encuestas ***/
	toggle_box : function(e){
		if(!navigator.userAgent.match(/MSIE/)) $("#box_novedades").toggle("slow"); else $("#box_novedades").toggle();
		if(!navigator.userAgent.match(/MSIE/)) $("#box_encuestas").toggle("slow"); else $("#box_encuestas").toggle();
		$("#link_novedades").toggleClass("acti");
		$("#link_encuestas").toggleClass("acti");
	}
}

$(document).ready( function() {
	jQuery.each(changeByClass, function (i) { //detecta eventos al cambiar un select
		if (jQuery.isFunction(changeByClass[i])  && jQuery('*').hasClass(changeByClass[i]) ){
			jQuery('.'+i).change(function(e){eval("changeByClass."+i+"(e)");});
		}
	});
	if(document.getElementById("menuPest")){
		porclass.pestana_activa();
		$('.pestanas').click(function(e){porclass.pestanas(e); return true;});
	}
	if ($.id('#tools')) porid.claseBody();
	if ($.id('#home') && $('.boxHome')) porclass.ocultar_boton();
	if ($.id('#select_pais_script')) $('#select_pais_script').show();
	$('.hide').hide();
	$('.show').show();
	$('.js').bind("click", function(e){porid.idname(e); return false;});
	$('.toggle_box').bind("click", function(e){porclass.toggle_box(e); return false;});
	//$('.linkEmbajada').bind("click", function(e){porclass.linkEmbajada(e); return false;});
	//$('.linkConsulado').bind("click", function(e){porclass.linkConsulado(e); return false;});
	$('.linkPaisCons').bind("click", function(e){porclass.paisConsulado(e); return false;});
	$('#enviar').bind("click", function(e){porid.comprobar(e); return false;});
	$('#enviaramigo').bind("click", function(e){porid.comprobar(e); return false;});
});

jQuery.extend({
	id : function(id) {
		var id = id.split("#");
		return document.getElementById(id[1])?true:false;
	}
});