﻿
/*
* JSMin
* Javascript Compressor
* http://www.crockford.com/
* http://www.smallsharptools.com/Projects/Packer/
*/


(function($) {
    $.uniform = { options: { selectClass: 'selector', radioClass: 'radio', checkboxClass: 'checker', fileClass: 'uploader', filenameClass: 'filename', fileBtnClass: 'action', fileDefaultText: 'No file selected', fileBtnText: 'Choose File', checkedClass: 'checked', focusClass: 'focus', disabledClass: 'disabled', buttonClass: 'button', activeClass: 'active', hoverClass: 'hover', useID: true, idPrefix: 'uniform', resetSelector: false, autoHide: true }, elements: [] }; if ($.browser.msie && $.browser.version < 7) { $.support.selectOpacity = false; } else { $.support.selectOpacity = true; }
    $.fn.uniform = function(options) {
        options = $.extend($.uniform.options, options); var el = this; if (options.resetSelector != false) {
            $(options.resetSelector).mouseup(function() {
                function resetThis() { $.uniform.update(el); }
                setTimeout(resetThis, 10);
            });
        }
        function doInput(elem) { $el = $(elem); $el.addClass($el.attr("type")); storeElement(elem); }
        function doTextarea(elem) { $(elem).addClass("uniform"); storeElement(elem); }
        function doButton(elem) {
            var $el = $(elem); var divTag = $("<div>"), spanTag = $("<span>"); divTag.addClass(options.buttonClass); if (options.useID && $el.attr("id") != "") divTag.attr("id", options.idPrefix + "-" + $el.attr("id")); var btnText; if ($el.is("a") || $el.is("button")) { btnText = $el.text(); } else if ($el.is(":submit") || $el.is(":reset") || $el.is("input[type=button]")) { btnText = $el.attr("value"); }
            btnText = btnText == "" ? $el.is(":reset") ? "Reset" : "Submit" : btnText; spanTag.html(btnText); $el.css("opacity", 0); $el.wrap(divTag); $el.wrap(spanTag); divTag = $el.closest("div"); spanTag = $el.closest("span"); if ($el.is(":disabled")) divTag.addClass(options.disabledClass); divTag.bind({ "mouseenter.uniform": function() { divTag.addClass(options.hoverClass); }, "mouseleave.uniform": function() { divTag.removeClass(options.hoverClass); divTag.removeClass(options.activeClass); }, "mousedown.uniform touchbegin.uniform": function() { divTag.addClass(options.activeClass); }, "mouseup.uniform touchend.uniform": function() { divTag.removeClass(options.activeClass); }, "click.uniform touchend.uniform": function(e) { if ($(e.target).is("span") || $(e.target).is("div")) { if (elem[0].dispatchEvent) { var ev = document.createEvent('MouseEvents'); ev.initEvent('click', true, true); elem[0].dispatchEvent(ev); } else { elem[0].click(); } } } }); elem.bind({ "focus.uniform": function() { divTag.addClass(options.focusClass); }, "blur.uniform": function() { divTag.removeClass(options.focusClass); } }); $.uniform.noSelect(divTag); storeElement(elem);
        }
        function doSelect(elem) {
            var $el = $(elem); var divTag = $('<div />'), spanTag = $('<span />'); divTag.width($el.width() + 25); spanTag.width($el.width()); $el.width($el.width() + 25); if (!$el.css("display") == "none" && options.autoHide) { divTag.hide(); }
            divTag.addClass(options.selectClass); if (options.useID && elem.attr("id") != "") { divTag.attr("id", options.idPrefix + "-" + elem.attr("id")); }
            var selected = elem.find(":selected:first"); if (selected != null && selected.length == 0) { selected = elem.find("option:first"); }
            spanTag.html(selected.html()); elem.css('opacity', 0); elem.wrap(divTag); elem.before(spanTag); divTag = elem.parent("div"); spanTag = elem.siblings("span"); elem.bind({ "change.uniform": function() { spanTag.text(elem.find(":selected").html()); divTag.removeClass(options.activeClass); }, "focus.uniform": function() { divTag.addClass(options.focusClass); }, "blur.uniform": function() { divTag.removeClass(options.focusClass); divTag.removeClass(options.activeClass); }, "mousedown.uniform touchbegin.uniform": function() { divTag.addClass(options.activeClass); }, "mouseup.uniform touchend.uniform": function() { divTag.removeClass(options.activeClass); }, "click.uniform touchend.uniform": function() { divTag.removeClass(options.activeClass); }, "mouseenter.uniform": function() { divTag.addClass(options.hoverClass); }, "mouseleave.uniform": function() { divTag.removeClass(options.hoverClass); divTag.removeClass(options.activeClass); }, "keyup.uniform": function() { spanTag.text(elem.find(":selected").html()); } }); if ($(elem).attr("disabled")) { divTag.addClass(options.disabledClass); }
            $.uniform.noSelect(spanTag); storeElement(elem);
        }
        function doCheckbox(elem) {
            var $el = $(elem); var divTag = $('<div />'), spanTag = $('<span />'); if (!$el.css("display") == "none" && options.autoHide) { divTag.hide(); }
            divTag.addClass(options.checkboxClass); if (options.useID && elem.attr("id") != "") { divTag.attr("id", options.idPrefix + "-" + elem.attr("id")); }
            $(elem).wrap(divTag); $(elem).wrap(spanTag); spanTag = elem.parent(); divTag = spanTag.parent(); $(elem).css("opacity", 0).bind({ "focus.uniform": function() { divTag.addClass(options.focusClass); }, "blur.uniform": function() { divTag.removeClass(options.focusClass); }, "click.uniform touchend.uniform": function() { if (!$(elem).attr("checked")) { spanTag.removeClass(options.checkedClass); } else { spanTag.addClass(options.checkedClass); } }, "mousedown.uniform touchbegin.uniform": function() { divTag.addClass(options.activeClass); }, "mouseup.uniform touchend.uniform": function() { divTag.removeClass(options.activeClass); }, "mouseenter.uniform": function() { divTag.addClass(options.hoverClass); }, "mouseleave.uniform": function() { divTag.removeClass(options.hoverClass); divTag.removeClass(options.activeClass); } }); if ($(elem).attr("checked")) { spanTag.addClass(options.checkedClass); }
            if ($(elem).attr("disabled")) { divTag.addClass(options.disabledClass); }
            storeElement(elem);
        }
        function doRadio(elem) {
            var $el = $(elem); var divTag = $('<div />'), spanTag = $('<span />'); if (!$el.css("display") == "none" && options.autoHide) { divTag.hide(); }
            divTag.addClass(options.radioClass); if (options.useID && elem.attr("id") != "") { divTag.attr("id", options.idPrefix + "-" + elem.attr("id")); }
            $(elem).wrap(divTag); $(elem).wrap(spanTag); spanTag = elem.parent(); divTag = spanTag.parent(); $(elem).css("opacity", 0).bind({ "focus.uniform": function() { divTag.addClass(options.focusClass); }, "blur.uniform": function() { divTag.removeClass(options.focusClass); }, "click.uniform touchend.uniform": function() { if (!$(elem).attr("checked")) { spanTag.removeClass(options.checkedClass); } else { var classes = options.radioClass.split(" ")[0]; $("." + classes + " span." + options.checkedClass + ":has([name='" + $(elem).attr('name') + "'])").removeClass(options.checkedClass); spanTag.addClass(options.checkedClass); } }, "mousedown.uniform touchend.uniform": function() { if (!$(elem).is(":disabled")) { divTag.addClass(options.activeClass); } }, "mouseup.uniform touchbegin.uniform": function() { divTag.removeClass(options.activeClass); }, "mouseenter.uniform touchend.uniform": function() { divTag.addClass(options.hoverClass); }, "mouseleave.uniform": function() { divTag.removeClass(options.hoverClass); divTag.removeClass(options.activeClass); } }); if ($(elem).attr("checked")) { spanTag.addClass(options.checkedClass); }
            if ($(elem).attr("disabled")) { divTag.addClass(options.disabledClass); }
            storeElement(elem);
        }
        function doFile(elem) {
            var $el = $(elem); var divTag = $('<div />'), filenameTag = $('<span>' + options.fileDefaultText + '</span>'), btnTag = $('<span>' + options.fileBtnText + '</span>'); if (!$el.css("display") == "none" && options.autoHide) { divTag.hide(); }
            divTag.addClass(options.fileClass); filenameTag.addClass(options.filenameClass); btnTag.addClass(options.fileBtnClass); if (options.useID && $el.attr("id") != "") { divTag.attr("id", options.idPrefix + "-" + $el.attr("id")); }
            $el.wrap(divTag); $el.after(btnTag); $el.after(filenameTag); divTag = $el.closest("div"); filenameTag = $el.siblings("." + options.filenameClass); btnTag = $el.siblings("." + options.fileBtnClass); if (!$el.attr("size")) { var divWidth = divTag.width(); $el.attr("size", divWidth / 10); }
            var setFilename = function() {
                var filename = $el.val(); if (filename === '')
                { filename = options.fileDefaultText; }
                else
                { filename = filename.split(/[\/\\]+/); filename = filename[(filename.length - 1)]; }
                filenameTag.text(filename);
            }; setFilename(); $el.css("opacity", 0).bind({ "focus.uniform": function() { divTag.addClass(options.focusClass); }, "blur.uniform": function() { divTag.removeClass(options.focusClass); }, "mousedown.uniform": function() { if (!$(elem).is(":disabled")) { divTag.addClass(options.activeClass); } }, "mouseup.uniform": function() { divTag.removeClass(options.activeClass); }, "mouseenter.uniform": function() { divTag.addClass(options.hoverClass); }, "mouseleave.uniform": function() { divTag.removeClass(options.hoverClass); divTag.removeClass(options.activeClass); } }); if ($.browser.msie) { $el.bind('click.uniform.ie7', function() { setTimeout(setFilename, 0); }); } else { $el.bind('change.uniform', setFilename); }
            if ($el.attr("disabled")) { divTag.addClass(options.disabledClass); }
            $.uniform.noSelect(filenameTag); $.uniform.noSelect(btnTag); storeElement(elem);
        }
        $.uniform.restore = function(elem) {
            if (elem == undefined) { elem = $($.uniform.elements); }
            $(elem).each(function() {
                if ($(this).is(":checkbox")) { $(this).unwrap().unwrap(); } else if ($(this).is("select")) { $(this).siblings("span").remove(); $(this).unwrap(); } else if ($(this).is(":radio")) { $(this).unwrap().unwrap(); } else if ($(this).is(":file")) { $(this).siblings("span").remove(); $(this).unwrap(); } else if ($(this).is("button, :submit, :reset, a, input[type='button']")) { $(this).unwrap().unwrap(); }
                $(this).unbind(".uniform"); $(this).css("opacity", "1"); var index = $.inArray($(elem), $.uniform.elements); $.uniform.elements.splice(index, 1);
            });
        }; function storeElement(elem) { elem = $(elem).get(); if (elem.length > 1) { $.each(elem, function(i, val) { $.uniform.elements.push(val); }); } else { $.uniform.elements.push(elem); } }
        $.uniform.noSelect = function(elem) { function f() { return false; }; $(elem).each(function() { this.onselectstart = this.ondragstart = f; $(this).mousedown(f).css({ MozUserSelect: 'none' }); }); }; $.uniform.update = function(elem) {
            if (elem == undefined) { elem = $($.uniform.elements); }
            elem = $(elem); elem.each(function() {
                var $e = $(this); if ($e.is("select")) { var spanTag = $e.siblings("span"); var divTag = $e.parent("div"); divTag.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass); spanTag.html($e.find(":selected").html()); if ($e.is(":disabled")) { divTag.addClass(options.disabledClass); } else { divTag.removeClass(options.disabledClass); } } else if ($e.is(":checkbox")) {
                    var spanTag = $e.closest("span"); var divTag = $e.closest("div"); divTag.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass); spanTag.removeClass(options.checkedClass); if ($e.is(":checked")) { spanTag.addClass(options.checkedClass); }
                    if ($e.is(":disabled")) { divTag.addClass(options.disabledClass); } else { divTag.removeClass(options.disabledClass); } 
                } else if ($e.is(":radio")) {
                    var spanTag = $e.closest("span"); var divTag = $e.closest("div"); divTag.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass); spanTag.removeClass(options.checkedClass); if ($e.is(":checked")) { spanTag.addClass(options.checkedClass); }
                    if ($e.is(":disabled")) { divTag.addClass(options.disabledClass); } else { divTag.removeClass(options.disabledClass); } 
                } else if ($e.is(":file")) { var divTag = $e.parent("div"); var filenameTag = $e.siblings(options.filenameClass); btnTag = $e.siblings(options.fileBtnClass); divTag.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass); filenameTag.text($e.val()); if ($e.is(":disabled")) { divTag.addClass(options.disabledClass); } else { divTag.removeClass(options.disabledClass); } } else if ($e.is(":submit") || $e.is(":reset") || $e.is("button") || $e.is("a") || elem.is("input[type=button]")) { var divTag = $e.closest("div"); divTag.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass); if ($e.is(":disabled")) { divTag.addClass(options.disabledClass); } else { divTag.removeClass(options.disabledClass); } } 
            });
        }; return this.each(function() { if ($.support.selectOpacity) { var elem = $(this); if (elem.is("select")) { if (elem.attr("multiple") != true) { if (elem.attr("size") == undefined || elem.attr("size") <= 1) { doSelect(elem); } } } else if (elem.is(":checkbox")) { doCheckbox(elem); } else if (elem.is(":radio")) { doRadio(elem); } else if (elem.is(":file")) { doFile(elem); } else if (elem.is(":text, :password, input[type='email']")) { doInput(elem); } else if (elem.is("textarea")) { doTextarea(elem); } else if (elem.is("a") || elem.is(":submit") || elem.is(":reset") || elem.is("button") || elem.is("input[type=button]")) { doButton(elem); } } });
    };
})(jQuery);

