
	var UI = {};

	UI.AccordionPanel = function(panelId, openClass, closeClass, eventType) {
	    this.panelId = panelId;
	    this.openClass = openClass;
	    this.closeClass = closeClass;

	    var panel = $(panelId);

	    var domObj = getChildElementsByTagName(panel, "div");
	    if (domObj== null || domObj.length < 0) return;

	    this._preObj = getChildElementsByTagName(domObj[0], "div")[0];

	    this._preObj.setAttribute("class", openClass);
	    this._preObj.setAttribute("className", openClass);

	    for (var i = 0; i < domObj.length; i++) {
	        var _obj = getChildElementsByTagName(domObj[i], "div");
	        if (eventType) {
	            addEventListener(_obj[0], eventType, bindEvent(over, this));
	        } else {
	            addEventListener(_obj[0], "mouseover", bindEvent(over, this));
	        }
	        if (i == 0) {
	            _obj[1].style.display = "block";
	        } else {
	            _obj[1].style.display = "none";
	        }
	    }

	    function getNextElementByTagName(domObj, tagName) {
	        var _obj = domObj.nextSibling;
	        if (_obj != null) {
	            while (_obj.nodeType != 1 && _obj.tagName != tagName.toUpperCase()) {
	                _obj = _obj.nextSibling;
	            }
	        }
	        return _obj;
	    }


	    function $(id) {
	        return document.getElementById(id);
	    }

	    function addEventListener(domObj, eventType, eventHandler) {
	        if (domObj) {
	            if (domObj.attachEvent) {
	                domObj.attachEvent("on" + eventType, eventHandler);
	            } else if (domObj.addEventListener) {
	                domObj.addEventListener(eventType, eventHandler, false);
	            } else {
	                domObj["on" + eventType] = eventHandler;
	            }
	        }
	    }

	    function getChildElementsByTagName(domObj, tagName) {
	        var elements = [];
	        if (domObj != null) {
	            for (var i = 0; i < domObj.childNodes.length; i++) {
	                var node = domObj.childNodes[i];
	                if (node.nodeType == 1 && node.tagName == tagName.toUpperCase()) {
	                    elements.push(node);
	                }
	            }
	            return elements;
	        }
	        return null;
	    }

	    function bindEvent(eventHandler, thisObj) {
	        return function(event) {
	            if (window.event) {
	                event = window.event;
	            }
	            if (event.srcElement) {
	                event.target = event.srcElement;
	            }
	            eventHandler.apply(thisObj, [event]);
	        };
	    }

	    function over(event) {
	        if (this._preObj != null) {
	            getNextElementByTagName(this._preObj, "div").style.display = "none";
	            this._preObj.setAttribute("class", closeClass);
	            this._preObj.setAttribute("className", closeClass);
	        }
	        getNextElementByTagName(event.target, "div").style.display = "block";
	        event.target.setAttribute("class", openClass);
	        event.target.setAttribute("className", openClass);
	        this._preObj = event.target;
	    }
	}	

	

