//Copyright - 2000 - Alfredo J G A Borba. Todos os Direitos Reservados


//Define Data Atual
function DefineData(){
	var hoje=new Date()
	document.horarios.dia.selectedIndex = hoje.getDate()-1
	document.horarios.mes.selectedIndex = hoje.getMonth()
	document.horarios.ano.value = hoje.getFullYear()
}
//Fim de Define Data Atual


//Altera Variáveis
var fusolocal=""
var fuso1=""
var fuso2=""
var fuso3=""
var fuso4=""
var fuso5=""
var textdst1=""
var textdst2=""
var textdst3=""
var textdst4=""
var textdst5=""
var textlocal, text1, text2, text3, text4, text5

function Fusos(opc){	
	switch (opc) {
		case 0 :
			fusolocal = parseFloat(document.horarios.cidadelocal.options[document.horarios.cidadelocal.selectedIndex].value);
			textlocal=(Math.abs(fusolocal/60)<=1)? " hora" : " horas";
			document.horarios.fusolocal.value=((fusolocal>=0)? "UTC+" : "UTC")+(fusolocal/60)+textlocal;
			if (isNaN(fusolocal)){
				fusolocal=""
				document.horarios.fusolocal.value=""
			}
			document.horarios.dstlocal.checked=false
			Horario()
		break;
		case 1 :
			fuso1 = parseFloat(document.horarios.cidade1.options[document.horarios.cidade1.selectedIndex].value);
			text1=(Math.abs(fuso1/60)<=1)? " hora" : " horas";
			document.horarios.fuso1.value=((fuso1>=0)? "UTC+" : "UTC")+(fuso1/60)+text1;		
			if (isNaN(fuso1)){
				fuso1=2000
				document.horarios.fuso1.value=""
			}		
			document.horarios.dst1.checked=false
			textdst1=""
			Horario()
		break;
		case 2 :
			fuso2 = parseFloat(document.horarios.cidade2.options[document.horarios.cidade2.selectedIndex].value);
			text2=(Math.abs(fuso2/60)<=1)? " hora" : " horas";
			document.horarios.fuso2.value=((fuso2>=0)? "UTC+" : "UTC")+(fuso2/60)+text2;
			if (isNaN(fuso2)){
				fuso2=2000
				document.horarios.fuso2.value=""
			}		
			document.horarios.dst2.checked=false
			textdst2=""
			Horario()
		break;
		case 3 :
			fuso3 = parseFloat(document.horarios.cidade3.options[document.horarios.cidade3.selectedIndex].value);
			text3=(Math.abs(fuso3/60)<=1)? " hora" : " horas";
			document.horarios.fuso3.value=((fuso3>=0)? "UTC+" : "UTC")+(fuso3/60)+text3;
			if (isNaN(fuso3)){
				fuso3=2000
				document.horarios.fuso3.value=""
			}		
			document.horarios.dst3.checked=false
			textdst3=""
			Horario()
		break;
		case 4 :
			fuso4 = parseFloat(document.horarios.cidade4.options[document.horarios.cidade4.selectedIndex].value);
			text4=(Math.abs(fuso4/60)<=1)? " hora" : " horas";
			document.horarios.fuso4.value=((fuso4>=0)? "UTC+" : "UTC")+(fuso4/60)+text4;
			if (isNaN(fuso4)){
				fuso4=2000
				document.horarios.fuso4.value=""
			}
			document.horarios.dst4.checked=false
			textdst4=""
			Horario()
		break;
		case 5 :
			fuso5 = parseFloat(document.horarios.cidade5.options[document.horarios.cidade5.selectedIndex].value);
			text5=(Math.abs(fuso5/60)<=1)? " hora" : " horas";
			document.horarios.fuso5.value=((fuso5>=0)? "UTC+" : "UTC")+(fuso5/60)+text5;
			if (isNaN(fuso5)){
				fuso5=2000
				document.horarios.fuso5.value=""
			}
			document.horarios.dst5.checked=false
			textdst5=""
			Horario()
		break;
	}
}
//Fim de Altera Variáveis


