/*
 * File : dhtml.js;
 * Version: 2.0;
 * Comment: javascript DHTML Library;
 */

/*************************************/
/* DHTML */
/*************************************/

var DHTML = (document.getElementById || document.all);

/* object */
function getObj(id) {
	try{
		if(document.getElementById) {
			this.style = document.getElementById(id).style;
			return document.getElementById(id);
		}
		else if(document.all) {
			this.style = document.all[id].style;
			return document.all[id];
		}
	}
	catch(e) {
		return false;
	}
}

/*************************************/
/* show & display */
/*************************************/

function showLayer(id,flag) {
	if(!DHTML) return;
	var obj = new getObj(id);
	obj.style.visibility = (flag)? "visible" : "hidden";
}

function dispLayer(id,flag) {
	if(!DHTML) return;
	var obj = new getObj(id);
	obj.style.display = (flag)? "block" : "none";
}

function ExpandCollaps(id) {
	if(!DHTML) return;
	var o = new getObj(id);
	var flag;
	switch(o.style.display) {
		case "block" :
			flag = 0;
			break;
		case "none" :
		default :
			flag = 1;
	}
	dispLayer(id,flag);
}

/* old ExpandCollaps function
function ExpandCollaps(id) {
	if(!DHTML) return;
	var obj = new getObj(id);
	var flag = (obj.style.display == "none")? 1 : 0;
	dispLayer(id,flag);
}
*/

/*************************************/
/* move */
/*************************************/

function moveLayer(id,x,y) {
	if(!DHTML) return;
	var obj = new getObj(id);
	if((document.all) && (navigator.appVersion.indexOf("Mac",0)<0)) {
		obj.style.left = document.body.scrollLeft + x + "px";
		obj.style.top = document.body.scrollTop  + y + "px";
	}
	else {
		obj.style.left = x + "px";
		obj.style.top  = y + "px";
	}
}

/*************************************/
/* findPosX & findPosY */
/*************************************/

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent) {
		while(obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent) {
		while(obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

/*************************************/
/* getWindowHeight */
/*************************************/

function getWindowHeight() {
	var winH = 0;
	var docEl = (document.documentElement)? document.documentElement : (document.body)? document.body : 0;
	if(typeof(window.innerHeight)=="number") {winH = window.innerHeight;}
	else if(docEl && docEl.clientHeight) {winH = docEl.clientHeight;}
	return winH;
}

/*************************************/
/* addHandler */
/* Example :
addHandler("window.onload", function() {
	addHandler("Obj.onclick", func1);
	addHandler("Obj.onclick", func2);
});
*/
/*************************************/

function addHandler(eRef, func) {
	var eHandlers = eval(eRef);
	if(typeof eHandlers == "function") { // not first handler
		eval(eRef + " = function(e) {eHandlers(e); func(e);}");
	} else { // first handler
		eval(eRef + " = func;");
	}
}

/*************************************/
/* addEvent */
/* Example :
addEvent(obj, 'click', func);
*/
/* addEvent */
/* Example :
removeEvent(obj, 'click', func);
*/
/*************************************/
var meeticUI = {};

meeticUI.addEvent = function(obj, evType, fn, useCapture){
	if(obj.addEventListener) {
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if(obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

meeticUI.removeEvent = function(obj, evType, fn, useCapture){
	if(obj.removeEventListener) {
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	} else if(obj.detachEvent) {
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

/* EOF */