(function($){var $settings,$prefix="ui-formulate",$hover=$prefix+"-hover",$active=$prefix+"-active",$redraw=$prefix+"-redraw",$current=$prefix+"-current",$scroller=$prefix+"-scroller",$selected=$prefix+"-selected",$disabled=$prefix+"-disabled",$listwrap=$prefix+"-list-wrap",$scrollable=$prefix+"-scrollable",$scrollup=$prefix+"-scroll-up",$scrolldown=$prefix+"-scroll-down",$noformulate=$prefix+"-ignore",$previousEvent,$winHeight,$winTop,$keyDownElement,$keyDownTarget,$winLeft;var HTML={WRAPPER:'<div class="'+$prefix+'"><div class="'+$prefix+'-wrap"></div></div>',SUBMIT:'<span class="'+$prefix+'-value"></span>',LIST:{WRAP:'<div class="'+$listwrap+'"><ul></ul></div>',ITEM:'<li><a href="#"></a></li>',VALUE:'<span class="'+$current+'"></span>'},SCROLL:{UP:'<span class="'+$scroller+" "+$prefix+'-up" rel="up"></span>',DOWN:'<span class="'+$scroller+" "+$prefix+'-down" rel="down"></span>'}};var CACHE=[];var WIN=$(window),DOC=$(document);var parseNum=window.parseFloat;var inlineBlock=(function(){if(typeof $.support.inlineBlock!=="undefined"){return $.support.inlineBlock}var dummy=$("<div></div>").css("display","inline-block");$.extend($.support,{inlineBlock:(dummy.css("display")==="inline-block")});dummy.remove();return $.support.inlineBlock})();var textOverflow=(function(){if(typeof $.support.textOverflow!=="undefined"){return $.support.textOverflow}var dummy=$("<div></div>").css("text-overflow","ellipsis");$.extend($.support,{textOverflow:(dummy.css("text-overflow")==="ellipsis")&&!$.browser.msie});dummy.remove();return $.support.textOverflow})();var overrideChecked=(function(){$.extend($.expr[":"],{checked:function(elem){var el=$(elem);var value=(elem.checked===true);return !el.data("eventTriggered")?value:!value}})})();var triggeredEventFix=function(e){e.stopPropagation();var el=$(this);el.data("eventTriggered",!e.originalEvent);if(el.is(":radio")&&(this.checked===true)){el.data("eventTriggered",!el.data("eventTriggered"))}window.setTimeout(function(){el.removeData("eventTriggered")},10)};var fadeOut=function(el,timer,callback){if($.browser.msie){callback()}else{el.fadeOut(timer,callback)}};var hideActiveSelects=function(parent){var active=$("."+$prefix+"-select."+$prefix+"-focus");if(active[0]&&(!parent||(parent&&!parent.hasClass($active)))){active.find("select").blur()}};var checkIfDisabled=function(parent){return parent.hasClass($disabled)};var elements={wrap:function(el){var clone=el.clone(true);var tag=clone[0].nodeName.toLowerCase();var name=$prefix+"-"+((tag==="input")?clone.attr("type"):tag);clone.wrap(HTML.WRAPPER).parent().parent().addClass(name).addClass(clone.attr("class"));return clone},disabled:function(el){var wrapper=el.parent(),parent=wrapper.parent();if(el.attr("disabled")){parent.addClass($disabled)}},style:function(el,o){var height=el[0].offsetHeight,wrapper=el.parent(),parent=wrapper.parent();height=($settings.minHeight>height)?$settings.minHeight:height;if(!parent.data("styled")){var props=["margin-left","margin-top","margin-right","margin-bottom","float"];$.each(props,function(i,prop){parent.css(prop,o.css(prop));el.css(prop,(prop=="float")?"none":0)});if(el.css("display")=="block"){parent.css("display","block");parent.css("width",el.data("originalWidth")||el.width())}el.addClass($prefix+"-hide");parent.data("styled",true)}wrapper.css("line-height",height+"px")},accessibility:function(el,o){var keyDownEvent=function(e){if(e.shiftKey||e.ctrlKey||e.altKey||e.metaKey){return true}e.preventDefault();if(WIN.data("keytime")){window.clearTimeout(WIN.data("keytime"));WIN.removeData("keytime")}WIN.data("keydown",true);$previousEvent=e.type;var el=$keyDownElement,parent=el.parent().parent(),list=parent.find("."+$listwrap),hover=list.find("."+$hover),name=$keyDownTarget,newEl;if(!hover.get(0)){hover=list.find("."+$selected)}switch(e.which){case 9:parent.removeClass($active);el.blur();break;case 13:if(!parent.hasClass($active)){parent.trigger("click")}break;case 27:if(name=="select"){DOC.trigger("mousedown")}break;case 32:if(name=="select"&&!parent.hasClass($active)){parent.trigger("click")}break;case 38:case 40:if(name=="select"){if(parent.hasClass($active)){newEl=(e.which==38)?hover.prev():hover.next();if(newEl[0]){hover.removeClass($hover);newEl.addClass($hover);if(list.hasClass($scrollable)){scrollIntoView(newEl,list)}}}else{parent.trigger("click")}}break;default:break}};var keyPressEvent=function(e){if(e.shiftKey||e.ctrlKey||e.altKey||e.metaKey){return true}e.preventDefault();if($previousEvent==e.type){e.which=e.which||e.keyCode||e.charCode;keyDownEvent.call(this,e)}$previousEvent=e.type};var keyUpEvent=function(e){WIN.data("keytime",window.setTimeout(function(){WIN.removeData("keydown")},250))};var mouseDownEvent=function(e){var target=$(e.target),parent=target.parents().andSelf().filter("."+$prefix);if(!parent[0]){$keyDownElement.blur();$(this).unbind("mousedown",mouseDownEvent)}};var label=o.closest("label");if(label.get(0)){var evt=function(e){var el=$(this),wrap="."+$prefix;e.preventDefault();if(!$(e.target).closest(wrap)[0]){el.find(wrap).trigger(e.type)}};label.click(evt);label.mousedown(evt);label.mouseout(evt);label.mouseover(evt)}el.focus(function(e){e.stopPropagation();var el=$(this),wrapper=el.parent(),parent=wrapper.parent(),name=(el.is("input"))?el.attr("type"):el[0].tagName.toLowerCase();switch(name){case"select":case"radio":case"checkbox":$keyDownElement=el;$keyDownTarget=name;if(!DOC.data("eventsBound")){DOC.keydown(keyDownEvent).keyup(keyUpEvent).keypress(keyPressEvent).mousedown(mouseDownEvent)}DOC.data("eventsBound",true);if(name==="select"){parent.trigger("mouseover")}break;default:break}hideActiveSelects();el.parent().parent().addClass($prefix+"-focus")});el.blur(function(e){e.stopPropagation();var el=$(this),wrapper=el.parent(),parent=wrapper.parent(),name=(el.is("input"))?el.attr("type"):el[0].tagName.toLowerCase();switch(name){case"select":DOC.unbind("keydown",keyDownEvent).unbind("keyup",keyUpEvent).unbind("keypress",keyPressEvent);DOC.removeData("eventsBound");parent.removeClass($active);break;case"radio":case"checkbox":DOC.unbind("keydown",keyDownEvent).unbind("keyup",keyUpEvent).unbind("keypress",keyPressEvent);break;default:break}parent.removeClass($active).removeClass($prefix+"-focus")})},checks:function(el){var wrapper=el.parent(),parent=wrapper.parent();var type=el.attr("type");if(el.is(":checked")){parent.addClass($prefix+"-"+type+"-checked")}parent.mousedown(function(e){e.preventDefault();e.stopPropagation();if(checkIfDisabled(parent)){return false}if(el.is(":checked")){parent.addClass($prefix+"-"+type+"-active-checked")}else{parent.addClass($prefix+"-"+type+"-active")}hideActiveSelects()});parent.mouseout(function(e){e.preventDefault();e.stopPropagation();if(checkIfDisabled(parent)){return false}parent.removeClass($prefix+"-"+type+"-active").removeClass($prefix+"-"+type+"-active-checked")});parent.click(function(e){e.preventDefault();e.stopPropagation();if(checkIfDisabled(parent)){return false}el.trigger("click");var currentStatus=el.is(":checked");if(currentStatus!==el.attr("checked")){el.attr("checked",currentStatus)}});el.click(triggeredEventFix);el.click(function(e){e.preventDefault();e.stopPropagation();if(checkIfDisabled(parent)){return false}var checked=el.is(":checked");if((type=="radio")&&el.attr("name")){var els=el.closest("form").find("input[type="+type+"][name="+el.attr("name")+"]").not(el);els.closest("."+$prefix).removeClass($prefix+"-"+type+"-checked")}if(checked){parent.addClass($prefix+"-"+type+"-checked")}else{parent.removeClass($prefix+"-"+type+"-checked")}parent.removeClass($prefix+"-"+type+"-active").removeClass($prefix+"-"+type+"-active-checked")})},submits:function(el){var wrapper=el.parent(),height=wrapper.height(),parent=wrapper.parent();wrapper.prepend($(HTML.SUBMIT).text(el.val()));parent.mousedown(function(e){e.preventDefault();e.stopPropagation();if(checkIfDisabled(parent)){return false}hideActiveSelects()});el.click(function(e){e.stopPropagation();if(el.attr("type")=="reset"){var form=el.closest("form"),inputs=form[0].getElementsByTagName("input");$.each(inputs,function(){if(this.type=="text"||this.type=="password"){this.value=""}if(this.type=="checkbox"||this.type=="radio"){var parent=$(this).closest("."+$prefix+"-checkbox-checked");parent.trigger("click")}})}});parent.click(function(e){e.preventDefault();e.stopPropagation();if(checkIfDisabled(parent)){return false}el.click()})},selects:function(el,o){var wrapper=el.parent(),height=wrapper.height(),parent=wrapper.parent(),dropContainer=$($("."+$prefix+"-select-container").get(0)||$('<div class="'+$prefix+'-select-container"></div>').appendTo(document.body)),list=$(HTML.LIST.WRAP).appendTo(dropContainer),ul=list.find("ul"),options=el.children(),chromePadding=15,arrowHeight=20;parent.data("list",list);list.data("parent",parent);wrapper.css("min-width",o.outerWidth(true));list.css("min-width",o.outerWidth(true)+20);function setSelectedIndex(target){selectedIndex=options.eq(el.attr("selectedIndex"));target.text(selectedIndex.text()).attr("data-value",selectedIndex.attr("value"));return target}function bindMouseWheelEvent(target,up,down){target.bind("wheel",function(e){if(parent.hasClass($active)){e.preventDefault();if(target.parent().hasClass($scrollable)){var mouseWheelDown=(e.delta>0),top=parseFloat(target.css("top")),maxTop=-(target.height()-target.parent().height()+arrowHeight);if(mouseWheelDown){up.trigger("mouseenter").trigger("mouseleave");target.css("top",Math.min(arrowHeight,top+(e.delta*7)))}else{down.trigger("mouseenter").trigger("mouseleave");target.css("top",Math.max(maxTop,top+(e.delta*7)))}}}})}function generateOverflowButtons(target){var up=$(HTML.SCROLL.UP).appendTo(target),down=$(HTML.SCROLL.DOWN).appendTo(target),ul=target.find("ul");var animate=function(top,diff,callback){ul.stop().animate({top:top},{duration:1000*(diff/500),easing:"linear",complete:callback})};var stop=function(){ul.stop()};up.hover(function(e){var queueUpScroll=function(){var maxTop=arrowHeight,topDiff=maxTop-parseFloat(ul.css("top"));animate(maxTop,topDiff)};expandToFullPageHeight(target,queueUpScroll)},stop);down.hover(function(e){var queueDownScroll=function(){var selected=target.find("li[data-value="+current.attr("data-value")+"]"),selectedTop=selected.position().top,selectedHeight=selected.outerHeight(true),trueTop=(target.offset().top-selectedTop)-WIN.scrollTop();var maxTop=ul.outerHeight(true)-target.outerHeight(true)+arrowHeight,topDiff=maxTop+parseFloat(ul.css("top"));animate(-maxTop,topDiff)};expandToFullPageHeight(target,queueDownScroll)},stop);bindMouseWheelEvent(ul,up,down)}function expandToFullPageHeight(target,callback){callback()}function flagButtonsAsActive(target){target.addClass($scrollable)}function setDropDownListProperties(target){positionDropDownList(target);setMaxDropDownListHeight(target)}function resetDropDownListProperties(target){target.css({top:"",height:""});target.find("ul").css("top","");target.removeClass($scrollable).removeClass($scrollup).removeClass($scrolldown)}function positionDropDownList(target){var offset=current.offset();target.css(offset)}function positionActiveItem(target,item,exact){var itemPos=item.position(),ulPos=ul.position(),targetHeight=target.height(),isBelowActive=((itemPos.top+item.outerHeight(true)+ulPos.top))-targetHeight,isAboveActive=(itemPos.top+ulPos.top);if(isBelowActive>0){ul.css("top",ulPos.top-isBelowActive-arrowHeight)}else{if(isAboveActive<=arrowHeight){var minVal=-(ul.height()-targetHeight);var value=Math.max(-(itemPos.top-arrowHeight),minVal);ul.css("top",value)}}}function setMaxDropDownListHeight(target){var winHeight=WIN.height(),winTop=WIN.scrollTop(),targetTop=list.offset().top,targetHeight=list.height(),combinedTop=targetTop-winTop,combinedTotal=targetHeight+combinedTop,minHeight=300;if(combinedTotal>winHeight){var ul=target.find("ul"),ulOffset=parseFloat(ul.css("top")),totalHeight=winHeight-combinedTop-chromePadding;ul.height(ul.outerHeight(true));if(!isNaN(ulOffset)&&(ul.height()+ulOffset)<totalHeight){totalHeight=targetHeight+ulOffset}if(totalHeight<minHeight){if(ulOffset<0){ul.css("top",-ul.height()+minHeight)}totalHeight=Math.min(ul.height(),minHeight)}var isBelowWindow=(totalHeight+targetTop)-(winHeight+winTop-chromePadding);var isAboveWindow=(winTop+chromePadding)-(targetTop);if(isBelowWindow>0){target.css("top",targetTop-isBelowWindow)}else{if(isAboveWindow>0){target.css("top",targetTop+isAboveWindow)}}flagButtonsAsActive(target);target.height(totalHeight);positionActiveItem(target,target.find("li[data-value="+current.attr("data-value")+"]"),true);if(target.hasClass($scrollup)){target.css("top",targetTop-arrowHeight)}}}function showActiveDropDown(parent){var list=parent.data("list");if(list){bindAlphaListener(list);list.addClass($active).parent().addClass($active)}}function hideActiveDropDown(parent){unbindAlphaListener();var list=parent.data("list");if(list){list.removeClass($active).parent().removeClass($active)}}function alphaListener(e){if(e.crtlKey||e.metaKey||e.shiftKey||e.altKey){return true}var selected=$(ul.find("."+$selected).get(0)||ul.children().get(0));switch(e.which){case 13:case 32:selected.trigger("mousedown");break;case 39:case 40:var next=selected.next();if(next.get(0)){selected.removeClass($selected);next.addClass($selected);positionActiveItem(list,next)}break;case 37:case 38:var prev=selected.prev();if(prev.get(0)){selected.removeClass($selected);prev.addClass($selected);positionActiveItem(list,prev)}break;default:var alpha=new Array(48).concat(("0123456789abcdefghijklmnopqrstuvwxyz").split(""));alpha.splice(58,0,null,null,null,null,null,null,null);var key=alpha[e.which],items=ul.children(),breakLoop;for(var i=items.index(selected),j=items.length;i<j;i++){var item=$(items[i]);if(item.text().split("")[0]){text=item.text().split("")[0].toLowerCase()}if((key===text)&&!item.hasClass($selected)){items.removeClass($selected);item.addClass($selected);if(list.hasClass($scrollable)){positionActiveItem(list,item)}break}if(!breakLoop&&(i===items.length-1)){i=-1;breakLoop=true}}break}}function bindAlphaListener(target){DOC.bind("keydown",alphaListener)}function unbindAlphaListener(){DOC.unbind("keydown",alphaListener)}dropContainer.width(WIN.width()).height($(document.body).height()).bind("wheel",function(e){e.preventDefault()});var current=setSelectedIndex($("<span></span>").addClass($current).appendTo(wrapper));parent.one("mouseover",function(e){var selectedOption=options.get(el.attr("selectedIndex")),selected;options.each(function(){selected=this===selectedOption?'class="'+$selected+'"':"";$('<li data-value="'+$(this).attr("value")+'"'+selected+">"+$(this).text()+"</li>").appendTo(ul)});generateOverflowButtons(list);var items=ul.children();items.hover(function(e){$(this).addClass($hover)},function(e){$(this).removeClass($hover)});items.mousedown(function(e){e.preventDefault();e.stopPropagation();var item=$(this);el.val(item.attr("data-value"));el.trigger("change",true);current=setSelectedIndex(current);items.removeClass($selected);item.addClass($selected);el.blur()})});parent.click(function(e){e.preventDefault();if(checkIfDisabled(parent)){return false}if(!parent.hasClass($active)){el.focus();showActiveDropDown(parent);setDropDownListProperties(list)}});el.blur(function(){hideActiveDropDown(parent);resetDropDownListProperties(list)});el.change(function(e,breaker){e.stopPropagation();if(breaker){e.preventDefault();return false}var el=$(this),wrapper=el.parent(),parent=wrapper.parent(),current=parent.find("."+$current);var val=el.val(),selected=parent.find("li[data-value="+val+"]");var evt=$.Event({type:"click",force:true});if(!selected.get(0)&&!parent.find("li").get(0)){parent.find(".ui-formulate-current").text(el.children().filter(function(){return $(this).attr("value")==val}).text())}else{selected.trigger(evt)}})},inject:function(el){if($settings.inject){var wrapper=el.parent(),parent=wrapper.parent();$settings.inject.call(el,parent,wrapper)}},replace:function(clone,el){var parent=clone.parent().parent();if($.browser.safari){CACHE.push({node:el,clone:parent})}el.replaceWith(parent)},unload:function(){$.each(CACHE,function(i,obj){obj.clone.replaceWith(obj.node)})}};$.fn.enable=function(disable){return this.each(function(){var el=$(this),parent=el.closest("."+$prefix);if(!disable){el.removeAttr("disabled");parent.removeClass($disabled)}else{el.attr("disabled","disabled");parent.addClass($disabled)}})};$.fn.disable=function(){return $(this).enable(true)};$.fn.formulate=function(options){if(!$.support.inlineBlock||($.browser.msie&&$.browser.version<=6)){this.filter(function(){return $(this).is(":checkbox")||$(this).is(":radio")}).click(triggeredEventFix);return this}$settings=$.extend({},$.fn.formulate.defaults,options);return this.filter(function(){var el=$(this),type=el.attr("type"),supported=!(/button|file|hidden|image/).test(type);return !el.hasClass($noformulate)&&supported&&el.is(":visible")&&!(el.hasClass($prefix+"-button")&&el.find("a").get(0))}).each(function(){var el=$(this);var wrapper=el.closest("."+$prefix);if(wrapper.get(0)){if(wrapper.data("styled")){var props=["margin-left","margin-top","margin-right","margin-bottom","float"];$.each(props,function(i,prop){el.css(prop,"")});wrapper.removeData("styled")}el.removeClass($prefix+"-hide");el.removeData("eventTriggered");el.removeData("originalWidth");wrapper.replaceWith(el)}var type=el.attr("type");var clone=elements.wrap(el);if(!el.hasClass("ui-formulate-button")){el.data("originalWidth",el.width());clone.data("originalWidth",el.data("originalWidth"));elements.disabled(clone);if((type!=="checkbox")&&(type!=="radio")){elements.style(clone,el);if(type=="submit"||type=="reset"){elements.submits(clone)}else{if(clone[0].nodeName.toLowerCase()=="select"){elements.selects(clone,el)}}}else{clone.addClass($prefix+"-hide");elements.checks(clone)}elements.accessibility(clone,el)}else{clone.removeClass($prefix+"-button");clone.addClass($prefix+"-value")}if($settings.inject){elements.inject(clone)}elements.replace(clone,el);if($.browser.safari){$(window).bind("unload",elements.unload)}})};$.fn.formulate.defaults={windowPadding:8,minHeight:22,fadeOutTimer:250,onexpand:null,inject:function(wrapper,parent){wrapper.append('<span class="ui-formulate-cap"></span>')}}})(jQuery);(function($){$.fn.wheel=function(fn){return this[fn?"bind":"trigger"]("wheel",fn)};$.event.special.wheel={setup:function(){$.event.add(this,wheelEvents,wheelHandler,{})},teardown:function(){$.event.remove(this,wheelEvents,wheelHandler)}};var wheelEvents=!$.browser.mozilla?"mousewheel":"DOMMouseScroll"+($.browser.version<"1.9"?" mousemove":"");var wheelHandler=function(event){switch(event.type){case"mousemove":return $.extend(event.data,{clientX:event.clientX,clientY:event.clientY,pageX:event.pageX,pageY:event.pageY});case"DOMMouseScroll":$.extend(event,event.data);event.delta=-event.detail/3;break;case"mousewheel":event.delta=event.wheelDelta/120;if($.browser.opera){event.delta*=-1}break}event.type="wheel";return $.event.handle.call(this,event,event.delta)}})(jQuery);