
/********************************************************************************
/////// Animation 
*********************************************************************************/

var layer_MAX   = 24;
var layer_END	= 5;

var layer_cntr	= 0;
var layer_start = 0;
var layer_base	= 0;
var layers		= layer_MAX;
var layer_img	= Array();

var old_picsect = Array(1,1,1,1,1,1,0);
var max_picsect = Array(3,3,3,4,2,2,0);
var max_channel = Array(4,4,4,4,4,4,0);
var direction	= 1;
var loop_cntr	= 0;
var animat		= 0;
var anim_stop	= true;
var anim_init	= false;
var loop_dir	= 0;
var newdelay	= 0;
var delay		= 700;
var DELAY_MIN	= 50;
var DELAY_MAX	= 1500;
var aktivTimer	= null;

var chn_index	= 1;
var sat_index	= 0;
var colors		= 1;
var col			= 1;
var pic_sector	= 1;
var sector	    = 0;

var last_sat	= -1;
var last_sector	= -1;
var last_channel= -1;
var last_colors	= -1;
var last_time	= -1;
var last_MD_id=null;
var last_MD_src="";

var invert=0;
var wx_width=640;	//images width
var wx_height=554;   //images height	
var CursorFlag=0;
var selStartTime=0;

function PlayAnimation(dir)
{
	if(animat) 
		{
		StopAnimat();
		if(dir==direction) return;
		}

	layer_base	= document.getElementById("staDate").options.selectedIndex;
	layer_start = layer_cntr = layer_base;
	animat		= 1;
	direction=loop_dir=dir;
	StartPlay();
}

function StartPlay()
	{
	SetNextActionButton(1);
	SetAnimatSpeed(delay);
	InitSatPics();
	PlayAnimat(direction);
	ShowLayer(layer_cntr);
	}

function SetNextActionButton(set)
	{
	animat=set;

	if(loop_dir)
		{
		if(animat)  document.getElementById("animat_rw").src="../images/n_stop.gif";
		else document.getElementById("animat_rw").src="../images/n_play_rw.gif";
		}
	else
		{
		if(animat)  document.getElementById("animat_fw").src="../images/n_stop.gif";
		else document.getElementById("animat_fw").src="../images/n_play_ff.gif";
		}
	}

function InitSatPics()
	{
	loop_cntr++;
	if (loop_cntr > 999) loop_cntr = 0;
	}

function PlayAnimat(direction)
	{
	if (layer_cntr >= layer_END)
		{
		layer_cntr = layer_END - 1;
		layer_start = document.getElementById("staDate").options.selectedIndex;
		if (layer_END - layer_start < layer_END)
			{
			layer_start = layer_END - layer_END;
			if (layer_start < 1) layer_start = 0;
			}
		}
	else layer_start = layer_base;

	if (!anim_init) InitSatPics();

	loop_cntr++;
	loop_dir = direction;
	anim_stop = false;
	animate(loop_cntr);
	}

function StopAnimat()
	{
	anim_stop	= true;
	window.clearTimeout(aktivTimer);
	aktivTimer	= null;
	SetNextActionButton(0);
	ShowLayer(layer_base)
	animat		= 0;
	}

function SetAnimatSpeed(set)
	{
	delay=set;
	if(delay > DELAY_MAX) delay =DELAY_MAX;
	if(delay < DELAY_MIN) delay =DELAY_MIN;
	val=0.05+(delay*.001);
	if(MSIE)
		{
		if(invert) document.getElementById("wxpicture").style.filter="Invert(); blendTrans(duration="+val+")";
		else document.getElementById("wxpicture").style.filter="blendTrans(duration="+val+")";
		}
	}
	
function MouseUp()
	{
	if(last_MD_id)
		{
		document.getElementById(last_MD_id).src=last_MD_src;
		last_MD_id=null;
		}
	}
	
