/***********************************/
// display.js - 17/06/2008
/***********************************/



// pintarPaginado : Funcion que pinta el paginado y llama la funcion que pinta los elementos de la pagina
//   vDatos (string) : nombre de la variable que contiene el vector de los datos
//   pagAct (integer) : numero de la pagina actual
//   idPaginado (string) : ID del objeto que contiene el paginado
//   idObjetivo (string) : ID del objeto que contiene los elemntos de la pagina
//   idTxtpaginado (string) : ID del objeto que contiene el texto del numero de elementos mostrados y el total de elementos
//   elemxpag (integer) : numero de elementos permitidos por pagina
// funcion (string) : cadena que contiene un codigo script para ejecutar en cada paginado


function pintarPaginado(vDatos,pagAct,idPaginado,idObjetivo,idTxtpaginado,elemxpag,funcion,etiquetaListado) {
	var tfuncion='';
	var tetiquetaListado='';
	if(funcion!=undefined) { tfuncion = funcion.replace(/\'/g,"\\\'"); }
	if(etiquetaListado!=undefined) { tetiquetaListado = etiquetaListado; }
	var datos = eval(vDatos); // vector de datos
	var paginado = document.getElementById(idPaginado); // Objeto contenedor del paginado
	var objetivo = document.getElementById(idObjetivo); // Objeto contenedor de los datos a pintar
	var txtpaginado = document.getElementById(idTxtpaginado); // Objeto contenedor del texto del paginado
	var maxPaginas = 10; // Numero maximo de paginas en el paginado
	var elemxpag1 = elemxpag;
	var configPag = ((typeof elemxpag != 'string')? elemxpag.toString().split('*') : elemxpag.split('*') );
	if(configPag.length>1) { var elemxpag1 = configPag[0]; maxPaginas = configPag[1]; }
	var numpaginas = Math.ceil(datos.length/elemxpag1); // Numero de paginas totales
	var cadenaPagina = '';
	var ini = 0;
	var fin = numpaginas;
	if (paginado != null){
		paginado.innerHTML = '';
		txtpaginado.innerHTML = '';
		if(datos.length>elemxpag1) {
			paginado.className="pag"; 
			txtpaginado.className="sepH";
			// Pinta los elementos del paginado
			if(numpaginas>maxPaginas) {
				// Cuando las paginas son mas del limite
				fin = maxPaginas;
				var limInternoInf = maxPaginas / 2;
				var limInternoSup = numpaginas - (maxPaginas / 2);
				if(pagAct>limInternoInf && pagAct<limInternoSup) {
					ini = pagAct - (maxPaginas / 2);
					fin = pagAct + (maxPaginas / 2);
				}
				else if(pagAct>=limInternoSup) {
					ini = numpaginas - maxPaginas;
					fin = numpaginas;
				}
			}
			var anteriores = '';
			var siguientes = '';
			// Muestro botones de anterior y primero
			if(pagAct>0) {
				anteriores += '<div class="Pprev" onclick="pintarPaginado(\''+vDatos+'\',0,\''+idPaginado+'\',\''+idObjetivo+'\',\''+idTxtpaginado+'\','+((typeof elemxpag=='string')?'\'':'')+elemxpag+((typeof elemxpag=='string')?'\'':'')+',\''+tfuncion+'\',\''+tetiquetaListado+'\')"><a href="javascript:;">&nbsp;&nbsp;</a></div>';
				anteriores += '<div class="prev" onclick="pintarPaginado(\''+vDatos+'\','+(pagAct-1)+',\''+idPaginado+'\',\''+idObjetivo+'\',\''+idTxtpaginado+'\','+((typeof elemxpag=='string')?'\'':'')+elemxpag+((typeof elemxpag=='string')?'\'':'')+',\''+tfuncion+'\',\''+tetiquetaListado+'\')"><a href="javascript:;">&nbsp;&nbsp;</a></div>';
			}
			// Muestro botones de siguiente y ultimo
			if(pagAct<(numpaginas-1)) {
				siguientes += '<div class="next" onclick="pintarPaginado(\''+vDatos+'\','+(pagAct+1)+',\''+idPaginado+'\',\''+idObjetivo+'\',\''+idTxtpaginado+'\','+((typeof elemxpag=='string')?'\'':'')+elemxpag+((typeof elemxpag=='string')?'\'':'')+',\''+tfuncion+'\',\''+tetiquetaListado+'\')"><a href="javascript:;">&nbsp;&nbsp;</a></div>';
				siguientes += '<div class="Nnext" onclick="pintarPaginado(\''+vDatos+'\','+(numpaginas-1)+',\''+idPaginado+'\',\''+idObjetivo+'\',\''+idTxtpaginado+'\','+((typeof elemxpag=='string')?'\'':'')+elemxpag+((typeof elemxpag=='string')?'\'':'')+',\''+tfuncion+'\',\''+tetiquetaListado+'\')"><a href="javascript:;">&nbsp;&nbsp;</a></div>';
			}
			// Agrego cada pagina
			var clasepag = '';
			for(var elem=ini; elem<fin; elem++) {
				if(elem==pagAct) {
					// cambio el estilo de la pagina
					clasepag = ' class="selected"';
				}
				else {
					clasepag = '';
				}
				cadenaPagina += '<div'+clasepag+' onclick="pintarPaginado(\''+vDatos+'\','+elem+',\''+idPaginado+'\',\''+idObjetivo+'\',\''+idTxtpaginado+'\','+((typeof elemxpag=='string')?'\'':'')+elemxpag+((typeof elemxpag=='string')?'\'':'')+',\''+tfuncion+'\',\''+tetiquetaListado+'\')"><a href="javascript:;">'+(elem+1)+'</a></div>';
			}
			cadenaPagina = anteriores + cadenaPagina + siguientes;
			paginado.innerHTML = cadenaPagina;
		}else{paginado.className="ocultar"; txtpaginado.className="pag";}
		if(!etiquetaListado){etiquetaListado="";}
		// Pinta los elementos de la pagina actual (pagAct)
		pintaDatos(datos,pagAct,objetivo,txtpaginado,elemxpag1,tetiquetaListado,vDatos);
		if(funcion!=undefined) { eval(funcion); }
	}
}

// pintarDatos : Funcion que pinta los elementos de la pagina actual
//   datos (array) : vector de datos
//   pagAct (integer) : numero de la pagina actual
//   objetivo (Object) : objeto que contiene los elemntos de la pagina
//   elemxpag (integer) : numero de elementos permitidos por pagina

function pintaDatos(datos,pagAct,objetivo,txtpaginado,elemxpag,etiquetaListado,vDatos) {
	// inicio y fin de los elementos a mostrar
	var ini = pagAct*elemxpag;
	var fin = (pagAct+1)*elemxpag;
	if(fin>datos.length) { fin = datos.length; }
	// texto a imprimir en la lista
	var cadenatxt = '';
	for(var elem=ini; elem<fin; elem++) {
		cadenatxt += datos[elem].html();
	}
	if(!etiquetaListado){etiquetaListado="";}
	var cadenaTxtpagina='';
	cadenaTxtpagina = '<strong>'+(ini+1)+'</strong> '+mostrar_mensaje(47)+' <strong>'+fin+'</strong> '+mostrar_mensaje(144)+' '+datos.length+' '+etiquetaListado;
	if(campoOrdenEtk[vDatos] && datos.length>1) { cadenaTxtpagina += ' '+mostrar_mensaje(97)+' <strong>'+campoOrdenEtk[vDatos]+'</strong>'; } 
	if(cadenatxt=='') {
		objetivo.innerHTML = '<div class="generica"></div>';
	}
	else{
		objetivo.innerHTML = cadenatxt;
		txtpaginado.innerHTML = cadenaTxtpagina;
	}
}

// campoOrden : campo por el cual se ordenara el listado
// tipoOrden : tipo de orden dellistado desc = -1 y asc = 1
var campoOrden = 'k';
var campoOrdenEtk = new Array();
var tipoOrden = -1;

// ordenarlista : Funcion para ordenar la lista de datos
// x (variant) : primer valor a comparar
// y (variant) : segundo valor a comparar
function ordenarlista(x, y){
	if(typeof(x[campoOrden]) == 'string' && typeof(y[campoOrden]) == 'string') {
		if(x[campoOrden].toUpperCase() < y[campoOrden].toUpperCase()){ return tipoOrden; } else { return -1*tipoOrden; }
	}
	else {
		if(x[campoOrden] < y[campoOrden]){ return tipoOrden; } else { return -1*tipoOrden; }
	}
}


function filtrarCampo(vDatos,ordenamiento,filtro,idpag,idcontpag,idTxtpaginado,id_ordenpub,elemxpag,mascara,etiquetaListado,funcion)
{	
	vector=eval(vDatos); 
	tipoOrden=ordenamiento;
	campoOrden=filtro;
	campoOrdenEtk[vDatos]=mascara;
	vector.sort(ordenarlista);
	if(!etiquetaListado)etiquetaListado="";
	var tfuncion = (typeof funcion != 'undefined')? funcion : '';
	pintarPaginado(vDatos,0,idpag,idcontpag,idTxtpaginado,elemxpag,tfuncion,etiquetaListado);
}

// Funcion para cambiar el estilo a los filtro y agregarle el tipo de ordenamiento
function selecFiltro(nameFiltro,idFiltro,ordenamiento,txtFiltro) {
	var filtros = document.getElementsByTagName('h3');
	for(var item=0; item<filtros.length; item++) {
		if(filtros[item].getAttribute('name') && filtros[item].getAttribute('name')==nameFiltro) {
			filtros[item].className='';
		}
	}
	if(idFiltro!='') {
		document.getElementById(idFiltro).className='selected';
		document.getElementById(idFiltro).innerHTML=txtFiltro.toUpperCase();
	}
}

function ordenadoindex(idet,cm,id){
	for(i=0;i<cm;i++){
		if(i==id){ document.getElementById(idet+i).className="sepV selected";} else {document.getElementById(idet+i).className="sepV";}
	}
}

function validadValores(idinput,form,cadena){
	var tmp=document.getElementById(form).elements.namedItem(idinput);
	var cad=cadena.split(",");
	var sw=false;
	for(var i=0;i<cad.length;i++){
		if((tmp.value.indexOf(cad[i],0) >= 0)){
			sw=true;
			tmp.className="inputERROR";
		}
	}
	return sw;
}

function validadValores2(cadena){
	//valida que el campo no este vacio y no tenga solo espacios en blanco y/o comas
	var patron = /[a-zA-Z0-9αινσϊΑΙΝΣΪρΡ]/; 
	if(cadena.search(patron)!=-1){ 
		return false;
	}else{
		return true;
	}	
}


/* funcion para limpiar formularios  cdmv */
function limpiarform(dkeli,formname,opc){
	var variable_opciones=document.getElementById(formname); 
	var op=variable_opciones.getElementsByTagName("input"); 
	if(dkeli==document.getElementById("D.k").value){
		for(i=0;i<op.length;i++){			
			if(op[i].type!="button"){
				if(op[i].name!="D.y" && op[i].name!="nestpl" && op[i].name!="helptpl"){
		 			op[i].value="";
		 			document.getElementById(formname).reset();
		 			if(op[i].name=="D.action"){
		 				op[i].value="critinsert";	
		 			}
		 		}
	 		}
	 		if(op[i].type=="radio"){
	 			op[i].checked="";	 		
	 		}	 		
	 		if(opc!=""){
	 			if(document.getElementById(opc).src!=""){
	 				document.getElementById(opc).src="";
	 			}
	 			else{
	 				document.getElementById(opc).innerHTML="<input type='file' id='archivoformArchivo' name='archivo' maxlength='75' tabindex='5' class='W70' onclick='dejar(this);' onKeypress='return false;'>";	
	 			}
	 		}
		}
	}	
}
/* FIN funcion para limpiar formularios cdmv */

var tamfin="0";
function mostrarOver(val){	
	tamfin2=document.documentElement.scrollTop;
	tamfin=(tamfin2+150)+"px";
	document.getElementById("divcargadorsolapa2").style.top=tamfin;
	document.getElementById("divbloqueoform").className="velo";
	document.getElementById("divcargadorsolapa2").className="loader";
	if(document.getElementById("box_cargando")){ document.getElementById("box_cargando").className="WRAPPER ocultar"; }
	if(val==1) {
		document.getElementById("imgloader").src=stylepath+"/img/loader.gif";			
	}else{
		document.getElementById("imgloader").src=stylepath+"/img/loader2.gif";			
	}
}

function ocultOver(){
	document.getElementById("divbloqueoform").className="velo ocultar";
	document.getElementById("divcargadorsolapa2").className="loader ocultar";
	window.scrollBy(0,tamfin);	
}

// Funcion para mostrar el numero de resultados de la busqueda
function txtBusqueda(idTxtBusqueda,numRegistros,lstCampoBuscado,lstTxtBuscado) {
	if(numRegistros!=-1) {
		var cadena='';
		//cadena+='<strong>'+numRegistros+'</strong> resultados encontrados con ';
		cadena+='<strong>'+numRegistros+'</strong> '+mostrar_mensaje(145)+' ';
		var lstCampos = lstCampoBuscado.split(';|;');
		var lstTextos = lstTxtBuscado.split(';|;');
		var vecCadena = new Array();
		for(var item=0; item<lstCampos.length; item++) {
			var textoBuscado = lstTextos[item];
			var valorBuscado = lstTextos[item];
			if(lstTextos[item].indexOf('||')>-1) {
				var vecBuscado = lstTextos[item].split('||');
				valorBuscado = vecBuscado[0];
				textoBuscado = vecBuscado[1];
			}
			if(valorBuscado!='') {
				vecCadena.push(lstCampos[item]+' &quot;'+textoBuscado+'&quot;');
			}
		}
		var primero = true;
		if(vecCadena.length>0) {
			for(var item=0; item<vecCadena.length; item++) {
				if(primero) { primero=false; }
				else {
					if(item<vecCadena.length-1) { cadena+=', '; }
					else { cadena+=' y '; }
				}
				cadena+=vecCadena[item];
			}
		}
		document.getElementById(idTxtBusqueda).className='mostrar';
		document.getElementById(idTxtBusqueda).innerHTML=cadena;
	}
	else {
		document.getElementById(idTxtBusqueda).innerHTML='';
		document.getElementById(idTxtBusqueda).className='ocultar';
	}
}

// Funcion para hallar la pagina actual
function hallarPagina(id) {
	if(!document.getElementById(id)) { return false; }
	var respuesta = 0;
	if(document.getElementById(id)) {
		var elemPaginado = document.getElementById(id).childNodes;
		if(elemPaginado.length>0) {
			for(var item=0; item<elemPaginado.length; item++) {
				if(elemPaginado[item].className == 'selected') {
					var valor = parseInt(elemPaginado[item].childNodes[0].innerHTML);
					if(isNaN(valor)) { valor = 1; }
					respuesta = valor - 1;
				}
			}
		}
	}
	return respuesta;
}

// Funcion que hace el blink al estilo de un registro cuando se edita
function blinkStyle(id,num) {
	if(!document.getElementById(id)) { return false; }
	if(num>8) { return false; }
	var estiloActual = document.getElementById(id).className;
	if(num%2==0) {
		var estilo = new RegExp("bBlue");
		estiloActual=estiloActual.replace(estilo,'');
		document.getElementById(id).className=estiloActual;
	}
	else {
		document.getElementById(id).className += ' bBlue';
	}
	num++;
	setTimeout('blinkStyle("'+id+'",'+num+')',150);
}

// Funcion que quita el estyle de edicion a un registro del listado
function removeStyle(id) {
	if(!document.getElementById(id)) { return false; }
	var nodosPadreEstilo = document.getElementById(id).parentNode.childNodes;
	var numNodos = nodosPadreEstilo.length;
	for(var item=0; item<numNodos; item++) {
		if(nodosPadreEstilo[item].id && nodosPadreEstilo[item].className.indexOf('bBlue')>-1) {
			var buscar = new RegExp("bBlue");
			var estilo = nodosPadreEstilo[item].className;
			nodosPadreEstilo[item].className = estilo.replace(buscar,'');
		}
	}
}

//verifica que se debe ocultar y que no en los listados ademas valida si la cadena a mostrar en el paginado en singular o plural
function verificPintaPaginado(listado,simpleextenId,ordenId,restaurarId,pag1Id,pag2Id,cadSingular,cadPlural,opcBusquedaRestaurar){
	var etiquetatextPag = '';
	if(simpleextenId!='') document.getElementById(simpleextenId).className="ocultar";
	if(ordenId!='') document.getElementById(ordenId).className="ocultar";
	if(restaurarId!='') document.getElementById(restaurarId).className="ocultar";
	if(pag1Id!='') document.getElementById(pag1Id).className="WRAPPER paginacion";
	if(pag2Id!='') document.getElementById(pag2Id).className="paginacion2";
	if(opcBusquedaRestaurar==1 && restaurarId!='') document.getElementById(restaurarId).className="restaurar";
	if(opcBusquedaRestaurar==1 && pag1Id!='') document.getElementById(pag1Id).className="WRAPPER paginacion";
	datoslistados=eval(listado);
	if(datoslistados.length<=0){
		if(opcBusquedaRestaurar!=1 && pag1Id!='') document.getElementById(pag1Id).className="ocultar";
		if(pag2Id!='') document.getElementById(pag2Id).className="ocultar";
	}else if(datoslistados.length==1){
		if(opcBusquedaRestaurar!=1 && pag1Id!='') document.getElementById(pag1Id).className="ocultar";
		if(simpleextenId!='') document.getElementById(simpleextenId).className="WRAPPER collapse";
		etiquetatextPag = cadSingular;
	}else if(datoslistados.length>1){
		if(simpleextenId!='') document.getElementById(simpleextenId).className="WRAPPER collapse";	
		if(ordenId!='') document.getElementById(ordenId).className="orden";
		etiquetatextPag = cadPlural;
	}
	return etiquetatextPag;
}
//funcion para verificar el navegador 16-02-09
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
	}
}
//funciones de carga por Ajax de formularios de la vista
function cierraventanashare(id,id2){
	document.getElementById(id).className='velo ocultar';
	document.getElementById(id2).className='inc_invitarAmigo ocultar';
	document.getElementById('chkmailmsgs1').innerHTML = '';
	//document.getElementById('idmailshare').value = 'Escribe el usuario...';
	document.getElementById('idmailshare').value = mostrar_mensaje('48')+'...';
	//document.getElementById('dommailshare').value = 'Escribe el dominio...';
	document.getElementById('idmailshare').value = mostrar_mensaje('106')+'...';
	document.getElementById('idmailshare').disabled = '';
	document.getElementById('dommailshare').disabled = '';
	document.getElementById('btnenviarShare').onclick = function(){revisadatosshare();};
	document.getElementById('divbotonshare').style.display = '';
}
function revisadatosshare() {
	if(document.getElementById('idmailshare').value=='') {
		//alert("No se ha especificado un correo, por favor escriba alguno.");
		alert(mostrar_mensaje('102')); 
		document.getElementById('idmailshare').focus(); 
		return false; 
	}
	if(document.getElementById('dommailshare').value=='') {
		//alert("No se ha especificado un dominio para el correo, por favor escriba alguno.");
		alert(mostrar_mensaje('103')); 
		document.getElementById('dommailshare').focus();
		return false;
	}else{
		var vect=document.getElementById('dommailshare').value.split(".");
		if(vect.length!=2){
			//alert("No se ha especificado un dominio valido para el correo, por favor escriba alguno.");
			alert(mostrar_mensaje('104')); 
			return false;
		}
	}
	cadenaR = cgiurl+'/v.cgi?D.templ='+vistacomunidadpath+'/registroUser/invitacion.htm&idmail='+document.getElementById('idmailshare').value+'&dommail='+document.getElementById('dommailshare').value+'&rnd='+Math.random();
	var mycarga=new serverLoad();	
	mycarga.onLoad= function(ok){
			if (ok){
				var mensajess=mycarga.text;
				var mensaje=mensajess.split("**");
				alert(mensaje[0]);
				if(mensaje[1]){
					document.getElementById('formshare').reset();
					cierraventanashare('divbloqueoform','divshare2');
					document.getElementById("tabIndexShareblog").className="tab_off";
				}
			}							
	}; // end Function controladora	
	mycarga.loadTXT(cadenaR);
}
function abrirOverlay(divOverlay,divContent,divFocus,clase,functions){
	if($(divOverlay)){
		$(divOverlay).className='velo';
	}
	if($(divContent)){
		$(divContent).className=clase;
	}
	if($(divFocus)){
		$(divFocus).focus();
	}
	if(functions!=''){
		eval(functions);
	}
}
function selectOpt(divTarget,divOverlay,divContent,divFocus,url,parameters,clase,functions){
	if($(divTarget).innerHTML==''){
		new Ajax.Updater(divTarget,url,parameters);
	}else{
		abrirOverlay(divOverlay,divContent,divFocus,clase,functions);
	}
}
