

// CON ESTO MANEJO TODOS LOS LINKS DEL SISTEMA:
function systemLink(accion, seccion) {
		var f = document.formPropager;	
		f.seccion.value = seccion;
		switch (accion) {
			case "listar":
				f.action = "_listar.php";
			break
			case "importar":
				f.action = "_importar.php";
			break
			case "exportar":
				f.action = "_exportar.php";
			break			
			case "csv":
				f.action = "_csv.php";
			break			
			case "listar_kf":
				f = document.formEditar;
				f.seccion.value = seccion;
				f.action = "_listar_kf.php";
			break
			case "listar_kf_retorno":
				f = document.formListarKf;
				f.seccion.value = seccion;
				f.action = "_editar.php";
			break			
			case "activar":
				f.action = "_activar.php";
			break
			case "editar":
				f.action = "_editar.php";
			break
			case "crear":
				f.action = "_editar.php";
			break
			case "eliminar":
				f.action = "_eliminar.php";
			break
			case "buscar":
				f.action = "_buscar.php";
			break
			case "ordenar":
				f.action = "_ordenar.php";
			break																	
			default:
		} 		
		f.submit();
}


// FUNCIÓN QUE VALIDA EL FORMULARIO:
function validaFormularioNew(form, divError) {
	
	var elform = form;
	var objeto;
	
	for (x in arr_campos) {
		nombre_control = String(arr_campos[x].nombre);
		objeto = elform[nombre_control];
		
		if (arr_campos[x].tipo == 'imagen' || arr_campos[x].tipo == 'archivo') {
			nombre_control_actual = String(arr_campos[x].nombre + '_actual');
			objeto = elform[nombre_control_actual];
			error += validaCampo(objeto, arr_campos[x].alias, arr_campos[x].validacion);
		}
		else {
			//alert(objeto.name + " " + arr_campos[x].alias + " " + arr_campos[x].validacion);
			error += validaCampo(objeto, arr_campos[x].alias, arr_campos[x].validacion);
		}		
		
	}

	if(error != "") {
		var objeto_msj = document.getElementById(divError);
		objeto_msj.style.display = '';
		objeto_msj.innerHTML = error;
		alert(error);
		return false;
	}	
	else {
		elform.submit();
	}

}


// FUNCIÓN QUE VALIDA EL FORMULARIO:
function validaFormulario() {
	
	tinyMCE.triggerSave(); // ESTO ES PARA QUE LOS TEXTAREA RELACIONADOS CON LOS RICHTEXT ME TOMEN LOS VALORES Y FUNCIONE BIEN LA VALIDACIÓN
	
	var elform = document.formEditar;
	var objeto;
	var error = "";
	for (x in arr_campos) {
		nombre_control = String(arr_campos[x].nombre);
		objeto = elform[nombre_control];
		
		if (arr_campos[x].tipo == 'imagen' || arr_campos[x].tipo == 'archivo') {
			nombre_control_actual = String(arr_campos[x].nombre + '_actual');
			objeto = elform[nombre_control_actual];
			error += validaCampo(objeto, arr_campos[x].alias, arr_campos[x].validacion);
		}
		else {
			error += validaCampo(objeto, arr_campos[x].alias, arr_campos[x].validacion);
			//alert("valida: " + objeto.name + " error: " + error + " value: " + objeto.value);
		}		
		
	}
	if(error != "") {
		var objeto_msj = document.getElementById("form_mensaje");
		objeto_msj.style.display = '';
		objeto_msj.innerHTML = error;	
	}	
	else {
		elform.submit();
	}
}


