function $(obj) {
	return (typeof(obj) == "string") ? document.getElementById(obj) : obj;
}

function menu(mainField) {
	var mainField = $(mainField);
	var lis = mainField.getElementsByTagName("LI");
	show = "";
	for (var i = 0; i < lis.length; i++) {
		if (i == (lis.length -1)) {
			lis[i].className = "lastItem";
		}
		var uls = lis[i].getElementsByTagName("UL");
		
		for (var j = 0; j < uls.length; j++) {
			var link = lis[i].getElementsByTagName("A")[0];
			var liPrin = uls[j].getElementsByTagName("li");
			var last = liPrin[liPrin.length -1];
				last.className = "lastItem";

			var mouseclick = function () {
				var uls = this.parentNode.getElementsByTagName("UL");
				var moreMinus = this.parentNode.getElementsByTagName("SPAN")[0];
				if (show != "" && show == "n") {
					show = "y";
					addClassName(uls[0], "hide");
					//addClassName(moreMinus, "more");
					//uls[0].style.display = "none";
				} else {
					show = "n";
					removeClassName(uls[0], "hide");
					//removeClassName(moreMinus, "more");
					//uls[0].style.display = "block";
				}
			}
			link.onmouseover = mouseclick;
			link.onmouseout = mouseclick;
			uls[0].onmouseover = mouseclick;
			uls[0].onmouseout = mouseclick;
		}
	}
}

var $A = function(iterable) {
    var results = [];
    for (var i = 0, length = iterable.length; i < length; i++)
      results.push(iterable[i]);
    return results;
}

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

Object.extend = function(destination, source) {
  for (var property in source) {
    destination[property] = source[property];
  }
  return destination;
}

Function.prototype.bind = function() {
  var __method = this, args = $A(arguments), object = args.shift();
  return function() {
    return __method.apply(object, args.concat($A(arguments)));
  }
}
