﻿
/*
    Computer Science Group, LLC
    225-766-2397 office
    225-205-0263 cell
    darrell@computersciencegroup.com
    Copyright © 2011 Computer Science Group, LLC, All rights reserved.
*/

pageUserTypeSystemAdministrator = 1;
pageUserTypeAccountAdministrator = 2;

var pageMustBeLoggedInToDownloadSpreadsheet = "You must be logged in to download this spreadsheet.";
var pageDeleteConfirmMsg = "Delete is permanent. Continue?";

if (typeof window.onload != "function") { window.onload = pageInit; }

//pageInit()
//05/28/2010
function pageInit()
{
    //11/17/2020
    //window.csgInstallLogin is installed in csgPage40.
    if (window.csgInstallLogin) { window.csgInstallLogin(); }
    pageCheckThePostBackMessage();
    pageSetPostBackActionValue("");
    pageSetPostBackMessageValue("");
    //06/18/2010 see if there is a workbook to open
    pageDownloadWorkbook();
    //08/10/2011
    pageHourGlassHide();
    //08/17/2011
    var oOnUnload = window.onunload;
    window.onunload = function ()
    {
        pageHourGlassHide();
        if (oOnUnload) { oOnUnload(); }
    }
}

//pageCheckThePostBackMessage()
//06/04/2010
function pageCheckThePostBackMessage()
{
    var oMessage = pageGetPostBackMessageValue();
    if (oMessage) { alert(oMessage); }
}

//pageExportToExcel(<opElement>)
//06/18/2010
function pageExportToExcel(opElement)
{
    var ocsgUpdatePanel;
    var osystemAccount_idValue = pageGetSystemAccount_idValue();
    if (!osystemAccount_idValue) { alert(pageMustBeLoggedInToDownloadSpreadsheet); }
    else
    {
        ocsgUpdatePanel = new csgUpdatePanel("UpdatePanel1", "UpdateProgress1");
        if (ocsgUpdatePanel) { ocsgUpdatePanel.doPostBack("exportToExcel"); }
    }
}

//finishUpPageLoad()
//06/18/2010
function pageDownloadWorkbook()
{
    var ohiddenWorkbookToOpen = $get("__hiddenWorkbookToOpen");
    if (ohiddenWorkbookToOpen)
    {
        if (ohiddenWorkbookToOpen.value)
        {
            pageConfirmExcelWorkbookDownload(ohiddenWorkbookToOpen.value);
            ohiddenWorkbookToOpen.value = "";
        }
    }
}

//01/15/2011
//hide the hourglass then set <spHref>
function pageSetTopLocationHref(spHref)
{
//    //01/15/2011
//    pageHourGlassHide();
    top.location.href = spHref;
}