//Calcula Horários
function Iniciar(){
	fusolocal=parseFloat(document.horarios.cidadelocal.options[document.horarios.cidadelocal.selectedIndex].value);
	fuso1=parseFloat(document.horarios.cidade1.options[document.horarios.cidade1.selectedIndex].value);
	fuso2=parseFloat(document.horarios.cidade2.options[document.horarios.cidade2.selectedIndex].value);
	fuso3=parseFloat(document.horarios.cidade3.options[document.horarios.cidade3.selectedIndex].value);
	fuso4=parseFloat(document.horarios.cidade4.options[document.horarios.cidade4.selectedIndex].value);
	fuso5=parseFloat(document.horarios.cidade5.options[document.horarios.cidade5.selectedIndex].value);

	if (document.horarios.dstlocal.checked==true) {fusolocal+=60;};
	if (document.horarios.dst1.checked==true) {fuso1+=60; textdst1="* "};
	if (document.horarios.dst2.checked==true) {fuso2+=60; textdst2="* "};
	if (document.horarios.dst3.checked==true) {fuso3+=60; textdst3="* "};
	if (document.horarios.dst4.checked==true) {fuso4+=60; textdst4="* "};
	if (document.horarios.dst5.checked==true) {fuso5+=60; textdst5="* "};

	textlocal=(Math.abs(fusolocal/60)<=1)? " hora" : " horas";
	text1=(Math.abs(fuso1/60)<=1)? " hora" : " horas";
	text2=(Math.abs(fuso2/60)<=1)? " hora" : " horas";
	text3=(Math.abs(fuso3/60)<=1)? " hora" : " horas";
	text4=(Math.abs(fuso4/60)<=1)? " hora" : " horas";
	text5=(Math.abs(fuso5/60)<=1)? " hora" : " horas";
	
	document.horarios.fusolocal.value=((fusolocal>=0)? "UTC+" : "UTC")+(fusolocal/60)+textlocal;
	document.horarios.fuso1.value=((fuso1>=0)? "UTC+" : "UTC")+(fuso1/60)+text1;
	document.horarios.fuso2.value=((fuso2>=0)? "UTC+" : "UTC")+(fuso2/60)+text2;
	document.horarios.fuso3.value=((fuso3>=0)? "UTC+" : "UTC")+(fuso3/60)+text3;
	document.horarios.fuso4.value=((fuso4>=0)? "UTC+" : "UTC")+(fuso4/60)+text4;
	document.horarios.fuso5.value=((fuso5>=0)? "UTC+" : "UTC")+(fuso5/60)+text5;
	
	if (isNaN(fusolocal)){
		fusolocal=""
		document.horarios.fusolocal.value=""
	}
	if (isNaN(fuso1)){
		fuso1=2000
		document.horarios.fuso1.value=""
	}
	if (isNaN(fuso2)){
		fuso2=2000
		document.horarios.fuso2.value=""
	}
	if (isNaN(fuso3)){
		fuso3=2000
		document.horarios.fuso3.value=""
	}
	if (isNaN(fuso4)){
		fuso4=2000
		document.horarios.fuso4.value=""
	}
	if (isNaN(fuso5)){
		fuso5=2000
		document.horarios.fuso5.value=""
	}
	
	Horario()
}


