/*
Modificado: 15 de Mayo de 2006
Jairo Andrés Grajales Salinas
andres_grajales@hotmail.com
*/
var CentroCosto='Universidad del Rosario\nDepartamento de tecnología';
/*
Valida los formularios
onclick="Validar_Formulario('Campo','Parametros','TipoDato','Mensaje');return document.Valor_Retornado;"

1) Campo = Nombre del campo a validar
2) Parametros = El primer caracter '#' define si es requerido o no es requerido 
	Ejemplo: #  
	Los rangos se separan por medio del caracter '_' Ejemplo: -100_100 
3) TipoCampo = define el tipo de valor que lleva el campoa validar
	Blanco = Cualquier caracter o simbolo
	0 = Alfabéticos
	1 = Alfanuméricos
	2 = Solo números sin puntos
	3 = Solo números incluyendo los puntos
	4 = Correos electrónicos
	5 = Solo fecha y hora AAAA-MM-DD HH:MM:SS o AAAA-MM-DD HH:MM
 	6 = Solo fechas con formato AAAA-MM-DD o AAAA-MM
	7 = Solo horas con formato HH:MM:SS o HH:MM:SS
	8 = 
	9 = 
	10 = 
4) Mensaje = Define el mensaje a ser mostrado si no se cumple la condición
*/
function Validar_Formulario(){ 	
	// Asigna los argumentos que viene en la función
	var Argumentos = Validar_Formulario.arguments;
	var myDot=true;
	var Objeto;
	var Valor='';
	var Errores='';
	var Adicionar_Error=false;
	var Requerido;
	// Genera un bucle hasta analizar cada campo
	for (var i=0; i<Argumentos.length; i=i+4){
    	// Si el primer caracter es '#' es un campo requerido
		if (Argumentos[i+1].charAt(0)=='#'){
			// Activa la bandera de requerido
			Requerido=true;
			// Quita el caracter '#' de los parametros
			Argumentos[i+1]=Argumentos[i+1].substring(1);
		}
		else{
			Requerido=false
		}
		// Toma el objeto en la variable Objeto
		Objeto=Buscar_Objeto(Argumentos[i].replace(/\[\d+\]/ig,""));
		// Toma el valor del objeto en la variable Vvalor		
		Valor=Objeto.value;
		//alert ('Tipo de dato: ' +  Objeto.type + ' Valor: ' + Objeto.value); 
		// Se analiza por el tipo de objeto que se este trabajando 
		if (Objeto.type=='text'||Objeto.type=='password'||Objeto.type=='hidden'){
     		// Si este valor es requerido y no trae datos genera un error
			if (Requerido&&Objeto.value.length==0){
				Adicionar_Error=true;
			}
			// Si tiene valor se evalua
			if (Valor.length>0){
				switch(parseInt(Argumentos[i+2])) {
					// Alfabéticos
					case 0:
						if(Valor.search(/^\D+$/)<0)
							Adicionar_Error=true;
						break;		
					// Alfanuméricos
					case 1:
						if(Valor.search(/^\w+$/)<0)
							Adicionar_Error=true;
						break;		
					// Números sin puntos
					case 2:
						if(Valor.search(/[^-]\W/)<0){
							var Rangos=Argumentos[i+1].split('_');
							if(isNaN(Valor)||Valor<Rangos[0]/1||Valor>Rangos[1]/1){
								Adicionar_Error=true;
							}
						}
						else
							Adicionar_Error=true;
						break;
					// Números con puntos
					case 3:
						var Rangos=Argumentos[i+1].split('_');
						if(isNaN(Valor)||Valor<Rangos[0]/1||Valor>Rangos[1]/1){
							Adicionar_Error=true;
						}
						break; 				
					// Correo electrónico
					case 4:
						if(Valor.search(/^[\w\.\-\_]+@[\w\.\-\_]+\.[a-z]{2,3}$/)<0)
							Adicionar_Error=true;
						break;		
					// Fecha y hora AAAA-MM-DD HH:MM:SS o AAAA-MM-DD HH:MM
					case 5:
						var Valores=Valor.match(/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])\s?([0-2][0-9])?\:?([0-5][0-9])?\:?([0-5][0-9])?$/);
						if(Valores){
							var Ano=Valores[1];
							var Mes=Valores[2]-1; 
							var Dia=Valores[3];
							var Hora=(Valores[4])?Valores[4]:0;
							var Minuto=(Valores[5])?Valores[5]:0;
							var Segundo=(Valores[6])?Valores[6]:0;
							var FechayHora=new Date(Ano,Mes,Dia,Hora,Minuto,Segundo);
							//alert(FechayHora);
							if(FechayHora.getFullYear()!=Ano||FechayHora.getMonth()!=Mes||FechayHora.getDate()!=Dia||FechayHora.getHours()!=Hora||FechayHora.getMinutes()!=Minuto||FechayHora.getSeconds()!=Segundo){
								Adicionar_Error=true
							};
						}
						else{
							Adicionar_Error=true
						}
						break;				
					// Fecha AAAA-MM-DD o AAAA-MM						
					case 6:
						var Valores=Valor.match(/^([0-2][0-9]{3})\-([0-1][0-9])\-?([0-3][0-9])?$/);
						if(Valores){
							var Ano=Valores[1];
							var Mes=Valores[2]-1; 
							var Dia=(Valores[3])?Valores[3]:1;
							var FechayHora=new Date(Ano,Mes,Dia);
							//alert(FechayHora);
							if(FechayHora.getFullYear()!=Ano||FechayHora.getMonth()!=Mes||FechayHora.getDate()!=Dia){
								Adicionar_Error=true
							};
						}
						else{
							Adicionar_Error=true
						}
						break;				
					// Hora HH:MM:SS o HH:MM
					case 7:
						var Valores=Valor.match(/^([0-2][0-9])\:([0-5][0-9])\:?([0-5][0-9])?$/);
						if(Valores){
							var Hora=Valores[1];
							var Minuto=Valores[2];
							var Segundo=(Valores[3])?Valores[3]:0;
							var FechayHora=new Date(1990,0,1,Hora,Minuto,Segundo);
							//alert(FechayHora);
							if(FechayHora.getHours()!=Hora||FechayHora.getMinutes()!=Minuto||FechayHora.getSeconds()!=Segundo){
								Adicionar_Error=true
							};
						}
						else{
							Adicionar_Error=true
						}
						break;				
					// Si el campo tiene un valor y esta seleccionada una opcion de un checkbox
					case 8:
						var Objeto_Temporal = Buscar_Objeto(Argumentos[i+1].replace(/\[\d+\]/ig,""));
						if(Objeto_Temporal.length){
							Objeto_Temporal=Objeto_Temporal[Argumentos[i+1].replace(/(.*\[)|(\].*)/ig,"")];
						}
						if(!Objeto_Temporal.checked){
							Adicionar_Error=true
						}
						break;						
					// Compara que el valor de este campo sea igual a otro
					case 9:
						var Objeto_Temporal = Buscar_Objeto(Argumentos[i+1]);
						if(Valor!=Objeto_Temporal.value){
							Adicionar_Error=true
						}
						break;						
				}
			}
    	} 
		else{	
			if (!Objeto.type&&Objeto.length>0&&Objeto[0].type=='radio'){
         	var myTest = Argumentos[i].match(/(.*)\[(\d+)\].*/i);
          	var Objeto_Temporal=(Objeto.length>1)?Objeto[myTest[2]]:Objeto;
      		if (Argumentos[i+2]==1&&Objeto_Temporal&&Objeto_Temporal.checked&&Buscar_Objeto(Argumentos[i+1]).value.length/1==0){
					Adicionar_Error=true
				}
      		if (Argumentos[i+2]==2){
					var myDot=false;
					for(var j=0;j<Objeto.length;j++){
						myDot=myDot||Objeto[j].checked
					}
					if(!myDot){
						Errores+='* ' +Argumentos[i+3]+'\n'
					}
      		}
    		} 
			else if (Objeto.type=='checkbox'){
      			if(Argumentos[i+2]==1&&Objeto.checked==false){
					Adicionar_Error=true
				}
      			if(Argumentos[i+2]==2&&Objeto.checked&&Buscar_Objeto(Argumentos[i+1]).value.length/1==0){
					Adicionar_Error=true
				}
    		} 
			else if (Objeto.type=='select-one'||Objeto.type=='select-multiple'){
				if(Argumentos[i+2]==1&&Objeto.selectedIndex/1==0){
					Adicionar_Error=true
				}
    		}
			else if (Objeto.type=='textarea'){
      	   		if (Requerido&&Objeto.value.length==0){
					Adicionar_Error=true
				}
				if(Valor.length<Argumentos[i+1]){
					Adicionar_Error=true
				}
    		}
		}
    	if (Adicionar_Error){
			Errores+='* '+Argumentos[i+3]+'\n';
			Adicionar_Error=false
		}
  	}
  	if (Errores!=''){
		alert(CentroCosto + '\n\nLa información requerida esta incompleta o tiene errores:\t\t\t\t\t\n\n'+Errores)
	}
  	document.Valor_Retornado = (Errores=='');
}
// Envia el formulario
function Enviar_Formulario(Formulario){
	document.forms[Formulario].submit();
}
// Busca un objeto especifico
// Función interna
function Buscar_Objeto(Nombre, Documento){
	var Posicion,Objeto,i;
	if(!Documento)
		Documento=document; 
	if((Posicion=Nombre.indexOf("?"))>0&&parent.frames.length){
  		Documento=parent.frames[Nombre.substring(Posicion+1)].document; 
		Nombre=Nombre.substring(0,Posicion);
	}
  	if(!(Objeto=Documento[Nombre])&&Documento.all) 
		Objeto=Documento.all[Nombre]; 
	
	for (i=0;!Objeto&&i<Documento.forms.length;i++) 
		Objeto=Documento.forms[i][Nombre];
	for(i=0;!Objeto&&Documento.layers&&i<Documento.layers.length;i++) 
		Objeto=Buscar_Objeto(Nombre,Documento.layers[i].document);
  	
	if(!Objeto && Documento.getElementById) 
		Objeto=Documento.getElementById(Nombre); 
	return Objeto;
}

