//  javascript functions
var preload = [];
var categories = [];
var noImages = 0;
var noFctImages = 0;
var TotalImages = 0;
var RadarOnlyPart = 0;
var RadarFCTPart = 0;
var started = false;
var WinPrint;
var clearme = "N";
var delayer = 1;
var crntimage = 0;

function toggleGrenzen(){
    var current_date = new Date;
    var cookie_year = current_date.getFullYear ( );
    var cookie_month = current_date.getMonth ( ) + 1;
    var cookie_day = current_date.getDate ( );
    var grenzenchk = document.getElementById("chkGrenzen").checked;
    if (grenzenchk == true){
		document.getElementById("borders").style.display = "inline";
        set_cookie("grenzen", true, cookie_year, cookie_month, cookie_day);
    } else {
		document.getElementById("borders").style.display = "none";
        set_cookie("grenzen", false, cookie_year, cookie_month, cookie_day);
    }
}

function togglePrognose(){
    var current_date = new Date;
    var cookie_year = current_date.getFullYear ( );
    var cookie_month = current_date.getMonth ( ) + 1;
    var cookie_day = current_date.getDate ( );
    var progchk = document.getElementById("chkprognose").checked;
    if (progchk == true){	
        set_cookie("prognose", true, cookie_year, cookie_month, cookie_day);
    }
    else
    {
        set_cookie("prognose", false, cookie_year, cookie_month, cookie_day);
    }
    
	steptostart();
}
function toggleBliksem(){
    var bliksemchk = document.getElementById("chkBliksem").checked;
    var current_date = new Date;
    var cookie_year = current_date.getFullYear ( );
    var cookie_month = current_date.getMonth ( ) + 1;
    var cookie_day = current_date.getDate ( );
    bliksemchk == true;
    
    if (bliksemchk == true) {
        document.getElementById("radaronly").style.display = "none";
        document.getElementById("radarandlht").style.display = "";
        document.getElementById("timeStamp").style.display = "none";
        document.getElementById("timeStamplht").style.display = "";
        document.getElementById("timeStamp2").style.display = "none";
        document.getElementById("timeStamplht2").style.display = "";
       
        
        set_cookie("lightning", true, cookie_year, cookie_month, cookie_day);
        }
    else
    {
        document.getElementById("radaronly").style.display = "";
        document.getElementById("radarandlht").style.display = "none";
        document.getElementById("timeStamp").style.display = "";
        document.getElementById("timeStamplht").style.display = "none";
        document.getElementById("timeStamp2").style.display = "";
        document.getElementById("timeStamplht2").style.display = "none";
       
        set_cookie("lightning", false, cookie_year, cookie_month, cookie_day);
    }
}

function toggleAnimation() {
    var anichk = document.getElementById("chkAnimation").checked;
    var current_date = new Date;
    var cookie_year = current_date.getFullYear ( );
    var cookie_month = current_date.getMonth ( ) + 1;
    var cookie_day = current_date.getDate ( );

    if (anichk == true) {
        set_cookie("animation", true, cookie_year, cookie_month, cookie_day);
        anistart();
    }
    else{
        set_cookie("animation", false, cookie_year, cookie_month, cookie_day);
        anistop();
        document.progimg.src = images[noImages].src;
        doInnerHTML("timeStamp",  dtgs[noImages] );
        doInnerHTML("timeStamp2",  dtgs[noImages] );
        
        
        document.radarlhtimg.src = lhtimages[noImages].src;
        doInnerHTML("timeStamplht",  lhtdtgs[noImages] );
        doInnerHTML("timeStamplht2",  lhtdtgs[noImages] );

        doInnerHTML("time2lbl", dtgs[noImages] );

       for(x=noImages+1;x<=TotalImages; x++) {
        changeColor("c" + x, "#AFDCEC" );
        }  
       for (x=0;x<=noImages;x++) {
        changeColor("c" + x, "#AFDCEC" );
         }
        for (x=0;x<=noImages;x++) {
        changeColor("c" + x, "blue" );
        }     
        crntimage = noImages;
    }
  }

