    calc1obj = null;
    calc2obj = null;
    calc3obj = null;
	function $ObjectDetect()
	{
		// Can only start this object once
		if (document.objectDetectionObject_7a5bb90b_56d8_46df_a75a_4afda98ea253) return false;
		document.objectDetectionObject_7a5bb90b_56d8_46df_a75a_4afda98ea253 = this;

		var doSelf = (this).currentObjects = new Array();

		this.populateObjectList = function( idList_string)
		{
			var testObj, args = arguments;
	
			doSelf.currentObjects = new Array();

			if (!arguments.length) return false;

			for (var x=0; x<arguments.length;x++)
			{
				testObj = ( typeof( args[x]) == "string") ? document.getElementById( args[x]) : args[x];	
				doSelf.currentObjects[x] = ( testObj) ? testObj : false;
			}

			return (args.length == 1) ? doSelf.currentObjects[0] : doSelf.currentObjects;
		}
		
		this.Xevent = function(e)
		{
			return (e) ? e : window.event;
		}
		this.getObjectOfEvent = function(e)
		{
			e = $TGFUNC_e(e);
			return (e.target) ? e.target : ((e.srcElement.nodeType == 3) ? e.srcElement.parentNode : e.srcElement);
		}		
		this.getParentObject = function( selectedNode,  nname)
		{
		
		while ( (!selectedNode.tagName.match( nname)  && !selectedNode.className.match( nname) && selectedNode.id != nname) && selectedNode.tagName != "HTML")
		{
				selectedNode = (selectedNode.parentElement) ? selectedNode.parentElement : selectedNode.parentNode;
			}
	
		return (selectedNode.tagName == "HTML") ? false : selectedNode;
		}
		
		 // public function
		$TGFUNC_ = this.populateObjectList;	// detects objects
		$TGFUNC_.getEventTarget = this.getObjectOfEvent;
		$TGFUNC_.getParent = this.getParentObject;
		$TGFUNC_.getEvent = this.Xevent;
		
		// Detects via classname
		
		$TGFUNC_t = $TGFUNC_.getEventTarget;			// Gets the current object targeted by the event object
		$TGFUNC_p = $TGFUNC_.getParent;				// gets the parent of an object by tagname, classname or id
		$TGFUNC_e = $TGFUNC_.getEvent;

	}
	
	
	function $ObjectCreate()
	{
		// Can only start this object once
		if (document.objectCreationObject_059c8ad6_e41b_4c79_8e22_1c3f11490328) return false;
		document.objectCreationObject_059c8ad6_e41b_4c79_8e22_1c3f11490328 = this;

		document.imageList = new Array();
		
		this.html =function()
		{
			return  (( typeof arguments[0] == "string") ? document.createElement( arguments[0]) : false);
		}
		this.text = function()
		{
			return  (( typeof arguments[0] == "string") ? document.createTextNode( arguments[0]): false);
		}
		this.image = function( imgSrc, imageListObj)
		{
			if (!document.images || !imgSrc) return false;

			var tmp = new Image();
			tmp.src = imgSrc;
			
			if ( typeof(imageListObj) == "array")
			{
				imageListObj[ imageListObj.length] = tmp;
			}
			return ( document.imageList) ? ( document.imageList[ document.imageList.length] = tmp) : tmp;
		}
	
		//public exposed methods
		$TGFUNC_html = this.html;
		$TGFUNC_text = this.text;
		$TGFUNC_image = this.image;
	}
	
	
	
	
	function $ObjectPosition()
	{
		var self = this;
		
		this.getPosition = function( obj)
		{
			if (!obj) return;
			$(obj).position();
			return obj.position;
			
		}
		this.setPosition = function( obj, positionObject)
		{
			if (!obj) return;
            var p;
		
			if ( p = positionObject)
			{
				if ( positionObject.top)	$(obj).top(p.top);
				if ( positionObject.left)	$(obj).left(p.left);
				if ( positionObject.height) $(obj).height(p.height);
				if ( positionObject.width)	$(obj).width(p.width);
			} 
			
			return self.getPosition( obj);
		}
		this.getMouseCoordinates = function(e) 
		{
			var posx = 0;
			var posy = 0;
			e = $TGFUNC_e(e);
			
			if (e.pageX || e.pageY) 	
			{
				posx = e.pageX;
				posy = e.pageY;
			}
			else 
			{
				if (e.clientX || e.clientY) 	
				{
					posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
					posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;	
				}
			}
			return {mouseX: posx, mouseY: posy}
		}
		$TGFUNC_m = this.getMouseCoordinates;
		$TGFUNC_setPos = this.setPosition;
		$TGFUNC_getPos = this.getPosition;
		$TGFUNC_position = $TGFUNC_setPos;
	}
	new $ObjectDetect(); new $ObjectCreate(); new $ObjectPosition();