// Cambia las propiedades de un objeto
// Función interna
function Cambiar_Propiedad(Nombre_Objeto,x,Propiedad,Valor) { //v3.0
  var Objeto = Buscar_Objeto(Nombre_Objeto);
  if (Objeto && (Propiedad.indexOf("style.")==-1 || Objeto.style)){
	eval("Objeto."+Propiedad+"='"+Valor+"'");
  }
}
// Valida que solo se acepten números
// onKeyUp='this.value=Solo_Numeros(this.value);'
function Solo_Numeros(Campo) { 
	var Campo_Bien = ""; 
	if (Campo) {
		for (var i=0; i<Campo.length; i++)
			if ((Campo.charAt(i) >= "0") && (Campo.charAt(i) <= "9")) 
				Campo_Bien = Campo_Bien + Campo.charAt(i);		 		 	 		 
	}
	return Campo_Bien;
}
// Valida que solo se acepten números y puntos
// onKeyUp='this.value=Numeros_Puntos(this.value);'
function Numeros_Puntos(caja) { 
	if (caja) {       
		if (caja.charAt(0) != ".") {
			for (var i=0; i<caja.length; i++) {
				if (((caja.charAt(i) < "0") || (caja.charAt(i) > "9")) && (caja.charAt(i) != ".")) {		    				caja = "";
					break;
				}
				else { 
					if (caja.charAt(i) == ".")
						puntos++;  
					else
						puntos = 0;   
					if (puntos == 2) {
						caja = "";				 
						break;
					}
				}				 
			}	 
		}	 
		else
			caja = "";    
	}  
	return caja;	  
}

