//FUNCION AUXILIAR DE VERIFICACION DEL NAVEGADOR
function verificIE()
{
	var gko = navigator.userAgent.toLowerCase();
	if (gko.indexOf('gecko')!=-1){	
		return true; //obj.setAttribute("onClick","validarEvento('"+meso+"','"+x+"','"+kdi+"');"); 
	}
	else{
		return false; //obj['onclick']=new Function("validarEvento('"+meso+"','"+x+"','"+kdi+"');");//creamos en setAttribute de esta forma
	}
}

//CONSTRUCTOR DE OBJETOS TIPO ENLACE
function linkItem(k,titulo,tpl,classicon,apertura,urllink,descripvisual,descripcion)
{
	this.k=k;
	this.titulo=titulo;	
	this.tpl=tpl;
	this.classicon=classicon;
	this.apertura=apertura;
  this.urllink=urllink;
	this.descripvisual=descripvisual;
	this.descripcion=descripcion;
  
}

//FUNCION DE PINTADO Y PAGINACION
function printlinkItems(pagepos,dkey)
{
	//VECTOR DE ITEMS DE COMPONENTES
	var myarray= eval("linkItems"+dkey);
	//CONTENEDOR DE ITEMS DEL LISTADO
	var idcontainer="";	
	if(myarray.length>0)
	{
		
		var myitem= eval("nitem"+dkey);
		//var mybullet=eval("bullet"+dkey);		
		var paginacion=eval("numitems"+dkey);
		var maskpage=pagepos+1;		
		if(paginacion == "null"){ paginacion= myarray.length; }else{ paginacion=parseInt(paginacion); }
		var initval=pagepos*paginacion;
		var top=initval+paginacion;
		if(top >=myarray.length){ top= myarray.length; }
		var npages=Math.ceil(myarray.length/paginacion);		
		var liclass="";
		
		//GENERAMOS LOS ITEMS DEL LISTADO		
		for(var i=initval;i<top;i++)
		{
			liclass="";
			liclass=" class='"+myarray[i].classicon+"'";
			idcontainer+="<div"+liclass+"><a href='"+myarray[i].tpl+"' target='"+myarray[i].apertura+"'>"+myarray[i].titulo+"</a>"; 
      if (myarray[i].descripvisual == 'si'){idcontainer+="<h3 class='link_descripcion'>"+myarray[i].descripcion+"</h3>"; }
      if (myarray[i].urllink == 'si'){idcontainer+="<h3 class='link_url'><a target='"+myarray[i].apertura+"' href='"+myarray[i].tpl+"'>"+myarray[i].tpl+"</a></h3>"; }
      idcontainer+='</div>';
		}
		document.getElementById("nodata"+dkey).className="generica ocultar";
		document.getElementById("simpleList"+dkey).className="list";
		document.getElementById("simpleList"+dkey).innerHTML=idcontainer;
		
		//SI EL NUMERO DE REGISTROS EN EL VECTOR ES MENOR O IGUAL AL DE LISTADO EN PAGINACION OCULTAMOS EL PAGINADO
		if(myarray.length<=paginacion){
			document.getElementById("paginacionsecundaria"+dkey).className="paginacion2 ocultar"; 
		}
		
		//PAGINACION
		if(npages>1)
		{
			//GENERAMOS EL MOSTRANDO DESDE - HASTA
			if(myarray.length>0)
			{
				var cpatern="aeiou";
				var terminacion=myitem.substring(myitem.length -1);
				if(cpatern.indexOf(terminacion)>=0 || (idiomajs == "en")){myitem+="s.";} 
				else{myitem+="es.";}
			}						
			document.getElementById("showingFromTo"+dkey).innerHTML="<strong>"+((pagepos*parseInt(paginacion))+1)+"</strong> "+ mostrar_mensaje('45')+" <strong>"+top+"</strong> "+ mostrar_mensaje('47')+" <strong>"+myarray.length+"</strong> "+myitem+"</div>";			
						
			//ACTULIZAMOS LA FUNCION DEL BOTON DE PAGINA ANTERIOR
			if (pagepos>0)
			{
				var prevpage=pagepos-1;
				document.getElementById("primerapag"+dkey).className="Pprev";
				document.getElementById("paganterior"+dkey).className="prev";
				
				if(verificIE()){
					document.getElementById("paganterior"+dkey).setAttribute("onclick","printlinkItems("+prevpage+","+dkey+")");
				}else{
					document.getElementById("paganterior"+dkey)['onclick']=new Function("printlinkItems("+prevpage+","+dkey+")");
				}			
			}
			else
			{
				document.getElementById("primerapag"+dkey).className="Pprev ocultar";
				document.getElementById("paganterior"+dkey).className="prev ocultar";			
			}			
			
			//GENERACION DE NUMEROS DE PAGINA
			var clase=''; var inicio = 0; var fin = npages;			
			var maxPaginas = 5;
			//VALIDACION DE LIMITE DE NUMERACION
			if(npages>maxPaginas) 
			{
				// Cuando las paginas son mas del limite
				fin = maxPaginas;
				var limInternoInf = Math.floor(maxPaginas / 2);
				var limInternoSup = npages - Math.ceil(maxPaginas / 2);
				if(pagepos>limInternoInf && pagepos<limInternoSup)
				{
					inicio = pagepos - Math.floor(maxPaginas / 2);
					fin = pagepos + Math.ceil(maxPaginas / 2);
				}
				else if(pagepos>=limInternoSup)
				{
					inicio = npages - maxPaginas;
					fin = npages;
				}
			}
			//CONTENEDOR DE NUMEROS DE PAGINA
			var numerospagina="";			
			//GENERACION DE PAGINAS
			for (var i=inicio;i<fin;i++)
			{
				if (i==pagepos){clase='class="selected"';}
				else{clase='';}
				numerospagina+='<div '+clase+' onClick="printlinkItems('+i+','+dkey+')"><span class="cursor" onclick="javascript:;">'+(i+1)+'</span></div>';
			}
			document.getElementById("numerosdepagina"+dkey).innerHTML=numerospagina;
			
			//ACTULIZAMOS LA FUNCION DEL BOTON DE PAGINA SIGUIENTE Y ULTIMA PAGINA			
			if (npages>(pagepos+1))  
			{
				document.getElementById("pagsiguiente"+dkey).className="next";
				document.getElementById("ultimapag"+dkey).className="Nnext";
				if(verificIE()){
					var auxop=pagepos+1;			
					document.getElementById("pagsiguiente"+dkey).setAttribute("onclick","printlinkItems("+auxop+","+dkey+")");
					auxop=npages-1;
					document.getElementById("ultimapag"+dkey).setAttribute("onclick","printlinkItems("+auxop+","+dkey+")");
				}else{
					var auxop=pagepos+1;				
					document.getElementById("pagsiguiente"+dkey)['onclick']=new Function("printlinkItems("+auxop+","+dkey+")");
					auxop=npages-1;
					document.getElementById("ultimapag"+dkey)['onclick']=new Function("printlinkItems("+auxop+","+dkey+")")
				} 
			}			 
			else
			{
				document.getElementById("pagsiguiente"+dkey).className="next ocultar";
				document.getElementById("ultimapag"+dkey).className="Nnext ocultar";
			}			
		}
	}
	else
	{
		document.getElementById("nodata"+dkey).className="generica";
		document.getElementById("simpleList"+dkey).className="list ocultar";
		document.getElementById("paginacionsecundaria"+dkey).className="paginacion2 ocultar";
	}
}

