/* --------------------------------------------------------------------------------------
 * showpane.js
 * version 1.00
 * Required common.js ver1.10 later
-------------------------------------------------------------------------------------- */
var toggleName = 'toggle';
var paneName = '-pane';
var toggleOpenClass = 'open';
var targets = new Array();

EventObserve(window, 'load', fncShowPane, false);

/* start */
function fncShowPane(){
	var showPane = new ShowPane();
}

var ShowPane = function() {this.initialize.apply(this, arguments)}
ShowPane.prototype = {
	initialize: function () {
		this.toggleName = toggleName;
		this.paneName = paneName;
		this.toggleOpenClass = toggleOpenClass;
		this.targets = [];
		var elems = document.getElementsByTagName('*');
		for (var i=0; i < elems.length; i++) {
			this.checker(elems[i]);
		}
	},
	/* check */
	checker: function (elem) {
		if(elem.id.match(new RegExp("^" + this.toggleName + "[A-Za-z0-9_]*$")) == null) {
//		if(elem.id.match(new RegExp("^" + this.toggleName + "($|[A-Za-z0-9_]*$)")) == null) {
			return;
		}
		this.addEvent(elem , elem.id);
		this.targets.push(elem);
	},
	/* add mouseEvent */
	addEvent: function (toggleElem, toggleElemHasIdName) {
		toggleElem.style.cursor = 'pointer';
		toggleElem.target = toggleElemHasIdName + this.paneName;
		
		var paneElem = document.getElementById(toggleElem.target);
		
		if (paneElem.style.display == 'none') {
			comRemoveClass(toggleElem.id, this.toggleOpenClass);
		} else {
			comAddClass(toggleElem.id, this.toggleOpenClass);
		}
		toggleElem.onclick = (function(_this, _elem) {
			return function() {
				_this.onClick(_elem);
			};
		})(this, toggleElem);
	},
	onClick: function (toggleElem) {
		var targetElem = document.getElementById(toggleElem.target);
		if (!targetElem) return;
		if (targetElem.style.display == 'none') {
			comAddClass(toggleElem.id, this.toggleOpenClass);
			targetElem.style.display = '';
		} else {
			comRemoveClass(toggleElem.id, this.toggleOpenClass);
			targetElem.style.display = 'none';
		}
	}
};

