var regenerate = false;
var machear = false;
var modulo='';

function peticionAjax(parametrosAjax,idContenido){
      $.ajax({
         type: "GET",
         url: "/modulo/index.html",
         data: parametrosAjax,
         success: function(msg){
            $("#" + idContenido).html(msg);
	    if(rules_paginacion) {
	    	rules_paginacion.evento();
	   } 
         }
      });	
}


function muestraTab(nombreGenerico, idPosicion, numTotal, parametrosAjax, cssSelec, idPestanna) {
   idContenido = nombreGenerico + '_contenido_' + idPosicion;
   if ($("#" + idContenido).html()==false && parametrosAjax || regenerate) {
      if(!regenerate){
      	eval("ocultarTabs('" + nombreGenerico + "'," + numTotal + ", '" + cssSelec + "','" + idPestanna  + "')");
      	$("#" + idContenido).css("display", "block");
      	$("#" + idPestanna + " .elem_selector:eq(" + idPosicion + ")").addClass(cssSelec);
      }else{
        //si hay parametros que machear, se recogen primero
	$pagina = $("#" + idContenido + " a.actual").html();
	if($pagina!=null && parseInt($pagina)==$pagina){
		if(modulo.match(/page~([0-9]+)/)){
			//ya existe el parametro page
			//sustituimos su valor por el nuevo número de página
			modulo = modulo.replace(/page~([0-9]+)/,'page~'+$pagina);
		}else if(modulo!=''){
			modulo+="~page~"+$pagina;
		}else{
			modulo="page~"+$pagina;
		}
	}else if(modulo.match(/page~([0-9]+)/)) modulo = modulo.replace(/page~([0-9]+)/,'page~1');
	if(machear){
		k=0;
		ArrayMach = machear.split("~");
		ElemBuscado = "";
		for(var z in ArrayMach){
			k=1-k;
			if(k==1){
				//primer elemento o elemento impar: elemento a buscar
				ElemBuscado = ArrayMach[z];
			}else{
				//segundo elemento, par, elemento sustituto
				patron = new RegExp (""+ElemBuscado+"+","g");
				parametrosAjax = parametrosAjax.replace( patron  ,ArrayMach[z]);
				ElemBuscado = "";
			}
		}
	}
        parametrosNuevos = modulo.split("~");
	existe = false;
	nombreParametro = '';
	k=0;
	for(var i in parametrosNuevos){
		k=1-k;
		if(k==1){
			//es el nombre de un parámetro, hay que comprobar si existe en los ParametrosAjax
			//y si no, se añade
			if(parametrosAjax.match(parametrosNuevos[i])){
				existe = true;
				nombreParametro = parametrosNuevos[i];
			}else{
			//es un prametro nuevo...se añade a los parametros ya existentes
			// %26 equivale a & en la codificación del navegador
			// %3D equivale a =
				parametrosAjax += "%26"+ parametrosNuevos[i] + "%3D";
			}
		}else{
			//es el valor del parámetro, si existía se sustituye, si no se añade
			if(existe){
				patron = new RegExp ( nombreParametro + "%3D(.*?)(?:%26)");
				parametrosAjax = parametrosAjax.replace( patron  ,nombreParametro+'%3D' + parametrosNuevos[i] +'%26');
			}else{
				parametrosAjax += parametrosNuevos[i] ;
			}
			existe = false;
			nombreParametro = '';
		}
	};
      }
      $("#" + idContenido).html('<div class="preload"><img src="http://www.elpais.com/im/loading.gif"/><br/>Cargando...</div>');
      peticionAjax(parametrosAjax,idContenido);

   } else {
      eval("ocultarTabs('" + nombreGenerico + "'," + numTotal + ", '" + cssSelec + "','" + idPestanna  + "')");
      $("#" + idContenido).css("display", "block");
      $("#" + idPestanna + " .elem_selector:eq(" + idPosicion + ")").addClass(cssSelec);
   }
   return false;

}


function ocultarTabs(nombreGenerico, numTotal, cssSelec, idPestanna) {
   for (i=0;i<numTotal;i++) {
      try {
         $("#" + nombreGenerico + "_contenido_" + i).css("display", "none");
         $("#" + idPestanna + " .elem_selector:eq(" + i + ")").removeClass(cssSelec);
      } catch (e) {}
   }
}

function createButton(nombreGenerico, classBotonera, idBoton, vista, classSeleccion, macheado){
	$("."+classBotonera+" #"+idBoton).click(function(){
		if ($("."+classBotonera+" #"+idBoton).hasClass(classSeleccion)){
			return false;
		}
		machear = macheado;
		modulo = vista;
		max = $("#"+nombreGenerico+"_pestanna .elem_selector").length;
		for(a=0;a<max;a++){
			regenerate=true;
			$("#"+nombreGenerico+"_pestanna .elem_selector:eq("+ a +")").click();
		}
		maxBoton = $("."+classBotonera+" a").length;
		for(a=0;a<maxBoton;a++){
			if ($("."+classBotonera+" a:eq("+a+")").attr("id")==idBoton){
				$("."+classBotonera+" a:eq("+a+")").addClass(classSeleccion);
			}else{
				$("."+classBotonera+" a:eq("+a+")").removeClass(classSeleccion);
			}
		}
		regenerate = false;
		modulo = '';
		return false;
	});
}

function createTabs(idContenido, nombreGenerico, idPosicion, numTotal, parametrosAjax, cssSelec, nombreAsSelector){
	if (nombreAsSelector==true){
		$("#"+nombreGenerico+" .elem_selector:eq("+ idPosicion +")").click(function() {
			return muestraTab(nombreGenerico, idPosicion, numTotal, parametrosAjax, cssSelec, nombreGenerico);
		});
	}else{
		$("#"+nombreGenerico+"_pestanna .elem_selector:eq("+ idPosicion +")").click(function() {
			return muestraTab(nombreGenerico, idPosicion, numTotal, parametrosAjax, cssSelec, nombreGenerico + "_pestanna");
		});
	}
}