function PopupMap(page,height)
{
    WinPrint =
        window.open(page,'','left=0,top=0,width=765,height='+height+',location=center,toolbar=0,scrollbars=0,status=0');
    WinPrint.focus();
}

function PrintPageNoParam()
{
    var prtContent = document.URL + '?print=true';
    WinPrint =
        window.open(prtContent,'','left=0,top=0,width=755,location=center,toolbar=0,scrollbars=0,status=0'); 
    WinPrint.focus();
    setTimeout(function(){DoPrint();}, 500);
}

function ToggleMapLayers()
{
    var checked = document.getElementById("chkToggleMapLayer").checked;
        
    if(checked == true) {
        document.getElementById("maplayers").style.display = "";
    } else {
        document.getElementById("maplayers").style.display = "none";
    }
}

function Hover(name)
{
    var divs = document.getElementsByTagName("div");
    
    for(var q = 0; q < divs.length; q++)
    {
        if(divs[q].className == name)
        {
            divs[q].onmouseover = function() {
                this.className = name + "Hover";
            };
            
            divs[q].onmouseout = function() {
                this.className = name;
            };
        }
    }
}
            
// Functionality for mouse over
function smartRollover() {
   if(document.getElementsByTagName) {
      var images = document.getElementsByTagName("img");

      for(var i=0; i < images.length; i++) {
         if(images[i].getAttribute("src").match("_off."))
         {
            images[i].onmouseover = function() {
               this.setAttribute("src", this.getAttribute("src").replace("_off.", "_on."));
            }
            images[i].onmouseout = function() {
               this.setAttribute("src", this.getAttribute("src").replace("_on.", "_off."));
            }
         }
      }
   }
}

if(window.addEventListener) {
   window.addEventListener("load", smartRollover, false);
}
else if(window.attachEvent) {
   window.attachEvent("onload", smartRollover);
}

// Functionality for textual details
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
       
