// <![CDATA[

// Modified for second set of ajax functions in testing mode 1/31/2011
// -- begin settings --------------------------------------------------------------------------
var flashcolor2 = '#32B800'; // color to flash for changed observations RGB
var flashtime2  = 2000;       // miliseconds to keep flash color on (2000 = 2 seconds);
var reloadTime2 = 60000;       // reload AJAX conditions every 5 seconds (= 5000 ms)
var maxupdates2 = 0;	         // Maxium Number of updates allowed (set to zero for unlimited)
                             // maxupdates * reloadTime / 1000 = number of seconds to update
var clientrawl2kFile = '../lightning/mysummary.txt'; // location of clientraw.txt relative to this page on website
//var clientraw2File = '/clientraw.txt'; // location of clientraw.txt relative to this page on website
var ajaxLoader2InBody = false; // set to true if you have <body onload="ajaxLoader(..."
var doTooltip = true;      // set to true to show tooltips over ajax variables
//-----------------------------------------------------------------------------------------------

var ie4=document.all;
var browser = navigator.appName;
var ie8 = false;
if (ie4 && /MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
 var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (ieversion>=8) {
   ie4=false;
   ie8=true;
 }
}

var counterSecs2 = 0;  // for MCHALLIS counter script from weather-watch.com (adapted by K. True)
var updates2 = 0;		// update counter for limit by maxupdates
var lastajax2timeformat = 'unknown'; //used to reset the counter when a real update is done
var doTooltip2 = 0;   // set to 1 to have ajaxed variable names appear as tooltips (except for graphics)
var langPauseMsg2 = 'The updates are paused - reload page to start'; // substitute this for ajaxindicator when
                             // maxupdates has been reached and updating paused.
							 
	

// ------------------------------------------------------------------------------------------
//  main function.. read clientraw.txt and format <span class="ajax2" id="ajax..."></span> areas
// ------------------------------------------------------------------------------------------

// utility functions to navigate the HTML tags in the page
function get_ajax2_tags ( ) {
// search all the span tags and return the list with class="ajax2" in it
//
  if (ie4 && browser != "Opera" && ! ie8) {
    var elem = document.body.getElementsByTagName('span');
	var lookfor = 'className';
  } else {
    var elem = document.getElementsByTagName('span');
	var lookfor = 'class';
  }
     var arr = new Array();
	 var iarr = 0;
     for(var i = 0; i < elem.length; i++) {
          var att = elem[i].getAttribute(lookfor);
          if(att == 'ajax2') {
               arr[iarr] = elem[i];
               iarr++;
          }
     }

	 return arr;

}

function reset_ajax2_color( usecolor ) {
// reset all the <span class="ajax2"...> styles to have no color override
      var elements = get_ajax2_tags();
	  var numelements = elements.length;
	  for (var index=0;index!=numelements;index++) {
         var element = elements[index];
	     element.style.color=usecolor;
 
      }
}

function set_ajax2_obs( name, value ) {
// store away the current value in both the doc and the span as lastobs="value"
// change color if value != lastobs

		var element = document.getElementById(name);
		if (! element ) { return; } // V1.04 -- don't set if missing the <span id=name> tag
		var lastobs = element.getAttribute("lastobs");
		element.setAttribute("lastobs",value);
		if (value != unescape(lastobs)) {
          element.style.color=flashcolor2;
		  if ( doTooltip ) { element.setAttribute("title",'AJAX tag '+name); }
		  element.innerHTML =  value; // moved inside to fix flashing issue (Jim at jcweather.us)
		}
}

function set_ajax2_uom( name, onoroff ) {
// this function will set an ID= to visible or hidden by setting the style="display: "
// from 'inline' or 'none'

		var element = document.getElementById(name);
		if (! element ) { return; } 
		if (onoroff) {
          element.style.display='inline';
		} else {
          element.style.display='none';
		}
}
function flashratecolour( flashrate ) {
  if (flashrate > 1) { return ('<span style="border: solid 1px; color: white; background-image:url(./ajax-images/CSS-images/eheatd.gif);">&nbsp;'+clientrawl2k[90]+'&nbsp;</span>'); }
  if (flashrate > 2) { return ('<span style="border: solid 1px; color: white; background-image:url(./ajax-images/CSS-images/heatd.gif);">&nbsp;'+clientrawl2k[90]+'&nbsp;</span>'); }
  if (flashrate > 3) { return ('<span style="border: solid 1px; color: black; background-image:url(./ajax-images/CSS-images/ehot.gif);">&nbsp;'+clientrawl2k[90]+'&nbsp;</span>'); }
  if (flashrate > 4) { return ('<span style="border: solid 1px; color: white; background-image:url(./ajax-images/CSS-images/hot.gif);">&nbsp;'+clientrawl2k[90]+'&nbsp;</span>'); }
  
  return flashrate;
}