function IncDecAnimatSpeed(set)
	{
	if(!animat) return;

	if(set<1)
		{
		last_MD_id="speed_ff";
		last_MD_src="../images/n_speed_ff.gif";
		document.getElementById(last_MD_id).src="../images/r_speed_ff.gif";
		}
	else
		{
		last_MD_id="speed_rw";
		last_MD_src="../images/n_speed_rw.gif";
		document.getElementById(last_MD_id).src="../images/r_speed_rw.gif";
		}

	if(delay<500) delay+=(set*50);
	else delay+=(set*100);
	if(delay > DELAY_MAX) delay =DELAY_MAX;
	if(delay < DELAY_MIN) delay =DELAY_MIN;
	newdelay=delay;
	}

function SetLayerDown()
	{
	if(animat) StopAnimat();

	last_MD_id="down";
	last_MD_src="../images/n_down.gif";
	

	document.getElementById(last_MD_id).src="../images/r_down.gif";
	layer_cntr+=1;
	if(layer_cntr>=layer_END) layer_cntr=0;
	ShowLayer(layer_cntr);
	}

function SetLayerUp()
	{
	if(animat) StopAnimat();

	last_MD_id="up";
	last_MD_src="../images/n_up.gif";
	
	document.getElementById(last_MD_id).src="../images/r_up.gif";
	layer_cntr-=1;	//if click uppers 
	if(layer_cntr<0) layer_cntr=layer_END-1;
	ShowLayer(layer_cntr);
	}
	
function ShowLayer(number)
	{
	layer_cntr = number;
	if (layer_cntr < 0) layer_cntr = 0;
	else if (layer_cntr >= layer_END) layer_cntr = layer_END - 1;
	document.getElementById("staDate").options.selectedIndex=layer_cntr;
 	if(!q[sat_index][chn_index][sector][col][0]) document.getElementById("wxpicture").src= "../images/LoadNoSatAni.jpg";
	else document.getElementById("wxpicture").src = layer_img[layer_cntr].src;	
	}

function RestSpeed()
	{
	if(!animat) return;
	
	last_MD_id="speed_reset";
	last_MD_src="../images/n_reset.gif";
	document.getElementById(last_MD_id).src="../images/r_reset.gif";

	SetAnimatSpeed(600);
	}


function animate(task)
	{
	if (task != loop_cntr) return;
	if (!anim_stop)
		{	
		if(newdelay && MSIE)
			{
			newdelay=0;
			val=0.06+(delay*.001);
			if(invert) document.getElementById("wxpicture").style.filter="Invert(); blendTrans(duration="+val+")";
			else document.getElementById("wxpicture").style.filter="blendTrans(duration="+val+")";
			}	
		if(layer_img[layer_cntr].complete == true)
			{
			if(MSIE){document.getElementById("wxpicture").filters.blendTrans.Apply();}
			document.getElementById("wxpicture").src = layer_img[layer_cntr].src;	
			if(MSIE){document.getElementById("wxpicture").filters.blendTrans.Play();}
			}

		document.getElementById("staDate").options.selectedIndex=layer_cntr;
		if (direction == 1) layer_cntr++;
		else layer_cntr--;

		if (layer_cntr >= layer_END) layer_cntr=0;
		if (layer_cntr <0) layer_cntr=layer_END - 1;	
		aktivTimer=setTimeout("animate(" + loop_cntr + ")", delay);
		}
	}



/********************************************************************************
////// Satellite Picturing / Installation  / Configuration 
*********************************************************************************/

function makeFloat(val)
	{
	if(!val) return "0.0";
	var buf=""+val;
	if(buf.indexOf('.')<0) buf+=".0";
	return buf;
	}
	
function SetStartTime() 
	{
	}

function SaveMyCookies() 
	{
	buf=sat_index+"";  SaveCookie("SAT",buf);
	buf=pic_sector+""; SaveCookie("SEC",buf);
	buf=chn_index+"";  SaveCookie("CHN",buf);
	buf=colors+"";     SaveCookie("COL",buf);
	}
	
