');
+ $('body').append($div);
+ el = $div.get(0);
+
+ // $div.css() will get the style definition, not
+ // the actually displaying style
+ if (wind.getComputedStyle) {
+ c = wind.getComputedStyle(el, '').color;
+ } else {
+ c = (el.currentStyle || el.style || {}).color;
+ }
+
+ $div.remove();
+ return c.replace(/ /g, '') !== rgb;
+ }
+
+
+ /**
+ * Change text into safe HTML
+ *
+ * @param String text
+ * @return String HTML version
+ */
+ function htmlify(text) {
+ if (!text) {
+ return "";
+ }
+
+ return $('
').text(text).html();
+ }
+
+ /**
+ * If not MSIE, return false.
+ * If it is, return the version number.
+ *
+ * @return false|number
+ */
+ function isMsie() {
+ return navigator.cpuClass && !navigator.product;
+ }
+
+ /**
+ * Return true if this version of IE allows styling
+ *
+ * @return boolean
+ */
+ function isMsieSevenOrNewer() {
+ if (wind.XMLHttpRequest !== undefined) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Test if the element is a multiselect
+ *
+ * @param jQuery $el Element
+ * @return boolean true/false
+ */
+ function isMultiselect($el) {
+ var elSize;
+
+ if ($el[0].multiple) {
+ return true;
+ }
+
+ elSize = attrOrProp($el, "size");
+
+ if (!elSize || elSize <= 1) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Meaningless utility function. Used mostly for improving minification.
+ *
+ * @return false
+ */
+ function returnFalse() {
+ return false;
+ }
+
+ /**
+ * noSelect plugin, very slightly modified
+ * http://mths.be/noselect v1.0.3
+ *
+ * @param jQuery $elem Element that we don't want to select
+ * @param Object options Uniform options for the element
+ */
+ function noSelect($elem, options) {
+ var none = 'none';
+ bindMany($elem, options, {
+ 'selectstart dragstart mousedown': returnFalse
+ });
+
+ $elem.css({
+ MozUserSelect: none,
+ msUserSelect: none,
+ webkitUserSelect: none,
+ userSelect: none
+ });
+ }
+
+ /**
+ * Updates the filename tag based on the value of the real input
+ * element.
+ *
+ * @param jQuery $el Actual form element
+ * @param jQuery $filenameTag Span/div to update
+ * @param Object options Uniform options for this element
+ */
+ function setFilename($el, $filenameTag, options) {
+ var filename = $el.val();
+
+ if (filename === "") {
+ filename = options.fileDefaultHtml;
+ } else {
+ filename = filename.split(/[\/\\]+/);
+ filename = filename[(filename.length - 1)];
+ }
+
+ $filenameTag.text(filename);
+ }
+
+
+ /**
+ * Function from jQuery to swap some CSS values, run a callback,
+ * then restore the CSS. Modified to pass JSLint and handle undefined
+ * values with 'use strict'.
+ *
+ * @param jQuery $el Element
+ * @param object newCss CSS values to swap out
+ * @param Function callback Function to run
+ */
+ function swap($elements, newCss, callback) {
+ var restore, item;
+
+ restore = [];
+
+ $elements.each(function () {
+ var name;
+
+ for (name in newCss) {
+ if (Object.prototype.hasOwnProperty.call(newCss, name)) {
+ restore.push({
+ el: this,
+ name: name,
+ old: this.style[name]
+ });
+
+ this.style[name] = newCss[name];
+ }
+ }
+ });
+
+ callback();
+
+ while (restore.length) {
+ item = restore.pop();
+ item.el.style[item.name] = item.old;
+ }
+ }
+
+
+ /**
+ * The browser doesn't provide sizes of elements that are not visible.
+ * This will clone an element and add it to the DOM for calculations.
+ *
+ * @param jQuery $el
+ * @param String method
+ */
+ function sizingInvisible($el, callback) {
+ var targets;
+
+ // We wish to target ourselves and any parents as long as
+ // they are not visible
+ targets = $el.parents();
+ targets.push($el[0]);
+ targets = targets.not(':visible');
+ swap(targets, {
+ visibility: "hidden",
+ display: "block",
+ position: "absolute"
+ }, callback);
+ }
+
+
+ /**
+ * Standard way to unwrap the div/span combination from an element
+ *
+ * @param jQuery $el Element that we wish to preserve
+ * @param Object options Uniform options for the element
+ * @return Function This generated function will perform the given work
+ */
+ function unwrapUnwrapUnbindFunction($el, options) {
+ return function () {
+ $el.unwrap().unwrap().unbind(options.eventNamespace);
+ };
+ }
+
+ var allowStyling = true, // False if IE6 or other unsupported browsers
+ highContrastTest = false, // Was the high contrast test ran?
+ uniformHandlers = [ // Objects that take care of "unification"
+ {
+ // Buttons
+ match: function ($el) {
+ return $el.is("a, button, :submit, :reset, input[type='button']");
+ },
+ apply: function ($el, options) {
+ var $div, defaultSpanHtml, ds, getHtml, doingClickEvent;
+ defaultSpanHtml = options.submitDefaultHtml;
+
+ if ($el.is(":reset")) {
+ defaultSpanHtml = options.resetDefaultHtml;
+ }
+
+ if ($el.is("a, button")) {
+ // Use the HTML inside the tag
+ getHtml = function () {
+ return $el.html() || defaultSpanHtml;
+ };
+ } else {
+ // Use the value property of the element
+ getHtml = function () {
+ return htmlify(attrOrProp($el, "value")) || defaultSpanHtml;
+ };
+ }
+
+ ds = divSpan($el, options, {
+ divClass: options.buttonClass,
+ spanHtml: getHtml()
+ });
+ $div = ds.div;
+ bindUi($el, $div, options);
+ doingClickEvent = false;
+ bindMany($div, options, {
+ "click touchend": function () {
+ var ev, res, target, href;
+
+ if (doingClickEvent) {
+ return;
+ }
+
+ if ($el.is(':disabled')) {
+ return;
+ }
+
+ doingClickEvent = true;
+
+ if ($el[0].dispatchEvent) {
+ ev = document.createEvent("MouseEvents");
+ ev.initEvent("click", true, true);
+ res = $el[0].dispatchEvent(ev);
+
+ if ($el.is('a') && res) {
+ target = attrOrProp($el, 'target');
+ href = attrOrProp($el, 'href');
+
+ if (!target || target === '_self') {
+ document.location.href = href;
+ } else {
+ wind.open(href, target);
+ }
+ }
+ } else {
+ $el.click();
+ }
+
+ doingClickEvent = false;
+ }
+ });
+ noSelect($div, options);
+ return {
+ remove: function () {
+ // Move $el out
+ $div.after($el);
+
+ // Remove div and span
+ $div.remove();
+
+ // Unbind events
+ $el.unbind(options.eventNamespace);
+ return $el;
+ },
+ update: function () {
+ classClearStandard($div, options);
+ classUpdateDisabled($div, $el, options);
+ $el.detach();
+ ds.span.html(getHtml()).append($el);
+ }
+ };
+ }
+ },
+ {
+ // Checkboxes
+ match: function ($el) {
+ return $el.is(":checkbox");
+ },
+ apply: function ($el, options) {
+ var ds, $div, $span;
+ ds = divSpan($el, options, {
+ divClass: options.checkboxClass
+ });
+ $div = ds.div;
+ $span = ds.span;
+
+ // Add focus classes, toggling, active, etc.
+ bindUi($el, $div, options);
+ bindMany($el, options, {
+ "click touchend": function () {
+ classUpdateChecked($span, $el, options);
+ }
+ });
+ classUpdateChecked($span, $el, options);
+ return {
+ remove: unwrapUnwrapUnbindFunction($el, options),
+ update: function () {
+ classClearStandard($div, options);
+ $span.removeClass(options.checkedClass);
+ classUpdateChecked($span, $el, options);
+ classUpdateDisabled($div, $el, options);
+ }
+ };
+ }
+ },
+ {
+ // File selection / uploads
+ match: function ($el) {
+ return $el.is(":file");
+ },
+ apply: function ($el, options) {
+ var ds, $div, $filename, $button;
+
+ // The "span" is the button
+ ds = divSpan($el, options, {
+ divClass: options.fileClass,
+ spanClass: options.fileButtonClass,
+ spanHtml: options.fileButtonHtml,
+ spanWrap: "after"
+ });
+ $div = ds.div;
+ $button = ds.span;
+ $filename = $("
").html(options.fileDefaultHtml);
+ $filename.addClass(options.filenameClass);
+ $filename = divSpanWrap($el, $filename, "after");
+
+ // Set the size
+ if (!attrOrProp($el, "size")) {
+ attrOrProp($el, "size", $div.width() / 10);
+ }
+
+ // Actions
+ function filenameUpdate() {
+ setFilename($el, $filename, options);
+ }
+
+ bindUi($el, $div, options);
+
+ // Account for input saved across refreshes
+ filenameUpdate();
+
+ // IE7 doesn't fire onChange until blur or second fire.
+ if (isMsie()) {
+ // IE considers browser chrome blocking I/O, so it
+ // suspends tiemouts until after the file has
+ // been selected.
+ bindMany($el, options, {
+ click: function () {
+ $el.trigger("change");
+ setTimeout(filenameUpdate, 0);
+ }
+ });
+ } else {
+ // All other browsers behave properly
+ bindMany($el, options, {
+ change: filenameUpdate
+ });
+ }
+
+ noSelect($filename, options);
+ noSelect($button, options);
+ return {
+ remove: function () {
+ // Remove filename and button
+ $filename.remove();
+ $button.remove();
+
+ // Unwrap parent div, remove events
+ return $el.unwrap().unbind(options.eventNamespace);
+ },
+ update: function () {
+ classClearStandard($div, options);
+ setFilename($el, $filename, options);
+ classUpdateDisabled($div, $el, options);
+ }
+ };
+ }
+ },
+ {
+ // Input fields (text)
+ match: function ($el) {
+ if ($el.is("input")) {
+ var t = (" " + attrOrProp($el, "type") + " ").toLowerCase(),
+ allowed = " color date datetime datetime-local email month number password search tel text time url week ";
+ return allowed.indexOf(t) >= 0;
+ }
+
+ return false;
+ },
+ apply: function ($el, options) {
+ var elType, $wrapper;
+
+ elType = attrOrProp($el, "type");
+ $el.addClass(options.inputClass);
+ $wrapper = wrapWithWrapperClass($el, options);
+ bindUi($el, $el, options);
+
+ if (options.inputAddTypeAsClass) {
+ $el.addClass(elType);
+ }
+
+ return {
+ remove: function () {
+ $el.removeClass(options.inputClass);
+
+ if (options.inputAddTypeAsClass) {
+ $el.removeClass(elType);
+ }
+
+ if ($wrapper) {
+ $el.unwrap();
+ }
+ },
+ update: returnFalse
+ };
+ }
+ },
+ {
+ // Radio buttons
+ match: function ($el) {
+ return $el.is(":radio");
+ },
+ apply: function ($el, options) {
+ var ds, $div, $span;
+ ds = divSpan($el, options, {
+ divClass: options.radioClass
+ });
+ $div = ds.div;
+ $span = ds.span;
+
+ // Add classes for focus, handle active, checked
+ bindUi($el, $div, options);
+ bindMany($el, options, {
+ "click touchend": function () {
+ // Find all radios with the same name, then update
+ // them with $.uniform.update() so the right
+ // per-element options are used
+ $.uniform.update($(':radio[name="' + attrOrProp($el, "name") + '"]'));
+ }
+ });
+ classUpdateChecked($span, $el, options);
+ return {
+ remove: unwrapUnwrapUnbindFunction($el, options),
+ update: function () {
+ classClearStandard($div, options);
+ classUpdateChecked($span, $el, options);
+ classUpdateDisabled($div, $el, options);
+ }
+ };
+ }
+ },
+ {
+ // Select lists, but do not style multiselects here
+ match: function ($el) {
+ if ($el.is("select") && !isMultiselect($el)) {
+ return true;
+ }
+
+ return false;
+ },
+ apply: function ($el, options) {
+ var ds, $div, $span, origElemWidth;
+
+ if (options.selectAutoWidth) {
+ sizingInvisible($el, function () {
+ origElemWidth = $el.width();
+ });
+ }
+
+ ds = divSpan($el, options, {
+ divClass: options.selectClass,
+ spanHtml: ($el.find(":selected:first") || $el.find("option:first")).html(),
+ spanWrap: "before"
+ });
+ $div = ds.div;
+ $span = ds.span;
+
+ if (options.selectAutoWidth) {
+ // Use the width of the select and adjust the
+ // span and div accordingly
+ sizingInvisible($el, function () {
+ // Force "display: block" - related to bug #287
+ swap($([ $span[0], $div[0] ]), {
+ display: "block"
+ }, function () {
+ var spanPad;
+ spanPad = $span.outerWidth() - $span.width();
+ $div.width(origElemWidth + spanPad);
+ $span.width(origElemWidth);
+ });
+ });
+ } else {
+ // Force the select to fill the size of the div
+ $div.addClass('fixedWidth');
+ }
+
+ // Take care of events
+ bindUi($el, $div, options);
+ bindMany($el, options, {
+ change: function () {
+ $span.html($el.find(":selected").html());
+ $div.removeClass(options.activeClass);
+ },
+ "click touchend": function () {
+ // IE7 and IE8 may not update the value right
+ // until after click event - issue #238
+ var selHtml = $el.find(":selected").html();
+
+ if ($span.html() !== selHtml) {
+ // Change was detected
+ // Fire the change event on the select tag
+ $el.trigger('change');
+ }
+ },
+ keyup: function () {
+ $span.html($el.find(":selected").html());
+ }
+ });
+ noSelect($span, options);
+ return {
+ remove: function () {
+ // Remove sibling span
+ $span.remove();
+
+ // Unwrap parent div
+ $el.unwrap().unbind(options.eventNamespace);
+ return $el;
+ },
+ update: function () {
+ if (options.selectAutoWidth) {
+ // Easier to remove and reapply formatting
+ $.uniform.restore($el);
+ $el.uniform(options);
+ } else {
+ classClearStandard($div, options);
+
+ // Reset current selected text
+ $span.html($el.find(":selected").html());
+ classUpdateDisabled($div, $el, options);
+ }
+ }
+ };
+ }
+ },
+ {
+ // Select lists - multiselect lists only
+ match: function ($el) {
+ if ($el.is("select") && isMultiselect($el)) {
+ return true;
+ }
+
+ return false;
+ },
+ apply: function ($el, options) {
+ var $wrapper;
+
+ $el.addClass(options.selectMultiClass);
+ $wrapper = wrapWithWrapperClass($el, options);
+ bindUi($el, $el, options);
+
+ return {
+ remove: function () {
+ $el.removeClass(options.selectMultiClass);
+
+ if ($wrapper) {
+ $el.unwrap();
+ }
+ },
+ update: returnFalse
+ };
+ }
+ },
+ {
+ // Textareas
+ match: function ($el) {
+ return $el.is("textarea");
+ },
+ apply: function ($el, options) {
+ var $wrapper;
+
+ $el.addClass(options.textareaClass);
+ $wrapper = wrapWithWrapperClass($el, options);
+ bindUi($el, $el, options);
+
+ return {
+ remove: function () {
+ $el.removeClass(options.textareaClass);
+
+ if ($wrapper) {
+ $el.unwrap();
+ }
+ },
+ update: returnFalse
+ };
+ }
+ }
+ ];
+
+ // IE6 can't be styled - can't set opacity on select
+ if (isMsie() && !isMsieSevenOrNewer()) {
+ allowStyling = false;
+ }
+
+ $.uniform = {
+ // Default options that can be overridden globally or when uniformed
+ // globally: $.uniform.defaults.fileButtonHtml = "Pick A File";
+ // on uniform: $('input').uniform({fileButtonHtml: "Pick a File"});
+ defaults: {
+ activeClass: "active",
+ autoHide: true,
+ buttonClass: "button",
+ checkboxClass: "checker",
+ checkedClass: "checked",
+ disabledClass: "disabled",
+ eventNamespace: ".uniform",
+ fileButtonClass: "action",
+ fileButtonHtml: "Choose File",
+ fileClass: "uploader",
+ fileDefaultHtml: "No file selected",
+ filenameClass: "filename",
+ focusClass: "focus",
+ hoverClass: "hover",
+ idPrefix: "uniform",
+ inputAddTypeAsClass: true,
+ inputClass: "uniform-input",
+ radioClass: "radio",
+ resetDefaultHtml: "Reset",
+ resetSelector: false, // We'll use our own function when you don't specify one
+ selectAutoWidth: true,
+ selectClass: "selector",
+ selectMultiClass: "uniform-multiselect",
+ submitDefaultHtml: "Submit", // Only text allowed
+ textareaClass: "uniform",
+ useID: true,
+ wrapperClass: null
+ },
+
+ // All uniformed elements - DOM objects
+ elements: []
+ };
+
+ $.fn.uniform = function (options) {
+ var el = this;
+ options = $.extend({}, $.uniform.defaults, options);
+
+ // If we are in high contrast mode, do not allow styling
+ if (!highContrastTest) {
+ highContrastTest = true;
+
+ if (highContrast()) {
+ allowStyling = false;
+ }
+ }
+
+ // Only uniform on browsers that work
+ if (!allowStyling) {
+ return this;
+ }
+
+ // Code for specifying a reset button
+ if (options.resetSelector) {
+ $(options.resetSelector).mouseup(function () {
+ wind.setTimeout(function () {
+ $.uniform.update(el);
+ }, 10);
+ });
+ }
+
+ return this.each(function () {
+ var $el = $(this), i, handler, callbacks;
+
+ // Avoid uniforming elements already uniformed - just update
+ if ($el.data("uniformed")) {
+ $.uniform.update($el);
+ return;
+ }
+
+ // See if we have any handler for this type of element
+ for (i = 0; i < uniformHandlers.length; i = i + 1) {
+ handler = uniformHandlers[i];
+
+ if (handler.match($el, options)) {
+ callbacks = handler.apply($el, options);
+ $el.data("uniformed", callbacks);
+
+ // Store element in our global array
+ $.uniform.elements.push($el.get(0));
+ return;
+ }
+ }
+
+ // Could not style this element
+ });
+ };
+
+ $.uniform.restore = $.fn.uniform.restore = function (elem) {
+ if (elem === undef) {
+ elem = $.uniform.elements;
+ }
+
+ $(elem).each(function () {
+ var $el = $(this), index, elementData;
+ elementData = $el.data("uniformed");
+
+ // Skip elements that are not uniformed
+ if (!elementData) {
+ return;
+ }
+
+ // Unbind events, remove additional markup that was added
+ elementData.remove();
+
+ // Remove item from list of uniformed elements
+ index = $.inArray(this, $.uniform.elements);
+
+ if (index >= 0) {
+ $.uniform.elements.splice(index, 1);
+ }
+
+ $el.removeData("uniformed");
+ });
+ };
+
+ $.uniform.update = $.fn.uniform.update = function (elem) {
+ if (elem === undef) {
+ elem = $.uniform.elements;
+ }
+
+ $(elem).each(function () {
+ var $el = $(this), elementData;
+ elementData = $el.data("uniformed");
+
+ // Skip elements that are not uniformed
+ if (!elementData) {
+ return;
+ }
+
+ elementData.update($el, elementData.options);
+ });
+ };
+}(this, jQuery));
diff --git a/ajax/libs/Uniform.js/2.1.2/jquery.uniform.min.js b/ajax/libs/Uniform.js/2.1.2/jquery.uniform.min.js
new file mode 100644
index 000000000..2b38fcbb6
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/jquery.uniform.min.js
@@ -0,0 +1 @@
+!function(e,t,n){"use strict";function s(e){var t=Array.prototype.slice.call(arguments,1);return e.prop?e.prop.apply(e,t):e.attr.apply(e,t)}function a(e,t,n){var s,a;for(s in n)n.hasOwnProperty(s)&&(a=s.replace(/ |$/g,t.eventNamespace),e.bind(a,n[s]))}function r(e,t,n){a(e,n,{focus:function(){t.addClass(n.focusClass)},blur:function(){t.removeClass(n.focusClass),t.removeClass(n.activeClass)},mouseenter:function(){t.addClass(n.hoverClass)},mouseleave:function(){t.removeClass(n.hoverClass),t.removeClass(n.activeClass)},"mousedown touchbegin":function(){e.is(":disabled")||t.addClass(n.activeClass)},"mouseup touchend":function(){t.removeClass(n.activeClass)}})}function i(e,t){e.removeClass(t.hoverClass+" "+t.focusClass+" "+t.activeClass)}function l(e,t,n){n?e.addClass(t):e.removeClass(t)}function u(e,t,n){var s="checked",a=t.is(":"+s);t.prop?t.prop(s,a):a?t.attr(s,s):t.removeAttr(s),l(e,n.checkedClass,a)}function o(e,t,n){l(e,n.disabledClass,t.is(":disabled"))}function c(e,t,n){switch(n){case"after":return e.after(t),e.next();case"before":return e.before(t),e.prev();case"wrap":return e.wrap(t),e.parent()}return null}function d(e,n,a){var r,i,l;return a||(a={}),a=t.extend({bind:{},divClass:null,divWrap:"wrap",spanClass:null,spanHtml:null,spanWrap:"wrap"},a),r=t("
"),i=t("
"),n.autoHide&&e.is(":hidden")&&"none"===e.css("display")&&r.hide(),a.divClass&&r.addClass(a.divClass),n.wrapperClass&&r.addClass(n.wrapperClass),a.spanClass&&i.addClass(a.spanClass),l=s(e,"id"),n.useID&&l&&s(r,"id",n.idPrefix+"-"+l),a.spanHtml&&i.html(a.spanHtml),r=c(e,r,a.divWrap),i=c(e,i,a.spanWrap),o(r,e,n),{div:r,span:i}}function f(e,n){var s;return n.wrapperClass?(s=t("
").addClass(n.wrapperClass),s=c(e,s,"wrap")):null}function p(){var n,s,a,r;return r="rgb(120,2,153)",s=t('
'),t("body").append(s),a=s.get(0),n=e.getComputedStyle?e.getComputedStyle(a,"").color:(a.currentStyle||a.style||{}).color,s.remove(),n.replace(/ /g,"")!==r}function m(e){return e?t("").text(e).html():""}function v(){return navigator.cpuClass&&!navigator.product}function h(){return void 0!==e.XMLHttpRequest?!0:!1}function C(e){var t;return e[0].multiple?!0:(t=s(e,"size"),!t||1>=t?!1:!0)}function b(){return!1}function y(e,t){var n="none";a(e,t,{"selectstart dragstart mousedown":b}),e.css({MozUserSelect:n,msUserSelect:n,webkitUserSelect:n,userSelect:n})}function w(e,t,n){var s=e.val();""===s?s=n.fileDefaultHtml:(s=s.split(/[\/\\]+/),s=s[s.length-1]),t.text(s)}function g(e,t,n){var s,a;for(s=[],e.each(function(){var e;for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(s.push({el:this,name:e,old:this.style[e]}),this.style[e]=t[e])}),n();s.length;)a=s.pop(),a.el.style[a.name]=a.old}function k(e,t){var n;n=e.parents(),n.push(e[0]),n=n.not(":visible"),g(n,{visibility:"hidden",display:"block",position:"absolute"},t)}function H(e,t){return function(){e.unwrap().unwrap().unbind(t.eventNamespace)}}var x=!0,A=!1,W=[{match:function(e){return e.is("a, button, :submit, :reset, input[type='button']")},apply:function(t,n){var l,u,c,f,p;return u=n.submitDefaultHtml,t.is(":reset")&&(u=n.resetDefaultHtml),f=t.is("a, button")?function(){return t.html()||u}:function(){return m(s(t,"value"))||u},c=d(t,n,{divClass:n.buttonClass,spanHtml:f()}),l=c.div,r(t,l,n),p=!1,a(l,n,{"click touchend":function(){var n,a,r,i;p||t.is(":disabled")||(p=!0,t[0].dispatchEvent?(n=document.createEvent("MouseEvents"),n.initEvent("click",!0,!0),a=t[0].dispatchEvent(n),t.is("a")&&a&&(r=s(t,"target"),i=s(t,"href"),r&&"_self"!==r?e.open(i,r):document.location.href=i)):t.click(),p=!1)}}),y(l,n),{remove:function(){return l.after(t),l.remove(),t.unbind(n.eventNamespace),t},update:function(){i(l,n),o(l,t,n),t.detach(),c.span.html(f()).append(t)}}}},{match:function(e){return e.is(":checkbox")},apply:function(e,t){var n,s,l;return n=d(e,t,{divClass:t.checkboxClass}),s=n.div,l=n.span,r(e,s,t),a(e,t,{"click touchend":function(){u(l,e,t)}}),u(l,e,t),{remove:H(e,t),update:function(){i(s,t),l.removeClass(t.checkedClass),u(l,e,t),o(s,e,t)}}}},{match:function(e){return e.is(":file")},apply:function(e,n){function l(){w(e,p,n)}var u,f,p,m;return u=d(e,n,{divClass:n.fileClass,spanClass:n.fileButtonClass,spanHtml:n.fileButtonHtml,spanWrap:"after"}),f=u.div,m=u.span,p=t("").html(n.fileDefaultHtml),p.addClass(n.filenameClass),p=c(e,p,"after"),s(e,"size")||s(e,"size",f.width()/10),r(e,f,n),l(),v()?a(e,n,{click:function(){e.trigger("change"),setTimeout(l,0)}}):a(e,n,{change:l}),y(p,n),y(m,n),{remove:function(){return p.remove(),m.remove(),e.unwrap().unbind(n.eventNamespace)},update:function(){i(f,n),w(e,p,n),o(f,e,n)}}}},{match:function(e){if(e.is("input")){var t=(" "+s(e,"type")+" ").toLowerCase(),n=" color date datetime datetime-local email month number password search tel text time url week ";return n.indexOf(t)>=0}return!1},apply:function(e,t){var n,a;return n=s(e,"type"),e.addClass(t.inputClass),a=f(e,t),r(e,e,t),t.inputAddTypeAsClass&&e.addClass(n),{remove:function(){e.removeClass(t.inputClass),t.inputAddTypeAsClass&&e.removeClass(n),a&&e.unwrap()},update:b}}},{match:function(e){return e.is(":radio")},apply:function(e,n){var l,c,f;return l=d(e,n,{divClass:n.radioClass}),c=l.div,f=l.span,r(e,c,n),a(e,n,{"click touchend":function(){t.uniform.update(t(':radio[name="'+s(e,"name")+'"]'))}}),u(f,e,n),{remove:H(e,n),update:function(){i(c,n),u(f,e,n),o(c,e,n)}}}},{match:function(e){return e.is("select")&&!C(e)?!0:!1},apply:function(e,n){var s,l,u,c;return n.selectAutoWidth&&k(e,function(){c=e.width()}),s=d(e,n,{divClass:n.selectClass,spanHtml:(e.find(":selected:first")||e.find("option:first")).html(),spanWrap:"before"}),l=s.div,u=s.span,n.selectAutoWidth?k(e,function(){g(t([u[0],l[0]]),{display:"block"},function(){var e;e=u.outerWidth()-u.width(),l.width(c+e),u.width(c)})}):l.addClass("fixedWidth"),r(e,l,n),a(e,n,{change:function(){u.html(e.find(":selected").html()),l.removeClass(n.activeClass)},"click touchend":function(){var t=e.find(":selected").html();u.html()!==t&&e.trigger("change")},keyup:function(){u.html(e.find(":selected").html())}}),y(u,n),{remove:function(){return u.remove(),e.unwrap().unbind(n.eventNamespace),e},update:function(){n.selectAutoWidth?(t.uniform.restore(e),e.uniform(n)):(i(l,n),u.html(e.find(":selected").html()),o(l,e,n))}}}},{match:function(e){return e.is("select")&&C(e)?!0:!1},apply:function(e,t){var n;return e.addClass(t.selectMultiClass),n=f(e,t),r(e,e,t),{remove:function(){e.removeClass(t.selectMultiClass),n&&e.unwrap()},update:b}}},{match:function(e){return e.is("textarea")},apply:function(e,t){var n;return e.addClass(t.textareaClass),n=f(e,t),r(e,e,t),{remove:function(){e.removeClass(t.textareaClass),n&&e.unwrap()},update:b}}}];v()&&!h()&&(x=!1),t.uniform={defaults:{activeClass:"active",autoHide:!0,buttonClass:"button",checkboxClass:"checker",checkedClass:"checked",disabledClass:"disabled",eventNamespace:".uniform",fileButtonClass:"action",fileButtonHtml:"Choose File",fileClass:"uploader",fileDefaultHtml:"No file selected",filenameClass:"filename",focusClass:"focus",hoverClass:"hover",idPrefix:"uniform",inputAddTypeAsClass:!0,inputClass:"uniform-input",radioClass:"radio",resetDefaultHtml:"Reset",resetSelector:!1,selectAutoWidth:!0,selectClass:"selector",selectMultiClass:"uniform-multiselect",submitDefaultHtml:"Submit",textareaClass:"uniform",useID:!0,wrapperClass:null},elements:[]},t.fn.uniform=function(n){var s=this;return n=t.extend({},t.uniform.defaults,n),A||(A=!0,p()&&(x=!1)),x?(n.resetSelector&&t(n.resetSelector).mouseup(function(){e.setTimeout(function(){t.uniform.update(s)},10)}),this.each(function(){var e,s,a,r=t(this);if(r.data("uniformed"))return t.uniform.update(r),void 0;for(e=0;e=0&&t.uniform.elements.splice(e,1),s.removeData("uniformed"))})},t.uniform.update=t.fn.uniform.update=function(e){e===n&&(e=t.uniform.elements),t(e).each(function(){var e,n=t(this);e=n.data("uniformed"),e&&e.update(n,e.options)})}}(this,jQuery);
\ No newline at end of file
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.css b/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.css
new file mode 100644
index 000000000..f5d2bd608
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.css
@@ -0,0 +1,278 @@
+/* General settings */
+div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
+ background-image: url("../images/sprite.png");
+ background-repeat: no-repeat;
+ -webkit-font-smoothing: antialiased; }
+div.selector, div.checker, div.button, div.radio, div.uploader {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ vertical-align: middle;
+ /* Keeping this as :focus to remove browser styles */ }
+ div.selector:focus, div.checker:focus, div.button:focus, div.radio:focus, div.uploader:focus {
+ outline: 0; }
+div.selector, div.selector *, div.radio, div.radio *, div.checker, div.checker *, div.uploader, div.uploader *, div.button, div.button * {
+ margin: 0;
+ padding: 0; }
+
+.highContrastDetect {
+ background: url("../images/bg-input.png") repeat-x 0 0;
+ width: 0px;
+ height: 0px; }
+
+/* Input & Textarea */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ padding: 3px;
+ background: url("../images/bg-input.png") repeat-x 0 0;
+ outline: 0; }
+ input.uniform-input.active,
+ select.uniform-multiselect.active,
+ textarea.uniform.active {
+ background: url("../images/bg-input-focus.png") repeat-x 0 0; }
+
+/* Remove default webkit and possible mozilla .search styles.
+ * Keeping this as :active to remove browser styles */
+div.checker input,
+input[type="search"],
+input[type="search"]:active {
+ -moz-appearance: none;
+ -webkit-appearance: none; }
+
+/* Select */
+div.selector {
+ background-position: 0 -130px;
+ line-height: 26px;
+ height: 26px;
+ padding: 0 0 0 10px;
+ position: relative;
+ overflow: hidden; }
+ div.selector span {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ background-position: right 0;
+ height: 26px;
+ line-height: 26px;
+ padding-right: 25px;
+ cursor: pointer;
+ width: 100%;
+ display: block; }
+ div.selector.fixedWidth {
+ width: 190px; }
+ div.selector.fixedWidth span {
+ width: 155px; }
+ div.selector select {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ height: 22px;
+ top: 2px;
+ left: 0px;
+ width: 100%; }
+ div.selector.active {
+ background-position: 0 -156px; }
+ div.selector.active span {
+ background-position: right -26px; }
+ div.selector.hover, div.selector.focus {
+ background-position: 0 -182px; }
+ div.selector.hover span, div.selector.focus span {
+ background-position: right -52px; }
+ div.selector.hover.active, div.selector.focus.active {
+ background-position: 0 -208px; }
+ div.selector.hover.active span, div.selector.focus.active span {
+ background-position: right -78px; }
+ div.selector.disabled, div.selector.disabled.active {
+ background-position: 0 -234px; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ background-position: right -104px; }
+
+/* Checkbox */
+div.checker {
+ position: relative; }
+ div.checker, div.checker span, div.checker input {
+ width: 19px;
+ height: 19px; }
+ div.checker span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -260px; }
+ div.checker span.checked {
+ background-position: -76px -260px; }
+ div.checker input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1; }
+ div.checker.active span {
+ background-position: -19px -260px; }
+ div.checker.active span.checked {
+ background-position: -95px -260px; }
+ div.checker.hover span, div.checker.focus span {
+ background-position: -38px -260px; }
+ div.checker.hover span.checked, div.checker.focus span.checked {
+ background-position: -114px -260px; }
+ div.checker.hover.active span, div.checker.focus.active span {
+ background-position: -57px -260px; }
+ div.checker.hover.active span.checked, div.checker.focus.active span.checked {
+ background-position: -133px -260px; }
+ div.checker.disabled, div.checker.disabled.active {
+ background-position: -152px -260px; }
+ div.checker.disabled span.checked, div.checker.disabled.active span.checked {
+ background-position: -171px -260px; }
+
+/* Radio */
+div.radio {
+ position: relative; }
+ div.radio, div.radio span, div.radio input {
+ width: 18px;
+ height: 18px; }
+ div.radio span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -279px; }
+ div.radio span.checked {
+ background-position: -72px -279px; }
+ div.radio input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center; }
+ div.radio.active span {
+ background-position: -18px -18px -279px; }
+ div.radio.active span.checked {
+ background-position: -90px -279px; }
+ div.radio.hover span, div.radio.focus span {
+ background-position: -36px -36px -279px; }
+ div.radio.hover span.checked, div.radio.focus span.checked {
+ background-position: -108px -279px; }
+ div.radio.hover.active span, div.radio.focus.active span {
+ background-position: -54px -279px; }
+ div.radio.hover.active span.checked, div.radio.focus.active span.checked {
+ background-position: -126px -279px; }
+ div.radio.disabled span, div.radio.disabled.active span {
+ background-position: -144px -279px; }
+ div.radio.disabled span.checked, div.radio.disabled.active span.checked {
+ background-position: -162px -279px; }
+
+/* Uploader */
+div.uploader {
+ background-position: 0 -297px;
+ height: 28px;
+ width: 190px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden; }
+ div.uploader span.action {
+ background-position: right -409px;
+ height: 28px;
+ line-height: 28px;
+ width: 85px;
+ text-align: center;
+ float: left;
+ display: inline;
+ overflow: hidden;
+ cursor: pointer; }
+ div.uploader span.filename {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ float: left;
+ cursor: default;
+ height: 24px;
+ margin: 2px 0 2px 2px;
+ line-height: 24px;
+ width: 82px;
+ padding: 0 10px; }
+ div.uploader input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ float: right;
+ cursor: default;
+ width: 100%;
+ height: 100%; }
+ div.uploader.active span.action {
+ background-position: right -465px; }
+ div.uploader.hover, div.uploader.focus {
+ background-position: 0 -353px; }
+ div.uploader.hover span.action, div.uploader.focus span.action {
+ background-position: right -437px; }
+ div.uploader.hover.active span.action, div.uploader.focus.active span.action {
+ background-position: right -493px; }
+ div.uploader.disabled, div.uploader.disabled.active {
+ background-position: 0 -325px; }
+ div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ background-position: right -381px; }
+
+/* Buttons */
+div.button {
+ background-position: 0 -641px;
+ height: 30px;
+ cursor: pointer;
+ position: relative;
+ /* Keep buttons barely visible so they can get focus */ }
+ div.button a, div.button button, div.button input {
+ opacity: 0.01;
+ filter: alpha(opacity=1);
+ -moz-opacity: 0.01;
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute; }
+ div.button span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ line-height: 30px;
+ text-align: center;
+ background-position: right -521px;
+ height: 30px;
+ margin-left: 13px;
+ padding: 0; }
+ div.button.active {
+ background-position: 0 -671px; }
+ div.button.active span {
+ background-position: right -551px;
+ cursor: default; }
+ div.button.hover, div.button.focus {
+ background-position: 0 -701px; }
+ div.button.hover span, div.button.focus span {
+ background-position: right -581px; }
+ div.button.disabled, div.button.disabled.active {
+ background-position: 0 -731px; }
+ div.button.disabled span, div.button.disabled.active span {
+ background-position: right -611px;
+ cursor: default; }
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.min.css b/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.min.css
new file mode 100644
index 000000000..d1113b14d
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.min.css
@@ -0,0 +1 @@
+div.selector,div.selector span,div.checker span,div.radio span,div.uploader,div.uploader span.action,div.button,div.button span{background-image:url("../images/sprite.png");background-repeat:no-repeat;-webkit-font-smoothing:antialiased}div.selector,div.checker,div.button,div.radio,div.uploader{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;vertical-align:middle}div.selector:focus,div.checker:focus,div.button:focus,div.radio:focus,div.uploader:focus{outline:0}div.selector,div.selector *,div.radio,div.radio *,div.checker,div.checker *,div.uploader,div.uploader *,div.button,div.button *{margin:0;padding:0}.highContrastDetect{background:url("../images/bg-input.png") repeat-x 0 0;width:0px;height:0px}input.uniform-input,select.uniform-multiselect,textarea.uniform{padding:3px;background:url("../images/bg-input.png") repeat-x 0 0;outline:0}input.uniform-input.active,select.uniform-multiselect.active,textarea.uniform.active{background:url("../images/bg-input-focus.png") repeat-x 0 0}div.checker input,input[type="search"],input[type="search"]:active{-moz-appearance:none;-webkit-appearance:none}div.selector{background-position:0 -130px;line-height:26px;height:26px;padding:0 0 0 10px;position:relative;overflow:hidden}div.selector span{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;background-position:right 0;height:26px;line-height:26px;padding-right:25px;cursor:pointer;width:100%;display:block}div.selector.fixedWidth{width:190px}div.selector.fixedWidth span{width:155px}div.selector select{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;height:22px;top:2px;left:0px;width:100%}div.selector.active{background-position:0 -156px}div.selector.active span{background-position:right -26px}div.selector.hover,div.selector.focus{background-position:0 -182px}div.selector.hover span,div.selector.focus span{background-position:right -52px}div.selector.hover.active,div.selector.focus.active{background-position:0 -208px}div.selector.hover.active span,div.selector.focus.active span{background-position:right -78px}div.selector.disabled,div.selector.disabled.active{background-position:0 -234px}div.selector.disabled span,div.selector.disabled.active span{background-position:right -104px}div.checker{position:relative}div.checker,div.checker span,div.checker input{width:19px;height:19px}div.checker span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -260px}div.checker span.checked{background-position:-76px -260px}div.checker input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1}div.checker.active span{background-position:-19px -260px}div.checker.active span.checked{background-position:-95px -260px}div.checker.hover span,div.checker.focus span{background-position:-38px -260px}div.checker.hover span.checked,div.checker.focus span.checked{background-position:-114px -260px}div.checker.hover.active span,div.checker.focus.active span{background-position:-57px -260px}div.checker.hover.active span.checked,div.checker.focus.active span.checked{background-position:-133px -260px}div.checker.disabled,div.checker.disabled.active{background-position:-152px -260px}div.checker.disabled span.checked,div.checker.disabled.active span.checked{background-position:-171px -260px}div.radio{position:relative}div.radio,div.radio span,div.radio input{width:18px;height:18px}div.radio span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -279px}div.radio span.checked{background-position:-72px -279px}div.radio input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center}div.radio.active span{background-position:-18px -18px -279px}div.radio.active span.checked{background-position:-90px -279px}div.radio.hover span,div.radio.focus span{background-position:-36px -36px -279px}div.radio.hover span.checked,div.radio.focus span.checked{background-position:-108px -279px}div.radio.hover.active span,div.radio.focus.active span{background-position:-54px -279px}div.radio.hover.active span.checked,div.radio.focus.active span.checked{background-position:-126px -279px}div.radio.disabled span,div.radio.disabled.active span{background-position:-144px -279px}div.radio.disabled span.checked,div.radio.disabled.active span.checked{background-position:-162px -279px}div.uploader{background-position:0 -297px;height:28px;width:190px;cursor:pointer;position:relative;overflow:hidden}div.uploader span.action{background-position:right -409px;height:28px;line-height:28px;width:85px;text-align:center;float:left;display:inline;overflow:hidden;cursor:pointer}div.uploader span.filename{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;float:left;cursor:default;height:24px;margin:2px 0 2px 2px;line-height:24px;width:82px;padding:0 10px}div.uploader input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;top:0;right:0;float:right;cursor:default;width:100%;height:100%}div.uploader.active span.action{background-position:right -465px}div.uploader.hover,div.uploader.focus{background-position:0 -353px}div.uploader.hover span.action,div.uploader.focus span.action{background-position:right -437px}div.uploader.hover.active span.action,div.uploader.focus.active span.action{background-position:right -493px}div.uploader.disabled,div.uploader.disabled.active{background-position:0 -325px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{background-position:right -381px}div.button{background-position:0 -641px;height:30px;cursor:pointer;position:relative}div.button a,div.button button,div.button input{opacity:0.01;filter:alpha(opacity=1);-moz-opacity:0.01;display:block;top:0;left:0;right:0;bottom:0;position:absolute}div.button span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;line-height:30px;text-align:center;background-position:right -521px;height:30px;margin-left:13px;padding:0}div.button.active{background-position:0 -671px}div.button.active span{background-position:right -551px;cursor:default}div.button.hover,div.button.focus{background-position:0 -701px}div.button.hover span,div.button.focus span{background-position:right -581px}div.button.disabled,div.button.disabled.active{background-position:0 -731px}div.button.disabled span,div.button.disabled.active span{background-position:right -611px;cursor:default}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.scss b/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.scss
new file mode 100644
index 000000000..85285d744
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/_base/css/uniform._base.scss
@@ -0,0 +1,567 @@
+@mixin opacity($opacity) {
+ opacity: $opacity;
+ filter: unquote("alpha(opacity=#{round($opacity * 100)})");
+ -moz-opacity: $opacity;
+}
+
+@mixin hideYetClickable() {
+ @include opacity(0);
+ border: none;
+ background: none;
+}
+
+@mixin inline-block() {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+}
+
+@mixin ellipsis() {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+@mixin border-radius($radius) {
+ -webkit-border-radius: $radius;
+ -moz-border-radius: $radius;
+ border-radius: $radius;
+}
+
+@mixin box-shadow($def) {
+ -webkit-box-shadow: $def;
+ -moz-box-shadow: $def;
+ box-shadow: $def;
+}
+
+@mixin retina() {
+ @media only screen {
+ @media (min-resolution: 124dpi), (-webkit-min-device-pixel-ratio: 1.3), (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 4/3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) {
+ @include use-backgrounds(url($sprite-retina), $sprite-size, url($input-background-retina), url($input-background-focus-retina), $input-background-size);
+ }
+ }
+}
+
+@mixin use-backgrounds($sprite, $sprite-size, $input, $input-focus, $input-size) {
+ div#{$class-wrapper} {
+ {$class-select},
+ {$class-select} span,
+ {$class-checkbox} span,
+ {$class-radio} span,
+ {$class-upload},
+ {$class-upload} span#{$class-action},
+ {$class-button},
+ {$class-button} span {
+ background-image: $sprite;
+
+ @if $sprite-size > 0 {
+ background-size: $sprite-size;
+ }
+ }
+ }
+
+ #{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+ #{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+ #{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ background-image: $input;
+
+ @if $sprite-size > 0 {
+ background-size: $input-size;
+ }
+
+ @include whenActive {
+ background-image: $input-focus;
+ }
+ }
+}
+
+@mixin whenActive {
+ {$class-active} {
+ @content
+ }
+}
+
+@mixin whenHover {
+ {$class-hover}, {$class-focus} {
+ @content
+ }
+}
+
+@mixin whenDisabled {
+ {$class-disabled}, {$class-disabled}#{$class-active} {
+ @content
+ }
+}
+
+@mixin whenChecked {
+ {$class-checked} {
+ @content
+ }
+}
+
+
+$sprite: "../images/sprite.png" !default;
+$sprite-retina: "../images/sprite-retina.png" !default;
+$sprite-size: 493px !default;
+$button-height: 30px !default;
+$button-margin-left: 13px !default;
+$button-padding: 0 !default;
+$button-span-height: $button-height !default;
+$checkbox-height: 19px !default;
+$checkbox-width: 19px !default;
+$input-padding: 3px !default;
+$input-background: "../images/bg-input.png" !default;
+$input-background-retina: "../images/bg-input-retina.png" !default;
+$input-background-focus: "../images/bg-input-focus.png" !default;
+$input-background-focus-retina: "../images/bg-input-focus-retina.png" !default;
+$input-background-size: 1px !default;
+$radio-height: 18px !default;
+$radio-width: 18px !default;
+$select-fixed-width: 190px !default;
+$select-height: 26px !default;
+$select-margin-left: 10px !default;
+$select-margin-right: 25px !default;
+$select-select-height: 22px !default;
+$select-select-top: 2px !default;
+$upload-action-width: 85px !default;
+$upload-filename-margin-top: 2px !default;
+$upload-filename-margin-bottom: 2px !default;
+$upload-filename-margin-left: 2px !default;
+$upload-filename-width: 82px !default;
+$upload-filename-padding: 0 10px !default;
+$upload-height: 28px !default;
+$upload-width: 190px !default;
+
+$checkbox-voffset: (-10 * $select-height);
+$radio-voffset: ($checkbox-voffset - $checkbox-height);
+$upload-voffset: ($radio-voffset - $radio-height);
+$button-voffset: ($upload-voffset - (8 * $upload-height));
+
+$class-action: ".action" !default;
+$class-active: ".active" !default;
+$class-button: ".button" !default;
+$class-checkbox: ".checker" !default;
+$class-checked: ".checked" !default;
+$class-disabled: ".disabled" !default;
+$class-input: ".uniform-input" !default;
+$class-filename: ".filename" !default;
+$class-focus: ".focus" !default;
+$class-hover: ".hover" !default;
+$class-multiselect: ".uniform-multiselect" !default;
+$class-radio: ".radio" !default;
+$class-select: ".selector" !default;
+$class-upload: ".uploader" !default;
+$class-textarea: ".uniform" !default;
+$class-wrapper: "" !default;
+
+$class-wrapper-element: "";
+@if $class-wrapper != "" {
+ $class-wrapper-element: "span"
+}
+
+/* General settings */
+
+div#{$class-wrapper} {
+ {$class-select},
+ {$class-select} span,
+ {$class-checkbox} span,
+ {$class-radio} span,
+ {$class-upload},
+ {$class-upload} span#{$class-action},
+ {$class-button},
+ {$class-button} span {
+ background-image: url($sprite);
+ background-repeat: no-repeat;
+ -webkit-font-smoothing: antialiased;
+ }
+
+ {$class-select},
+ {$class-checkbox},
+ {$class-button},
+ {$class-radio},
+ {$class-upload} {
+ @include inline-block();
+ vertical-align: middle;
+
+ /* Keeping this as :focus to remove browser styles */
+ &:focus {
+ outline: 0;
+ }
+ }
+
+ {$class-select},
+ {$class-radio},
+ {$class-checkbox},
+ {$class-upload},
+ {$class-button} {
+ &, & * {
+ margin: 0;
+ padding: 0;
+ }
+ }
+}
+
+.highContrastDetect {
+ background: url($input-background) repeat-x 0 0;
+ width: 0px;
+ height: 0px;
+}
+
+/* Input & Textarea */
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+#{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+#{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ padding: $input-padding;
+ background: url($input-background) repeat-x 0 0;
+ outline: 0;
+
+ @include whenActive {
+ background: url($input-background-focus) repeat-x 0 0;
+ }
+}
+
+/* Remove default webkit and possible mozilla .search styles.
+ * Keeping this as :active to remove browser styles */
+div#{$class-wrapper}#{$class-checkbox} input,
+input[type="search"],
+input[type="search"]:active {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+}
+
+/* Select */
+
+div#{$class-wrapper}#{$class-select} {
+ background-position: 0 (-5 * $select-height);
+ line-height: $select-height;
+ height: $select-height;
+ padding: 0 0 0 $select-margin-left;
+ position: relative;
+ overflow: hidden;
+
+ span {
+ @include ellipsis();
+ background-position: right 0;
+ height: $select-height;
+ line-height: $select-height;
+ padding-right: $select-margin-right;
+ cursor: pointer;
+ width: 100%;
+ display: block;
+ }
+
+ &.fixedWidth{
+ width: $select-fixed-width;
+
+ span {
+ width: ($select-fixed-width - $select-margin-left - $select-margin-right);
+ }
+ }
+
+ select {
+ @include hideYetClickable();
+ position: absolute;
+ height: $select-select-height;
+ top: $select-select-top;
+ left: 0px;
+ width: 100%;
+ }
+
+ @include whenActive {
+ background-position: 0 (-6 * $select-height);
+
+ span {
+ background-position: right (-1 * $select-height);
+ }
+ }
+
+ @include whenHover {
+ background-position: 0 (-7 * $select-height);
+
+ span {
+ background-position: right (-2 * $select-height);
+ }
+
+ @include whenActive {
+ background-position: 0 (-8 * $select-height);
+
+ span {
+ background-position: right (-3 * $select-height);
+ }
+ }
+ }
+
+ @include whenDisabled {
+ background-position: 0 (-9 * $select-height);
+
+ span {
+ background-position: right (-4 * $select-height);
+ }
+ }
+}
+
+
+/* Checkbox */
+
+div#{$class-wrapper}#{$class-checkbox} {
+ position: relative;
+
+ &, span, input {
+ width: $checkbox-width;
+ height: $checkbox-height;
+ }
+
+ span {
+ @include inline-block();
+ text-align: center;
+ background-position: 0 $checkbox-voffset;
+
+ @include whenChecked {
+ background-position: (-4 * $checkbox-width) $checkbox-voffset;
+ }
+ }
+
+ input {
+ @include hideYetClickable();
+ @include inline-block();
+ }
+
+ @include whenActive {
+ span {
+ background-position: (-1 * $checkbox-width) $checkbox-voffset;
+
+ @include whenChecked {
+ background-position: (-5 * $checkbox-width) $checkbox-voffset;
+ }
+ }
+ }
+
+ @include whenHover {
+ span {
+ background-position: (-2 * $checkbox-width) $checkbox-voffset;
+
+ @include whenChecked {
+ background-position: (-6 * $checkbox-width) $checkbox-voffset;
+ }
+ }
+
+ @include whenActive {
+ span {
+ background-position: (-3 * $checkbox-width) $checkbox-voffset;
+
+ @include whenChecked {
+ background-position: (-7 * $checkbox-width) $checkbox-voffset;
+ }
+ }
+ }
+ }
+
+ @include whenDisabled {
+ background-position: (-8 * $checkbox-width) $checkbox-voffset;
+
+ span {
+ @include whenChecked {
+ background-position: (-9 * $checkbox-width) $checkbox-voffset;
+ }
+ }
+ }
+}
+
+/* Radio */
+
+div#{$class-wrapper}#{$class-radio} {
+ position: relative;
+
+ &, span, input {
+ width: $radio-width;
+ height: $radio-height;
+ }
+
+ span {
+ @include inline-block();
+ text-align: center;
+ background-position: 0 $radio-voffset;
+
+ @include whenChecked {
+ background-position: (-4 * $radio-width) $radio-voffset;
+ }
+ }
+
+ input {
+ @include hideYetClickable();
+ @include inline-block();
+ text-align: center;
+ }
+
+ @include whenActive {
+ span {
+ background-position: (-1 * $radio-width) $radio-voffset;
+
+ @include whenChecked {
+ background-position: (-5 * $radio-width) $radio-voffset;
+ }
+ }
+ }
+
+ @include whenHover {
+ span {
+ background-position: (-2 * $radio-width) $radio-voffset;
+
+ @include whenChecked {
+ background-position: (-6 * $radio-width) $radio-voffset;
+ }
+ }
+
+ @include whenActive {
+ span {
+ background-position: (-3 * $radio-width) $radio-voffset;
+
+ @include whenChecked {
+ background-position: (-7 * $radio-width) $radio-voffset;
+ }
+ }
+ }
+ }
+
+ @include whenDisabled {
+ span {
+ background-position: (-8 * $radio-width) $radio-voffset;
+
+ @include whenChecked {
+ background-position: (-9 * $radio-width) $radio-voffset;
+ }
+ }
+ }
+}
+
+/* Uploader */
+
+div#{$class-wrapper}#{$class-upload} {
+ background-position: 0 $upload-voffset;
+ height: $upload-height;
+ width: $upload-width;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+
+ span#{$class-action} {
+ background-position: right ($upload-voffset + (-4 * $upload-height));
+ height: $upload-height;
+ line-height: $upload-height;
+ width: $upload-action-width;
+ text-align: center;
+ float: left;
+ display: inline;
+ overflow: hidden;
+ cursor: pointer;
+ }
+
+ span#{$class-filename} {
+ @include ellipsis();
+ float: left;
+ cursor: default;
+ height: ($upload-height - $upload-filename-margin-top - $upload-filename-margin-bottom);
+ margin: $upload-filename-margin-top 0 $upload-filename-margin-bottom $upload-filename-margin-left;
+ line-height: ($upload-height - $upload-filename-margin-top - $upload-filename-margin-bottom);
+ width: $upload-filename-width;
+ padding: $upload-filename-padding;
+ }
+
+ input {
+ @include hideYetClickable();
+ position: absolute;
+ top: 0;
+ right: 0;
+ float: right;
+ cursor: default;
+ width: 100%;
+ height: 100%;
+ }
+
+ @include whenActive {
+ span#{$class-action} {
+ background-position: right ($upload-voffset + (-6 * $upload-height));
+ }
+ }
+
+ @include whenHover {
+ background-position: 0 ($upload-voffset + (-2 * $upload-height));
+
+ span#{$class-action} {
+ background-position: right ($upload-voffset + (-5 * $upload-height));
+ }
+
+ @include whenActive {
+ span#{$class-action} {
+ background-position: right ($upload-voffset + (-7 * $upload-height));
+ }
+ }
+ }
+
+ @include whenDisabled {
+ background-position: 0 ($upload-voffset + (-1 * $upload-height));
+
+ span#{$class-action} {
+ background-position: right ($upload-voffset + (-3 * $upload-height));
+ }
+ }
+}
+
+/* Buttons */
+
+div#{$class-wrapper}#{$class-button} {
+ background-position: 0 ($button-voffset + (-4 * $button-height));
+ height: $button-height;
+ cursor: pointer;
+ position: relative;
+
+ /* Keep buttons barely visible so they can get focus */
+ a, button, input {
+ @include opacity(0.01);
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute;
+ }
+
+ span {
+ @include inline-block();
+ line-height: $button-span-height;
+ text-align: center;
+ background-position: right $button-voffset;
+ height: $button-span-height;
+ margin-left: $button-margin-left;
+ padding: $button-padding;
+ }
+
+ @include whenActive {
+ background-position: 0 ($button-voffset + (-5 * $button-height));
+
+ span {
+ background-position: right ($button-voffset + (-1 * $button-height));
+ cursor: default;
+ }
+ }
+
+ @include whenHover {
+ background-position: 0 ($button-voffset + (-6 * $button-height));
+
+ span {
+ background-position: right ($button-voffset + (-2 * $button-height));
+ }
+ }
+
+ @include whenDisabled {
+ background-position: 0 ($button-voffset + (-7 * $button-height));
+
+ span {
+ background-position: right ($button-voffset + (-3 * $button-height));
+ cursor: default;
+ }
+ }
+}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.css b/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.css
new file mode 100644
index 000000000..3136ff7ba
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.css
@@ -0,0 +1,369 @@
+/*
+
+Uniform Theme: Agent
+Version: 1.0
+By: Collin Allen
+License: MIT
+---
+For use with the Uniform plugin:
+http://pixelmatrixdesign.com/uniform/
+
+*/
+/* General settings */
+div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
+ background-image: url("../images/sprite-agent.png");
+ background-repeat: no-repeat;
+ -webkit-font-smoothing: antialiased; }
+div.selector, div.checker, div.button, div.radio, div.uploader {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ vertical-align: middle;
+ /* Keeping this as :focus to remove browser styles */ }
+ div.selector:focus, div.checker:focus, div.button:focus, div.radio:focus, div.uploader:focus {
+ outline: 0; }
+div.selector, div.selector *, div.radio, div.radio *, div.checker, div.checker *, div.uploader, div.uploader *, div.button, div.button * {
+ margin: 0;
+ padding: 0; }
+
+.highContrastDetect {
+ background: url("../images/bg-input-agent.png") repeat-x 0 0;
+ width: 0px;
+ height: 0px; }
+
+/* Input & Textarea */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ padding: 4px;
+ background: url("../images/bg-input-agent.png") repeat-x 0 0;
+ outline: 0; }
+ input.uniform-input.active,
+ select.uniform-multiselect.active,
+ textarea.uniform.active {
+ background: url("../images/bg-input-agent-focus.png") repeat-x 0 0; }
+
+/* Remove default webkit and possible mozilla .search styles.
+ * Keeping this as :active to remove browser styles */
+div.checker input,
+input[type="search"],
+input[type="search"]:active {
+ -moz-appearance: none;
+ -webkit-appearance: none; }
+
+/* Select */
+div.selector {
+ background-position: 0 -160px;
+ line-height: 32px;
+ height: 32px;
+ padding: 0 0 0 12px;
+ position: relative;
+ overflow: hidden; }
+ div.selector span {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ background-position: right 0;
+ height: 32px;
+ line-height: 32px;
+ padding-right: 25px;
+ cursor: pointer;
+ width: 100%;
+ display: block; }
+ div.selector.fixedWidth {
+ width: 190px; }
+ div.selector.fixedWidth span {
+ width: 153px; }
+ div.selector select {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ height: 25px;
+ top: 4px;
+ left: 0px;
+ width: 100%; }
+ div.selector.active {
+ background-position: 0 -192px; }
+ div.selector.active span {
+ background-position: right -32px; }
+ div.selector.hover, div.selector.focus {
+ background-position: 0 -224px; }
+ div.selector.hover span, div.selector.focus span {
+ background-position: right -64px; }
+ div.selector.hover.active, div.selector.focus.active {
+ background-position: 0 -256px; }
+ div.selector.hover.active span, div.selector.focus.active span {
+ background-position: right -96px; }
+ div.selector.disabled, div.selector.disabled.active {
+ background-position: 0 -288px; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ background-position: right -128px; }
+
+/* Checkbox */
+div.checker {
+ position: relative; }
+ div.checker, div.checker span, div.checker input {
+ width: 23px;
+ height: 23px; }
+ div.checker span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -320px; }
+ div.checker span.checked {
+ background-position: -92px -320px; }
+ div.checker input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1; }
+ div.checker.active span {
+ background-position: -23px -320px; }
+ div.checker.active span.checked {
+ background-position: -115px -320px; }
+ div.checker.hover span, div.checker.focus span {
+ background-position: -46px -320px; }
+ div.checker.hover span.checked, div.checker.focus span.checked {
+ background-position: -138px -320px; }
+ div.checker.hover.active span, div.checker.focus.active span {
+ background-position: -69px -320px; }
+ div.checker.hover.active span.checked, div.checker.focus.active span.checked {
+ background-position: -161px -320px; }
+ div.checker.disabled, div.checker.disabled.active {
+ background-position: -184px -320px; }
+ div.checker.disabled span.checked, div.checker.disabled.active span.checked {
+ background-position: -207px -320px; }
+
+/* Radio */
+div.radio {
+ position: relative; }
+ div.radio, div.radio span, div.radio input {
+ width: 23px;
+ height: 23px; }
+ div.radio span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -343px; }
+ div.radio span.checked {
+ background-position: -92px -343px; }
+ div.radio input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center; }
+ div.radio.active span {
+ background-position: -23px -343px; }
+ div.radio.active span.checked {
+ background-position: -115px -343px; }
+ div.radio.hover span, div.radio.focus span {
+ background-position: -46px -343px; }
+ div.radio.hover span.checked, div.radio.focus span.checked {
+ background-position: -138px -343px; }
+ div.radio.hover.active span, div.radio.focus.active span {
+ background-position: -69px -343px; }
+ div.radio.hover.active span.checked, div.radio.focus.active span.checked {
+ background-position: -161px -343px; }
+ div.radio.disabled span, div.radio.disabled.active span {
+ background-position: -184px -343px; }
+ div.radio.disabled span.checked, div.radio.disabled.active span.checked {
+ background-position: -207px -343px; }
+
+/* Uploader */
+div.uploader {
+ background-position: 0 -366px;
+ height: 32px;
+ width: 190px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden; }
+ div.uploader span.action {
+ background-position: right -494px;
+ height: 32px;
+ line-height: 32px;
+ width: 90px;
+ text-align: center;
+ float: left;
+ display: inline;
+ overflow: hidden;
+ cursor: pointer; }
+ div.uploader span.filename {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ float: left;
+ cursor: default;
+ height: 32px;
+ margin: 0px 0 0px 4px;
+ line-height: 32px;
+ width: 76px;
+ padding: 0 10px; }
+ div.uploader input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ float: right;
+ cursor: default;
+ width: 100%;
+ height: 100%; }
+ div.uploader.active span.action {
+ background-position: right -558px; }
+ div.uploader.hover, div.uploader.focus {
+ background-position: 0 -430px; }
+ div.uploader.hover span.action, div.uploader.focus span.action {
+ background-position: right -526px; }
+ div.uploader.hover.active span.action, div.uploader.focus.active span.action {
+ background-position: right -590px; }
+ div.uploader.disabled, div.uploader.disabled.active {
+ background-position: 0 -398px; }
+ div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ background-position: right -462px; }
+
+/* Buttons */
+div.button {
+ background-position: 0 -750px;
+ height: 32px;
+ cursor: pointer;
+ position: relative;
+ /* Keep buttons barely visible so they can get focus */ }
+ div.button a, div.button button, div.button input {
+ opacity: 0.01;
+ filter: alpha(opacity=1);
+ -moz-opacity: 0.01;
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute; }
+ div.button span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ line-height: 24px;
+ text-align: center;
+ background-position: right -622px;
+ height: 24px;
+ margin-left: 13px;
+ padding: 5px 15px 5px 2px; }
+ div.button.active {
+ background-position: 0 -782px; }
+ div.button.active span {
+ background-position: right -654px;
+ cursor: default; }
+ div.button.hover, div.button.focus {
+ background-position: 0 -814px; }
+ div.button.hover span, div.button.focus span {
+ background-position: right -686px; }
+ div.button.disabled, div.button.disabled.active {
+ background-position: 0 -846px; }
+ div.button.disabled span, div.button.disabled.active span {
+ background-position: right -718px;
+ cursor: default; }
+
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ font-size: 14px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #ffffff;
+ background-color: #434343;
+ border-top: solid 1px #1a1a1a;
+ border-left: solid 1px #1a1a1a;
+ border-bottom: solid 1px #1c1c1c;
+ border-right: solid 1px #1c1c1c;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px; }
+ input.uniform-input.hover, input.uniform-input.focus,
+ select.uniform-multiselect.hover,
+ select.uniform-multiselect.focus,
+ textarea.uniform.hover,
+ textarea.uniform.focus {
+ -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ border-color: #999;
+ background-color: #575757; }
+
+div.button span {
+ color: #ffffff;
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ letter-spacing: 1px;
+ text-transform: uppercase; }
+div.button.disabled span, div.button.disabled.active span {
+ color: #bbb; }
+
+/* Select */
+div.selector {
+ font-weight: bold;
+ color: #464545;
+ font-size: 14px; }
+ div.selector span {
+ padding: 0 25px 0 0;
+ color: #fff;
+ font-weight: normal;
+ text-shadow: 0 1px 0 white; }
+ div.selector select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ border: solid 1px white; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ color: #bbb; }
+
+/* Checker */
+div.checker {
+ margin-right: 10px; }
+
+/* Radio */
+div.radio {
+ margin-right: 10px; }
+
+/* Uploader */
+div.uploader {
+ margin-bottom: 20px;
+ cursor: pointer; }
+ div.uploader span.action {
+ text-align: center;
+ text-shadow: #1a1a1a 0px 1px 0px;
+ background-color: #fff;
+ font-weight: bold;
+ color: #ffffff; }
+ div.uploader span.filename {
+ color: #777;
+ font-size: 11px; }
+ div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ color: #aaa; }
+ div.uploader.disabled span.filename, div.uploader.disabled.active span.filename {
+ border-color: #ddd;
+ color: #aaa; }
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.min.css b/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.min.css
new file mode 100644
index 000000000..12e6fec3b
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.min.css
@@ -0,0 +1 @@
+div.selector,div.selector span,div.checker span,div.radio span,div.uploader,div.uploader span.action,div.button,div.button span{background-image:url("../images/sprite-agent.png");background-repeat:no-repeat;-webkit-font-smoothing:antialiased}div.selector,div.checker,div.button,div.radio,div.uploader{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;vertical-align:middle}div.selector:focus,div.checker:focus,div.button:focus,div.radio:focus,div.uploader:focus{outline:0}div.selector,div.selector *,div.radio,div.radio *,div.checker,div.checker *,div.uploader,div.uploader *,div.button,div.button *{margin:0;padding:0}.highContrastDetect{background:url("../images/bg-input-agent.png") repeat-x 0 0;width:0px;height:0px}input.uniform-input,select.uniform-multiselect,textarea.uniform{padding:4px;background:url("../images/bg-input-agent.png") repeat-x 0 0;outline:0}input.uniform-input.active,select.uniform-multiselect.active,textarea.uniform.active{background:url("../images/bg-input-agent-focus.png") repeat-x 0 0}div.checker input,input[type="search"],input[type="search"]:active{-moz-appearance:none;-webkit-appearance:none}div.selector{background-position:0 -160px;line-height:32px;height:32px;padding:0 0 0 12px;position:relative;overflow:hidden}div.selector span{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;background-position:right 0;height:32px;line-height:32px;padding-right:25px;cursor:pointer;width:100%;display:block}div.selector.fixedWidth{width:190px}div.selector.fixedWidth span{width:153px}div.selector select{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;height:25px;top:4px;left:0px;width:100%}div.selector.active{background-position:0 -192px}div.selector.active span{background-position:right -32px}div.selector.hover,div.selector.focus{background-position:0 -224px}div.selector.hover span,div.selector.focus span{background-position:right -64px}div.selector.hover.active,div.selector.focus.active{background-position:0 -256px}div.selector.hover.active span,div.selector.focus.active span{background-position:right -96px}div.selector.disabled,div.selector.disabled.active{background-position:0 -288px}div.selector.disabled span,div.selector.disabled.active span{background-position:right -128px}div.checker{position:relative}div.checker,div.checker span,div.checker input{width:23px;height:23px}div.checker span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -320px}div.checker span.checked{background-position:-92px -320px}div.checker input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1}div.checker.active span{background-position:-23px -320px}div.checker.active span.checked{background-position:-115px -320px}div.checker.hover span,div.checker.focus span{background-position:-46px -320px}div.checker.hover span.checked,div.checker.focus span.checked{background-position:-138px -320px}div.checker.hover.active span,div.checker.focus.active span{background-position:-69px -320px}div.checker.hover.active span.checked,div.checker.focus.active span.checked{background-position:-161px -320px}div.checker.disabled,div.checker.disabled.active{background-position:-184px -320px}div.checker.disabled span.checked,div.checker.disabled.active span.checked{background-position:-207px -320px}div.radio{position:relative}div.radio,div.radio span,div.radio input{width:23px;height:23px}div.radio span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -343px}div.radio span.checked{background-position:-92px -343px}div.radio input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center}div.radio.active span{background-position:-23px -18px -343px}div.radio.active span.checked{background-position:-115px -343px}div.radio.hover span,div.radio.focus span{background-position:-46px -36px -343px}div.radio.hover span.checked,div.radio.focus span.checked{background-position:-138px -343px}div.radio.hover.active span,div.radio.focus.active span{background-position:-69px -343px}div.radio.hover.active span.checked,div.radio.focus.active span.checked{background-position:-161px -343px}div.radio.disabled span,div.radio.disabled.active span{background-position:-184px -343px}div.radio.disabled span.checked,div.radio.disabled.active span.checked{background-position:-207px -343px}div.uploader{background-position:0 -366px;height:32px;width:190px;cursor:pointer;position:relative;overflow:hidden}div.uploader span.action{background-position:right -494px;height:32px;line-height:32px;width:90px;text-align:center;float:left;display:inline;overflow:hidden;cursor:pointer}div.uploader span.filename{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;float:left;cursor:default;height:32px;margin:0px 0 0px 4px;line-height:32px;width:76px;padding:0 10px}div.uploader input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;top:0;right:0;float:right;cursor:default;width:100%;height:100%}div.uploader.active span.action{background-position:right -558px}div.uploader.hover,div.uploader.focus{background-position:0 -430px}div.uploader.hover span.action,div.uploader.focus span.action{background-position:right -526px}div.uploader.hover.active span.action,div.uploader.focus.active span.action{background-position:right -590px}div.uploader.disabled,div.uploader.disabled.active{background-position:0 -398px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{background-position:right -462px}div.button{background-position:0 -750px;height:32px;cursor:pointer;position:relative}div.button a,div.button button,div.button input{opacity:0.01;filter:alpha(opacity=1);-moz-opacity:0.01;display:block;top:0;left:0;right:0;bottom:0;position:absolute}div.button span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;line-height:24px;text-align:center;background-position:right -622px;height:24px;margin-left:13px;padding:9px 15px 0 2px}div.button.active{background-position:0 -782px}div.button.active span{background-position:right -654px;cursor:default}div.button.hover,div.button.focus{background-position:0 -814px}div.button.hover span,div.button.focus span{background-position:right -686px}div.button.disabled,div.button.disabled.active{background-position:0 -846px}div.button.disabled span,div.button.disabled.active span{background-position:right -718px;cursor:default}input.uniform-input,select.uniform-multiselect,textarea.uniform{font-size:14px;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-weight:normal;color:#ffffff;background-color:#434343;border-top:solid 1px #1a1a1a;border-left:solid 1px #1a1a1a;border-bottom:solid 1px #1c1c1c;border-right:solid 1px #1c1c1c;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input.uniform-input.hover,input.uniform-input.focus,select.uniform-multiselect.hover,select.uniform-multiselect.focus,textarea.uniform.hover,textarea.uniform.focus{-webkit-box-shadow:0px 0px 4px rgba(0,0,0,0.3);-moz-box-shadow:0px 0px 4px rgba(0,0,0,0.3);box-shadow:0px 0px 4px rgba(0,0,0,0.3);border-color:#999;background-color:#575757}div.button span{color:#ffffff;font-weight:bold;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:13px;letter-spacing:1px;text-transform:uppercase}div.button.disabled span,div.button.disabled.active span{color:#bbb}div.selector{font-weight:bold;color:#464545;font-size:14px}div.selector span{padding:0 25px 0 0;color:#fff;font-weight:normal;text-shadow:0 1px 0 #fff}div.selector select{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:1em;border:solid 1px #fff}div.selector.disabled span,div.selector.disabled.active span{color:#bbb}div.checker{margin-right:10px}div.radio{margin-right:10px}div.uploader{margin-bottom:20px;cursor:pointer}div.uploader span.action{text-align:center;text-shadow:#1a1a1a 0px 1px 0px;background-color:#fff;font-weight:bold;color:#ffffff}div.uploader span.filename{color:#777;font-size:11px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{color:#aaa}div.uploader.disabled span.filename,div.uploader.disabled.active span.filename{border-color:#ddd;color:#aaa}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.scss b/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.scss
new file mode 100644
index 000000000..b92f641cf
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/agent/css/uniform.agent.scss
@@ -0,0 +1,145 @@
+/*
+
+Uniform Theme: Agent
+Version: 1.0
+By: Collin Allen
+License: MIT
+---
+For use with the Uniform plugin:
+http://pixelmatrixdesign.com/uniform/
+
+*/
+
+$button-height: 32px;
+$button-margin-left: 13px;
+$button-padding: 9px 15px 0 2px;
+$button-span-height: 24px;
+$checkbox-height: 23px;
+$checkbox-width: 23px;
+$input-background: "../images/bg-input-agent.png";
+$input-background-focus: "../images/bg-input-agent-focus.png";
+$input-padding: 4px;
+$radio-height: 23px;
+$radio-width: 23px;
+$select-fixed-width: 190px;
+$select-height: 32px;
+$select-margin-left: 12px;
+$select-margin-right: 25px;
+$select-select-height: 25px;
+$select-select-top: 4px;
+$sprite: "../images/sprite-agent.png";
+$upload-action-width: 90px;
+$upload-filename-margin-top: 0px;
+$upload-filename-margin-bottom: 0px;
+$upload-filename-margin-left: 4px;
+$upload-filename-width: 76px;
+$upload-filename-padding: 0 10px;
+$upload-height: 32px;
+$upload-width: 190px;
+
+@import "../../_base/css/uniform._base.scss";
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+#{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+#{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ font-size: 14px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #ffffff;
+ background-color: #434343;
+ border-top: solid 1px #1a1a1a;
+ border-left: solid 1px #1a1a1a;
+ border-bottom: solid 1px #1c1c1c;
+ border-right: solid 1px #1c1c1c;
+ @include border-radius(3px);
+
+ @include whenHover {
+ @include box-shadow(0px 0px 4px rgba(0,0,0,0.3));
+ border-color: #999;
+ background-color: #575757;
+ }
+}
+
+div#{$class-wrapper}#{$class-button} {
+ span {
+ color: #ffffff;
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ }
+
+ @include whenDisabled {
+ span {
+ color: #bbb;
+ }
+ }
+}
+
+/* Select */
+div#{$class-wrapper}#{$class-select} {
+ font-weight: bold;
+ color: #464545;
+ font-size: 14px;
+
+ span {
+ padding: 0 25px 0 0;
+ color: #fff;
+ font-weight: normal;
+ text-shadow: 0 1px 0 #fff;
+ }
+
+ select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ border: solid 1px #fff;
+ }
+
+ @include whenDisabled {
+ span {
+ color: #bbb;
+ }
+ }
+}
+
+/* Checker */
+div#{$class-wrapper}#{$class-checkbox} {
+ margin-right: 10px;
+}
+
+/* Radio */
+div#{$class-wrapper}#{$class-radio} {
+ margin-right: 10px;
+}
+
+/* Uploader */
+div#{$class-wrapper}#{$class-upload} {
+ margin-bottom: 20px;
+ cursor: pointer;
+
+ span#{$class-action} {
+ text-align: center;
+ text-shadow: #1a1a1a 0px 1px 0px;
+ background-color: #fff;
+ font-weight: bold;
+ color: #ffffff;
+ }
+
+ span#{$class-filename} {
+ color: #777;
+ font-size: 11px;
+ }
+
+ @include whenDisabled {
+ span#{$class-action} {
+ color: #aaa;
+ }
+
+ span#{$class-filename} {
+ border-color: #ddd;
+ color: #aaa;
+ }
+ }
+}
+
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/agent/images/bg-input-agent.png b/ajax/libs/Uniform.js/2.1.2/themes/agent/images/bg-input-agent.png
new file mode 100644
index 000000000..e83832ea6
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/agent/images/bg-input-agent.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/agent/images/bg-input-focus-agent.png b/ajax/libs/Uniform.js/2.1.2/themes/agent/images/bg-input-focus-agent.png
new file mode 100644
index 000000000..65d56a88d
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/agent/images/bg-input-focus-agent.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/agent/images/sprite-agent.png b/ajax/libs/Uniform.js/2.1.2/themes/agent/images/sprite-agent.png
new file mode 100644
index 000000000..f73304819
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/agent/images/sprite-agent.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.css b/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.css
new file mode 100644
index 000000000..8454a7cef
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.css
@@ -0,0 +1,365 @@
+/*
+
+Uniform Theme: Aristo
+Version: 1.1
+By: 280North / Ported by Josh Pyles
+License: Creative Commons Share Alike
+---
+For use with the Uniform plugin:
+http://uniformjs.com/
+
+*/
+/* General settings */
+div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
+ background-image: url("../images/sprite-aristo.png");
+ background-repeat: no-repeat;
+ -webkit-font-smoothing: antialiased; }
+div.selector, div.checker, div.button, div.radio, div.uploader {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ vertical-align: middle;
+ /* Keeping this as :focus to remove browser styles */ }
+ div.selector:focus, div.checker:focus, div.button:focus, div.radio:focus, div.uploader:focus {
+ outline: 0; }
+div.selector, div.selector *, div.radio, div.radio *, div.checker, div.checker *, div.uploader, div.uploader *, div.button, div.button * {
+ margin: 0;
+ padding: 0; }
+
+.highContrastDetect {
+ background: url("../images/bg-input-aristo.png") repeat-x 0 0;
+ width: 0px;
+ height: 0px; }
+
+/* Input & Textarea */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ padding: 4px;
+ background: url("../images/bg-input-aristo.png") repeat-x 0 0;
+ outline: 0; }
+ input.uniform-input.active,
+ select.uniform-multiselect.active,
+ textarea.uniform.active {
+ background: url("../images/bg-input-focus-aristo.png") repeat-x 0 0; }
+
+/* Remove default webkit and possible mozilla .search styles.
+ * Keeping this as :active to remove browser styles */
+div.checker input,
+input[type="search"],
+input[type="search"]:active {
+ -moz-appearance: none;
+ -webkit-appearance: none; }
+
+/* Select */
+div.selector {
+ background-position: 0 -160px;
+ line-height: 32px;
+ height: 32px;
+ padding: 0 0 0 10px;
+ position: relative;
+ overflow: hidden; }
+ div.selector span {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ background-position: right 0;
+ height: 32px;
+ line-height: 32px;
+ padding-right: 25px;
+ cursor: pointer;
+ width: 100%;
+ display: block; }
+ div.selector.fixedWidth {
+ width: 190px; }
+ div.selector.fixedWidth span {
+ width: 155px; }
+ div.selector select {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ height: 24px;
+ top: 4px;
+ left: 0px;
+ width: 100%; }
+ div.selector.active {
+ background-position: 0 -192px; }
+ div.selector.active span {
+ background-position: right -32px; }
+ div.selector.hover, div.selector.focus {
+ background-position: 0 -224px; }
+ div.selector.hover span, div.selector.focus span {
+ background-position: right -64px; }
+ div.selector.hover.active, div.selector.focus.active {
+ background-position: 0 -256px; }
+ div.selector.hover.active span, div.selector.focus.active span {
+ background-position: right -96px; }
+ div.selector.disabled, div.selector.disabled.active {
+ background-position: 0 -288px; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ background-position: right -128px; }
+
+/* Checkbox */
+div.checker {
+ position: relative; }
+ div.checker, div.checker span, div.checker input {
+ width: 23px;
+ height: 23px; }
+ div.checker span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -320px; }
+ div.checker span.checked {
+ background-position: -92px -320px; }
+ div.checker input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1; }
+ div.checker.active span {
+ background-position: -23px -320px; }
+ div.checker.active span.checked {
+ background-position: -115px -320px; }
+ div.checker.hover span, div.checker.focus span {
+ background-position: -46px -320px; }
+ div.checker.hover span.checked, div.checker.focus span.checked {
+ background-position: -138px -320px; }
+ div.checker.hover.active span, div.checker.focus.active span {
+ background-position: -69px -320px; }
+ div.checker.hover.active span.checked, div.checker.focus.active span.checked {
+ background-position: -161px -320px; }
+ div.checker.disabled, div.checker.disabled.active {
+ background-position: -184px -320px; }
+ div.checker.disabled span.checked, div.checker.disabled.active span.checked {
+ background-position: -207px -320px; }
+
+/* Radio */
+div.radio {
+ position: relative; }
+ div.radio, div.radio span, div.radio input {
+ width: 23px;
+ height: 23px; }
+ div.radio span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -343px; }
+ div.radio span.checked {
+ background-position: -92px -343px; }
+ div.radio input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center; }
+ div.radio.active span {
+ background-position: -23px -18px -343px; }
+ div.radio.active span.checked {
+ background-position: -115px -343px; }
+ div.radio.hover span, div.radio.focus span {
+ background-position: -46px -36px -343px; }
+ div.radio.hover span.checked, div.radio.focus span.checked {
+ background-position: -138px -343px; }
+ div.radio.hover.active span, div.radio.focus.active span {
+ background-position: -69px -343px; }
+ div.radio.hover.active span.checked, div.radio.focus.active span.checked {
+ background-position: -161px -343px; }
+ div.radio.disabled span, div.radio.disabled.active span {
+ background-position: -184px -343px; }
+ div.radio.disabled span.checked, div.radio.disabled.active span.checked {
+ background-position: -207px -343px; }
+
+/* Uploader */
+div.uploader {
+ background-position: 0 -366px;
+ height: 32px;
+ width: 190px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden; }
+ div.uploader span.action {
+ background-position: right -494px;
+ height: 32px;
+ line-height: 32px;
+ width: 90px;
+ text-align: center;
+ float: left;
+ display: inline;
+ overflow: hidden;
+ cursor: pointer; }
+ div.uploader span.filename {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ float: left;
+ cursor: default;
+ height: 24px;
+ margin: 4px 0 4px 4px;
+ line-height: 24px;
+ width: 76px;
+ padding: 0 10px; }
+ div.uploader input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ float: right;
+ cursor: default;
+ width: 100%;
+ height: 100%; }
+ div.uploader.active span.action {
+ background-position: right -558px; }
+ div.uploader.hover, div.uploader.focus {
+ background-position: 0 -430px; }
+ div.uploader.hover span.action, div.uploader.focus span.action {
+ background-position: right -526px; }
+ div.uploader.hover.active span.action, div.uploader.focus.active span.action {
+ background-position: right -590px; }
+ div.uploader.disabled, div.uploader.disabled.active {
+ background-position: 0 -398px; }
+ div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ background-position: right -462px; }
+
+/* Buttons */
+div.button {
+ background-position: 0 -750px;
+ height: 32px;
+ cursor: pointer;
+ position: relative;
+ /* Keep buttons barely visible so they can get focus */ }
+ div.button a, div.button button, div.button input {
+ opacity: 0.01;
+ filter: alpha(opacity=1);
+ -moz-opacity: 0.01;
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute; }
+ div.button span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ line-height: 22px;
+ text-align: center;
+ background-position: right -622px;
+ height: 22px;
+ margin-left: 13px;
+ padding: 5px 15px 5px 2px; }
+ div.button.active {
+ background-position: 0 -782px; }
+ div.button.active span {
+ background-position: right -654px;
+ cursor: default; }
+ div.button.hover, div.button.focus {
+ background-position: 0 -814px; }
+ div.button.hover span, div.button.focus span {
+ background-position: right -686px; }
+ div.button.disabled, div.button.disabled.active {
+ background-position: 0 -846px; }
+ div.button.disabled span, div.button.disabled.active span {
+ background-position: right -718px;
+ cursor: default; }
+
+/* INPUT & TEXTAREA */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ font-size: 14px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #777;
+ background-color: #a1cbe2;
+ border-top: solid 1px #aaaaaa;
+ border-left: solid 1px #aaaaaa;
+ border-bottom: solid 1px #cccccc;
+ border-right: solid 1px #cccccc;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px; }
+ input.uniform-input.hover, input.uniform-input.focus,
+ select.uniform-multiselect.hover,
+ select.uniform-multiselect.focus,
+ textarea.uniform.hover,
+ textarea.uniform.focus {
+ -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
+ border-color: #999;
+ background-color: #a1cbe2; }
+
+/* Uploader */
+div.button span {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ letter-spacing: 1px;
+ text-transform: uppercase; }
+div.button.hover span, div.button.focus span {
+ color: #555; }
+div.button.disabled span, div.button.disabled.active span {
+ color: #bbb; }
+
+/* Select */
+div.selector {
+ font-weight: bold;
+ color: #464545;
+ font-size: 14px; }
+ div.selector span {
+ color: #666;
+ text-shadow: 0 1px 0 white; }
+ div.selector select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ border: solid 1px white; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ color: #bbb; }
+
+/* Checker */
+div.checker {
+ margin-right: 10px; }
+
+/* Radio */
+div.radio {
+ margin-right: 10px; }
+
+div.uploader span.action {
+ text-shadow: rgba(255, 255, 255, 0.5) 0px 1px 0px;
+ background-color: #fff;
+ font-weight: bold;
+ color: #1c4257; }
+div.uploader span.filename {
+ color: #777;
+ font-size: 11px; }
+div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ color: #aaa; }
+div.uploader.disabled span.filename, div.uploader.disabled.active span.filename {
+ border-color: #ddd;
+ color: #aaa; }
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.min.css b/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.min.css
new file mode 100644
index 000000000..76fae6a9f
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.min.css
@@ -0,0 +1 @@
+div.selector,div.selector span,div.checker span,div.radio span,div.uploader,div.uploader span.action,div.button,div.button span{background-image:url("../images/sprite-aristo.png");background-repeat:no-repeat;-webkit-font-smoothing:antialiased}div.selector,div.checker,div.button,div.radio,div.uploader{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;vertical-align:middle}div.selector:focus,div.checker:focus,div.button:focus,div.radio:focus,div.uploader:focus{outline:0}div.selector,div.selector *,div.radio,div.radio *,div.checker,div.checker *,div.uploader,div.uploader *,div.button,div.button *{margin:0;padding:0}.highContrastDetect{background:url("../images/bg-input-aristo.png") repeat-x 0 0;width:0px;height:0px}input.uniform-input,select.uniform-multiselect,textarea.uniform{padding:4px;background:url("../images/bg-input-aristo.png") repeat-x 0 0;outline:0}input.uniform-input.active,select.uniform-multiselect.active,textarea.uniform.active{background:url("../images/bg-input-focus-aristo.png") repeat-x 0 0}div.checker input,input[type="search"],input[type="search"]:active{-moz-appearance:none;-webkit-appearance:none}div.selector{background-position:0 -160px;line-height:32px;height:32px;padding:0 0 0 10px;position:relative;overflow:hidden}div.selector span{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;background-position:right 0;height:32px;line-height:32px;padding-right:25px;cursor:pointer;width:100%;display:block}div.selector.fixedWidth{width:190px}div.selector.fixedWidth span{width:155px}div.selector select{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;height:24px;top:4px;left:0px;width:100%}div.selector.active{background-position:0 -192px}div.selector.active span{background-position:right -32px}div.selector.hover,div.selector.focus{background-position:0 -224px}div.selector.hover span,div.selector.focus span{background-position:right -64px}div.selector.hover.active,div.selector.focus.active{background-position:0 -256px}div.selector.hover.active span,div.selector.focus.active span{background-position:right -96px}div.selector.disabled,div.selector.disabled.active{background-position:0 -288px}div.selector.disabled span,div.selector.disabled.active span{background-position:right -128px}div.checker{position:relative}div.checker,div.checker span,div.checker input{width:23px;height:23px}div.checker span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -320px}div.checker span.checked{background-position:-92px -320px}div.checker input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1}div.checker.active span{background-position:-23px -320px}div.checker.active span.checked{background-position:-115px -320px}div.checker.hover span,div.checker.focus span{background-position:-46px -320px}div.checker.hover span.checked,div.checker.focus span.checked{background-position:-138px -320px}div.checker.hover.active span,div.checker.focus.active span{background-position:-69px -320px}div.checker.hover.active span.checked,div.checker.focus.active span.checked{background-position:-161px -320px}div.checker.disabled,div.checker.disabled.active{background-position:-184px -320px}div.checker.disabled span.checked,div.checker.disabled.active span.checked{background-position:-207px -320px}div.radio{position:relative}div.radio,div.radio span,div.radio input{width:23px;height:23px}div.radio span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -343px}div.radio span.checked{background-position:-92px -343px}div.radio input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center}div.radio.active span{background-position:-23px -18px -343px}div.radio.active span.checked{background-position:-115px -343px}div.radio.hover span,div.radio.focus span{background-position:-46px -36px -343px}div.radio.hover span.checked,div.radio.focus span.checked{background-position:-138px -343px}div.radio.hover.active span,div.radio.focus.active span{background-position:-69px -343px}div.radio.hover.active span.checked,div.radio.focus.active span.checked{background-position:-161px -343px}div.radio.disabled span,div.radio.disabled.active span{background-position:-184px -343px}div.radio.disabled span.checked,div.radio.disabled.active span.checked{background-position:-207px -343px}div.uploader{background-position:0 -366px;height:32px;width:190px;cursor:pointer;position:relative;overflow:hidden}div.uploader span.action{background-position:right -494px;height:32px;line-height:32px;width:90px;text-align:center;float:left;display:inline;overflow:hidden;cursor:pointer}div.uploader span.filename{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;float:left;cursor:default;height:24px;margin:4px 0 4px 4px;line-height:24px;width:76px;padding:0 10px}div.uploader input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;top:0;right:0;float:right;cursor:default;width:100%;height:100%}div.uploader.active span.action{background-position:right -558px}div.uploader.hover,div.uploader.focus{background-position:0 -430px}div.uploader.hover span.action,div.uploader.focus span.action{background-position:right -526px}div.uploader.hover.active span.action,div.uploader.focus.active span.action{background-position:right -590px}div.uploader.disabled,div.uploader.disabled.active{background-position:0 -398px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{background-position:right -462px}div.button{background-position:0 -750px;height:32px;cursor:pointer;position:relative}div.button a,div.button button,div.button input{opacity:0.01;filter:alpha(opacity=1);-moz-opacity:0.01;display:block;top:0;left:0;right:0;bottom:0;position:absolute}div.button span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;line-height:22px;text-align:center;background-position:right -622px;height:22px;margin-left:13px;padding:5px 15px 5px 2px}div.button.active{background-position:0 -782px}div.button.active span{background-position:right -654px;cursor:default}div.button.hover,div.button.focus{background-position:0 -814px}div.button.hover span,div.button.focus span{background-position:right -686px}div.button.disabled,div.button.disabled.active{background-position:0 -846px}div.button.disabled span,div.button.disabled.active span{background-position:right -718px;cursor:default}input.uniform-input,select.uniform-multiselect,textarea.uniform{font-size:14px;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-weight:normal;color:#777;background-color:#a1cbe2;border-top:solid 1px #aaa;border-left:solid 1px #aaa;border-bottom:solid 1px #ccc;border-right:solid 1px #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input.uniform-input.hover,input.uniform-input.focus,select.uniform-multiselect.hover,select.uniform-multiselect.focus,textarea.uniform.hover,textarea.uniform.focus{-webkit-box-shadow:0 0 4px rgba(0,0,0,0.3);-moz-box-shadow:0 0 4px rgba(0,0,0,0.3);box-shadow:0 0 4px rgba(0,0,0,0.3);border-color:#999;background-color:#a1cbe2}div.button span{font-weight:bold;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:13px;letter-spacing:1px;text-transform:uppercase}div.button.hover span,div.button.focus span{color:#555}div.button.disabled span,div.button.disabled.active span{color:#bbb}div.selector{font-weight:bold;color:#464545;font-size:14px}div.selector span{color:#666;text-shadow:0 1px 0 #fff}div.selector select{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:1em;border:solid 1px #fff}div.selector.disabled span,div.selector.disabled.active span{color:#bbb}div.checker{margin-right:10px}div.radio{margin-right:10px}div.uploader span.action{text-shadow:rgba(255,255,255,0.5) 0px 1px 0px;background-color:#fff;font-weight:bold;color:#1c4257}div.uploader span.filename{color:#777;font-size:11px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{color:#aaa}div.uploader.disabled span.filename,div.uploader.disabled.active span.filename{border-color:#ddd;color:#aaa}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.scss b/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.scss
new file mode 100644
index 000000000..8e2345525
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/aristo/css/uniform.aristo.scss
@@ -0,0 +1,151 @@
+/*
+
+Uniform Theme: Aristo
+Version: 1.1
+By: 280North / Ported by Josh Pyles
+License: Creative Commons Share Alike
+---
+For use with the Uniform plugin:
+http://uniformjs.com/
+
+*/
+
+$button-height: 32px;
+$button-margin-left: 13px;
+$button-padding: 5px 15px 5px 2px;
+$button-span-height: 22px;
+$checkbox-height: 23px;
+$checkbox-width: 23px;
+$input-background-focus: "../images/bg-input-focus-aristo.png";
+$input-background: "../images/bg-input-aristo.png";
+$input-padding: 4px;
+$radio-height: 23px;
+$radio-width: 23px;
+$select-fixed-width: 190px;
+$select-height: 32px;
+$select-margin-left: 10px;
+$select-margin-right: 25px;
+$select-select-height: 24px;
+$select-select-top: 4px;
+$sprite: "../images/sprite-aristo.png";
+$upload-action-width: 90px;
+$upload-filename-margin-left: 4px;
+$upload-filename-margin-top: 4px;
+$upload-filename-margin-bottom: 4px;
+$upload-filename-padding: 0 10px;
+$upload-filename-width: 76px;
+$upload-height: 32px;
+$upload-width: 190px;
+
+@import "../../_base/css/uniform._base.scss";
+
+/* INPUT & TEXTAREA */
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+#{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+#{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ font-size: 14px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #777;
+ background-color: #a1cbe2;
+ border-top: solid 1px #aaa;
+ border-left: solid 1px #aaa;
+ border-bottom: solid 1px #ccc;
+ border-right: solid 1px #ccc;
+ @include border-radius(3px);
+
+ @include whenHover {
+ @include box-shadow(0 0 4px rgba(0,0,0,0.3));
+ border-color: #999;
+ background-color: #a1cbe2;
+ }
+}
+
+/* Uploader */
+
+
+div#{$class-wrapper}#{$class-button} {
+ span {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ }
+
+ @include whenHover {
+ span {
+ color: #555;
+ }
+ }
+
+ @include whenDisabled {
+ span {
+ color: #bbb;
+ }
+ }
+}
+
+
+/* Select */
+
+div#{$class-wrapper}#{$class-select} {
+ font-weight: bold;
+ color: #464545;
+ font-size: 14px;
+
+ span {
+ color: #666;
+ text-shadow: 0 1px 0 #fff;
+ }
+
+ select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ border: solid 1px #fff;
+ }
+
+ @include whenDisabled {
+ span {
+ color: #bbb;
+ }
+ }
+}
+
+
+
+/* Checker */
+div#{$class-wrapper}#{$class-checkbox} {
+ margin-right: 10px;
+}
+
+/* Radio */
+div#{$class-wrapper}#{$class-radio} {
+ margin-right: 10px;
+}
+
+div#{$class-wrapper}#{$class-upload} {
+ span#{$class-action} {
+ text-shadow: rgba(255,255,255,0.5) 0px 1px 0px;
+ background-color: #fff;
+ font-weight: bold;
+ color: #1c4257;
+ }
+
+ span#{$class-filename} {
+ color: #777;
+ font-size: 11px;
+ }
+
+ @include whenDisabled {
+ span#{$class-action} {
+ color: #aaa;
+ }
+
+ span#{$class-filename} {
+ border-color: #ddd;
+ color: #aaa;
+ }
+ }
+}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/bg-input-aristo.png b/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/bg-input-aristo.png
new file mode 100644
index 000000000..12fff8ff7
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/bg-input-aristo.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/bg-input-focus-aristo.png b/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/bg-input-focus-aristo.png
new file mode 100644
index 000000000..13d8c896d
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/bg-input-focus-aristo.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/sprite-aristo.png b/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/sprite-aristo.png
new file mode 100644
index 000000000..8950996f0
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/aristo/images/sprite-aristo.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.css b/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.css
new file mode 100644
index 000000000..2e7fd200d
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.css
@@ -0,0 +1,366 @@
+/*
+
+Uniform Theme: Uniform Default
+Version: 1.8
+By: Josh Pyles
+License: MIT License
+---
+For use with the Uniform plugin:
+http://uniformjs.com/
+
+*/
+/* General settings */
+div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
+ background-image: url("../images/sprite.png");
+ background-repeat: no-repeat;
+ -webkit-font-smoothing: antialiased; }
+div.selector, div.checker, div.button, div.radio, div.uploader {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ vertical-align: middle;
+ /* Keeping this as :focus to remove browser styles */ }
+ div.selector:focus, div.checker:focus, div.button:focus, div.radio:focus, div.uploader:focus {
+ outline: 0; }
+div.selector, div.selector *, div.radio, div.radio *, div.checker, div.checker *, div.uploader, div.uploader *, div.button, div.button * {
+ margin: 0;
+ padding: 0; }
+
+.highContrastDetect {
+ background: url("../images/bg-input.png") repeat-x 0 0;
+ width: 0px;
+ height: 0px; }
+
+/* Input & Textarea */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ padding: 3px;
+ background: url("../images/bg-input.png") repeat-x 0 0;
+ outline: 0; }
+ input.uniform-input.active,
+ select.uniform-multiselect.active,
+ textarea.uniform.active {
+ background: url("../images/bg-input-focus.png") repeat-x 0 0; }
+
+/* Remove default webkit and possible mozilla .search styles.
+ * Keeping this as :active to remove browser styles */
+div.checker input,
+input[type="search"],
+input[type="search"]:active {
+ -moz-appearance: none;
+ -webkit-appearance: none; }
+
+/* Select */
+div.selector {
+ background-position: 0 -130px;
+ line-height: 26px;
+ height: 26px;
+ padding: 0 0 0 10px;
+ position: relative;
+ overflow: hidden; }
+ div.selector span {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ background-position: right 0;
+ height: 26px;
+ line-height: 26px;
+ padding-right: 25px;
+ cursor: pointer;
+ width: 100%;
+ display: block; }
+ div.selector.fixedWidth {
+ width: 190px; }
+ div.selector.fixedWidth span {
+ width: 155px; }
+ div.selector select {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ height: 22px;
+ top: 2px;
+ left: 0px;
+ width: 100%; }
+ div.selector.active {
+ background-position: 0 -156px; }
+ div.selector.active span {
+ background-position: right -26px; }
+ div.selector.hover, div.selector.focus {
+ background-position: 0 -182px; }
+ div.selector.hover span, div.selector.focus span {
+ background-position: right -52px; }
+ div.selector.hover.active, div.selector.focus.active {
+ background-position: 0 -208px; }
+ div.selector.hover.active span, div.selector.focus.active span {
+ background-position: right -78px; }
+ div.selector.disabled, div.selector.disabled.active {
+ background-position: 0 -234px; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ background-position: right -104px; }
+
+/* Checkbox */
+div.checker {
+ position: relative; }
+ div.checker, div.checker span, div.checker input {
+ width: 19px;
+ height: 19px; }
+ div.checker span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -260px; }
+ div.checker span.checked {
+ background-position: -76px -260px; }
+ div.checker input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1; }
+ div.checker.active span {
+ background-position: -19px -260px; }
+ div.checker.active span.checked {
+ background-position: -95px -260px; }
+ div.checker.hover span, div.checker.focus span {
+ background-position: -38px -260px; }
+ div.checker.hover span.checked, div.checker.focus span.checked {
+ background-position: -114px -260px; }
+ div.checker.hover.active span, div.checker.focus.active span {
+ background-position: -57px -260px; }
+ div.checker.hover.active span.checked, div.checker.focus.active span.checked {
+ background-position: -133px -260px; }
+ div.checker.disabled, div.checker.disabled.active {
+ background-position: -152px -260px; }
+ div.checker.disabled span.checked, div.checker.disabled.active span.checked {
+ background-position: -171px -260px; }
+
+/* Radio */
+div.radio {
+ position: relative; }
+ div.radio, div.radio span, div.radio input {
+ width: 18px;
+ height: 18px; }
+ div.radio span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -279px; }
+ div.radio span.checked {
+ background-position: -72px -279px; }
+ div.radio input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center; }
+ div.radio.active span {
+ background-position: -18px -18px -279px; }
+ div.radio.active span.checked {
+ background-position: -90px -279px; }
+ div.radio.hover span, div.radio.focus span {
+ background-position: -36px -36px -279px; }
+ div.radio.hover span.checked, div.radio.focus span.checked {
+ background-position: -108px -279px; }
+ div.radio.hover.active span, div.radio.focus.active span {
+ background-position: -54px -279px; }
+ div.radio.hover.active span.checked, div.radio.focus.active span.checked {
+ background-position: -126px -279px; }
+ div.radio.disabled span, div.radio.disabled.active span {
+ background-position: -144px -279px; }
+ div.radio.disabled span.checked, div.radio.disabled.active span.checked {
+ background-position: -162px -279px; }
+
+/* Uploader */
+div.uploader {
+ background-position: 0 -297px;
+ height: 28px;
+ width: 190px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden; }
+ div.uploader span.action {
+ background-position: right -409px;
+ height: 28px;
+ line-height: 28px;
+ width: 82px;
+ text-align: center;
+ float: left;
+ display: inline;
+ overflow: hidden;
+ cursor: pointer; }
+ div.uploader span.filename {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ float: left;
+ cursor: default;
+ height: 24px;
+ margin: 2px 0 2px 2px;
+ line-height: 24px;
+ width: 85px;
+ padding: 0 10px; }
+ div.uploader input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ float: right;
+ cursor: default;
+ width: 100%;
+ height: 100%; }
+ div.uploader.active span.action {
+ background-position: right -465px; }
+ div.uploader.hover, div.uploader.focus {
+ background-position: 0 -353px; }
+ div.uploader.hover span.action, div.uploader.focus span.action {
+ background-position: right -437px; }
+ div.uploader.hover.active span.action, div.uploader.focus.active span.action {
+ background-position: right -493px; }
+ div.uploader.disabled, div.uploader.disabled.active {
+ background-position: 0 -325px; }
+ div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ background-position: right -381px; }
+
+/* Buttons */
+div.button {
+ background-position: 0 -641px;
+ height: 30px;
+ cursor: pointer;
+ position: relative;
+ /* Keep buttons barely visible so they can get focus */ }
+ div.button a, div.button button, div.button input {
+ opacity: 0.01;
+ filter: alpha(opacity=1);
+ -moz-opacity: 0.01;
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute; }
+ div.button span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ line-height: 22px;
+ text-align: center;
+ background-position: right -521px;
+ height: 22px;
+ margin-left: 13px;
+ padding: 8px 15px 0 2px; }
+ div.button.active {
+ background-position: 0 -671px; }
+ div.button.active span {
+ background-position: right -551px;
+ cursor: default; }
+ div.button.hover, div.button.focus {
+ background-position: 0 -701px; }
+ div.button.hover span, div.button.focus span {
+ background-position: right -581px; }
+ div.button.disabled, div.button.disabled.active {
+ background-position: 0 -731px; }
+ div.button.disabled span, div.button.disabled.active span {
+ background-position: right -611px;
+ cursor: default; }
+
+/* INPUT & TEXTAREA */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ font-size: 12px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #777;
+ border-top: solid 1px #aaaaaa;
+ border-left: solid 1px #aaaaaa;
+ border-bottom: solid 1px #cccccc;
+ border-right: solid 1px #cccccc;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px; }
+ input.uniform-input.hover, input.uniform-input.focus,
+ select.uniform-multiselect.hover,
+ select.uniform-multiselect.focus,
+ textarea.uniform.hover,
+ textarea.uniform.focus {
+ -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ border-color: #999; }
+
+/* PRESENTATION */
+/* Buttons */
+div.button span {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ letter-spacing: 1px;
+ text-transform: uppercase; }
+div.button.hover span, div.button.focus span {
+ color: #555; }
+div.button.disabled span, div.button.disabled.active span {
+ color: #bbb; }
+
+/* Select */
+div.selector {
+ font-size: 12px; }
+ div.selector span {
+ color: #666;
+ text-shadow: 0 1px 0 white; }
+ div.selector select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ color: #bbb; }
+
+/* Checker */
+div.checker {
+ margin-right: 5px; }
+
+/* Radio */
+div.radio {
+ margin-right: 3px; }
+
+/* Uploader */
+div.uploader span.action {
+ text-shadow: white 0px 1px 0px;
+ background-color: #fff;
+ font-size: 11px;
+ font-weight: bold; }
+div.uploader span.filename {
+ color: #777;
+ border-right: solid 1px #bbbbbb;
+ font-size: 11px; }
+div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ color: #aaa; }
+div.uploader.disabled span.filename, div.uploader.disabled.active span.filename {
+ border-color: #ddd;
+ color: #aaa; }
+
+input.uniform-input, input.uniform-input:focus {
+ background-color: #fff; }
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.min.css b/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.min.css
new file mode 100644
index 000000000..ef4ee1036
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.min.css
@@ -0,0 +1 @@
+div.selector,div.selector span,div.checker span,div.radio span,div.uploader,div.uploader span.action,div.button,div.button span{background-image:url("../images/sprite.png");background-repeat:no-repeat;-webkit-font-smoothing:antialiased}div.selector,div.checker,div.button,div.radio,div.uploader{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;vertical-align:middle}div.selector:focus,div.checker:focus,div.button:focus,div.radio:focus,div.uploader:focus{outline:0}div.selector,div.selector *,div.radio,div.radio *,div.checker,div.checker *,div.uploader,div.uploader *,div.button,div.button *{margin:0;padding:0}.highContrastDetect{background:url("../images/bg-input.png") repeat-x 0 0;width:0px;height:0px}input.uniform-input,select.uniform-multiselect,textarea.uniform{padding:3px;background:url("../images/bg-input.png") repeat-x 0 0;outline:0}input.uniform-input.active,select.uniform-multiselect.active,textarea.uniform.active{background:url("../images/bg-input-focus.png") repeat-x 0 0}div.checker input,input[type="search"],input[type="search"]:active{-moz-appearance:none;-webkit-appearance:none}div.selector{background-position:0 -130px;line-height:26px;height:26px;padding:0 0 0 10px;position:relative;overflow:hidden}div.selector span{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;background-position:right 0;height:26px;line-height:26px;padding-right:25px;cursor:pointer;width:100%;display:block}div.selector.fixedWidth{width:190px}div.selector.fixedWidth span{width:155px}div.selector select{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;height:22px;top:2px;left:0px;width:100%}div.selector.active{background-position:0 -156px}div.selector.active span{background-position:right -26px}div.selector.hover,div.selector.focus{background-position:0 -182px}div.selector.hover span,div.selector.focus span{background-position:right -52px}div.selector.hover.active,div.selector.focus.active{background-position:0 -208px}div.selector.hover.active span,div.selector.focus.active span{background-position:right -78px}div.selector.disabled,div.selector.disabled.active{background-position:0 -234px}div.selector.disabled span,div.selector.disabled.active span{background-position:right -104px}div.checker{position:relative}div.checker,div.checker span,div.checker input{width:19px;height:19px}div.checker span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -260px}div.checker span.checked{background-position:-76px -260px}div.checker input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1}div.checker.active span{background-position:-19px -260px}div.checker.active span.checked{background-position:-95px -260px}div.checker.hover span,div.checker.focus span{background-position:-38px -260px}div.checker.hover span.checked,div.checker.focus span.checked{background-position:-114px -260px}div.checker.hover.active span,div.checker.focus.active span{background-position:-57px -260px}div.checker.hover.active span.checked,div.checker.focus.active span.checked{background-position:-133px -260px}div.checker.disabled,div.checker.disabled.active{background-position:-152px -260px}div.checker.disabled span.checked,div.checker.disabled.active span.checked{background-position:-171px -260px}div.radio{position:relative}div.radio,div.radio span,div.radio input{width:18px;height:18px}div.radio span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -279px}div.radio span.checked{background-position:-72px -279px}div.radio input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center}div.radio.active span{background-position:-18px -18px -279px}div.radio.active span.checked{background-position:-90px -279px}div.radio.hover span,div.radio.focus span{background-position:-36px -36px -279px}div.radio.hover span.checked,div.radio.focus span.checked{background-position:-108px -279px}div.radio.hover.active span,div.radio.focus.active span{background-position:-54px -279px}div.radio.hover.active span.checked,div.radio.focus.active span.checked{background-position:-126px -279px}div.radio.disabled span,div.radio.disabled.active span{background-position:-144px -279px}div.radio.disabled span.checked,div.radio.disabled.active span.checked{background-position:-162px -279px}div.uploader{background-position:0 -297px;height:28px;width:190px;cursor:pointer;position:relative;overflow:hidden}div.uploader span.action{background-position:right -409px;height:28px;line-height:28px;width:82px;text-align:center;float:left;display:inline;overflow:hidden;cursor:pointer}div.uploader span.filename{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;float:left;cursor:default;height:24px;margin:2px 0 2px 2px;line-height:24px;width:85px;padding:0 10px}div.uploader input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;top:0;right:0;float:right;cursor:default;width:100%;height:100%}div.uploader.active span.action{background-position:right -465px}div.uploader.hover,div.uploader.focus{background-position:0 -353px}div.uploader.hover span.action,div.uploader.focus span.action{background-position:right -437px}div.uploader.hover.active span.action,div.uploader.focus.active span.action{background-position:right -493px}div.uploader.disabled,div.uploader.disabled.active{background-position:0 -325px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{background-position:right -381px}div.button{background-position:0 -641px;height:30px;cursor:pointer;position:relative}div.button a,div.button button,div.button input{opacity:0.01;filter:alpha(opacity=1);-moz-opacity:0.01;display:block;top:0;left:0;right:0;bottom:0;position:absolute}div.button span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;line-height:22px;text-align:center;background-position:right -521px;height:22px;margin-left:13px;padding:8px 15px 0 2px}div.button.active{background-position:0 -671px}div.button.active span{background-position:right -551px;cursor:default}div.button.hover,div.button.focus{background-position:0 -701px}div.button.hover span,div.button.focus span{background-position:right -581px}div.button.disabled,div.button.disabled.active{background-position:0 -731px}div.button.disabled span,div.button.disabled.active span{background-position:right -611px;cursor:default}input.uniform-input,select.uniform-multiselect,textarea.uniform{font-size:12px;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-weight:normal;color:#777;border-top:solid 1px #aaa;border-left:solid 1px #aaa;border-bottom:solid 1px #ccc;border-right:solid 1px #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input.uniform-input.hover,input.uniform-input.focus,select.uniform-multiselect.hover,select.uniform-multiselect.focus,textarea.uniform.hover,textarea.uniform.focus{-webkit-box-shadow:0px 0px 4px rgba(0,0,0,0.3);-moz-box-shadow:0px 0px 4px rgba(0,0,0,0.3);box-shadow:0px 0px 4px rgba(0,0,0,0.3);border-color:#999}div.button span{font-weight:bold;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase}div.button.hover span,div.button.focus span{color:#555}div.button.disabled span,div.button.disabled.active span{color:#bbb}div.selector{font-size:12px}div.selector span{color:#666;text-shadow:0 1px 0 #fff}div.selector select{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:12px}div.selector.disabled span,div.selector.disabled.active span{color:#bbb}div.checker{margin-right:5px}div.radio{margin-right:3px}div.uploader span.action{text-shadow:#fff 0px 1px 0px;background-color:#fff;font-size:11px;font-weight:bold}div.uploader span.filename{color:#777;border-right:solid 1px #bbb;font-size:11px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{color:#aaa}div.uploader.disabled span.filename,div.uploader.disabled.active span.filename{border-color:#ddd;color:#aaa}input.uniform-input,input.uniform-input:focus{background-color:#fff}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.scss b/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.scss
new file mode 100644
index 000000000..a32e348ed
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/default/css/uniform.default.scss
@@ -0,0 +1,150 @@
+/*
+
+Uniform Theme: Uniform Default
+Version: 1.8
+By: Josh Pyles
+License: MIT License
+---
+For use with the Uniform plugin:
+http://uniformjs.com/
+
+*/
+
+$button-height: 30px;
+$button-margin-left: 13px;
+$button-padding: 8px 15px 0 2px;
+$button-span-height: 22px;
+$checkbox-height: 19px;
+$checkbox-width: 19px;
+$input-padding: 3px;
+$radio-height: 18px;
+$radio-width: 18px;
+$select-fixed-width: 190px;
+$select-height: 26px;
+$select-margin-left: 10px;
+$select-margin-right: 25px;
+$select-select-height: 22px;
+$select-select-top: 2px;
+$upload-action-width: 82px;
+$upload-filename-margin-top: 2px;
+$upload-filename-margin-bottom: 2px;
+$upload-filename-margin-left: 2px;
+$upload-filename-width: 85px;
+$upload-filename-padding: 0 10px;
+$upload-height: 28px;
+$upload-width: 190px;
+
+@import "../../_base/css/uniform._base.scss";
+
+/* INPUT & TEXTAREA */
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+#{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+#{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ font-size: 12px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #777;
+ border-top: solid 1px #aaa;
+ border-left: solid 1px #aaa;
+ border-bottom: solid 1px #ccc;
+ border-right: solid 1px #ccc;
+ @include border-radius($input-padding);
+
+ @include whenHover {
+ @include box-shadow(0px 0px 4px rgba(0,0,0,0.3));
+ border-color: #999;
+ }
+}
+
+/* PRESENTATION */
+
+/* Buttons */
+
+div#{$class-wrapper}#{$class-button} {
+ span {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ }
+
+ @include whenHover {
+ span {
+ color: #555;
+ }
+ }
+
+ @include whenDisabled {
+ span {
+ color: #bbb;
+ }
+ }
+}
+
+
+/* Select */
+
+div#{$class-wrapper}#{$class-select} {
+ font-size: 12px;
+
+ span {
+ color: #666;
+ text-shadow: 0 1px 0 #fff;
+ }
+
+ select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ }
+
+ @include whenDisabled {
+ span {
+ color: #bbb;
+ }
+ }
+}
+
+/* Checker */
+div#{$class-wrapper}#{$class-checkbox} {
+ margin-right: 5px;
+}
+
+/* Radio */
+div#{$class-wrapper}#{$class-radio} {
+ margin-right: 3px;
+}
+
+/* Uploader */
+div#{$class-wrapper}#{$class-upload} {
+ span#{$class-action} {
+ text-shadow: #fff 0px 1px 0px;
+ background-color: #fff;
+ font-size: 11px;
+ font-weight: bold;
+ }
+
+ span#{$class-filename} {
+ color: #777;
+ border-right: solid 1px #bbb;
+ font-size: 11px;
+ }
+
+ @include whenDisabled {
+ span#{$class-action} {
+ color: #aaa;
+ }
+
+ span#{$class-filename} {
+ border-color: #ddd;
+ color: #aaa;
+ }
+ }
+}
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input} {
+ &, &:focus {
+ background-color: #fff;
+ }
+}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/default/images/bg-input-focus.png b/ajax/libs/Uniform.js/2.1.2/themes/default/images/bg-input-focus.png
new file mode 100644
index 000000000..0b059d48d
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/default/images/bg-input-focus.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/default/images/bg-input.png b/ajax/libs/Uniform.js/2.1.2/themes/default/images/bg-input.png
new file mode 100644
index 000000000..485d222eb
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/default/images/bg-input.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/default/images/sprite.png b/ajax/libs/Uniform.js/2.1.2/themes/default/images/sprite.png
new file mode 100644
index 000000000..dbf7c85ff
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/default/images/sprite.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.css b/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.css
new file mode 100644
index 000000000..c04c88511
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.css
@@ -0,0 +1,385 @@
+/*
+
+Uniform Theme: Crayon
+Version: 2.0
+By: Tyler Akins
+License: MIT License
+---
+For use with the Uniform plugin:
+http://uniformjs.com/
+
+*/
+/* General settings */
+div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
+ background-image: url("../images/sprite-jeans.png");
+ background-repeat: no-repeat;
+ -webkit-font-smoothing: antialiased; }
+div.selector, div.checker, div.button, div.radio, div.uploader {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ vertical-align: middle;
+ /* Keeping this as :focus to remove browser styles */ }
+ div.selector:focus, div.checker:focus, div.button:focus, div.radio:focus, div.uploader:focus {
+ outline: 0; }
+div.selector, div.selector *, div.radio, div.radio *, div.checker, div.checker *, div.uploader, div.uploader *, div.button, div.button * {
+ margin: 0;
+ padding: 0; }
+
+.highContrastDetect {
+ background: url("../images/bg-input-jeans.png") repeat-x 0 0;
+ width: 0px;
+ height: 0px; }
+
+/* Input & Textarea */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ padding: 3px;
+ background: url("../images/bg-input-jeans.png") repeat-x 0 0;
+ outline: 0; }
+ input.uniform-input.active,
+ select.uniform-multiselect.active,
+ textarea.uniform.active {
+ background: url("../images/bg-input-focus-jeans.png") repeat-x 0 0; }
+
+/* Remove default webkit and possible mozilla .search styles.
+ * Keeping this as :active to remove browser styles */
+div.checker input,
+input[type="search"],
+input[type="search"]:active {
+ -moz-appearance: none;
+ -webkit-appearance: none; }
+
+/* Select */
+div.selector {
+ background-position: 0 -130px;
+ line-height: 26px;
+ height: 26px;
+ padding: 0 0 0 10px;
+ position: relative;
+ overflow: hidden; }
+ div.selector span {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ background-position: right 0;
+ height: 26px;
+ line-height: 26px;
+ padding-right: 25px;
+ cursor: pointer;
+ width: 100%;
+ display: block; }
+ div.selector.fixedWidth {
+ width: 190px; }
+ div.selector.fixedWidth span {
+ width: 155px; }
+ div.selector select {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ height: 22px;
+ top: 2px;
+ left: 0px;
+ width: 100%; }
+ div.selector.active {
+ background-position: 0 -156px; }
+ div.selector.active span {
+ background-position: right -26px; }
+ div.selector.hover, div.selector.focus {
+ background-position: 0 -182px; }
+ div.selector.hover span, div.selector.focus span {
+ background-position: right -52px; }
+ div.selector.hover.active, div.selector.focus.active {
+ background-position: 0 -208px; }
+ div.selector.hover.active span, div.selector.focus.active span {
+ background-position: right -78px; }
+ div.selector.disabled, div.selector.disabled.active {
+ background-position: 0 -234px; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ background-position: right -104px; }
+
+/* Checkbox */
+div.checker {
+ position: relative; }
+ div.checker, div.checker span, div.checker input {
+ width: 19px;
+ height: 19px; }
+ div.checker span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -260px; }
+ div.checker span.checked {
+ background-position: -76px -260px; }
+ div.checker input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1; }
+ div.checker.active span {
+ background-position: -19px -260px; }
+ div.checker.active span.checked {
+ background-position: -95px -260px; }
+ div.checker.hover span, div.checker.focus span {
+ background-position: -38px -260px; }
+ div.checker.hover span.checked, div.checker.focus span.checked {
+ background-position: -114px -260px; }
+ div.checker.hover.active span, div.checker.focus.active span {
+ background-position: -57px -260px; }
+ div.checker.hover.active span.checked, div.checker.focus.active span.checked {
+ background-position: -133px -260px; }
+ div.checker.disabled, div.checker.disabled.active {
+ background-position: -152px -260px; }
+ div.checker.disabled span.checked, div.checker.disabled.active span.checked {
+ background-position: -171px -260px; }
+
+/* Radio */
+div.radio {
+ position: relative; }
+ div.radio, div.radio span, div.radio input {
+ width: 18px;
+ height: 18px; }
+ div.radio span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center;
+ background-position: 0 -279px; }
+ div.radio span.checked {
+ background-position: -72px -279px; }
+ div.radio input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ text-align: center; }
+ div.radio.active span {
+ background-position: -18px -18px -279px; }
+ div.radio.active span.checked {
+ background-position: -90px -279px; }
+ div.radio.hover span, div.radio.focus span {
+ background-position: -36px -36px -279px; }
+ div.radio.hover span.checked, div.radio.focus span.checked {
+ background-position: -108px -279px; }
+ div.radio.hover.active span, div.radio.focus.active span {
+ background-position: -54px -279px; }
+ div.radio.hover.active span.checked, div.radio.focus.active span.checked {
+ background-position: -126px -279px; }
+ div.radio.disabled span, div.radio.disabled.active span {
+ background-position: -144px -279px; }
+ div.radio.disabled span.checked, div.radio.disabled.active span.checked {
+ background-position: -162px -279px; }
+
+/* Uploader */
+div.uploader {
+ background-position: 0 -297px;
+ height: 28px;
+ width: 190px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden; }
+ div.uploader span.action {
+ background-position: right -409px;
+ height: 28px;
+ line-height: 28px;
+ width: 82px;
+ text-align: center;
+ float: left;
+ display: inline;
+ overflow: hidden;
+ cursor: pointer; }
+ div.uploader span.filename {
+ text-overflow: ellipsis;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ float: left;
+ cursor: default;
+ height: 24px;
+ margin: 2px 0 2px 2px;
+ line-height: 24px;
+ width: 85px;
+ padding: 0 10px; }
+ div.uploader input {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ float: right;
+ cursor: default;
+ width: 100%;
+ height: 100%; }
+ div.uploader.active span.action {
+ background-position: right -465px; }
+ div.uploader.hover, div.uploader.focus {
+ background-position: 0 -353px; }
+ div.uploader.hover span.action, div.uploader.focus span.action {
+ background-position: right -437px; }
+ div.uploader.hover.active span.action, div.uploader.focus.active span.action {
+ background-position: right -493px; }
+ div.uploader.disabled, div.uploader.disabled.active {
+ background-position: 0 -325px; }
+ div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ background-position: right -381px; }
+
+/* Buttons */
+div.button {
+ background-position: 0 -641px;
+ height: 30px;
+ cursor: pointer;
+ position: relative;
+ /* Keep buttons barely visible so they can get focus */ }
+ div.button a, div.button button, div.button input {
+ opacity: 0.01;
+ filter: alpha(opacity=1);
+ -moz-opacity: 0.01;
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute; }
+ div.button span {
+ display: -moz-inline-box;
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ line-height: 22px;
+ text-align: center;
+ background-position: right -521px;
+ height: 22px;
+ margin-left: 12px;
+ padding: 8px 15px 0 2px; }
+ div.button.active {
+ background-position: 0 -671px; }
+ div.button.active span {
+ background-position: right -551px;
+ cursor: default; }
+ div.button.hover, div.button.focus {
+ background-position: 0 -701px; }
+ div.button.hover span, div.button.focus span {
+ background-position: right -581px; }
+ div.button.disabled, div.button.disabled.active {
+ background-position: 0 -731px; }
+ div.button.disabled span, div.button.disabled.active span {
+ background-position: right -611px;
+ cursor: default; }
+
+/* INPUT & TEXTAREA */
+input.uniform-input,
+select.uniform-multiselect,
+textarea.uniform {
+ font-size: 12px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #FFE000;
+ border-top: solid 1px #aaaaaa;
+ border-left: solid 1px #aaaaaa;
+ border-bottom: solid 1px #cccccc;
+ border-right: solid 1px #cccccc;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px; }
+ input.uniform-input:focus,
+ select.uniform-multiselect:focus,
+ textarea.uniform:focus {
+ -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3);
+ border-color: #999; }
+
+/* PRESENTATION */
+/* Buttons */
+div.button span {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ color: #FFE000; }
+div.button.hover span, div.button.focus span {
+ color: #FFE000; }
+div.button.disabled span, div.button.disabled.active span {
+ color: #FFE000; }
+
+/* Select */
+div.selector {
+ font-size: 12px; }
+ div.selector select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px; }
+ div.selector span {
+ color: #FFE000;
+ text-shadow: 0 1px 0 black; }
+ div.selector.disabled span, div.selector.disabled.active span {
+ color: #FFE000; }
+
+/* Checker */
+div.checker {
+ margin-right: 5px; }
+
+/* Radio */
+div.radio {
+ margin-right: 3px; }
+
+/* Uploader */
+div.uploader span.action {
+ text-shadow: black 0px 1px 0px;
+ background-color: #fff;
+ font-size: 11px;
+ font-weight: bold;
+ color: #FFE000; }
+div.uploader span.filename {
+ color: #FFE000;
+ font-size: 11px;
+ border-right: 1px solid #2f4368; }
+div.uploader.disabled span.action, div.uploader.disabled.active span.action {
+ color: #FFE000; }
+div.uploader.disabled span.filename, div.uploader.disabled.active span.filename {
+ border-color: #ddd;
+ color: #FFE000; }
+
+input.uniform-input, input.uniform-input:focus,
+select.uniform-multiselect,
+select.uniform-multiselect:focus,
+textarea.uniform,
+textarea.uniform:focus {
+ background-repeat: repeat; }
+
+@media only screen and (min-resolution: 124dpi), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 4 / 3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx) {
+ div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
+ background-image: url("../images/sprite-retina-jeans.png");
+ background-size: 493px; }
+
+ input.uniform-input,
+ select.uniform-multiselect,
+ textarea.uniform {
+ background-image: url("../images/bg-input-retina-jeans.png");
+ background-size: 60px; }
+ input.uniform-input.active,
+ select.uniform-multiselect.active,
+ textarea.uniform.active {
+ background-image: url("../images/bg-input-focus-retina-jeans.png"); } }
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.min.css b/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.min.css
new file mode 100644
index 000000000..a413d4257
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.min.css
@@ -0,0 +1 @@
+div.selector,div.selector span,div.checker span,div.radio span,div.uploader,div.uploader span.action,div.button,div.button span{background-image:url("../images/sprite-jeans.png");background-repeat:no-repeat;-webkit-font-smoothing:antialiased}div.selector,div.checker,div.button,div.radio,div.uploader{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;vertical-align:middle}div.selector:focus,div.checker:focus,div.button:focus,div.radio:focus,div.uploader:focus{outline:0}div.selector,div.selector *,div.radio,div.radio *,div.checker,div.checker *,div.uploader,div.uploader *,div.button,div.button *{margin:0;padding:0}.highContrastDetect{background:url("../images/bg-input-jeans.png") repeat-x 0 0;width:0px;height:0px}input.uniform-input,select.uniform-multiselect,textarea.uniform{padding:3px;background:url("../images/bg-input-jeans.png") repeat-x 0 0;outline:0}input.uniform-input.active,select.uniform-multiselect.active,textarea.uniform.active{background:url("../images/bg-input-focus-jeans.png") repeat-x 0 0}div.checker input,input[type="search"],input[type="search"]:active{-moz-appearance:none;-webkit-appearance:none}div.selector{background-position:0 -130px;line-height:26px;height:26px;padding:0 0 0 10px;position:relative;overflow:hidden}div.selector span{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;background-position:right 0;height:26px;line-height:26px;padding-right:25px;cursor:pointer;width:100%;display:block}div.selector.fixedWidth{width:190px}div.selector.fixedWidth span{width:155px}div.selector select{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;height:22px;top:2px;left:0px;width:100%}div.selector.active{background-position:0 -156px}div.selector.active span{background-position:right -26px}div.selector.hover,div.selector.focus{background-position:0 -182px}div.selector.hover span,div.selector.focus span{background-position:right -52px}div.selector.hover.active,div.selector.focus.active{background-position:0 -208px}div.selector.hover.active span,div.selector.focus.active span{background-position:right -78px}div.selector.disabled,div.selector.disabled.active{background-position:0 -234px}div.selector.disabled span,div.selector.disabled.active span{background-position:right -104px}div.checker{position:relative}div.checker,div.checker span,div.checker input{width:19px;height:19px}div.checker span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -260px}div.checker span.checked{background-position:-76px -260px}div.checker input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1}div.checker.active span{background-position:-19px -260px}div.checker.active span.checked{background-position:-95px -260px}div.checker.hover span,div.checker.focus span{background-position:-38px -260px}div.checker.hover span.checked,div.checker.focus span.checked{background-position:-114px -260px}div.checker.hover.active span,div.checker.focus.active span{background-position:-57px -260px}div.checker.hover.active span.checked,div.checker.focus.active span.checked{background-position:-133px -260px}div.checker.disabled,div.checker.disabled.active{background-position:-152px -260px}div.checker.disabled span.checked,div.checker.disabled.active span.checked{background-position:-171px -260px}div.radio{position:relative}div.radio,div.radio span,div.radio input{width:18px;height:18px}div.radio span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center;background-position:0 -279px}div.radio span.checked{background-position:-72px -279px}div.radio input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;text-align:center}div.radio.active span{background-position:-18px -18px -279px}div.radio.active span.checked{background-position:-90px -279px}div.radio.hover span,div.radio.focus span{background-position:-36px -36px -279px}div.radio.hover span.checked,div.radio.focus span.checked{background-position:-108px -279px}div.radio.hover.active span,div.radio.focus.active span{background-position:-54px -279px}div.radio.hover.active span.checked,div.radio.focus.active span.checked{background-position:-126px -279px}div.radio.disabled span,div.radio.disabled.active span{background-position:-144px -279px}div.radio.disabled span.checked,div.radio.disabled.active span.checked{background-position:-162px -279px}div.uploader{background-position:0 -297px;height:28px;width:190px;cursor:pointer;position:relative;overflow:hidden}div.uploader span.action{background-position:right -409px;height:28px;line-height:28px;width:82px;text-align:center;float:left;display:inline;overflow:hidden;cursor:pointer}div.uploader span.filename{text-overflow:ellipsis;display:block;overflow:hidden;white-space:nowrap;float:left;cursor:default;height:24px;margin:2px 0 2px 2px;line-height:24px;width:85px;padding:0 10px}div.uploader input{opacity:0;filter:alpha(opacity=0);-moz-opacity:0;border:none;background:none;position:absolute;top:0;right:0;float:right;cursor:default;width:100%;height:100%}div.uploader.active span.action{background-position:right -465px}div.uploader.hover,div.uploader.focus{background-position:0 -353px}div.uploader.hover span.action,div.uploader.focus span.action{background-position:right -437px}div.uploader.hover.active span.action,div.uploader.focus.active span.action{background-position:right -493px}div.uploader.disabled,div.uploader.disabled.active{background-position:0 -325px}div.uploader.disabled span.action,div.uploader.disabled.active span.action{background-position:right -381px}div.button{background-position:0 -641px;height:30px;cursor:pointer;position:relative}div.button a,div.button button,div.button input{opacity:0.01;filter:alpha(opacity=1);-moz-opacity:0.01;display:block;top:0;left:0;right:0;bottom:0;position:absolute}div.button span{display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;line-height:22px;text-align:center;background-position:right -521px;height:22px;margin-left:12px;padding:8px 15px 0 2px}div.button.active{background-position:0 -671px}div.button.active span{background-position:right -551px;cursor:default}div.button.hover,div.button.focus{background-position:0 -701px}div.button.hover span,div.button.focus span{background-position:right -581px}div.button.disabled,div.button.disabled.active{background-position:0 -731px}div.button.disabled span,div.button.disabled.active span{background-position:right -611px;cursor:default}input.uniform-input,select.uniform-multiselect,textarea.uniform{font-size:12px;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-weight:normal;color:#FFE000;border-top:solid 1px #aaa;border-left:solid 1px #aaa;border-bottom:solid 1px #ccc;border-right:solid 1px #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input.uniform-input:focus,select.uniform-multiselect:focus,textarea.uniform:focus{-webkit-box-shadow:0px 0px 4px rgba(0,0,0,0.3);-moz-box-shadow:0px 0px 4px rgba(0,0,0,0.3);box-shadow:0px 0px 4px rgba(0,0,0,0.3);border-color:#999}div.button span{font-weight:bold;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#FFE000}div.button.hover span,div.button.focus span{color:#FFE000}div.button.disabled span,div.button.disabled.active span{color:#FFE000}div.selector{font-size:12px}div.selector select{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:12px}div.selector span{color:#FFE000;text-shadow:0 1px 0 #000}div.selector.disabled span,div.selector.disabled.active span{color:#FFE000}div.checker{margin-right:5px}div.radio{margin-right:3px}div.uploader span.action{text-shadow:#000 0px 1px 0px;background-color:#fff;font-size:11px;font-weight:bold;color:#FFE000}div.uploader span.filename{color:#FFE000;font-size:11px;border-right:1px solid #2f4368}div.uploader.disabled span.action,div.uploader.disabled.active span.action{color:#FFE000}div.uploader.disabled span.filename,div.uploader.disabled.active span.filename{border-color:#ddd;color:#FFE000}input.uniform-input,input.uniform-input:focus,select.uniform-multiselect,select.uniform-multiselect:focus,textarea.uniform,textarea.uniform:focus{background-repeat:repeat}@media only screen and (min-resolution: 124dpi), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 4 / 3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx){div.selector,div.selector span,div.checker span,div.radio span,div.uploader,div.uploader span.action,div.button,div.button span{background-image:url("../images/sprite-retina-jeans.png");background-size:493px}input.uniform-input,select.uniform-multiselect,textarea.uniform{background-image:url("../images/bg-input-retina-jeans.png");background-size:60px}input.uniform-input.active,select.uniform-multiselect.active,textarea.uniform.active{background-image:url("../images/bg-input-focus-retina-jeans.png")}}
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.scss b/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.scss
new file mode 100644
index 000000000..4a67fe189
--- /dev/null
+++ b/ajax/libs/Uniform.js/2.1.2/themes/jeans/css/uniform.jeans.scss
@@ -0,0 +1,162 @@
+/*
+
+Uniform Theme: Crayon
+Version: 2.0
+By: Tyler Akins
+License: MIT License
+---
+For use with the Uniform plugin:
+http://uniformjs.com/
+
+*/
+
+$button-height: 30px;
+$button-margin-left: 12px;
+$button-padding: 8px 15px 0 2px;
+$button-span-height: 22px;
+$checkbox-height: 19px;
+$checkbox-width: 19px;
+$input-background-focus: "../images/bg-input-focus-jeans.png";
+$input-background-focus-retina: "../images/bg-input-focus-retina-jeans.png";
+$input-background: "../images/bg-input-jeans.png";
+$input-background-retina: "../images/bg-input-retina-jeans.png";
+$input-padding: 3px;
+$radio-height: 18px;
+$radio-width: 18px;
+$select-fixed-width: 190px;
+$select-height: 26px;
+$select-margin-left: 10px;
+$select-margin-right: 25px;
+$select-select-height: 22px;
+$select-select-top: 2px;
+$sprite: "../images/sprite-jeans.png";
+$sprite-retina: "../images/sprite-retina-jeans.png";
+$upload-action-width: 82px;
+$upload-filename-margin-top: 2px;
+$upload-filename-margin-left: 2px;
+$upload-filename-width: 85px;
+$upload-filename-padding: 0 10px;
+$upload-height: 28px;
+$upload-span-height: 24px;
+$upload-width: 190px;
+$input-background-size: 60px;
+
+@import "../../_base/css/uniform._base.scss";
+
+/* INPUT & TEXTAREA */
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+#{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+#{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ font-size: 12px;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #FFE000;
+ border-top: solid 1px #aaa;
+ border-left: solid 1px #aaa;
+ border-bottom: solid 1px #ccc;
+ border-right: solid 1px #ccc;
+ @include border-radius($input-padding);
+
+ &:focus {
+ @include box-shadow(0px 0px 4px rgba(0,0,0,0.3));
+ border-color: #999;
+ }
+}
+
+/* PRESENTATION */
+
+/* Buttons */
+
+div#{$class-wrapper}#{$class-button} {
+ span {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ color: #FFE000;
+ }
+
+ @include whenHover {
+ span {
+ color: #FFE000;
+ }
+ }
+
+ @include whenDisabled {
+ span {
+ color: #FFE000;
+ }
+ }
+}
+
+/* Select */
+
+div#{$class-wrapper}#{$class-select} {
+ font-size: 12px;
+
+ select {
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ }
+
+ span {
+ color: #FFE000;
+ text-shadow: 0 1px 0 #000;
+ }
+
+ @include whenDisabled {
+ span {
+ color: #FFE000;
+ }
+ }
+}
+
+/* Checker */
+div#{$class-wrapper}#{$class-checkbox} {
+ margin-right: 5px;
+}
+
+/* Radio */
+div#{$class-wrapper}#{$class-radio} {
+ margin-right: 3px;
+}
+
+/* Uploader */
+div#{$class-wrapper}#{$class-upload} {
+ span#{$class-action} {
+ text-shadow: #000 0px 1px 0px;
+ background-color: #fff;
+ font-size: 11px;
+ font-weight: bold;
+ color: #FFE000;
+ }
+
+ span#{$class-filename} {
+ color: #FFE000;
+ font-size: 11px;
+ border-right: 1px solid rgb(47, 67, 104);
+ }
+
+ @include whenDisabled {
+ span#{$class-action} {
+ color: #FFE000;
+ }
+
+ span#{$class-filename} {
+ border-color: #ddd;
+ color: #FFE000;
+ }
+ }
+}
+
+#{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
+#{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
+#{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
+ &, &:focus {
+ background-repeat: repeat
+ }
+}
+
+@include retina()
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-focus-jeans.png b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-focus-jeans.png
new file mode 100644
index 000000000..dd786b330
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-focus-jeans.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-focus-retina-jeans.png b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-focus-retina-jeans.png
new file mode 100644
index 000000000..15ec8a118
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-focus-retina-jeans.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-jeans.png b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-jeans.png
new file mode 100644
index 000000000..75d6e663e
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-jeans.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-retina-jeans.png b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-retina-jeans.png
new file mode 100644
index 000000000..119435f7e
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/bg-input-retina-jeans.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/sprite-jeans.png b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/sprite-jeans.png
new file mode 100644
index 000000000..53fb26b6c
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/sprite-jeans.png differ
diff --git a/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/sprite-retina-jeans.png b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/sprite-retina-jeans.png
new file mode 100644
index 000000000..448b0ec41
Binary files /dev/null and b/ajax/libs/Uniform.js/2.1.2/themes/jeans/images/sprite-retina-jeans.png differ
diff --git a/ajax/libs/Uniform.js/package.json b/ajax/libs/Uniform.js/package.json
new file mode 100644
index 000000000..b6bf3fb1a
--- /dev/null
+++ b/ajax/libs/Uniform.js/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "Uniform.js",
+ "filename": "jquery.uniform.min.js",
+ "version": "2.1.2",
+ "homepage": "http://uniformjs.com",
+ "description": "A plugin for jQuery. Make your form controls look how you want them to.",
+ "keywords": [
+ "uniform"
+ ],
+ "repositories": [
+ {
+ "type": "git",
+ "url": "git://github.com/pixelmatrix/uniform.git"
+ }
+ ]
+}