// ### Initializer #################################################################
function Initialize()
{
  SetPaneSize();

  divQuickMenuBack = document.getElementById("divQuickMenuBack");
  divQuickMenuContent = document.getElementById("divQuickMenuContent");
  divQuickMenuOpen = document.getElementById("divQuickMenuOpen");

  SetFloatDiv("divQuickMenuOpen", 320).floatIt();
  SetFloatDiv("divQuickMenuContent", 120).floatIt();
  SetFloatDiv("divQuickMenuBack", 120).floatIt();

  //SetQuickMenuLocation();
  //SetAcmInlineEvent();
  //SetRightHeaderOverflow();
  //SetFixPng();
}

// ### Method ######################################################################
function AddEvent(pObject, pEventType, pFunction)
{
  if (pObject.addEventListener)
  {
    pObject.addEventListener(pEventType, pFunction, false);
  }
  else
  {
    if (pObject.attachEvent)
    {
      pObject.attachEvent("on" + pEventType, pFunction);
    }
  }
}

function SetRightHeaderOverflow()
{
  if (window.navigator.userAgent.indexOf("MSIE 6.0") != -1)
  {
    document.getElementById("divRightHeader").style.overflow = "auto";
  }
}
 
function SetFixPng()
{
 
  $.ifixpng("images/pixel.gif");
/*  
  $("img[@src$=.png]").ifixpng();
  $("td#tdXlFc01Front").ifixpng();
  $("div.xlcontentpanefront").ifixpng();     
  $("td#tdXlFc04Front").ifixpng(); 
*/
// apply to all png images
$('img[@src$=.png]').ifixpng(); 
/*
// apply to all png images and to div#logo
$('img[@src$=.png], div#logo').ifixpng(); 

// apply to div#logo, undo fix, then apply the fix again
$('img[@src$=.png], div#logo').ifixpng().iunfixpng().ifixpng(); 
 */ 
}
  
// ### Pane Size ###################################################################
function SetPaneSize()
{
  var divLeftPane = document.getElementById("dnn_LeftPane");
  var divTopPane = document.getElementById("dnn_TopPane");
  var divBottomPane = document.getElementById("dnn_BottomPane");

  if (!divLeftPane.hasChildNodes())
  {
    divLeftPane.style.display = "none";
  }

  if (!divTopPane.hasChildNodes())
  {
    divTopPane.style.display = "none";
  }

  if (!divBottomPane.hasChildNodes())
  {
    divBottomPane.style.display = "none";
  }
}


// ### Search ######################################################################
function SetSearchTextFocus(pTextBox)
{
  if (pTextBox.value.toLowerCase() == "search")
  {
    pTextBox.value = "";
  }
}

function SetSearchTextBlur(pTextBox)
{
  if (pTextBox.value.toLowerCase() == "")
  {
    pTextBox.value = "Search";
  }
}

// ### Accordion Menu ##############################################################
/*
function SetAcmInlineEvent()
{
  var acmContainersDivs = document.getElementById("divAcm").getElementsByTagName("div");

  for (var i = 0; i < acmContainersDivs.length; i++)
  {
    if (acmContainersDivs[i].className == "acmroottitle")
    {
      eval("AddEvent(acmContainersDivs[" + i + "], \"mouseover\", function InlineEvent(){ if (typeof(AcmRootMouseOver) == \"function\"){ AcmRootMouseOver(acmContainersDivs[" + i + "]); } })");
      eval("AddEvent(acmContainersDivs[" + i + "], \"mouseout\", function InlineEvent(){ if (typeof(AcmRootMouseOut) == \"function\"){ AcmRootMouseOut(acmContainersDivs[" + i + "]); } })");
    }
  }
}

function SetAcmContent(pThis)
{
  var acmRootDivs = pThis.parentNode.getElementsByTagName("div");
  var acmRootContent;
  var nDisplay = "";

  for (var i = 0; i < acmRootDivs.length; i++)
  {
    if (acmRootDivs[i].className == "acmrootcontent")
    {
      acmRootContent = acmRootDivs[i];
      break;
    }
  }

  if (acmRootContent)
  {
    nDisplay = acmRootContent.style.display;

    HideAcmRootContent();
    acmRootContent.style.display = "block";

    if (nDisplay == "block")
    {
      acmRootContent.style.display = "none";
    }
  }
}

function HideAcmRootContent()
{
  var acmContainersDivs = document.getElementById("divAcm").getElementsByTagName("div");

  for (var i = 0; i < acmContainersDivs.length; i++)
  {
    if (acmContainersDivs[i].className == "acmrootcontent")
    {
      acmContainersDivs[i].style.display = "none";
    }
  }
}

function AcmRootMouseOver(pThis)
{
  pThis.style.backgroundColor = "#fcfcfc";
}

function AcmRootMouseOut(pThis)
{
  pThis.style.backgroundColor = "";
}
*/

