Ajax.Menu = Class.create();
Object.extend(Object.extend(Ajax.Menu.prototype, Ajax.Request.prototype), {
	initialize: function(id) {
		this.id = id;
		this.transport = Ajax.getTransport();
		this.addObservers();
	},
	addObservers: function() {
		var menu = $(this.id);
		if (menu) {
			//var lis = $('menu').getElementsByTagName("li");
                        var as = $('menu').getElementsByTagName("a");
			/*for (var i=0; li=lis[i]; i++) {
                            if(lis[i].hasClassName("haveChildren")){
                                 //alert(lis[i].hasClassName("haveChildren"));
                                 Event.observe(lis[i], "click", this.onClick.bindAsEventListener(this));
                            }
			}*/
                        for (var i=0; a=as[i]; i++) {
                            if($(as[i]).up("li").hasClassName("haveChildren")){
                                 //alert(lis[i].hasClassName("haveChildren"));
                                 Event.observe(as[i], "click", this.onClick.bindAsEventListener(this));
                            }
                        }
		}
	},
	setIdentData: function() {
		var params = this.options.parameters || '';
		if (params.length > 0)
			params += "&";
	},
	onClick: function( event ) {
		var li = Event.findElement(event, 'LI');
		Event.stop(event);
		switch (li.className) {
			case "haveChildren":
				var ul = null;
				for (var i=0; node=li.childNodes[i]; i++) {
					if (node.nodeName.toLowerCase() == "ul") {
						ul = node;
					}
				}
				if (ul) {
					ul.style.display = "block";
					li.className = li.className.replace(/haveChildren/, "dzieciPokazane");
				} else {
					this.li = li;
					//this.setIdentData();
				}
				break;
			case "dzieciPokazane":
				var uls = li.getElementsByTagName("ul");
				for (var i=0; ul=uls[i]; i++) {
					ul.style.display = "none";
					ul.parentNode.className = ul.parentNode.className.replace(/dzieciPokazane/, "haveChildren");
				}
				li.className = li.className.replace(/dzieciPokazane/, "haveChildren");
				break;
		}
	}
});
