﻿if (typeof jQuery != 'undefined') {
    jQuery(function ($) {
        $.fn.extend({
            labelOver: function (options) {
                var settings = $.extend({}, $.fn.labelOver.defaults, options);
                return this.each(function () {
                    var l = jQuery(this);
                    var t = l.text();
                    var f = l.attr('for');
                    if (f) {
                        var input = jQuery('#' + f);

                        // Handle the focus/blur events
                        input.focus(function () {
                            if (input.val() == '' || input.val() == t) {
                                input.val('');
                            }
                        });
                        input.blur(function () {
                            if (input.val() == '' || input.val() == t) {
                                input.val(t);
                                input.css('color', settings.blurColour);
                            }
                        });

                        // Change the colour (if relevant)
                        if (settings.focusColour != '') {
                            input.focus(function () {
                                input.css('color', settings.focusColour);
                            });
                        }
                        if (settings.blurColour != '') {
                            input.blur(function () {
                                input.css('color', settings.blurColour);
                            });
                        }

                        // Change the class (if relevant)
                        if (settings.focusClass != '') {
                            input.focus(function () {
                                if (settings.blurClass != '') {
                                    input.removeClass(settings.blurClass);
                                }
                                input.addClass(settings.focusClass);
                            });
                        }

                        if (settings.blurClass != '') {
                            // Set the control as blurred by default
                            input.addClass(settings.blurClass);
                            input.blur(function () {
                                if (settings.blurClass != '') {
                                    input.removeClass(settings.focusClass);
                                }
                                input.addClass(settings.blurClass);
                            });
                        }

                        if (settings.assignTitle && input.attr('title') == '') {
                            input.attr('title', t);
                        }

                        l.remove();

                        if (input.val() == '')
                            input.val(t);

                        //Find the parent form and wire up a on submit
                        input.parents('form').submit(function () { if (input.val() == '' || input.val() == t) input.val('') });
                    };
                });
            }
        })
        $.fn.labelOver.defaults = {
            assignTitle: true,
            focusClass: 'focused',
            blurClass: 'unfocused',
            focusColour: '',
            blurColour: ''
        };
    });
}