// ### Quick Menu ##################################################################

var divQuickMenuBack, divQuickMenuContent;
var divQuickMenuOpen;
var isQmRunning = false;
var isQmOpen = false;
var nIWidth;
var nQmWidth = 0;
 
function SetQuickMenuLocation()
{
   
  var divSubPage = document.getElementById("divSubPage");
  var nX = (divSubPage.offsetLeft + divSubPage.offsetWidth);
 
  divQuickMenuBack.style.left = (nX - 123).toString() + "px";
  divQuickMenuContent.style.left = (nX - 123).toString() + "px";
  divQuickMenuOpen.style.left = (nX - 34).toString() + "px";
}
 
function SetQuickMenu(pType)
{
  switch (pType)
  {
    case ("open"):
      if (!isQmRunning)
      {
        if (!isQmOpen)
        {
          isQmRunning = true;
          divQuickMenuBack.style.visibility = "visible";

          nIWidth = window.setInterval("OpenQuickMenu()", 3);
        }
      }
      break;

    case ("close"):
      
      if (!isQmRunning)
      {
        if (isQmOpen)
        {
          isQmRunning = true;

          divQuickMenuContent.style.visibility = "hidden";
          nQmWidth = divQuickMenuContent.offsetWidth;

          nIWidth = window.setInterval("CloseQuickMenu()", 3);
      
 
        }
      }
       
      break;
  }
}

function OpenQuickMenu()
{
  nQmWidth += 5;

  divQuickMenuBack.style.width = nQmWidth.toString() + "px";
  divQuickMenuBack.style.left = ((divQuickMenuContent.offsetLeft + divQuickMenuContent.offsetWidth) - nQmWidth).toString() + "px";

  if (nQmWidth >= divQuickMenuContent.offsetWidth)
  {
    window.clearInterval(nIWidth);

    divQuickMenuContent.style.visibility = "visible";
    divQuickMenuOpen.style.visibility = "hidden";

    isQmRunning = false;
    isQmOpen = true;
  }
}

function CloseQuickMenu()
{

  nQmWidth -= 190;

  divQuickMenuBack.style.width = nQmWidth.toString() + "px";
  divQuickMenuBack.style.left = ((divQuickMenuContent.offsetLeft + divQuickMenuContent.offsetWidth) - nQmWidth).toString() + "px";
 /*
  if (nIWidth <= 0)
  {
  */  
    window.clearInterval(nIWidth);
    divQuickMenuBack.style.visibility = "hidden";
    divQuickMenuOpen.style.visibility = "visible";
 
    isQmRunning = false;
    isQmOpen = false;
 /*
  }
 */

}


// ### Float Div ###################################################################

var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;

function SetFloatDiv(id, sy)
{
  var el = d.getElementById ? d.getElementById(id) : d.all ? d.all[id] : d.layers[id];
  var px = document.layers ? "" : "px";
  window[id + "_obj"] = el;

  if(d.layers)
    el.style=el;

  el.cy = el.sy = sy;

  el.sP = function(y)
  {
    this.style.top=y+px;
  };

  el.floatIt=function()
  {
    var pY;
    pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
    if(this.sy<0)
    {
      pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
    }

    this.cy += (pY + this.sy - this.cy)/8;
    this.sP(this.cy);
    setTimeout(this.id + "_obj.floatIt()", 40);
  }

  return el;
}


