/* ------------------------------------------------------------------
Project:        Flightmap
File:		WxOverlay.js
Abstract:	handling and displaying weather overlays from ARSO and Other Sources
Version:	1.0
Author:		Jože Senegačnik


------------------------------------------------------------------ */

var current_overlay = "";
var wind_850_loaded = false;
var wind_925_loaded = false;
var wind_10m_loaded = false;
var oblpad_loaded = false;
var radar_loaded = false;
var vis_sat_loaded = false;
var ir_sat_loaded = false;

var overlays_wind_850 = [];

var overlay_radar;
var vis_sat_overlay;
var ir_sat_overlay;
var overlays_wind_925 = [];
var overlays_wind_10m = [];
var overlays_oblpad = [];
var current_map = 0;

var hide_overlays = false;

var wind_model_hours   = [6,9,12,15,18,24,30,36,42,48];
var precip_model_hours = [6,12,18,24,30,36,42,48];

// URL addresses and boundaries
var aladin_overlays_URL = "http://www.arso.gov.si/vreme/napovedi%20in%20podatki/aladin/";
var aladin_map_boundaries = new GLatLngBounds(new GLatLng(44.43651944, 12.91722778 ), new GLatLng(47.40121667, 16.958525));

var radar_overlay_URL = "http://www.arso.gov.si/vreme/napovedi%20in%20podatki/radar_anim.gif";
var radar_boundaries = new GLatLngBounds(new GLatLng(44.67687778, 12.08263056), new GLatLng(47.62945, 17.44871667));

var vis_sat_overlay_URL = "http://www.sat24.com/images.php?country=alps&sat=vis";
var vis_sat_boundaries = new GLatLngBounds(new GLatLng(43.09443333, 5.067280556), new GLatLng(49.02815556, 16.65722778));

var ir_sat_overlay_URL = "http://www.sat24.com/images.php?country=alps&sat=ir";
var ir_sat_boundaries = new GLatLngBounds(new GLatLng(41.57943611, 4.142502778), new GLatLng(51.60070556, 24.43293611));


function processOverlay(selectedItem) {
    // process selected overlay

    hide_overlays = true;
    overlaySlider.setMaximum(9);
    hide_overlays = false;

  //alert( 'process layer '+ selectedItem);
  

  if( selectedItem == "none" ) {
       //reset everything
       hide_overlays = true;
       hide_all_overlays();
       current_overlay = "none";

  } else if ( selectedItem == "radar_anim" ) {
      if( current_overlay != "none" ){
         hide_all_overlays();
      }
       current_overlay = "radar_anim";
       display_radar_anim();

  } else if ( selectedItem == "ir_sat_anim" ) {
      if( current_overlay != "none" ){
         hide_all_overlays();
      }
       current_overlay = "ir_sat_anim";
       display_ir_sat_anim();

  } else if ( selectedItem == "vis_sat_anim" ) {
      if( current_overlay != "none" ){
         hide_all_overlays();
      }
       current_overlay = "vis_sat_anim";
       display_vis_sat_anim();

  }   else if ( selectedItem == "AW00_veter_850" ) {
      //AW00_veter_850
      if( current_overlay != "none" ){
        hide_all_overlays();
      }
       current_overlay = "AW00_veter_850";
      display_AW00_veter_850();

  } else if ( selectedItem == "AW00_veter_925" ) {
      //AW00_veter_925
      if( current_overlay != "none" ){
        hide_all_overlays();
      }
      current_overlay = "AW00_veter_925";
      display_AW00_veter_925();

  } else if ( selectedItem == "AW00_veter_10m" ) {
      //AW00_veter_10m
      if( current_overlay != "none" ){
        hide_all_overlays();
      }
      current_overlay = "AW00_veter_10m";
      display_AW00_veter_10m();

  } else if ( selectedItem == "AW00_oblpad" ) {

      //alert('processing AW00_oblpad current='+current_overlay);
      if( current_overlay != "none" ){
        hide_all_overlays();
      }
      current_overlay = "AW00_oblpad";
      display_AW00_oblpad();
  }

  if( current_overlay == "none" || current_overlay == "radar_anim" || current_overlay == "vis_sat_anim" || current_overlay == "ir_sat_anim" ){
        document.getElementById("datestring").style.visibility = "hidden";
        document.getElementById("slider-1").style.visibility = "hidden";
  } else {
        document.getElementById("datestring").style.visibility = "visible";
        document.getElementById("slider-1").style.visibility = "visible";
  }
  display_datestring();
}



function display_radar_anim(){
  //alert (' display_radar_anim()');

  if( !radar_loaded ) {
 	 overlay_radar = new GGroundOverlay( radar_overlay_URL, radar_boundaries );
 	 gMap.addOverlay( overlay_radar);
	 overlay_radar.hide();
         radar_loaded = true;
    }
    overlay_radar.show();
}

function hide_radar_anim(){
    overlay_radar.hide();
    delete overlay_radar;
    radar_loaded = false;
}


function display_ir_sat_anim(){
  if( !ir_sat_loaded ) {
 	 ir_sat_overlay = new GGroundOverlay( ir_sat_overlay_URL, ir_sat_boundaries );
 	 gMap.addOverlay( ir_sat_overlay );
	 ir_sat_overlay.hide();
         ir_sat_loaded = true;
    }
    ir_sat_overlay.show();
}

function hide_ir_sat_anim(){
    ir_sat_overlay.hide();
    delete ir_sat_overlay;
    ir_sat_loaded = false;
}

