var isMinNS4=(navigator.appName.indexOf("Netscape")>=0&&parseFloat(navigator.appVersion)>=4)?1:0;
var isMinIE4=(document.all)?1:0;
var isMinIE5=(isMinIE4&&navigator.appVersion.indexOf("5.")>=0)?1:0;
var isMozzila=false;
//isMinNS4=false;
//isMinIE4=true;
var pop_up_menus = 0;
var pop_up_menus_instances = new Array();
 function getLayer(name){if(isMinNS4)return findLayer(name,document);if(isMinIE4)return eval('document.all.'+name);return  document.getElementById(name);}
 function MoveLayerTo(layer,x,y) { if(isMinNS4) { layer.moveTo(x,y); } if(isMinIE4) { layer.style.left=x;layer.style.top=y; } }
 function HideLayer(layer){if(isMinNS4)layer.visibility="hide";if(isMinIE4)layer.style.visibility="hidden";}
 function ShowLayer(layer) { if(isMinNS4)layer.visibility="show"; if(isMinIE4)layer.style.visibility="visible"; }
 function getPageWidth(){if(isMinNS4)return document.width;if(isMinIE4)return document.body.scrollWidth;return-1;}
 function getWidth(layer){if(isMinNS4){if(layer.document.width)return layer.document.width;else return layer.clip.right-layer.clip.left;}if(isMinIE4){if(layer.style.pixelWidth)return layer.style.pixelWidth;else return layer.clientWidth;}return-1;}
 function getHeight(layer){if(isMinNS4){if(layer.document.height)return layer.document.height;else return layer.clip.bottom-layer.clip.top;}if(isMinIE4){if(layer.style.pixelHeight)return layer.style.pixelHeight;else return layer.clientHeight;}return-1;}
 function getLeft(layer){if(isMinNS4)return layer.left;if(isMinIE4)return layer.style.pixelLeft;return-1;}
 function getTop(layer){if(isMinNS4)return layer.top;if(isMinIE4)return layer.style.pixelTop;return-1;}
 function getRight(layer){if(isMinNS4)return layer.left+getWidth(layer);if(isMinIE4)return layer.style.pixelLeft+getWidth(layer);return-1;}
 function getBottom(layer){if(isMinNS4)return layer.top+getHeight(layer);if(isMinIE4)return layer.style.pixelTop+getHeight(layer);return-1;}
