function validaCampoNumerico(formInput,campo,requerido)
{
	var resultado = true;

	if (requerido && !campoRequerido(formInput,campo))
	resultado = false;

 	if (resultado)
 	{
 		if (!validaDigitos(formInput.value))
 		{
 			alert('Por Favor Corrija: "' + campo +'".\n\nSolo se aceptan números.');
			formInput.focus();
			resultado = false;
		}
	}

	return resultado;
}


function validaCheckbox(formInput,campo)
{
	var resultado = false;
    for (i=0, n=formInput.length; i<n; i++)
    {
    	if (formInput[i].checked)
		{
			resultado = true;
		}
    }

	if (!resultado)
	{
	  alert('Por Favor indique: "' + campo +'".');
	}

	return resultado;
}


function validaSelect(formInput,campo)
{
     var resultado = true;
     if ( formInput.selectedIndex == 0 )
     {
           resultado = false;
     }

     if ( !resultado )
     {
          alert('Por Favor indique: "' + campo +'".');
          formInput.focus();
     }
return resultado;
}

function validaEmail(formInput,campo,requerido)
{
     var resultado = true;

     if (requerido && !campoRequerido(formInput,campo))
          resultado = false;

     if (formInput.value!=""){
          if (resultado && ((formInput.value.length < 3) || !validaDireccionEmail(formInput.value)) )
          {
               alert("Por favor introduzca una direccion de correo valida: sunombre@sudominio.com");
               formInput.focus();
               resultado = false;
          }
     }

     return resultado;

}


function validaEntero(formInput,campo,requerido)
{
	var resultado = true;

	if (requerido && !campoRequerido(formInput,campo))
		resultado = false;

 	if (resultado)
 	{
 		var num = parseInt(formInput.value,10);
 		if (isNaN(num))
 		{
 			alert('Por favor introduzca un valor entero para: "' + campo +'".');
			formInput.focus();
			resultado = false;
		}
	}

	return resultado;
}


function validaFecha(formInput,campo,requerido)
{
	var resultado = true;

	if (requerido && !campoRequerido(formInput,campo))
		resultado = false;

 	if (resultado)
 	{
 		var elems = formInput.value.split("/");

 		resultado = (elems.length == 3);

 		if (resultado)
 		{
 			var dia = parseInt(elems[0],10);
                        var mes = parseInt(elems[1],10);
                        var ano = parseInt(elems[2],10);

                        resultado = validaDigitos(elems[0]) && (dia > 0) && (dia < 32) &&
                                    validaDigitos(elems[1]) && (mes > 0) && (mes < 13) &&
                                    validaDigitos(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}

  		if (!resultado)
 		{
 			alert('Por favor ingrese una fecha con el formato DD/MM/AAAA para: "' + campo +'".');
			formInput.focus();
		}
	}

	return resultado;
}


function campoRequerido(formInput,campo)
{
	var resultado = true;
	var texto = trim(formInput.value);

	if (texto == "")
	{
		alert('Por favor indique: "' + campo +'".');
		formInput.value = texto;
		formInput.focus();
		resultado = false;
	}

	return resultado;
}

function campoRequerido2(formInput,campo)
{
	var resultado = true;
	var texto = trim(formInput.value);

     if (texto == "")
	{
		alert('Por favor indique: "' + campo +'".');
		formInput.value = texto;
		resultado = false;
	}

	return resultado;
}

function validaDireccionEmail(email)
{
  var resultado = false;
  var strEmail = new String(email);
  var index = strEmail.indexOf("@",0);
  if (index > 0)
  {
    var pindex = strEmail.indexOf(".",index);
    if ((pindex > index+1) && (strEmail.length > pindex+1))
	resultado = true;
  }
  return resultado;
}



function validaDigitos(str)
{
	return validaInValidoCaracter(str,"0123456789");
}


function validaInValidoCaracter(str,charset)
{
	var resultado = true;

	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			resultado = false;
			break;
		}

	return resultado;
}

