/*

javascript for ajax like request to update the weather location
and corresponding data on the fly

 */

/* load widget for the first time on this page */
function wpf_load() 
{
    // get cookie
    if(document.cookie){ 
	a = document.cookie;
	cookiename = a.substring(0,a.indexOf('='));
	if(a.indexOf(';') != -1){
	    cookiewert = a.substring(a.indexOf('=')+1,a.indexOf(';'));
	} else {
	    cookiewert = a.substr(a.indexOf('=')+1,a.length);
	}
	// set selected location
	if (cookiename == 'location')
	   document.getElementById("wpf_selector").value = cookiewert;
    }
    // update widget
    wpf_update();
}
/* get the data for the new location */
function wpf_update()
{
    var newloc   = document.getElementById("wpf_selector").value;
    var siteuri  = document.getElementById("wpf_selector_site").value; 
    var language = document.getElementById("wpf_language").value;

    // set cookie with newloc
    var expire = new Date();
    expire = new Date(expire.getTime() +1000*60*60*24*365);
    document.cookie = escape("location=" + newloc) + 
	'; expires='+expire.toGMTString()+';';

    jQuery.get(siteuri + "/wp-forecast-show.php", 
	       { wpfcid: newloc, header: "0" , selector: "1" , language_override: language },
	       function(data){
		   /*
		   var b = data.indexOf(">");
		   var e = data.lastIndexOf("<");
		   data  = data.substring(b + 1, e - 1);
		   */
		   jQuery("div#wp-forecastA").html(data);
	       });
}

/* javascript to rebuild the onLoad event for triggering 
   the first wpf_update call */

//create onDomReady Event
window.onDomReady = initReady;

// Initialize event depending on browser
function initReady(fn)
{
    //W3C-compliant browser
    if(document.addEventListener) {
	document.addEventListener("DOMContentLoaded", fn, false);
    }
    //IE
    else {
	document.onreadystatechange = function(){readyState(fn)}
    }
      }

//IE execute function
function readyState(func)
{
    // DOM is ready
      	if(document.readyState == "interactive" || document.readyState == "complete")
      	{
	    func();
      	}
}