// Valida que solo se acepten letras
// onKeyUp="this.values=Solo_Letras(this.value)"
function Solo_Letras(Campo) {
   var Campo_Bien = "";
   if (Campo) {
      for (var i=0; i<Campo.length; i++)
         if (((Campo.charAt(i) >= "A") && (Campo.charAt(i) <= "z")) || ((Campo.charAt(i) >= "Á") && (Campo.charAt(i) <= "ú")))
            Campo_Bien = Campo_Bien + Campo.charAt(i);  			
    }
	return Campo_Bien;	
}

// Valida que la primera letra sea mayuscula y las demas en minusculas
// onKeyUp="this.value=Primera_Mayuscula(this.value);"
function Primera_Mayuscula(Campo) {
	var Tamano_Campo = Campo.length;
	var i=0;
	var Antes = '';
	var Actual = '';
	var Campo_Bien = '';
	while(i < Tamano_Campo){
		Antes = Campo.substring(i-1, i)
		Actual = Campo.substring(i, i+1)
		if(Antes == "" || Antes== " ") {
			Actual=Actual.toUpperCase();
			Campo_Bien= Campo_Bien + Actual;
		}
		else {
			Actual=Actual.toLowerCase();
			Campo_Bien= Campo_Bien + Actual;
		}
		i++;
	}
	return Campo_Bien;
}