// ### SolpartMenu #################################################################
/*
SolpartMenu.prototype.GenerateMenuHTML = function (oXML)
{
  __db(this._m_oMenu.id + ' - GenerateMenuHTML');

  var sHTML = '';
  this._m_sOuterTables = '';

  if (oXML == null)
  {
    if (this._m_oDOM == null)
    {
      oXML = spm_createDOMDoc();
      this._m_oDOM = oXML;
            
      if (this.xml.length)
      {
        oXML.loadXML(this.xml);
      }

      if (this.xmlFileName.length)
      {
        oXML.onload = eval('onxmlload' + this._m_sNSpace); 
        oXML.load(this.xmlFileName);
        return;
      }
    }
  }
  else
  {
    this._m_oDOM = oXML;
  }

  if (this.display == "vertical")
  {
    sHTML += '<table id="tbl' + this._m_sNSpace + 'MenuBar" cellpadding=\'0\' cellspacing=\'0\' border="0" class="' + spm_fixCSSForMac(this.getIntCSSName('spmbctr') + this.cssMenuContainer) + '" height="100%" style="vertical-align: middle;">';
    sHTML += MyIIf(this.MBLeftHTML.length, '<tr><td>' + this.MBLeftHTML + '</td></tr>', '');
    sHTML += MyIIf(Number(this.moveable), '<tr><td id="td' + this._m_sNSpace + 'MenuMove" height=\'3px\' style=\'cursor: move; ' + spm_getMenuBorderStyle(this) + '\'>' + spm_getSpacer(this) + '</td></tr>', '');
    sHTML +=         this.GetMenuItems(this._m_oDOM.documentElement);
    sHTML += '       <tr><td height="100%">' + spm_getSpacer(this) + '</td>';
    sHTML += '   </tr>';
    sHTML += MyIIf(this.MBRightHTML.length, '<tr><td>' + this.MBRightHTML + '</td></tr>', '');
    sHTML += '</table>';
  }
  else
  {
    sHTML += '<table id="tbl' + this._m_sNSpace + 'MenuBar" cellpadding=\'0\' cellspacing=\'0\' border="0" class="' + spm_fixCSSForMac(this.getIntCSSName('spmbctr') + this.cssMenuContainer) + '" style="vertical-align: middle;">';
    sHTML += '  <tr>';
    sHTML += MyIIf(this.MBLeftHTML.length, '<td>' + this.MBLeftHTML + '</td>', '');
    sHTML += MyIIf(Number(this.moveable), '       <td id="td' + this._m_sNSpace + 'MenuMove" width=\'3px\' style=\'cursor: move; ' + spm_getMenuBorderStyle(this) + '\'>' + spm_getSpacer(this) + '</td>', '');
    sHTML += spm_getMenuSpacingImage('left', this);
    sHTML +=         this.GetMenuItems(this._m_oDOM.documentElement);
    sHTML += spm_getMenuSpacingImage('right', this);
    sHTML += MyIIf(this.MBRightHTML.length, '<td>' + this.MBRightHTML + '</td>', '');
    sHTML += '   </tr>';
    sHTML += '</table>';
  }

  this._m_oMenu.innerHTML = sHTML;
  this.GenerateSubMenus();
  this._m_oMenuMove = spm_getById('td' + this._m_sNSpace + 'MenuMove');

  spm_getTags("BODY")[0].onclick = spm_appendFunction(spm_getTags("BODY")[0].onclick, 'm_oSolpartMenu["' + this._m_sNSpace + '"].bodyclick();');
  this._m_oTblMenuBar = spm_getById('tbl' + this._m_sNSpace + 'MenuBar'); 
  this.fireEvent('onMenuComplete');

  __db(this._m_oMenu.id + ' - GenerateMenuHTML end');
}

SolpartMenu.prototype.GetMenuItems = function (oParent)
{
  var oNode;
  var sHTML = '';
  var sID;
  var sParentID;
  var sClickAction;

  if (oParent)
  {
    for (var i = 0; i < oParent.childNodes.length; i++)
    {
      oNode = oParent.childNodes[i];

      if ((oNode.nodeType != 3) && (oNode.nodeType != 8))
      {
        if (oNode.parentNode.nodeName != "menuitem")
        {
          sParentID = "-1";
        }
        else
        {
          sParentID = oNode.parentNode.getAttribute("id");
        }

        if (oNode.nodeName == "menuitem")
        {
          sID = oNode.getAttribute("id");
        }
        else
        {
          sID = "";
        }

        __db(sID + ' getmenuitems');
        sClickAction = spm_getMenuClickAction(oNode, this);

        if (sParentID == "-1")
        {
          if (this.display == "vertical")
          {
            sHTML += "<tr>";
          }

          if (oNode.nodeName == 'menubreak')
          {
            if (this.display == "vertical")
            {
              sHTML += "<tr>";
            }

            var sBreakHTML = spm_getAttr(oNode, 'lefthtml', '') + spm_getAttr(oNode, 'righthtml', '');
            if (sBreakHTML.length > 0)
            {
              sHTML += '   <td class="' + spm_fixCSSForMac(this.getIntCSSName('spmbrk') + this.cssMenuBreak) + '">' + sBreakHTML + '</td>';
            }
            else
            {
              sHTML += '   <td class="' + spm_fixCSSForMac(this.getIntCSSName('spmbrk') + this.cssMenuBreak) + '">' + spm_getMenuImage('spacer.gif', this, true, ' ') + '</td>';
            }

            if (this.display == "vertical")
            {
              sHTML += "</tr>";
            }
          }
          else
          {
            sHTML += '<td><table cellpadding="0" cellspacing="0" border="0"><tr id="td' + this._m_sNSpace + sID + '" ' + spm_getMenuBarEvents(this._m_sNSpace) + '  class="' + spm_fixCSSForMac(this.getIntCSSName('spmbar spmitm') + this.cssMenuBar + ' ' + this.cssMenuItem + ' ' + spm_getMenuItemCSS(oNode)) + '" savecss="' + spm_getMenuItemCSS(oNode) + '" saveselcss="' + spm_getMenuItemSelCSS(oNode) + '" menuclick="' + sClickAction + '" style="' + spm_getMenuItemStyle('item', oNode) + '">';
            var sAlign = this.display=='vertical' ? 'align="' + this.menuAlignment + '"' : '';
            sHTML += '<td unselectable="on" nowrap="nowrap" ' + sAlign + ' title="' + spm_getAttr(oNode, 'tooltip', '') + '">' + spm_getImage(oNode, this) + spm_getItemHTML(oNode, 'left', '') + spm_getAttr(oNode, 'title', '') + spm_getItemHTML(oNode, 'right') + MyIIf(Number(this.rootArrow) && spm_nodeHasChildren(oNode), '</td><td align="right" class="' + spm_fixCSSForMac(this.getIntCSSName('spmrarw') + this.cssMenuRootArrow) + '">' + spm_getArrow(this.rootArrowImage, this) + "", '') + '</td></tr></table></td>';
          }

          if (this.display == "vertical")
          {
            sHTML += "</tr>";
          }
        }
        else
        {
          switch(oNode.nodeName)
          {
            case ("menuitem"):
            {
              sHTML +=    '   <tr id="tr' + this._m_sNSpace + sID + '" ' + spm_getMenuItemEvents(this._m_sNSpace) + ' parentID="' + sParentID + '" class="' + spm_fixCSSForMac(this.getIntCSSName('spmitm') + this.cssMenuItem + ' ' + spm_getMenuItemCSS(oNode)) + '" savecss="' + spm_getMenuItemCSS(oNode) + '" saveselcss="' + spm_getMenuItemSelCSS(oNode) + '" menuclick="' + sClickAction + '" style="' + spm_getMenuItemStyle('item', oNode) + '">';
              sHTML +=    '       <td unselectable="on" id="icon' + this._m_sNSpace + sID + '" class="' + spm_fixCSSForMac(this.getIntCSSName('spmicn') + this.cssMenuIcon) + '" style="' + spm_getMenuItemStyle('image', oNode) + '; ' + spm_getMenuItemStyle('item', oNode) + '">' + spm_getImage(oNode, this) + '</td>';
              sHTML +=    '       <td unselectable="on" id="td' + this._m_sNSpace + sID + '" class="' + spm_fixCSSForMac(this.getIntCSSName('spmitm') + this.cssMenuItem + ' ' + spm_getMenuItemCSS(oNode)) + '" savecss="' + spm_getMenuItemCSS(oNode) + '" nowrap="nowrap" TITLE="' + spm_getAttr(oNode, 'tooltip', '') + '" style="' + spm_getMenuItemStyle('item', oNode) + '">' + spm_getItemHTML(oNode, 'left', '') + spm_getAttr(oNode, 'title', '') + spm_getItemHTML(oNode, 'right', '') + '</td>';
              sHTML +=    '       <td unselectable="on" id="arrow' + this._m_sNSpace + sID + '" width="15px" CLASS="' + spm_fixCSSForMac(this.getIntCSSName('spmarw') + this.cssMenuArrow) + '" style="' + spm_getMenuItemStyle('item', oNode) + '">' + MyIIf(spm_nodeHasChildren(oNode), spm_getArrow(this.arrowImage, this), spm_getSpacer(this)) + '</td>';
              sHTML +=    '   </tr>';

              break;
            }
            case ("menubreak"):
            {
              var sBreakHTML = spm_getAttr(oNode, 'lefthtml', '') + spm_getAttr(oNode, 'righthtml', '');
              if (sBreakHTML.length > 0)
              {
                sHTML += '<tr><td colspan="3" class="' + spm_fixCSSForMac(this.getIntCSSName('spmbrk') + this.cssMenuBreak) + '">' + sBreakHTML + '</td></tr>';
              }
              else
              {
                sHTML += '<tr><td style="height: 1px" class="' + spm_fixCSSForMac(this.getIntCSSName('spmicn') + this.cssMenuIcon) + '">' + spm_getMenuImage('spacer.gif', this, true, '') + '</td><td colspan="2" class="' + spm_fixCSSForMac(this.getIntCSSName('spmbrk') + this.cssMenuBreak) + '">' + spm_getMenuImage('spacer.gif', this, true, '') + '</td></tr>';
              }

              break;
            }
          }
        }

        if (oNode.childNodes.length > 0)
        {
          var nSubTableOpen, nSubTableClose;

          nSubTableOpen = "<table cellpadding=\"0\" cellspacing=\"0\">";
          nSubTableOpen += "<tr><td><img src=\"" + nSkinPath + "image/default/topmenu/msub00.png\" alt=\"\" /></td><td class=\"submenutabletoptopmenu\"></td><td><img src=\"" + nSkinPath + "image/default/topmenu/msub01.png\" alt=\"\" /></td></tr>";
          nSubTableOpen += "<tr><td class=\"submenutablecontenttopmenu\"></td><td class=\"submenutablecontenttopmenu\">";

          nSubTableClose = "</td><td class=\"submenutablecontenttopmenu\"></td></tr>";
          nSubTableClose += "<tr><td><img src=\"" + nSkinPath + "image/default/topmenu/msub02.png\" alt=\"\" /></td><td class=\"submenutablebottomtopmenu\"></td><td><img src=\"" + nSkinPath + "image/default/topmenu/msub03.png\" alt=\"\" /></td></tr>";
          nSubTableClose += "</table>";

          var sTag = 'div';
          var sStyle = '';

          if (spm_isMac('ie'))
          {
            sTag = 'p';
            sStyle = 'margin-top:0px; margin-left:0px;'
          }

          this._m_sOuterTables = '<' + sTag + ' id="tbl' + this._m_sNSpace + sID + '" class="' + spm_fixCSSForMac(this.getIntCSSName('spmsub') + this.cssSubMenu) + '" style="display:none; position: absolute; z-index:99;' + sStyle + this.menuTransitionStyle + '">' + nSubTableOpen + '<table cellpadding="0" cellspacing="0" border="0">' + this.GetMenuItems(oNode) + '</table>' + nSubTableClose + '</' + sTag + '>' + this._m_sOuterTables;
        }

      }
    }
  }

  return (sHTML);
}
*/