// Animation functionality
function anisetup(imageList, DTGlist, imageLHTlist, dtgLHTlist, fctlist, dtgfctlist) {
	delay=500;

	c_lightning = get_cookie("lightning");
	c_speed = get_cookie("speed");
	c_prognose = get_cookie("prognose");
	c_animation = get_cookie("animation");
	c_grenzen = get_cookie("grenzen");

	delayer = c_speed;
	if(delayer==null){delayer=4}; 
	if(c_prognose==null){c_prognose="true"}; 
	if(c_grenzen==null){c_grenzen="true"}; 
	if(c_animation==null){c_animation="true"}; 
	if(c_lightning==null){c_lightning="true"}; 

	if(c_prognose=="true"){document.getElementById("chkprognose").checked = true;}
	if(c_animation=="true"){document.getElementById("chkAnimation").checked = true;}
	if(c_lightning=="true"){document.getElementById("chkBliksem").checked = true;}
	if(c_grenzen=="true"){document.getElementById("chkGrenzen").checked = true;}
   
    aniupid=setTimeout('anirefresh()', 1000000);
    radarimage = imageList.split(",");   // feed it comma seperated list
    dtglables = DTGlist.split(",");
    radarlhtimage = imageLHTlist.split(",");   // feed it comma seperated list
    dtglhtlables = dtgLHTlist.split(",");
    radarfctimage = fctlist.split(",");   // feed it comma seperated list
    dtgfctlables = dtgfctlist.split(",");
    noImages = (radarimage.length -1);  // we know how many to count through
    noFctImages = (radarfctimage.length -1);
    images = new Array();
    dtgs = new Array();
    
    lhtimages = new Array();
    lhtdtgs = new Array()
    
    radarprognoseimages = new Array();
    radarprognosedtgs = new Array();    
   var endtijd;
   var starttijd;
   var startprogtijd;
   
    for(x=0;x<=noImages; x++) {
      images[x] = new Image();
      images[x].src = radarimage[x];
      dtgs[x] = dtglables[x];
        
      lhtimages[x] = new Image();
      lhtimages[x].src = radarlhtimage[x];
      lhtdtgs[x] = dtglhtlables[x];
     }
    
   for(x=0;x<=noFctImages; x++) {
      images[x+noImages+1] = new Image();
      images[x+noImages+1].src = radarfctimage[x];
      dtgs[x+noImages+1] = dtgfctlables[x];
      endtijd = dtgs[x+noImages];
      
      lhtimages[x+noImages+1] = new Image();
      lhtimages[x+noImages+1].src = radarfctimage[x];
      lhtdtgs[x+noImages+1] = dtgfctlables[x];
    }
   
   TotalImages = noImages + noFctImages;
   crntimage = noImages;
   endtijd = Mid(endtijd,3,5);
   starttijd = Mid(dtgs[0],3,5);
   startprogtijd = Mid(dtgs[noImages],3,5);
   
   document.getElementById("startbox").innerHTML = starttijd;
   document.getElementById("startprogbox").innerHTML = startprogtijd;
   document.getElementById("eindbox").innerHTML = endtijd;
   
   document.progimg.src = images[crntimage].src;
   doInnerHTML("timeStamp",  dtgs[crntimage] );
   doInnerHTML("timeStamp2",  dtgs[crntimage] );
   
   document.radarlhtimg.src = lhtimages[crntimage].src;
   doInnerHTML("timeStamplht",  lhtdtgs[crntimage] );
   doInnerHTML("timeStamplht2",  lhtdtgs[crntimage] );
   doInnerHTML("time2lbl", dtgs[crntimage] );
   
   for (x=0;x<=crntimage;x++) {
    changeColor("c" + x, "#2B60DE" );
   }
   var strSpeed = "Snelheid " + delayer + "x";
   document.getElementById("speedtag").innerHTML = strSpeed;
   
 
	if (c_grenzen == "false") {
        document.getElementById("borders").style.display = "none";
	}
	
   if (c_lightning == "true") {
        document.getElementById("radaronly").style.display = "none";
        document.getElementById("radarandlht").style.display = "";
        document.getElementById("timeStamp").style.display = "none";
        document.getElementById("timeStamplht").style.display = "";
        document.getElementById("timeStamp2").style.display = "none";
        document.getElementById("timeStamplht2").style.display = "";
        }
 
   if (c_prognose == "true") { 
      steptostart; 
      }

   if (c_animation == "true") {   
        started = false;
        anistart();
        } 
    } 

function anirefresh() {
   location.reload(true);
}

function animate() {
    var progchk = document.getElementById("chkprognose").checked;
	
	if (progchk == true) {
		MaxImages = TotalImages;
	}
	else {
		MaxImages = noImages;
	}
        
    if (clearme == "Y") {
        for(x=1;x<=MaxImages; x++) {
			changeColor("c" + x, "#AFDCEC" );
        }
        clearme = "N";
    }
	
    if(started == true) {
		aniid = setTimeout('animate()', delay);
		delay = 500/delayer;
		crntimage++;
		if (crntimage == MaxImages) {
            delay = 4500/delayer;
		}
		if(crntimage > MaxImages) {
			delay = 1500/delayer;
			clearme = "Y"
			crntimage = -1;
       }
       if (crntimage > -1) { 
           document.progimg.src = images[crntimage].src;
           doInnerHTML("timeStamp",  dtgs[crntimage] );
           doInnerHTML("timeStamp2",  dtgs[crntimage] );
           doInnerHTML("time2lbl", dtgs[crntimage] );
           //doInnerHTML("time2lbl",crntimage + "|"+ MaxImages);
           changeColor("c" + crntimage, "#2B60DE" );
           document.radarlhtimg.src = lhtimages[crntimage].src;
           doInnerHTML("timeStamplht",  lhtdtgs[crntimage] );
           doInnerHTML("timeStamplht2",  lhtdtgs[crntimage] );
           
       } 
    }
}

