// ************************************************************************* // Browser / Platform Detection // ************************************************************************* var agt=navigator.userAgent.toLowerCase(); var is_major = parseInt(navigator.appVersion); var is_minor = parseFloat(navigator.appVersion); var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) ); var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) ); var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1)); var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) ); var is_gecko = (agt.indexOf("gecko")!=-1) var is_nav4 = (((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)) && (is_major == 4)); var is_opera7 = (agt.indexOf("opera 7")!=-1) var is_win = (agt.indexOf("win")!=-1); var is_mac = (agt.indexOf("mac")!=-1); var is_linux = (agt.indexOf("inux")!=-1); // ************************************************************************* // Skin Variables // ************************************************************************* var f5loading = true var loadStart = new Date().getTime() var pageType var helpURL // ************************************************************************* // Placeholder Functions // ************************************************************************* function onLoad() { } function onUnLoad() { } function onResize() { } // ************************************************************************* // Document & Window Events // ************************************************************************* window.onload = function() { // Load help content var helpFrameObject = findObj('helpframe') if (helpFrameObject && helpURL) { helpFrameObject.src = helpURL } // Climb through all
objects... if (document.forms.length > 0) { for (var i = 0; i < document.forms.length; i++) { // Reset all form elements (fix for Mozilla) document.forms[i].reset(); if (pageType != 'list') { // Manual formatting of disabled objects for (var ii = 0; ii < document.forms[i].elements.length; ii++) { var formObject = document.forms[i].elements[ii] if (formObject.disabled == true) { disableObject2(formObject) } } } } // Hide repeat button during linked add var linkedObject = findObjId('linked_add_id'); if (linkedObject && linkedObject.value != '' && findObjId('repeat')){ hideObj('repeat'); } // Hide objects with found in hideObjList if (findObjName('hideObjList').value) { var objectList = findObjName('hideObjList').value.split(','); if (objectList.length > 0) { for (var i = 0; i < objectList.length; i++) { if (findObj(objectList[i])) { hideObj(objectList[i]) } } } } // Show objects with found in showObjList if (findObjName('showObjList').value) { var objectList = findObjName('showObjList').value.split(','); if (objectList.length > 0) { for (var i = 0; i < objectList.length; i++) { if (findObj(objectList[i])) { showObj(objectList[i]) } } } } // Enable objects with found in hideObjList if (findObjName('enableObjList').value) { var objectList = findObjName('enableObjList').value.split(','); if (objectList.length > 0) { for (var i = 0; i < objectList.length; i++) { if (findObjName(objectList[i])) { enableObj(objectList[i]) } } } } // Disable objects with found in hideObjList if (findObjName('disableObjList').value) { var objectList = findObjName('disableObjList').value.split(','); if (objectList.length > 0) { for (var i = 0; i < objectList.length; i++) { if (findObjName(objectList[i])) { disableObj(objectList[i]) } } } } } // Set page loading variable f5loading = false // Show "Advanced" Options toggleAdvancedProperties('checkstate') // Mark current GUI location highlightPageMenus(); // Move server content to appropriate containers var pageMenuLayout = findObjId('layout-pagemenu') var pageTrailObject = findObjId('pagetrail') var pageMenuObject = findObjId('pagemenu') var loadingObject = findObjId('loading') var contentObject = findObjId('content') if (!contentObject) { contentObject = document.createElement("div"); contentObject.id = "content"; messageType = "warning" messageTitle = "Page Error" messageText = "There is no page content to display."; var warningObject = findObj("warning"); if (warningObject) { contentObject.appendChild(warningObject); } } // Move page trail... if (pageMenuLayout && pageTrailObject) { pageMenuLayout.appendChild(pageTrailObject.parentNode.removeChild(pageTrailObject)) } // Move page menu... if (pageMenuLayout && pageMenuObject) { pageMenuLayout.appendChild(pageMenuObject.parentNode.removeChild(pageMenuObject)) } // Move page content... if (loadingObject && contentObject) { loadingObject.parentNode.replaceChild(contentObject, loadingObject) } // Display error message if any server content objects are missing // Populate any File Upload iframe controls // (This might be slow on a large page, so keep this in mind for optimization later.) populateFileUploadIframes(); // Run custom onLoad() function if specified on page (optional) onLoad() // Make page content visible contentObject.style.visibility = 'visible' // Hide "Loading..." message and show page message (if appropriate) showMessage() // Display load time and clear timeout findObjId('layout-loadtime').innerHTML = 'Page loaded in ' + ((new Date().getTime() - loadStart) / 1000) + ' seconds.' // Focus on first visible form field item var formList = contentObject.getElementsByTagName('FORM'); if (formList && formList.length > 0) { for (var i = 0; i < formList[0].elements.length; i++) { var formObject = formList[0].elements[i] if (formObject.type != 'hidden' && formObject.style.display != 'none' && formObject.parentNode.style.display != 'none' && formObject.parentNode.parentNode.style.display != 'none' && formObject.getAttribute('disabled') != "disabled" && formObject.getAttribute('disabled') != true && formObject.getAttribute('readonly') != "readonly" && formObject.getAttribute('readonly') != true && formObject.type != 'button' && formObject.type != 'submit') { try { formObject.focus() } catch (e) {} break } } } } window.onresize = function() { if (is_gecko) { findObjId('all').style.width = '' findObjId('all').style.width = findObjId('all').offsetWidth + 'px' } onResize() } window.onunload = function() { onUnLoad() // Store current tab if (currentTab != currentTabCookie) { setCookie('f5currenttab',currentTab) } // Store which main menus are open if (mainMenuOpenList != mainMenuOpenListCookie) { setCookie('f5mainmenuopenlist',mainMenuOpenList) } // Store which tables have advanced / basic toggled if (advancedDisplay != advancedDisplayCookie) { setCookie('f5advanceddisplay',advancedDisplay) } } // ************************************************************************* // onLayoutLoad Function (after layout is loaded, but before server content) // ************************************************************************* var currentTab = 'main' var currentTabCookie = getCookie('f5currenttab') function onLayoutLoad() { // Show the current tab if (currentTabCookie && findObjId('tab-' + currentTabCookie)) { currentTab = currentTabCookie } showTab(currentTab) // Open Main Menus (Multiple menus open at once) if (mainMenuOpenListCookie) { var openMenuList = mainMenuOpenListCookie.split(',') for (var i = 0; i < openMenuList.length; i++) { mainMenu(openMenuList[i]) } } // Resize Layout var pageHeaderHeight = findObjId('layout-header-left').offsetHeight var pageFooterHeight = findObjId('layout-footer-left').offsetHeight + findObjId('layout-copyright').offsetHeight + findObjId('layout-loadtime').offsetHeight if (window.innerHeight) { var viewportHeight = window.innerHeight; // Mozilla, Opera, and Safari } else if (window.document.documentElement.clientHeight) { var viewportHeight = document.documentElement.clientHeight; // IE (Standards Mode) } else { var viewportHeight = window.document.body.clientHeight; // IE (Quirks Mode) and everything else } findObjId('layout-body').style.height = viewportHeight - pageHeaderHeight - pageFooterHeight + 'px' findObjId('helpframe').style.height = viewportHeight - pageHeaderHeight - pageFooterHeight - 65 + 'px' if (is_gecko) { findObjId('all').style.width = findObjId('all').offsetWidth + 'px' } findObjId('all').style.visibility = 'visible' } // ************************************************************************* // Tabs // ************************************************************************* function showTab(tabname) { // Get list of tab IDs var tabList = findObjId('tabs').getElementsByTagName('DIV') // Hide all tabs for (var i = 0; i < tabList.length; i++) { tabList[i].className = '' findObjId(tabList[i].id + '-content').style.display = 'none' } // Show selecte tab currentTab = tabname findObjId('tab-' + tabname).className = 'current' findObjId('tab-' + tabname + '-content').style.display = 'block' } // ************************************************************************* // Main Menu // ************************************************************************* var mainMenuOpenList = new Array() var mainMenuOpenListCookie = getCookie('f5mainmenuopenlist') var nav1head var nav1link function mainMenu(menuName) { var selectedMenu = findObjId('mainmenu-' + menuName) if (selectedMenu) { if (selectedMenu.className == 'open') { selectedMenu.className = '' deleteArrayItem('mainMenuOpenList',menuName) return } selectedMenu.className = 'open' addArrayItem('mainMenuOpenList',menuName) } } // ************************************************************************* // Page Menu // ************************************************************************* var nav2head var nav2link function pageMenuOver(object) { var pageMenus = findObjId('pagemenu').getElementsByTagName('DIV') for (var i = 0; i < pageMenus.length; i++) { if (pageMenus[i].className == 'menu') { if (pageMenus[i] != findObj(object.id + '-menu')) { pageMenus[i].style.display = 'none' } else { pageMenus[i].style.display = 'block' if (pageMenus[i].offsetWidth < object.offsetWidth - 1) { pageMenus[i].style.width = object.offsetWidth - 1 + 'px' } } } } findObjId('history-menu').style.display = 'none' } function pageMenuOut(object) { var dropmenuObject = findObj(object.id + '-menu') if (dropmenuObject) { dropmenuObject.style.display = 'none' } } function unhighlightMainMenu() { var nav1linkObject = findObjId('mainmenu-' + nav1head + '-' + nav1link); if (nav1link != '' && nav1linkObject) { nav1linkObject.parentNode.className = nav1linkObject.parentNode.className.replace(' current', ''); } } function highlightPageMenus() { var nav1headObject = findObjId('mainmenu-' + nav1head); var nav1linkObject = findObjId('mainmenu-' + nav1head + '-' + nav1link); var nav2headObject = findObjId('pagemenu-' + nav2head); var nav2linkObject = findObjId('pagemenu-' + nav2head + '-' + nav2link); if (nav1head != '' && nav1headObject && nav1headObject.className != 'open') { mainMenu(nav1head); } if (nav1link != '' && nav1linkObject) { nav1linkObject.parentNode.className += ' current'; } if (nav2head != '' && nav2headObject) { nav2headObject.className += ' current'; } if (nav2link != '' && nav2linkObject) { nav2linkObject.parentNode.className += ' current'; } } // ************************************************************************* // History // ************************************************************************* function historyOver() { return var pageMenus = findObjId('pagemenu').getElementsByTagName('DIV') for (var i = 0; i < pageMenus.length; i++) { pageMenus[i].style.display = 'none' } findObjId('history-menu').style.display = 'block' } function historyOut() { return findObjId('history').style.background = '' findObjId('history-menu').style.display = 'none' } // ************************************************************************* // Messages // ************************************************************************* // Valid messageType values: success,warning var messageType = '' var messageTitle = '' var messageText = '' function clearMessage() { var messageObj = findObj('message'); if (messageObj.className == "loading" || messageObj.className == "success" || messageObj.className == "warning") { showMessage('', '', ''); } } function showMessage(type, title, text) { if (type != undefined) messageType = type; if (title != undefined) messageTitle = title; if (text != undefined) messageText = text; var messageObj = findObj('message') if (messageType != '') { window.scroll(0,0); messageObj.className = messageType findObj('messagetitle').innerHTML = messageTitle findObj('messagetext').innerHTML = messageText messageObj.style.visibility = 'visible' } else { messageObj.style.visibility = 'hidden' } } // ************************************************************************* // Content Glass (prevents content from being clicked on) // ************************************************************************* function toggleContentGlass(state) { var contentDiv = document.getElementById('content') if (state == true || (!state && contentDiv.className.indexOf('glass') == -1)) { contentDiv.className = contentDiv.className + ' glass' } else { // makes sure to erase the " glass" string from the class name // in case the original class name was an empty string (in which // case the leading space in " glass" gets loped off. contentDiv.className = contentDiv.className.replace(' glass','') contentDiv.className = contentDiv.className.replace('glass','') } } // ************************************************************************* // Progress Bars // ************************************************************************* function setProgress(progressDivObject, percentComplete) { percentComplete = Math.floor(percentComplete * 100); if (!progressDivObject.barDiv || !progressDivObject.textDiv) { for (var i=0; i < progressDivObject.childNodes.length; i++) { var div = progressDivObject.childNodes[i]; if (div.className == "bar") { progressDivObject.barDiv = div; } else if (div.className == "text") { progressDivObject.textDiv = div; } } } progressDivObject.barDiv.style.width = percentComplete + "px"; progressDivObject.textDiv.innerHTML = percentComplete + "%"; }