/*------------------------------------------------------------------------------------------
	Función: validarCampos
	Valida los campos tipo text de un formulario recibido como parámetro para determinar
	si los campos declarados como obligatorios tienen algun valor. Si no es asi, emite
	un mensaje de alerta indicando el campo que no ha sido llenado y retorna false.

	NOTA: Se ha acordado que los campos opcionales empiezan con el caracter "_". 
	Los campos que no cumplan con esta notación se entenderán como OBLIGATORIOS.
------------------------------------------------------------------------------------------*/	
function validarCampos(formu) {
  if (document.images) {
	var texto = "";
    for (i = 0; i < formu.length; i++) {
      var tempobj = formu.elements[i];
	  //Los campos que inician con "_" son campos opcionales
      if (tempobj.name.substring(0,1) != "_") 
	    if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)) 
			texto += "- " + tempobj.id + "\n";
    }
	if (texto.length > 0) {
		alert("Es necesario que ingrese un valor para los siguientes campos: \n\n" + texto);
		return false;
	}			  
  }
  return true;
}

/*------------------------------------------------------------------------------------------
	Función: validarEMail
	Verifica que el valor ingresado en el objeto recibido como parámetro sea una dirección
	de correo electrónico válida. Si no es asi, emite una alerta.
------------------------------------------------------------------------------------------*/
function validarEmail(objeto) {
	var s = objeto.value;
	var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	if (filter.test(s)) return true;
	
	alert("El campo " + objeto.id + " debe contener una dirección de e-mail válida.");
	enfocar(objeto);
	return false;
}

/*------------------------------------------------------------------------------------------
	Función: Confirmar
	Muestra una ventana de confirmación con el mensaje recibido como parámetro y devuelve
	la respuesta del usuario como valor booleano (true = Si, false = no).
------------------------------------------------------------------------------------------*/	
function confirmar(mensaje) {
  return confirm(mensaje);
}

/*------------------------------------------------------------------------------------------
	Función: Enfocar
	Da el enfoque al objeto recibido como parámetro.
------------------------------------------------------------------------------------------*/	
function enfocar(objeto) {
	objeto.focus();
	objeto.select();
}

/*------------------------------------------------------------------------------------------
	Función: obtenerFecha
	Retorna la fecha actual del sistema en el formato 
	"'NombreDia', 'dia' de 'mes' de 'año'"
------------------------------------------------------------------------------------------*/
function obtenerFecha() {
	var meses = ["Enero", 
				 "Febrero",
				 "Marzo",
				 "Abril",
				 "Mayo",
				 "Junio",
				 "Julio",
				 "Agosto",
				 "Septiembre", 
				 "Octubre",
				 "Noviembre",
				 "Diciembre" ];
	var dias = ["Domingo",
				"Lunes",
				"Martes",
				"Mi&eacute;rcoles",
				"Jueves",
				"Viernes",
				"S&aacute;bado"];				
	var fecha = new Date();
	var year = fecha.getYear();
	if (year < 2000)
		year += 1900;

	return dias[fecha.getDay()] + ' ' + fecha.getDate() + ' de ' + meses[fecha.getMonth()] + ' de ' + year;
}

/******************************************************************************************
	Funciones empleadas para el cambio de imágenes (eventos OnMouseOver y OnMouseOut)
******************************************************************************************/

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
