// JavaScript Document

var g_fechaYMD="YMD";
function validarCadena (cadena, validacion)
{
  var largo=cadena.length;
  var i;
  var ch;
  var cpunto=0;
  var carroba=0;
  for (i=0;i<largo;i++)
  {
	  ch=cadena.substr(i,1);
	  if (validacion=="caracteresConEspacio")
	  {
	    if (!(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'||ch=='á'||ch=='é'||ch=='í'||ch=='ó'||ch=='ú'||ch=='ñ'||ch=='Ñ'||ch==' '))
		  return false;
	  }
	  else if (validacion=="caracteresNumerosSimb")
	  {//vhm
	    if (!(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z' ||ch>='0'&&ch<='9' ||ch=='-'||ch=='_'))
		  return false;
	  }
	else if (validacion=="caracteresNumerosComa")
	  {//vhm
	    if (!(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'||ch=='á'||ch=='é'||ch=='í'||ch=='ó'||ch=='ú'||ch=='ñ'||ch=='Ñ'||ch==' '||ch==','))
		  return false;
	  }

	  else if (validacion=="caracteres")
	  {
	    if (!(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'||ch=='á'||ch=='é'||ch=='í'||ch=='ó'||ch=='ú'||ch=='ñ'||ch=='Ñ' ||ch==' '))
		  return false;
	  }
	  else if (validacion=="caracteresSinTildes")
	  {
	    if (!(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'))
		  return false;
	  }
	  else if (validacion=="caracteresSinTildesConNumeros")
	  {
	    if (!(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'||ch>='0'&&ch<='9'))
		  return false;
	  }
	  else if (validacion=="enteros")
	  {
	    if (!(ch>='0'&&ch<='9'))
		  return false;
	  }
	  else if (validacion=="porcentaje")
	  {
	    if (!(ch>='0'&&ch<='9'))
		  return false;
	  }
	  else if (validacion=="enterosConEspacio")
	  {
	    if (!(ch>='0'&&ch<='9'||ch==' '))
		  return false;
	  }
	  else if (validacion=="decimales")
	  {
	    if (!(ch>='0'&&ch<='9'))
		  if (!(ch=='.'))
		    return false;
		  else
		    if (cpunto==0) cpunto++;
			else return false;
	  }
	  else if (validacion=="decimalesConEspacio")
	  {
	    if (!(ch>='0'&&ch<='9'||ch==' '))
		  if (!(ch=='.'))
		    return false;
		  else
		    if (cpunto==0) cpunto++;
			else return false;
	  }
	  else if (validacion=="correo")
	  {
		if (ch=='@') carroba++;
		if (ch=='.') cpunto++;
	  }
	  else if (validacion=="soloVacio")
	  {
	  }
	  else if (validacion=="telefono")
	  {
	    if (!(ch>='0'&&ch<='9'||ch==' '||ch=='-'||ch=='('||ch==')'||ch=='+'))
		  return false;
	  }
 	  else if (validacion=="enterosPorcentaje")
	  {
	    if (!(ch>='0'&&ch<='9'))
		  return false;
	  }
	   else if (validacion=="decimalesPorcentaje")
	  {
	    if (!((ch>='0'&&ch<='9')||ch=='.' ||ch==',' ))
		    return false;
	  }


   }
   if (validacion=="correo")
   {
	   if (carroba!=1) return false;
	   if (cpunto==0) return false;
   }

   if (validacion=="enterosPorcentaje")
   {
	   if (parseFloat(cadena)>100) return false
		}
   if (validacion=="decimalesPorcentaje")
   {
   	cadena2=cadena.replace('.','');
	  cadena2=cadena2.replace(',','.');
	   if (parseFloat(cadena2)>100) return false
		}
   
   if (validacion=="porcentaje")
	   if (cadena>100) return false
   return true;
}
function buscarMensaje (validacion)
{
  var res="";
  if (validacion=="caracteresConEspacio")
	res='El campo solo permite caracteres ';
  else if (validacion=="caracteres")
	res='El campo solo permite caracteres ';
  else if (validacion=="caracteresSinTildes")
	res='El campo solo permite caracteres sin tildes ';
  else if (validacion=="caracteresSinTildesConNumeros")
	res='El campo solo permite caracteres y números';
  else if (validacion=="enteros")
	res='El campo solo permite números enteros';
  else if (validacion=="enterosConEspacio")
	res='El campo solo permite números enteros y espacios en blanco ';
  else if (validacion=="decimales")
	res='El campo solo permite números decimales';
  else if (validacion=="decimalesConEspacio")
	res='El campo solo permite números decimales y espacios en blanco';
  else if (validacion=="correo")
	res='El campo solo permite direcciones de correo ';
  else if (validacion=="decimalesPorcentaje")
	res='El campo solo permite valores menores al 100% ';
  else if (validacion=="enterosPorcentaje")
	res='El campo solo permite valores menores al 100% ';

  else
    res='El valor del campo no es válido';
  return res;
}
function validarMensajeDiv (objeto, vacio, validacion)
{
	var valor = objeto.value;
	var res=true;
	if (vacio)
	  res=validarNoVacio (objeto);
	if (res)
	{
	  if(validacion=="cedula"){

		return validarCedulaMensaje(objeto, vacio);
	  }else{
		if (!validarCadena (valor, validacion))
	  {
		var mensaje=buscarMensaje (validacion);
		mostrarMensaje (objeto, mensaje);
		return false;
	  	}
	 }

	  ocultarMensaje (objeto);
	}
	return res;
}
/////////////////////////////////////////////////////////////
function validarMensajeFem (objeto, vacio, validacion)
{
	var valor = objeto.value;
	var res=true;

	if (res)
	{
	  if (!validarCadena (valor, validacion))
	  {
		var mensaje=buscarMensaje (validacion);
		mostrarMensaje (objeto, mensaje);
		return false;
	  }
	  ocultarMensaje (objeto);
	}
	return res;
}
/////////////////////////////////////////////////////////////
function validarCampoAlert (objeto, vacio, validacion, nombre)
{
	var valor = objeto.value;
	if (validacion=="fechaSinHora")
	  return validarFechaAlert(objeto,g_fechaYMD,false,vacio);
	if (validacion=="fechaConHora")
	  return validarFechaAlert(objeto,g_fechaYMD,true,vacio);
	if (validacion=="cedula")
		return validarCedulaAlert(objeto, vacio, nombre);
//alert ('mesg='+valor.length+vacio);
	if (vacio||valor.length>0)
	{ 
      if (vacio)
	    if (valor.length==0)
	    {
	      var mensaje="El campo "+nombre+" no puede estar vacio";
		  alert (mensaje);
		  return false;
	    }
      if (valor==0||valor==0.00){
          //alert('valor mayor que CERO');
          var mensaje="El campo "+nombre+" no puede ser CERO";
		  alert (mensaje);
		  return false;
      }

	  
      if (!validarCadena (valor, validacion))
	  {
	    var mensaje="El valor del campo "+nombre+" es incorrecto";
	    alert (mensaje);
	    return false;
	  }
	}
    return true;
}

function validarPersonaAlert (objeto, vacio)
{
	var valor = objeto.value;
	if(vacio || valor==0)
	{
		var mensaje = "Debe seleccionar una Entidad contratante ó Proveedora.\nClic en buscar";
		alert(mensaje);
		return false;
	}
	return true;
}



function validarCampoAlert2 (objeto, vacio, validacion, nombre)//puede estar vacio
{
	var valor = objeto.value;
	   if (!validarCadena (valor, validacion))
	  {
	    var mensaje="El valor del campo "+nombre+" es incorrecto";
	    alert (mensaje);
	    return false;
	  }

    return true;
}

function validarNumeroIdentificacion (objeto, vacio, tipoDocumento)
{
  if (tipoDocumento=="CEDULA") //Cedula
  {
	if (objeto.value.length!=10)
	{
	  mostrarMensaje (objeto, 'El número de dígitos debe ser de 10');
	  return false;
	}
	else
	  return validarCedulaMensaje(objeto,vacio);
  }
  ocultarMensaje (objeto);
  return true;
}
function validarCampo (objeto, vacio, validacion, nombre)
{
	var valor = objeto.value;
    var mensaje="";
	if (vacio)
	  if (valor.length==0)
	  {
	    mensaje="El campo "+nombre+" no puede estar vacio";
		mostrarMensaje (objeto, mensaje);
		return false;
	  }
    if (!validarCadena (valor, validacion))
	{
	   mensaje="El valor del campo es incorrecto";
	  mostrarMensaje (objeto, mensaje);
	  return false;
	}
	ocultarMensaje (objeto);
    return true;
}
function validarConMensaje (objeto, vacio, validacion, nombre, nombreDiv)
{
	var valor = objeto.value;
	var mensaje="";
	if (vacio)
	  if (valor.length==0)
	    mensaje="El campo "+nombre+" no puede estar vaci\xedo";
	if (validacion!="")
	  if (validacion=="cedula")
	    mensaje=validarCedula (valor);
	  else if (!validarCadena (valor, validacion))
	    mensaje="El valor del campo "+nombre+" no es correcto";
	asignarValorDiv(nombreDiv,mensaje);
	if (mensaje!="")
	  return false;
	ocultarMensaje (objeto);
    return true;
}
function validarNoVacio (objeto)
{
	var valor = objeto.value;
	if (valor.length==0)
	{
	  mostrarMensaje (objeto, "Este campo no puede estar vac\xedo");
	  ////objeto.focus();
	  return false;
	}
	ocultarMensaje (objeto);
	return true;
}
function validarNoVacioAlert (objeto,nombre)
{
	var valor = objeto.value;
	if (valor.length==0)
	{
	  alert ("El campo "+nombre+" no puede estar vac\xedo");
	  ////objeto.focus();
	  return false;
	}
	return true;
}
function validarCorreo (objeto, vacio)
{
	var valor = objeto.value;
	var res=true;
	if (vacio)
	  res=validarNoVacio (objeto);
	if (res)
	{
	  if (!validarCadena (valor, "correo"))
	  {
	    mostrarMensaje (objeto, "El valor ingresado no es un correo");
	    return false;
	  }
	  ocultarMensaje (objeto);
	}
	return res;
}
function validarEntero (objeto,vacio)
{
	var valor = objeto.value;
	var res=true;
	if (vacio)
	  res=validarNoVacio (objeto);
	if (res)
	{
	  if (!validarCadena (valor, "enteros"))
	  {
		mostrarMensaje (objeto, "El valor ingresado no es correcto");
        
		return false;
	  }
	  ocultarMensaje (objeto);
	}
	return res;
}

function validarPorcentaje (objeto,vacio)
{
	var valor = objeto.value;
	var res=true;
	if (vacio)
	  res=validarNoVacio (objeto);
	if (res)
	{
	  if (!validarCadena (valor, "porcentaje"))
	  {
		mostrarMensaje (objeto, "El valor porcentaje debe ser num&eacute;rico y menor a 100");

		return false;
	  }
	  ocultarMensaje (objeto);
	}
	return res;
}

function validarCedulaMensaje (objeto,vacio)
{
	var valor = objeto.value;
	var mensaje="";
	var res=true;
	if (vacio)
	  res=validarNoVacio (objeto);
	if (res)
	{
	  mensaje=validarCedula (valor);
	  if (mensaje!="")
	  {
	    mostrarMensaje (objeto, mensaje);
	    return false;
	  }
	  ocultarMensaje (objeto);
	}
	return res;
}

function validarCedulaAlert (objeto,vacio,nombre)
{
	var valor = objeto.value;
	var mensaje="";
	var res=true;
	if (vacio)
	  res=validarNoVacioAlert (objeto,nombre);
	if (res)
	{
	  mensaje=validarCedula (valor);
	  if (mensaje!="")
	  {
	    alert (mensaje);
	    return false;
	  }
	}
	return res;
}
function mostrarMensaje (objeto, mensaje)
{
  var nombreDiv = "div"+objeto.name+"Error";
  asignarValorDiv(nombreDiv,mensaje);
  Element.show (nombreDiv);
}
function ocultarMensaje (objeto)
{
  var nombreDiv = "div"+objeto.name+"Error";
  asignarValorDiv(nombreDiv,"");
  Element.hide (nombreDiv);
}
function validarContrasena (objeto)
{
  var valor=objeto.value;
  if (valor.length<6)
  {
	  mostrarMensaje (objeto, "La contrase&ntilde;a no tiene la longitud adecuada");
	  return false;
  }
  ocultarMensaje (objeto);
  return true;
}
function validarConfirmacion (objeto, contrasena)
{
  var confirmacion=objeto.value;
  if (contrasena!=confirmacion)
  {
    mostrarMensaje (objeto,"La confirmaci&oacute;n no es igual a la contrase&ntilde;a");
	return false;
  }
  ocultarMensaje (objeto);
  return true;
}
function validarRUC (objeto, obligatorio)
{
  var valor=objeto.value;
  if (obligatorio||valor.length>0)
  {
    if (valor.length!=13)
    {
	  mostrarMensaje (objeto, "El n&uacute;mero de ruc no es valido ");
	  return false;
    }
    var mensaje=validarCedula (objeto.value);
    if (mensaje!="")
    {
	  mostrarMensaje (objeto, mensaje);
	  return false;
    }
  }
  ocultarMensaje (objeto);
  return true;
}
function validarRUCAlert (objeto, obligatorio)
{
  var valor=objeto.value;
  if (obligatorio||valor.length>0)
  {
    if (valor.length!=13)
    {
	  alert("El número de ruc no es valido ");
	  return false;
    }
    var mensaje=validarCedula (objeto.value);
    if (mensaje!="")
    {
	  alert (mensaje);
	  return false;
    }
  }
  return true;
}
function booleanValidarFecha (objeto, formato, conHora, obligatorio)
{
  var valor=objeto.value;
  var ano;
  var mes;
  var dia;
  if (obligatorio||valor.length>0)
  {
	  if (formato=="YMD")
	  {
		ano=valor.substr (0,4);
		mes=valor.substr (5,2)-1;
		dia=valor.substr (8,2);
	  }
	  else if (formato=="DMY")
	  {
		dia=valor.substr (0,2);
		mes=valor.substr (3,2)-1;
	    ano=valor.substr (6,4);
	  }
	  try
	  {
	    var miFecha = new Date(ano,mes,dia);
	    if (ano!=miFecha.getFullYear())
		  return false;
	  }
	  catch(err)
	  {
		  return false;
	  }
  }
  return true;
}
function validarFecha (objeto, formato, conHora, obligatorio)
{
  if (!booleanValidarFecha (objeto, formato, conHora, obligatorio))
  {
	mostrarMensaje (objeto, "Fecha Incorrecta");
	return false;
  }
  ocultarMensaje (objeto);
  return true;
}
function validarFechaAlert (objeto, formato, conHora, obligatorio)
{
  if (!booleanValidarFecha (objeto, formato, conHora, obligatorio))
  {
	alert ("Fecha Incorrecta");
	return false;
  }
  return true;
}
function validarFechaYMD (objeto)
{
  var valor=objeto.value;
  var ano=valor.substr (0,4);
  var mes=valor.substr (5,2)-1;
  var dia=valor.substr (8,2);
  try
  {
	var miFecha = new Date(ano,mes,dia) ;
	if (ano!=miFecha.getFullYear())
	{
	  mostrarMensaje (objeto, "Fecha Incorrecta");
	  return false;
	}
  }
  catch(err)
  {
    mostrarMensaje (objeto, "Fecha Incorrecta");
	return false;
  }
  ocultarMensaje (objeto);
  return true;
}

//////////////////////////////////////////////////////
function validarMensajeDiv2 (objeto, vacio, validacion)
{
	return validarMensajeDiv (objeto, vacio, validacion);

	
}

function validarCampoCero (objeto, vacio, validacion, nombre)
{
	var valor = objeto.value;

	if (vacio||valor.length>0)
	{
      if (validarCadena (valor, validacion))
	  { 
	    if (valor<=0){
            var mensaje="El valor del campo "+nombre+" debe ser mayor a CERO";
            alert (mensaje);
            return false;
        }
	  }
	}
    return true;
}