﻿/*var navHover = function (id){
  this.id = id;  
  this.init = function(tags) {
    if(typeof tags == "undefined")
      tags = "LI";  
  try{
      var lis = document.getElementById(this.id).getElementsByTagName(tags);
      for (var i=0; i<lis.length; i++) {
        lis[i].parentElement.id=(lis[i].parentElement.tagName.toLowerCase() == "ul" && lis[i].parentElement.id != this.id)?"_li"+i:lis[i].parentElement.id;
        lis[i].onmouseover=function()  {
          this.className+=" iehover";
          for(var cn=0; cn<this.childNodes.length;cn++){
            if(typeof this.childNodes[cn].tagName != "undefined" && this.childNodes[cn].tagName.toLowerCase()=="ul"){
              window.setTimeout("activate("+this.childNodes[cn].uniqueID+")", 5);
            }
          }
        }
        lis[i].onmouseout=function() {
          var panel =this;
          var childFrameId = panel.uniqueID+ "_MenuIFrame";
          var childFrame = (document.getElementById)? document.getElementById(childFrameId):((document.all)? document.all[childFrameId]:null);
          if (childFrame) {
            childFrame.style.display = "none";
          }
          for(var cn=0; cn<this.childNodes.length;cn++){
            if(typeof this.childNodes[cn].id != "undefined" && this.childNodes[cn].id.indexOf("_MenuIFrame")>-1){
              this.childNodes[cn].style.display = "none";
            }
          }
          this.className=this.className.replace(new RegExp(" iehover\\b"), "");
        }
      }
     }catch(ex){}
    }
}

function debug(text){
  var area=document.getElementById("debug")
  area.value=(text+"\n")+area.value;
}

function activate(panel)
{
  var parent =panel.offsetParent;
  
  var panelId=panel.uniqueID+ "_MenuIFrame";
  var childFrame =(document.getElementById)? document.getElementById(panelId):((document.all)? document.all[panelId]:null);
  if (!childFrame)
  {
    childFrame = document.createElement("iframe");
    childFrame.id = panelId;
    childFrame.src = "javascript:false;";
    childFrame.style.position = "absolute";
    childFrame.style.display = "none";
    childFrame.style.border = "0px solid #000000";
    childFrame.scrolling = "no";
    childFrame.frameBorder = "0";
    if (parent.tagName.toLowerCase() == "html")
      document.body.appendChild(childFrame);
    else
      parent.appendChild(childFrame);
  }
  var pos=WebForm_GetElementPosition(panel);
  var parentPos=WebForm_GetElementPosition(parent);
  childFrame.style.top =(pos.y - parentPos.y)+"px";
  childFrame.style.left=(7 + pos.x - parentPos.x) +"px";
  childFrame.style.width = ((pos.width - 7)>=0 ? pos.width - 7 : 0) + "px";
  childFrame.style.height = (pos.height) + "px";
  childFrame.style.display = "block";
  var z=1;
  if (panel.currentStyle && panel.currentStyle.zIndex)
    z = panel.currentStyle.zIndex;
  else if (panel.style.zIndex)
    z = panel.style.zIndex;
  panel.style.zIndex = z;
}


function WebForm_GetElementPosition(element)
{
  var result = new Object();
  result.x = 0;
  result.y = 0;
  result.width = 0;
  result.height = 0;
  if (element.offsetParent)
  {
    result.x = element.offsetLeft;
    result.y = element.offsetTop;
    var parent = element.offsetParent;
    while (parent)
    {
      result.x += parent.offsetLeft;
      result.y += parent.offsetTop;
      var parentTagName = parent.tagName.toLowerCase();
      if (parentTagName != "table" && parentTagName != "body" && parentTagName != "html" && parentTagName != "div" && parent.clientTop && parent.clientLeft)
      {
        result.x += parent.clientLeft;
        result.y += parent.clientTop;
      }
      parent = parent.offsetParent;
    }
  }
  else if (element.left && element.top)
  {
    result.x = element.left;
    result.y = element.top;
  }
  else
  {
    if (element.x)
      result.x = element.x;
    if (element.y)
      result.y = element.y;
  }
  if (element.offsetWidth && element.offsetHeight)
  {
    result.width = element.offsetWidth;
    result.height = element.offsetHeight;
  }
  else if (element.style && element.style.pixelWidth && element.style.pixelHeight)
  {
    result.width = element.style.pixelWidth;
    result.height = element.style.pixelHeight;
  }
  return result;
}
*/
document.getElementsByClassName = function(clsName) {
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].className.indexOf(" ") >= 0) {
            var classes = elements[i].className.split(" ");
            for (var j = 0; j < classes.length; j++) {
                if (classes[j] == clsName) retVal.push(elements[i]);
            }
        } else if (elements[i].className == clsName) retVal.push(elements[i]);
    }
    return retVal;
}