function PopMenuItem(item_text,item_href,submenu,bgimage,bgimage_pos)
{
  this.text        = item_text;
  this.href        = item_href;
  this.submenu     = submenu;
  this.bgimage     = bgimage;
  this.bgimage_pos = bgimage_pos;
  return this;
}
function PopUpMenu()
{
    this.width       = 100;
    this.posx        = 0;
    this.posy        = 0;
    this.items       = new Array();
    this.item_count  = 0;
    this.created     = false;
    this.opened      = false;
    this.index       = pop_up_menus++;
    this.style       = "";
    this.border      = 0;
    this.separitems  = false;
    this.padding     = 2;
    this.paddingleft = 10;
    this.bordercolor = "#000000";
    this.backcolor   = "#FFFFFF";
    this.rbackcolor  = "#FFFFFF";
    this.textcolor   = "#000000";
    this.rtextcolor  = "#000000";
    this.open_func   = "";
    this.base_layer  = null;
    this.parrent       = null;
    this.openedsubmenu = null;
    this.AddItem     = PM_AddItem;
    this.Create      = PM_Create;
    this.Open        = PM_Open;
    this.ReOpen      = PM_ReOpen;
    this.Close       = PM_Close;
    this.OpenSubmenu = PM_OpenSubmenu;
    this.MenuOffDo   = PM_MenuOffDo;
    this.onClose     = null;
    this.onOpen      = null;
    pop_up_menus_instances[pop_up_menus-1] = this;
    return this;
}
function PM_AddItem(item_text,item_href,submenu,bgimage,bgimage_pos)
{
    if (!submenu)   submenu = null;
    if (submenu!=null)
    {
      submenu.parrent = this;
    }
    this.item_count++;
    this.items[this.item_count-1] = new PopMenuItem(item_text,item_href,submenu,bgimage,bgimage_pos);
}
function PM_Create()
{
    if (this.style!="") class_str = "class='"+this.style+"'";  else class_str="";
    table_style_str  = "style='";
    table_style_str += (this.textcolor!=""?("color:"+this.textcolor+";"):"");
    table_style_str += (this.backcolor!=""?("background-color:"+this.backcolor+";"):"");
    table_style_str += (this.border>0?("border:solid "+eval(this.border)+"px "+this.bordercolor+";"):"");
    table_style_str += (this.border>0&&this.separitems?("border-bottom:none;"):"");
    table_style_str += "'";
    td_style_str  = "style='";
    td_style_str += (this.textcolor!=""?("color:"+this.textcolor+";"):"");
    td_style_str += (this.separitems?("border-bottom:solid "+eval(this.border)+"px "+this.bordercolor+";"):"");
    td_style_str += (this.paddingleft>0?("padding-left:"+this.paddingleft+";"):"");
    td_style_str += "cursor:hand;";
    td_style_str += "'";
    str  = "<table "+class_str+" "+(this.backcolor!=""?"bgcolor='"+this.backcolor+"'":"")+" cellpadding='"+this.padding+"' cellspacing=0 width='100%' height='100%' "+table_style_str+">";
    for (i=0;i<this.item_count;i++)
    {
      onmover  = (this.rbackcolor!=""?"this.style.backgroundColor=\""+this.rbackcolor+"\";":"")+(this.rtextcolor!=""?"this.style.color=\""+this.rtextcolor+"\";":"");
      if (this.items[i].submenu!=null)
      {
        onmover += "pop_up_menus_instances["+this.index+"].OpenSubmenu("+i.toString()+");";
      }
      onmoout  = (this.backcolor!=""?"this.style.backgroundColor=\""+this.backcolor+"\";":"")+(this.textcolor!=""?"this.style.color=\""+this.textcolor+"\";":"");
      bgimage  =  this.items[i].bgimage?"style='background: url("+this.items[i].bgimage+") fixed "+this.items[i].bgimage_pos+" no-repeat ' ":"";
      str  = str + "<tr id='mirow_"+this.index.toString()+"_"+i.toString()+"'><td onClick='document.location=\""+this.items[i].href+"\"' "+td_style_str+" "+bgimage+" onMouseover='"+onmover+"' onMouseout='"+onmoout+"'>"+this.items[i].text+"</a></td></tr>";
    }
    str  = str + "</table></div>";
    if(isMinNS4)
    {
      str  = "<div id='_menu_"+this.index+"' style='position:absolute; width:"+this.width+"'>" + str + "</div>";
      this.base_layer = new Layer(this.width);
    }
    if(isMinIE4)
    {
      str  = "<div id='_menu_"+this.index+"' style='position:absolute; width:"+this.width+"'>" + str + "</div>";
      document.body.insertAdjacentHTML("afterBegin",str);
      this.base_layer = getLayer("_menu_"+this.index);
     }
     if (isMozzila)
     {
      elm = document.createElement("div");
      elm.id = "_menu_"+this.index;
      elm.style.position = "absolute";
      elm.style.width = this.width;
      elm.innerHTML = str;
      document.body.appendChild (elm);
     }
    HideLayer(this.base_layer);
    this.base_layer.onmouseout=PM_MenuOff;
    this.base_layer.index = this.index;
}
function PM_Open(x,y)
{
   this.posx = x;
   this.posy = y;
   MoveLayerTo(this.base_layer, this.posx,this.posy);
   ShowLayer(this.base_layer);
   this.opened = true;
   if (this.onOpen!=null) eval(this.onOpen);
}
function PM_OpenSubmenu(smi)
{
  if (this.openedsubmenu) this.openedsubmenu.Close();
  x = getRight(this.base_layer)-this.border;
  y = getTop(this.base_layer)
  for (i=0;i<smi;i++)
  {
    elm = document.getElementById("mirow_"+this.index.toString()+"_"+smi.toString());
    y = y + getHeight(elm);
  }
  this.openedsubmenu = this.items[smi].submenu;
  this.items[smi].submenu.Open(x,y);
}
function PM_ReOpen()
{
   this.opened = true;
   MoveLayerTo(this.base_layer,this.posx,this.posy);
   ShowLayer(this.base_layer);
}
function PM_Close()
{
   if (this.opened)
   {
     HideLayer(this.base_layer);
     this.opened = false;
     if (this.onClose!=null) eval(this.onClose);
     if (this.openedsubmenu!=null)
     {
       this.openedsubmenu.Close();
       this.openedsubmenu = null;
     }
     //for (i=0;i<this.items.length;i++) if (this.items[i].submenu!=null) this.items[i].submenu.Close();
   }
}
function PM_MenuOffDo(mouseX,mouseY,test_submenu,test_parrent)
{
  var left   = getLeft(this.base_layer);
  var right  = getRight(this.base_layer) + (this.openedsubmenu!=null?Math.round(this.width/2):0);
  var top    = getTop(this.base_layer);
  var bottom = getBottom(this.base_layer);
  var close_menu = false;
  if(!(mouseX>left+this.border && mouseX<right-this.border && mouseY>top+this.border && mouseY<bottom-this.border))
  {
    if (test_submenu && this.openedsubmenu!=null) {if(this.openedsubmenu.MenuOffDo(mouseX,mouseY,true,false)) close_menu = true;}
    else close_menu = true;
  }
  if (close_menu && this.parrent!=null && test_parrent)
  {
    if (this.parrent.MenuOffDo(mouseX,mouseY,false,true)) close_menu = true;
    else                                                  close_menu = false;
  }
  if (close_menu)
  {
    if (this.parrent!=null) this.parrent.Close();
    this.Close();
    return true;
  }
  else  return false;
}
function PM_MenuOff(e)
{
  var menu = pop_up_menus_instances[this.index];
  if(isMinIE4)
  {
    if (document.documentElement && document.documentElement.scrollTop)
    {
      mouseX=window.event.clientX+document.documentElement.scrollLeft;
      mouseY=window.event.clientY+document.documentElement.scrollTop;
    }
    else
    {
      mouseX=window.event.clientX+document.body.scrollLeft;
      mouseY=window.event.clientY+document.body.scrollTop;
    }
    menu.MenuOffDo(mouseX,mouseY,true,true);
  }
}
