﻿
/*
    Computer Science Group, LLC
    225-766-2397 office
    225-205-0263 cell
    darrell@computersciencegroup.com
    Copyright © 2008 Computer Science Group, LLC, All rights reserved.
*/

var oHelpAboutWindow;
var oHelpContactUsWindow;
var oTCEQRecommendedLatLongToUTMConversion
//******************************************************************************************************
//home page content featured item buttons
//imageButtons
var opageFeaturedItemTXEIMacroUpgrade;
var opageFeaturedItemStepByStepGuide;
var opageFeaturedItemTexasEIToolsData;
var opageFeaturedItemAPSummaryStatisticsByContaminantCode;
var opageFeaturedItemEmissionsCharting;
var opageFeaturedItemTexasEIToolsReports
var opageFeaturedItemCalendarDownload
var opageFeaturedItemTexasDevDeviationReport
var opageFeaturedItemExcelHome
//******************************************************************************************************

var pageDocumentIsLoadingMsg = "Document is still loading. Please wait until document is loaded.";
var ocurrentPageMenuButtonHomePageDIVId;
var pageMustBeLoggedInToDownloadSpreadsheet = "You must be logged in to download this spreadsheet.";

//csgPage()
//08/17/2009
function csgPage()
{
    var oCsgPage = this;    
    /****************************************************************************************
    properties
    ****************************************************************************************/
    //used by dropDownList
    this.currentElement = false;
    this.userTypeSystemAdministrator = 1;
    this.userTypeAccountAdministrator = 2;
    //position the updatate panel uniformly.
    this.updatePanelTop = "175px";
    this.updatePanelLeft = "150px";
    //09/04/2009
    //system exception errors
    this.systemExceptionErrors = new Array();
    /****************************************************************************************
    methods
    ****************************************************************************************/
    //getThisElement(<spID>)
    //09/08/2008
    this.getThisElement = function(spID)
    {
        var oElement;
        try { oElement = $get(eval(spID)); }
        catch(err) { /* ignore the error */ }
        return oElement
    }
    //stringTrim(<spString>)
    //09/08/2008
    this.stringTrim = function(spString) { return spString.replace(/^\s+|\s+$/g,""); }
    //findElementPosition(<oElement>)
    //09/24/2009
    this.findElementPosition = function(oElement)
    {
	    var oTop = 0;
	    var oLeft = 0;
	    if (oElement)
	    {
	        if (oElement.offsetParent)
	        {
                do
                {
			        oTop += oElement.offsetTop;
                    oLeft += oElement.offsetLeft;
                } while (oElement = oElement.offsetParent);
            }
        }
        //return an object with top and left properties
        return {top:oTop, left:oLeft}; 
    }
    //setElementValue(<spID>, <opValue>)
    //09/08/2008
    this.setElementValue = function(spID, opValue)
    {
        var oElement = oCsgPage.getThisElement(spID)
        if (oElement) { oElement.value = opValue; }
    }
    //setCurrentElement(<opElement>)
    //09/08/2008
    this.setCurrentElement = function(opElement)
    {
        if (typeof(opElement) == "object") { oCsgPage.currentElement = opElement; }
    }
    //setFocusToCurrentElement()
    //09/08/2008
    this.setFocusToCurrentElement = function()
    {
        if (typeof(oCsgPage.currentElement) == "object") { oCsgPage.currentElement.focus(); }
    }
    //processString(<spString>)
    //09/08/2008
    this.processString = function(spString) { return spString.replace(/&amp;/, "&"); }
    //removeHTMLTags(<spText>)
    //10/14/2008
    this.removeHTMLTags = function(spText)
    {
        var sText = "";
        var bGotHTML = false;
        var sChar = "";
        for (var i = 0; i < spText.length; i++)
        {
            sChar = spText.substr(i, 1);
            if (sChar == "<") { bGotHTML = true; }
            else
            {
                if (bGotHTML == true) { if (sChar == ">") { bGotHTML = false; } }
                else { sText = sText + sChar; }
            }
        }
        return sText;
    }
    //validateTimeStamp()
    //09/08/2008
    this.validateTimeStamp = function(opID)
    {
        var oElement;
        var oAttributes;
        var opSessionTimeStamp;
        var oReturn = true;
        oAttributes = oCsgPage.getLoggedInUserInfo();
        if (oAttributes.sessionTimeStamp)
        {
            if (oAttributes.sessionTimeStamp.value)
            {
                opSessionTimeStamp = $get(opID);
                if (opSessionTimeStamp)
                {
                    if (opSessionTimeStamp.value)
                    {
                        oReturn = (oAttributes.sessionTimeStamp.value == opSessionTimeStamp.value);
                    }
                }
            }
        }
        return oReturn;
    }
    //loginFailure()
    //08/22/2009
    this.loginFailure = function()
    {
        alert("Log in failure detected. Home page will reload.");
        top.location.href = __defaultAspx;
    }
    //permissionDelete()
    //permissionInsert()
    //permissionSelect()
    //permissionUpdate()
    //09/09/2008
    this.permissionDelete = function()
    {
        var oReturn = false;
        if (ocsgPage.pagePermissionDelete) { try { oReturn = ocsgPage.pagePermissionDelete(); } catch(e) {}; }
        else {  try { oReturn = __permissionDelete; } catch(e) {}; }
        return oReturn;
    }
    this.permissionInsert = function()
    {
        var oReturn = false;
        try { oReturn = __permissionInsert; } catch(e) {}
        return oReturn;
    }
    this.permissionSelect = function()
    {
        var oReturn = false;
        try { oReturn = __permissionSelect; } catch(e) {}
        return oReturn;
    }
    this.permissionUpdate = function()
    {
        var oReturn = false;
        try { oReturn = __permissionUpdate; } catch(e) {}
        return oReturn;
    }
    //07/17/2009
    this.versionInfoString = function()
    {
        oReturn = false;
        try { oReturn = __csgVersion; } catch(e) {}
        return oReturn;
    }
    //getLoggedInUserInfo()
    //08/29/2009
    this.getLoggedInUserInfo = function()
    {
        var oHidden;
        var oElement;
        var oAttributes = new Object();
        oAttributes.hiddenUserName = false;
        oAttributes.hiddenAccountName = false;
        oAttributes.sessionTimeStamp = false;
        oAttributes.loggedInUser = false;
        oAttributes.loggedInAccountName = false;
        //get the properties
        //__logInUserName is the hidden field holding the currently logged in user
        oHidden = oCsgPage.getHiddenField("__logInUserName");
        if (oHidden) { oAttributes.hiddenUserName = oHidden; }
        oHidden = oCsgPage.getHiddenField("__logInAccountName");
        if (oHidden) { oAttributes.hiddenAccountName = oHidden; }
        oHidden = oCsgPage.getHiddenField("__logInTimeStamp");
        if (oHidden) { oAttributes.sessionTimeStamp = oHidden; }
        oElement = $get("__pageHeaderLogInUserPromptTD");
        if (oElement) { oAttributes.loggedInUser = oElement; }
        oElement = $get("__pageHeaderLogInAccountPromptTD");
        if (oElement) { oAttributes.loggedInAccountName = oElement; }
        return oAttributes;
    }
    //getHiddenField(<oId>)
    //08/29/2009
    this.getHiddenField = function(oId)
    {
        var oReturn;
        try { oReturn = $get(oId); }
        catch(e) { oReturn = false; }
        return oReturn;
    }
    //initializePage()
    //08/29/2009
    this.initializePage = function()
    {
        var opageHeaderDIV;
        var opageFooterDIV;
        var opageHeaderVersionTD;
        var slogInUserNameValue = "No User";
        var slogInAccountNameValue = "No Account";
        var ologInUserName;
        var ologInAccountName;
        var opageHeaderLogInAccountA;
        var opageHeaderLogIInUserA;
        var opageSelectionsHelpMyAccountA;
        var opageSelectionsHelpMyAccountButtonMenuA;
        var opageFooterLoggedInUserA;
        var opageFooterVersionTD;
        var opageFooterCopyrightTD;
        var ocsgPermissions;
        /*****************************************************************************
        unload event added to pages
        //02/23/2010
        *****************************************************************************/
        var oldonuload = window.onunload;
        if (typeof window.onunload != 'function')
        {
	        window.onunload = pageUnloadPopUps;
        }
        else
        {
            window.onunload = function()
            {
	            oldonuload();
	            pageUnloadPopUps();
	        }
        }
        /*****************************************************************************
        log in info
        *****************************************************************************/
        //__logInAccountName is the hidden field holding the currently logged in account
        ologInAccountName = $get("__logInAccountName");
        if (ologInAccountName)
        {
            if (ologInAccountName.value) { slogInAccountNameValue = ologInAccountName.value; }
        }   
        //__logInUserName is the hidden field holding the currently logged in user
        ologInUserName = $get("__logInUserName");
        if (ologInUserName)
        {
            if (ologInUserName.value) { slogInUserNameValue = ologInUserName.value; }
        }
        /*****************************************************************************
        header
        *****************************************************************************/
        opageHeaderVersionTD = $get("__pageHeaderVersionTD");
        if (opageHeaderVersionTD) { opageHeaderVersionTD.innerHTML = __csgVersion; }
        opageHeaderLogInAccountA = $get("__pageHeaderLogInAccountA");
        if (opageHeaderLogInAccountA) { opageHeaderLogInAccountA.innerHTML = slogInAccountNameValue; }
        opageHeaderLogIInUserA = $get("__pageHeaderLogInUserA");
        if (opageHeaderLogIInUserA) { opageHeaderLogIInUserA.innerHTML = slogInUserNameValue; }
        opageHeaderVersionTDTD = $get("__pageHeaderVersionTD");
        if (opageHeaderVersionTDTD) { opageHeaderVersionTDTD.innerHTML = "(" + __csgVersion + ")"; }
        opageHeaderDIV = $get("__pageHeaderDIV");
        /*****************************************************************************
        menus
        *****************************************************************************/
        opageSelectionsHelpMyAccountA = $get("__pageSelectionsHelpMyAccountA");
        if (opageSelectionsHelpMyAccountA) { opageSelectionsHelpMyAccountA.innerHTML = slogInUserNameValue; }
        opageSelectionsHelpMyAccountButtonMenuA = $get("__pageSelectionsHelpMyAccountButtonMenuA");
        if (opageSelectionsHelpMyAccountButtonMenuA) { opageSelectionsHelpMyAccountButtonMenuA.innerHTML = slogInUserNameValue; }
        //log in menus
        oCsgPage.updateAllUniqueElements("__pageSelectionsHomeLogInTD");
        oCsgPage.updateAllUniqueElements("__pageSelectionsHomeLogInA");
        /*****************************************************************************
        footer
        *****************************************************************************/
        opageFooterLoggedInUserA = $get("__pageFooterLoggedInUserA");
        if (opageFooterLoggedInUserA) { opageFooterLoggedInUserA.innerHTML = slogInUserNameValue; }
        opageFooterCopyrightTD = $get("__pageFooterCopyrightTD");
        if (opageFooterCopyrightTD) { opageFooterCopyrightTD.innerHTML = __csgCopyright; }
        opageFooterVersionTD = $get("__pageFooterVersionTD");
        if (opageFooterVersionTD) { opageFooterVersionTD.innerHTML = __csgVersion; }
        ocsgPermissions = $get("__csgPermissions");
        if (ocsgPermissions) { ocsgPermissions.innerHTML = __csgPagePermissions;}
        //******************************************************************************************************
        //featured items imageButtons
        if ($get("__pageFeaturedItemTXEIMacroUpgrade")) { opageFeaturedItemTXEIMacroUpgrade = new csgImageButton("__pageFeaturedItemTXEIMacroUpgrade", false, "Upgrade Texas Emission Inventory Export/Import Macro Spreadsheet"); }
        if ($get("__pageFeaturedItemStepByStepGuide")) { opageFeaturedItemStepByStepGuide = new csgImageButton("__pageFeaturedItemStepByStepGuide", false, "Texas Emission Inventory Step-by-Step Guide"); }
        if ($get("__pageFeaturedItemTexasEIToolsData")) { opageFeaturedItemTexasEIToolsData = new csgImageButton("__pageFeaturedItemTexasEIToolsData", false, "Texas Emission Inventory Data Tools"); }
        if ($get("__pageFeaturedItemAPSummaryStatisticsByContaminantCode")) { opageFeaturedItemEmissionsCharting = new csgImageButton("__pageFeaturedItemAPSummaryStatisticsByContaminantCode", false, "State Wide Statistics by Contaminant"); }
        if ($get("__pageFeaturedItemEmissionsCharting")) { opageFeaturedItemEmissionsCharting = new csgImageButton("__pageFeaturedItemEmissionsCharting", false, "Interactive Charting of Annual Emissions"); }
        if ($get("__pageFeaturedItemCalendarDownload")) { opageFeaturedItemCalendarDownload = new csgImageButton("__pageFeaturedItemCalendarDownload", false, "Interactive Calendar Spreadsheet"); }
        if ($get("__pageFeaturedItemTexasEIToolsReports")) { opageFeaturedItemTexasEIToolsReports = new csgImageButton("__pageFeaturedItemTexasEIToolsReports", false, "Texas Emission Inventory Reports"); }
        if ($get("__pageFeaturedItemTexasDevDeviationReports")) { opageFeaturedItemTexasDevDeviationReport = new csgImageButton("__pageFeaturedItemTexasDevDeviationReports", false, "Deviation Reports"); }
        if ($get("__pageFeaturedItemExcelHome")) { opageFeaturedItemExcelHome = new csgImageButton("__pageFeaturedItemExcelHome", false, "Excel Resources"); }
        //******************************************************************************************************
    }
    //******************************************************************************************************
    //ocsgPage.featuredImageOnClick(<opCsgImageButton>)
    //02/06/2010
    //******************************************************************************************************
    this.featuredImageOnClick = function(opCsgImageButton)
    {
        switch (opCsgImageButton.imageID)
        {
            case "__pageFeaturedItemTXEIMacroUpgrade":
                pageTexasEIExcelMacroUpgradeDownload();
                break;
            case "__pageFeaturedItemConvertLatitudeLongitudeToUTM":
                pageTexasEIExcelMacroConvertLatitudeLongitudeToUTM();
                break;
            case "__pageFeaturedItemStepByStepGuide":
                pageOpenStepByStepGuidePage();
                break;
            case "__pageFeaturedItemTexasEIToolsData":
                pageOpenTexasEIToolsDataPage();
                break;
            case "__pageFeaturedItemTexasEIToolsReports":
                pageOpenTexasEIToolsReportsPage();
                break;
            case "__pageFeaturedItemAPSummaryStatisticsByContaminantCode":
                pageOpenAPSummaryStatisticsByContaminantCodePage();
                break;
            case "__pageFeaturedItemEmissionsCharting":
                pageEmissionsChartingDownload();
                break;
            case "__pageFeaturedItemCalendarDownload":
                pageCalendarDownload();
                break;
            case "__pageFeaturedItemTexasDevDeviationReports":
                pageOpenTexasDevDeviationReportPage();
                break;
            case "__pageFeaturedItemExcelHome":
                pageOpenExcelHomePage();
                break;
        }
    }    
    
    //finishUpPageLoad()
    //09/11/2009
    //check the session id and process the postback message
    this.finishUpPageLoad = function()
    {
        //try to validate the UpdatePanel
        if (document.getElementById("__updatePanelSessionTimeStamp"))
        {
            if (oCsgPage.validateTimeStamp("__updatePanelSessionTimeStamp") == false)
            {
                oCsgPage.loginFailure();
                return false;
            }
        }
        //if no UpdatePanel check for __logInTimeStamp
        if (document.getElementById("__logInTimeStamp"))
        {
            if (oCsgPage.validateTimeStamp("__logInTimeStamp") == false)
            {
                oCsgPage.loginFailure();
                return false;
            }
        }    
        if (oCsgPage.getUpdatePanelPostBackMessageValue() != "")
        {
            alert(oCsgPage.getUpdatePanelPostBackMessageValue());
            oCsgPage.setUpdatePanelPostBackMessageValue("");
        }
        if (oCsgPage.getPostBackMessageValue() != "")
        {
            alert(oCsgPage.getPostBackMessageValue());
            oCsgPage.setPostBackMessageValue("")
        }
        
        //01/20/2010
        if (oCsgPage.getUpdatePanelPostBackActionValue() != "")
        {
            oCsgPage.setUpdatePanelPostBackActionValue("");
        }
        if (oCsgPage.getPostBackActionValue() != "")
        {
            oCsgPage.setPostBackActionValue("")
        }
        
        /*****************************************************************************/
        //09/11/2009
        //necessary to set grid row, index, etc,
        if (typeof ocsgGrid == "object")
        {
            ocsgGrid.processPostBackAction();
            if (typeof window.checkTheAccountSite != "undefined") { checkTheAccountSite(); }
            //if the grid only has 1 row, its the header row so addnew
            if (ocsgGrid.grid.children[0].rows.length == 1)
            {
                if (typeof ocsgGrid.editingToolbar == "object")
                {
                    ocsgGrid.editingToolbar.toolbarAddNew(ocsgGrid);
                }
            }
        }
        //**********************************************************************************************
        //01/22/2010
        //add a scroll event to all pages
        oCsgPage.addEvent(window, 'scroll',
            function(event)
            {
                //alert('The page is being scrolled');
            }
        );
        //**********************************************************************************************
        //09/30/2009
        //see if there is window specific page load functionality
        if (window.finishUpPageLoad) { window.finishUpPageLoad(); }
    }
    //updateAllUniqueElements(spId)
    //08/29/2009
    this.updateAllUniqueElements = function(spId)
    {
        var sChar;
        var sId;
        var oElement = $get(spId);
        if (oElement)
        {
            if (oCsgPage.someOneIsLoggedIn() == true) { oElement.innerHTML = "Log Out"; }
            else { oElement.innerHTML = "Log In"; }
        }
    }
    //pageSetWindowLocationHref(<ohref>)
    //08/29/2009
    //navigate to <ohref> if not already there
    this.pageSetWindowLocationHref = function(ohref)
    {
        var oanswer;
        if (top.location.pathname == ohref)
        {
            oanswer = confirm("This page is displayed now! Reload the page?");
            if (oanswer) { top.location.href = ohref; }
        }
        else { top.location.href = ohref; }
    }
    //pageLoadPageIfReadyStateComplete(<ohref>)
    //02/03/2010
    //load if ready state
    this.pageLoadPageIfReadyStateComplete = function(ohref)
    {
        if (oCsgPage.pageReadyStateComplete() == true) { oCsgPage.pageSetWindowLocationHref(ohref); }
        else { alert(pageDocumentIsLoadingMsg); }
    }
    //pageReadyStateComplete()
    //02/04/2010
    //load if ready state
    this.pageReadyStateComplete = function(ohref)
    {
        if (document.readyState == "complete") { return true; }
        else { return false; }
    }
    //someOneIsLoggedIn()
    //08/29/2009
    this.someOneIsLoggedIn = function()
    {
        var ologInUserName;
        var ologInAccountName;
        //username
        //__logInUserName is the hidden field holding the currently logged in user
        ologInUserName = $get("__logInUserName");
        if (ologInUserName)
        {
            if (ologInUserName.value)
            {
                //accountname
                ologInAccountName = $get("__logInAccountName");
                if (ologInAccountName)
                {
                    if (ologInAccountName.value) { return true; }
                }
            }
        }
        return false;
    }
    //logOut()
    //08/28/2009
    this.logOut = function()
    {
        if (oCsgPage.someOneIsLoggedIn() == true)
        {
            oCsgPage.setPostBackActionValue("logout");
            document.form1.submit();
        }
        else { alert("Nobody logged in."); }
    }
    //getSystemAccount_idValue()
    //getSystemUser_idValue()
    //getSystemUserType_idValue()
    //getUpdatePanelPostBackActionValue()
    //getUpdatePanelPostBackMessageValue()
    //getUpdatePanelSessionTimeStampValue()
    //getPostBackActionValue()
    //getPostBackMessageValue()
    //getHiddenFieldValue(<spId>)
    //09/17/2009
    this.getSystemAccount_idValue = function() { return oCsgPage.getHiddenFieldValue("__systemAccount_id"); }
    this.getSystemUser_idValue = function() { return oCsgPage.getHiddenFieldValue("__systemUser_id"); }
    this.getSystemUserType_idValue = function() { return oCsgPage.getHiddenFieldValue("__systemUserType_id"); }
    this.getUpdatePanelPostBackActionValue = function() { return oCsgPage.getHiddenFieldValue("__updatePanelPostbackAction"); }
    this.getUpdatePanelPostBackMessageValue = function() { return oCsgPage.getHiddenFieldValue("__updatePanelPostbackMessage"); }
    this.getUpdatePanelSessionTimeStampValue = function() { return oCsgPage.getHiddenFieldValue("__updatePanelSessionTimeStamp"); }
    this.getPostBackActionValue = function() { return oCsgPage.getHiddenFieldValue("__pagePostBackAction"); }
    this.getPostBackMessageValue = function() { return oCsgPage.getHiddenFieldValue("__pagePostBackMessage"); }
    this.getHiddenFieldValue = function(spId)
    {
        var oReturn = false;
        var oHidden = $get(spId);
        if (oHidden) { oReturn = oHidden.value; }
        return oReturn;
    }
    //setSystemAccount_idValue()
    //setSystemUser_idValue()
    //setSystemUserType_idValue()
    //setUpdatePanelPostBackActionValue()
    //setUpdatePanelPostBackMessageValue()
    //setPostBackActionValue()
    //setPostBackMessageValue()
    //setHiddenFieldValue(<spId>)
    //09/01/2009
    this.setSystemAccount_idValue = function(opValue) { oCsgPage.setHiddenFieldValue("__systemAccount_id", opValue); }
    this.setSystemUser_idValue = function(opValue) { oCsgPage.setHiddenFieldValue("__systemUser_id", opValue); }
    this.setSystemUserType_idValue = function(opValue) { oCsgPage.setHiddenFieldValue("__systemUserType_id", opValue); }
    this.setUpdatePanelPostBackActionValue = function(opValue) { oCsgPage.setHiddenFieldValue("__updatePanelPostbackAction", opValue); }
    this.setUpdatePanelPostBackMessageValue = function(opValue) { oCsgPage.setHiddenFieldValue("__updatePanelPostbackMessage", opValue); }
    this.setUpdatePanelSessionTimeStampValue = function(opValue) { oCsgPage.setHiddenFieldValue("__updatePanelSessionTimeStamp", opValue); }
    this.setPostBackActionValue = function(opValue) { oCsgPage.setHiddenFieldValue("__pagePostBackAction", opValue); }
    this.setPostBackMessageValue = function(opValue) { oCsgPage.setHiddenFieldValue("__pagePostBackMessage", opValue); }
    this.setHiddenFieldValue = function(spId, opValue)
    {
        var oHidden;
        oHidden = $get(spId);
        if (oHidden) { oHidden.value = opValue; }
    }
    //isIE()
    //08/29/2009
    this.isIE = function() { return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent); }
    //addSystemExceptionError(<oExceptionMessage>)
    //09/04/2009
    this.addSystemExceptionError = function(oExceptionMessage)
    {
        //add the exception message to the systemExceptionErrors array
        try { oCsgPage.systemExceptionErrors[oCsgPage.systemExceptionErrors.length] = oExceptionMessage; }
        catch(e) {}
    }
    //pageExportCalendarToExcel()
    //09/30/2009
    this.pageExportCalendarToExcel = function()
    {
        var oMsg = "When the calendar page is shown, click the Excel button to export the calendar to Excel. " +
                    "Data for the current calendar and 12 subsequent calendars are exported to an Excel spreadsheet. " +
                    "After the spreadsheet is created, save it to your local drive before opening it. " +
                    "Once you have opened the spreadsheet, right mouse click on the calendar worksheet to select and create a calendar. " +
                    "Do you want to export the calendar?"
        if (confirm(oMsg))
        {
            pageOpenToolsCalendarPage();
        }
    }
    
    //confirmExcelWorkbookDownload(<opPathAndWorkbookName>, <bpCanDownloadWithoutLoggingIn>)
    //09/27/2009
    //<opPathAndWorkbookName> is the complete path and file name generated by
    //opPage.ResolveClientUrl("~/documentManagement/temp/") + sWorkbookName
    this.confirmExcelWorkbookDownload = function(opPathAndWorkbookName, bpCanDownloadWithoutLoggingIn)
    {
        var oWorkbookName;
        var oMsg;
        if (!bpCanDownloadWithoutLoggingIn)
        {
            if (!ocsgPage.getSystemAccount_idValue())
            {
                alert(pageMustBeLoggedInToDownloadSpreadsheet);
                return;
            }
        }
        if (opPathAndWorkbookName.lastIndexOf("/") > 0) { oWorkbookName = opPathAndWorkbookName.substr(opPathAndWorkbookName.lastIndexOf("/") + 1); }
        else { oWorkbookName = opPathAndWorkbookName; }
        oMsg = oWorkbookName + " may contain VBA macros to function properly. " +
                                "In order to run the macros, you must set the Excel macro security setting to the lowest level. See the step-by-step guide for instuctions on setting macro security. " +
                                "If you have trouble running the macros please contact us at (225-766-2397). " +
                                "Some Excel spreadsheets that open databases or create Word documents will require additional settings. " +
                                "Do you want to download " + oWorkbookName + "?";
        if (confirm(oMsg)) { top.location.href = opPathAndWorkbookName; }
        return;
    }
    //**********************************************************************************************
    //01/22/2010
    //add a scroll event to all pages
    this.addEvent = function( obj, type, fn )
    {
      if ( obj.attachEvent )
      {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
      }
      else obj.addEventListener( type, fn, false );
    }
    //**********************************************************************************************
}