// Valida que solo se acepten letras con espacios
// onKeyUp="this.value=Letras_Con_Espacios(this.value)"
function Letras_Con_Espacios(Campo) {
	var Campo_Bien = "";
	if (Campo) {
		for (var i=0; i<Campo.length; i++) {
			if (((Campo.charAt(i) >= "A") && (Campo.charAt(i) <= "z")) || ((Campo.charAt(i) >= "Á") && (Campo.charAt(i) <= "ú")) || (Campo.charAt(i) == " ") || (Campo.charAt(i) == "Ü")) {
				Campo_Bien = Campo_Bien + Campo.charAt(i);
			}
		}
	}
	return Campo_Bien;
}
// Valida que solo se acepten letras y numeros con espacios
// onKeyUp="this.value=Letras_Numeros_Con_Espacios(this.value)"
function Letras_Numeros_Con_Espacios(Campo) {
	var Campo_Bien = "";
   if (Campo) {
		for (var i=0; i<Campo.length; i++) 
			if (((Campo.charAt(i) >= "A") && (Campo.charAt(i) <= "z")) || ((Campo.charAt(i) >= "Á") && (Campo.charAt(i) <= "ú")) || (Campo.charAt(i) == " ") || (Campo.charAt(i) == "Ü") || (Campo.charAt(i) >= "0") && (Campo.charAt(i) <= "9"))
				Campo_Bien = Campo_Bien + Campo.charAt(i);
    }
	return Campo_Bien;
}

// Determinar el navegador que se usa para que javascript reconosca y valide en culquiera que se este ejecutando
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/";
// Java no reconose el simbolo / y no lo deja entrar
var vDateType = 3; // Valor global para tipo de fecha
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  
//                3 = dd/mm/yyyy
var vYearType = 4; 
var vYearLength = 2;
var err = 0; // Variable de error por defecto es 0 aja!
if(navigator.appName == "Netscape") {
   if (navigator.appVersion < "5") {
      isNav4 = true;
      isNav5 = false;
   }
   else if (navigator.appVersion > "4") {
         isNav4 = false;
         isNav5 = true;
	}
}
else
	isIE4 = true;

