	nnItems = new Array();
	nnInvalid = new Array();

	var nombres = new Array();
	var actual;
	
	function existeNombre(name)
	{
		for(i=0;i<nombres.length;i++)
		{
			if (nombres[i]==name)
				return true;
		}
	}

	function campoTel(src)
	{
		valor = new String(src.value);
		if (valor == "")
		{
			src.value = "";
		}
		else 
		{
			guion = valor.indexOf("-");
			if (guion != 3)
			{
				if (guion == -1)
				{
					if (valor.length == 7)
					{
						val1 = valor.substring(0,3);
						val2 = valor.substring(3,7);
						valor = val1+"-"+val2;
					}
					else
					{
						alert('Por favor ingrese 7 d�gitos');
						src.select();
						return false;
					}
				}
				else
				{
						if (guion > 3)
						{
							val1 = valor.substring(0,3);
							val2 = valor.substring(3,guion)+valor.substring(guion+1);
							valor = val1+"-"+val2;
							//alert("> "+valor);
						}
						else
						{
							val1 = valor.substring(0,guion)+valor.substring(guion+1,((guion+1)+(3-guion)));
							val2 = valor.substring(((guion+1)+(3-guion)));
							valor = val1+"-"+val2;
							//alert("< "+valor);
						}
					val = val1+""+val2;

					val = new String(parseInt(val,10));
					if (val.length < 7)
					{
						alert('Por favor ingrese 7 d�gitos');
						src.select();
						return false;
					}
				}
				
				src.value = valor;
			}
			else
			{
					val1 = valor.substring(0,3);
					val2 = valor.substring(4,8);
					valor = val1+""+val2;
					val = new String(parseInt(valor,10));
					if (val.length < 7)
					{
						alert('Por favor ingrese tienen 7 d�gitos');
						src.select();
						return false;
					}
			}
		}
	}	

	function validarAnio(src,anio)
	{
		if (src.value < anio)
		{
			alert('Por favor ingrese un a�o mayor o igual a '+anio);
			src.select();
			return false;
		}
		else if (src.value.length < 4)
		{
			alert('Por ingrese cuatro d�gitos (ej. '+anio+')');
			src.select();
			return false;
		}
		return true;
	}
	
	function notNull(src, msg)
	{
		//alert(src.name+' '+src.type);
		i = nnItems.length;
		nnItems[i] = new Object();
		nnItems[i].src = src;
		nnItems[i].tipo = src.type;
		nnItems[i].msg = msg;
	}
	
	function validarEmail(src, msg)
	{
		src.value = TrimAll(src.value);
		if(src.value == '')
			return;
		var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
		if( re.test(src.value) == false )
		{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src;
			nnInvalid[i].tipo = src.type;
			nnInvalid[i].msg = msg;
		}
		
	}

	function validarEmails(src, msg)
	{
		src.value = TrimAll(src.value);
		if(src.value == '')
			return;
		var re = /^(\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+(\,)?)+$/;
		if( re.test(src.value) == false )
		{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src;
			nnInvalid[i].tipo = src.type;
			nnInvalid[i].msg = msg;
		}
		
	}

	function validarNumeric(src, msg) {
		src.value = TrimAll(src.value);
		if(src.value == '')
			return;
		var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
		if( objRegExp.test(src.value) == false )
		{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src;
			nnInvalid[i].tipo = src.type;
			nnInvalid[i].msg = msg;
		}
	}
	
	function validarEntero(src, msg) {
		src.value = TrimAll(src.value);
		if(src.value == '')
			return;
		var objRegExp  = /(^-?\d\d*$)/;
	
		if( objRegExp.test(src.value) == false )
		{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src;
			nnInvalid[i].tipo = src.type;
			nnInvalid[i].msg = msg;
		}
	}

	function validarTelefono(src, msg) {
		src.value = TrimAll(src.value);
		if(src.value == '')
			return;

		// [{[(000)]?[ ]?[0000][-]?[0000]}+[ |,|;]?]*]
		//var objRegExp  = /^(((\([1-9]\d{2}\))?\s?\d{4}\-?\d{4})+(\s|[,]|[;])?)*$/;
		// {[0000][-]?[0000]}
		var objRegExp  = /^(\d{4}\-?\d{4})$/;

		if( objRegExp.test(src.value) == false )
		{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src;
			nnInvalid[i].tipo = src.type;
			nnInvalid[i].msg = msg;// + '. Formato: (000) 000-0000;0000000;000-0000';
		}
	}

	function compararCampos(src1, src2, msg) {
		src1.value = TrimAll(src1.value);
		src2.value = TrimAll(src2.value);
		if(src1.value == src2.value)
			return;
		else{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src1;
			nnInvalid[i].tipo = src1.type;
			nnInvalid[i].msg = msg;
		}
	}

	function compararGT(src1, src2, msg) {
		src1.value = TrimAll(src1.value);
		src2.value = TrimAll(src2.value);
		if(src1.value > src2.value)
			return;
		else{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src1;
			nnInvalid[i].tipo = src1.type;
			nnInvalid[i].msg = msg;
		}
	}

	function validarNit(src, msg) {
		src.value = TrimAll(src.value);
		if(src.value == '')
			return;
		var objRegExp  = /^(\d+\-\w$)/;

		if( objRegExp.test(src.value) == false )
		{
			i = nnInvalid.length;
			nnInvalid[i] = new Object();
			nnInvalid[i].src = src;
			nnInvalid[i].tipo = src.type;
			nnInvalid[i].msg = msg;
		}
	}

	function TrimAll( strValue ) {
		var objRegExp = /^(\s*)$/;
		if(objRegExp.test(strValue)) {
			strValue = strValue.replace(objRegExp, '');
			if( strValue.length == 0)
				return strValue;
		}

		objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
		if(objRegExp.test(strValue)) {
			strValue = strValue.replace(objRegExp, '$2');
		}
		return strValue;
	}
	
	function ValidarHora(hora,minutos,msg)
	{
		hora.value = TrimAll(hora.value);
		minutos.value = TrimAll(minutos.value);
		intHor = parseInt(hora.value);
		intMin = parseInt(minutos.value);
		if(intHor>23 || intHor<0)
		{
					i = nnInvalid.length;
					nnInvalid[i] = new Object();
					nnInvalid[i].src = hora;
					nnInvalid[i].tipo = hora.type;
					nnInvalid[i].msg = msg;
		}	
		if(intMin>59 || intMin<0)
		{
					i = nnInvalid.length;
					nnInvalid[i] = new Object();
					nnInvalid[i].src = minutos;
					nnInvalid[i].tipo = minutos.type;
					nnInvalid[i].msg = msg;
		}	
	}
	
	function ValidarFecha(dia,mes)
	{
		dia.value = TrimAll(dia.value);
		mes.value = TrimAll(mes.value);
		intMes = parseInt(mes.value);// - 0;
		intDia = parseInt(dia.value);
		msg = 'Fecha Invalida';
		switch(intMes)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				if(intDia>31)
				{
					i = nnInvalid.length;
					nnInvalid[i] = new Object();
					nnInvalid[i].src = dia;
					nnInvalid[i].tipo = dia.type;
					nnInvalid[i].msg = msg;
				}
			break;
			case 2:
			case 4:
			case 6:
			case 9:
			case 11:
				if(intDia>30)
				{
					i = nnInvalid.length;
					nnInvalid[i] = new Object();
					nnInvalid[i].src = dia;
					nnInvalid[i].tipo = dia.type;
					nnInvalid[i].msg = msg;
				}
			break;
			
		}
	}

	function validar()
	{
		var strInv = '';
		for(i=0;i<nnInvalid.length;i++)
		{
			strInv += '  - ' + nnInvalid[i].msg;
			switch(nnInvalid[i].tipo){
				case 'password':
					strInv += '\n';
				break;
				default:
					strInv += ' (' + nnInvalid[i].src.value + ')\n';
				break;
			}
		}
		if (strInv!='')
		{
			alert('Algunos datos no son correctos: \n\n' + strInv);
			return false;
		}

		var str = '';
		for(i=0;i<nnItems.length;i++)
		{
			switch(nnItems[i].tipo)
			{
				case 'hidden':
				case 'textarea':
				case 'text':
				case 'password':
				case 'file':
					if (nnItems[i].src.value=="")
						str += '  - '+nnItems[i].msg+'\n';
				break;
				case 'select-one':
					if (nnItems[i].src.options[nnItems[i].src.options.selectedIndex].value=="")
						str += '  - '+nnItems[i].msg+'\n';
				break;
				default:
					alert('otro ' + nnItems[i].tipo + ' str' );
				break;
			}
		}
		if (str!='')
		{
			alert('Algunos datos no estan completos: \n\n'+str);
			return false;
		}

		return true;		
	}