/****************************************************************************************
show all pages with ocsgPage.pageSetWindowLocationHref(<ohref>)

****************************************************************************************/
function pageOpenYugmaPage() { top.location.href="https://www.yugma.com/app/user_loading.php?user=2900566080&role=0&collsession="; }

//home
function pageOpenHomePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__defaultAspx); }
function pageOpenLogInPage()
{
    if (ocsgPage.someOneIsLoggedIn() == true) { ocsgPage.logOut(); }
    else { ocsgPage.pageLoadPageIfReadyStateComplete(__login_loginAspx); }
}
//pageEmissionsChartingDownload()
//pageCalendarDownload()
//10/28/2009
function pageEmissionsChartingDownload() { ocsgPage.confirmExcelWorkbookDownload(__excelSamplesPath + "emissionsCharting.xls", true); }
function pageCalendarDownload() { ocsgPage.confirmExcelWorkbookDownload(__excelSamplesPath + "calendar.xls", true); }
//function pageOpenSystemPage() { alert("Not Ready"); }               //__system_homeAspx;
//help
function pageOpenHelpAboutPage() { pageOpenAboutPage(); }
function pageOpenHelpContactUsPage() { pageOpenContactUsPage(); }
function pageOpenHelpMyAccountPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__account_myAccountAspx); }
function pageOpenHelpMyBrowserPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__account_myBrowserAspx); }
function pageOpenHelpPrivacyStatementPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__help_privacyStatementAspx); }
function pageOpenHelpReportPartialClientList() { ocsgPage.pageLoadPageIfReadyStateComplete(__help_reportPartialClientListAspx); }
function pageOpenHelpReportRevisionsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__help_reportRevisionHistoryAspx); }
function pageOpenHelpTermsOfUsePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__help_termsOfUseAspx); }
function pageOpenHelpUserGroupMeetingPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__help_userGroupMeetingAspx); }
function pageOpenStepByStepGuidePage() { window.open(__help_stepByStepEIGuidePdf,"stepByStepEIGuideWindow","top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
function pageOpenAdditionalInformationPage() { window.open(__help_additionalInformationPdf,"additionalInformationWindow","top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }

//function pageOpenHelpSystemPage() { alert("Not Ready"); }           //__help_systemAspx
//excel
function pageOpenExcelHomePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__excel_homeAspx); }
//function pageOpenExcelExamplesPage() { alert("Not Ready"); }        //__excel_examplesAspx
//function pageOpenExcelTrainingPage() { alert("Not Ready"); }        //__excel_trainingAspx
//function pageOpenExcelSystemPage() { alert("Not Ready"); }          //__excel_systemAspx
//tools
function pageOpenToolsCalendarPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__tasks_calendarAspx); }
function pageOpenToolsDocumentsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__documents_documentsAspx); }
//function pageOpenToolsNotesPage() { alert("Not Ready"); }           //__system_userNotesAspx
//function pageOpenToolsContactsPage() { alert("Not Ready"); }        //__rolodex_contactsAspx
//function pageOpenToolsSystemPage() { alert("Not Ready"); }          //__system_toolsAspx
/***************************************************************************************
//Texas Deviation Reports 
***************************************************************************************/
function pageOpenTexasDevDeviationReportPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txdev_deviationReportAspx); }