// onFocus="javascript:vDateType='2'" onKeyUp="Fechas(this,this.value,event,false,'2');"  onBlur="fechas(this,this.value,event,true,'2');"
// vDateName = NOmbre del objeto ese
// vDateValue = Valor del campo, inicia checkeado 
// e = event
// dateCheck
// True  = verifica en vDateValue si l fecha es valida
// False = el valor de la fecha inicia entero en vDateValue 
// vDateType
// 1 = mm/dd/yyyy
// 2 = yyyy/mm/dd
// 3 = dd/mm/yyyy
function Fechas(vDateName, vDateValue, e, dateCheck, dateType)
{
	vDateType = dateType;
	if (vDateValue == "~")
	{
   	alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4	+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
   	vDateName.value = "";
   	vDateName.focus();
   	return true;
	}
	var whichCode = (window.Event) ? e.which : e.keyCode;
// Check to see if a seperator is already present.
// bypass the date if a seperator is present and the length greater than 8
	if (vDateValue.length > 8 && isNav4) {
		if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
			return true;
	}
//Eliminate all the ASCII codes that are not valid
	var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
	if (alphaCheck.indexOf(vDateValue) >= 1) {
		if (isNav4) {
		   vDateName.value = "";
   		vDateName.focus();
   		vDateName.select();
   		return false;
		}
		else {
   		vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
   		return false;
		}
	}
	if (whichCode == 8)
   	return false;
	else {
//Crear cadena de numeros 0123456789/
		var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
		if (strCheck.indexOf(whichCode) != -1) {
			if (isNav4) {
   			if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
   				alert("Fecha Invalida\n Intente de Nuevo");
   				vDateName.value = "";
   				vDateName.focus();
   				vDateName.select();
   				return false;
				}
				if (vDateValue.length == 6 && dateCheck) {
					var mDay = vDateName.value.substr(2,2);
					var mMonth = vDateName.value.substr(0,2);
					var mYear = vDateName.value.substr(4,4)
//Turn a two digit year into a 4 digit year
					if (mYear.length == 2 && vYearType == 4) {
					   var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
						var checkYear = mToday.getFullYear() + 30;
					   var mCheckYear = '20' + mYear;
					   if (mCheckYear >= checkYear) 
							mYear = '19' + mYear;
					   else
							mYear = '20' + mYear;
					}
					var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
					if (!dateValid(vDateValueCheck)) {
					   alert("Fecha Invalida\n Intente de Nuevo");
					   vDateName.value = "";
					   vDateName.focus();
					   vDateName.select();
					   return false;
					}
					return true;
				}
				else {
					if (vDateValue.length >= 8  && dateCheck) {
						 // mmddyyyy
						if (vDateType == 1) {
					      var mDay = vDateName.value.substr(2,2);
					      var mMonth = vDateName.value.substr(0,2);
					      var mYear = vDateName.value.substr(4,4)
					      vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
						}
						 // yyyymmdd
						if (vDateType == 2) {
						   var mYear = vDateName.value.substr(0,4);
						  	var mMonth = vDateName.value.substr(4,2);
							var mDay = vDateName.value.substr(6,2);
							vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
						}
						// ddmmyyyy
						if (vDateType == 3) {
							var mMonth = vDateName.value.substr(2,2);
							var mDay = vDateName.value.substr(0,2);
							var mYear = vDateName.value.substr(4,4)
							vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
						}
						var vDateTypeTemp = vDateType;
						vDateType = 1;
						var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
						if (!dateValid(vDateValueCheck)) {
							alert("Fecha Invalida\n Intente de Nuevo");
							vDateType = vDateTypeTemp;
							vDateName.value = "";
							vDateName.focus();
							vDateName.select();
							return false;
						}
						vDateType = vDateTypeTemp;
						return true;
					}
					else {
						if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
					      alert("Fecha Invalida\n Intente de Nuevo");
      					vDateName.value = "";
							vDateName.focus();
							vDateName.select();
							return false;
						}
					}
				}
			}
		else {
// Non isNav Check
			if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
				alert("Fecha Invalida\n Intente de Nuevo");
				vDateName.value = "";
				vDateName.focus();
				return true;
			}
			if (vDateValue.length >= 8 && dateCheck) {
// Adiciona los / a la fecha
// retorna el valor
				// mm/dd/yyyy 
				if (vDateType == 1) {
					var mMonth = vDateName.value.substr(0,2);
					var mDay = vDateName.value.substr(3,2);
					var mYear = vDateName.value.substr(6,4)
				}
				// yyyy/mm/dd
				if (vDateType == 2) {
					var mYear = vDateName.value.substr(0,4)
					var mMonth = vDateName.value.substr(5,2);
					var mDay = vDateName.value.substr(8,2);
				}
				// dd/mm/yyyy
				if (vDateType == 3) {
					var mDay = vDateName.value.substr(0,2);
					var mMonth = vDateName.value.substr(3,2);
					var mYear = vDateName.value.substr(6,4)
				}
				if (vYearLength == 4) {
					if (mYear.length < 4) {
						//alert("Fecha Invalida\n Intente de Nuevo");
						vDateName.value = "";
						vDateName.focus();
						return true;
					}
				}
				var vDateTypeTemp = vDateType;
				vDateType = 1;
				var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
				if (mYear.length == 2 && vYearType == 4 && dateCheck) {
				var mToday = new Date();
				var checkYear = mToday.getFullYear() + 30;
				var mCheckYear = '20' + mYear;
				if (mCheckYear >= checkYear)
					mYear = '19' + mYear;
				else
					mYear = '20' + mYear;
				vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
				if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
if (!dateValid(vDateValueCheck))
{
   alert("Fecha Invalida\n Intente de Nuevo");
   vDateType = vDateTypeTemp;
   vDateName.value = "";
   vDateName.focus();
   return true;
}
   vDateType = vDateTypeTemp;
   return true;
}
else
{
if (vDateType == 1)
{
   if (vDateValue.length == 2) 
   vDateName.value = vDateValue+strSeperator;
if (vDateValue.length == 5) 
   vDateName.value = vDateValue+strSeperator;
}
if (vDateType == 2)
{
   if (vDateValue.length == 4) 
      vDateName.value = vDateValue+strSeperator;

if (vDateValue.length == 7)
   vDateName.value = vDateValue+strSeperator;   
}
if (vDateType == 3)
{
if (vDateValue.length == 2)
   vDateName.value = vDateValue+strSeperator;

if (vDateValue.length == 5)
   vDateName.value = vDateValue+strSeperator;

}
return true;
   }
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
// Un-comment the next line of code for debugging the dateValid() function error messages
//alert(err);
alert("Fecha Invalida\n Intente de Nuevo");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {

if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
         }
      }
   }
}

