/************************************************************************************************************

    Form field tooltip
    (C) www.dhtmlgoodies.com, September 2006

    This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
    
    Terms of use:
    Look at the terms of use at http://www.dhtmlgoodies.com/index.html?page=termsOfUse
    
    Thank you!
    
    www.dhtmlgoodies.com
    Alf Magne Kalleland

    [01/26/2008 - Dave Parker] Added ability to display tooltip on mouse-over events and also for <SPAN> elements

************************************************************************************************************/

var DHTMLgoodies_globalTooltipObj;
var FORM_TOOLTIP_DIV = "event-popup-div";
var FORM_CLOSE_MESSAGE_CLASS = "event-popup-close-message";

/** 
Constructor 
**/
function DHTMLgoodies_formTooltip()
{
    var tooltipDiv;
    var tooltipText;
    var tooltipContentDiv;              // Reference to inner div with tooltip content
    var imagePath;                      // Relative path to images
    var arrowImageFile;                 // Name of arrow image
    var arrowImageFileRight;            // Name of arrow image
    var arrowImageFileTop;
    var arrowImageFileLeft;
    var closeBoxImage;
    var arrowRightWidth;
    var arrowLeftWidth;
    var arrowTopHeight;
    var tooltipWidth;                   // Width of tooltip
    var roundedCornerObj;               // Reference to object of class DHTMLgoodies_roundedCorners
    var tooltipBgColor;
    var closeMessage;                   // Close message
    var activeInput;                    // Reference to currently active input
    var tooltipPosition;                // Tooltip position, possible values: "below" or "right"
    var tooltipCornerSize;              // Size of rounded corners
    var displayArrow;                   // Display arrow above or at the left of the tooltip?
    var cookieName;                     // Name of cookie
    var disableTooltipPossibility;      // Possibility of disabling tooltip
    var disableTooltipByCookie;         // If tooltip has been disabled, save the settings in cookie, i.e. for other pages with the same cookie name.
    var disableTooltipMessage;
    var tooltipDisabled;
    var isMSIE;
    var tooltipIframeObj;
    var pageBgColor;                    // Color of background - used in ie when applying iframe which covers select boxes
    var currentTooltipObj;              // Reference to form field which tooltip is currently showing for
    var activateOnFocus;                // True if window should activate on form-field focus
    var activateOnHover;                // True if window should activate on mouse-over
    var supportedElements;
    
    this.currentTooltipObj = false,
    this.tooltipDiv = false,
    this.tooltipText = false;
    this.imagePath = '/images/tooltips/';
    this.arrowImageFile = 'green-arrow.gif';
    this.arrowImageFileRight = 'green-arrow-right.gif';
    this.arrowImageFileTop = 'green-arrow-top.gif';
    this.arrowImageFileLeft = 'green-arrow-left.gif';
    this.closeBoxImage = this.imagePath + 'popup-close-box.png';

    this.tooltipWidth = 200;
    this.tooltipBgColor = '#317082';
    this.closeMessage = 'Close';
    this.disableTooltipMessage = 'Don\'t show this message again';
    this.activeInput = false;
    this.tooltipPosition = 'right';
    this.arrowRightWidth = 16;          // Default width of arrow when the tooltip is on the right side of the inputs.
    this.arrowLeftWidth = 16;          // Default width of arrow when the tooltip is on the right side of the inputs.
    this.arrowTopHeight = 13;           // Default height of arrow at the top of tooltip
    this.tooltipCornerSize = 10;
    this.displayArrow = true;
    this.cookieName = 'DHTMLgoodies_tooltipVisibility';
    this.disableTooltipByCookie = false;
    this.tooltipDisabled = false;
    this.disableTooltipPossibility = true;
    this.tooltipIframeObj = false;
    this.pageBgColor = '#FFFFFF';
    this.activateOnFocus = true;
    this.activateOnFocus = false;
    this.supportedElements = new Array("INPUT", "TEXTAREA", "SELECT", "DIV");
    
    DHTMLgoodies_globalTooltipObj = this;
    
//    if (navigator.userAgent.indexOf('MSIE') >= 0)
//    {
//        this.isMSIE = true;
//    }
//    else this.isMSIE = false;
    this.isMSIE = false;
}


