﻿function $G(element)
{
    return document.getElementById(element);
}
var UserIsAuthenticated = null;
function CheckUserAuthentication() {
    var values = {};
    HTTP.post("/Ajax/IsUserLoggedIn.aspx", values, UserIsAuthenticatedCallback);
}
function UserIsAuthenticatedCallback(values)
{
    if(values.authenticated != "true")
    {
        UserIsAuthenticated = false;
    }                    
    else
    {
        UserIsAuthenticated = true;
    }               
}

$(document).ready(function() {
    $(".GetLink").each(function(index) {
        $.getJSON("/Ajax/LinkToDocument.aspx", { DocumentID: $(this).attr("id") },
            function(data) {
                var currentLink = $('#' + data.ID);
                currentLink.attr("href", data.Url).attr("innerHTML", currentLink.attr("linkText"));
            });
    });
});

function LinkToDocument(documentID)
{
    values = {};
    values.DocumentID = documentID;
    HTTP.post("/Ajax/LinkToDocument.aspx", values, LinkToDocumentCallback);
    
}
function LinkToDocumentCallback(values) {    
    if(values.Success != "false") {            
        // doing this will cause the backend to have a urlreferrer. If we used document.location we wouldn't know
        // what page triggered the document and the back link could not named accurately.
        $("#LinkToOtherDocument").attr("href", values.Url).click();         
        
        
//        var linkToClick = document.createElement("a");
//        linkToClick.href = values.Url;
//        var forms = document.getElementsByTagName("form");
//        forms[0].appendChild(linkToClick);
//        alert(values.Url);
//        linkToClick.click();
    }
    else
    {
        if(values.FailureMessage!=null)alert(values.FailureMessage);
    }
}

function CurvedBoxes() {
    Nifty("div.TopicTextBoxHeader","top medium");             
    
    var hiddenBoxes = getElementsByClassName(document.getElementsByTagName("body")[0], "*", "VisibleAfterLoad");
    for (i=0; i<hiddenBoxes.length; i++)
    {
        hiddenBoxes[i].style.visibility = "visible";
    }
}
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];		
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }	
    }
    return (arrReturnElements)
}
function SearchTextBox_KeyPress(e, textBox, element)
{
    if(e.keyCode==13) // 13 is the keycode for enter.
    {
        if(ValidateText(textBox.value))
        {   
            element.click();  
            return false;              
        }
        return true;
    }
}
function ValidateText(value)
{
    if(value.length>0)
    {
        return true;
    }
    else
    {
        alert('Please enter a search term.');
        return false;
    }
}

function kp(e, element)
{
    if(e.keyCode==13) // 13 is the keycode for enter.
    {                
        element.onclick(); 
        return false;               
    }
    return true;            
}

function hidePressRelease()
{
    $G("PPRPopupContainer").style.visibility = "hidden";
}

function showPressRelease(e)
{
    var y = (980/2) - 300 + Geometry.getHorizontalScroll();
    var x = (Geometry.getViewportHeight()/2) - 100 + Geometry.getVerticalScroll();
    $G("PPRPopupContainer").style.left =  y + "px";
    $G("PPRPopupContainer").style.top =  x + "px";
    $G("PPRPopupContainer").style.visibility = "visible";
}
function toggleElementVisibility(elementID)
{
    var z = $G(elementID);
    if(z.style.visibility == "visible") {
        $G('AdvancedSearchLink').innerHTML = "+ Advanced Search";
        z.style.visibility = "hidden";
    }
    else {
        $G('AdvancedSearchLink').innerHTML = "- Advanced Search";
        z.style.visibility = "visible";
    }
}
function toggleListVisibility(element, triggeringLink)
{
    var z = $G(element);
    if(z.style.visibility == "hidden")
    {
        z.style.visibility = "visible";
        z.style.display = "block";
        triggeringLink.innerHTML = triggeringLink.innerHTML.replace("More", "Less");
        triggeringLink.innerHTML = triggeringLink.innerHTML.replace("»", "&laquo;");
    }
    else
    {
        z.style.visibility = "hidden";
        z.style.display = "none";
        triggeringLink.innerHTML = triggeringLink.innerHTML.replace("Less", "More");
        triggeringLink.innerHTML = triggeringLink.innerHTML.replace("«", "&raquo;");
    }
}    
// This function should only be called if the user is logged in
function SaveTextSize(textSize)
{    
    values = {};
    values.TextSize = textSize;
    HTTP.post("Ajax/SaveUserSettings.aspx", values, TextSizeSaved);
    // saving...
}