function CheckTime() {
   var si
   var productval
   var prods = document.getElementsByName("product");
   
    for (var i = 0; i < prods.length; i++){
      if ( prods[i].checked){
         productval =  prods[i].value;
         break
      }
   }
   si  = document.getElementById("tijd");     
   if (productval == 1 ) {
          si.style.visibility = "visible";
         } else {
          si.style.visibility = "hidden";
     }
}

function startSpecialProd(jaar, maand, dag) {
    //alert(jaar + "-" + maand + "-" + dag);
 	var voorloop = "RAD_NL25_RAC_24H_" + jaar + maand + dag +  "0800.gif";
 	var tijd = "0800"; 
 	var prodlabel = "Cumulatieve neerslag over 24 uur"; tijd
 	var datumlabel = dag + "-" + maand + "-" + jaar;
	
 	var imgDest = document.getElementById("contentimg");
	var imgsrc = "/data/radar/cumulatief/" + voorloop	
    var l1 = document.getElementById("timeStamp")
	var l2 = document.getElementById("prodlabel")
    imgDest.setAttribute("src", imgsrc);
	l1.innerHTML = datumlabel;
	l2.innerHTML = prodlabel;
	var si  = document.getElementById("tijd");     
     si.style.visibility = "hidden";
}
function loadSpecialProduct()
{
 	var voorloop;
 	var SelectedIndex;
 	var prodlabel;
 	var product;
 	
 	var datum = document.getElementById("f_dag");
 	datum = datum.value
 	
 	var tijd = document.getElementById("tijd");
    var SelectedIndex = tijd.selectedIndex;
 	var inputtijd = tijd[SelectedIndex].value;
    var prods = document.getElementsByName("product");
  
            for (i = 0; i < prods.length; i++) {
            if (prods[i].checked) {
            product = prods[i].value;
            break;
            }
        }
     
    
    var brondatum = datum;
  	var mySplitResult = datum.split("-");
 	var val = String(mySplitResult[1]);
	if (val.length == 1) val = "0" + val;
    
    var val2 = String(mySplitResult[0]);
	if (val2.length == 1) val2 = "0" + val2;
 	
    datum =  mySplitResult[2] +   val +   val2;
   
     
 	switch(product) {
    case "1":
        voorloop = "/3h/RAD_NL25_RAC_03H_" + datum + inputtijd + ".gif";
        prodlabel = "Cumulatieve neerslag over 3 uur";
        break;
    
 	case "2":
 	    voorloop = "RAD_NL25_RAC_24H_" + datum +  "0800.gif";
 	    tijd = "0800"; 
 	    prodlabel = "Cumulatieve neerslag over 24 uur";
 	    break;
 	
 	case "3":
 	    voorloop = "LGT_NL21_LAP_24H_" + datum +  "0000.gif";
 	    prodlabel = "Cumulatief ontladingen over 24 uur";
 	    tijd = ""; 
 	    break;
 	
 	case "4":
 	    voorloop = "RAD_NL25_HAW_24H_" + datum +  "0000.gif";
 	    prodlabel = "Cumulatief hagel over 24 uur";
 	    tijd = ""; 
 	    break;
 	}
 		
 	var datumlabel = brondatum + " " +  inputtijd;
 	var imgDest = document.getElementById("contentimg");
	var imgsrc = "/data/radar/cumulatief/" + voorloop	
    var l1 = document.getElementById("timeStamp")
	var l2 = document.getElementById("prodlabel")
    imgDest.setAttribute("src", imgsrc);
	l1.innerHTML = datumlabel;
	l2.innerHTML = prodlabel;
return;
	}




