/*
// ============================================================================\

Functions:
	getLayer(name)
	getLayerProp(name)
	setVisibility(name,pos)

	Rollover(name,dir,current,disable_roll_current,
		img_off,img_on,img_off_curr,img_on_transp,do_preload)

	Item(href,text,target,events,
		linkClass,headHTML,tailHTML,subMenu)

	SubMenu(left,top,width,bgColor,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,items)

	DropDownMenu(name,rollover_name,centeredWidth,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,subMenus)

// ============================================================================/
*/


var W=window
var T=top
var D=document

var TMP


// ========================\
// Special DHTML functions
// ============================================================================\

var IE4=D.all ? 1 : 0
var NN4=D.layers ? 1 : 0
var DHTML=IE4||NN4

var LPrefix="D.all."
var LSuffix=".style"
if (NN4) {
  LPrefix="D.layers."
  LSuffix=""
  }


var ROLL=new Object
var MENU=new Object


// ============================================================================\

function getLayer(name) {
  return DHTML ? eval(LPrefix+name) : null
  }

function getLayerProp(name) {
  if (! DHTML) return
  var prop=eval(LPrefix+name) ? eval(LPrefix+name+LSuffix) : ""
  return prop ? prop : ""
  }

function setVisibility(name,pos) {
  getLayerProp(name).visibility= pos ? 'visible' : 'hidden'
  }

// ============================================================================/




// ===============================\
// Create special rollover object
// ============================================================================\

function Rollover(name,dir,current,disable_roll_current,
		img_off,img_on,img_off_curr,img_on_transp,do_preload) {
  var obj=this.window ? new Object : this
  obj.name=name
  obj.rollover=D.images && img_off
  obj.dir=dir
  if (IE4 && img_on_transp) img_on=img_on_transp
  obj.img=new Array
  for (var i in img_off) obj.img[i]=Array(img_off[i],img_on[i])
  if (current>=0) {
    var curr=obj.img[current]
    if (img_off_curr) curr[0]=img_off_curr[current]
    if (disable_roll_current) curr[1]=curr[0]
    }
// ------------------------------------\
  obj.preload=function() {
    if (this.rollover) {
      var tmp=this.TMP=new Array
      var dir=this.dir
      var img=this.img
      for (var i in img) (tmp[i]=new Image).src=dir+"/"+img[i][1]
      }
    }
// ------------------------------------/
// ------------------------------------\
  obj.Switch=function(num,pos,nn_docum) {
    var docum=(NN4 && nn_docum) ? eval(nn_docum) : D
    if (this.rollover) {
      var img=docum.images[this.name+num]
      if (img) img.src=this.dir+"/"+this.img[num][pos ? 1 : 0]
      }
    }
// ------------------------------------/
  if (do_preload!=0) obj.preload()
  W.ROLL[name]=obj
  return obj
  }

// ============================================================================/




// ====================\
// Common menu objects
// ============================================================================\

