    var nav = navigator.userAgent.toLowerCase();
    var IE = false;
    if(nav.indexOf("msie")>-1)
    	IE = true;

    function isIE()
    {
    	alert(IE)
    	return IE;
    }

    /* Get the document inside of an IFRAME in IE and Firefox */
    function getIframeDoc(IFrameObj)
    {
		if (IFrameObj.contentDocument)
		{
		    // For NS6
		    IFrameDoc = IFrameObj.contentDocument;
		}
		else if (IFrameObj.contentWindow)
		{
		    IFrameDoc = IFrameObj.contentWindow.document;
		}
		else if (IFrameObj.document)
		{
		    IFrameDoc = IFrameObj.document;
		}
		else
		{
		    return null;
  		}
  		return IFrameDoc;
    }

function getLeft(obj)
{
    var curLeft = obj.offsetLeft;
    while(obj.offsetParent)
    {
        curLeft += obj.offsetParent.offsetLeft;
        obj = obj.offsetParent;
    }
    return curLeft;
}

/*
* Gets the absolute position of obj
*/
function getTop(obj)
{
    var curTop = obj.offsetTop;

    while(obj.offsetParent)
    {
        curTop += obj.offsetParent.offsetTop;
        obj = obj.offsetParent;
    }
    return curTop;
}

    /* Stop an event from bubbling in IE and Firefox */
    function cancelEvent(evt)
    {
		if(IE)
		{
			evt.cancelBubble=true;
			evt.returnValue=false;
		}
		else
		{
			evt.stopPropagation();
		}
    }

    /* Remove a bound event from an object in IE and Firefox */
    function removeListener(object, eventType, listener, capture )
    {
    	if(IE)
		{
		   	object.detachEvent( "on"+eventType , listener );
		}
		else // Mozilla, Netscape, Firefox
		{
			object.removeEventListener(eventType, listener, capture);
		}

    }

    /* Bind an event to an object in IE and Firefox */
	function addListener(object, eventType, listener, capture )
	{
		if(IE)
		{
		    object.attachEvent( "on"+eventType , listener);
		}
		else // Mozilla, Netscape, Firefox
		{
			object.addEventListener(eventType, listener, capture);
		}
	}

	/* Gets the source element of an event in IE and Firefox */
	function getSourceElement(event)
	{
		srcEl = event.srcElement;
		if(srcEl==null)
			srcEl = event.target;
		return srcEl;
	}

	/* Fires an event on an object in IE and Firefox */
	function frontEndEvent(obj, eventType)
	{
		if(IE)
		{
			obj.fireEvent("on"+eventType);
		}
		else
		{
			obj.dispatchEvent(eventType);
		}

	}

	/* Used to suppress link visibility in status window */
	function noStatus()
	{
		window.status='';
		return true;
	}

	/* String replacement method */
	function replace(original, oldString, newString)
	{

		while((i = original.indexOf(t))>-1)
		{
			original = original.substring(0,i) + newString + original.substring(i + oldString.length);
		}
		return original;
	}

	/*
	* Checks the CSS class of an element for a particular class.
	*/
	function classContains(id, className)
	{
		el = getElement(id);
		if(el.className.indexOf(className)>-1)
			return true;
		return false;
	}

	/*
	* Appends a CSS class to the existing class value.
	*/
	function appendClass(ctrlInst, cssClass)
	{
		if(!undef(ctrlInst) && ctrlInst.className.indexOf(cssClass) == -1 )
		{
			ctrlInst.className = ctrlInst.className+" "+cssClass;
		}
	}

	/*
	* Completely removes a CSS class from the control.
	*/
	function removeClass(ctrlInst, cssClass)
	{
		oldClass = ctrlInst.className;
		if(!undef(ctrlInst) && oldClass.indexOf(cssClass) > -1 )
		{
			oldClass = oldClass.replace(cssClass, "");
			oldClass = oldClass.replace(/'  '+/g, '');
			ctrlInst.className = oldClass;
		}
	}

	/*
	* Replaces a CSS class with another.
	*/
	function replaceClass(ctrlInst, cssClass, cssClassReplaceWith)
	{
		controlClass = ctrlInst.className;
		if(!undef(ctrlInst) && controlClass.indexOf(cssClass) > -1 )
		{
			controlClass = controlClass.replace(cssClass, cssClassReplaceWith);
			controlClass = controlClass.replace(/'  '+/g, '');
			ctrlInst.className =  controlClass;
		}
	}

	/*
	* Checks to see if a value is null, empty or undefined
	*/
	function undef(p)
	{
	    var bUndef = false;
	    switch(typeof(p))
	    {
	        case "undefined": bUndef = true; break;
	        case "null": bUndef = true; break;
	        case "object": if(p==null) bUndef = true; break;
	        case "number": if(null==p) bUndef = true;break;
	        case "string":
	            if(""==p) bUndef = true;
	            if("null"==p) bUndef = true;
	            if("undefined"==p) bUndef = true;
	            break;
	    }
	    return bUndef;
	}