function dateValid(objName) {
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	// var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	
	strDate = objName;
	if (strDate.length < 1) {
		return true;
	}
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1;
				return false;
			}
			else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}
	if (booFound == false) {
		if (strDate.length>5) {
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
	}
	if (strYear.length == 2) {
		strYear = '20' + strYear;
	}
	strTemp = strDay;
	strDay = strMonth;
	strMonth = strTemp;
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) {
		err = 2;
		return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
		   }
		}
		if (isNaN(intMonth)) {
			err = 3;
			return false;
	   }
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;
				return false;
      	}
   	}
	}
	return true;
}

function LeapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) { 
			return true; 
		}
	}
	else {
		if ((intYear % 4) == 0) { 
			return true; 
		}
	}
	return false;
}

// Valida la hora y la segunda parte es opcional 
// onKeyUp='this.value=Horas(this.value);'
function Horas(objFormField){
  intFieldLength = objFormField.value.length;
  if(intFieldLength==2||intFieldLength==5){
       objFormField.value = objFormField.value + ":";
            return false;
  }
}

function Mensaje_Confirmacion(Mensaje){
	document.Valor_Retornado = confirm(CentroCosto + '\n\n' + Mensaje);
}
/*
YY_checkform('form1','clasecomp[0]','#q','2','Debe responder &iquest;Ha recibido clases de computacion?','comcasa[0]','#q','2','Debe responder &iquest;Tiene computador en su casa?','intreco[0]','#q','2','Debe responder &iquest;Tiene conexi&oacute;n con Internet?','anotermi','#1900_2006','1','Digite el a&ntilde;o de terminaci&oacute;n del colegio','ciucole','#q','1','Seleccione una ciudad','colegio','#q','1','Seleccione un colegio.');return document.MM_returnValue

YY_checkform('form1','pruidipunta','#q','1','Digite el puntaje obtenido en la prueba.','pruidifecha','#^\([0-9]{4}\)\\-\([0-9][0-9]\)\\-\([0-9][0-9]\)$#3#2#1','3','Digite la fecha en la que realizo la prueba en formato \(aaaa-mm-dd\)','pruebaidi','#q','1','Selecione un tipo de prueba prueba.');return document.MM_returnValue
*/