/***************************************************************************************
//ExxonMobil Pipeline
//03/01/2010
***************************************************************************************/
function pageOpenEXMPTankThroughputsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__exmp_importTankThroughputsAspx); }
function pageOpenEXMPReportsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__exmpReports_reportsAspx); }
function pageOpenEXMPStationsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__exmp_stationsAspx); }
function pageOpenEXMPStationTanksPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__exmp_stationTanksAspx); }

/***************************************************************************************
//Texas EI 
***************************************************************************************/
function pageOpenTexasEIAccountSitePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_accountSiteAspx); }
function pageOpenTexasEIActivityPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_activityAspx); }
function pageOpenTexasEICINPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_cinsAspx); }
function pageOpenTexasEIFactorsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_factorsAspx); }
function pageOpenTexasEIFINPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_finsAspx); }
function pageOpenTexasEIEmissionPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_emissionsAspx); }
function pageOpenTexasEIEPNPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_epnsAspx); }
//function pageOpenTexasEIExcelPage() { alert("Not Ready"); }             // __txei_excelAspx
function pageOpenTexasEIExcelExportPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_excelExportAspx); }
function pageOpenTexasEIExcelImportPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_excelImportAspx); }
//function pageOpenTexasEIExcelMacroUpgradePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_excelMacroUpgradeAspx); }
function pageTexasEIExcelMacroUpgradeDownload() { ocsgPage.confirmExcelWorkbookDownload(__excelTemplatesPath + "exportEI.xls", true); }
function pageTexasEIExcelMacroConvertLatitudeLongitudeToUTM() { ocsgPage.confirmExcelWorkbookDownload(__excelTemplatesPath + "convertLatLongToUTM.xls", true); }
//
function pageOpenTexasEIMaterialPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_materialsAspx); }
function pageOpenTexasEIReportsEmissionsPage() { alert("Not Ready"); }
function pageOpenTexasEIReportsPage() { alert("Not Ready"); }           // __txei_reportsAspx
function pageOpenTexasEIReportsSystemTablesPage() { alert("Not Ready"); }   // __txei_reportSystemTablesAspx
function pageOpenTexasEIReportsTablesPage() { alert("Not Ready"); }
function pageOpenTexasEISpecialEmissionPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_specialEmissionsAspx); }
//function pageOpenTexasEISystemPage() { alert("Not Ready"); }            // __txei_systemAspx
//function pageOpenTexasEITablesPage() { alert("Not Ready"); }            //__txei_tablesAspx
//function pageOpenTexasEIToolsPage() { alert("Not Ready"); }             // __txei_toolsAspx
function pageOpenTexasEIToolsCreateDeltaFilePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_createDeltaFileAspx); }

function pageOpenTexasEIToolsDataPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_dataAspx); }

function pageOpenTexasEIToolsImportExtractsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txei_importExtractsAspx); }
function pageOpenTexasEIToolsReportsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txeiReports_txeiReportsAspx);  }
function pageOpenAPSummaryStatisticsByContaminantCodePage() { ocsgPage.pageLoadPageIfReadyStateComplete(__txeiReportsPath + "apSummaryStatisticsByContaminantCode.aspx"); }


/***************************************************************************************
//System 
***************************************************************************************/
function pageOpenRolodexContactsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__rolodex_contactsAspx); }
function pageOpenSystemAccountsPage() { ocsgPage.pageLoadPageIfReadyStateComplete(__system_accountsAspx); }
function pageOpenSystemApplicationPage() { alert("Not Ready"); }
function pageOpenSystemClientListPage() { alert("Not Ready"); }
function pageOpenSystemSessionsPage() {  ocsgPage.pageLoadPageIfReadyStateComplete(__system_sessionsAspx);  }
function pageOpenImportTCEQDataPage() {  ocsgPage.pageLoadPageIfReadyStateComplete(__tceqData_importTCEQDataAspx);  }

/****************************************************************************************
pageShowButtonMenu(<e>) is fired in the mouseover event of the TD containing the page toolbar
pageHideButtonMenu() is fired in the form mouseover event of the BODY. this is used on all
pages that have a header/toolbar
****************************************************************************************/