// FUNCIÓN QUE VALIDA CADA ELEMENTO:
function validaCampo(objeto, aliascampo, cadenavalidacion) {	

	var arr_cadenavalidacion;
	var error = "";
	arr_cadenavalidacion = cadenavalidacion.split(':');

	for (var j=0; j<arr_cadenavalidacion.length; j++) {
	
		switch (arr_cadenavalidacion[j]) {
			case 'requerido':
				if(objeto.value == '') {
					error += aliascampo + ' es requerido.<br />';
					//alert(objeto.name + " está vacio");
				}
			break;
			
			case 'string':

			break;
			
			case 'numero' :
				if(isNaN(objeto.value)) {
					error += aliascampo + ' s&oacute;lo puede ser n&uacute;mero.<br />';
				}
			break;
			
			case 'email' :
				var objRE = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;			
				if(objeto.value != '' && !objRE.test(objeto.value)) {
					error += aliascampo + ' debe ser un email v&aacute;lido.<br />';
				}
				
			break;
			
			default:
				if(arr_cadenavalidacion[j].search('=')) {
					var arr_expreg;
					arr_expreg = arr_cadenavalidacion[j].split('=');
					if(arr_expreg[0] == 'expreg') {
						cadena_re = arr_expreg[1];
						var objRE = new RegExp(cadena_re);
						if(objeto.value != '' && !objRE.test(objeto.value)) {
							error += aliascampo + ' no es v&aacute;lido.<br />';
						}					
					}	
				}
			
		}

	}
	return error;
}


function completo(obj,nombre,tipo){ 
	if(tipo=='int'){ 
		if ((obj.value=='')||(isNaN(obj.value))){ 
			return "&bull; "+nombre+" requiere sólo números.<br />"; 
			}else{ 
			return ""; 
			}
		}else if(obj.value=='' ){ 
			return "&bull; "+nombre+" debe ser completado.<br />"; 
		}else{ return ""; 
		}
}

function completoFull(obj,error,tipo){ 
	if(tipo=='int'){ 
		if ((obj.value=='')||(isNaN(obj.value))){ 
			return error; 
			}else{ 
			return ""; 
			}
		}else if(obj.value=='' ){ 
			return error; 
		}else{ return "";
		}
}

function emailFull(obj,errorVacio,errorInvalido) { 
	if(obj.value!=""){ 
		var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; 
		var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
		if (reg1.test(obj.value) || !reg2.test(obj.value)) {
			return errorInvalido;
		}
		else {
			return "";
		}
	}
	else { 
		return errorVacio;
	}	
}

		
function emailvalido(obj,nombre) { 
	msg=""; 
	if(obj.value!=""){ 
		var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; 
		var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
		if (reg1.test(obj.value) || !reg2.test(obj.value)) msg= "\n "+ nombre +" es inválido.";
		}else{ 
		msg="&bull; "+ nombre +" debe ser completado.<br />";
	} return msg 
}

function igualdad(obj,reobj,nombre){
	if(obj.value!=reobj.value){
		return "&bull; "+nombre+" son distintas.<br />";
	}else{
		return "";
	}
}
function chequeado(obj, nombre){ 
	ok = false;
	for(i=0;i<obj.length;i++){ 
		if(obj[i].checked){
			ok = true
		}
	}; 
	if(ok){
		return ""
	}else{
		return "\n "+nombre+' debe ser completado.'
	}
}

function getFechaHora()
{
	var now         = new Date();
	var monthnumber = now.getMonth();
	var monthday    = now.getDate();
	var year        = now.getYear();
	var hour   		= now.getHours();
	var minute 		= now.getMinutes();
	var second 		= now.getSeconds();
	if(year < 2000) { year = year + 1900; }
	if (monthnumber < 10) { monthnumber = "0" + monthnumber; }
	if (monthday < 10) { monthday = "0" + monthday; }
	if (minute < 10) { minute = "0" + minute; }
	if (second < 10) { second = "0" + second; }
	var dateString = monthday +	'/' + monthnumber +	'/' + year;
	var timeString = hour +	':' + minute + ':' + second;			
	return dateString + ' - ' + timeString;
}

function getFechaHora_timestamp_cliente()
{
	var now         = new Date();
	var monthnumber = now.getMonth();
	var monthday    = now.getDate();
	var year        = now.getYear();
	var hour   		= now.getHours();
	var minute 		= now.getMinutes();
	var second 		= now.getSeconds();
	if(year < 2000) { year = year + 1900; }
	if (monthnumber < 10) { monthnumber = "0" + monthnumber; }
	if (monthday < 10) { monthday = "0" + monthday; }
	if (minute < 10) { minute = "0" + minute; }
	if (second < 10) { second = "0" + second; }
	//var dateString = monthday +	'-' + monthnumber +	'-' + year;
	var dateString = year +	'-' + monthnumber +	'-' + monthday;
	var timeString = hour +	':' + minute + ':' + second;			
	return dateString + ' ' + timeString;
}