// -----------------\
// Create menu item
// ----------------------------------------------------------------------------\
function Item(href,text,target,events,
	linkClass,headHTML,tailHTML,subMenu) {
  var obj=this.window ? new Object : this
  obj.href=href
  obj.text=text
  obj.target=target
  obj.events=(events==null) ? "" : events
  obj.linkClass=linkClass
  obj.headHTML=(headHTML==null) ? "" : headHTML
  obj.tailHTML=(tailHTML==null) ? "" : tailHTML
  obj.subMenu=subMenu
  obj.menu=obj.parent=0
// ------------------------------------\
  obj.create=function(parent) {
    var menu=this.menu=parent.menu
    this.parent=parent
    var linkClass=this.linkClass ? this.linkClass :
			(parent.linkClass ? parent.linkClass : menu.linkClass)
    D.write(menu.itemHeadHTML,parent.itemHeadHTML,this.headHTML)
    if (this.href.length && this.text.length)
      D.write("<a href='",this.href,"' ",this.events,
		linkClass ? " class='"+linkClass+"'" : "",
		this.target ? " target='"+this.target+"'" : "")
    if (this.subMenu) {
      var num=this.subMenu.num
      D.write(" onmouseover='W.MENU.",menu.name,".Switch(",num,",1,event)'",
		" onmouseout='W.MENU.",menu.name,".Switch(",num,",0,event)'")
      }
    D.write(">",this.text,"</a>")
    D.write(this.tailHTML,parent.itemTailHTML,menu.itemTailHTML,'<br>')
    }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/


// ==============================\
// Create drop-down menu
// ============================================================================\

// ---------------\
// Create submenu
// ----------------------------------------------------------------------------\
function SubMenu(left,top,width,bgColor,
	linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,items) {
  var obj=this.window ? new Object : this
  obj.num=0
  obj.name=""
  obj.left=left
  obj.top=top
  obj.width=width
  obj.bgColor=bgColor
  obj.linkClass=linkClass
  obj.headHTML=(headHTML==null) ? "" : headHTML
  obj.tailHTML=(tailHTML==null) ? "" : tailHTML
  obj.itemHeadHTML=(itemHeadHTML==null) ? "" : itemHeadHTML
  obj.itemTailHTML=(itemTailHTML==null) ? "" : itemTailHTML
  obj.items=items
  obj.position=0
  obj.menu=obj.parent=0
  obj.z=10
// ------------------------------------\
  obj.create=function(menu,num,parent) {
    this.num=num
    var name=this.name=menu.name+num+"_body"
    this.menu=menu
    this.parent=parent
    if (parent) this.z=parent.z+1
    var items=this.items
    if (! items) return
    var subMenus=menu.subMenus
    for (i in items) {
      var subMenu=items[i].subMenu
      if (subMenu) {
	var n=subMenus.length
	subMenus[n]=subMenu
	subMenu.create(menu,n,this)
	}
      }
    if (NN4)
      D.write("<layer name='",this.name,"' left=",this.left," top=",this.top,
	" width=",this.width," visibility=hide bgcolor='",this.bgColor,"' z-index=",this.z)
    else
      D.write("<div id='",this.name,"' style='position:absolute;left:",this.left,
	";top:",this.top,";width:",this.width,";background-color:",this.bgColor,
	";visibility:hidden;z-index:",this.z,";'")
    D.write(" onmouseover='W.MENU.",menu.name,".Switch(",num,",1)'",
	" onmouseout='W.MENU.",menu.name,".Switch(",num,")'>",
	menu.headHTML,this.headHTML)
    for (i in items) items[i].create(this)
    D.write(this.tailHTML,menu.tailHTML,
	NN4 ? "</layer>" : "</div>")
    }
// ------------------------------------/
// ------------------------------------\
//  obj.Switch=function(x,y) {
  obj.Switch=function() {
    var name=this.name
    var centeredWidth=this.menu.centeredWidth
    if (centeredWidth) {
      var pageWidth=NN4 ? D.pageWidth.document.width : D.all.pageWidth.offsetWidth
      var offsetX=Math.floor((pageWidth-centeredWidth)/2)
      if (offsetX<0) offsetX=0
      getLayerProp(name).left=this.left+offsetX
      }
// if (NN4 && this.parent && !this.position) {
//   if (x) getLayerProp(name).left=x
//   if (y) getLayerProp(name).top=y
//   }
    var pos=this.position
    var rn=this.menu.rollover_name
    if (rn) W.ROLL[rn].Switch(this.num,pos)
    setVisibility(name,pos)
    var par=this    
    while (par=par.parent) par.Switch()
    }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/


// -------------------\
// Create menu object
// ----------------------------------------------------------------------------\
function DropDownMenu(name,rollover_name,centeredWidth,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,subMenus) {
  var obj=this.window ? new Object : this
  obj.name=name
  obj.centeredWidth=centeredWidth
  obj.rollover_name=rollover_name
  obj.linkClass=linkClass
  obj.headHTML=headHTML
  obj.tailHTML=tailHTML
  obj.itemHeadHTML=itemHeadHTML
  obj.itemTailHTML=itemTailHTML
  obj.subMenus=subMenus
// ------------------------------------\
  obj.create=function() {
    if (! DHTML) return
    if (! DropDownMenu.called) {
      if (NN4)
	D.write("<layer name='pageWidth' left=0 top=100 height=0 visibility=hide><hr width=100%></layer>")
      else
	D.write("<div id='pageWidth' style='position:absolute;left:0;top:0;width:100%;height:0;visibility:hidden;'></div>")
      DropDownMenu.called=1
      }
    var subMenus=this.subMenus
    var argv=arguments
    var argc=argv.length
    var x=0
    var l=subMenus.length
    for (var i=0; i<l; i++) {
      var subMenu=subMenus[i]
      var y=x+1
      if (x<argc) subMenu.left=argv[x]
      if (y<argc) subMenu.top=argv[y]
      x+=2
      subMenu.create(this,i)
      }
    }
// ------------------------------------/
// ------------------------------------\
  obj.Switch=function(num,pos,event) {
    if (! DHTML) return
    var inc=pos ? 1 : -1
    var subMenu=this.subMenus[num]
    do subMenu.position+=inc
    while (subMenu=subMenu.parent)
// var x=(event && NN4) ? event.pageX
// var y=(event && NN4) ? event.pageY
// setTimeout("W['"+this.name+"'].subMenus["+num+"].Switch("+x+","+y+")",100)
    setTimeout("W['"+this.name+"'].subMenus["+num+"].Switch()",100)
    }
// ------------------------------------/
  W.MENU[name]=obj
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/