function GetPreferences() 
	{
	cook=GetCookie("SAT"); if(cook) sat_index=parseInt(cook);
	cook=GetCookie("SEC"); if(cook) pic_sector=parseInt(cook);
	cook=GetCookie("CHN"); if(cook) chn_index=parseInt(cook);
	cook=GetCookie("COL"); if(cook) colors=parseInt(cook);

	if(chn_index<0 || chn_index>3 || isNaN(chn_index) == true) chn_index=1;
	if(sat_index<0 || sat_index>5 || isNaN(sat_index) == true) sat_index=0;
	if(colors<0 || colors>1 || isNaN(colors) == true) colors=1;
	if(pic_sector<0 || pic_sector>max_picsect[sat_index] || isNaN(pic_sector) == true)
	    {
	    pic_sector=old_picsect[sat_index];
	    }
	}

function SelectAllSwitches()
	{
	//selct the Satellite
	
	for (i = 0; i < document.getElementById("SatSel").dt.length; i++)
		{
		if (parseInt(document.getElementById("SatSel").dt[i].value)==sat_index) document.getElementById("SatSel").dt[i].checked=true; 
		else document.getElementById("SatSel").dt[i].checked=false; 
		}

	//selct the Channel
	for (i = 0; i < document.getElementById("ChnSel").dt.length; i++) 
		{
		if (i==chn_index) document.getElementById("ChnSel").dt[i].checked=true; 
		else document.getElementById("ChnSel").dt[i].checked=false; 
		}
	if(colors) document.getElementById("colorswitch").src="../images/colorswitch_c.gif";
	else document.getElementById("colorswitch").src="../images/colorswitch_b.gif";
	SetSectorImg();
	}

function SelectSatelites()
	{
	index=0;
	for (i = 0; i < document.getElementById("SatSel").dt.length; i++) 
		{
		if (document.getElementById("SatSel").dt[i].checked) 
			{
			index=parseInt(document.getElementById("SatSel").dt[i].value);
			break;			
			}
		}
	SelectSat(index)
	}

function SelectSat(index)								
	{
	sat_index=index;

	SelectAllSwitches();

	switch(index)
		{
		case 0:		//Meteosat 8
					SetSat0();	break;
		case 1:		//Meteosat 7
					SetSat1();	break;
		case 2:		//Meteosat 5
					SetSat1();	break;
		case 3:		//MTSAT-1R Japan Meteo
					SetSat3();	break;
		case 4:		//GOES 12 EAST 
					SetSat4();	break;
		case 5:		//GOES 10 WEST 
					SetSat5();	break;
		}
	}
	
function SelectChannels()								
	{
	index=0;
	for (i = 0; i < document.getElementById("ChnSel").dt.length; i++) 
		{
		if(document.getElementById("ChnSel").dt[i].checked) 
		    {
		    index=i; 
		    break;
		    }	
		}
	SetChannels(index);
	SetImagesList();
	}

function SetChannels(index)								
	{
	if(index >= max_channel[sat_index]) index=max_channel[sat_index]-1;
	chn_index=index;

	for (i = 0; i < document.getElementById("ChnSel").dt.length; i++) 
		{
		if (parseInt(document.getElementById("ChnSel").dt[i].value)==chn_index) document.getElementById("ChnSel").dt[i].checked=true; 
		else document.getElementById("ChnSel").dt[i].checked=false; 
		}
	}

function SetColors(set)
	{
	colors=set;
	if(set) 
		{
		document.getElementById("colorswitch").src="../images/colorswitch_c.gif";
		}
	else 
		{
		document.getElementById("colorswitch").src="../images/colorswitch_b.gif";
		}
	}

