/**
 * Sammlung allgemeiner Helferfunktionen
 */
var tools = {
	/**
	 * Absolute Elementposition finden (x-Achse)
	 * @return int
	 */
	findPosX : function(obj) {
		var curleft = 0;
		if(obj.offsetParent) {
			while(1) {
			  curleft += obj.offsetLeft;
			  if(!obj.offsetParent)
				break;
			  obj = obj.offsetParent;
			}
		}
		else if(obj.x)
			curleft += obj.x;
		return curleft;
	},
	/**
	 * Absolute Elementposition finden (y-Achse)
	 * @return int
	 */
	findPosY : function(obj) {
		var curtop = 0;
		if(obj.offsetParent) {
			while(1) {
				  curtop += obj.offsetTop;
				  if(!obj.offsetParent)
					break;
				  obj = obj.offsetParent;
			}
		}
		else if(obj.y)
			curtop += obj.y;
		return curtop;
	},
	/**
	 * Abhilfe gegen Memory Leaks
	 * Vor dem entfernen von DOM Elementen anwenden
	 * (auch innerHTML Zuweisungen)
	 */	
	purge : function(d) {
		var a = d.attributes, i, l, n;
		if (a) {
			l = a.length;
			for (i = 0; i < l; i += 1) {
				n = a[i].name;
				if (typeof d[n] === 'function') {
					d[n] = null;
				}
			}
		}
		a = d.childNodes;
		if (a) {
			l = a.length;
			for (i = 0; i < l; i += 1) {
				tools.purge(d.childNodes[i]);
			}
		}
	}	
}