function anistart() { 
    if(started == false) {     
        started = true;
        delay = 500/delayer;
        var strSpeed = "Snelheid " +  delayer + "x";
        document.getElementById("speedtag").innerHTML = strSpeed;
        aniid = setTimeout('animate()', delay);
    }
}

function anistop() {
     if(started) clearTimeout(aniid);       // bug if this was called before start
     started = false;                      // aniid would be undefined.
    }

function stepfwd() {
 
   crntimage++;
   var progchk = document.getElementById("chkprognose").checked;
   if (progchk == true) {
            MaxImages = TotalImages;
        }
        else {
            MaxImages = noImages;
        }
   //alert(MaxImages + "/" + crntimage);
   if(crntimage > MaxImages) crntimage = MaxImages;
   document.progimg.src = images[crntimage].src;
   doInnerHTML("timeStamp",  dtgs[crntimage]);
   doInnerHTML("timeStamp2",  dtgs[crntimage]);
   doInnerHTML("time2lbl", dtgs[crntimage] );
   document.radarlhtimg.src = lhtimages[crntimage].src;
   doInnerHTML("timeStamplht",  lhtdtgs[crntimage] );
   doInnerHTML("timeStamplht2",  lhtdtgs[crntimage] );
   changeColor("c" + crntimage, "#2B60DE" );
   
}

function stepback() {

   crntimage--;
   if(crntimage < 0) {
   crntimage = 0;
   }
   else {
   document.progimg.src = images[crntimage].src;
   doInnerHTML("timeStamp",  dtgs[crntimage] );
   doInnerHTML("timeStamp2",  dtgs[crntimage] );
   
   document.radarlhtimg.src = lhtimages[crntimage].src;
   doInnerHTML("timeStamplht",  lhtdtgs[crntimage] );
   doInnerHTML("timeStamplht2",  lhtdtgs[crntimage] );
  
   doInnerHTML("time2lbl", dtgs[crntimage] );
   var crntimage2 = crntimage + 1
   changeColor("c" + crntimage2, "#AFDCEC" );
   } 
}

function steptostart() {
   crntimage = 0;
   document.progimg.src = images[crntimage].src;
   doInnerHTML("timeStamp",  dtgs[crntimage] );
   doInnerHTML("timeStamp2",  dtgs[crntimage] );
   
   document.radarlhtimg.src = lhtimages[crntimage].src;
   doInnerHTML("timeStamplht",  lhtdtgs[crntimage] );
   doInnerHTML("timeStamplht2",  lhtdtgs[crntimage] );
   doInnerHTML("time2lbl", dtgs[crntimage] );
    
       for(x=1;x<=TotalImages; x++) {
        changeColor("c" + x, "#AFDCEC" );
        }
        if (started==true) {
        anistart();
        }
   }

function speedup() {
    var current_date = new Date;
    var cookie_year = current_date.getFullYear ( );
    var cookie_month = current_date.getMonth ( ) + 1;
    var cookie_day = current_date.getDate ( );
   delayer++;
   if(delayer > 4) delayer = 4;
   var strSpeed = "Snelheid " + delayer + "x";
   document.getElementById("speedtag").innerHTML = strSpeed;
   set_cookie("speed", delayer, cookie_year, cookie_month, cookie_day);
}