function SetSat0()	//Meteosat 9  = 0°
	{
	document.getElementById("chanel0").innerHTML=" VIS 0.6";
	document.getElementById("chanel1").innerHTML=" IR  10.8";
	document.getElementById("chanel2").innerHTML=" WV  6.2";
	document.getElementById("chanel3").innerHTML=" Color Mix";
	document.getElementById("wxpicture").style.height=wx_height;
	document.getElementById("sat2").src="../images/europe.jpg";
    document.getElementById("fulldisk").style.visibility="hidden";
    document.getElementById("sector0").style.visibility="visible";
    document.getElementById("sector1").style.visibility="visible"; 
    document.getElementById("sector2").style.visibility="visible";
    document.getElementById("sector3").style.visibility="hidden";
    
	if(chn_index >3) chn_index=1;
	SetChannels(chn_index);
	if(last_sat>2 && pic_sector) pic_sector=1;
	SetSectorIntern(pic_sector);
	}
	
function SetSat1()	//Meteosat 7  = 0°
	{
	document.getElementById("chanel0").innerHTML=" VIS 0.7";
	document.getElementById("chanel1").innerHTML=" IR 11.5";
	document.getElementById("chanel2").innerHTML=" WV 6.4";
	document.getElementById("chanel3").innerHTML=" Color Mix";
	document.getElementById("wxpicture").style.height=wx_height;
	document.getElementById("sat2").src="../images/indianOcean.jpg";
    document.getElementById("fulldisk").style.visibility="hidden";
    document.getElementById("sector0").style.visibility="visible";
    document.getElementById("sector1").style.visibility="visible"; 
    document.getElementById("sector2").style.visibility="visible";
    document.getElementById("sector3").style.visibility="hidden";
	if(chn_index >3) chn_index=1;
	SetChannels(chn_index);
	if(last_sat>2 && pic_sector) pic_sector=1;
	SetSectorIntern(pic_sector);
	}

	
function SetSat3()	//MTSAT-1R Japan - Australia
	{
	document.getElementById("chanel0").innerHTML=" VIS 0.73";
	document.getElementById("chanel1").innerHTML=" IR  10.8";
	document.getElementById("chanel2").innerHTML=" WV  6.75";
	document.getElementById("chanel3").innerHTML=" Color Mix";
	document.getElementById("wxpicture").style.height=wx_height;
	document.getElementById("sat2").src="../images/australiax.jpg";
    document.getElementById("fulldisk").style.visibility="visible";
    document.getElementById("sector0").style.visibility="visible";
    document.getElementById("sector1").style.visibility="visible"; 
    document.getElementById("sector2").style.visibility="visible";
    document.getElementById("sector3").style.visibility="visible"; 
	if(chn_index >5) chn_index=1;
	SetChannels(chn_index);
	if(last_sat<2 && pic_sector) pic_sector=1;
	SetSectorIntern(pic_sector);
	}

function SetSat4()	//GOES 12 (EAST)
	{
	document.getElementById("chanel0").innerHTML=" VIS 0.65";
	document.getElementById("chanel1").innerHTML=" IR  10.7";
	document.getElementById("chanel2").innerHTML=" WV  6.75";
	document.getElementById("chanel3").innerHTML=" Color Mix";
	document.getElementById("wxpicture").style.height=wx_height;
	document.getElementById("sat2").width=document.getElementById("sat2").height=129;
	document.getElementById("sat2").src="../images/america.jpg";
    document.getElementById("fulldisk").style.visibility="hidden";
    document.getElementById("sector0").style.visibility="visible";
    document.getElementById("sector1").style.visibility="hidden"; 
    document.getElementById("sector2").style.visibility="visible";
    document.getElementById("sector3").style.visibility="hidden";
 	if(chn_index >3) chn_index=1;
	if(colors && chn_index!=3) chn_index=3;
	if(!colors && chn_index==3) chn_index=1;
	SetChannels(chn_index);
	SetSectorIntern(pic_sector);
	}

