
var dropdown = {
	disappeardelay: 500, //set delay in miliseconds before menu disappears onmouseout
	disablemenuclick: true, //when user clicks on a menu item with a drop down menu, disable menu item's link?
	enableswipe: 1, //enable swipe effect? 1 for yes, 0 for no
	//enableiframeshim: 1, //enable "iframe shim" technique to get drop down menus to correctly appear on top of controls such as form objects in IE5.5/IE6? 1 for yes, 0 for no

	//No need to edit beyond here////////////////////////
	dropmenuobj: null, ie: document.all, firefox: document.getElementById && !document.all, swipetimer: undefined, bottomclip:0,

	getposOffset:function(what, offsettype){
		var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;
		var parentEl = what.offsetParent;
		while (parentEl!=null) {
			totaloffset = (offsettype == "left") ? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
			parentEl=parentEl.offsetParent;
		}
	return totaloffset;
	},

	swipeeffect:function() {
		if (this.bottomclip < parseInt(this.dropmenuobj.offsetHeight)) {
			this.bottomclip += (10 + (this.bottomclip / 10)) //unclip drop down menu visibility gradually
			this.dropmenuobj.style.clip = "rect(0 auto "+ this.bottomclip +"px 0)"
		} else {
			return
		}
		this.swipetimer = setTimeout("dropdown.swipeeffect()", 20)
	},

	showhide:function(obj, e){
		if (this.ie || this.firefox)
			this.dropmenuobj.style.left = this.dropmenuobj.style.top="-500px"
		if ((e.type == "click" && obj.visibility == hidden) || e.type == "mouseover") {
			if (this.enableswipe == 1) {
				if (typeof this.swipetimer != "undefined") {
					clearTimeout(this.swipetimer)
				}
				obj.clip = "rect(0 auto 0 0)" //hide menu via clipping
				this.bottomclip = 0
				this.swipeeffect()
			}
			obj.visibility="visible"
		}
		else if (e.type == "click") {
			obj.visibility="hidden"
		}
	},

	iecompattest:function() {
		return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
	},

	clearbrowseredge:function(obj, whichedge) {
		var edgeoffset=0
		if (whichedge == "rightedge") {
			var windowedge = this.ie && !window.opera ? this.iecompattest().scrollLeft + this.iecompattest().clientWidth - 15 : window.pageXOffset + window.innerWidth - 15
			this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetWidth
			if (windowedge-this.dropmenuobj.x < this.dropmenuobj.contentmeasure) { //move menu to the left?
				edgeoffset=this.dropmenuobj.contentmeasure-obj.offsetWidth
			}
		} else {
			var topedge=this.ie && !window.opera ? this.iecompattest().scrollTop : window.pageYOffset
			var windowedge = this.ie && !window.opera ? this.iecompattest().scrollTop + this.iecompattest().clientHeight - 15 : window.pageYOffset+window.innerHeight - 18
			this.dropmenuobj.contentmeasure = this.dropmenuobj.offsetHeight
			if (windowedge - this.dropmenuobj.y < this.dropmenuobj.contentmeasure) { //move up?
				edgeoffset=this.dropmenuobj.contentmeasure+obj.offsetHeight
				if ((this.dropmenuobj.y-topedge)<this.dropmenuobj.contentmeasure) { //up no good either?
					edgeoffset=this.dropmenuobj.y+obj.offsetHeight-topedge
				}
			}
		}
		return edgeoffset
	},

	dropit:function(obj, e, dropmenuID){
		if (this.dropmenuobj != null) { //hide previous menu
			this.dropmenuobj.style.visibility = "hidden" //hide menu
		}
		
		this.clearhidemenu()
		
		if (this.ie || this.firefox) {
			obj.onmouseout = function() { dropdown.delayhidemenu() }
			obj.onclick = function() { return !dropdown.disablemenuclick } //disable main menu item link onclick?

			this.dropmenuobj = document.getElementById(dropmenuID)
			this.dropmenuobj.onmouseover = function() { dropdown.clearhidemenu(); document.getElementById("id-" + dropmenuID).style.backgroundColor = "#3872B2"; }
			this.dropmenuobj.onmouseout = function(e) { dropdown.delayhidemenu(); document.getElementById("id-" + dropmenuID).style.backgroundColor = ""; }
			this.dropmenuobj.onclick = function() { dropdown.delayhidemenu() }
			
			this.showhide(this.dropmenuobj.style, e)
			this.dropmenuobj.x = this.getposOffset(obj, "left")
			this.dropmenuobj.y = this.getposOffset(obj, "top")
			
			this.dropmenuobj.style.left = this.dropmenuobj.x - this.clearbrowseredge(obj, "rightedge")+"px"
			this.dropmenuobj.style.top = this.dropmenuobj.y - this.clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+1+"px"
			//this.positionshim() //call iframe shim function
		}
	},
/*
	positionshim:function() { //display iframe shim function
		if (this.enableiframeshim && typeof this.shimobject != "undefined") {
			if (this.dropmenuobj.style.visibility == "visible") {
				this.shimobject.style.width = this.dropmenuobj.offsetWidth+"px"
				this.shimobject.style.height = this.dropmenuobj.offsetHeight+"px"
				this.shimobject.style.left = this.dropmenuobj.style.left
				this.shimobject.style.top = this.dropmenuobj.style.top
			}
			this.shimobject.style.display = (this.dropmenuobj.style.visibility == "visible") ? "block" : "none"
		}
	},
*/
/*
	contains_firefox:function(a, b) {
		while (b.parentNode) {
			if ((b = b.parentNode) == a)
			return true;
		}
		return false;
	},
*/
/*
	// Why the if else statement here.
	dynamichide:function(e){
		var evtobj = window.event ? window.event : e
		if (this.ie && !this.dropmenuobj.contains(evtobj.toElement)) {
			this.delayhidemenu()
		} else if (this.firefox && e.currentTarget != evtobj.relatedTarget && !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget)) {
			this.delayhidemenu()
		}
	},
*/
	delayhidemenu:function() {
		this.delayhide = setTimeout("dropdown.dropmenuobj.style.visibility='hidden';", this.disappeardelay) //hide menu
	},
/*
	hideshim:function() {
		if (this.enableiframeshim && typeof this.shimobject != "undefined")
		this.shimobject.style.display='none'
	},
*/
	// Delay the hiding of the windows if defined at the top
	clearhidemenu:function() {
		if (this.delayhide != "undefined") {
			clearTimeout(this.delayhide)
		}
	},
	
	startnav:function() {
		for (var ids=0; ids<arguments.length; ids++) {
			var menuitems = document.getElementById(arguments[ids]).getElementsByTagName("a")
			for (var i=0; i<menuitems.length; i++) {
				if (menuitems[i].getAttribute("rel")) {
					var relvalue = menuitems[i].getAttribute("rel")
					
					// mouse over function
					menuitems[i].onmouseover = function(e) {
						var event = typeof e != "undefined" ? e : window.event
						dropdown.dropit(this, event, this.getAttribute("rel"))
					}
				}
			}
		}
	}

}