// function to add colored lightning
function lightColor(light) {
  if (light > 200) { return ('<span style="border: 0px; color: white; background-color: #CC33CC;">&nbsp;<b>EXTREME</b>&nbsp;</span>'); } 
  if (light > 120) { return ('<span style="border: 0px; color: white; background-color: #FF0000;">&nbsp;<b>SEVERE</b>&nbsp;</span>'); } 
  if (light > 60) { return ('<span style="border: 0px; color: black; background-color: #FF6600;">&nbsp;<b>STRONG</b>&nbsp;</span>'); }
  if (light > 25) { return ('<span style="border: 0px; color: black; background-color: #FFFF00;">&nbsp;<b>MODERATE</b>&nbsp;</span>'); }
  if (light > 6) { return ('<span style="border: 0px; color: yellow; background-color: #4A4A4A;">&nbsp;<b>ACTIVE</b>&nbsp;</span>'); }
  if (light > 1) { return ('<span style="border: 0px; color: aqua; background-color: #4A4A4A;">&nbsp;<b>LOW</b>&nbsp;</span>'); }

  return("QUIET");
}

			 // Mike Challis' counter function (adapted by Ken True)
//
function ajax2_countup() {
 var element = document.getElementById("ajax2counter");
 if (element) {
  element.innerHTML = counterSecs2;
  counterSecs2++;
 }
}


//  main function.. read mysummary.txt and format <span class="ajax" id="ajax..."></span> areas
// ------------------------------------------------------------------------------------------


