/**
part of /Library/js/base.js
*/
var kEvent=(function(){
	return {
	addEvent: function(element, name, observer, useCapture) {
		try{
			if(typeof element=='string'){
				element=document.getElementById(element);
			}
			if(element.addEventListener){
				element.addEventListener(name, observer, useCapture);
			}else if(element.attachEvent){
				element.attachEvent('on' + name, observer);
			}
		}catch(e){}
	},
	delEvent: function(el, sType, fn) {
		if (window.removeEventListener) {
			el.removeEventListener(sType, fn, false);
		} else if (window.detachEvent) {
			el.detachEvent("on" + sType, fn);
		}
	},
	getTarget: function(ev) {
		var t = ev.target || ev.srcElement;
		return this.resolveTextNode(t);
	},
	
	resolveTextNode: function(node) {
		// if (node && node.nodeName && 
				// "#TEXT" == node.nodeName.toUpperCase()) {
		if (node && 3 == node.nodeType) {
			return node.parentNode;
		} else {
			return node;
		}
	},
	stopEvent: function(ev) {
		this.stopPropagation(ev);
		this.preventDefault(ev);
	},
	
	stopPropagation: function(ev) {
		if (ev.stopPropagation) {
			ev.stopPropagation();
		} else {
			ev.cancelBubble = true;
		}
	},
	
	preventDefault: function(ev) {
		if (ev.preventDefault) {
			ev.preventDefault();
		} else {
			ev.returnValue = false;
		}
	}
	
	}

})();

var dropIt;
new (function(){
	var me=this;
	var label, dList;
	this.toggleList=function(ev){
		if(ev){
			kEvent.getTarget(ev).blur();
			kEvent.stopEvent(ev);
		}
		dList.style.display=dList.style.display!='block'?'block':'none';
		return false;
	};
	this.hideThis=function(ev){
		if(!label){return;}
		var dNode=(ev&&ev.target)||(window.event&&window.event.srcElement);
		while(dNode.tagName!='HTML'){
			dNode=dNode.parentNode;
			if(dNode==label.parentNode){return true;}
		}
		dList.style.display='none';
	};
	this.newDrop=function(dId){
		var me=this;
		label=dId;
		if(!label){return;}
		dList=label.parentNode.getElementsByTagName("ul")[0];
		me.toggleList();
	}
	kEvent.addEvent(document,"mousedown",this.hideThis);
	dropIt=function(dId){
		me.newDrop(dId);
	};
})();
