﻿function ShowHideObj(eventType, openClassName, closeClassName, defaultNum) {
    var dateObj = {
        eventType: eventType || "mouseover",
        openClassName: openClassName || "selected",
        closeClassName: closeClassName || "",
        defaultNum: defaultNum || 1,
        array: []
    };
    var that = this;
    var addEvent = function(obj, evType, fn) {
        if (obj && obj.addEventListener) {
            obj.addEventListener(evType, fn, false);
            return true;
        } else if (obj && obj.attachEvent) {
            var r = obj.attachEvent("on" + evType, fn);
            return r;
        }
    };
    this.mouseoutHide = false;
    this.addElement = function(titleId, conId, fun) {
        $get(titleId).num = dateObj.array.length;
        $get(titleId).childNode = $get(conId);
        dateObj.array.push($get(titleId));
        dateObj.defaultNum == dateObj.array.length ? ($get(titleId).className = dateObj.openClassName, $get(conId) && ($get(conId).style.display = "block"), dateObj.openNode = $get(titleId)) : ($get(titleId).className = dateObj.closeClassName, $get(conId) && ($get(conId).style.display = "none"));
        dateObj.defaultNum == -1 && (dateObj.openNode = dateObj.array[0]);
        addEvent($get(titleId), dateObj.eventType,
        function() {
            if (fun) {
                fun();
            };
            that.showItem($get(titleId));
        });
    };
    this.showItem = function(CurDot) {
        dateObj.openNode.className = dateObj.closeClassName;
        dateObj.openNode.childNode && (dateObj.openNode.childNode.style.display = "none");
        CurDot.className = dateObj.openClassName;
        CurDot.childNode && (CurDot.childNode.style.display = "block");
        dateObj.openNode = CurDot;
    };
};
var $get = function(s) {
    return document.getElementById(s);
}