function TextSizeSaved(returnValue)
{
    //if(returnValue.Success)
    //{
        //alert("Success!");
        //$G("ctl00_SearchTextBox").value = parseInt($G("ctl00_SearchTextBox").value,10) + 1;
        //alert(returnValue);
    //}
    //else
    //{
        //alert("Failed!");
        //alert(returnValue);
    //}
}
function ClosePopupVideo()
{
    SetWindowEnabled();
    var popupContainer = $G("PopupVideoContainer");
    popupContainer.style.visibility = "hidden";
}

function StartVideo(video)
{
    $G("videoScreenContainer").innerHTML = "<a href=\"javascript:;\" onclick=\"DisplayVideoPlayer('" + video.Url + "', '" + video.UrlType + "')\" ><img src=\"/images/video.gif\" alt=\"Featured Video\" /></a>";
    $G("videoCaption").innerHTML = video.Caption;
}
function StartVideoFromLink(video) {
    $G("VideoPlayerTitle").innerHTML = video.Caption;
    $G("VideoPlayerDescription").innerHTML = video.Description;
    DisplayVideoPlayer(video.Url, video.UrlType, video.Caption);    
}
function setTitleBar(title)
{
    document.title = title + " - climate.bna.com ";
}
//var currentPlayingID = "none";
var autoStart = "true";
function LoadVideo(id, autoBegin) {
    autoStart = (autoBegin + "" == "undefined") ? "true" : autoBegin;
    values = {};
    values.VideoID = id;
    HTTP.post("/Ajax/GetVideo.aspx", values, StartVideoFromLink);
    ShowVideoLoadingMessage();

//    if ($G(currentPlayingID + "Image") != null && $G(currentPlayingID + "Image").src.toLowerCase().indexOf("/images/playbutton_on.gif")>-1) 
//    {
//        $G(currentPlayingID + "Image").src = "/images/playbutton_off.gif";
//    }
//    if ($G(id + "Image").src.toLowerCase().indexOf("/images/playbutton_off.gif") > -1) 
//    {
//        $G(id + "Image").src = "/images/playbutton_on.gif";
//    }
//    currentPlayingID = id;
}
function ShowDownVideoButton(id) {
    if ($G(id + "Image").src.toLowerCase().indexOf("/images/playbutton_off.gif") > -1) {
        $G(id + "Image").src = "/images/playbutton_on.gif";
    }
}
function ShowUpVideoButton(id) {
    if ($G(id + "Image").src.toLowerCase().indexOf("/images/playbutton_on.gif") > -1) {
        $G(id + "Image").src = "/images/playbutton_off.gif";
    }
}
function LoadVideoOfTheDay()
{
    autoStart = "false";
    values = {};
    values.VideoID = $G("videoOfTheDayID").value;
    HTTP.post("/Ajax/GetVideo.aspx", values, StartVideo);
    ShowVideoLoadingMessage();    
}
function ShowVideoLoadingMessage()
{
    $G("VideoPlayerTitle").innerHTML = "Loading...";
    $G("VideoPlayerDescription").innerHTML = "";
}
function DisplayVideoPlayer(uri, uritype, title) 
{    
    if(uri==null)
    {
        $G("videoPlayerNotInstalledContainer").style.visibility = "hidden";
        $G("videoPlayerNotInstalledContainer").style.display = "none";        
        $G("VideoPlayerScreen").innerHTML = "<span></span>";
        $G("VideoPlayerTitle").innerHTML = "We are sorry; this video is unavailable at this time. If this continues to occur please contact customer relations.";
    }
    else
    {    
        var uriExtension = uri.substring(uri.lastIndexOf(".")+1, uri.length);
        if(uritype == "SWF" || uri.indexOf("youtube") > 0)
        {                    
            if(uri.indexOf("watch?")>0){uri = uri.replace("watch?", "watch/");}
            if(uri.indexOf("/v=")>0){uri = uri.replace("/v=", "/v/");}
            var cmdPos = uri.indexOf("&rel=1")
            var playUri = "";
            if(cmdPos != -1)
            {
                playUri = uri.replace("&rel=1", "&autoplay=1");
            }
            else if (uri.indexOf("autoPlay") < 0)
            {
                playUri = uri + "&autoplay=1";        
            }     
            else
            {
                playUri = uri;
            }           
            EnableVideoOfTheDay();        

            if(GetSwfVer()!=-1)
            {
                $G("VideoPlayerScreen").innerHTML = "<span><object id='swfplayer'>" +
                "<param name=\"movie\" value=\"" + playUri + "\"></param>" +
                "<param name=\"wmode\" value=\"transparent\"></param>" +
                "<param name=\"width\" value=\"323\"></param>" +
                "<param name=\"height\" value=\"240\"></param>" +
                "<param name=\"pluginspage\" value=\"http://www.macromedia.com/go/getflashplayer\"></param>" +
                "<embed src=\"" + playUri + "\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"323\" height=\"240\" " +
                "pluginspage=\"http://www.macromedia.com/go/getflashplayer\">" +
                "</embed></object></span>";
            }
            else {
                $G("VideoPlayerScreen").innerHTML = "<span>It appears that you do not have a Flash player installed. Use the following link to install Flash: <br/><a href=\"http://www.macromedia.com/go/getflashplayer\">Get Flash</a></span>";
            }
        }
        else if (uriExtension.toLowerCase()=="wax" || uriExtension.toLowerCase()=="wmv"  || uriExtension.toLowerCase()=="wvx")
        {
            $G("VideoPlayerScreen").innerHTML = "<object ID=\"MediaPlayer\" WIDTH=\"320\" HEIGHT=\"240\" " +
                                                        " standby=\"Loading Windows Media Player components...\" type=\"application/x-ms-wmp\">" +
                                                        "<PARAM NAME=\"FileName\" VALUE=\""+uri+"\">" +
                                                        "<PARAM name=\"autostart\" VALUE=\"true\">" +
                                                        "<PARAM name=\"ShowControls\" VALUE=\"true\">" +
                                                        "<param name=\"ShowStatusBar\" value=\"true\">" +
                                                        "<PARAM name=\"ShowDisplay\" VALUE=\"false\">" +
                                                        "<EMBED TYPE=\"application/x-mplayer2\" SRC=\""+uri+"\" NAME=\"MediaPlayer\"" +
                                                        " WIDTH=\"320\" HEIGHT=\"240\" ShowControls=\"1\" ShowStatusBar=\"0\" ShowDisplay=\"0\" autostart=\"0\"> </EMBED>" +
                                                        "</object>";
        }
        else {
            if (RealPlayer.CheckIfInstalled() == false) {
                $G("VideoPlayerScreen").innerHTML = "<span>It appears that you do not have a RealPlayer installed. Use the following link to install RealPlayer and view the video: <br/><a href=\"http://www.real.com/realplayer\">Get RealPlayer</a></span>";           
            }            
            else {   
                EnableVideoOfTheDay();        
                $G("VideoPlayerScreen").innerHTML = "<EMBED id=\"videoScreen\" type=\"audio/x-pn-realaudio-plugin\" src=\"" + uri + "\" WIDTH=\"320\" HEIGHT=\"240\" NOJAVA=\"true\" autostart=\"true\" controls=\"ImageWindow\" console=\"one\"></EMBED>" +
                                        "<EMBED id=\"videoControl\" type=\"audio/x-pn-realaudio-plugin\" src=\"" + uri + "\" WIDTH=\"320\" HEIGHT=\"36\" NOJAVA=\"true\" controls=\"ControlPanel\" console=\"one\" </EMBED>" +
                                        "<EMBED id=\"videoStatus\" type=\"audio/x-pn-realaudio-plugin\" src=\"" + uri + "\" WIDTH=\"320\" HEIGHT=\"30\" NOJAVA=\"true\" controls=\"StatusBar\" console=\"one\" </EMBED>";
            }    
        }
    }
    if (autoStart == "true") {
        window.location = '#VideoPlayerBox';
    }
    else {
        window.location = '#SelectedNavigatorList';
    }
    document.title = title + " - climate.bna.com";
}    

