browser = navigator.appName;
	ie = "Microsoft Internet Explorer";
	ns = "Netscape";
	os = navigator.platform;
	mac = 'MacPPC'
	
function popup(url, nombre, otros) {
	window.open(url, nombre, otros);
}

function cambiarClase(src, cls) {
	src.className = cls;
	src.style.cursor = (browser==ie? 'hand' : 'pointer');
}

function irA(str) {
	location = str;
}

function abrir(str) {
	window.open(str);
}

function esMail( sCorreo )  {
  var Posicion = sCorreo.indexOf('@')
  var Periodo = sCorreo.lastIndexOf('.')
  var Espacio = sCorreo.indexOf(' ')
  var Longitud = sCorreo.length - 1   // Arreglo desde 0 hasta length-1
  var NoValidos = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // Caracteres no válidos
  var Validos = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // Caracteres válidos
  var Final = /\.[a-zA-Z]{2,3}$/; // Final del Correo
  if ((Posicion < 3) || // El número de caracteres antes del signo @ debe ser mayor a 2
  (Periodo <= Posicion+1) || // Debe existir al menos un caracter válido entre la '@' y el '.'
  (Periodo == Longitud) || // Debe existir al menos un caracter válido después del '.'
  (Espacio != -1) || // No son permitidos los espacios en blanco
  (NoValidos.test(sCorreo)) || // No puede contener caracteres no válidos
  (!Validos.test(sCorreo)) || // Debe contener caracteres válidos
  (sCorreo.search(Final) == -1))  // Chequea el final del Correo (.com, .net, etc)
  {  // Si al menos una de las condiciones anteriores se cumplen
      return false;
  }
   return true;
}

function esVacio(s)
{
   return ((s == null) || (s.length == 0))
}

function quitarEspacios(Campo) {
	var char0 = Campo.value.charAt(0);
	while(char0==" ") {
		Campo.value = Campo.value.substring(1,Campo.value.length);
		char0 = Campo.value.charAt(0);
	}
	var charFin = Campo.value.charAt(Campo.value.length-1);
	while(charFin==" ") {
		Campo.value = Campo.value.substring(0,Campo.value.length-1);
		charFin = Campo.value.charAt(Campo.value.length-1);
	}
	
}

// VALIDACION DE FORMULARIOS
function validarCampoTexto(Campo, Mensaje) {
	var char0 = Campo.value.charAt(0);
	while(char0==" ") {
		Campo.value = Campo.value.substring(1,Campo.value.length);
		char0 = Campo.value.charAt(0);
	}
	var charFin = Campo.value.charAt(Campo.value.length-1);
	while(charFin==" ") {
		Campo.value = Campo.value.substring(0,Campo.value.length-1);
		charFin = Campo.value.charAt(Campo.value.length-1);
	}

	if (esVacio(Campo.value)) {
            alert('\nLa informacion suministrada para ' + Mensaje + ' no es válida.' + '\n\nPor favor corrija la información.');
            Campo.focus();
    }
	return true;
}

function ValidarCampoTextoNumerico(Campo, Mensaje) {
	if(!ValidarCampoTexto(Campo, Mensaje)) return false;
	else {
		if (isNaN(Campo.value) || parseInt(Campo.value) <= 0)
		{
			alert('El valor de ' + Mensaje + ' debe ser numérico entero positivo.');
			Campo.focus();
			return false;
		}		
	}
	return true
}


// VALIDACION PARTICULAR DE FORMULARIOS
function valLogin() {

	var user = document.frmLogin.user;
	var clave = document.frmLogin.clave;
	var accion = document.frmLogin.accion;
	
		if (user.value == "") {
		alert("Por favor ingrese su nombre de usuario");
		user.focus();
		return false;
	}
	
	if (clave.value == "") {
		alert("Por favor ingrese su contraseña de acceso");
		clave.focus();
		return false;
	}
	
	document.frmLogin.submit();
	
}

function SiEsUnaFecha(dia, mes, anio) {
	  // Los tres valores vacíos
	  if (dia.value == "" && mes.value == "" && anio.value == "") {
		  alert("Usted no ha seleccionado una fecha");  
		  dia.focus();
		  return false;
	  }
	  // Alguno de los tres valores vacíos
	  if (dia.value == "" || mes.value == "" || anio.value == "") {
		  alert("Fecha no válida");
		  dia.focus();
		  return false;
	  }
	  // Meses de 30 días
	  if (mes.value == 4 || mes.value == 6 || mes.value == 9 || mes.value == 11) {
		if (dia.value > 30) {
		  alert("Fecha no válida:\nEl mes seleccionado no tiene más de 30 días.");
		  dia.focus();
		  return false;
		}
	  } 
	  // Asuntos de Febrero
	  if (mes.value == 2) {
		var res = anio.value % 4;
		if (dia.value == 29 && res != 0) {
		  alert("Fecha no válida:\nFebrero no tiene 29 días en el año seleccionado.");
		  dia.focus();
		  return false;
		} else if (dia.value > 29) {
		  alert("Error:\nFecha no válida.");
		  dia.focus();
		  return false;
		}
	  }
	  return true;
}

function valImagen(archivo) {
	arr = archivo.value.split(".");
	var cont = arr.length - 1;
	ext = arr[cont];
	var flag = 0;
	if (ext == "gif" || ext == "GIF")
		flag = 1;
	else if (ext == "jpg" || ext == "JPG")
		flag = 1;
	else if (ext == "png" || ext == "PNG")
		flag = 1;
	
	if (flag == 0) {
		alert("Tipo de archivo no válido.\nPor favor ingrese una imagen en formato GIF, JPG o PNG.");
		return false;
	} 
	return true;
}

var ventanaCalendario=false

function muestraCalendario(raiz,formulario_destino,campo_destino,mes_destino,ano_destino){
	//funcion para abrir una ventana con un calendario.
	//Se deben indicar los datos del formulario y campos que se desean editar con el calendario, es decir, los campos donde va la fecha.
	if (typeof ventanaCalendario.document == "object") {
		ventanaCalendario.close()
	}
	ventanaCalendario = window.open("calendario/index.php?formulario=" + formulario_destino + "&nomcampo=" + campo_destino,"calendario","width=300,height=300,left=100,top=100,scrollbars=no,menubars=no,statusbar=NO,status=NO,resizable=YES,location=NO")
}