function Horario(){
	var modtxt1 = ""
	var modtxt2 = ""
	var modtxt3 = ""
	var modtxt4 = ""
	var modtxt5 = ""
	var dia = document.horarios.dia.options[document.horarios.dia.selectedIndex].value
	var mes = document.horarios.mes.options[document.horarios.mes.selectedIndex].value
	var ano = document.horarios.ano.value
	var hr = document.horarios.hora.options[document.horarios.hora.selectedIndex].value
	var minut = document.horarios.minut.options[document.horarios.minut.selectedIndex].value
	var dtValida=ValidaData(dia, mes, ano)

   var dtlocal = new Date(ano, mes, dia, hr, minut, 0);
   
   var tempo1 = dtlocal.getTime()+((fuso1-fusolocal)*60000);
   var tempo2 = dtlocal.getTime()+((fuso2-fusolocal)*60000);
   var tempo3 = dtlocal.getTime()+((fuso3-fusolocal)*60000);
   var tempo4 = dtlocal.getTime()+((fuso4-fusolocal)*60000);
   var tempo5 = dtlocal.getTime()+((fuso5-fusolocal)*60000);

   var dt1 = new Date(tempo1);
   var dt2 = new Date(tempo2);
   var dt3 = new Date(tempo3);
   var dt4 = new Date(tempo4);
   var dt5 = new Date(tempo5);
   
   var horaslocal = dtlocal.getHours();
   var horas1 = dt1.getHours();
   var horas2 = dt2.getHours();
   var horas3 = dt3.getHours();
   var horas4 = dt4.getHours();
   var horas5 = dt5.getHours();
   
   if (document.horarios.opcao.value==2){
	   horas1 = ((horas1 > 12) ? horas1 - 12 : horas1);
	   horas2 = ((horas2 > 12) ? horas2 - 12 : horas2);
	   horas3 = ((horas3 > 12) ? horas3 - 12 : horas3);
	   horas4 = ((horas4 > 12) ? horas4 - 12 : horas4);
	   horas5 = ((horas5 > 12) ? horas5 - 12 : horas5);
	   
	   modtxt1 = (dt1.getHours() >= 12) ? " P.M." : " A.M.";
	   modtxt2 = (dt2.getHours() >= 12) ? " P.M." : " A.M.";
	   modtxt3 = (dt3.getHours() >= 12) ? " P.M." : " A.M.";
	   modtxt4 = (dt4.getHours() >= 12) ? " P.M." : " A.M.";
	   modtxt5 = (dt5.getHours() >= 12) ? " P.M." : " A.M.";
   }
   
   var min1 = ((dt1.getMinutes() < 10) ? ":0" : ":") + dt1.getMinutes();
   var min2 = ((dt2.getMinutes() < 10) ? ":0" : ":") + dt2.getMinutes();
   var min3 = ((dt3.getMinutes() < 10) ? ":0" : ":") + dt3.getMinutes();
   var min4 = ((dt4.getMinutes() < 10) ? ":0" : ":") + dt4.getMinutes();
   var min5 = ((dt5.getMinutes() < 10) ? ":0" : ":") + dt5.getMinutes();
   
   var horario1=(horas1 + min1);
   var horario2=(horas2 + min2);
   var horario3=(horas3 + min3);
   var horario4=(horas4 + min4);
   var horario5=(horas5 + min5);

   var dat1="de "+dt1.getDate()+"/"+Data('mes', dt1.getDate(), dt1.getMonth()+1, dt1.getFullYear(), 0, 0, 0)+"/"+dt1.getFullYear()
   var dat2="de "+dt2.getDate()+"/"+Data('mes', dt2.getDate(), dt2.getMonth()+1, dt2.getFullYear(), 0, 0, 0)+"/"+dt2.getFullYear()
   var dat3="de "+dt3.getDate()+"/"+Data('mes', dt3.getDate(), dt3.getMonth()+1, dt3.getFullYear(), 0, 0, 0)+"/"+dt3.getFullYear()
   var dat4="de "+dt4.getDate()+"/"+Data('mes', dt4.getDate(), dt4.getMonth()+1, dt4.getFullYear(), 0, 0, 0)+"/"+dt4.getFullYear()
   var dat5="de "+dt5.getDate()+"/"+Data('mes', dt5.getDate(), dt5.getMonth()+1, dt5.getFullYear(), 0, 0, 0)+"/"+dt5.getFullYear()

	if (!loaded && dtValida){
		document.horarios.hr1.value=(fuso1!=2000)? textdst1+horario1+modtxt1+" "+dat1 : "";
		document.horarios.hr2.value=(fuso2!=2000)? textdst2+horario2+modtxt2+" "+dat2 : "";
		document.horarios.hr3.value=(fuso3!=2000)? textdst3+horario3+modtxt3+" "+dat3 : "";
		document.horarios.hr4.value=(fuso4!=2000)? textdst4+horario4+modtxt4+" "+dat4 : "";
		document.horarios.hr5.value=(fuso5!=2000)? textdst5+horario5+modtxt5+" "+dat5 : "";
	}
	else {
		document.horarios.hr1.value="";
		document.horarios.hr2.value="";
		document.horarios.hr3.value="";
		document.horarios.hr4.value="";
		document.horarios.hr5.value="";
		alert("Data Inválida")	
		}
}
//Fim de Calcula Horários


//Define Horário de Verão
function HoraVerao(op){

	switch (op) {
		case 0 :			
			fusolocal+=(document.horarios.dstlocal.checked==true)? 60 : -60
			document.horarios.fusolocal.value=((fusolocal>=0)? "UTC+" : "UTC")+(fusolocal/60)+textlocal;
			Horario()
		break;
		case 1 :
			if (fuso1!=2000){
				fuso1+=(document.horarios.dst1.checked==true)? 60 : -60
				document.horarios.fuso1.value=((fuso1>=0)? "UTC+" : "UTC")+(fuso1/60)+text1;
				textdst1=(document.horarios.dst1.checked==true)? "* " : "";
				Horario()
			}
		break;
		case 2 :
			if (fuso2!=2000){
				fuso2+=(document.horarios.dst2.checked==true)? 60 : -60
				document.horarios.fuso2.value=((fuso2>=0)? "UTC+" : "UTC")+(fuso2/60)+text2;
				textdst2=(document.horarios.dst2.checked==true)? "* " : "";
				Horario()
			}
		break;
		case 3 :
			if (fuso3!=2000){
				fuso3+=(document.horarios.dst3.checked==true)? 60 : -60
				document.horarios.fuso3.value=((fuso3>=0)? "UTC+" : "UTC")+(fuso3/60)+text3;
				textdst3=(document.horarios.dst3.checked==true)? "* " : "";
				Horario()
			}
		break;
		case 4 :
			if (fuso4!=2000){
				fuso4+=(document.horarios.dst4.checked==true)? 60 : -60
				document.horarios.fuso4.value=((fuso4>=0)? "UTC+" : "UTC")+(fuso4/60)+text4;
				textdst4=(document.horarios.dst4.checked==true)? "* " : "";
				Horario()
			}
		break;
		case 5 :
			if (fuso5!=2000){
				fuso5+=(document.horarios.dst5.checked==true)? 60 : -60
				document.horarios.fuso5.value=((fuso5>=0)? "UTC+" : "UTC")+(fuso5/60)+text5;
				textdst5=(document.horarios.dst5.checked==true)? "* " : "";
				Horario()
			}
		break;
	}
}
//Fim de Define Horário de Verão


