/*
// ============================================================================\

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,headHTML,tailHTML)

	SubMenu(left,top,width,bgColor,
		headHTML,tailHTML,itemHeadHTML,itemTailHTML,items)
	DropDownMenu(name,rollover_name,centeredWidth,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,subMenus)

	MenuSection(href,text,target,events,
		headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,items)
	VerticalMenu(name,width,autoClose,linkClass1,linkClass2,
		headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,menuSections)

// ============================================================================/
*/


// ========================\
// 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(docum) : D
    if (this.rollover) docum.images[this.name+num].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,headHTML,tailHTML) {
  var obj=this.window ? new Object : this
  obj.href=href
  obj.text=text
  obj.target=target
  obj.events=(events==null) ? "" : events
  obj.headHTML=(headHTML==null) ? "" : headHTML
  obj.tailHTML=(tailHTML==null) ? "" : tailHTML
  obj.menu=obj.subMenu=0
// ------------------------------------\
  obj.create=function(subMenu) {
    var menu=this.menu=subMenu.menu
    this.subMenu=subMenu
    D.write(menu.itemHeadHTML,subMenu.itemHeadHTML,this.headHTML)
    if (this.href.length && this.text.length)
      D.write("<a href='",this.href,"' ",this.events,
		menu.linkClass ? " class='"+menu.linkClass+"'" : "",
		this.target ? " target='"+this.target+"'" : "",
		">",this.text,"</a>")
    D.write(this.tailHTML,subMenu.itemTailHTML,menu.itemTailHTML,'<br>')
    }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/


// ==============================\
// Create drop-down menu
// ============================================================================\

// ---------------\
// Create submenu
// ----------------------------------------------------------------------------\
function SubMenu(left,top,width,bgColor,
	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.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=0
// ------------------------------------\
  obj.create=function(menu,num) {
    this.num=num
    var name=this.name=menu.name+num+"_body"
    this.menu=menu
    var items=this.items
    if (! items) return
    if (NN4)
      D.write("<layer name='",this.name,"' left=",this.left," top=",this.top,
	" width=",this.width," visibility=hide bgcolor='",this.bgColor,"' z-index=10")
    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:10;'")
    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() {
    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
      }
    var pos=this.position
    var rn=this.menu.rollover_name
    if (rn) W.ROLL[rn].Switch(this.num,pos)
    setVisibility(name,pos)
    }
// ------------------------------------/
  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
    for (var i in subMenus) {
      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) {
    if (! DHTML) return
    this.subMenus[num].position+=pos ? 1 : -1
    setTimeout("W['"+this.name+"'].subMenus["+num+"].Switch()",10)
    }
// ------------------------------------/
  W.MENU[name]=obj
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/


// =====================\
// Create vertical menu
// ============================================================================\

// ----------------------\
// Create head & submenu
// ----------------------------------------------------------------------------\
function MenuSection(href,text,target,events,
	headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,items) {
  var obj=this.window ? new Object : this
  obj.name1=""
  obj.name2=""
  obj.href=href
  obj.text=text
  obj.target=target
  obj.events=(events==null) ? "" : events
  obj.headHTML1=(headHTML1==null) ? "" : headHTML1
  obj.tailHTML1=(tailHTML1==null) ? "" : tailHTML1
  obj.headHTML2=(headHTML2==null) ? "" : headHTML2
  obj.tailHTML2=(tailHTML2==null) ? "" : tailHTML2
  obj.itemHeadHTML=itemHeadHTML
  obj.itemTailHTML=itemTailHTML
  obj.items=items
  obj.position=0
  obj.menu=0
// ------------------------------------\
  obj.create=function(menu,num) {
    this.menu=menu
    this.name1=menu.name+num
    this.name2=this.name1+"_body"
    var items=this.items
    var w=menu.width
    var width=w ? (NN4 ? "width="+w+" " : "width:"+w+";") : ""
    D.write(NN4 ?
	"<ilayer name='"+this.name1+"'><layer>" :
	"<div id='"+this.name1+"' style='position:relative;top:0'>",
	menu.headHTML1,this.headHTML1,
	"<a href='",this.href,"' ",this.events,
	menu.linkClass1 ? " class='"+menu.linkClass1+"'" : "",
	this.target ? " target='"+this.target+"'" : "",
	" onClick='return W.MENU.",menu.name,".Switch("+num+")'>",this.text,"</a>",
	this.tailHTML1,menu.tailHTML1,
	NN4 ?
	"</layer></ilayer><br><layer name='"+this.name2+"' "+width+"visibility=hide>" :
	"</div><div id='"+this.name2+"' style='position:absolute;"+width+"visibility:hidden'>",
	menu.headHTML2,this.headHTML2)
    for (i in items) items[i].create(this)
    D.write(this.tailHTML2,menu.tailHTML2,
	NN4 ? "</layer>" : "</div>")
  }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/


// -------------------\
// Create menu object
// ----------------------------------------------------------------------------\
function VerticalMenu(name,width,autoClose,linkClass1,linkClass2,
	headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,menuSections) {
  var obj=this.window ? new Object : this
  obj.name=name
  obj.width=width
  obj.autoClose=autoClose
  obj.linkClass1=linkClass1
  obj.linkClass=linkClass2
  obj.headHTML1=headHTML1
  obj.tailHTML1=tailHTML1
  obj.headHTML2=headHTML2
  obj.tailHTML2=tailHTML2
  obj.itemHeadHTML=itemHeadHTML
  obj.itemTailHTML=itemTailHTML
  obj.menuSections=menuSections
  obj.lastNum=menuSections.length
// ------------------------------------/
  obj.create=function() {
    var menuSections=this.menuSections
    for (var i in menuSections) menuSections[i].create(this,i)
    }
// ------------------------------------/
// ------------------------------------\
  obj.Switch=function(num) {
    var menuSections=this.menuSections
    if (!(DHTML && menuSections[num].items)) return true
    var lastNum=this.lastNum
    if (this.autoClose) this.lastNum=num
    var isLast=(num==lastNum)
    var l=menuSections.length
    var start=Math.min(num,lastNum)
    var shift=0
    for (var i=start; i<l; i++) {
      var menuSection=menuSections[i]
      var name1=menuSection.name1
      var name2=menuSection.name2
      var layer1=getLayer(name1)
      var layer2=getLayer(name2)
      if (NN4) {
	layer1.top+=shift
	layer2.left=layer1.pageX
	layer2.top=layer1.pageY+layer1.document.layers[0].document.height
	}
      else {
	layer1.style.top=parseInt(layer1.style.top)+shift
	layer2.style.top=layer2.offsetTop+shift
	}
      if (i==num || i==lastNum) {
        var h=NN4 ? layer2.document.height : layer2.offsetHeight
	var pos=0
        if (isLast || i==num) pos=menuSection.position=1-menuSection.position
	else if (menuSection.position) menuSection.position=0
	else h=0
        setVisibility(name2,pos)
        shift+= pos ? h : -h
        }
      }
    return false
    }
// ------------------------------------/
  W.MENU[name]=obj
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/
*/

// ============================================================================/