//pageShowButtonMenu(<e>)
//08/29/2009
//fire in mouseover to show(e)
function pageShowButtonMenu(e)
{
    var oElement;
    var oDiv;
    var oId;
    switch (e.id)
    {
        case "__pageSelectionsHomeExcelTD":
            oId = "__pageButtonMenuExcelPageDIV";
            break;
        case "__pageSelectionsHomeHomeTD":
            oId = "__pageButtonMenuHomePageDIV";
            break;
        case "__pageSelectionsHomeHelpTD":
            oId = "__pageButtonMenuHelpPageDIV";
            break;
        case "__pageButtonMenuTexasEICompleteTD":
            oId = "__pageButtonMenuTexasEICompletePageDIV";
            break;
        case "__pageSelectionsHomeTexasEITD":
            oId = "__pageButtonMenuTexasEIPageDIV";
            break;
        case "__pageSelectionsHomeToolsTD":
            oId = "__pageButtonMenuToolsPageDIV";
            break;
        case "__pageSelectionsHomeSystemTD":
            oId = "__pageButtonMenuSystemPageDIV";
            break;
        case "__pageSelectionsHomeExxonMobilPipelineTD":
            oId = "__pageButtonMenuExxonMobilPipelinePageDIV";
            break;
    }
    if (ocurrentPageMenuButtonHomePageDIVId)
    {
        oDiv = $get(ocurrentPageMenuButtonHomePageDIVId);
        if (oDiv)
        {
            if (oDiv.style.display != "none") { oDiv.style.display = "none"; }
        }
    }
    if (oId)
    {
        ocurrentPageMenuButtonHomePageDIVId = oId;
        oDiv = $get(oId);
        if (oDiv)
        {
            oElement = $get("__pageHeaderDIV");
            if (oElement)
            {
                oDiv.style.top = oElement.offsetHeight + "px";
            }
            oDiv.style.left = (e.offsetLeft + 2) + "px";
            oDiv.style.zIndex = 10;
            oDiv.style.display = "block";
        }
    }
    else { ocurrentPageMenuButtonHomePageDIVId = false; }
}

