//@JScript V.1. Hora Mundial by clickmedia - www.click-media.com
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Last Upd: 11/12/00.

//Valores de navegador
ie = (document.all)?1:0;
n = (document.layers)?1:0;

if (n){
window.captureEvents(Event.RESIZE);
window.onresize = ResizeIt;
}

function ResizeIt()
{
location.reload();
}


//Funcion para Mostrar u Ocultar Las Capas Correspondientes
function Mostrarhora(Z)
{
 if(ie){
 ObjLayer = eval('Z'+Z+'.style');
 }

 if(n){
 ObjLayer = eval('document.Z'+Z);
 }

ObjLayer.visibility = "visible";
}

function Ocultarhora(Z)
{
 if(ie){
 ObjLayer = eval('Z'+Z+'.style');
 }

 if(n){
 ObjLayer = eval('document.Z'+Z);
 }



ObjLayer.visibility = "hidden";
}


//Inicializamos las variables GMT

Ahora = new Date()
AhoraH = Ahora.getHours()
AhoraM = Ahora.getMinutes()
AhoraDifGMT = Ahora.getTimezoneOffset();


function ConvHorMin(Oper,Minutos)
{
 Hora = 0
 while(Minutos >= 60)
 {
  Hora = Hora+1;
  Minutos = Minutos - 60;
 }

 if(Hora<10)
 {
 Hora = '0'+Hora;
 }

 if(Minutos<10)
 {
 Minutos = '0'+Minutos;
 }


this.horas = Hora;
this.minutos = Minutos;
this.diferencia = 'GMT '+Oper+Hora+':'+Minutos;
}

function SumaHorMin(HoraActual, MinutosActual, Operacion, MinutosSuma)
{
Dia = "Día Actual";
HAct = HoraActual;
MAct = MinutosActual;
MinutosSuma = MinutosSuma;
Oper = Operacion;

MinAct = (HAct*60)+MAct; //Secuencia Horaria Base en Minutos
NewMin = eval(MinAct+Oper+MinutosSuma); //Secuencia Base +o-Minutos Añadidos

 //Si el total de minutos es mayor de un dia lo restamos del total y establecemos el valor dia.
 if(NewMin >= 1440)
 {
 NewMin = NewMin - 1440;
 Dia = "Día siguiente"
 }

 //Si el resultado es negativo, es decir restamos más Horas de las que lleva el día pasamos a dia anterior y el valor será un dia desde 1440 (24hrs) menos lo que nos queda.
 if(NewMin < 0){
 Dia = "Día anterior"
 NewMin = 1440-(MinutosSuma-MinAct); 
 }

 //Inicializamos Horas a cero. Por cada 60 Min añadimos una hora.
 //Lo que quede en NewMin son los minutos sueltos.
 Horas = 0 
 while(NewMin >= 60)
  {
  NewMin = NewMin-60;
  Horas = Horas + 1;
  }

 if(Horas == 24)
 {
 Horas = 0;
 }
if(Horas <10){Horas = '0'+Horas}
if(NewMin <10){NewMin = '0'+NewMin}
this.hora = Horas;//Objeto.hora es la hora.
this.minutos = NewMin;//Objeto minutos es el minuto.
this.dia = Dia;//El valor siguiente o anterior
this.time = this.hora+':'+this.minutos
if(this.dia != "Día actual"){this.time = this.time+' del '+this.dia}

}




//Funcion Constructora de los datos de cada zona
function Zona(DesZona, DifOp, DifZona)
{
this.descripcion = DesZona;
this.diferencia = DifZona;
Diferencias = eval(AhoraDifGMT+DifOp+DifZona);
Operacion = "+"

 if(Diferencias <0){
 Operacion = "-" 
 Diferencias = Math.abs(Diferencias);
 }


Actuales = new SumaHorMin(AhoraH, AhoraM, Operacion, Diferencias)
this.time = Actuales.time;
this.hora = Actuales.hora;
this.minutos = Actuales.minuto;
this.dia = Actuales.dia;
GMTText = new ConvHorMin(DifOp, DifZona);
this.diferencia = GMTText.diferencia;
}

function TimeActual(DifZona)
{
 this.diferencia = DifZona;
 EntDifZona = Math.abs(DifZona);
 Operacion = "+";

 if(DifZona <0){
 Operacion = "-";
 }
 
Diferencias = eval(AhoraDifGMT+Operacion+EntDifZona);
if(Diferencias <0){
 Operacion = "-" 
 Diferencias = Math.abs(Diferencias);
 }

Actuales = new SumaHorMin(AhoraH, AhoraM, Operacion, Diferencias)
this.time = Actuales.time;


}


function HoraActual()
{
valor = document.Hora.Ciudad.value;
valor = document.Hora.Ciudad.options[document.Hora.Ciudad.selectedIndex].value;
Time = new TimeActual(valor);
document.Hora.Actual.value = Time.time;
}