function SetSat5()	//GOES 10 (WEST) 
	{
	document.getElementById("chanel0").innerHTML=" VIS 0.65";
	document.getElementById("chanel1").innerHTML=" IR  10.7";
	document.getElementById("chanel2").innerHTML=" WV  6.75";
	document.getElementById("chanel3").innerHTML=" Color Mix";
	document.getElementById("wxpicture").style.height=wx_height;
	document.getElementById("sat2").width=document.getElementById("sat2").height=129;
	document.getElementById("sat2").src="../images/pacific_ocean.jpg";
    document.getElementById("fulldisk").style.visibility="hidden";
    document.getElementById("sector0").style.visibility="visible";
    document.getElementById("sector1").style.visibility="hidden"; 
    document.getElementById("sector2").style.visibility="visible";
    document.getElementById("sector3").style.visibility="hidden";
	if(chn_index >3) chn_index=1;
	if(colors && chn_index!=3) chn_index=3;
	if(!colors && chn_index==3) chn_index=1;
	SetChannels(chn_index);
	SetSectorIntern(pic_sector);
	}

function SwitchColor()
	{
	if(colors) colors=0;
	else colors=1;
	if((sat_index==4 || sat_index==5))
	   {
	   if(colors && chn_index!=3) SetChannels(3);
	   if(!colors && chn_index==3) SetChannels(1);
	   }
	SetColors(colors);
	SetImagesList();
	}

function SetInversColors(set)
	{
	invert=set;
	
	if(invert) 
		{
		document.getElementById("invertswitch").src="../images/invert_r.gif";
		}
	else 
		{
		document.getElementById("invertswitch").src="../images/invert_n.gif";
		}

	val=0.05+(delay*.001);
	if(invert) document.getElementById("wxpicture").style.filter="Invert(); blendTrans(duration="+val+")";
	else document.getElementById("wxpicture").style.filter="blendTrans(duration="+val+")";
	ShowLayer(layer_cntr);
	}

function SwitchtInvert()
	{
	if(invert) invert=0;
	else invert=1;
	SetInversColors(invert);
	}

function SelectSector(sect)
	{
	if(sat_index>3)
		{
		if(sect==1) sect=0;
		else sect=1;
		}

	pic_sector=sect;
	SetSectorIntern(sect)
	}

function SetSectorImg()
	{
	if(sat_index>3)
		{
		if(!pic_sector)	document.getElementById("sector0").src="../images/SecN0.gif";
		else document.getElementById("sector0").src="../images/Sec0.gif";
	    if(pic_sector) document.getElementById("sector2").src="../images/sectGN.gif";
    	else document.getElementById("sector2").src="../images/sectG.gif";
		}
	else
		{
		if(sat_index<3) 
			{
			if(pic_sector==1) document.getElementById("sector0").src="../images/SecN0.gif";
			else document.getElementById("sector0").src="../images/Sec0.gif";
			if(pic_sector==2) document.getElementById("sector1").src="../images/secNEW.gif";
			else document.getElementById("sector1").src="../images/secEW.gif";
			if(pic_sector==3) document.getElementById("sector2").src="../images/secNEE.gif";
			else document.getElementById("sector2").src="../images/secEE.gif";
			}
		else
			{
			if(!pic_sector)	document.getElementById("fulldisk").src="../images/SecN0.gif";
			else document.getElementById("fulldisk").src="../images/Sec0.gif";
			if(pic_sector==1) document.getElementById("sector0").src="../images/secNT01.gif";
			else document.getElementById("sector0").src="../images/secT01.gif";
			if(pic_sector==2) document.getElementById("sector1").src="../images/secNT03.gif";
			else document.getElementById("sector1").src="../images/secT03.gif";
			if(pic_sector==3) document.getElementById("sector2").src="../images/secNT02.gif";
			else document.getElementById("sector2").src="../images/secT02.gif";
			if(pic_sector==4) document.getElementById("sector3").src="../images/secNT04.gif";
			else document.getElementById("sector3").src="../images/secT04.gif";
			}
		}
	}

function SetSectorIntern(set)
	{
	if(set>max_picsect[sat_index]) set=max_picsect[sat_index];
	if(sat_index<4)
		{
		if(!set && pic_sector!=0) old_picsect[sat_index]=pic_sector;
		if(pic_sector>max_picsect[sat_index]) set=max_picsect[sat_index];
		}
	else
		{
		if(set) set=1;
		}
	pic_sector=set;
	SetSectorImg();
	SetImagesList();
	}

