
    function forceClick(e, elemId) {
        var elem = document.getElementById(elemId);
        var evt = (e) ? e : window.event;
        var intKey = (evt.which) ? evt.which : evt.keyCode;
        
        if(intKey == 13) {
            elem.click();
            return false;
        }

        return true;
    }

    /* Change this hint stuff so can have multiple hints. They can be stored in an array or something */
    var hintElement;
    var hintTimer;
    function displayHint(parent, position, description, hintTime, hintHeight, hintWidth, margin) {
    
        // create hint
        createHintElement();
	    hintElement.innerHTML = description;

        if (hintTime == null) {
            hintTime = 2000;
        }
        
        if (hintHeight == null) {
            hintHeight = 32;
        }

        if (hintWidth == null) {
            hintWidth = 150;
        }
        
        if (margin == null) {
            margin = 10;
        }
        
        hintElement.style.height = hintHeight;
        hintElement.style.width = hintWidth;    
                
        // show hint
        positionHintElement(parent, position, margin);    
        hintElement.style.visibility = 'visible';

        // set timer to hide hint
        if (hintTime > 0) {
            hintTimer = setTimeout("hideHintElement()", hintTime);
        }
    }

    function createHintElement() {
        var elem = document.getElementById('__AjaxCall_Hint');
	    if (!elem) {
		    elem = document.createElement("div");
		    elem.id = '__AjaxCall_Hint';
		    elem.style.position = 'absolute';
            elem.className = 'AjaxWaitPanel';
            elem.style.border = "#F8EFA0 1px solid";
            elem.style.backgroundColor = "#FFFCDE";
    //        elem.style.border = "#8B8980 1px solid";
    //        elem.style.backgroundColor = "#F7F6F2";
		    elem.style.visibility = 'hidden';
		    elem.style.textAlign = 'left';
		    elem.style.paddingLeft = '4px';
		    elem.style.zIndex = 1000;
            if (document && document.body) {
              document.body.insertBefore(elem, document.body.firstChild);
            }
	    }
	    hintElement = elem;
    }

    function positionHintElement(parent, position, margin) {
	    
	    var scrollYT, scrollXT;
	    if (!hintElement)
		    createHintElement();

        var parentOffset = new Array(2);
        parentOffset[0] = parent.offsetLeft;
        parentOffset[1] = parent.offsetTop;
        
        if (position == "tl") {
            scrollYT = parentOffset[1] + margin;
            scrollXT = parentOffset[0] + margin;
        }
        if (position == "bl") {
            scrollYT = parentOffset[1] + parent.offsetHeight - hintElement.offsetHeight - margin;
            scrollXT = parentOffset[0] + margin;
        }
        if (position == "tr") {
            scrollYT = parentOffset[1] + margin;
            scrollXT = parentOffset[0] + parent.offsetWidth - hintElement.offsetWidth - margin;
        }
        if (position == "br") {
            scrollYT = parentOffset[1] + parent.offsetHeight - hintElement.offsetHeight - margin;
            scrollXT = parentOffset[0] + parent.offsetWidth - hintElement.offsetWidth - margin;
        }

	    hintElement.style.top = scrollYT + "px";
	    hintElement.style.left = scrollXT + "px";
	    
    }

    function hideHintElement() {
        if (hintElement)
            hintElement.style.visibility = 'hidden';
      
      hintElement = null;
      clearTimeout(hintTimer);
    }