var FormFieldTips = {
    _fieldTips : new Array(),
    _tip : document.createElement('DIV'),
    _currentTipElement : '',
    TipClassName : 'tooltip',
    
    Init : function()
    {
        this._tip.id = 'toolTip';
        this._tip.className = this.TipClassName;
        YAHOO.util.Dom.setStyle(this._tip, 'display', 'none');   
        if (document.all) null; // fucking IE sucks
        else document.body.appendChild(this._tip);
    },
    
    AddFieldTip : function (el, tip, className)
    {
        var tips = this._fieldTips.length;
        this._fieldTips[tips] = { 'element': el, 'tip': tip };
        YAHOO.util.Event.addListener(el, 'focus', this._handleFieldFocus, this, true);
        YAHOO.util.Event.addListener(el, 'blur', this._handleFieldBlur, this, true);
    },  
    
    _handleFieldFocus : function(e)
    {
        var el = YAHOO.util.Event.getTarget(e);
        this.ShowFieldTip(el);
    },
    
    _handleFieldBlur : function(e)
    {
        var el = YAHOO.util.Event.getTarget(e);
        this.HideFieldTip(el);
    },
    
    ShowFieldTip : function (el)
    {
        var tipCount = this._fieldTips.length;
        for (var i=0; i<tipCount; i++)
        {
            if (this._fieldTips[i].element == el)
            {
                this._currentTipElement = el;
                YAHOO.util.Dom.setStyle(this._tip, 'display', 'block');
                var r = YAHOO.util.Dom.getRegion(this._currentTipElement);
                var w = YAHOO.util.Dom.getRegion(this._tip);
                YAHOO.util.Dom.setY(this._tip, r.top);
                YAHOO.util.Dom.setX(this._tip, r.left-10-(w.right-w.left));
                this._tip.innerHTML = this._fieldTips[i].tip;
            }
        }
    },      
    
    HideFieldTip : function ()
    {
        YAHOO.util.Dom.setStyle(this._tip, 'display', 'none');  
    }
};

YAHOO.util.Event.addListener(window, 'load', FormFieldTips.Init());
