var IE = document.all?true:false
var Opera = (navigator.userAgent.indexOf('Opera') != -1);
var navegador=navigator.appName;
var versionNavegador=navigator.appVersion;

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 ';

// 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);
  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;
  }

}
// ========================================================================================== //
// ========================================================================================== //
// ========================================================================================== //
function AbrirPop (url, ancho, alto) {
/*	Funcion que abre una ventana estilo PopUp simple.*/
/*  Javier Perez Arenal - 24/02/2005 */

// Control de tamaño... hay establecidos limites para ambos ejes.
if (ancho > 600 || ancho==0){ancho=600}
if (alto > 400 || alto==0){alto=400}

// Ahora se forma la cadena de opciones para invocar wiwndow.open...
// En principio se va a ignorar la posición en la que sale la ventana, dejando
// que sea el Navegador el que decida donde ubicarla.
// ',top=' + poY + ',left=' + poX + 
var opciones = ',resizable=no,scrollbars=,menubar=no,toolbar=no,status=no,location=no';
// alert ('la orden es <' + url + ',' + 'Informaci&oacute;n' + ',' + opciones + '>')
// alert(navegador+':'+versionNavegador);

if (window.outerWidth ) {
	var PopWindow=window.open(url,'_blank', 'outerHeight=' + alto + ', outerWidth=' + ancho + opciones);
	if (PopWindow == null){
		alert ("Debe permitir las ventanas emergentes para este sitio.\nDe otra forma perderá ciertas funcionalidades");
	}
}
else {
	var PopWindow=window.open(url, '_blank', ' height=' + alto + ', width=' + ancho + opciones);
	// por si falla el resize, se pone una funcion de control de errores trivial.
	if (PopWindow == null){
		alert ("Debe permitir las ventanas emergentes para este sitio.\nDe otra forma perderá ciertas funcionalidades");
	}
	else
	{
	  	window.onerror=ignoraError;
  		PopWindow.resizeTo(ancho,alto);
	  	window.onerror=null;
	}
}

if (Opera && PopWindow!=null) {
	PopWindow.resizeTo(ancho,alto);
	PopWindow.moveTo(0,0);
}

return true
}