// Función: MM_findObj
// Autor: Generada automáticamente por Dreamweaver
// Objetivo: Es utilizada por Dreamweaver para hacer la validación de campos texto 
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>

function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

// Función: isNice
// Autor: Alejandro Díaz
// Objetivo: Usada para complementar la validación creada automáticamente por DreamWeaver 
//           Impide que se coloquen ciertos caracteres en los campos que se validan
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>

var checkNiceness = true;
function isNice(s) {
        var i = 0;
        var sLength = s.length;
        var b = 1;
        while(i<sLength) {
                if( (s.charAt(i) == "\"") || (s.charAt(i) == "'" )  || (s.charAt(i) == "&" ) || (s.charAt(i) == "|" ) ) b = 0;
                i++;
        }
       return b;
}

// Función: MM_validateForm
// Autor: Generada automáticamente por Dreamweaver
// Modificada por: Alejandro Díaz
// Objetivo: Validación de campos texto
// Objetivo de la Modificación: Colocar Mensajes en Español
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>
// Observaciones: Si se va a utilizar en una misma acción la función de validar listas (ValidarLista)
// 				y la de validar campos (MM_validateForm) al mismo tiempo, se debe llamar 
//              a la función de validar listas primero.
//              Si se va a utilizar una función de validación adicional, la adiciónal se llama 
//				al final, pero antes del return document.MM_returnValue.

function MM_validateForm() { //v4.0
 document.MM_returnValue = true;
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe ser un e-mail correcto.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' debe ser un número.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' debe contener un número entre '+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' debe ser ingresado.\n'; }
  if ( checkNiceness && !isNice(val)) errors += '- No se admiten los siguientes caracteres: \n   Comillas sencillas o dobles(\' , \") reemplace por tilde(´) \n   Ampersand(&) reemplace por la letra (y) o la palabra (and) \n   Pipes (|) reemplace por guión (-)\n En el campo '+nm+'. \n' ; 
 }
	if (errors) {
		alert('Validación de datos digitados:\n'+errors);
		// alert ('Entrada Campos SI hay error : ' + document.MM_returnValue); //// For test
		if (document.MM_returnValue == false) {
			document.MM_returnValue = false;
		}
		else {
			document.MM_returnValue = (errors == '');
		}
	   // alert ('Salida Campos SI hay error: ' + document.MM_returnValue); //// For test
	}
	else {
		// alert ('Entrada Campos NO hay error: ' + document.MM_returnValue); //// For test
		if (document.MM_returnValue == false) {
			document.MM_returnValue = false;
			}
		else {
			document.MM_returnValue = true;
			}
		// alert ('Salida Campos NO hay error: ' + document.MM_returnValue); //// For test
	} 
}

// Función: ValidarLista
// Autor: Alejandro Díaz
// Requiere:
//    formulario = nombre del formulario, 
//    lista = nombre del select, 
//    invalido = valor del option inválido (no acepta vacío), 
//    nombre = texto con el cual el usuario puede identificar el select
// Objetivo: validar que un usuario no deje una lista sin seleccionar
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>
// Ejemplo de uso: <input type="submit" value="Insertar Servicio" name="submit" onClick="ValidarLista('search','lstclases','Ninguno','Clases de Servicio');ValidarLista('search','lsttipos','Ninguno','Tipos de Servicio');MM_validateForm('Cliente','','RisNum','tiempo','','RisNum','fecha','','R','observaciones','','R');return document.MM_returnValue">
// Ejemplo cuando se usan varias validaciones: <input type="submit" value="Insertar Empresa" name="submit" onClick="ValidarLista('form1','CodActEmp','*','Actividad de la Empresa');MM_validateForm('Nit','','RisNum','NomCom','','R','RazSoc','','R','DesEmp','','R','Direccion1','','R','Email1','','NisEmail','Telefono1','','R','Email2','','NisEmail','Email3','','NisEmail');checkField(this.form.Nit,isRealNumber);return document.MM_returnValue">

