����JFIF��x�x����'403WebShell
403Webshell
Server IP : 78.140.185.180  /  Your IP : 3.144.200.28
Web Server : LiteSpeed
System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : builderbox ( 1072)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/dell/srvadmin/lib64/openmanage/apache-tomcat/webapps/omsa/oma/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/dell/srvadmin/lib64/openmanage/apache-tomcat/webapps/omsa/oma/js/Clarity.js
var ClarityJSVersion = "1.26";
var addEvent = {
  add: function (obj, evType, fn, useCapture) {
    // cross-browser event handling for IE5+, NS6 and Mozilla
    // By Scott Andrew
    if (obj.addEventListener) {
      obj.addEventListener(evType, fn, useCapture);
      return true;
    } else if (obj.attachEvent) {
      var r = obj.attachEvent("on" + evType, fn);
      return r;
    } else {
      alert("Handler could not be attached");
    }
  },
  remove: function (obj, evType, fn, useCapture) {
    if (obj.removeEventListener) {
      obj.removeEventListener(evType, fn, useCapture);
      return true;
    } else if (obj.detachEvent) {
      var r = obj.detachEvent("on" + evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }

  }
};

/*
* Copyright (c) 2006 Jonathan Weiss <jw@innerewut.de>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/


/* tooltip-0.2.js - Small tooltip library on top of Prototype 
* by Jonathan Weiss <jw@innerewut.de> distributed under the BSD license. 
*
* This tooltip library works in two modes. If it gets a valid DOM element 
* or DOM id as an argument it uses this element as the tooltip. This 
* element will be placed (and shown) near the mouse pointer when a trigger-
* element is moused-over.
* If it gets only a text as an argument instead of a DOM id or DOM element
* it will create a div with the classname 'tooltip' that holds the given text.
* This newly created div will be used as the tooltip. This is usefull if you 
* want to use tooltip.js to create popups out of title attributes.
* 
*
* Usage: 
*   <script src="/javascripts/prototype.js" type="text/javascript"></script>
*   <script src="/javascripts/tooltip.js" type="text/javascript"></script>
*   <script type="text/javascript">
*     // with valid DOM id
*     var my_tooltip = new Tooltip('id_of_trigger_element', 'id_of_tooltip_to_show_element')
*
*     // with text
*     var my_other_tooltip = new Tooltip('id_of_trigger_element', 'a nice description')
*
*     // create popups for each element with a title attribute
*    Event.observe(window,"load",function() {
*      $$("*").findAll(function(node){
*        return node.getAttribute('title');
*      }).each(function(node){
*        new Tooltip(node,node.title);
*        node.removeAttribute("title");
*      });
*    });
*    
*   </script>
* 
* Now whenever you trigger a mouseOver on the `trigger` element, the tooltip element will
* be shown. On o mouseOut the tooltip disappears. 
* 
* Example:
* 
*   <script src="/javascripts/prototype.js" type="text/javascript"></script>
*   <script src="/javascripts/scriptaculous.js" type="text/javascript"></script>
*   <script src="/javascripts/tooltip.js" type="text/javascript"></script>
*
*   <div id='tooltip' style="display:none; margin: 5px; background-color: red;">
*     Detail infos on product 1....<br />
*   </div>
*
*   <div id='product_1'>
*     This is product 1
*   </div>
*
*   <script type="text/javascript">
*     var my_tooltip = new Tooltip('product_1', 'tooltip')
*   </script>
*
* You can use my_tooltip.destroy() to remove the event observers and thereby the tooltip.
*/

var Tooltip = Class.create();
Tooltip.prototype = {
  initialize: function (element) {
    var options = Object.extend({
      default_css: false,
      margin: "0px",
      padding: "5px",
      backgroundColor: "#d6d6fc",
      min_distance_x: 10,
      min_distance_y: 10,
      delta_x: 0,
      delta_y: 0,
      zindex: 1000
    }, arguments[2] || {});

    this.element = $(element);

    this.options = options;

    var tooltext = this.element.getAttribute("tooltip");
    var inform = this.element.getAttribute("informational");
    if (tooltext != null && tooltext.length > 0) {
      this.createToolTip(tooltext);
    }
    if (inform != null && inform.length > 0) {
      this.createInformToolTip(inform);
    }


    // hide the tool-tip by default
    if(this.tool_tip!=null)
    this.tool_tip.hide();

    this.eventMouseOver = this.showTooltip.bindAsEventListener(this);
    this.eventMouseOut = this.hideTooltip.bindAsEventListener(this);
    this.eventMouseMove = this.moveTooltip.bindAsEventListener(this);

    this.registerEvents();

  },
  createToolTip: function (text) {
    this.tool_tip = $(document.createElement("div"));
    document.body.appendChild(this.tool_tip);
    this.tool_tip.addClassName("tooltip");
    this.tool_tip.appendChild(document.createTextNode(text));
  },
  createInformToolTip: function (text) {
    var div;
    var tarray = text.split('|');
    if (tarray.length > 1) {
      var inner = '<table id="informtip">'
    + '<tr><td class="informtitle">' + tarray[0] + '</td></tr>'
    + '<tr><td class="informbody">' + tarray[1] + '</td></tr></table>';
      this.tool_tip = $(document.createElement("div"));
      document.body.appendChild(this.tool_tip);
      this.tool_tip.addClassName("informtooltip");
      this.tool_tip.innerHTML = inner;
    }
    else {
      this.createToolTip(text);
    }
  },

  destroy: function () {
    Event.stopObserving(this.element, "mouseover", this.eventMouseOver);
    Event.stopObserving(this.element, "mouseout", this.eventMouseOut);
    Event.stopObserving(this.element, "mousemove", this.eventMouseMove);
  },

  registerEvents: function () {
    Event.observe(this.element, "mouseover", this.eventMouseOver);
    Event.observe(this.element, "mouseout", this.eventMouseOut);
    Event.observe(this.element, "mousemove", this.eventMouseMove);
  },

  moveTooltip: function (event) {
    Event.stop(event);
    // get Mouse position
    var mouse_x = Event.pointerX(event);
    var mouse_y = Event.pointerY(event);

    // decide if wee need to switch sides for the tooltip
    var dimensions = Element.getDimensions(this.tool_tip);
    var element_width = dimensions.width;
    var element_height = dimensions.height;

    if ((element_width + mouse_x) >= (this.getWindowWidth() - this.options.min_distance_x)) { // too big for X
      mouse_x = mouse_x - element_width;
      // apply min_distance to make sure that the mouse is not on the tool-tip
      mouse_x = mouse_x - this.options.min_distance_x;
    } else {
      mouse_x = mouse_x + this.options.min_distance_x;
    }

    if ((element_height + mouse_y) >= (this.getWindowHeight() - this.options.min_distance_y)) { // too big for Y
      mouse_y = mouse_y - element_height;
      // apply min_distance to make sure that the mouse is not on the tool-tip
      mouse_y = mouse_y - this.options.min_distance_y;
    } else {
      mouse_y = mouse_y + this.options.min_distance_y;
    }

    // now set the right styles
    this.setStyles(mouse_x, mouse_y);
  },


  showTooltip: function (event) {
    Event.stop(event);
    this.moveTooltip(event);
    this.id = Element.show.delay(0.5, this.tool_tip);
  },

  setStyles: function (x, y) {
    // set the right styles to position the tool tip
    Element.setStyle(this.tool_tip, { position: 'absolute',
      top: y + this.options.delta_y + "px",
      left: x + this.options.delta_x + "px",
      zindex: this.options.zindex
    });

    // apply default theme if wanted
    if (this.options.default_css) {
      Element.setStyle(this.tool_tip, { margin: this.options.margin,
        padding: this.options.padding,
        backgroundColor: this.options.backgroundColor,
        zindex: this.options.zindex
      });
    }
  },

  hideTooltip: function (event) {
    window.clearTimeout(this.id);
    Element.hide(this.tool_tip);
  },

  getWindowHeight: function () {
    var innerHeight;
    if (navigator.appVersion.indexOf('MSIE') > 0) {
      innerHeight = document.body.clientHeight;
    } else {
      innerHeight = window.innerHeight;
    }
    return innerHeight;
  },

  getWindowWidth: function () {
    var innerWidth;
    if (navigator.appVersion.indexOf('MSIE') > 0) {
      innerWidth = document.body.clientWidth;
    } else {
      innerWidth = window.innerWidth;
    }
    return innerWidth;
  }

}

var tooltips = {
  initialize: function () {

    var ti;
    if (!document.links) {
      document.links = document.getElementsByTagName("a");
    }
    for (ti = 0; ti < document.links.length; ti++) {
      var lnk = document.links[ti];
      if (lnk.className == "informational") {
        lnk.setAttribute("informational", lnk.title);
        new Tooltip(lnk);
        lnk.removeAttribute("title");
      }
      else {
        if (lnk.title) {
          lnk.setAttribute("tooltip", lnk.title);
          new Tooltip(lnk);
          lnk.removeAttribute("title");

        }

      }
    }
    if (!document.images) {
      document.images = document.getElementsByTagName("img");
    }
    for (ti = 0; ti < document.images.length; ti++) {
      var img = document.images[ti];
      if (img.title || img.alt) {
        img.setAttribute("tooltip", img.alt);
        img.setAttribute("tooltip", img.title);
        new Tooltip(img);
        img.removeAttribute("alt");
        img.removeAttribute("title");
      }
    }
  }
};

var tableSort = {
  startSort: function (obj, id, col, rev) {
    this.sortStarted = true;
    obj.blur();
    obj.style.cursor = "wait";
    window.document.body.style.cursor = "wait";
    this.sortTable(id, col, rev);
    this.timer = setInterval(function () { tableSort.checkProgress(obj) }, 500);
    return this.sortStarted;
  },
  checkProgress: function (obj) {
    if (!this.sortStarted) {
      obj.style.cursor = "";
      window.document.body.style.cursor = "default";
      clearInterval(this.timer);
    }
  },
  sortTable: function (id, col, rev) {

    // Style class names.
    this.rowClsNm = "fill";
    this.colClsNm = "topsorted";
    this.colClsNmDesc = "topsorteddescend";

    if (document.ELEMENT_NODE == null) {
      document.ELEMENT_NODE = 1;
      document.TEXT_NODE = 3;
    }
    // Get the table or table section to sort.
    var tblEl = document.getElementById(id);

    // The first time this function is called for a given table, set up an
    // array of reverse sort flags.
    if (tblEl.reverseSort == null) {
      tblEl.reverseSort = new Array();
      // Also, assume the date/time column is initially sorted.
      tblEl.lastColumn = 4;
    }

    // If this column has not been sorted before, set the initial sort direction.
    if (tblEl.reverseSort[col] == null)
    { tblEl.reverseSort[col] = rev; }

    // If this column was the last one sorted, reverse its sort direction.
    if (col == tblEl.lastColumn)
    { tblEl.reverseSort[col] = !tblEl.reverseSort[col]; }

    // Remember this column as the last one sorted.
    tblEl.lastColumn = col;

    // Set the table display style to "none" - necessary for Netscape 6 
    // browsers.
    var oldDsply = tblEl.style.display;
    tblEl.style.display = "none";

    // Sort the rows based on the content of the specified column using a
    // selection sort.

    var tmpEl;
    var i, j;
    var minVal, minIdx;
    var testVal;
    var cmp;

    for (i = 0; i < tblEl.rows.length - 1; i++) {

      // Assume the current row has the minimum value.
      minIdx = i;
      minVal = tableSort.__getTextValue(tblEl.rows[i].cells[col]);

      // Search the rows that follow the current one for a smaller value.
      for (j = i + 1; j < tblEl.rows.length; j++) {
        testVal = tableSort.__getTextValue(tblEl.rows[j].cells[col]);
        cmp = tableSort.__compareValues(minVal, testVal);
        // Negate the comparison result if the reverse sort flag is set.
        if (tblEl.reverseSort[col])
        { cmp = -cmp; }
        // Sort by the second column (team name) if those values are equal.
        if (cmp == 0 && col != 1) {
          cmp = tableSort.__compareValues(tableSort.__getTextValue(tblEl.rows[minIdx].cells[1]),
                            tableSort.__getTextValue(tblEl.rows[j].cells[1]));
        }
        // If this row has a smaller value than the current minimum, remember its
        // position and update the current minimum value.
        if (cmp > 0) {
          minIdx = j;
          minVal = testVal;
        }
      }

      // By now, we have the row with the smallest value. Remove it from the
      // table and insert it before the current row.
      if (minIdx > i) {
        tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
        tblEl.insertBefore(tmpEl, tblEl.rows[i]);
      }
    }

    // Make it look pretty.
    tableSort.__makePretty(tblEl, col, tblEl.reverseSort[col]);

    // Restore the table's display style.
    tblEl.style.display = oldDsply;

    this.sortStarted = false;

  },
  __normalizeString: function (s) {

    // Regular expressions for normalizing white space.
    var whtSpEnds = new RegExp("^\\s*|\\s*$", "g");
    var whtSpMult = new RegExp("\\s\\s+", "g");
    s = s.replace(whtSpMult, " ");  // Collapse any multiple whites space.
    s = s.replace(whtSpEnds, "");   // Remove leading or trailing white space.

    return s;
  },
  __getTextValue: function (el) {
    var i;
    var s;

    // Find and concatenate the values of all text nodes contained within the
    // element.
    s = "";
    for (i = 0; i < el.childNodes.length; i++) {
      if (el.childNodes[i].nodeType == document.TEXT_NODE)
      { s += el.childNodes[i].nodeValue; }
      else if (el.childNodes[i].nodeType == document.ELEMENT_NODE &&
             el.childNodes[i].tagName == "BR")
      { s += " "; }
      else
      // Use recursion to get text within sub-elements.
      { s += tableSort.__getTextValue(el.childNodes[i]); }
    }

    return tableSort.__normalizeString(s);
  },
  __compareValues: function (v1, v2) {
    var f1, f2;

    // If the values are numeric, convert them to floats.

    f1 = parseFloat(v1);
    f2 = parseFloat(v2);
    if (!isNaN(f1) && !isNaN(f2)) {
      v1 = f1;
      v2 = f2;
    }

    // Compare the two values.
    if (v1 == v2)
    { return 0; }
    if (v1 > v2)
    { return 1; }
    return -1;
  },
  __makePretty: function (tblEl, col, descendingsort) {
    // Regular expressions for setting class names.
    var rowTest = new RegExp(tableSort.rowClsNm, "gi");
    var colTest = new RegExp(tableSort.colClsNm, "gi");
    var colTestDescend = new RegExp(tableSort.colClsNmDesc, "gi");

    var i, j;
    var rowEl, cellEl;

    // Set style classes on each cell to alternate their appearance step the first and last cell in a row.
    for (i = 0; i < tblEl.rows.length; i++) {
      rowEl = tblEl.rows[i];
      rowEl.className = rowEl.className.replace(rowTest, "");
      if (i % 2 != 0)
      { rowEl.className += " " + tableSort.rowClsNm; }
      rowEl.className = tableSort.__normalizeString(rowEl.className);
      //This is if you put fill on each cell in the row.
      //            for (j = 1; j < rowEl.cells.length - 1; j++) {
      //              cellEl = rowEl.cells[j];
      //              cellEl.className = cellEl.className.replace(rowTest, "");
      //              if (i % 2 != 0)
      //              { cellEl.className += " " + tableSort.rowClsNm; }
      //              cellEl.className = tableSort.__normalizeString(cellEl.className);
      //            }
    }

    // Find the table header and highlight the column that was sorted.
    var el = tblEl.parentNode.tHead;
    rowEl = el.rows[0];
    // Set style classes for each column as above.
    for (i = 0; i < rowEl.cells.length; i++) {
      cellEl = rowEl.cells[i];
      cellEl.className = cellEl.className.replace(colTest, "");
      cellEl.className = cellEl.className.replace(colTestDescend, "");
      // Highlight the header of the sorted column.
      if (i == col) {
        if (descendingsort)
        { cellEl.className += " " + tableSort.colClsNmDesc; }
        else
        { cellEl.className += " " + tableSort.colClsNm; }
      }
      cellEl.className = tableSort.__normalizeString(cellEl.className);
    }
  }
};


var tableCopy = {
  /*
  Copies a selectbox, textbox or checkbox value located in the thead of a table
  to the tbody elements in the same column
  Usage:
  For a input type=checkbox - onclick="CopyAll(this);"
  For a select - onchange="CopyAll(this);"
  For a input type=text - onkeyup="CopyAll(this);" 
  */
  copyAll: function (obj) {
    //Get the cell number of the current item 
    var cellnum = obj.parentNode.cellIndex;
    //get the first tbody
    var tbody = obj.parentNode.offsetParent.tBodies[0];
    //Get the 
    var objtype = obj.type;
    var row, cell, cellitems, cellitem;
    for (var i = 0; i < tbody.rows.length; i++) {
      row = tbody.rows[i];
      cell = row.cells[cellnum];
      if (cell) {
        cellitems = cell.childNodes;
        for (var j = 0; j < cellitems.length; j++) {
          cellitem = cellitems[j];
          if (cellitem.type == objtype) {
            switch (objtype) {
              case "checkbox":
                cellitem.checked = obj.checked;
                break;
              case "select-one":
                cellitem.value = obj.value;
                break;
              case "text":
                cellitem.value = obj.value;
                break;
              default:
                break;
            }
          }

        }
      }
    }
  },
  /*
  This function resets the copyall controls located in the thead of the table
  Usage:
  For a input type=checkbox - onclick="ResetHeader(this);"
  For a select - onchange="ResetHeader(this);"
  For a input type=text - onkeyup="ResetHeader(this);" 
  */
  resetHeader: function (obj) {
    var cellnum = obj.parentNode.cellIndex;
    var thead = obj.parentNode.offsetParent.tHead;
    var objtype = obj.type;
    var row, cell, cellitems, cellitem;
    for (var i = 0; i < thead.rows.length; i++) {
      row = thead.rows[i];
      cell = row.cells[cellnum];
      if (cell) {
        cellitems = cell.childNodes;
        for (var j = 0; j < cellitems.length; j++) {
          cellitem = cellitems[j];
          if (cellitem.type == objtype) {
            switch (objtype) {
              case "checkbox":
                cellitem.checked = false;
                break;
              case "select-one":
                cellitem.selectedIndex = 0;
                break;
              case "text":
                cellitem.value = "";
                break;
              default:
                break;
            }
          }
        }
      }
    }
  }
};
//Script to highlight rows - REH
var tableHighlight = {
  highlightRow: function (e) {
    this.lasthoverclass = new Array();
    var tds = e.getElementsByTagName("td");
    var classname;
    for (var i = 0; i < tds.length; i++) {
      if (i == 0 || i == tds.length - 1)
      { continue; }
      classname = tds[i].className;

      this.lasthoverclass[i] = classname;
      tds[i].className = 'hover ' + classname;
    }
  },
  unHighlightRow: function (e) {
    var tds = e.getElementsByTagName("td");
    for (var i = 0; i < tds.length; i++) {
      if (i == 0 || i == tds.length - 1)
      { continue; }
      tds[i].className = tableHighlight.lasthoverclass[i];
    }
  }
};

var imageMap = {
  highlightedElement: null,
  loaded: false,
  selectedIndex: null,
  initialize: function () {
    if (!document.getElementById || !document.createElement || !document.getElementsByTagName)
    { return; }
    var anni = document.getElementsByTagName('img');
    for (var i = 0; i < anni.length; i++) {
      if ((anni[i].className.search(/\bannotated\b/) != -1) && (anni[i].getAttribute('usemap') != null)) {
        imageMap.prepImage(anni[i]);
        imageMap.loaded = true;
        if (imageMap.selectedIndex != null) {
          imageMap.select(this.selectedIndex);
        }
      }
    }
  },
  getHref: function (obj) {
    var rstring = null;
    var href = obj.getAttribute('href');
    if (href != null && href != "#") {
      if (href.search('javascript') == -1) {
        href = "javascript:document.location = '" + href + "';";
      }
      rstring = href;

    }
    return rstring;
  },
  getId: function (obj) {
    if (obj.id != null) {
      var id = obj.id;
      obj.id = null;
      return id;
    }
  },
  clearAttribs: function (obj) {
    obj.setAttribute('coords', '0,0,0,0');
    //obj.setAttribute('title', null);
    obj.setAttribute('href', '#');
    obj.setAttribute('onclick', null);
    obj.className = null;
  },
  select: function (index) {
    if (index != null) {
      if (!imageMap.loaded) {
        imageMap.selectedIndex = index;
      } else {
        imageMap.selectedIndex = null;
        var el = $(index);
        if (el != null) {
          imageMap.outlineElement(el);
        }
      }
    }
  },
  prepImage: function (img) {
    var mapName = img.getAttribute('usemap');
    if (mapName.substr(0, 1) == '#') { mapName = mapName.substr(1); }
    var mapObjs = document.getElementsByName(mapName);
    if (mapObjs.length != 1) { return; }
    var mapObj = mapObjs[0];
    var areas = mapObj.getElementsByTagName('area');
    img.areas = [];
    for (var j = areas.length - 1; j >= 0; j--) {
      if (areas[j].getAttribute('shape').toLowerCase() == 'rect') {
        var coo = areas[j].getAttribute('coords').split(',');
        var href = imageMap.getHref(areas[j]);
        var id = imageMap.getId(areas[j]);
        if (coo.length != 4) { break; }
        var thisAreaPosition = imageMap.__getAreaPosition(img, coo);
        var d = document.createElement('div');
        d.style.width = (parseInt(coo[2], 10) - parseInt(coo[0], 10)) + 'px';
        d.style.height = (parseInt(coo[3], 10) - parseInt(coo[1], 10)) + 'px';
        d.style.left = thisAreaPosition[0] + 'px';
        d.style.top = thisAreaPosition[1] + 'px';
        d.className = 'annotation';
        d.id = id;
        d.setAttribute('name', 'annotation');
        d.style.position = 'absolute';
        var showtip;
        if (areas[j].title != null) {
          showtip = true;
          if (areas[j].className == 'informational') {
            d.setAttribute('informational', areas[j].title);
          }
          else {
            d.setAttribute('tooltip', areas[j].title);
          }
        }
        imageMap.clearAttribs(areas[j]);
        d.setAttribute('href', href);
        document.getElementsByTagName('body')[0].appendChild(d);

        addEvent.add(d, "mouseover", imageMap.showArea);
        addEvent.add(d, "mouseout", imageMap.hideArea);
        addEvent.add(d, "click", imageMap.showOutline);

        if (showtip) {
          new Tooltip(d);
        }

      }
    }
  },

  __getAreaPosition: function (img, coo) {
    var aleft = (img.offsetLeft + parseInt(coo[0], 10));
    var atop = (img.offsetTop + parseInt(coo[1], 10));
    var oo = img;
    while (oo.offsetParent) {
      oo = oo.offsetParent;
      aleft += oo.offsetLeft;
      atop += oo.offsetTop;
    }
    return [aleft, atop];
  },
  showArea: function (e) {
    var el = imageMap.__getElement(e);
    if (el == imageMap.highlightedElement) {
      imageMap.removeClass(el, 'showoutline');
    }
    imageMap.addClass(el, 'highlight');
  },
  hideArea: function (e) {
    var el = imageMap.__getElement(e);
    if (el == imageMap.highlightedElement) {
      imageMap.addClass(el, 'showoutline');
    }
    imageMap.removeClass(el, 'highlight');
  },
  showOutline: function (e) {
    var el = imageMap.__getElement(e);
    imageMap.outlineElement(el);
  },
  outlineElement: function (el) {
    if (imageMap.highlightedElement) {
      imageMap.removeOutline();
    }
    //Excute the href code
    var href = el.getAttribute('href');
    if (href != null) {
      eval(href);
    }
    imageMap.removeClass(el, 'highlight');
    imageMap.addClass(el, 'showoutline');
    imageMap.highlightedElement = el;
  },
  removeOutline: function () {
    var highlight = imageMap.highlightedElement;
    if (highlight) {
      imageMap.removeClass(highlight, 'showoutline');
      imageMap.highlightedElement = null;
    }
  },
  __getElement: function (e) {
    var t = null;
    if (e && e.target) { t = e.target; }
    if (window.event && window.event.srcElement) { t = window.event.srcElement; }
    return t;
  },
  showAll: function () {
    var divs = document.getElementsByTagName('div');
    for (i = 0; i < divs.length; i++) {
      if (divs[i].getAttribute('name') == 'annotation') {
        divs[i].style.display = 'block';
      }
    }
  },
  hideAll: function () {
    var divs = document.getElementsByTagName('div');
    for (i = 0; i < divs.length; i++) {
      if (divs[i].getAttribute('name') == 'annotation') {
        divs[i].style.display = 'none';
      }
    }
  },
  addClass: function (el, cls) {
    if (!el.className.match(new RegExp('(^| )' + cls + '($| )'))) {
      el.className += ' ' + cls;
      el.className = el.className.replace(/(^ +)|( +$)/g, '');
    }
  },
  removeClass: function (el, cls) {
    var old = el.className;
    var newCls = ' ' + el.className + ' ';
    newCls = newCls.replace(new RegExp(' (' + cls + ' +)+', 'g'), ' ');
    el.className = newCls.replace(/(^ +)|( +$)/g, '');
  }
};

var pullTab = {
  Debug: false,
  ra_resizeStart: function (e, splitter) {
    this.dragging = true;
    this.rightSectionMinWidth = 200;
    this.ra_splitter = splitter;
    splitter.parrentOffsetX = pullTab.ra_GetX(splitter.parentNode) + e.clientX - pullTab.ra_GetX(splitter);
    document.onmousemove = function (e) { if (!e) { e = window.event; } pullTab.ra_mouseMove(e); };
    document.onmouseup = function (e) { if (!e) { e = window.event; } pullTab.ra_resizeStop(e); };
    document.body.ondrag = function () { return !pullTab.dragging; };
    return false;
  },
  ra_GetX: function (oElement) {
    var x = 0;
    while (oElement != null) {
      x += oElement.offsetLeft;
      oElement = oElement.offsetParent;
    }
    return x;
  },
  ra_mouseMove: function (e) {
    var splitter = this.ra_splitter;
    x = e.clientX - splitter.parrentOffsetX;
    if (x >= splitter.parentNode.offsetWidth - splitter.offsetWidth - pullTab.rightSectionMinWidth) {
      x = splitter.parentNode.offsetWidth - splitter.offsetWidth - pullTab.rightSectionMinWidth;
    }
    splitter.style.left = x + "px";
    return false;
  },
  ra_resizeStop: function () {
    document.onmousemove = null;
    document.onmouseup = null;
    var frameset = parent.document.getElementById("contentframeset");
    var splitter = this.ra_splitter;
    var cols = frameset.cols.split(',');
    cols[0] = parseInt(cols[0], 10);
    cols[0] += splitter.offsetLeft;
    cols[1] = '*';
    splitter.style.left = '0px';
    frameset.cols = cols.join(',');
    pullTab.dragging = false;
    //clear the document selection
    if (document.selection) { document.selection.empty(); }
    else if (window.getSelection)
    { window.getSelection().removeAllRanges(); }
  },
  changePullTab: function () {
    try {
      var viewwidth = document.documentElement.clientWidth;
      var viewheight = document.documentElement.clientHeight;
      var scrollwidth = document.body.scrollWidth ? document.body.scrollWidth : document.documentElement.offsetWidth;
      var scrollheight = document.body.scrollHeight ? document.body.scrollHeight : document.documentElement.offsetHeight;
      var scrolltop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
      var scrollleft = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;

      var viewportwidth = scrollwidth > viewwidth ? scrollwidth : viewwidth;
      var viewportheight = scrollheight > viewheight ? scrollheight : viewheight;

	  var toolbar_td = document.getElementById('toolbar_td');
		if(toolbar_td)
		{
			var pagetitle_td = document.getElementById('pagetitle_td');
			if(pagetitle_td)
			{
				pagetitle_td.width = (viewwidth - toolbar_td.clientWidth) + 'px';
			}
		}
	  
      var rightside = document.getElementById('rightside');
      if (rightside) {
        if (scrollheight > viewheight) {
          rightside.style.display = "none";
        }else if(scrollleft > 0)
		{
			//page has been scrolled right. remove rightside border
			rightside.style.display = "none";
		}
        else {
          rightside.style.display = "block";
          rightside.style.height = viewportheight + 'px';
          rightside.style.right = scrollleft * -1 + 'px';
        }
      }
      var pullstrip = document.getElementById('pullstrip');
      if (pullstrip) {
        pullstrip.style.height = viewportheight + 'px';
        pullstrip.style.left = scrollleft + 'px';
      }

      //    var pulltab = document.getElementById('pulltab');
      //    if (pulltab) {
      //      var pos = 0;
      //      if (scrollheight > viewheight) {
      //        pos = scrollheight - viewheight - scrolltop + 42;
      //      } else {
      //        pos = 42;
      //      }
      //      pulltab.style.bottom = pos + 'px';
      //      pulltab.style.left = '5px';
      //    }
    }
    catch (e) { }
  }
};

var popUp = {
  initialize: function () {
    popUp.setHeight();
    addEvent.add(window, "scroll", function () { popUp.setHeight(); });
    addEvent.add(window, "resize", function () { popUp.setHeight(); });
  },
  setHeight: function () {
    var viewheight = document.documentElement.clientHeight;
    var popupoverflow = document.getElementById('popup_overflow');
    if (popupoverflow) {
      var offset = popUp.findPos(popupoverflow)[1];
      popupoverflow.style.height = viewheight - offset + 'px';
    }
  },
  findPos: function (obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
      do {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
      } while (obj = obj.offsetParent);
      return [curleft, curtop];
    }
  },
  openWindow: function (url, windowtitle, popwidth, popheight) {
    if (windowtitle == null) {
      var windowtitle = 'popup';
    }
    if (popwidth == null) {
      popwidth = 700;
    }
    if (popheight == null) {
      popheight = 400;
    }
    if (url != null) {
      window.open(url, windowtitle, 'width=' + popwidth + ',height=' + popheight + ',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,resizable=yes');
    }
  },
  closeWindow: function () {
    window.close();
  },
  scrolltoTop: function () {
    var popupoverflow = document.getElementById('popup_overflow');
    if (popupoverflow) { popupoverflow.scrollTop = 0; }
  }
};
var transferBox = {
  selectItem: function (obj) {
    if (obj.className != "unavaliable") {
      if (obj == this.LAST_SELECTED) {
        obj.className = "avaliable"
        this.LAST_SELECTED = null;
      }
      else {
        if (this.LAST_SELECTED) {
          this.LAST_SELECTED.className = "avaliable";
        }
        obj.className = "selected";
        obj.style.width = obj.offsetWidth;
        this.LAST_SELECTED = obj;
      }
    }
  },
  addItem: function () {
    var item = $('avaliable_box').select('[class="selected"]')[0];
    if (item != null) {
      //Get the id of the selection
      var idselected = this.__selectAndRemove(item);
      //Mark the item unavaliable
      item.className = 'unavaliable';
      //Clear the selected list
      var selectedlist = $('selected_box').select('div');
      for (var i = 0; i < selectedlist.length; i++) {
        selectedlist[i].remove();
      }
      //Get all the items marked as unavaliable and copy them back into the selected list
      //This keeps them in order.
      this.__copyToSelectedBox();

      //This method just adds it to the bottom of the list and does maintain order.
      //Create div id to put in the selected collection
      //var el = new Element('div', { 'class': 'avaliable', 'id': 's-' + idselected }).update(item.innerHTML);
      //$('selected_box').appendChild(el);
      //this.__addEvents(el);

    }
  },

  removeItem: function () {
    var item = $('selected_box').select('[class="selected"]')[0];
    if (item != null) {
      //Get the id of the selection
      var idselected = this.__selectAndRemove(item);

      //remove the div
      item.remove();
      //get the div from the avaliable side and change it's class to avaliable
      var avbox = $('avaliable_box').select('[class="unavaliable"]');
      var ai, aiid;
      for (var i = 0; i < avbox.length; i++) {
        ai = avbox[i];
        aiid = ai.id.split('-')[1];
        if (aiid == idselected) {
          ai.className = 'avaliable';
        }
      }

    }

  },
  buildLists: function () {
    this.__buildList('avaliable_box', 'avaliable');
    this.__buildList('selected_box', 'selected');
    this.__reportAvaliable();
    this.__reportSelected();
  },
  __buildList: function (listbox, listobj) {
    var list = $(listbox).select('[class="avaliable"]');
    var newArray = Array();
    var itemid;
    for (var i = 0; i < list.length; i++) {
      itemid = list[i].id.split('-')[1];
      newArray.push(itemid);
    }
    $(listobj).value = newArray.join(',');
  },
  setupEvents: function () {
    this.__setupDivs($('avaliable_box').select('div'));
    this.__setupDivs($('selected_box').select('div'));
  },
  __addEvents: function (obj) {
    obj.observe('mouseover', function () { this.style.cursor = "pointer"; });
    obj.observe('mouseout', function () { this.style.cursor = "default"; });
    obj.observe('click', function () { transferBox.selectItem(this) });
  },
  __setupDivs: function (obj) {
    for (var i = 0; i < obj.length; i++) {
      this.__addEvents(obj[i]);
    }
  },
  __selectAndRemove: function (item) {
    //Change last selected to null so item does no high light
    this.LAST_SELECTED = null;
    return item.id.split('-')[1];
  },
  __copyToSelectedBox: function () {
    //Get unavaliable items
    selectedlist = $('avaliable_box').select('[class="unavaliable"]');
    //Get the selected_box div to append elements
    var selectbox = $('selected_box');
    var selectitem, aid;
    for (var i = 0; i < selectedlist.length; i++) {
      //Clone the item
      selectitem = selectedlist[i].cloneNode(true);
      //Change it's css name
      selectitem.className = "avaliable";
      //Change the id
      aid = selectitem.id.split('-')[1];
      selectitem.id = 's-' + aid;
      //Append it to the selected_box div
      selectbox.appendChild(selectitem);
      //Add Events to the item
      this.__addEvents(selectitem);
    }
  },
  //These are just helper functions to use to test when form is submitted.
  __reportAvaliable: function () {
    alert($F('avaliable'));
  },
  __reportSelected: function () {
    alert($F('selected'));
  }

};

