/**
**********************************
**FG = FUNCIONES GENERALES
**Version 1.0 
**Ultima revision 11/03/2008
**INSTALACION: SE DEBE INCLUIR COMO EL ULTIMO JS DE TODOS LOS AGREGADOS
**********************************
*/
//////////////////////////////////////////////////////////////////////////////////////////////	
/**ACTIVA DIV'S QUE CONTENGAN SOLO LAS POSBILES RESPUESTAS SI/NO**/
/**
	PARAMETROS
	campoValor = Campo sobre el cual se validará su respuesta
	divMostrar = Campo que se enviara como parametro para la funcion abrirVentana() o cerrarVentana()
	campoDesactivar = Campo que debe ser OBLIGATORIAMENTE desactivado para no sobrecargar la memoria del sistema
**/

function muestraVentana(campoValor, divMostrar, campoDesactivar){
	if(campoValor == "SI"){
		abrirVentana(divMostrar, campoDesactivar);
	}else{
		cerrarVentana(divMostrar, campoDesactivar);
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
/**PINTA DE UN COLOR EL CAMPO DESEADO**/
/**
	PARAMETROS
	campo = Campo sobre el cual se aplicara el efecto
	estatus = TRUE o FALSE indica el color a aplicar
	nroCampo = Numero asignado a cada campo para mostrar u ocultar su imagen, las imagenes son Tache y Acierto
**/
function muestraColor(campo, estatus, nroCampo){
	var campoPintar = campo;
	var estatusCampo = estatus;
	var numeroCampo = nroCampo
	
	if(estatusCampo){
		$(campoPintar).style.color = "#6699CC";
		//
		$("CampoError_"+numeroCampo).hide();
		$("CampoBien_"+numeroCampo).show();
	}else{
		$(campoPintar).style.color = "#660000";
		//
		$("CampoError_"+numeroCampo).show();
		$("CampoBien_"+numeroCampo).hide();
		
	}
}
/**FIN DE FUNCION muestraColor()**/
//////////////////////////////////////////////////////////////////////////////////////////////////////
/**REVISA QUE LOS CAMPOS INGRESADOS SEAN SOLO NUMERICOS**/
/**
	PARAMETROS
	campoTexto = Campo sobre el cual se desea aplicar la validacion
**/
function validaCampoNumerico(campoTexto){
	var letrasValidas = "0123456789"; //checkOK
  	var letrasUsuario = campoTexto; //checkStr
  	var allValid = true; 
  	for (i = 0; i < letrasUsuario.length; i++) {
    	ch = letrasUsuario.charAt(i); 
    	for (j = 0; j < letrasValidas.length; j++)
      		if (ch == letrasValidas.charAt(j))
        	break;
    if (j == letrasValidas.length) { 
      allValid = false; 
      break; 
    }
  }
  
	if (!allValid) { 
   // alert("La clave solo debe contener numeros y letras"); 
    //document.registro.clave.focus();
  		return (false);   
	}else{
		return (true); 
	}
}
/**FIN DE FUNCION validaCampoNumerico()**/
//////////////////////////////////////////////////////////////////////////////////////////////////
/**REVISA QUE EL CAMPO TENGA CARACTERES ESPECIFICOS, ESTA FUNCION ES RECOMENDABLE PARA DATOS TIPO DIRECCION**/
/**
	PARAMETROS
	campoTexto = Campo sobre el cual se desea aplicar la validacion
**/

function validaCampoDireccion(campoTexto){
	var letrasValidas = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" + "abcdefghijklmnñopqrstuvwxyz@.-_+*<>/0123456789# "; //checkOK
  	var letrasUsuario = campoTexto; //checkStr
  	var allValid = true; 
  	for (i = 0; i < letrasUsuario.length; i++) {
    	ch = letrasUsuario.charAt(i); 
    	for (j = 0; j < letrasValidas.length; j++)
      		if (ch == letrasValidas.charAt(j))
        	break;
    if (j == letrasValidas.length) { 
      allValid = false; 
      break; 
    }
  }
  
	if (!allValid) { 
   // alert("La clave solo debe contener numeros y letras"); 
    //document.registro.clave.focus();
  		return (false);   
	}else{
		return (true); 
	}
}
/**FIN DE FUNCION validaCampoDireccion()**/
//////////////////////////////////////////////////////////////////////////////////////////////////
/**APLICA FILTRO DE CARACTERES VALIDOS PARA PASSWORDS QUE EL USUARIO PUEDE APLICAR SOBRE LA FORMA DE REGISTRO SIN ATENTAR CON UNA BASE DE DATOS**/
/**
	PARAMETROS
	campoTexto = Campo sobre el cual se desea aplicar la validacion
**/
function validaCampoClave(campoTexto){
	var letrasValidas = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" + "abcdefghijklmnñopqrstuvwxyz@.-_+*<>/0123456789#"; //checkOK
  	var letrasUsuario = campoTexto; //checkStr
  	var allValid = true; 
  	for (i = 0; i < letrasUsuario.length; i++) {
    	ch = letrasUsuario.charAt(i); 
    	for (j = 0; j < letrasValidas.length; j++)
      		if (ch == letrasValidas.charAt(j))
        	break;
    if (j == letrasValidas.length) { 
      allValid = false; 
      break; 
    }
  }
  
	if (!allValid) { 
   // alert("La clave solo debe contener numeros y letras"); 
    //document.registro.clave.focus();
  		return (false);   
	}else{
		return (true); 
	}
}
/**FIN DE FUNCION validaCampoClave()**/
//////////////////////////////////////////////////////////////////////////////////////////////////
/**VALIDA CAMPOS QUE SOLO REQUIEREN CARACTERES A-Z a-z**/
/**
	PARAMETROS
	campoTexto = Campo sobre el cual se desea aplicar la validacion
**/
function validaCamposTexto(campoTexto){
	var letrasValidas = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" + "abcdefghijklmnñopqrstuvwxyz "; //checkOK
  	var letrasUsuario = campoTexto; //checkStr
  	var allValid = true; 
  	for (i = 0; i < letrasUsuario.length; i++) {
    	ch = letrasUsuario.charAt(i); 
    	for (j = 0; j < letrasValidas.length; j++)
      		if (ch == letrasValidas.charAt(j))
        	break;
    if (j == letrasValidas.length) { 
      allValid = false; 
      break; 
    }
  }
  
	if (!allValid) { 
   // alert("La clave solo debe contener numeros y letras"); 
    //document.registro.clave.focus();
  		return (false);   
	}else{
		return (true); 
	}
}
/**FIN DE FUNCION validaCamposTexto()**/
///////////////////////////////////////////////////////////////////////////////////////////////
/**VALIDA EXCLUSIVAMENTE CORREO ELECTRONICO BIEN FORMADO**/
/**
	PARAMETROS
	perfil_Correo = Campo sobre el cual se desea aplicar la validacion
**/

function validaCorreo(perfil_Correo){
	
	var s = perfil_Correo;
	var filter=/^[A-Za-z][A-Za-z0-9_.-]*@[A-Za-z0-9_-]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	
	if (filter.test(s)){
		
		return (true);
		
	}else{
		
		return (false);
	}

}
/**FIN DE FUNCION validaCorreo()**/
//////////////////////////////////////////////////////////////////////////////////////////////	
/**EFECTO DE APERTURA DE UNA VENTANA BlindDown con ayuda de script.aculo.us el cual debe instalarse primero para que esta funcion se ejecute correctamente**/
/**
	PARAMETROS
	divApertura = Campo sobre el cual se aplicara el efecto BlindDown
	campoDesactivar = Campo a desactivar IMPORTANTE: si no se envia el campo, puede sobrecargar la memoria y ejecutar cosas extrañas
**/
function abrirVentana(divApertura, campoDesactivar){
	$(campoDesactivar).disabled = true;
	new Effect.BlindDown($(divApertura),{
		afterFinish: function(){
			$(campoDesactivar).disabled = false;
			}
		}
	);
}
/**FIN DE FUNCION abrirVentana()**/
//////////////////////////////////////////////////////////////////////////////////////////////	
/**EFECTO DE APERTURA DE UNA VENTANA BlindUp con ayuda de script.aculo.us el cual debe instalarse primero para que esta funcion se ejecute correctamente**/
/**
	PARAMETROS
	divCierre = Campo sobre el cual se aplicara el efecto BlindUp
**/
function cerrarVentana(divCierre, campoDesactivar){
	$(campoDesactivar).disabled = true;
	new Effect.BlindUp($(divCierre),{
		afterFinish: function(){
			$(campoDesactivar).disabled = false;
			}
		}
	);
}
/**FIN DE FUNCION cerrarVentana()**/
///////////////////////////////////////////////////////////////////////////////////////////////
/**FUNCION QUE GENERA EL CICLO DE NUMEROS DENTRO DE UN PICKLIST, ES UTIL SOLO PARA DATOS NUMERICOS SECUENCIALES**/
/**
	PARAMETROS
	valorInicio = Entero que indica el inicio del ciclo
	valorFin = Entero que termina el ciclo
	txtValorDefault = Texto inicial al momento de presentar el picklist
	valorDefault = Valor que se le asignara al texto inicial
	campoPickList = Campo de la forma de registro a la cual se le aplicaran los demas parametros
	
**/
function cicloPickList(valorInicio, valorFin, txtValorDefault, valorDefault, campoPickList){
	
	var opcion = new Option(txtValorDefault, valorDefault);
	
	$(campoPickList).options[ $(campoPickList).options.length] = opcion;
	
	for (var i = valorInicio; i<=valorFin; i++){
		var opcion = new Option(i, i);
		try{
			
			$(campoPickList).options[$(campoPickList).options.length] = opcion;
		}
		catch (e){
		
			alert("Error interno");
		}
		
	}
}
/**FIN DE FUNCION cicloPickList()**/
///////////////////////////////////////////////////////////////////////////////////////////////
/**FUNCION QUE GENERA EL CICLO DE MESES PERO MANDA EL VALOR TIPO NUMERICO PARA PODER PROCESARLO EN LA BASE DE DATOS**/
/**
	PARAMETROS
	txtValorDefault = Texto inicial al momento de presentar el picklist
	valorDefault = Valor que se le asignara al texto inicial
	campoPickList = Campo de la forma de registro a la cual se le aplicaran los demas parametros
	
**/
function cicloMeses(txtValorDefault, valorDefault, campoPickList){
	
	var opcion = new Option(txtValorDefault, valorDefault);
	
	$(campoPickList).options[ $(campoPickList).options.length] = opcion;
	
	var this_month = new Array(12);
	  this_month[1]  = "ENERO";
	  this_month[2]  = "FEBRERO";
	  this_month[3]  = "MARZO";
	  this_month[4]  = "ABRIL";
	  this_month[5]  = "MAYO";
	  this_month[6]  = "JUNIO";
	  this_month[7]  = "JULIO";
	  this_month[8]  = "AGOSTO";
	  this_month[9]  = "SEPTIEMBRE";
	  this_month[10]  = "OCTUBRE";
	  this_month[11] = "NOVIEMBRE";
	  this_month[12] = "DICIEMBRE";
	
	for (var i = 1; i<=12; i++){
		var opcion = new Option(this_month[i], i);
		try{
			
			$(campoPickList).options[$(campoPickList).options.length] = opcion;
		}
		catch (e){
		
			alert("Error al intentar generar el combo de meses, por favor recarga esta página");
		}
		
	}
}
/**FIN DE FUNCION cicloMeses()**/
///////////////////////////////////////////////////////////////////////////////////////////////
/**FUNCION QUE CAMBIA EL TEXTO INTRODUCIDO DE MINUSCULAS A MAYUSCULAS**/
/**
	PARAMETROS
	campoValor = Texto para convertir a MAYUSCULAS
	
**/
function mayusculas(campoValor){
	return(campoValor.toUpperCase())
}
/**FIN DE FUNCION mayusculas()**/
///////////////////////////////////////////////////////////////////////////////////////////////
/**FUNCION QUE VALIDA QUE SOLO SE INGRESEN NUMEROS POR MEDIO DE TECLADO**/
/**
	PARAMETROS
	e = Evento que vienen de la forma
	
**/
function IsNumber(e) {

	tecla = (document.all) ? e.keyCode : e.which;
	if (tecla==8) return true;
	patron = /\d/; // Solo acepta números
	te = String.fromCharCode(tecla);
	return patron.test(te);

} 
/**FIN DE FUNCION IsNumber()**/
///////////////////////////////////////////////////////////////////////////////////////////////
/**FUNCION QUE CREA COOKIES **/
/**
	PARAMETROS
	cookieName = Nombre de la cookie
	cookieValue = Valor de la cookie
	expires = Fecha de expiracion
	path = Ruta de la pagina donde se establece la cookie
	domain = Dominio sobre el cual se crear la cookie
	
**/
function setCookie(cookieName,cookieValue,expires,path,domain,secure) {
	document.cookie= escape(cookieName)+'='+escape(cookieValue)	+ (expires?'; EXPIRES='+expires.toGMTString():'') + (path?'; PATH='+path:'') + (domain?'; DOMAIN='+domain:'') + (secure?'; SECURE':'');
}

function getCookie(cookieName) {
var cookieValue=null;
var posName=document.cookie.indexOf(escape(cookieName)+'=');
if (posName!=-1) {
	var posValue=posName+(escape(cookieName)+'=').length;
	var endPos=document.cookie.indexOf(';',posValue);
	if (endPos!=-1) cookieValue=unescape(document.cookie.substring(posValue,endPos));
	
	else cookieValue=unescape(document.cookie.substring(posValue));
}
return cookieValue;
} 