function ShadowBoxFactory(className) {
    this.targetClassName = className;
    this.boxes = new Array();
    this.backgroundimage = null;
    this.tag = 0x000001;
    this.getBoxes = function() {
        var elements = document.getElementsByClassName(this.targetClassName);
        for (n = 0; n < elements.length; n++) this.boxes.push(elements[n]);
    }

    this.render = function(content) {
        var x = new Array();
        x['dsBodyLeft'] = this.cr('div', 'dsBodyLeft');
        x['dsTop'] = this.cr('div', 'dsTop');
        x['dsTopLeft'] = this.cr('div', 'dsTopLeft');
        x['dsBodyRight'] = this.cr('div', 'dsBodyRight');
        x['dsBody'] = this.cr('div', 'dsBody');
        x['dsBodyBg'] = this.cr('div', 'dsBodyBg');
        if (this.backgroundimage != null) x['bgimg'] = this.cr('img', this.backgroundimage.className);
        x['dsBodyContent'] = this.cr('div', 'dsBodyContent');
        x['dsBottom'] = this.cr('div', 'dsBottom');
        x['dsBottomLeft'] = this.cr('div', 'dsBottomLeft');
        if (this.backgroundimage != null) x['bgimg'].src = this.backgroundimage.src;
        x['dsBodyLeft'].appendChild(x['dsTop']);
        x['dsTop'].appendChild(x['dsTopLeft']);
        x['dsBodyLeft'].appendChild(x['dsBodyRight']);
        x['dsBodyRight'].appendChild(x['dsBody']);
        x['dsBodyRight'].appendChild(x['dsBottom']);
        x['dsBody'].appendChild(x['dsBodyBg']);
        x['dsBottom'].appendChild(x['dsBottomLeft']);
        if (this.backgroundimage != null) {
            x['dsBodyBg'].appendChild(x['bgimg']);
            x['dsBodyBg'].appendChild(x['dsBodyContent']).innerHTML = content;
        } else x['dsBodyBg'].innerHTML = content;
        this.backgroundimage = null;

        return x['dsBodyLeft'];
    }

    this.getBoxes();

    this.cr = function(name, classname, innerHTML) {
        var e = document.createElement(name);
        if (classname) e.className = classname;
        if (innerHTML) e.innerHTML = innerHTML;
        return e;
    }

    this.tagthis = function(obj) {
        obj.tag = this.tag;
    }

    this.tagged = function(obj) {
        return obj.tag == this.tag;
    }
}

ShadowBoxFactory.prototype.CreateShadow = function(targetid, backgroundimage) {
    if (backgroundimage) this.backgroundimage = backgroundimage;
    var evalScript = "";

    if (!targetid) {
        for (n = 0; n < this.boxes.length; n++) {
            if (!this.tagged(this.boxes[n])) {
        evalScript+=this.GetScriptCode(this.boxes[n]);
                var ofcourse = this.render(this.boxes[n].innerHTML);
                this.boxes[n].innerHTML = '';
                this.boxes[n].appendChild(ofcourse);
                if (this.boxes[n].parentNode.offsetWidth && this.boxes[n].parentNode.offsetWidth != 'undefined') this.boxes[n].style.width = this.boxes[n].parentNode.offsetWidth;

                this.tagthis(this.boxes[n]);
            }
        }
    } else {
        var target = document.getElementById(targetid);
    evalScript+=this.GetScriptCode(target);
        if (!target || this.tagged(target)) return;
        var ofcourse = this.render(target.innerHTML);
        target.innerHTML = '';
        target.appendChild(ofcourse);
        this.tagthis(target);
    }
    eval(evalScript);
}
ShadowBoxFactory.prototype.GetScriptCode = function(element) {
  var script="";
  if(!element) return script;
  if(!document.all) return script;
  var scripts = element.getElementsByTagName("script");
  for (co = 0; co < scripts.length; co++) {
    script += scripts[co].innerHTML;
  }
  return script;
}


ShadowBoxFactory.prototype.CreateBgImage = function(src, classname) {
    var img = new Image();
    img.src = src;
    img.className = classname;
    return img;
}

