﻿(function ($) {
    var supported = 'placeholder' in document.createElement('input');
    var copy = ['font-style', 'font-size', 'font-family', 'letter-spacing', 'border-left-style', 'border-left-width', 'padding-left', 'border-top-style', 'border-top-width', 'padding-top'];

    $.fn.placeholder = function (options) {
        if (supported) return this;
        options = $.extend({}, $.fn.placeholder.defaults, options);

        return this.each(function () {
            var input = $(this),
                type = (input.attr('type') || 'text').toLowerCase(),
                done = input.data('placeholder-elm');

            if (done || type == 'hidden' || type == 'file') return;

            var placeholder = $('<span />').addClass(options.className)
                .css({ position: 'absolute' })
                .text(input.attr('placeholder'));
            input.data('placeholder-elm', placeholder);

            for (var i = 0; i < copy.length; i++)
                placeholder.css(copy[i], input.css(copy[i]));
            placeholder.css('border-color', 'transparent');

            var parent = input.offsetParent();
            placeholder.appendTo(parent).css(input.position());

            placeholder.mousedown(function () {
                input.focus()[0].focus();
            });

            input.focus(function () {
                placeholder.hide();
            }).blur(function () {
                if (input.val() == '')
                    placeholder.show();
            });

        });
    }

    $.fn.placeholder.defaults = { className: 'placeholder' };

    $(function () { $('input[placeholder],textarea[placeholder]').placeholder(); });

})(jQuery);
