// JavaScript Document

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü_-";
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ_-";

function isEmpty(s) //verifica si un string es nulo o vacio
{   return ((s == null) || (s.length == 0) || (s == ""))
}

function isDigit (c) //devuelve si un caracter es numero o no
{   return ((c >= "0") && (c <= "9"))
}

function numeros ()  { //verifica que solo ingresen al campo de texto numeros en el evento onKeypress

if ( ((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode == 46)) {
event.returnValue = true;
} else {
event.returnValue = false;
}
}

function isLetter (c) //busca en un arreglo de todas las letras si es una letra o no
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

function isAlphanumeric (s) //verifica que un string sea alfanumerico estricto y sin espacios en blanco
{   var i;

    if (isEmpty(s)) return false;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}


function Validar_Pass(frm) {
if (chequeaRequeridos(frm, cmpReq, desc) && validaPass(frm))
  {
    if (deshabilitar == null) frm.Submit.disabled = true;
    return true;
  }
  else
    return false;
	
}

function abrir_ventana(name, ancho, alto){
	var winleft = (screen.width - ancho) / 2;
	var winUp = (screen.height - alto) / 2;
	ventana = window.open(name, "ventana", "width="+ancho+", height="+alto+", dependent=yes, screenX="+winleft+", screenY="+winUp+", titlebar=no, directories=no, menubars=no, status=no, scrollbars=no, resizable=no"); 
	if (ventana.opener == null) ventana.opener = self;
}

function abrir_ventana2(name, ancho, alto, objeto){
	var winleft = (screen.width - ancho) / 2;
	var winUp = (screen.height - alto) / 2;
	ventana = window.open(name, "ventana_"+objeto, "width="+ancho+", height="+alto+", dependent=yes, screenX="+winleft+", screenY="+winUp+", titlebar=no, directories=no, menubars=no, status=no, scrollbars=no, resizable=no"); 
	if (ventana.opener == null) ventana.opener = self;
}

function FormaLogin(frm) {

	var errorMsg = "";
	var errorMsgLong = "";
		
	//Verifica que introdujo login
	if (frm.login.value == ""){
		errorMsg += "\n Login \t\t- Debe introducir su login";
	} 
	
	//Verifica que introdujo password
	if (frm.password.value == ""){
		errorMsg += "\n Password \t- Debe introducir su password";
	} 

	if ((errorMsg != "") || (errorMsgLong != "")){
		msg = "_____________________________________________________\n\n";
		msg += "El formulario no ha sido enviado debido a que se presentaron problemas.\n";
		msg += "Por favor corrija los problemas y vueva a enviar el formulario.\n";
		msg += "_____________________________________________________\n\n";
		msg += "Los siguientes campos necesitan ser corregidos: \n";
		
		errorMsg += alert(msg + errorMsg + "\n" + errorMsgLong);
		return false;
	}

	return true;
}

function chequeaRequeridos(frm, CamposRequeridos, Descripcion) {
	var alertMsg = "_____________________________________________________\n\n";
 		 alertMsg += "El formulario no ha sido enviado debido a que se presentaron problemas.\n";
	 	 alertMsg += "Por favor corrija los problemas y vueva a enviar el formulario.\n";
		 alertMsg += "_____________________________________________________\n\n";
		 alertMsg += "Los siguientes campos deben rellenarse: \n\n";

	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < CamposRequeridos.length; i++){
		var obj = frm.elements[CamposRequeridos[i]];
		if (obj) {
			switch(obj.type) {
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.value == ""){
					alertMsg += " - " + Descripcion[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + Descripcion[i] + "\n";
				}
				break;
						
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + Descripcion[i] + "\n";
				}
				break;
				
			case "text":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + Descripcion[i] + "\n";				
					
				}
				break;
				
			case "password":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + Descripcion[i] + "\n";				
					
				}						
				break;
			
			case "checkbox":
				if (obj.checked == false || obj.value == null){
					alertMsg += " - " + Descripcion[i] + "\n";				
					
				}						
				break;
				
			default:
			}
			
			if (obj.type == undefined) {
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++)
					if (obj[j].checked) blnchecked = true;
				
				if (!blnchecked)
					alertMsg += " - " + Descripcion[i] + "\n";
			}
		}
	}

	if (alertMsg.length == l_Msg) {
		return true;
	} else {
		alert(alertMsg);
		return false;
	}
}