//pageHideButtonMenu()
//08/29/2009
//fire in body onmousemove
function pageHideButtonMenu()
{
    var oToolbarDiv;
    var oToolbarHeight = 10;
    var oDiv;
    if (ocurrentPageMenuButtonHomePageDIVId)
    {
        oDiv = $get(ocurrentPageMenuButtonHomePageDIVId);
        if (oDiv)
        {
            //get the toolbar height
            try { oToolbarDiv = $get(eval("__toolbarDIV")); }
            catch(e) {}
            //
            if (oToolbarDiv) { oToolbarHeight += oToolbarDiv.offsetHeight; }
            //
            if (oDiv.style.display != "none")
            {
                if (event.x < oDiv.offsetLeft)
                {
                    oDiv.style.display = "none";
                    return;
                }
                if (event.x > oDiv.offsetLeft + oDiv.offsetWidth)
                {
                    oDiv.style.display = "none";
                    return;
                }
                if (event.y > oDiv.offsetTop + oDiv.offsetHeight)
                {
                    oDiv.style.display = "none";
                    return;
                }
                if (event.y < oDiv.offsetTop - oToolbarHeight)
                {
                    oDiv.style.display = "none";
                    return;
                }
            }
        }
    }
}

//pageAnchorMouseOver(<e>)
//pageAnchorMouseOut(<e>)
//08/27/2009
//these are the anchors in the menu div
function pageAnchorMouseOver(e)
{
    var oImg = e.children[0];
    var oSelected = __imagesPath + "csgRowSelectorSelected.gif";
    var oNotSelected = __imagesPath + "csgRowSelectorNotSelected.gif";
    if (oImg)
    {
    
        if (oImg.src.indexOf(oNotSelected) > 0) { oImg.src = oSelected; }
    }
    e.style.textDecorationUnderline=true;
}
function pageAnchorMouseOut(e)
{
    var oImg = e.children[0];
    var oSelected = __imagesPath + "csgRowSelectorSelected.gif";
    var oNotSelected = __imagesPath + "csgRowSelectorNotSelected.gif";
    if (oImg)
    {
        if (oImg.src.indexOf(oSelected) > 0) { oImg.src = oNotSelected ; }
    }
    e.style.textDecorationUnderline=false;
}