function slowdown() {
    var current_date = new Date;
    var cookie_year = current_date.getFullYear ( );
    var cookie_month = current_date.getMonth ( ) + 1;
    var cookie_day = current_date.getDate ( );
   delayer--;
   if(delayer < 1) delayer = 1;
   var strSpeed = "Snelheid " +  delayer + "x";
   document.getElementById("speedtag").innerHTML = strSpeed;
   set_cookie("speed", delayer, cookie_year, cookie_month, cookie_day);
}

 function changeColor(elementid, theColor) {
    //alert(elementid);
    var theColor2 = "Navy"
    if (theColor == "#2B60DE" && crntimage > noImages){ 
        theColor = "Red";
        theColor2 = "Red";
        }
      
    document.getElementById(elementid).style.backgroundColor = theColor;
   // document.getElementById("timebox").style.backgroundColor = theColor2;
   
}
 
 
function doInnerHTML(elementId, stringHTML) {
 
   try {
      var elem = document.getElementById(elementId);
      var children = elem.childNodes;
 
      for (var i = 0; i < children.length; i++) {
         elem.removeChild(children[i]);
      }
 
      var nodes = new DOMParser().parseFromString(stringHTML, 'text').documentElement;
      var range = document.createRange();
      range.selectNodeContents(
      document.getElementById(elementId));
      range.deleteContents();
 
      for (var i = 0; i < nodes.childNodes.length; i++) {
         document.getElementById(elementId).appendChild(document.importNode(nodes.childNodes[i], true));
      }
      return true;
      } catch (e) {
         try {
            document.getElementById(elementId).innerHTML = stringHTML;
            return true;
         }
      catch(ee) {
         return false;
      }
   }
}

function delete_cookie ( cookie_name )      {
        var cookie_date = new Date ( );  // current date & time
        cookie_date.setTime ( cookie_date.getTime() - 1 );
        document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
      }

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )  {
        var cookie_string = name + "=" + escape ( value );
        if ( exp_y ) {
          var expires = new Date ( exp_y, exp_m, exp_d );
          cookie_string += "; expires=" + expires.toGMTString();
        }
        if ( path )
              cookie_string += "; path=" + escape ( path );
        if ( domain )
              cookie_string += "; domain=" + escape ( domain );
        if ( secure )
              cookie_string += "; secure";
        document.cookie = cookie_string;
         }

 function get_cookie ( cookie_name ) {
         var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
         if ( results )
            return ( unescape ( results[2] ) );
         else
            return null;
         }

function Mid(str, start, len)
{
// Make sure start and len are within proper bounds
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
          iEnd = iLen;
    else
          iEnd = start + len;
    return String(str).substring(start,iEnd);
}



// Animation functionality
function anisetuphorb(imageList, DTGlist) {
   delay=500;
   c_animation = get_cookie("animation");
   c_speed = get_cookie("speed");
   c_prognose = false;
   c_bliksem = false;
   
   
   delayer = c_speed;
   if(delayer==null){delayer=1}; 
   if(c_animation==null){c_animation="false"}; 
   if(c_animation=="true"){document.getElementById("chkAnimation").checked = true;}
   
    aniupid=setTimeout('anirefresh()', 1000000);
    radarimage = imageList.split(",");   // feed it comma seperated list
    dtglables = DTGlist.split(",");
    noImages = (radarimage.length-1);  // we know how many to count through
    images = new Array();
    dtgs = new Array();
     
    var endtijd;
    var starttijd;
    
   
    for(x=0;x<=noImages; x++) {
      images[x] = new Image();
      images[x].src = radarimage[x];
      dtgs[x] = dtglables[x];
      endtijd  = dtgs[x];
     }
    
   endtijd  = dtgs[x-1];
   TotalImages = noImages;
   crntimage = noImages;
   endtijd = Mid(endtijd,3,5);
   starttijd = Mid(dtgs[0],3,5);
  
   document.getElementById("startbox").innerHTML = starttijd;
   document.getElementById("eindbox").innerHTML = endtijd;
   document.getElementById("startprogbox").innerHTML = "";
   
   document.progimg.src = images[crntimage].src;
   doInnerHTML("timeStamp",  dtgs[crntimage] );
   doInnerHTML("time2lbl", dtgs[crntimage] );
   
   for (x=0;x<=crntimage;x++) {
    changeColor("c" + x, "#2B60DE" );
   }
   var strSpeed = "Snelheid " + delayer + "x";
   document.getElementById("speedtag").innerHTML = strSpeed;

   if (c_animation == "true") {   
        started = false;
        anistart();
        } 
    }