function validaRif(formInput,campo)
{
	var resultado = true;

	if (formInput.value=="")
	{
		/*alert('Por favor indique: "' + campo +'".');
		formInput.focus();
		resultado = false;*/
		return resultado;
	}
	else
	{
		cadena=formInput.value;

		if(!(cadena.length==10))
		{
			alert('Corrija: "' + campo +'".');
			formInput.focus();
			resultado = false;
			return resultado;
		}

		if (!(((cadena.charAt(0) >= "a") && (cadena.charAt(0) <= "z")) || ((cadena.charAt(0) >= "A") && (cadena.charAt(0) <= "Z"))))
		{
			alert('Corrija: "' + campo +'".');
			formInput.focus();
			resultado = false;
			return resultado;
		}

		for (i=1; i<cadena.length; i++)
		{
			if (!((cadena.charAt(i) >= "0") && (cadena.charAt(i) <= "9")))
			{
				alert('Corrija: "' + campo +'".');
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
	}

	return resultado;
}



function letras(formInput, campo) {
	var charpos = formInput.value.search("[^A-Za-z- -ñ-Ñ]");
	if(formInput.value.length > 0 &&  charpos >= 0) {
		strError = "Corrija: " + campo +" ya que solo permite letras";
		alert(strError);
		formInput.focus();
		return false;
	} else {
		return true;
	}
}

function login(formInput, campo) {
     var charpos = formInput.value.search("[^A-Za-z]");
     if(formInput.value.length > 0 &&  charpos >= 0) {
          strError = "Corrija: " + campo + "\n\nYa que solo permite letras;\n" +
          		 "sin acentos, espacios en blanco ni caracteres especiales.";
          alert(strError);
          formInput.focus();
          return false;
     } else {
          return true;
     }
}

function letrasycaracteres(formInput, campo) {
	var charpos = formInput.value.search("[^A-Za-z0-9- -,-.-ñ-Ñ]");
	if(formInput.value.length > 0 &&  charpos >= 0) {
		strError = "Corrija: " + campo +" ya que solo permite letras, numeros, comas y puntos";
		alert(strError);
		formInput.focus();
		return false;
	} else {
		return true;
	}
}


function numeros(formInput, campo) {
	var charpos = formInput.value.search("[^0-9- --]");
	if(formInput.value.length > 0 &&  charpos >= 0) {
		strError = "Corrija: " + campo +" ya que solo permite numeros";
		alert(strError);
		formInput.focus();
		return false;
	} else {
		return true;
	}
}

function solonumeros(formInput, campo) {
     var charpos = formInput.value.search("[^0-9]");
     if(formInput.value.length > 0 &&  charpos >= 0) {
          strError = "Corrija: " + campo +" ya que solo permite numeros";
          alert(strError);
          formInput.focus();
          return false;
     } else {
          return true;
     }
}

function dia(formInput,campo)
{
	var resultado = true;

	if (formInput.value!="")
	{
		//que se exactamente de dos caracteres
		cadena=formInput.value;
		if (cadena.length!=2)
		{
			alert("Mal formato del Dia especificado!");
			formInput.focus();
			resultado = false;
			return resultado;
		}
		//que se numerico y que el primero sea entre 0 y 3, y el segundo sea entre 0 y 9
		if (!((cadena.charAt(0) >= "0") && (cadena.charAt(0) <= "3")))
		{
			alert("Dia de Nacimiento incorrecto!");
			formInput.focus();
			resultado = false;
			return resultado;
		}
		if (cadena.charAt(0) == "3")
		{
			if (!((cadena.charAt(1) >= "0") && (cadena.charAt(1) <= "1")))
			{
				alert("Dia de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
		if (cadena.charAt(0) == "2" || cadena.charAt(0) == "1")
		{
			if (!((cadena.charAt(1) >= "0") && (cadena.charAt(1) <= "9")))
			{
				alert("Dia de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
		if (cadena.charAt(0) == "0")
		{
			if (!((cadena.charAt(1) >= "1") && (cadena.charAt(1) <= "9")))
			{
				alert("Dia de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
	}

	return resultado;
}

function mes(formInput,campo)
{
	var resultado = true;

	if(formInput.value!="")
	{
		cadena=formInput.value;
		if (cadena.length!=2)
		{
			alert("Mal formato del Mes especificado!");
			formInput.focus();
			resultado = false;
			return resultado;

		}
		if (!((cadena.charAt(0) >= "0") && (cadena.charAt(0) <= "1")))
		{
			alert("Mes de Nacimiento incorrecto!");
			formInput.focus();
			resultado = false;
			return resultado;
		}
		if (cadena.charAt(0) == "1")
		{
			if (!((cadena.charAt(1) >= "0") && (cadena.charAt(1) <= "2")))
			{
				alert("Mes de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
		else
		{
			if (!((cadena.charAt(1) >= "1") && (cadena.charAt(1) <= "9")))
			{
				alert("Mes de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
	}

	return resultado;
}

function ano(formInput,campo)
{
	var resultado = true;

	if(formInput.value!="")
	{
		cadena=formInput.value;
		if (cadena.length!=4)
		{
			alert("Mal formato del Año especificado!");
			formInput.focus();
			resultado = false;
			return resultado;
		}
		if (!((cadena.charAt(0) >= "1") && (cadena.charAt(0) <= "2")))
		{
			alert("Año de Nacimiento incorrecto!");
			formInput.focus();
			resultado = false;
			return resultado;
		}
		if (cadena.charAt(0) == "1")
		{
			for (i=1; i<cadena.length; i++)
			{
				if (!((cadena.charAt(i) >= "0") && (cadena.charAt(i) <= "9")))
				{
					alert("Año de Nacimiento incorrecto!");
					formInput.focus();
					resultado = false;
					return resultado;
				}
			}
		}
		if (cadena.charAt(0) == "2")
		{
			if (!(cadena.charAt(1) == "0"))
			{
				alert("Año de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
			if (!(cadena.charAt(2) == "0"))
			{
				alert("Año de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
			if (!((cadena.charAt(3) >= "0") && (cadena.charAt(3) <= "6")))
			{
				alert("Año de Nacimiento incorrecto!");
				formInput.focus();
				resultado = false;
				return resultado;
			}
		}
	}

	return resultado;
}

// SOLO NUMEROS
var nav4 = window.Event ? true : false;
function acceptNum(evt)
{
     // NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
     var key = nav4 ? evt.which : evt.keyCode;

     if (!(key <= 13 || (key >= 48 && key <= 57)))
     {
          alert ("Solo se permiten números");
     }
     return (key <= 13 || (key >= 48 && key <= 57));
}

// SOLO LETRAS Y ESPACIO EN BLANCO
function acceptLetras(evt)
{
     // NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
     var key = nav4 ? evt.which : evt.keyCode;

     if (!(key <= 13 || key == 32 || (key >= 65 && key <= 90) || (key >= 97 && key <= 122) || key == 241 || key == 209))
     {
          alert ("No se aceptan números ni caracteres especiales");
     }
     return (key <= 13 || key == 32 || (key >= 65 && key <= 90) || (key >= 97 && key <= 122) || key == 241 || key == 209);
}

// SOLO LETRAS, NUMEROS Y ESPACIO EN BLANCO
function acceptNumLetras(evt)
{
     // NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
     var key = nav4 ? evt.which : evt.keyCode;

     if (!(key <= 13 || key == 32 || (key >= 48 && key <= 57) || (key >= 65 && key <= 90) || (key >= 97 && key <= 122) || key == 241 || key == 209))
     {
          alert ("No se aceptan números ni caracteres especiales");
     }
     return (key <= 13 || key == 32 || (key >= 48 && key <= 57) || (key >= 65 && key <= 90) || (key >= 97 && key <= 122) || key == 241 || key == 209);
}

// CAMBIA CONTENIDO A MAYUSCULAS
function conMayusculas(field) {
     field.value = field.value.toUpperCase()
}

// ELIMINA LOS ESPACIOS EN BLANCO DE LOS ESTREMOS
function trim(cadena)
{
     for(i=0; i<cadena.length; )
     {
          if(cadena.charAt(i)==" ")
               cadena=cadena.substring(i+1, cadena.length);
          else
               break;
     }

     for(i=cadena.length-1; i>=0; i=cadena.length-1)
     {
          if(cadena.charAt(i)==" ")
               cadena=cadena.substring(0,i);
          else
               break;
     }
     
     return cadena;
}

// CALCULAMOS LA EDAD
function calcular_edad(fecha){

    //Calculo la fecha de hoy
    hoy=new Date();

    //calculo la fecha que recibo
    //La descompongo en un array
    var array_fecha = fecha.split("/");
    //si el array no tiene tres partes, la fecha es incorrecta
    if (array_fecha.length!=3)
       return false;

    //compruebo que los ano, mes, dia son correctos
    var ano;
    ano = parseInt(array_fecha[2]);
    if (isNaN(ano))
       return false;

    var mes;
    mes = parseInt(array_fecha[1]);
    if (isNaN(mes))
       return false;

    var dia;
    dia = parseInt(array_fecha[0]);
    if (isNaN(dia))
       return false;


    //Si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
    if (ano<=999) ano +=1900;
    //Si el año de hoy solo tiene 2 cifras hay que cambiarlo a 4
    anohoy = hoy.getYear();
    if (anohoy<=999) anohoy += 1900;

    //Resto los años de las dos fechas
    edad=anohoy - ano - 1; //-1 porque no se si ha cumplido años ya este año

    //Si resto los meses y me da menor que 0 entonces no ha cumplido años. Si da mayor si ha cumplido
    if (hoy.getMonth() - mes < 0) //+ 1 porque los meses empiezan en 0
       return edad;
    if (hoy.getMonth() - mes > 0)
       return edad+1;

    //entonces es que eran iguales. miro los dias
    //si resto los dias y me da menor que 0 entonces no ha cumplido años. Si da mayor o igual si ha cumplido
    if (hoy.getUTCDate() - dia >= 0)
       return edad + 1;

    return edad;
}

// CALCULAMOS LA EDAD
function calcular_meses(fecha){

    //Calculo la fecha de hoy
    hoy=new Date();

    //calculo la fecha que recibo
    //La descompongo en un array
    var array_fecha = fecha.split("/");
    //si el array no tiene tres partes, la fecha es incorrecta
    if (array_fecha.length!=3)
       return false;

    //compruebo que los ano, mes, dia son correctos
    var ano;
    ano = parseInt(array_fecha[2]);
    if (isNaN(ano))
       return false;

    var mes;
    mes = parseInt(array_fecha[1]);
    if (isNaN(mes))
       return false;

    var dia;
    dia = parseInt(array_fecha[0]);
    if (isNaN(dia))
       return false;
    
    // Restamos los meses
    var meses;
    meses = hoy.getMonth() - mes;
    
    // Si resto los meses y me da menor que 0 entonces no ha cumplido años. Si da mayor si ha cumplido
    if (meses < 0) //+ 1 porque los meses empiezan en 0
       return meses + 12;
    if (hoy.getMonth() - mes > 0)
       return meses;

    return meses;
}

function opendtree(titulo,direccion){
     var win = new Window({
          className: "mac_os_x",
          title: titulo,
          top:70,
          left:100,
          width:400,
          height:500,
          resizable: true,
          url: direccion,
          showEffect: Effect.Appear,
          hideEffect: Effect.SwitchOff,
          draggable:true,
          destroyOnClose: true
     })
     win.showCenter();
}

function openventana(titulo,direccion){
     var win = new Window({
          className: "vista",
          title: titulo,
          top:70,
          left:100,
          width:750,
          height:500,
          resizable: true,
          url: direccion,
          showEffect: Effect.Appear,
          hideEffect: Effect.SwitchOff,
          draggable:true,
          destroyOnClose: true
     })
     win.showCenter();
}

// MUESTRA UN ELEMENTO OCULTO
function mostrardiv(div) {
	document.getElementById(div).style.display = "block";
}

// OCULTA UN ELEMENTO OCULT0
function ocultardiv(div) {
     document.getElementById(div).style.display = "none";
}

// HABILITA UN ELEMENTO
function habilitar(caja) {
	document.getElementById(caja).disabled = false;
}

// DESHABILITA UN ELEMENTO
function deshabilitar(caja) {
     document.getElementById(caja).disabled = true;
}

// IMPRIME UN DIV SPECIFICO
function imprirdiv(nombre)
{
     var ficha = document.getElementById(nombre);
     var ventimp = window.open(' ', 'imprirdiv');
     ventimp.document.write( ficha.innerHTML );
     ventimp.document.close();
     ventimp.print( );
     ventimp.close();
}