//pageToolbarButtonMouseDownTD()
//pageToolbarButtonMouseOutTD()
//pageToolbarButtonMouseOverTD()
//pageToolbarButtonMouseUpTD()
//Place an image on a form and have it act like a toolbar button
//08/17/2009
function pageToolbarButtonMouseDownTD(e) { e.className = "csgToolbarButtonMouseDown"; }
function pageToolbarButtonMouseOutTD(e) { e.className = "csgToolbarButtonMouseOut"; }
function pageToolbarButtonMouseOverTD(e) { e.className = "csgToolbarButtonMouseOver"; }
function pageToolbarButtonMouseUpTD(e) { e.className = "csgToolbarButtonMouseUp"; }

//pageHeaderToolbarButtonMouseDownTD()
//pageHeaderToolbarButtonMouseOutTD()
//pageHeaderToolbarButtonMouseOverTD()
//pageHeaderToolbarButtonMouseUpTD()
//header toolbar
//08/17/2009
function pageHeaderToolbarButtonMouseDownTD(e) { e.className = "pageHeaderToolbarButtonMouseDownTD"; }
function pageHeaderToolbarButtonMouseOutTD(e) { e.className = "pageHeaderToolbarButtonMouseOutTD"; }
function pageHeaderToolbarButtonMouseOverTD(e) { e.className = "pageHeaderToolbarButtonMouseOverTD"; }
function pageHeaderToolbarButtonMouseUpTD(e) { e.className = "pageHeaderToolbarButtonMouseUpTD"; }