DHTMLgoodies_formTooltip.prototype = {
    // {{{ initFormFieldTooltip()
    /**
     *
     *
     *  Initializes the tooltip script. Most set methods needs to be executed before you call this method.
     * 
     * @public
     */     
    initFormFieldTooltip : function()
    {
        var formElements = new Array();
        for (var iElem = 0; iElem < this.supportedElements.length; iElem++)
        {
            var inputs = document.getElementsByTagName(this.supportedElements[iElem]);
            for (var no = 0; no < inputs.length; no++)
            {
                var attr = inputs[no].getAttribute('tooltipText');
                if (!attr)
                {
                    attr = inputs[no].tooltipText;
                }
                if (attr)
                {
                    formElements[formElements.length] = inputs[no];
                }
            }
        }

        window.refToFormTooltip = this;
        
        if (this.activateOnFocus)
        {
            for (var no = 0; no < formElements.length; no++)
            {
                formElements[no].onfocus = this.__displayTooltip;
            }
        }
        if (this.activateOnHover)
        {
            for (var no = 0; no < formElements.length; no++)
            {
                formElements[no].onmouseover = this.__displayTooltip;
//                formElements[no].onmouseout = this.__hideTooltip;
            }
        }
        this.addEvent(window,'resize',function(){ window.refToFormTooltip.__positionCurrentToolTipObj();});
        this.addEvent(document.documentElement,'click',function(e){ window.refToFormTooltip.__autoHideTooltip(e);});
    }
    
    // }}}
    ,       
    // {{{ setTooltipPosition()
    /**
     *
     *
     *  Specify position of tooltip(below or right)
     *	@param String newPosition (Possible values: "below" or "right") 
     * 
     * @public
     */ 
    setTooltipPosition : function(newPosition)
    {
        this.tooltipPosition = newPosition;
    }
    // }}}
    ,       
    // {{{ setCloseMessage()
    /**
     *
     *
     *  Specify "Close" message
     *	@param String closeMessage
     * 
     * @public
     */
    setCloseMessage : function(closeMessage)
    {
        this.closeMessage = closeMessage;
    }
    // }}}
    ,   
    // {{{ setDisableTooltipMessage()
    /**
     *
     *
     *  Specify disable tooltip message at the bottom of the tooltip
     *	@param String disableTooltipMessage
     * 
     * @public
     */
    setDisableTooltipMessage : function(disableTooltipMessage)
    {
        this.disableTooltipMessage = disableTooltipMessage;
    }
    // }}}
    ,       
    // {{{ setTooltipDisablePossibility()
    /**
     *
     *
     *  Specify whether you want the disable link to appear or not.
     *	@param Boolean disableTooltipPossibility
     * 
     * @public
     */
    setTooltipDisablePossibility : function(disableTooltipPossibility)
    {
        this.disableTooltipPossibility = disableTooltipPossibility;
    }
    // }}}
    ,
    // {{{ setActivateOnFocus()
    /**
     *
     *
     *  Specify whether you want the tooltip to display when a form field received the focus.
     *	@param Boolean activateOnFocus
     * 
     * @public
     */
    setActivateOnFocus : function(activateOnFocus)
    {
        this.activateOnFocus = activateOnFocus;
    }
    // }}}
    ,
    // {{{ setActivateOnHover()
    /**
     *
     *
     *  Specify whether you want the tooltip to display when the mouse hovers over an element.
     *	@param Boolean activateOnHover
     * 
     * @public
     */
    setActivateOnHover : function(activateOnHover)
    {
        this.activateOnHover = activateOnHover;
    }
    // }}}
    ,       
    // {{{ setCookieName()
    /**
     *
     *
     *  Specify name of cookie. Useful if you're using this script on several pages. 
     *	@param String newCookieName
     * 
     * @public
     */
    setCookieName : function(newCookieName)
    {
        this.cookieName = newCookieName;
    }
    // }}}
    ,       
    // {{{ setTooltipWidth()
    /**
     *
     *
     *  Specify width of tooltip
     *	@param Int newWidth
     * 
     * @public
     */ 
    setTooltipWidth : function(newWidth)
    {
        this.tooltipWidth = newWidth;
    }
    
    // }}}
    ,       
    // {{{ setArrowVisibility()
    /**
     *
     *
     *  Display arrow at the top or at the left of the tooltip?
     *	@param Boolean displayArrow
     * 
     * @public
     */ 
    
    setArrowVisibility : function(displayArrow)
    {
        this.displayArrow = displayArrow;
    }
    
    // }}}
    ,       
    // {{{ setDisableTooltipByCookie()
    /**
     *
     *
     *  Send true to this method if you want to be able to save tooltip visibility in cookie. If it's set to true,
     *	It means that when someone returns to the page, the tooltips won't show.
     * 
     *	@param Boolean disableTooltipByCookie
     * 
     * @public
     */ 
    setDisableTooltipByCookie : function(disableTooltipByCookie)
    {
        this.disableTooltipByCookie = disableTooltipByCookie;
    }   
    // }}}
    ,       
    // {{{ setTooltipBgColor()
    /**
     *
     *
     *  This method specifies background color of tooltip
     *	@param String newBgColor
     * 
     * @public
     */ 
    setTooltipBgColor : function(newBgColor)
    {
        this.tooltipBgColor = newBgColor;
    }
    
    // }}}
    ,       
    // {{{ setTooltipCornerSize()
    /**
     *
     *
     *  Size of rounded corners around tooltip
     *	@param Int newSize (0 = no rounded corners)
     * 
     * @public
     */ 
    setTooltipCornerSize : function(tooltipCornerSize)
    {
        this.tooltipCornerSize = tooltipCornerSize;
    }
    
    // }}}
    ,
    // {{{ setTopArrowHeight()
    /**
     *
     *
     *  Size height of arrow at the top of tooltip
     *	@param Int arrowTopHeight
     * 
     * @public
     */ 
    setTopArrowHeight : function(arrowTopHeight)
    {
        this.arrowTopHeight = arrowTopHeight;
    }
    
    // }}}
    ,   
    // {{{ setRightArrowWidth()
    /**
     *
     *
     *  Size width of arrow when the tooltip is on the right side of inputs
     *	@param Int arrowTopHeight
     * 
     * @public
     */ 
    setRightArrowWidth : function(arrowRightWidth)
    {
        this.arrowRightWidth = arrowRightWidth;
    }
    
    // }}}
    ,   
    // {{{ setPageBgColor()
    /**
     *
     *
     *  Specify background color of page.
     *	@param String pageBgColor
     * 
     * @public
     */ 
    setPageBgColor : function(pageBgColor)
    {
        this.pageBgColor = pageBgColor;
    }
    
    // }}}
    ,       
    // {{{ __hideTooltip()
    /**
     *
     *
     *  This method displays the tooltip
     *
     * 
     * @private
     */     
    __displayTooltip : function()
    {
        if (DHTMLgoodies_globalTooltipObj.disableTooltipByCookie)
        {
            var cookieValue = DHTMLgoodies_globalTooltipObj.getCookie(DHTMLgoodies_globalTooltipObj.cookieName) + '';   
            if (cookieValue == '1')
            {
                DHTMLgoodies_globalTooltipObj.tooltipDisabled = true;
            }
        }

        if (DHTMLgoodies_globalTooltipObj.tooltipDisabled)
        {
            return;    // Tooltip disabled
        }
        var tooltipText = this.getAttribute('tooltipText');
        DHTMLgoodies_globalTooltipObj.activeInput = this;
        
        if (!tooltipText)
        {
            tooltipText = this.tooltipText;
        }
        DHTMLgoodies_globalTooltipObj.tooltipText = tooltipText;

        
        if (!DHTMLgoodies_globalTooltipObj.tooltipDiv)
        {
            DHTMLgoodies_globalTooltipObj.__createTooltip();
        }

        DHTMLgoodies_globalTooltipObj.__positionTooltip(this);
        DHTMLgoodies_globalTooltipObj.tooltipContentDiv.innerHTML = tooltipText;
        DHTMLgoodies_globalTooltipObj.tooltipDiv.style.display = 'block';
        
        if (DHTMLgoodies_globalTooltipObj.isMSIE)
        {
            if (DHTMLgoodies_globalTooltipObj.tooltipPosition == 'below' || DHTMLgoodies_globalTooltipObj.tooltipPosition == 'top')
            {
                DHTMLgoodies_globalTooltipObj.tooltipIframeObj.style.height = (DHTMLgoodies_globalTooltipObj.tooltipDiv.clientHeight - DHTMLgoodies_globalTooltipObj.arrowTopHeight);
            }
            else
            {
                DHTMLgoodies_globalTooltipObj.tooltipIframeObj.style.height = (DHTMLgoodies_globalTooltipObj.tooltipDiv.clientHeight);
            }
        }

    }
    // }}}
    ,       
    // {{{ __hideTooltip()
    /**
     *
     *
     *  This function hides the tooltip
     *
     * 
     * @private
     */     
    __hideTooltip : function()
    {
        try{
            DHTMLgoodies_globalTooltipObj.tooltipDiv.style.display = 'none';
        }catch(e)
        {
        }
        
    }
    // }}}
    ,
    // {{{ getSrcElement()
    /**
     *
     *
     *  Return the source of an event.
     *
     * 
     * @private
     */     
    getSrcElement : function(e)
    {
        var el;
        if (e.target)
        {
            el = e.target;
        }
        else if (e.srcElement)
        {
            el = e.srcElement;
        }
        if (el.nodeType == 3) // defeat Safari bug
            el = el.parentNode;
        return el;  
    }   
    // }}}
    ,
    __autoHideTooltip : function(e)
    {
        if (document.all)
        {
            e = event;
        }
        var src = this.getSrcElement(e);
        if (src.tagName.toLowerCase() != 'input' && src.tagName.toLowerCase().toLowerCase() != 'textarea' && src.tagName.toLowerCase().toLowerCase() != 'select')
        {
            this.__hideTooltip();
        }

        var attr = src.getAttribute('tooltipText');
        if (!attr)
        {
            attr = src.tooltipText;
        }
        if (!attr)
        {
            this.__hideTooltip();
        }

    }
    // }}}
    ,       
    // {{{ __hideTooltipFromLink()
    /**
     *
     *
     *  This function hides the tooltip
     *
     * 
     * @private
     */ 
    __hideTooltipFromLink : function()
    {
        
        this.activeInput.focus();
        window.refToThis = this;
        setTimeout('window.refToThis.__hideTooltip()',10);
    }
    // }}}
    ,       
    // {{{ disableTooltip()
    /**
     *
     *
     *  Hide tooltip and disable it
     *
     * 
     * @public
     */ 
    disableTooltip : function()
    {
        this.__hideTooltipFromLink();
        if (this.disableTooltipByCookie)
        {
            this.setCookie(this.cookieName,'1',500);
        }
        this.tooltipDisabled = true;    
    }   
    // }}}
    ,       
    // {{{ __positionTooltip()
    /**
     *
     *
     *  This function creates the tooltip elements
     *
     * 
     * @private
     */ 
    __createTooltip : function()
    {
        this.tooltipDiv = document.createElement('DIV');
        this.tooltipDiv.style.position = 'absolute';
        var outerDivFloat = "";
        
        if (this.displayArrow)
        {
            var arrowImageName;
            var topDiv = document.createElement('DIV');
            
            if (this.tooltipPosition == 'below')
            {
                topDiv.style.marginLeft = '20px';
                arrowImageName = this.arrowImageFile;
            }
            else if (this.tooltipPosition == 'right')
            {
                topDiv.style.marginTop = '5px';
                arrowImageName = this.arrowImageFileRight;
                topDiv.style.position = 'absolute';         
            }
            else if (this.tooltipPosition == 'top')
            {
                topDiv.style.marginLeft = '20px';
                arrowImageName = this.arrowImageFileTop;
                topDiv.style.position = 'absolute';         
            }
            else if (this.tooltipPosition == 'left')
            {
                topDiv.style.marginTop = '40px';
                arrowImageName = this.arrowImageFileLeft;
                topDiv.style.float = "right";
                outerDivFloat = "left";
            }

            var arrowImg = document.createElement('IMG');
            arrowImg.src = this.imagePath + arrowImageName + '?rand='+ Math.random(); 
            arrowImg.style.width = this.arrowLeftWidth;
            arrowImg.style.textAlign = 'right';
            arrowImg.style.display = 'block';
            topDiv.appendChild(arrowImg);                   

            this.tooltipDiv.appendChild(topDiv);    
        }

        var outerDiv = document.createElement('DIV');
        outerDiv.style.position = 'relative';
        outerDiv.style.zIndex = 1000;
        if (outerDivFloat != "")
        {
            outerDiv.style.float = outerDivFloat;
        }

        if (this.tooltipPosition == 'right' && this.displayArrow)
        {
            outerDiv.style.left = this.arrowRightWidth + 'px';
        }

        if (this.tooltipPosition == 'left' && this.displayArrow)
        {
            outerDiv.style.width = this.tooltipWidth + 'px';
            arrowImg.style.left = outerDiv.style.width;
            this.tooltipWidth += this.arrowLeftWidth;
        }

        outerDiv.id = FORM_TOOLTIP_DIV;
        outerDiv.className = FORM_TOOLTIP_DIV;
        outerDiv.style.backgroundColor = this.tooltipBgColor;
        this.tooltipDiv.appendChild(outerDiv);


        var closeBoxDiv = document.createElement('DIV');
        closeBoxDiv.style.textAlign = 'right';

        closeBoxDiv.innerHTML = '<A class="'+FORM_CLOSE_MESSAGE_CLASS+'" href="#" onclick="DHTMLgoodies_globalTooltipObj.__hideTooltipFromLink();return false"><img style="border:0; width:10px; height:10px;" src="' + this.closeBoxImage + '"/></A>';
        outerDiv.appendChild(closeBoxDiv);

        if (this.isMSIE)
        {
            this.tooltipIframeObj = document.createElement('<IFRAME name="tooltipIframeObj" width="' + this.tooltipWidth + '" frameborder="no" src="about:blank"></IFRAME>');
            this.tooltipIframeObj.style.position = 'absolute';
            this.tooltipIframeObj.style.top = '0px';
            this.tooltipIframeObj.style.left = '0px';
            this.tooltipIframeObj.style.width = (this.tooltipWidth) + 'px';
            this.tooltipIframeObj.style.zIndex = 100;
            this.tooltipIframeObj.background = this.pageBgColor;
            this.tooltipIframeObj.style.backgroundColor = this.pageBgColor;
            this.tooltipDiv.appendChild(this.tooltipIframeObj); 
            if (this.tooltipPosition == 'right' && this.displayArrow)
            {
                this.tooltipIframeObj.style.left = (this.arrowRightWidth) +  'px';  
            }
            else
            {
                this.tooltipIframeObj.style.top = this.arrowTopHeight + 'px';   
            }

            setTimeout("self.frames['tooltipIframeObj'].document.documentElement.style.backgroundColor='" + this.pageBgColor + "'",500);

        }

        this.tooltipContentDiv = document.createElement('DIV'); 
        this.tooltipContentDiv.style.position = 'relative'; 
        this.tooltipContentDiv.id = 'DHTMLgoodies_formTooltipContent';
        outerDiv.appendChild(this.tooltipContentDiv);           
        
/*
        var closeDiv = document.createElement('DIV');
        closeDiv.style.textAlign = 'center';
        
        closeDiv.innerHTML = '<A class="'+FORM_CLOSE_MESSAGE_CLASS+'" href="#" onclick="DHTMLgoodies_globalTooltipObj.__hideTooltipFromLink();return false">' + this.closeMessage + '</A>';
        
        if (this.disableTooltipPossibility)
        {
            var tmpHTML = closeDiv.innerHTML;
            tmpHTML = tmpHTML + ' | <A class="'+FORM_CLOSE_MESSAGE_CLASS+'" href="#" onclick="DHTMLgoodies_globalTooltipObj.disableTooltip();return false">' + this.disableTooltipMessage + '</A>';
            closeDiv.innerHTML = tmpHTML;
        }

        outerDiv.appendChild(closeDiv);
*/        
        document.body.appendChild(this.tooltipDiv);
        
        if (this.tooltipCornerSize>0)
        {
            this.roundedCornerObj = new DHTMLgoodies_roundedCorners();
            // (divId,xRadius,yRadius,color,backgroundColor,padding,heightOfContent,whichCorners)
            this.roundedCornerObj.addTarget(FORM_TOOLTIP_DIV,this.tooltipCornerSize,this.tooltipCornerSize,this.tooltipBgColor,this.pageBgColor,5);
            this.roundedCornerObj.init();
        }


        this.tooltipContentDiv = document.getElementById('DHTMLgoodies_formTooltipContent');
    }
    // }}}
    ,
    addEvent : function(whichObject,eventType,functionName)
    {
        if (whichObject.attachEvent)
        {
            whichObject['e' + eventType + functionName] = functionName; 
            whichObject[eventType + functionName] = function()
            {
                whichObject['e' + eventType + functionName]( window.event );
            } 
            whichObject.attachEvent( 'on'  +  eventType, whichObject[eventType + functionName] ); 
        }
        else
            whichObject.addEventListener(eventType,functionName,false);         
    }   
    // }}}
    ,
    __positionCurrentToolTipObj : function()
    {
        if (DHTMLgoodies_globalTooltipObj.activeInput)
        {
            this.__positionTooltip(DHTMLgoodies_globalTooltipObj.activeInput);
        }
    }
    // }}}
    ,       
    // {{{ __positionTooltip()
    /**
     *
     *
     *  This function positions the tooltip
     *
     * @param Obj inputObj = Reference to text input
     * 
     * @private
     */ 
    __positionTooltip : function(inputObj)
    {
        var offset = 0;
        if (!this.displayArrow)
        {
            offset = 3;
        }
        if (this.tooltipPosition == 'below')
        {
            this.tooltipDiv.style.left = this.getLeftPos(inputObj) + 'px';
            this.tooltipDiv.style.top = (this.getTopPos(inputObj) + inputObj.offsetHeight + offset) + 'px';
        }
        else if (this.tooltipPosition == 'right')
        {
            this.tooltipDiv.style.left = (this.getLeftPos(inputObj) + inputObj.offsetWidth + offset) + 'px';
            this.tooltipDiv.style.top = this.getTopPos(inputObj) + 'px';            
        }
        else if (this.tooltipPosition == 'top')
        {
            this.tooltipDiv.style.left = this.getLeftPos(inputObj) + 'px';
            this.tooltipDiv.style.top = (this.getTopPos(inputObj) - this.tooltipDiv.offsetHeight + offset) + 'px';
        }
        else if (this.tooltipPosition == 'left')
        {
            this.tooltipDiv.style.left = (this.getLeftPos(inputObj) - this.tooltipWidth + offset) + 'px';
            this.tooltipDiv.style.top = this.getTopPos(inputObj) + 'px';            
        }
        this.tooltipDiv.style.width = this.tooltipWidth + 'px';
        
    }
    ,
    // {{{ getTopPos()
    /**
     * This method will return the top coordinate(pixel) of an object
     *
     * @param Object inputObj = Reference to HTML element
     * @public
     */ 
    getTopPos : function(inputObj)
    {
        var returnValue = inputObj.offsetTop;
        while ((inputObj = inputObj.offsetParent) != null)
        {
            if (inputObj.tagName != 'HTML')
            {
                returnValue += inputObj.offsetTop;
                if (document.all)
                {
                    returnValue += inputObj.clientTop;
                }
            }
        } 
        return returnValue;
    }
    // }}}
    ,

    // {{{ getLeftPos()
    /**
     * This method will return the left coordinate(pixel) of an object
     *
     * @param Object inputObj = Reference to HTML element
     * @public
     */ 
    getLeftPos : function(inputObj)
    {
        var returnValue = inputObj.offsetLeft;
        while ((inputObj = inputObj.offsetParent) != null)
        {
            if (inputObj.tagName != 'HTML')
            {
                returnValue += inputObj.offsetLeft;
                if (document.all)
                {
                    returnValue += inputObj.clientLeft;
                }
            }
        }
        return returnValue;
    }
    ,
    
    // {{{ getCookie()
    /**
     *
     * 	These cookie functions are downloaded from 
     * 	http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
     *
     *  This function returns the value of a cookie
     *
     * @param String name = Name of cookie
     * @param Object inputObj = Reference to HTML element
     * @public
     */ 
    getCookie : function(name)
    {
        var start = document.cookie.indexOf(name + "="); 
        var len = start + name.length + 1; 
        if ((!start) && (name != document.cookie.substring(0,name.length)))
        {
             return null;
        }
        if (start == -1)
        {
             return null;
        }
        var end = document.cookie.indexOf(";",len); 
        if (end == -1)
        {
             end = document.cookie.length;
        }
        return unescape(document.cookie.substring(len,end)); 
    }   
    // }}}
    ,   
    
    // {{{ setCookie()
    /**
     *
     * 	These cookie functions are downloaded from 
     * 	http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
     *
     *  This function creates a cookie. (This method has been slighhtly modified)
     *
     * @param String name = Name of cookie
     * @param String value = Value of cookie
     * @param Int expires = Timestamp - days
     * @param String path = Path for cookie (Usually left empty)
     * @param String domain = Cookie domain
     * @param Boolean secure = Secure cookie(SSL)
     * 
     * @public
     */ 
    setCookie : function(name,value,expires,path,domain,secure)
    {
        expires = expires * 60*60*24*1000;
        var today = new Date();
        var expires_date = new Date( today.getTime() + (expires) );
        var cookieString = name + "=" + escape(value) + 
                           ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
                           ( (path) ? ";path=" + path : "") + 
                           ( (domain) ? ";domain=" + domain : "") + 
                           ( (secure) ? ";secure" : ""); 
        document.cookie = cookieString; 
    }
    // }}}
}

function DoDebugBreak()
{
    foo;
}
