/********************************************************************
 *
 * Manages Alert area: Amber and Weather
 * Author: TTI, Gabriel Torres
 * Date:   January 25, 2008
 *
 *******************************************************************/

var alertMgr          = new AlertMgr();
var veLayerAlerts     = null; //section not loaded by default
var kEPWeatherRSSFile = "RSS/EPWEATHER.XML?";

//Gabriel Torres, Sep 7, 2007
//Weather Alerts
function AlertMgr()
{

var msXMLFeedName  = "";
var mxmlFeed       = null;
var msXMLTimeStamp = "";

// load xml rss feed
// created: Gabriel, 9/7/07
function ReadAlerts(sXMLName)
{    
    if (window.ActiveXObject)
    {   // code for IE
	    mxmlFeed = new ActiveXObject("Microsoft.XMLDOM");
	    mxmlFeed.async = false;
    }    
    else if (document.implementation && document.implementation.createDocument)
    {   // code for Mozilla, Firefox, Opera, etc.
	    mxmlFeed=document.implementation.createDocument("","doc",null);
    }
    else
    {   //unsuported browser
	    alert('Your browser cannot handle this script');
    }    
    msXMLFeedName = sXMLName;
    RefreshAlerts();
}             
this.ReadAlerts = ReadAlerts;

// delete and reload xml rss feed
// created: Gabriel, 9/7/07
function RefreshAlerts()
{
    window.status = "Checking Weather Alerts";
    try         
    {   
        mxmlFeed.load(msXMLFeedName); // "?" + iAlertRefresh++);
        LoadXMLAlerts();
    }
    catch(e)         
    {   //problem reading weather alerts, show amber alert
        //alert("Problem reading weather RSS: \nName: " + e.name + "\nMessage: " + e.message + "\nNumber: " + e.number);
        ToggleAlert("AMBER");
    }   
    window.status = "";
}
this.RefreshAlerts = RefreshAlerts;

// parse Alert xml
// Created: Gabriel, 9/7/07
function LoadXMLAlerts()
{
    var root = mxmlFeed.getElementsByTagName("rss")[0];
    var channel = root.getElementsByTagName("channel")[0];
    var xItems = null, xURL = null;
    var sTitle = "", sDescription = "", sTS = "", sURL = "", sTime = "";
    var iAlert = 0;
    
    xItems = channel.getElementsByTagName("item");
    if (xItems.length > 0)
    {
        try         
        {            
            sTitle = xItems[iAlert].getElementsByTagName("title")[0].firstChild.nodeValue;
            xURL = xItems[iAlert].getElementsByTagName("enclosure");
            sURL = xURL[0].getAttribute('url');
            if (sURL.indexOf(".mp3") > -1)
                sURL = "<a style='color:navy; text-decoration:underline;' target='_blank' href='" + 
                       sURL + "'>Listen to the current weather conditions.</a>";
            else
                sURL = "";
                
            if (msXMLTimeStamp != "") sTime = " (" + msXMLTimeStamp + ")"; 
            
            if (sTitle.substr(0,2) == "No")
            { 
                $("spAlert").innerHTML = "No current weather alerts for the El Paso region. ";// + sURL + sTime;
                ToggleAlert("AMBER");
            }
            else
            {
                sDescription = xItems[iAlert].getElementsByTagName("description")[0].firstChild.nodeValue;                                
                sTS = xItems[iAlert].getElementsByTagName("pubDate")[0].firstChild.nodeValue;
//                $("spAlert").innerHTML = "<font color='Red' style='font-weight:bold'>" +
//                                         sDescription + ".</font> " + sURL + sTime;
                ToggleAlert("WEATHER");            
            }
        }
        catch(e)         
        {   //problem reading weather alerts, show amber alert
            //alert("Problem reading weather RSS: \nName: " + e.name + "\nMessage: " + e.message);
            ToggleAlert("AMBER");
        }   
    }
}

// toggle weather and amber alert area
// Created: Gabriel, 9/7/07
function ToggleAlert(sDisplay)
{    
    if (sDisplay.toUpperCase() == "WEATHER")
    {            
        ttiTools.showElement("divWeatherAlert");
        ttiTools.hideElement("divAmberAlert");
    }
    else
    {
        ttiTools.showElement("divAmberAlert");
        ttiTools.hideElement("divWeatherAlert");
    }
}
this.ToggleAlert = ToggleAlert;
}


//Show weather alerts
function LoadAlerts(go)
{
    showProgressIndicator("Reading alerts");
    if (!go)
        setTimeout(function() { LoadAlerts(1); }, iAsyncDelay);
    else {
        //System.security.allowDomain("www.srh.noaa.gov");
        alertMgr.ReadAlerts(kEPWeatherRSSFile + GetRan());
        hideProgressIndicator();
    }
}