//pageHeaderImageMouseDownTD()
//pageHeaderImageMouseOutTD()
//pageHeaderImageMouseOverTD()
//pageHeaderImageMouseUpTD()
//excel, calendar images
//08/27/2009
function pageHeaderImageMouseDownTD(e) { e.className = "pageHeaderImageMouseDownTD"; }
function pageHeaderImageMouseOutTD(e) { e.className = "pageHeaderImageMouseOutTD"; }
function pageHeaderImageMouseOverTD(e) { e.className = "pageHeaderImageMouseOverTD"; }
function pageHeaderImageMouseUpTD(e) { e.className = "pageHeaderImageMouseUpTD"; }

//pageUnloadPopUps()
//02/23/2010
function pageUnloadPopUps()
{
    pageCloseAboutPage();
    pageCloseContactUsPage();
    pageCloseTCEQRecommendedLatLongToUTMConversion();
}

//pageOpenTCEQRecommendedLatLongToUTMConversion()
//03/21/2010
function pageOpenTCEQRecommendedLatLongToUTMConversion()
{
    if ((oTCEQRecommendedLatLongToUTMConversion == null) || (oTCEQRecommendedLatLongToUTMConversion.closed)) 
    {
        var itop = screen.height / 4;
        var ileft = screen.width / 4;;
        oTCEQRecommendedLatLongToUTMConversion = window.open("http://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTM", "__TCEQRecommendedLatLongToUTMConversion");
    }
    else { oTCEQRecommendedLatLongToUTMConversion.focus(); }
}
function pageCloseTCEQRecommendedLatLongToUTMConversion() { if (oTCEQRecommendedLatLongToUTMConversion != null) { oTCEQRecommendedLatLongToUTMConversion.close(); } }

//pageOpenAboutPage()
//02/22/2010
function pageOpenAboutPage()
{
    if ((oHelpAboutWindow == null) || (oHelpAboutWindow.closed)) 
    {
        var itop = screen.height / 4;
        var ileft = screen.width / 4;
        oHelpAboutWindow = window.open(__help_aboutAspx,"__help_aboutAspx", "top=" + itop.toString() + ", left=" + ileft.toString() + ", toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=600, height=350");
    }
    else { oHelpAboutWindow.focus(); }
}
function pageCloseAboutPage() { if (oHelpAboutWindow != null) { oHelpAboutWindow.close(); } }

//pageOpenContactUsPage()
//02/23/2010
function pageOpenContactUsPage()
{
    if ((oHelpContactUsWindow == null) || (oHelpContactUsWindow.closed)) 
    {
        var itop = screen.height / 4;
        var ileft = screen.width / 4;
        oHelpContactUsWindow = window.open(__help_contactUsAspx,"__help_contactUsAspx", "top=" + itop.toString() + ", left=" + ileft.toString() + ", toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=380, height=420");
    }
    else { oHelpContactUsWindow.focus(); }
}
function pageCloseContactUsPage() { if (oHelpContactUsWindow != null) { oHelpContactUsWindow.close(); } }

//$get()
//09/21/2009
//get element on current document
function $get()
{
    var oElement;
	var oElements = new Array();
	for (var i = 0; i < arguments.length; i++)
	{
		oElement = arguments[i];
		if (typeof oElement == "string") { oElement = document.getElementById(oElement); }
		if (arguments.length == 1) { return oElement; }
		oElements.push(oElement);
	}
	return oElements;
}
//$pget()
//09/21/2009
//get element on parent document
function $pget()
{
    var oElement;
	var oElements = new Array();
	for (var i = 0; i < arguments.length; i++)
	{
		oElement = arguments[i];
		if (typeof oElement == "string") { oElement = parent.document.getElementById(oElement); }
		if (arguments.length == 1) { return oElement; }
		oElements.push(oElement);
	}
	return oElements;
}