function SetImagesList()
	{
	if(last_sat	== sat_index && last_sector==pic_sector && last_channel==chn_index && last_colors== colors) return;

	last_sat	=sat_index;
	sector=last_sector	=pic_sector;
	last_channel=chn_index;
	last_colors	=colors;
	
	if(sat_index<3)
		{
		switch(pic_sector)
			{
			default: sector=0;	break;
			case 2: sector=1;	break;
			case 3: sector=2;	break;
			}
		}
	i=0; src="";
    if(animat) anim_stop = true;
   
    sta_tim=sto_tim=selStartTime=0;
   	sta_tim=document.getElementById("staDate").options[i].value;
    i=document.getElementById("staDate").options.selectedIndex;
    document.getElementById("wxpicture").src= "../images/LoadSatAni.jpg";
    
    if(i>=0)sta_tim=document.getElementById("staDate").options[i].value;
    while (document.getElementById("staDate").length > 0 ) 
	    {
	   	document.getElementById("staDate").options[document.getElementById("staDate").length-1] = null;
	   	}
   col=colors;
   if(sat_index<3 && chn_index==2) col=0;
   else if(sat_index==4 || sat_index==5 || chn_index==3) col=0;
   for(idx=0; idx<layer_MAX; idx++)
		{
		if(!q[sat_index][chn_index][sector][col][idx]) break;
		tim= new Date(q[sat_index][chn_index][sector][col][idx]*100000);

		txt=""; src="../images/satpics/";
		year	= tim.getUTCFullYear()-2000;
		month	= tim.getUTCMonth()+1;
		day	    = tim.getUTCDate();
		hour	= tim.getUTCHours();
		min	    = tim.getUTCMinutes();

		if(year<10) src+="0"+year;
		else src+=""+year;

		if(month<10) src+="0"+month;
		else src+=""+month;

		if(day<10)
			{
			src+="0"+day;
			txt="0"+day;
			}
		else
			{
			src+=""+day;
			txt=""+day;
			}
		if(hour<10)
			{
			src+="0"+hour;
			txt+=" / 0"+hour;
			}
		else
			{
			src+=hour;
			txt+=" / "+hour;
			}
		if(min<10)
			{
			src+="0"+min;
			txt+=":0"+min;
			}
		else 
			{
			src+=min;	
			txt+=":"+min;
			}
			
		if(sat_index==1) src+="02";
		else src+="0"+sat_index;
		src+="0"+chn_index;
		if((sat_index==4 || sat_index==5)) src+="00";
		else 
			{
			if(sat_index<4 && chn_index==3) src+="00";
			else src+="0"+col;
			}
		if(sat_index<2)
			{
			switch(sector)
				{
				default: src+="00"; break;
				case 1: src+="02"; break;
				case 2: src+="10"; break;
				}
			}
		else src+="0"+sector;
		src+=".jpg";
		//alert(src);

		layer_img[idx].src = src;
		document.getElementById("staDate").options[idx]=new Option(txt);
		}
	layer_END=idx;

    if(!idx)
        {
        txt="no sat images";
       	document.getElementById("staDate").options[0]=new Option(txt);
        layer_img[0].src = "../images/LoadNoSatAni.jpg";
        if(animat) PlayAnimation(0);
        }
    else
        {
    	for(i=0; i<idx; i++)
	    	{
		    if(document.getElementById("staDate").options[i].value>=sta_tim) selStartTime=i;
		    }
        }
        
    document.getElementById("staDate").options[selStartTime].selected =true;
	document.getElementById("staDate").options.selectedIndex=layer_cntr=selStartTime;
	        
	if(animat) anim_stop = false;
	else ShowLayer(selStartTime);
	}

function FirstInitial()
	{
	GetPreferences();
    for(i=0; i<layer_MAX; i++)
	    {	
	    document.getElementById("staDate").options[i]=new Option("");
		layer_img[i] = new Image(wx_width, wx_height);
 		}
	document.getElementById("staDate").options[selStartTime].selected =true;
	}