function openVentanaFull (dirRoot, ancho, alto) {
	//correccionAncho = 50;
	//correccionAlto = 70;
	wtop = (screen.height/2) - (alto/2);
	wleft = (screen.width/2) - (ancho/2);
	//ancho += correccionAncho;
	//alto += correccionAlto;
	propiedades = "toolbar=no,status=no,scrollbars=no,location=no,menubar=no,directories=no,resizable=no,width="+ancho+",height="+alto+",top="+wtop+",left="+wleft;
window.open(dirRoot,'FullScreen',propiedades);
return;

}

function popUp(url,ancho,alto,id,extras){
	if(navigator.userAgent.indexOf("Mac")>0){ancho=parseInt(ancho)+15;alto=parseInt(alto)+15;}
	var left = (screen.availWidth-ancho)/2;
	var top = (screen.availHeight-alto)/2;
	if(extras!=""){extras=","+extras;};
	var ventana = window.open(url,id,'width='+ancho+',height='+alto+',left='+left+',top='+top+',screenX='+left+',screenY='+top+extras);
	var bloqueado = "AVISO:\n\nPara ver este contenido es necesario que desactive\nel Bloqueo de Ventanas para este Sitio."
	//var bloqueado = "WARNING:\n\nIn order to use this functionality, you need\nto deactivate Popup Blocking for this site."
	if(ventana==null || typeof(ventana.document)=="undefined"){ alert(bloqueado) }else{ return ventana; };
}

function popUpUpload(url,ancho,alto,id,ado,extras){
	if(navigator.userAgent.indexOf("Mac")>0){ancho=parseInt(ancho)+15;alto=parseInt(alto)+15;}
	var left = (screen.availWidth-ancho)/2;
	var top = (screen.availHeight-alto)/2;
	if(extras!=""){extras=","+extras;};
	var ventana = window.open(url+'&ado='+ado,id,'width='+ancho+',height='+alto+',left='+left+',top='+top+',screenX='+left+',screenY='+top+extras);
	var bloqueado = "AVISO:\n\nPara ver este contenido es necesario que desactive\nel Bloqueo de Ventanas para este Sitio."
	//var bloqueado = "WARNING:\n\nIn order to use this functionality, you need\nto deactivate Popup Blocking for this site."
	if(ventana==null || typeof(ventana.document)=="undefined"){ alert(bloqueado) }else{ return ventana; };
} 

function fechapartesvalidas(dia, mes, ano, nombre){
	val=dia.value+'-'+mes.value+'-'+ano.value; 
	dr=/^[ ]*[0]?(\d{1,2})[-\/\\](\d{1,2})[-\/\\](\d{4,})[ ]*$/; 
	mc=val.match(dr);
	if (mc){ 
		var td=new Date(mc[3],parseInt(mc[2])-1,mc[1]);    
		if ( td.getDate()==parseInt(mc[1]) && td.getFullYear()==parseInt(mc[3]) && (td.getMonth()+1)==parseInt(mc[2])) 
		return"";
		} 
	return "\n "+nombre+' debe ser completado.'
}
	
function fechavalida(obj,nombre){
	val= obj.value; 
	dr=/^[ ]*[0]?(\d{1,2})[-\/\\](\d{1,2})[-\/\\](\d{4,})[ ]*$/; 
	mc=val.match(dr);
	if (mc){ 
	var td=new Date(mc[3],parseInt(mc[2])-1,mc[1]); 
	if (td.getDate()==parseInt(mc[1]) && td.getFullYear()==parseInt(mc[3]) && ( td.getMonth()+1)==parseInt(mc[2])) return"";
	} return "\n "+nombre+' debe ser completado.'
}