//**************************************************************************************************
//home
//**************************************************************************************************
function pageDisplay_Default() { location.href = __defaultAspx; }
function pageDisplayHelp_companyLiteraturePage() { opublic_companyLiteraturePdf = window.open(__public_companyLiteraturePdf, "companyLiteratureWindow", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
//01/19/2012 add statement of services
function pageDisplayHelp_statementOfServicesPage() { window.open(__public_statementOfServciesPdf, "statementOfServicesWindow", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
function pageDisplayHelp_tceqHomeLink() { window.open("http://www.tceq.state.tx.us/", "tceqHomeLink", "top=20,left=20,height=500,width=600, menubar=1, toolbar=1, location=1, resizable=1,scrollbars=1"); }
function pageDisplayHelp_tceqSTEERSLink() { window.open("https://www6.tceq.state.tx.us/steers/", "tceqAirLink", "top=20,left=20,height=500,width=600, menubar=1, toolbar=1, location=1, resizable=1,scrollbars=1"); }
function pageDisplayHelp_tceqAirLink() { window.open("http://www.tceq.texas.gov/agency/air_main.html", "tceqAirLink", "top=20,left=20,height=500,width=600, menubar=1, toolbar=1, location=1, resizable=1,scrollbars=1"); }
function pageDisplayHelp_usEPAHomeLink() { window.open("http://www.epa.gov/", "usEPAHomeLink", "top=20,left=20,height=500,width=600, menubar=1, toolbar=1, location=1, resizable=1,scrollbars=1"); }
//************************************************************************************************
//tasks 
//************************************************************************************************
function pageDisplayTasks_Tasks() { pageSetTopLocationHref(__tasks_tasksAspx); }
//************************************************************************************************
//txei 
//************************************************************************************************
function pageDisplayTXEI_tablesPage(opElement) { pageSetTopLocationHref(__txei_txeiAspx); }
function pageDisplayTXEI_reportsPage(opElement) { pageSetTopLocationHref(__txei_reportsAspx); if (opElement) { opElement.blur(); } }
function pageDisplayTXEI_dataPage(opElement) { pageSetTopLocationHref(__txei_dataAspx); { opElement.blur(); } }
function pageDisplayHelp_stepByStepGuidePage() { window.open(__help_stepByStepEIGuidePdf, "stepByStepEIGuideWindow", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
function pageDisplayTexasEI_ExcelMacroUpgrade() { pageConfirmExcelWorkbookDownload(__documentManagementPublicExcelToolsPath + "exportEI.xls", false); }
function pageDisplayTexasEI_ExcelMacroConvertLatitudeLongitudeToUTM() { pageConfirmExcelWorkbookDownload(__documentManagementPublicExcelToolsPath + "convertLatLongToUTM.xls", false); }
//01/18/2012
function pageDisplayTexasEI_tceqFileSpecificationsPage() { window.open(__tceq_Electronic_EI_File_SpecificationsPdf, "tceqFileSpecificationsWindow", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
function pageDisplayTexasEI_tceqFileSpecificationsAppendicesPage() { window.open(__tceq_Electronic_EI_File_Specifications_AppendicesPdf, "tceqFileSpecificationsAppendicesWindow", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
//************************************************************************************************
//txca 
//************************************************************************************************
function pageDisplayTexasCalcs() { pageSetTopLocationHref(__txca_texasCalcsAspx); }
function pageDisplayTXCA_verticalFixedRoofTanks() { pageSetTopLocationHref(__txca_tanksVerticalFixedRoofAspx); }
function pageDisplayTXCA_AP42Chapter7Tables() { pageSetTopLocationHref(__txca_chapter7TablesAspx); }
function pageDisplayHelp_usEPAAP42Link() { window.open("http://www.epa.gov/ttnchie1/ap42/", "usEPAAP42Link", "top=20,left=20,height=500,width=600, menubar=1, toolbar=1, location=1, resizable=1,scrollbars=1"); }
function pageDisplayHelp_usEPAChiefLink() { window.open("http://www.epa.gov/ttn/chief/index.html", "usEPAAP42Link", "top=20,left=20,height=500,width=600, menubar=1, toolbar=1, location=1, resizable=1,scrollbars=1"); }
//10/10/2011
function pageDisplayHelp_AP42_Chapter_7_Background_Document_09_2006Page() { window.open(__txca_AP42_Chapter_7_Background_Document_09_2006Pdf, "__txca_AP42_Chapter_7_Background_Document_09_2006PdfWindow", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
function pageDisplayHelp_AP42_Chapter_7_Final_Section_11_2006PdfPage() { window.open(__txca_AP42_Chapter_7_Final_Section_11_2006Pdf, "__txca_AP42_Chapter_7_Final_Section_11_2006Pdf", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
function pageDisplayHelp_NOAA_Comparative_Climatic_Data_2010PdfPage() { window.open(__txca_NOAA_Comparative_Climatic_Data_2010Pdf, "__txca_NOAA_Comparative_Climatic_Data_2010Pdf", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1"); }
//************************************************************************************************
//help 
//************************************************************************************************
function pageDisplayHelp_myAccount() { pageSetTopLocationHref(__help_myAccountAspx); }
function pageDisplayHelp_myBrowser() { pageSetTopLocationHref(__help_myBrowserAspx); }
function pageDisplayHelp_partialClientList() { pageSetTopLocationHref(__help_partialClientListAspx); }
function pageDisplayHelp_privacyStatement() { pageSetTopLocationHref(__help_privacyStatementAspx); }
function pageDisplayHelp_revisionHistory() { pageSetTopLocationHref(__help_revisionHistoryAspx); }
function pageDisplayHelp_termsOfUse() { top.location.href = __help_termsOfUseAspx; }
//************************************************************************************************
//tools 
//************************************************************************************************
function pageDisplayTools_calendarDocumentation()
{
    window.open(__tools_calendarDocumentationPdf, "", "top=20,left=20,height=500,width=600,toolbar=0,resizable=1");
}
//************************************************************************************************
//system 
//************************************************************************************************
function pageDisplaySystem_sessions() { pageSetTopLocationHref(__system_sessionsAspx); }
function pageDisplaySystem_postBackErrors() { pageSetTopLocationHref(__system_postBackErrorsAspx); }
function pageDisplaySystem_rolodex() { pageSetTopLocationHref(__rolodex_gridTableContactsAspx); }

//pageConfirmExcelWorkbookDownload(<opPathAndWorkbookName>, <bpCanDownloadWithoutLoggingIn>)
//05/30/2010
//<opPathAndWorkbookName> is the complete path and file name generated by
//Page.ResolveClientUrl("~/documentManagement/temp/") + sWorkbookName
function pageConfirmExcelWorkbookDownload(opPathAndWorkbookName, bpCanDownloadWithoutLoggingIn)
{
    var oSystemAccount_idValue;
    var oWorkbookName;
    var oMsg;
    if (!bpCanDownloadWithoutLoggingIn)
    {
        osystemAccount_idValue = pageGetSystemAccount_idValue();
        if (!osystemAccount_idValue)
        {
            alert(pageMustBeLoggedInToDownloadSpreadsheet);
            return;
        }
    }
    //12/22/2010 check forward/back slash
    var olastIndexOf = opPathAndWorkbookName.lastIndexOf("/");
    if (olastIndexOf < 0) { olastIndexOf = opPathAndWorkbookName.lastIndexOf("\\"); }
    if (olastIndexOf > 0) { oWorkbookName = opPathAndWorkbookName.substr(olastIndexOf + 1); }
    else { oWorkbookName = opPathAndWorkbookName; }
    oMsg = macroWarning(oWorkbookName);
    if (confirm(oMsg)) { top.location.href = opPathAndWorkbookName; }
    return;
}

//pageConfirmDelete()
//10/06/2010
function pageConfirmDelete() { return confirm(pageDeleteConfirmMsg); }

//pageGetSystemAccount_idValue()
//pageGetSystemUser_idValue()
//pageGetSystemUserType_idValue()
//pageGetPostBackActionValue()
//pageGetPostBackMessageValue()
//pageGetSessionTimeStampValue()
//pageGetHiddenFieldValue(<spId>)
//12/05/2010
pageGetSystemAccount_idValue = function ()
{
    var oValue = false;
    var oReturn = false;
    if (typeof __systemAccount_id != "undefined") { oReturn = __systemAccount_id; }
    if (!oReturn)
    {
        oValue = pageGetHiddenFieldValue("__pageSystemAccount_id");
        //don't return "0"
        if (oValue)
        {
            if (oValue == "0") { oValue = false; }
        }
        if (!oValue)
        {
            oValue = pageGetHiddenFieldValue("__updatePanelSystemAccount_id");
            if (oValue)
            {
                if (oValue == "0") { oValue = false; }
            }
        }
        oReturn = oValue;
    }
    return oReturn;
}
pageGetSystemUser_idValue = function ()
{
    var oValue = false;
    var oReturn = false;
    if (typeof __systemUser_id != "undefined") { oReturn = __systemUser_id; }
    if (!oReturn)
    {
        oValue = pageGetHiddenFieldValue("__pageSystemUser_id");
        //don't return "0"
        if (oValue)
        {
            if (oValue == "0") { oValue = false; }
        }
        if (!oValue)
        {
            oValue = pageGetHiddenFieldValue("__updatePanelSystemUser_id");
            if (oValue)
            {
                if (oValue == "0") { oValue = false; }
            }
        }
        oReturn = oValue;
    }
    return oReturn;
}
pageGetSystemUserType_idValue = function ()
{
    var oValue = false;
    var oReturn = false;
    if (typeof __systemUserType_id != "undefined") { oReturn = __systemUserType_id; }
    if (!oReturn)
    {
        oValue = pageGetHiddenFieldValue("__pageSystemUserType_id");
        //don't return "0"
        if (oValue)
        {
            if (oValue == "0") { oValue = false; }
        }
        if (!oValue)
        {
            oValue = pageGetHiddenFieldValue("__updatePanelSystemUserType_id");
            if (oValue)
            {
                if (oValue == "0") { oValue = false; }
            }
        }
        oReturn = oValue;
    }
    return oReturn;
}
pageGetPostBackActionValue = function ()
{
    var oReturn = false;
    if (typeof __postBackAction != "undefined") { oReturn = __postBackAction; }
    if (!oReturn)
    {
        oReturn = pageGetHiddenFieldValue("__pagePostBackAction");
        if (!oReturn) { oReturn = pageGetHiddenFieldValue("__updatePanelPostbackAction"); }
    }
    return oReturn;
}
pageGetPostBackMessageValue = function ()
{
    var oReturn = false;
    if (typeof __postBackMessage != "undefined") { oReturn = __postBackMessage; }
    if (!oReturn)
    {
        oReturn = pageGetHiddenFieldValue("__pagePostBackMessage");
        if (!oReturn) { oReturn = pageGetHiddenFieldValue("__updatePanelPostbackMessage"); }
    }
    return oReturn;
}
pageGetSessionTimeStampValue = function ()
{
    var oReturn = false;
    if (typeof __sessionTimeStamp != "undefined") { oReturn = __sessionTimeStamp; }
    if (!oReturn)
    {
        oReturn = pageGetHiddenFieldValue("__sessionTimeStamp");
        if (!oReturn) { oReturn = pageGetHiddenFieldValue("__updatePanelSessionTimeStamp"); } 
    }
    return oReturn;
}
pageGetHiddenFieldValue = function(spId)
{
    var oReturn = false;
    var oHidden = $get(spId);
    if (oHidden) { oReturn = oHidden.value; }
    return oReturn;
}
//pageSetSystemAccount_idValue()
//pageSetSystemUser_idValue()
//pageSetSystemUserType_idValue()
//pageSetPostBackActionValue()
//pageSetPostBackMessageValue()
//pageSetSessionTimeStampValue()
//setHiddenFieldValue(<spId>)
//12/05/2010
pageSetSystemAccount_idValue = function (opValue)
{
    if (typeof __systemAccount_id != "undefined") { __systemAccount_id = opValue; }
    pageSetHiddenFieldValue("__pageSystemAccount_id", opValue);
    pageSetHiddenFieldValue("__updatePanelSystemAccount_id", opValue);
}
pageSetSystemUser_idValue = function (opValue)
{
    if (typeof __systemUser_id != "undefined") { __systemUser_id = opValue; }
    pageSetHiddenFieldValue("__pageSystemUser_id", opValue);
    pageSetHiddenFieldValue("__updatePanelSystemUser_id", opValue);
}
pageSetSystemUserType_idValue = function (opValue)
{
    if (typeof __systemUserType_id != "undefined") { __systemUserType_id = opValue; }
    pageSetHiddenFieldValue("__pageSystemUserType_id", opValue);
    pageSetHiddenFieldValue("__updatePanelSystemUserType_id", opValue);
}
pageSetPostBackActionValue = function(opValue)
{
    if (typeof __postBackAction != "undefined") { __postBackAction = opValue; }
    pageSetHiddenFieldValue("__pagePostBackAction", opValue);
    pageSetHiddenFieldValue("__updatePanelPostbackAction", opValue); 
}
pageSetPostBackMessageValue = function(opValue)
{
    if (typeof __postBackMessage != "undefined") { __postBackMessage = opValue; }
    pageSetHiddenFieldValue("__pagePostBackMessage", opValue);
    pageSetHiddenFieldValue("__updatePanelPostbackMessage", opValue);
}
pageSetSessionTimeStampValue = function (opValue)
{
    if (typeof__sessionTimeStamp != "undefined") { __sessionTimeStamp = opValue; }
    pageSetHiddenFieldValue("__sessionTimeStamp", opValue);
    pageSetHiddenFieldValue("__updatePanelSessionTimeStamp", opValue);
}
pageSetHiddenFieldValue = function(spId, opValue)
{
    var oHidden;
    oHidden = $get(spId);
    if (oHidden) { oHidden.value = opValue; }
}

//macroWarning(<opWorkbookName>)
//12/22/2010
function macroWarning(opWorkbookName)
{
    return opWorkbookName + " 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 " + opWorkbookName + "?";
}

//pageConfirmExcelWorkbookDownload(<opPathAndWorkbookName>)
//06/18/2010
function pageConfirmExcelWorkbookDownload(opPathAndWorkbookName)
{
    var oWorkbookName;
    var oMsg;
    //12/22/2010 check for forward/back slash
    var olastIndexOf = opPathAndWorkbookName.lastIndexOf("/");
    if (olastIndexOf < 0) {olastIndexOf = opPathAndWorkbookName.lastIndexOf("\\"); }
    if (olastIndexOf > 0) { oWorkbookName = opPathAndWorkbookName.substr(olastIndexOf + 1); }
    else { oWorkbookName = opPathAndWorkbookName; }
    oMsg = macroWarning(oWorkbookName);
    if (confirm(oMsg)) { top.location.href = opPathAndWorkbookName; }
    return;
}

//$get()
//05/27/2010
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;
}

//pageWindowFromTopFrames(<opPageName>)
//07/15/2011 - returns a reference to a window from the page name.
function pageWindowFromTopFrames(opPageName)
{
    var i;
    //09/06/2011 check the top window first
    var ohref = top.location.href;
    var oindex = ohref.indexOf(opPageName);
    if (oindex > -1)
    {
        if (ohref.substr(oindex) == opPageName) { return top; }
    }
    //check the frames
    for (i = 0; i < top.frames.length; i++)
    {
        ohref = top.frames[i].location.href;
        oindex = ohref.indexOf(opPageName);
        if (oindex > -1)
        {
            //if (ohref.substr(oindex) == opPageName) { return top.frames[i]; }
            //09/16/2011
            return top.frames[i];
            break;
        }
    }
    //if we get here, we didn't find the page
    return false;
}

//pageDOMElementFromPage(<opPageName>, <opElementId>)
//07/15/2011 - returns a reference to a window from the page name, then gets a reference to an element on the page
function pageDOMElementFromPage(opPageName, opElementId)
{
    var e;
    var oReturn = false;
    var oWindow = pageWindowFromTopFrames(opPageName);
    if (oWindow)
    {
        try { oReturn = oWindow.$get(opElementId); }
        catch (e) { }
    }
    return oReturn;
}

//pageIsNumeric(<spString>)
//06/14/2010
function pageIsNumeric(spString)
{
    var sValidChars = "0123456789";
    var sChar;
    if (spString.length == 0) return false;
    for (var i = 0; i < spString.length; i++)
    {
        sChar = spString.charAt(i);
        if (sValidChars.indexOf(sChar) == -1) { return false; }
    }
    return true;
}

//pageAddNewRecord(<opElement>)
//11/09/2010
function pageAddNewRecord(opElement)
{
    if (__permissionInsert == true)
    {
        if (window.addNewRecord) { window.addNewRecord(opElement); }
    }
    else { alert("You do not have insert permission."); }
}
//pageCopyRecord(<opElement>)
//11/09/2010
function pageCopyRecord(opElement)
{
    if (__permissionInsert == true)
    {
        if (window.copyRecord) { window.copyRecord(opElement); }
    }
    else { alert("You do not have insert permission."); }
}
//pageDeleteRecord(<opElement>)
//11/09/2010
function pageDeleteRecord(opElement)
{
    if (__permissionDelete == true)
    {
        if (window.deleteRecord) { window.deleteRecord(opElement); }
    }
    else { alert("You do not have delete permission."); }
}
//pageSaveChanges(<opElement>)
//11/09/2010
function pageSaveChanges(opElement)
{
    if (__permissionUpdate == true)
    {
        if (window.saveChanges) { window.saveChanges(opElement); }
    }
    else { alert("You do not have update permission."); }
}
//pageUndoRecords(<opElement>)
//11/09/2010
function pageUndoChanges(opElement) { if (window.undoChanges) { window.undoChanges(opElement); } }

//pageHeaderImageMouseDownTD(<opElement>)
//pageHeaderImageMouseUpTD(<opElement>)
//pageHeaderImageMouseOverTD(<opElement>)
//pageHeaderImageMouseOutTD(<opElement>)
//07/08/2010
function pageHeaderImageMouseDownTD(opElement) { if (opElement) { opElement.className = "csgPageHeaderImageMouseDownTD" } }
function pageHeaderImageMouseUpTD(opElement) { if (opElement) { opElement.className = "csgPageHeaderImageMouseUpTD" } }
function pageHeaderImageMouseOverTD(opElement) { if (opElement) { opElement.className = "csgPageHeaderImageMouseOverTD" } }
function pageHeaderImageMouseOutTD(opElement) { if (opElement) { opElement.className = "csgPageHeaderImageMouseOutTD" } }

//pagePickColumnAndSetElementValue()
//11/21/2010
//set the value of form elements from grid column values
function pagePickColumnAndSetElementValue(opDD, opGridTable, opArray)
{
    var oElement;
    if (opDD)
    {
        if (opDD.iFrame)
        {
            if (opDD.iFrame.contentWindow)
            {
                //increment by 2 because the element ids are in pairs
                //thie first id is for the form element, the second id
                //is for the grid table column
                for (var i = 0; i < opArray.length; i += 2)
                {
                    //first element, usually a key id
                    oElement = opDD.iFrame.contentWindow.$get(opArray[i]);
                    //07/19/2011 make sure we have the element
                    if (oElement) { oElement.value = opGridTable.getGridColumnInnerText(opArray[i + 1]); }
                }
                //11/26/2010
                //set button edit state
                if (opDD.iFrame.contentWindow.form)
                {
                    if (opDD.iFrame.contentWindow.form.toolbar)
                    {
                        opDD.iFrame.contentWindow.form.toolbar.setEditStateOn();
                    } 
                }
            }
        }
    }
}

// pageValidEMailAddress
//11/11/2010
function pageValidEMailAddress(spEMailAddress)
{
    var blnReturn = false;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (filter.test(spEMailAddress)) { blnReturn = true; }
    return (blnReturn);
}

//11/24/2010
//pageGetGridTable(<dpDD>)
//refreshes the script to prevent the error:
//javascript can't execute code from a freed script
//oIFrame is usually contained by the top window, as in the case of
//txeiAccountSite, txeiFINs, etc. If <dpDD> then the oIFrame is contained
//in a drag and drop form as in the case of gridTableFINCharacteristicsAndValues40.aspx
function pageGetGridTable(opdd)
{
    var oIframe;
    var oGridTable = false;
    //01/15/2012 if the window provides reference to gridtable, use it
    if (window.getWindowGridTable) { oGridTable = window.getWindowGridTable(); }
    else
    {
        //08/08/2011 if a drag and drop is passed, check it.
        //next check top and parent
        if (opdd) { oIframe = opdd.iFrame; }
        else
        {
            oIframe = top.document.getElementById("__gridTableIFrame");
            if (!oIframe) { oIframe = parent.document.getElementById("__gridTableIFrame"); }
        }
        if (oIframe)
        {
            if (oIframe.contentWindow)
            {
                if (oIframe.contentWindow.gridTable) { oGridTable = oIframe.contentWindow.gridTable; }
            }
        }
        //02/10/2011
        if (oGridTable == false)
        {
            if (top.gridTable) { oGridTable = top.gridTable; }
        }
    }
    return oGridTable;
}

//11/29/2010
//pageSynchronizeTabs(<opTabId>)
//do this so if the back button is pressed, the tabs are correct
function pageSynchronizeTabs(opTabId)
{
    if (top.csgTabs)
    {
        if (top.csgTabs.selectThisTab) { top.csgTabs.selectThisTab(opTabId); }
    }
}

//pageUpdatePermissionImage(<spImgId>, <bpPermission>)
//12/01/2010
function pageUpdatePermissionImage(spImgId, bpPermission)
{
    var oImg = $get(spImgId);
    if (oImg)
    {
        oImg.src = __imagesPath + (bpPermission ? "csgCheckMark.gif" : "csgXMark.gif");
        oImg.title = (bpPermission ? "Enabled" : "Disabled");
    }
}

//pageResize()
//12/03/2010
//Pages without grids that need to resize use this in the body onresize event. example: calendar.aspx.
function pageResizePagesWithTabs()
{
    var oElement;
    var oOffsetHeight = 0;
    var oIFrame = parent.$get("__gridTableIFrame");
    if (oIFrame)
    {
        //all pages have a header div and a title div
        oElement = parent.$get("__pageHeaderDiv");
        if (oElement) { oOffsetHeight += oElement.offsetHeight; }
        oElement = parent.$get("__pageTitleDiv");
        if (oElement) { oOffsetHeight += oElement.offsetHeight; }
        //this page has tabs
        oElement = parent.$get("__tabsContainerDiv");
        if (oElement) { oOffsetHeight += oElement.offsetHeight; }
        oIFrame.style.height = (top.window.document.body.parentElement.clientHeight - oOffsetHeight) + "px";
    }
}

//pageHourGlassHide()
//pageHourGlassShow()
//pageHourGlassDisplay(<opDisplay>)
//02/10/2011
function pageHourGlassHide()
{
    var oDiv = top.$get("__hourGlassDiv");
    if (oDiv) { oDiv.style.display = "none"; }
}
function pageHourGlassShow()
{
    var oDiv = top.$get("__hourGlassDiv");
    if (oDiv) { oDiv.style.display = "block"; }
}

//pagePageIsStillLoadingAlert()
//02/10/2011
function pagePageIsStillLoadingAlert() { alert("Page is still loading..."); }

//pageRequestNetMeeting()
//08/07/2011
function pageRequestNetMeeting()
{
    //09/07/2011 use dragAndDrop_setElementValue()
    var odd = helpDragAndDrop_getContactUs();
    dragAndDrop_setElementValue(odd, "subject", "Net Meeting");
    dragAndDrop_setElementValue(odd, "note", "Please set up a net meeting for me. Thanks!");
    helpDragAndDrop_showContactUs();
}
