﻿/*
* jquery.labelover.js, fade labels in/out for inputs
*
* Original by Paul Armstrong (http://paularmstrongdesigns.com/)
* Modified by Egil Hanger (egilkh@gmail.com)
*/
(function ($) {

    $.fn.labelover = function (options) {

        var settings = $.extend({},
		{
		    showOpacity: 1,
		    showCss: {
		        display: 'block'
		    },
		    fadeOpacity: 0.4,
		    fadeCss: {
		        display: 'none'
		    },
		    fadeSpeed: 200,
		    filledOpacity: 0
		}, options);

        return this.each(function () {


            var $this = $(this);
            var $label = $this.prev('label');

            $this.parent().addClass('labelover');

            $this.focus(function () {
                if ($this.val() == '') {
                    $label.stop().animate({ opacity: settings.fadeOpacity }, settings.fadeSpeed);
                }
            }).blur(function () {
                if ($this.val() == '') {
                    $label.stop().css(settings.showCss).animate({ opacity: settings.showOpacity }, settings.fadeSpeed);
                }
            }).keydown(function () {
                if ($label.css('opacity')) {
                    $label.stop().animate({ opacity: settings.filledOpacity }, settings.fadeSpeed, function () { $label.css(settings.fadeCss); });
                }
            });


            if ($this.val() != '') {
                $label.hide();
            }

        });

    }

})(jQuery);