function ajaxLoader2(url) {

  if (document.getElementById) {
    var x = (typeof window.ActiveXObject != 'undefined') ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(url);
  }
  if (x) { // got something back
    x.onreadystatechange = function() {
    try { if (x.readyState == 4 && x.status == 200) { // Mike Challis added fix to fix random error: NS_ERROR_NOT_AVAILABLE 
    var clientrawl2k = x.responseText.split('|');
	
	if( updates2 <= maxupdates2 || maxupdates2 > 0   ) {
		if (maxupdates2 > 0 ) {updates2++; } // increment counter if needed

		//Totalflashes
		var totalflashes = clientrawl2k[0];
		set_ajax2_obs("ajaxtotalflashes",totalflashes);
		
		var posCGflashes = clientrawl2k[1];
		set_ajax2_obs("ajaxposcgflashes",posCGflashes);
        
        var negCGflashes = clientrawl2k[2];
		set_ajax2_obs("ajaxnegcgflashes",negCGflashes);
        
        var posICflashes = clientrawl2k[3];
		set_ajax2_obs("ajaxposicflashes",posICflashes);
        
        var negICflashes = clientrawl2k[4];
		set_ajax2_obs("ajaxnegicflashes",negICflashes);
        
        var totalstrokes = clientrawl2k[5];
		set_ajax2_obs("ajaxtotalstrokes",totalstrokes);
        
        var posCGstrokes = clientrawl2k[6];
		set_ajax2_obs("ajaxposcgstrokes",posCGstrokes);
        
        var negCGstrokes = clientrawl2k[7];
		set_ajax2_obs("ajaxnegcgstrokes",negCGstrokes);
        
        var posICstrokes = clientrawl2k[8];
		set_ajax2_obs("ajaxposicstrokes",posICstrokes);
        
        var negICstrokes = clientrawl2k[9];
		set_ajax2_obs("ajaxnegicstrokes",negICstrokes);
        
        var strongflashes = clientrawl2k[10];
		set_ajax2_obs("ajaxstrongflashes",strongflashes);
        
        var stormcount = clientrawl2k[11];
		set_ajax2_obs("ajaxstormcount",stormcount);
        
        var yellowalertsno = clientrawl2k[12];
		set_ajax2_obs("ajaxnoyelalerts",yellowalertsno);
        
        var redalertsno = clientrawl2k[13];
		set_ajax2_obs("ajaxnoredalerts",redalertsno);
        
        var ratiostrikesflash = clientrawl2k[14];
		set_ajax2_obs("ajaxratiostrokesperflash",ratiostrikesflash);
        
        var recallflashes = clientrawl2k[15];
		set_ajax2_obs("ajaxrecallflashes",recallflashes);
        
        var recallstrokes = clientrawl2k[16];
		set_ajax2_obs("ajaxrecallstrokes",recallstrokes);
  
        var recposcgflashes = clientrawl2k[17];
		set_ajax2_obs("ajaxrecposcgflashes",recposcgflashes);
        
        var recnegcgflashes = clientrawl2k[18];
		set_ajax2_obs("ajaxrecnegcgflashes",recnegcgflashes);
		
		var recposicflashes = clientrawl2k[19];
		set_ajax2_obs("ajaxrecposicflashes",recposicflashes);
		
		var recnegicflashes = clientrawl2k[20];
		set_ajax2_obs("ajaxrecnegicflashes",recnegicflashes);
		
		var recposcgstrokes = clientrawl2k[21];
		set_ajax2_obs("ajaxrecposcgstrokes",recposcgstrokes);
		
		var recnegcgstrokes = clientrawl2k[22];
		set_ajax2_obs("ajaxrecnegcgstrokes",recnegcgstrokes);
		
		var recposicstrokes = clientrawl2k[23];
		set_ajax2_obs("ajaxrecposicstrokes",recposicstrokes);
		
		var recnegicstrokes = clientrawl2k[24];
		set_ajax2_obs("ajaxrecnegicstrokes",recnegicstrokes);
		
        var trendflashrate = clientrawl2k[25];
		set_ajax2_obs("ajaxtrendflashrate",trendflashrate  + "%");
		
		var trendstrokerate = clientrawl2k[26];
		set_ajax2_obs("ajaxtrendstrokerate",trendstrokerate + "%");
		
		var detectionrate = clientrawl2k[27];
		set_ajax2_obs("ajaxdetectionrate",detectionrate + "%");
		
		var flashlastfive = clientrawl2k[28];
		set_ajax2_obs("ajaxflashfive",flashlastfive);

		var flashlastthirty = clientrawl2k[33];
		set_ajax2_obs("ajaxflashthirty",flashlastthirty);

		var flashlastsixty = clientrawl2k[39];
		set_ajax2_obs("ajaxflashsixty",flashlastsixty);
		
		var flashcloseintense = clientrawl2k[85];
		set_ajax2_obs("ajaxflashcloseintense",flashcloseintense);

		var flashregionintense = clientrawl2k[91];
		set_ajax2_obs("ajaxflashregionintense",flashregionintense);
		
		var flashrate = clientrawl2k[81];
		set_ajax2_obs("ajaxflashrate",flashrate + "/min");

        var strokerate = clientrawl2k[82];
		set_ajax2_obs("ajaxstrokerate",strokerate + "/min") ;
        
        var noiserate = clientrawl2k[83];
		set_ajax2_obs("ajaxnoiserate",noiserate + "/min") ;
		
		var flashclose = clientrawl2k[84];
		set_ajax2_obs("ajaxflashclose",flashclose);

		var flashreg = clientrawl2k[90];
		set_ajax2_obs("ajaxflashreg",flashreg);	
		}
		
		// Lightning added by Webster Weather LIVE for Alt-Dashboard Script Version 2.80 or later
		lightlastminute = clientrawl2k[82];
                          lightlastminute = lightColor(lightlastminute);
		set_ajax2_obs("ajaxlightning",lightlastminute);


		// Current Time 2 settings
		
		// All combined you could end up with   Mon Nov 14, 2007
		// 
		// Uses mysummary elements:
		// Hour 29  Min 30  Day 35  Month 36  Year 141
		// Added 2007-11-14 by Kevin Reed TNETWeather.com
		//======================================================================
		var ntime = clientrawl2k[96];
		
		//
		set_ajax2_obs("ajax2ntime", ntime );
		
		// Current Time 2 settings

        // current date and time of observation in clientraw.txt
		var ajax2timeformat = clientrawl2k[96];
		var ajax2dateformat = clientrawl2k[98];

		set_ajax2_obs("ajax2datetime",ajax2dateformat + " " +ajax2timeformat);
		set_ajax2_obs("ajax2date",ajax2dateformat);
		set_ajax2_obs("ajax2time",ajax2timeformat);
		
		if (lastajax2timeformat != ajax2timeformat) {
			counterSecs2 = 0;                      // reset timer
			lastajax2timeformat = ajax2timeformat; // remember this time
		}
		
	// now ensure that the indicator flashes on every AJAX fetch
        var element = document.getElementById("ajaxindicator3");
		if (element) {
          element.style.color = flashcolor2;
			
		
		}

 	 	   

	 } // END if (x.readyState == 4 && x.status == 200)

    } // END try

   	catch(e){}  // Mike Challis added fix to fix random error: NS_ERROR_NOT_AVAILABLE

    } // END x.onreadystatechange = function() {
    x.open("GET", url, true);
    x.send(null);

//  reset the flash colors, and restart the update unless maxupdate limit is reached

    setTimeout("reset_ajax2_color('')",flashtime2); // change text back to default color 

	if ( (maxupdates2 == 0) || (updates2 < maxupdates2-1)) {
      setTimeout("ajaxLoader2(clientrawl2kFile + '?' + new Date().getTime())", reloadTime2); // get new data 
    }
  }
} // end ajaxLoader function

//element = document.getElementById("ajaxcounter");
//if (element) {
  window.setInterval("ajax2_countup()", 1000); // run the counter for seconds since update
//}

// invoke when first loaded on page
if (!ajaxLoader2InBody) {ajaxLoader2(clientrawl2kFile + '?' + new Date().getTime(), reloadTime2); }

// ]]>
