function ignoraError() { return true; }

function abrirVentana(url,ancho,alto,leftOffset,topOffset) {
/*
Abre una nueva ventana en la que carga 'url' con el tamanyo especificado
por 'ancho' y 'alto' en pixels. Intenta centrarla y luego le aplica el desplazamiento
indicado por 'leftOffset' y 'topOffset'.
La ventana se abre solamente con la barra de titulo y de estado.
Si estos valores hacen que la ventana no quepa en pantalla limita las dimensiones 
al espacio disponible en pantalla.

Se debe incluir dentro del head de las paginas html con 
          <SCRIPT type="text/javascript" src="abrirVentana.js"> </SCRIPT>

  J. Tuya, 23/04/2003
*/

// los estilos de 800x600 de las paginas de Uniovi son demasiado estrechos y en ocasiones causan que el
// navegador abra la barra de scroll horizontal. Por ello en este caso incremento ligeramente el ancho.
if (ancho==800) ancho+=12;

// tamanyo disponible en la pantalla
var maxAlto=screen.availHeight; 
var maxAncho=screen.availWidth;

// posicion de la esquina superior izquierda para que la ventana este centrada.
// Como la division puede dar numeros reales aseguro que son enteros restando del numerador
// el posible resto de la division
var topPosition=((maxAlto-alto)-(maxAlto-alto)%2) / 2;
var leftPosition=((maxAncho-ancho)-(maxAncho-ancho)%2) / 2;

// corrige la posicion de la esquina superior izquierda y el tamanyo de la ventana
// si esta no cabe en la pantalla
if (alto>maxAlto) {alto=maxAlto; topPosition=0;}
if (ancho>maxAncho) {ancho=maxAncho; leftPosition=0;}

// desplaza la esquina superior izquierda de acuerdo con los offset especificados evitando que la
// ventana se salga de la pantalla
topPosition+=topOffset;
if (topPosition<0) topPosition=0;
if ((topPosition+alto)>maxAlto) topPosition-=topPosition+alto-maxAlto;
leftPosition+=leftOffset;
if (leftPosition<0) leftPosition=0;
if ((leftPosition+ancho)>maxAncho) leftPosition-=leftPosition+ancho-maxAncho;

// abre una nueva ventana, quitando las barras de menu, herramientas y urls
// Como los navegadores se comportan de formas diferentes (Netscape tiene la propiedad outherWidth y Explorer no)
// en cada caso se abre de forma diferente (extraido de http://www.webdevtips.com/webdevtips/codegen/openwin.shtml)
var otrasOpciones = 
    ', top=' + topPosition + ', left=' + leftPosition +
    ', status=yes, toolbar=no, menubar=no, location=no, directories=no '+
    ', resizable=yes, scrollbars=yes, titlebar=yes, copyhistory=no ';
var navegador=navigator.appName;
var versionNavegador=navigator.appVersion;
//alert(navegador+' '+versionNavegador);

if (navegador=='Netscape' && parseInt(versionNavegador)<=4) {
  // en netscape 4 hay problemas adicionales, no asigna bien el tamanyo y posicion, y elimina la barra
  // de status. Por ello en este caso se abre la url en la misma ventana del navegador sin quitar decoraciones
  site=window.open(url, "_blank" )
  }
else if (window.outerWidth ){
  site=window.open(url, "_blank", 'outerHeight=' + alto + ', outerWidth=' + ancho + otrasOpciones);
  var Opera = (navigator.userAgent.indexOf('Opera') != -1);
  if(Opera){
    site.resizeTo(ancho,alto);
    site.moveTo(0,0);
    }
 }
else {
  // por si falla el resize abro primero con un tamanyo menor aproximadamente adecuado
  var altoReducido=alto-10-22-22; //quito tamanyo de los bordes de la ventana, titulo y estado 
  var anchoReducido=ancho-10  // quito tamanyo de los bordes de la ventana
  var site=window.open(url, "_blank", ' height=' + altoReducido + ', width=' + anchoReducido + otrasOpciones);
  // no obstante el resize puede fallar si la ventana no abre inmediatamente por ejemplo en
  // espera de un certificado, por ello a partir de aqui ignora errores
  window.onerror=ignoraError;
  site.resizeTo(ancho,alto);
  window.onerror=null;
  }

}