function DisableVideoOfTheDay()
{
        //$G("videoScreenContainer").style.visibility = "hidden";
        //$G("videoScreenContainer").style.display = "block";  
}

function EnableVideoOfTheDay()
{
        //$G("videoScreenContainer").style.visibility = "visible";
        //$G("videoScreenContainer").style.display = "block";         
}

//---------------------------------------------------------
// RealPlayer stuff
//---------------------------------------------------------
var RealPlayer = new Object();    
RealPlayer._factories = [
    function() { return new ActiveXObject("rmocx.RealPlayer G2 Control"); },
    function() { return new ActiveXObject("rmocx.RealPlayer G2 Control.1"); },
    function() { return new ActiveXObject("RealPlayer"); },
    function() { return new ActiveXObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)"); },
    function() { return new ActiveXObject("RealVideo.RealVideo(tm) ActiveX Control (32-bit)"); }
];

RealPlayer.installed = null;
RealPlayer.CheckIfInstalled = function() {
    if (window.ActiveXObject) {
        if (RealPlayer._factory != null) return RealPlayer.installed;
        for (var i = 0; i < RealPlayer._factories.length; i++) {
            try {
                var factory = RealPlayer._factories[i];
                var realPlayer = factory();
                if (realPlayer != null) {
                    RealPlayer.installed = true;
                    return true;
                }
            }
            catch (e) {
                continue;
            }
        }
        return false;
    } else {
        for (var i = 0; i < navigator.plugins.length; i++) {
            if (navigator.plugins[i].name.indexOf("RealPlayer") >= 0) {
                return true;
            }
        }
        return false;
    }
}
function validateUSDate(strValue) {
    var objRegExp = /^\d{1,2}(\-|\/)\d{1,2}\1\d{4}$/;
     
    if(!objRegExp.test(strValue))
    {
        return false; //doesn't match pattern, bad date
    }
    else
    {
        var matchArray = strValue.match(objRegExp);
        var strSeparator = matchArray[1]; //strValue.substring(2,3) 
        var arrayDate = strValue.split(strSeparator);
        //create a lookup for months not equal to Feb.
        var arrayLookup = { 1:31,3:31, 
                            4:30,5:31,
                            6:30,7:31,
                            8:31,9:30,
                            10:31,11:30,12:31}
        var intDay = parseInt(arrayDate[1],10); 
        var intMonth = parseInt(arrayDate[0],10);
        //check if month value and day value agree
        if(arrayLookup[intMonth] != null) {
          if(intDay <= arrayLookup[intMonth] && intDay != 0)
            return true; //found in lookup table, good date
    }

    //check for February (bugfix 20050322)
    if (intMonth == 2) { 
       var intYear = parseInt(arrayDate[2]);
       if (intDay > 0 && intDay < 29) {
           return true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 == 0) && (intYear % 100 != 0) || 
             (intYear % 400 == 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             return true;
         }   
       }
    }
    }  
    return false; //any other values, bad date
}