function validaEmail(frm) {
	
	var errorMsg = "";
	var errorMsgLong = "";
	
	//Verifica el email
			
	if (frm.txtEmail.value != '') {
	var checkEmail = "@.";
	var checkStr = frm.txtEmail.value;
	var EmailValid = false;
	var EmailAt = false;
	var EmailPeriod = false;
	for (i = 0;  i < checkStr.length;  i++)
	{
	ch = checkStr.charAt(i);
	for (j = 0;  j < checkEmail.length;  j++)
	{
		if (ch == checkEmail.charAt(j) && ch == "@")
		EmailAt = true;
		if (ch == checkEmail.charAt(j) && ch == ".")
		EmailPeriod = true;
		if (EmailAt && EmailPeriod)
		break;
		if (j == checkEmail.length)
		break;
	}
	// if both the @ and . were in the string
		if (EmailAt && EmailPeriod)
		{
			EmailValid = true
			break;
		}
	}
	if (!EmailValid) {
	  errorMsg += "\n Email \t\t- Debe ingresar un email válido";
	}
	}
	
	if ((errorMsg != "") || (errorMsgLong != "")){
		msg = "_____________________________________________________\n\n";
		msg += "El formulario no ha sido enviado debido a que se presentaron problemas.\n";
		msg += "Por favor corrija los problemas y vueva a enviar el formulario.\n";
		msg += "_____________________________________________________\n\n";
		msg += "Los siguientes campos necesitan ser corregidos: \n";
		
		errorMsg += alert(msg + errorMsg + "\n" + errorMsgLong);
		return false;
	}

	return true;
}


function validaLogin(frm) {

	var errorMsg = "";
	var errorMsgLong = "";
	var login_new;
	
	login_new = frm.txtLogin.value; 
	
	if (login_new.length < 5) {
	
	errorMsg += "\n Login - Debe tener al menos 5 caracteres de longitud";
		
	} else { 
		
		if (isAlphanumeric(login_new) == false) {
			
		errorMsg += "\n Login - No puede tener caracteres especiales o espacios en blanco";
			
		}
	}
	
	if ((errorMsg != "") || (errorMsgLong != "")){
		msg = "_____________________________________________________\n\n";
		msg += "El formulario no ha sido enviado debido a que se presentaron problemas.\n";
		msg += "Por favor corrija los problemas y vueva a enviar el formulario.\n";
		msg += "_____________________________________________________\n\n";
		msg += "Los siguientes campos necesitan ser corregidos: \n";
		
		errorMsg += alert(msg + errorMsg + "\n" + errorMsgLong);
		return false;
	}

	return true;
}

function validaPass(frm) {

	var errorMsg = "";
	var errorMsgLong = "";
	
	var pass;
	
	pass = frm.txtPassword.value; 
	
	if (pass != "") {
		
	if (pass.length < 6) {
	
	errorMsg += "\n Password - Debe tener al menos 6 caracteres de longitud";
		
	} else { 
		
		if (isAlphanumeric(pass) == false) {
			
		errorMsg += "\n Password - No debe tener caracteres especiales o espacios en blanco";
		
		} else {
			
		var confirmacion;
		confirmacion = frm.txtConfirmacion.value;
		
			if (confirmacion != pass) {
		
			errorMsg += "\n Confirmación - No coinciden el nuevo password y la confirmación";		
		
			}
		}
	}
	}
	
	if ((errorMsg != "") || (errorMsgLong != "")){
		msg = "_____________________________________________________\n\n";
		msg += "El formulario no ha sido enviado debido a que se presentaron problemas.\n";
		msg += "Por favor corrija los problemas y vueva a enviar el formulario.\n";
		msg += "_____________________________________________________\n\n";
		msg += "Los siguientes campos necesitan ser corregidos: \n";
		
		errorMsg += alert(msg + errorMsg + "\n" + errorMsgLong);
		return false;
	}
	return true;
} 


function Validar(frm, fecha, deshabilitar) 
{
  if (chequeaRequeridos(frm, cmpReq, desc) && validaEmail(frm) && validaLogin(frm) && validaPass(frm))
  {
    if (deshabilitar == null) frm.Submit.disabled = true;
    return true;
  }
  else
    return false;
}

function Validar2 (frm, fecha, deshabilitar) 
{
  if (chequeaRequeridos(frm, cmpReq, desc) && validaEmail(frm))
  {
    if (deshabilitar == null) frm.Submit.disabled = true;
    return true;
  }
  else
    return false;
}

function Validar_Gen (frm, fecha, deshabilitar) 
{
  if (chequeaRequeridos(frm, cmpReq, desc))
  {
    if (deshabilitar == null) frm.Submit.disabled = true;
    return true;
  }
  else
    return false;
}