var pageTitle = {
  setTitle: function (titleoverride) {
    if (titleoverride != null) {
      parent.document.title = titleoverride;
    } else if (document.getElementById("pageTitle") != null) {
      var datitle = document.getElementById("pageTitle").innerHTML;
      parent.document.title = this.__getSystemTitle(datitle);
    }
  },
  __getSystemTitle: function (datitle) {
    //Not sure how to do this in firefox.
    try {
      var systemName = parent.title.document.getElementById("system_name");
      //var systemName = parent.document.frames[2].document.getElementById("system_name");
      //May need to change this based on how the systemName is produced.
      if (systemName != null) {
        if (document.all) {
          return systemName.innerText + " : " + datitle;
        } else {
          return systemName.childNodes[2].nodeValue + " : " + datitle;
        }
      }
    }
    catch (err) {
      return datitle;
    }
  }

};

//This is for the Progress Bar
var progressBar = {
  timeout: null,
  show: function (now) {
    if (now == true) {
      progressBar.display();
    }
    else {
      progressBar.timeout = setTimeout(progressBar.display, 3000);
    }
  },
  display: function () {
    var modalpage = document.getElementById('progressPage');
    var modalgraphic = document.getElementById('progressGraphic');
    if (modalpage != null && modalgraphic != null) {
      modalgraphic.style.top = progressBar.calculatepos();
      modalpage.style.display = "block";
      addEvent.add(window, "scroll", progressBar.setModalGraphic);
      addEvent.add(window, "resize", progressBar.setModalGraphic);
    }
  },
  hide: function () {
    var modalpage = document.getElementById('progressPage');
    if (modalpage != null) {
      modalpage.style.display = "none";
      addEvent.remove(window, "scroll", progressBar.setModalGraphic);
      addEvent.remove(window, "resize", progressBar.setModalGraphic);
      clearTimeout(progressBar.timeout);
    }
  },
  calculatepos: function () {
    var pos = 0;
    try {
      var viewheight = document.documentElement.clientHeight;
      var scrollheight = document.body.scrollHeight ? document.body.scrollHeight : document.documentElement.offsetHeight;
      var scrolltop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
      var viewportheight = scrollheight > viewheight ? scrollheight : viewheight;

      if (scrollheight > viewheight) {
        pos = viewheight * .5 - 100 + scrolltop + 'px';
      } else {
        pos = viewheight * .5 - 100 + 'px';
      }
    }
    catch (err) { }
    return pos;
  },
  setModalGraphic: function () {
    var modalgraphic = document.getElementById('progressGraphic');
    if (modalgraphic != null) {
      modalgraphic.style.top = progressBar.calculatepos();
    }
  }
};
var finiteProgressBar = {
  show: function () {
    var modalpage = document.getElementById('finiteprogressPage');
    var modalgraphic = document.getElementById('finiteprogressGraphic');
    if (modalpage != null && modalgraphic != null) {
      modalgraphic.style.top = finiteProgressBar.calculatepos();
      modalpage.style.display = "block";
      addEvent.add(window, "scroll", finiteProgressBar.setModalGraphic);
      addEvent.add(window, "resize", finiteProgressBar.setModalGraphic);
    }
  },
  hide: function () {
    var modalpage = document.getElementById('finiteprogressPage');
    if (modalpage != null) {
      modalpage.style.display = "none";
      addEvent.remove(window, "scroll", finiteProgressBar.setModalGraphic);
      addEvent.remove(window, "resize", finiteProgressBar.setModalGraphic);
    }
  },
  calculatepos: function () {
    var pos = 0;
    try {
      var viewheight = document.documentElement.clientHeight;
      var scrollheight = document.body.scrollHeight ? document.body.scrollHeight : document.documentElement.offsetHeight;
      var scrolltop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
      var viewportheight = scrollheight > viewheight ? scrollheight : viewheight;

      if (scrollheight > viewheight) {
        //pos = scrolltop;
        pos = viewheight * .5 - 66 + scrolltop + 'px';
      } else {
        pos = viewheight * .5 - 66 + 'px';
      }
    }
    catch (err) { }
    return pos;
  },
  setModalGraphic: function () {
    var modalgraphic = document.getElementById('finiteprogressGraphic');
    if (modalgraphic != null) {
      modalgraphic.style.top = finiteProgressBar.calculatepos();
    }
  },
  setProgress: function (percent_complete) {
    var progressbar = document.getElementById('finiteProgressBar');
    if (progressbar != null) {
      if (percent_complete <= 100) {
        progressbar.style.width = percent_complete + '%';
      }
    }
  }
};
//Need to refactor the progress and modal stuff using more prototype framework.
var modalError = {
  show: function () {
    var modalpage = $('modalDiv');
    var modalgraphic = $('error_modal');
    var viewport = document.viewport.getDimensions();
    if (modalpage != null && modalgraphic != null) {
      modalpage.style.display = "block";
      //modalpage.setStyle({ width: viewport.width + 'px', height: viewport.height + 'px' });
      //modalpage.select('div.modalBackground').first().setStyle({ width: viewport.width + 'px', height: viewport.height + 'px' });
      //need to set the width and height of the clientwindow here.
      //research for later.
      modalgraphic.style.top = modalError.calculatepos();
      addEvent.add(window, "scroll", modalError.setModalGraphic);
      addEvent.add(window, "resize", modalError.setModalGraphic);
    }
  },
  hide: function () {
    var modalpage = $('modalDiv');
    if (modalpage != null) {
      modalpage.style.display = "none";
      addEvent.remove(window, "scroll", modalError.setModalGraphic);
      addEvent.remove(window, "resize", modalError.setModalGraphic);
    }
  },
  calculatepos: function () {
    var pos = 0;
    try {
      var viewheight = document.documentElement.clientHeight;
      var scrollheight = document.body.scrollHeight ? document.body.scrollHeight : document.documentElement.offsetHeight;
      var scrolltop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
      var viewportheight = scrollheight > viewheight ? scrollheight : viewheight;

      if (scrollheight > viewheight) {
        //pos = scrolltop;
        pos = (viewheight * .5) - ($('error_modal').getHeight() / 2) + scrolltop + 'px';
      } else {
        pos = (viewheight * .5) - ($('error_modal').getHeight() / 2) + 'px';
      }
    }
    catch (err) { }
    return pos;
  },
  setModalGraphic: function () {
    var modalgraphic = $('error_modal');
    if (modalgraphic != null) {
      modalgraphic.style.top = modalError.calculatepos();
    }
  }
};
var containerTree = {
  toggle: function (el) {
    if (!el.className.match(/(^| )closed($| )/)) {
      this.treeClose(el)
    } else {
      this.treeOpen(el)
    }
  },
  treeClose: function (el) {
    this.addClass(el, "closed");
    this.removeClass(el, "opened");
    var div = el.offsetParent.getElementsByTagName('div');
    div[0].style.display = "none";
  },
  treeOpen: function (el) {
    this.addClass(el, "opened");
    this.removeClass(el, "closed");
    var div = el.offsetParent.getElementsByTagName('div');
    div[0].style.display = "block";
    div[0].style.offsetHeight = 0;
  },
  addClass: function (el, cls) {
    if (!el.className.match(new RegExp('(^| )' + cls + '($| )'))) {
      el.className += ' ' + cls;
      el.className = el.className.replace(/(^ +)|( +$)/g, '');
    }
  },
  removeClass: function (el, cls) {
    var old = el.className;
    var newCls = ' ' + el.className + ' ';
    newCls = newCls.replace(new RegExp(' (' + cls + ' +)+', 'g'), ' ');
    el.className = newCls.replace(/(^ +)|( +$)/g, '');
  }
};
var docOverFlow = {
  initialize: function () {
    if (parent.snb) {
      docOverFlow.__getDivs();
      docOverFlow.checkSize();
      setTimeout(function () { docOverFlow.__setPos(); }, 300);
      docOverFlow.__setEvents();
    }
  },
  scrollable: false,
  checkSize: function () {
    var snbtable = parent.snb.document.getElementById("snbtable");
    var lsnbtable = parent.lsnb.document.getElementById("lsnbtable");
    var tempobj = docOverFlow.__getMax(snbtable, lsnbtable);
    if (tempobj) {
      var y = document.getElementById("dataarea");
      docOverFlow.__reset();
      if (tempobj.offsetWidth > document.documentElement.clientWidth) {
        if (y) {
          y.style.width = parseInt(tempobj.offsetWidth) + 'px';
          docOverFlow.scrollable = true;
        }
      } else {
        if (y) {
          y.style.width = 'auto';
          docOverFlow.scrollable = false;
        }
      }
    };
  },
  scroll: function () {
    if (docOverFlow.scrollable) {
      docOverFlow.__setLeft(docOverFlow.snbtabs);
      docOverFlow.__setLeft(docOverFlow.lsnbtabs)
      docOverFlow.__setRight(docOverFlow.snbright);
      docOverFlow.__setRight(docOverFlow.lsnbright);
    }
  },
  __reset: function () {
    try {
      docOverFlow.__resetLeftStyle(docOverFlow.snbtabs);
      docOverFlow.__resetLeftStyle(docOverFlow.lsnbtabs);
      docOverFlow.__resetRightStyle(docOverFlow.snbright);
      docOverFlow.__resetRightStyle(docOverFlow.lsnbright);
    }
    catch (err) { }
  },
  __resetLeftStyle: function (el) {
    if (el) {
      el.style.left = '0px';
    }
  },
  __resetRightStyle: function (el) {
    if (el) {
      el.style.right = '0px';
    }
  },
  __setPos: function () {
    if (docOverFlow.snbtabs) {
      //var x = parseInt(docOverFlow.snbtabs.style.left) * -1;
      if (docOverFlow.scrollable) {
        //parent.da.window.scrollTo(x, 0);
        parent.da.window.scrollTo(0, 0);
      }
    }
  },
  __getMax: function (snbobj, lsnbobj) {
    if (snbobj && lsnbobj) {
      if (snbobj.offsetWidth > lsnbobj.offsetWidth) {
        return snbobj;
      } else {
        return lsnbobj;
      }
    } else {
      return false;
    }
  },
  __setLeft: function (obj) {
    if (obj) {
      var x = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
      obj.style.left = docOverFlow.__addPx(x * -1);
    }
  },
  __setRight: function (obj) {
    if (obj) {
      var x = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
      obj.style.right = docOverFlow.__addPx(x * -1);
    }
  },
  __addPx: function (obj) {
    return obj + 'px';
  },
  __getDivs: function () {
    docOverFlow.snbtabs = parent.snb.document.getElementById("snb_tabs");
    if (docOverFlow.snbtabs) {
      var snbdivs = docOverFlow.snbtabs.getElementsByTagName('div');
      for (var i = 0; i < snbdivs.length; i++) {
        docOverFlow.snbright = snbdivs[i];
        break;
      }
    }
    docOverFlow.lsnbtabs = parent.lsnb.document.getElementById("lsnb_menu");
    if (docOverFlow.lsnbtabs) {
      var lsnbdivs = docOverFlow.lsnbtabs.getElementsByTagName('div');
      for (var i = 0; i < lsnbdivs.length; i++) {
        docOverFlow.lsnbright = lsnbdivs[i];
        break;
      }
    }
  },
  __setEvents: function () {
    if (docOverFlow.snbtabs != null) {
      addEvent.add(window, "scroll", function () { docOverFlow.scroll() });
      addEvent.add(window, "resize", function () { docOverFlow.checkSize() });
    }
  }
};
//if prototype is loaded then add events with the library.
if (typeof document.observe == 'function') {
  document.observe("dom:loaded", function () {
    pageTitle.setTitle();
    docOverFlow.initialize();
    pullTab.changePullTab();
    Event.observe(window, "scroll", function () { pullTab.changePullTab(); });
    Event.observe(window, "resize", function () { pullTab.changePullTab(); });
    imageMap.initialize();
    tooltips.initialize();
  });
}
else {
  //Use the addevent model when prototype is not loaded.
  addEvent.add(window, "load", function () {
    pageTitle.setTitle();
    docOverFlow.initialize();
    pullTab.changePullTab();
    imageMap.initialize();
    tooltips.initialize();
  });
  addEvent.add(window, "scroll", function () { pullTab.changePullTab(); });
  addEvent.add(window, "resize", function () { pullTab.changePullTab(); });

}
 
 
 
 
 	



Youez - 2016 - github.com/yon3zu
LinuXploit