function spm_getHTMLImage(sImage, sPath, bForce, sAlt)
{
  if ((spm_browserNeedsSpacer() == false) && (sImage == 'spacer.gif') && (bForce != true))
  {
    return ('');
  }
  else
  {
    return ("<img src=\"" + sPath + sImage + "\" " + spm_getAlt(sAlt) + ">");
  }
}

function spm_getElementHeight(o)
{
  if ((o.offsetHeight == null) || (o.offsetHeight == 0))
  {
    if (o.offsetParent)
    {
      if ((o.offsetParent.offsetHeight == null) || (o.offsetParent.offsetHeight == 0))
      {
        if (o.offsetParent.offsetParent != null)
        {
          return (o.offsetParent.offsetParent.offsetHeight);
        }
        else
        {
          return (0);
        }
      }
      else
      {
        return (o.offsetParent.offsetHeight);
      }
    }
  }
  else
  {
    return (o.offsetHeight);
  }
}

function spm_getElementWidth(o)
{
  if ((o.offsetWidth == null) || (o.offsetWidth == 0))
  {
    if (o.offsetParent)
    {
      if ((o.offsetParent.offsetWidth == null) || (o.offsetParent.offsetWidth == 0))
      {
        if (o.offsetParent.offsetParent != null)
        {
          return (o.offsetParent.offsetParent.offsetWidth);
        }
        else
        {
          return (0);
        }
      }
      else
      {
        return (o.offsetParent.offsetWidth);
      }
    }
  }
  else
  {
    return (o.offsetWidth);
  }
}