﻿/* based on: http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/ */

jQuery.fn.hint = function(blurClass, hintText, overwriteEnteredText)
{
    if (!blurClass)
    {
        blurClass = 'blur';
    }

    return this.each(function()
    {
        // get jQuery version of 'this'
        var $input = jQuery(this),

        // capture the rest of the variable to allow for reuse
        title = (hintText) ? hintText : $input.attr('title'),

      $form = jQuery(this.form),
      $win = jQuery(window);

        function remove()
        {
            if (
                    ($input.val() === title || $input.attr('type') == 'password')
                &&  $input.hasClass(blurClass))
            {
                $input.val('').removeClass(blurClass);
                $input.unbind("blur");  // don't let it blur every time the user enters something and leaves, or it will remove the existing text (if overwriteEnteredText is true)
            }
        }

        // only apply logic if the element has the attribute
        if (title)
        {
            // on blur, set value to title attr if text is blank
            $input.blur(function()
            {
                if (overwriteEnteredText || this.value === '')
                {
                    $input.addClass(blurClass);
                    if ($input.attr('type') != 'password')
                    {
                        $input.val(title);
                    }

                    //alert($input.attr('type'));
                }
            }).focus(remove).blur(); // now change all inputs to title

            // clear the pre-defined text when form is submitted
            $form.submit(remove);
            $win.unload(remove); // handles Firefox's autocomplete
        }
    });
};