function ValidarLista(formulario,lista,invalido,nombre) {
	var errorlista=''
	listref = eval( "document.forms." + formulario + "." + lista )
	if (listref.options[listref.selectedIndex].value == invalido) {
		errorlista = 'Debe seleccionar un ítem de la lista ' + nombre; 
	}
	if (errorlista) {   
		alert('Validación de selección de listas:\n'+errorlista);
		listref.focus();
		// alert ('Entrada Listas SI hay error: ' + document.MM_returnValue); //// For test
		if (document.MM_returnValue == false) {
			document.MM_returnValue = false;
		}
		else {
			document.MM_returnValue = (errorlista == '');
		}
		// alert ('Salida Listas SI hay error: ' + document.MM_returnValue); //// For test
	}
	else {
		// alert ('Entrada Listas  NO hay error: ' + document.MM_returnValue); //// For test
		if (document.MM_returnValue == false) {
			document.MM_returnValue = false;
		}
		else {
			document.MM_returnValue = true;
		}
		// alert ('Salida Listas NO hay error: ' + document.MM_returnValue); //// For test
	}
}

// Función:  textCounter
// Autor: Alejandro Díaz
// Requiere: 
//          field: El script lo toma automáticamente si se utiliza this como en el ejemplo
//          countfield: El mismo formulario puede tener un campo llamado txtContador puede ser oculto como en el ejemplo
//          maxlimit: Es el valor Máximo de caracteres para la textarea
// Objetivo: Validar el largo de un Text Area dentro de un formulario 
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>
// Ejemplo de Uso:
//                <textarea name="ObsSituacionEmpresa" cols="30" rows="4" 
//		          onkeydown=textCounter(this,this.form.txtContador,255);
//		          onkeyup=textCounter(this,this.form.txtContador,255)>
//		          </textarea>
//                <input type="text" name="txtContador" value="">
// Observaciones: si en un formulario hay varios TextAreas que se quiera controlar, 
//                se puede dejar solo un imput textCounter

function textCounter(field, countfield, maxlimit){
	if ((field.value.length) > maxlimit) {
		field.value = field.value.substring(0, maxlimit - 1);
		field.focus();
		window.alert('El límite para el campo ' + field.name + ' es de ' + maxlimit + ' caracteres.' );
	}
    countfield.value = maxlimit - (field.value.length);
}

// Función:  textMerge
// Autor: Alejandro Díaz
// Requiere: 
//          inputfield1: Primer campo a Concatenar
//          inputfield2: Segundo campo a Concatenar
//          outputfield: Campo de salida donde va a quedar el texto concatenado
// Objetivo: Concatenar dos campos y escribirlos en un tercero.
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>
// Ejemplo de Uso:
//                <input type="text" name="Telefono" value="" size="50" maxlength="50" >
//                <input type="text" name="Email" value="" size="50" maxlength="80">
//                <input type="text" name="Telefono_o_Email" value="">
//                <input type="submit" value="Actualizar Empresa" onClick="textMerge(this.form.Telefono,this.form.Email,this.form.Telefono_o_Email);MM_validateForm('nomemp','','R','Ciudad','','R','Email','','NisEmail','Telefono_o_Email','','R');return document.MM_returnValue">
// Observaciones: Es util cuando se quiere validar que sea obligatorio llenar uno de los dos primeros campos. 
//                en este caso se valida solo el tercero.

function textMerge(inputfield1, inputfield2, outputfield) {
    outputfield.value = (inputfield1.value + inputfield2.value);
}

// Función:  ValidarRadio
// Autor: Alejandro Díaz
// Requiere: 
//          optName: Nombre del grupo de opciones 
// Objetivo: Verificar que el usuario seleccione al menos una opción entre un grupo d
// Uso: Hacer referencia a este Script entre <head> y </head>
//      <script type="text/javascript" src="../directorios/elementoscomunes/MM_Validaciones.js"></script>
// Ejemplo de Uso:
// Observaciones: Pendiente Pruebas

function ValidarRadio(optName){	
	var intIndice;
    var intContador;
    var blnSeleccionado = false;
    intContador = optName.length;
    for (intIndice = 0; intIndice < intContador; intIndice ++){	
			 if (optName[intIndice].checked){
					blnSeleccionado = true; 
					break;
			 }
    }
    if (!blnSeleccionado){
	 alert ('Debe seleccionar una opción del grupo de opciones' + optName)
	 }
}