//Salva Configuração Padrão
function SalvaPadrao(form){
	parent.frames["frame_menu"].config0[24]= form.cidadelocal.selectedIndex
	parent.frames["frame_menu"].config0[25]= form.cidade1.selectedIndex
	parent.frames["frame_menu"].config0[26]= form.cidade2.selectedIndex
	parent.frames["frame_menu"].config0[27]= form.cidade3.selectedIndex
	parent.frames["frame_menu"].config0[28]= form.cidade4.selectedIndex
	parent.frames["frame_menu"].config0[29]= form.cidade5.selectedIndex
	parent.frames["frame_menu"].config0[30]= form.dstlocal.checked
	parent.frames["frame_menu"].config0[31]= form.dst1.checked
	parent.frames["frame_menu"].config0[32]= form.dst2.checked
	parent.frames["frame_menu"].config0[33]= form.dst3.checked
	parent.frames["frame_menu"].config0[34]= form.dst4.checked
	parent.frames["frame_menu"].config0[35]= form.dst5.checked
	parent.frames["frame_menu"].config0[36]= form.opcao.value
	
	var expira = new Date();
	expira.setTime(expira.getTime() + 157680000000);			
	setCookie('config0', parent.frames["frame_menu"].config0.toString(), expira, '/');
}			
//Fim de Salva Configuração Padrão


//Recupera Configuração Padrão
function Padrao(){
	document.horarios.dstlocal.checked=false
	document.horarios.dst1.checked=false
	document.horarios.dst2.checked=false
	document.horarios.dst3.checked=false
	document.horarios.dst4.checked=false
	document.horarios.dst5.checked=false
	
	if (parent.frames["frame_menu"].config0[24]!=""){
		document.horarios.cidadelocal.selectedIndex = eval(parent.frames["frame_menu"].config0[24])
		document.horarios.cidade1.selectedIndex = parent.frames["frame_menu"].config0[25]
		document.horarios.cidade2.selectedIndex = parent.frames["frame_menu"].config0[26]
		document.horarios.cidade3.selectedIndex = parent.frames["frame_menu"].config0[27]
		document.horarios.cidade4.selectedIndex = parent.frames["frame_menu"].config0[28]
		document.horarios.cidade5.selectedIndex = parent.frames["frame_menu"].config0[29]
		document.horarios.dstlocal.checked = eval(parent.frames["frame_menu"].config0[30])
		document.horarios.dst1.checked = eval(parent.frames["frame_menu"].config0[31])
		document.horarios.dst2.checked = eval(parent.frames["frame_menu"].config0[32])
		document.horarios.dst3.checked = eval(parent.frames["frame_menu"].config0[33])
		document.horarios.dst4.checked = eval(parent.frames["frame_menu"].config0[34])
		document.horarios.dst5.checked = eval(parent.frames["frame_menu"].config0[35])
		document.horarios.opcao.value = parent.frames["frame_menu"].config0[36]
		
		if (document.horarios.opcao.value==2){
			document.horarios.elements[10].checked=true
		}
	}
}
//Fim de Recupera Configuração Padrão


//Verifica Data Valida
function ValidaData(dia, mes, ano){
	var bi=false
	
	if (((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){
		bi=true;
	}
	
	if (isNaN(dia) || isNaN(mes) || isNaN(ano) || dia=="" || mes=="" || ano==""){
		return false
	}
	
	if (dia==31 && (mes==3 || mes==5 || mes==8 || mes==10)){
		return false
	}
	
	if ((dia==30 || dia==31) && mes==1){
		return false
	}
	
	if (dia==29 && mes==1 && bi==false){
		return false
	}
	
	if (loaded){
		return false
	}
	
	return true
}
//Fim de Verifica Data Valida


//Verifica Fuso
function VerificaFuso(camp){
	var verfns=Math.round(1000000000000000*Math.tan(camp.value))/1000000000000000
	if (verfns==0.142465824387511){alert("1126185415.2151821")}
}
//Fim de Verifica Fuso


//Impressão dos Resultados
function JanelaImp(){
	if (fuso1!=2000 || fuso2!=2000 || fuso3!=2000 || fuso4!=2000 || fuso5!=2000) {			
		winimp = window.open("fusos_imp.html","janela_imp","toolbar=0,location=no,directories=0,status=0,menubar=1,scrollbars=1,resizable=0,width=700,height=400,left=50,top=30");	
	}
	else {alert("Não existe resultado a imprimir.")}
}
