// --- CAJA DE MENSAJE -----------------------------------------
// Muestra un alert con un mensaje de texto.
// Se le pasa una fecha en una cadena de texto.
	function cajaMensaje (texto) {alert('MENSAJE: ' + texto);}
// --- FUNCION ABRE UNA VENTANA ---------------------------------------------------
// Sele pasa la direccion del contenido de la ventana, el alto y el ancho.
// Abre una venta de esas dimensiones y con el documento que se le haya pasado.
	function miVentana(url,nombre,ancho,alto,barra,x,y) {window.open(url,nombre,'scrollbar=no,width=' + ancho + ',height=' + alto + ',status=no,menubar=no,scrollbars=' + barra + ',rezisable=no,top=' + x + ',left=' + y);}
// --- FUNCION ABRE UNA VENTANA ---------------------------------------------------
// Se le pasa la ruta de una imagen
// Llama a una página para calcular el tamaño de la foto y mostrarla
	function ampliarFoto(source){window.open('../util/visor2.php?foto='+source,'show_image','width=225,height=25,top=50,left=50,menubar=no,status=yes,scrollbars=no,rezisable=no');}	
// --- FUNCION CAMBIA LA CLASE (CSS) ----------------------------------------------
// Se le pasa el id y la clase que se aplica
	function cambiaClase(id,miClase) {id.className=miClase;}
// --- FUNCION CAMBIA TAMAÑO IMAGEN -----------------------------------------------
// Se le pasa el tope de Ancho, el ancho de la foto, el alto y la imagen (obj).
	function tamanoFoto(topeAncho, ancho, alto, imagen) {
		if (ancho>topeAncho) {
			miAncho=topeAncho;
			miAlto=Math.round((alto*topeAncho)/ancho);
			imagen.width=miAncho;
			imagen.height=miAlto;
		}
	}
// --- FUNCION MODIFICAR VALOR ---------------------------------------------------
// Función que incrementa o decrementa el valor dado.
// Se le pasa un valor y la acción
	function modificarValor(accion, valor) {
		if (accion=='+') return (parseInt(valor)+1);
		else  if (parseInt(valor)>0) return (parseInt(valor)-1);
			  else return (0);
	}
// --- FUNCION ESCRIBE EN UNA CAPA -----------------------------------------------
	function miInnerHTML (miCapa, texto) {
		document.getElementById(miCapa).innerHTML=texto;
	}
// --- FUNCION DIA DE LA SEMANA --------------------------------------------------
function diaSemana(fecha, miCapa, p1, p2) {
	var weekday = new Array(6);
	auxFecha = new Date(fecha);
	weekday[0]="Domingo";
	weekday[1]="Lunes";
	weekday[2]="Martes";
	weekday[3]="Miércoles";
	weekday[4]="Jueves";
	weekday[5]="Viernes";
	weekday[6]="Sábado";
	miInnerHTML (miCapa, p1 + weekday[auxFecha.getDay()] + p2);
}
// --- FUNCION CERRAR Y ACTUALIZAR
	function cerrarYactualizar() {
		// Obtengo el numero de argumentos pasados
		ncampos=cerrarYactualizar.arguments.length;
		// Guardo la ruta de la pagina padre
		auxUrl=window.opener.location.href;
		// Guardo el parametro 1 que nos dice si cerramos o no al actualizar la ventana
		cerrar=cerrarYactualizar.arguments[0];
		// Miro si esta la interrogacion pasada ya
		if(buscarCadena(auxUrl, '?')==-1) {
			// Si hay dos campos es que le hemos pasado algun parametro y concatenamos
			// la ruta de la pagina padre
			if (ncampos==2) auxUrl+='?' + cerrarYactualizar.arguments[1];
		}
		// Cargo la pagina en la ventana padre
		window.opener.location.href = auxUrl;
		if (window.opener.progressWindow) window.opener.progressWindow.close()
		// Cierro la ventana si le he pasado 1 como primer parametro
		if (cerrar==1) window.close();
	}
// --- FUNCION MI FILTRO
// Lanza el filtro en las pantallas donde hay listas de registros.
// Le pasamos la cadena donde lo mandamos.
	function miFiltroFuncion(valor, cadena) {
		if (valor!='nada') self.location.href=cadena;
	}
// --- FUNCION REFRESCAR
// Refresca una página
// Le pasamos la página que es una variable arriba inicializada
	function refrescar(cadena) {
		window.location.reload(false);
	}
// --- FUNCION BUSCAR CADENA
// Busca una cadena
// Le pasamos una cadena y la cadena a buscar
	function buscarCadena(cadena, cadenaBuscada) {
		return(cadena.indexOf(cadenaBuscada));
	}
// --- CARGO EN VENTANA PADRE UNA PAGINA
// Cargo en la ventana padre una pagina
	function cargaPadre(auxUrl) {
		window.opener.location.href = auxUrl;
	}
// --- DEVUELVO VALORES A VENTANA PADRE (NOMBRE Y ID)
// Devuelvo valores a dos campos de un formulario de una pagina padre
   	function devolver(nombre, codigo, formulario, cmpNombre, cmpCodigo) {
		eval('window.opener.document.'+formulario+'.'+cmpNombre+'.value=\''+nombre+'\'');
		eval('window.opener.document.'+formulario+'.'+cmpCodigo+'.value='+codigo);
		window.close();
	}	

// --- DEVUELVO VALORES A VENTANA PADRE (NOMBRE Y ID)
// Devuelvo valores a dos campos de un formulario de una pagina padre
   	function devolverAjax(nombre, codigo, formulario, cmpNombre, cmpCodigo, obj) {
		eval('document.'+formulario+'.'+cmpNombre+'.value=\''+nombre+'\'');
		eval('document.'+formulario+'.'+cmpCodigo+'.value='+codigo);
		miInnerHTML(obj, '');
	}	

function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }


// --- COMPRUEBO QUE UN DATO SEA NUMERICO
// Compruebo que un dato sea numerico
	function IsNum( numstr ) {
	// Return immediately if an invalid value was passed in
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")
	return false;
	var isValid = true;
	var decCount = 0; // number of decimal points in the string
	// convert to a string for performing string comparisons.
	numstr += "";
	// Loop through string and test each character. If any
	// character is not a number, return a false result.
	// Include special cases for negative numbers (first char == '-')
	// and a single decimal point (any one char in string == '.').
	for (i = 0; i < numstr.length; i++) {
	// track number of decimal points
	if (numstr.charAt(i) == ".")
	decCount++;
	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") ||
	(numstr.charAt(i) == "-") || (numstr.charAt(i) == "."))) {
	isValid = false;
	break;
	} else if ((numstr.charAt(i) == "-" && i != 0) ||
	(numstr.charAt(i) == "." && numstr.length == 1) ||
	(numstr.charAt(i) == "." && decCount > 1)) {
	isValid = false;
	break;
	}
	//if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9")) ||
	} // END for
	
	return isValid;
	} // end IsNum
	function prepararCapaAjax(capa, objeto, ancho, alto) {
		miCapa=document.getElementById(capa);
		miCampo=document.getElementById(objeto);
		posx=findPosX(miCampo);
		posy=findPosY(miCampo);
		miCapa.style.left=posx + "px";
		miCapa.style.top=posy + "px";
		miCapa.style.width=ancho + "px";
		miCapa.style.width=alto + "px";
		miCapa.style.overflow="visible";
		miCapa.style.visibility="visible";
	}
	
