﻿(function($) {
    $.fn.StyleInputs = function(options) {

        var defaults = {
            blAdjustWidth: false
        };
        var options = $.extend(defaults, options);

        return this.each(function() {

            $(this).find("tr").each(function() {
                var counter = 1;
                $(this).children("td,th").each(function() {
                    $(this).addClass("column-" + counter);
                    counter++;
                });
            });

            $(this).find('table').not('.excludeTableFromStyleInputs').each(function() {
                obj = $(this);

                if (!obj.parents('.excludeMyChildrenFromStyleInputs').length) {
                    obj.find("td").wrapInner($("<div class='idleLable'></div>"));
                    obj.find("th").wrapInner($("<div class='idleLable'></div>"));

                    obj.find("td div.idleLable textarea").parent().removeClass("idleLable").addClass("idleLableTextarea");

                    obj.find('tr').height(30);
                    obj.find('th').height(30);
                }
            });

            $(this).find(".gridTableSearch tr:odd").addClass("gridTableRow");
            $(this).find(".gridTableSearch tr:even").addClass("gridTableRowAlt");

            $(this).find('input[type="checkbox"]').addClass("idleField");
            $(this).find('input[type="radio"]').addClass("idleField");

            $(this).find('textarea').not('.excludeFromResizable').each(function() {
                $(this).addClass("resizable");
            });

            var $elemInput = $(this).find('input[type="text"], input[type="password"], input[type="file"], textarea, select');

            $elemInput.each(function() {
                obj = $(this);

                if (!obj.parents('.excludeMyChildrenFromStyleInputs').length) {

                    obj.addClass("idleField");

                    obj.focus(function() {
                        $(this).removeClass("idleField").addClass("focusField");
                    });

                    obj.blur(function() {
                        $(this).removeClass("focusField").addClass("idleField");
                    });

                    if (options.blAdjustWidth) {
                        obj.css("width", "95%");
                    }
                }

            });
        });
    };
})(jQuery);
