(function($){$.uniform={options:{selectClass:'selector',radioClass:'radio',checkboxClass:'checker',fileClass:'uploader',filenameClass:'filename',fileBtnClass:'action',fileDefaultText:'No file selected',fileBtnText:'Choose File',checkedClass:'checked',focusClass:'focus',disabledClass:'disabled',activeClass:'active',hoverClass:'hover',useID:true,idPrefix:'uniform',resetSelector:false},elements:[]};if($.browser.msie&&$.browser.version<7){$.selectOpacity=false;}else{$.selectOpacity=true;}
$.fn.uniform=function(options){options=$.extend($.uniform.options,options);var el=this;if(options.resetSelector!=false){$(options.resetSelector).mouseup(function(){function resetThis(){$.uniform.update(el);}
setTimeout(resetThis,10);});}
function doSelect(elem){var divTag=$('<div />'),spanTag=$('<span />');divTag.addClass(options.selectClass);if(options.useID){divTag.attr("id",options.idPrefix+"-"+elem.attr("id"));}
spanTag.html(elem.children(":selected").text());elem.css('opacity',0);elem.wrap(divTag);elem.before(spanTag);divTag=elem.parent("div");spanTag=elem.siblings("span");elem.change(function(){spanTag.text(elem.children(":selected").text());}).focus(function(){divTag.addClass(options.focusClass);}).blur(function(){divTag.removeClass(options.focusClass);}).mousedown(function(){divTag.addClass(options.activeClass);}).mouseup(function(){divTag.removeClass(options.activeClass);}).hover(function(){divTag.addClass(options.hoverClass);},function(){divTag.removeClass(options.hoverClass);}).keypress(function(){spanTag.text(elem.children(":selected").text());});if($(elem).attr("disabled")){divTag.addClass(options.disabledClass);}
storeElement(elem);}
function doCheckbox(elem){var divTag=$('<div />'),spanTag=$('<span />');divTag.addClass(options.checkboxClass);if(options.useID){divTag.attr("id",options.idPrefix+"-"+elem.attr("id"));}
$(elem).wrap(divTag);$(elem).wrap(spanTag);spanTag=elem.parent();divTag=spanTag.parent();$(elem).css("opacity",0).focus(function(){divTag.addClass(options.focusClass);}).blur(function(){divTag.removeClass(options.focusClass);}).click(function(){if(!$(elem).attr("checked")){spanTag.removeClass(options.checkedClass);}else{spanTag.addClass(options.checkedClass);}}).mousedown(function(){divTag.addClass(options.activeClass);}).mouseup(function(){divTag.removeClass(options.activeClass);}).hover(function(){divTag.addClass(options.hoverClass);},function(){divTag.removeClass(options.hoverClass);});if($(elem).attr("checked")){spanTag.addClass(options.checkedClass);}
if($(elem).attr("disabled")){divTag.addClass(options.disabledClass);}
storeElement(elem);}
function doRadio(elem){var divTag=$('<div />'),spanTag=$('<span />');divTag.addClass(options.radioClass);if(options.useID){divTag.attr("id",options.idPrefix+"-"+elem.attr("id"));}
$(elem).wrap(divTag);$(elem).wrap(spanTag);spanTag=elem.parent();divTag=spanTag.parent();$(elem).css("opacity",0).focus(function(){divTag.addClass(options.focusClass);}).blur(function(){divTag.removeClass(options.focusClass);}).click(function(){if(!$(elem).attr("checked")){spanTag.removeClass(options.checkedClass);}else{$("."+options.radioClass+" span."+options.checkedClass+":has([name='"+$(elem).attr('name')+"'])").removeClass(options.checkedClass);spanTag.addClass(options.checkedClass);}}).mousedown(function(){if(!$(elem).is(":disabled")){divTag.addClass(options.activeClass);}}).mouseup(function(){divTag.removeClass(options.activeClass);}).hover(function(){divTag.addClass(options.hoverClass);},function(){divTag.removeClass(options.hoverClass);});if($(elem).attr("checked")){spanTag.addClass(options.checkedClass);}
if($(elem).attr("disabled")){divTag.addClass(options.disabledClass);}
storeElement(elem);}
function doFile(elem){$el=$(elem);var divTag=$('<div />'),filenameTag=$('<span>'+options.fileDefaultText+'</span>'),btnTag=$('<span>'+options.fileBtnText+'</span>');divTag.addClass(options.fileClass);filenameTag.addClass(options.filenameClass);btnTag.addClass(options.fileBtnClass);if(options.useID){divTag.attr("id",options.idPrefix+"-"+$el.attr("id"));}
$el.wrap(divTag);$el.after(btnTag);$el.after(filenameTag);divTag=$el.closest("div");filenameTag=$el.siblings("."+options.filenameClass);btnTag=$el.siblings("."+options.fileBtnClass);if(!$el.attr("size")){var divWidth=divTag.width();$el.attr("size",divWidth/10);}
$el.css("opacity",0).focus(function(){divTag.addClass(options.focusClass);}).blur(function(){divTag.removeClass(options.focusClass);}).change(function(){var filename=$el.val();filename=filename.split("/");filename=filename[(filename.length-1)];filenameTag.text($el.val());}).mousedown(function(){if(!$(elem).is(":disabled")){divTag.addClass(options.activeClass);}}).mouseup(function(){divTag.removeClass(options.activeClass);}).hover(function(){divTag.addClass(options.hoverClass);},function(){divTag.removeClass(options.hoverClass);});if($el.attr("disabled")){divTag.addClass(options.disabledClass);}
storeElement(elem);}
function storeElement(elem){elem=$(elem).get();if(elem.length>1){$.each(elem,function(i,val){$.uniform.elements.push(val);});}else{$.uniform.elements.push(elem);}}
$.uniform.update=function(elem){if(elem==undefined){elem=$($.uniform.elements);}
elem=$(elem);elem.each(function(){$e=$(this);if($e.is("select")){spanTag=$e.siblings("span");divTag=$e.parent("div");divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);spanTag.html($e.children(":selected").text());if($e.is(":disabled")){divTag.addClass(options.disabledClass);}else{divTag.removeClass(options.disabledClass);}}else if($e.is(":checkbox")){spanTag=$e.closest("span");divTag=$e.closest("div");divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);spanTag.removeClass(options.checkedClass);if($e.is(":checked")){spanTag.addClass(options.checkedClass);}
if($e.is(":disabled")){divTag.addClass(options.disabledClass);}else{divTag.removeClass(options.disabledClass);}}else if($e.is(":radio")){spanTag=$e.closest("span");divTag=$e.closest("div");divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);spanTag.removeClass(options.checkedClass);if($e.is(":checked")){spanTag.addClass(options.checkedClass);}
if($e.is(":disabled")){divTag.addClass(options.disabledClass);}else{divTag.removeClass(options.disabledClass);}}else if($e.is(":file")){divTag=$e.parent("div");filenameTag=$e.siblings(options.filenameClass);btnTag=$e.siblings(options.fileBtnClass);divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);filenameTag.text($e.val());if($e.is(":disabled")){divTag.addClass(options.disabledClass);}else{divTag.removeClass(options.disabledClass);}}});}
return this.each(function(){if($.selectOpacity){var elem=$(this);if(elem.is("select")){if(elem.attr("multiple")!=true){doSelect(elem);}}else if(elem.is(":checkbox")){doCheckbox(elem);}else if(elem.is(":radio")){doRadio(elem);}else if(elem.is(":file")){doFile(elem);}}});};})(jQuery);