function display_vis_sat_anim(){
  if( !vis_sat_loaded ) {
 	 vis_sat_overlay = new GGroundOverlay( vis_sat_overlay_URL, vis_sat_boundaries );
 	 gMap.addOverlay( vis_sat_overlay );
	 vis_sat_overlay.hide();
         vis_sat_loaded = true;
    }
    vis_sat_overlay.show();
}

function hide_vis_sat_anim(){
    vis_sat_overlay.hide();
    delete vis_sat_overlay;
    vis_sat_loaded = false;
}


function display_AW00_veter_850(){
	if (!wind_850_loaded) {
		// load layers and add them as overlays
		for( var i = 0; i < 10; i++ ) {
                        var map_URL = aladin_overlays_URL + "AW00_veter_850_" + wind_model_hours[i].numberFormat("000") + ".png";
			overlays_wind_850[i] = new GGroundOverlay( map_URL, aladin_map_boundaries );
 			gMap.addOverlay(overlays_wind_850[i]);
			overlays_wind_850[i].hide();
		}
                wind_850_loaded = true;
	}
        // display the map
        current_map = overlaySlider.getValue();
        overlays_wind_850[current_map].show();
}


function hide_AW00_veter_850(num){
	overlays_wind_850[num].hide();	
}


function display_AW00_veter_925(){
	if (!wind_925_loaded) {
		// load layers and add them as overlays
		for( var i = 0; i < 10; i++ ) {
                        var map_URL = aladin_overlays_URL + "AW00_veter_925_" + wind_model_hours[i].numberFormat("000") + ".png";
			overlays_wind_925[i] = new GGroundOverlay( map_URL, aladin_map_boundaries );
 			gMap.addOverlay(overlays_wind_925[i]);
			overlays_wind_925[i].hide();
		}
                wind_925_loaded = true;
	}
        // display the map
        current_map = overlaySlider.getValue();
        overlays_wind_925[current_map].show();
}

function hide_AW00_veter_925(num){
	overlays_wind_925[num].hide();	
}


function display_AW00_veter_10m(){
	if (!wind_10m_loaded) {
		// load layers and add them as overlays
		for( i = 0; i < 10; i++ ) {
                        var map_URL = aladin_overlays_URL + "AW00_veter_10m_" + wind_model_hours[i].numberFormat("000") + ".png";
			overlays_wind_10m[i] = new GGroundOverlay( map_URL, aladin_map_boundaries );
 			gMap.addOverlay(overlays_wind_10m[i]);
			overlays_wind_10m[i].hide();
		}
                wind_10m_loaded = true;
	}
        // display the map
        current_map = overlaySlider.getValue();
        overlays_wind_10m[current_map].show();
}

function hide_AW00_veter_10m(num){
	overlays_wind_10m[num].hide();	
}


function display_AW00_oblpad(){
	if (!oblpad_loaded) {
		// load layers and add them as overlays
                //alert('oblpad not loaded');
		for( i = 0; i < 8; i++ ) {
                        var map_URL = aladin_overlays_URL + "AW00_oblpad_" + precip_model_hours[i].numberFormat("000") + ".png";
			overlays_oblpad[i] = new GGroundOverlay( map_URL, aladin_map_boundaries );
 			gMap.addOverlay(overlays_oblpad[i]);
			overlays_oblpad[i].hide();
		}
                oblpad_loaded = true;
                //alert('oblpad loaded');
	}
        // display the map
        current_map = overlaySlider.getValue();
        overlays_oblpad[current_map].show();
        overlaySlider.setMaximum(7);

}

function hide_AW00_oblpad(num){
	overlays_oblpad[num].hide();	
}



function hide_all_overlays(){
   for(var i = 0; i < 10; i++ ){
     if( wind_850_loaded ) {
        hide_AW00_veter_850( i );
     }
     if( wind_925_loaded ) {
        hide_AW00_veter_925( i );
     }
     if( wind_10m_loaded ) {
       hide_AW00_veter_10m( i );
     }
   }

   for(var i = 0; i < 8; i++ ){
     if( oblpad_loaded ) {
       hide_AW00_oblpad( i );
     }
   }

   if( radar_loaded ) {
      hide_radar_anim();
   }

   if( ir_sat_loaded ) {
      hide_ir_sat_anim();
   }

   if( vis_sat_loaded ) {
      hide_vis_sat_anim();
   }

   hide_overlays = true;
   overlaySlider.setMaximum(9);
   hide_overlays = false;
}

function process_slider() {
   if ( !hide_overlays ) {
       var funct_name = "hide_"+current_overlay+"("+current_map+")";
       eval( funct_name );
       current_map = overlaySlider.getValue();
       var funct_name = "display_"+current_overlay+"()";
       eval( funct_name );
       display_datestring();
       document.getElementById("datestring").style.visibility = "visible";
   }
}

function display_datestring() {
   var today = new Date();
   //today.setUTCHours(hour,min,sec,millisec)
   if( current_overlay == "none" ) {
     var datestring = "";
   } else if ( current_overlay == "AW00_oblpad" ) {
        today.setUTCHours(precip_model_hours[current_map],0,0,0);
        var datestring=today.toUTCString();
   } else {
        today.setUTCHours(wind_model_hours[current_map],0,0,0);
        var datestring=today.toUTCString();
   }
   if (document.getElementById("slider-1").style.visibility == "visible" ) {
     document.getElementById("datestring").innerHTML = "";
     document.getElementById("datestring").innerHTML = datestring;
   } else {
     document.getElementById("datestring").innerHTML = "";
   }
}


