(function(){var n,t,i,r=[].slice;$.browser==null&&(i=navigator.userAgent||"",jQuery.uaMatch=function(n){var t;return n=n.toLowerCase(),t=/(chrome)[ \/]([\w.]+)/.exec(n)||/(webkit)[ \/]([\w.]+)/.exec(n)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(n)||/(msie) ([\w.]+)/.exec(n)||n.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(n)||[],{browser:t[1]||"",version:t[2]||"0"}},t=jQuery.uaMatch(i),jQuery.browser={},t.browser&&(jQuery.browser[t.browser]=!0,jQuery.browser.version=t.version),jQuery.browser.webkit&&(jQuery.browser.safari=!0));n=function(){function n(t,i){var r,u,f;this.elem=$(t);u=$.extend({},n.defaults,i);for(r in u)f=u[r],this[r]=f;this.elem.data(this.dataName,this);this.wrapCheckboxWithDivs();this.attachEvents();this.disableTextSelection();this.calculateDimensions()}return n.prototype.calculateDimensions=function(){return this.resizeHandle&&this.optionallyResize("handle"),this.resizeContainer&&this.optionallyResize("container"),this.initialPosition()},n.prototype.isDisabled=function(){return this.elem.is(":disabled")},n.prototype.wrapCheckboxWithDivs=function(){return this.elem.wrap("<div class='"+this.containerClass+"' />"),this.container=this.elem.parent(),this.offLabel=$("<label class='"+this.labelOffClass+"'>\n  <span>"+this.uncheckedLabel+"<\/span>\n<\/label>").appendTo(this.container),this.offSpan=this.offLabel.children("span"),this.onLabel=$("<label class='"+this.labelOnClass+"'>\n  <span>"+this.checkedLabel+"<\/span>\n<\/label>").appendTo(this.container),this.onSpan=this.onLabel.children("span"),this.handle=$("<div class='"+this.handleClass+"'>\n  <div class='"+this.handleRightClass+"'>\n    <div class='"+this.handleCenterClass+"' />\n  <\/div>\n<\/div>").appendTo(this.container)},n.prototype.disableTextSelection=function(){if($.browser.msie)return $([this.handle,this.offLabel,this.onLabel,this.container]).attr("unselectable","on")},n.prototype._getDimension=function(n,t){return $.fn.actual!=null?n.actual(t):n[t]()},n.prototype.optionallyResize=function(n){var r,t,u,i,f;return f=this.onLabel.find("span"),i=this._getDimension(f,"width"),i+=parseInt(f.css("padding-left"),10),u=this.offLabel.find("span"),t=this._getDimension(u,"width"),t+=parseInt(u.css("padding-right"),10),n==="container"?(r=i>t?i:t,r+=this._getDimension(this.handle,"width")+this.handleMargin,this.container.css({width:r})):(r=i>t?i:t,this.handle.css({width:r}))},n.prototype.onMouseDown=function(t){var i;if(t.preventDefault(),!this.isDisabled())return i=t.pageX||t.originalEvent.changedTouches[0].pageX,n.currentlyClicking=this.handle,n.dragStartPosition=i,n.handleLeftOffset=parseInt(this.handle.css("left"),10)||0},n.prototype.onDragMove=function(t,i){var u,r;if(n.currentlyClicking===this.handle)return r=(i+n.handleLeftOffset-n.dragStartPosition)/this.rightSide,r<0&&(r=0),r>1&&(r=1),u=r*this.rightSide,this.handle.css({left:u}),this.onLabel.css({width:u+this.handleRadius}),this.offSpan.css({marginRight:-u}),this.onSpan.css({marginLeft:-(1-r)*this.rightSide})},n.prototype.onDragEnd=function(t,i){var r;if(n.currentlyClicking===this.handle)return this.isDisabled()?void 0:(n.dragging?(r=(i-n.dragStartPosition)/this.rightSide,this.elem.prop("checked",r>=.5)):this.elem.prop("checked",!this.elem.prop("checked")),n.currentlyClicking=null,n.dragging=null,this.didChange())},n.prototype.refresh=function(){return this.didChange()},n.prototype.didChange=function(){var n;if(typeof this.onChange=="function")this.onChange(this.elem,this.elem.prop("checked"));return this.isDisabled()?(this.container.addClass(this.disabledClass),!1):(this.container.removeClass(this.disabledClass),n=this.elem.prop("checked")?this.rightSide:0,this.handle.animate({left:n},this.duration),this.onLabel.animate({width:n+this.handleRadius},this.duration),this.offSpan.animate({marginRight:-n},this.duration),this.onSpan.animate({marginLeft:n-this.rightSide},this.duration))},n.prototype.attachEvents=function(){var t,i,n;return n=this,t=function(){return n.onGlobalMove.apply(n,arguments)},i=function(){return n.onGlobalUp.apply(n,arguments),$(document).unbind("mousemove touchmove",t),$(document).unbind("mouseup touchend",i)},this.elem.change(function(){return n.refresh()}),this.container.bind("mousedown touchstart",function(){return n.onMouseDown.apply(n,arguments),$(document).bind("mousemove touchmove",t),$(document).bind("mouseup touchend",i)})},n.prototype.initialPosition=function(){var n,t;return n=this._getDimension(this.container,"width"),this.offLabel.css({width:n-this.containerRadius}),t=this.containerRadius+1,$.browser.msie&&$.browser.version<7&&(t-=3),this.rightSide=n-this._getDimension(this.handle,"width")-t+1,this.elem.is(":checked")?(this.handle.css({left:this.rightSide}),this.onLabel.css({width:this.rightSide+this.handleRadius}),this.offSpan.css({marginRight:-this.rightSide})):(this.onLabel.css({width:0}),this.onSpan.css({marginLeft:-this.rightSide})),this.isDisabled()?this.container.addClass(this.disabledClass):void 0},n.prototype.onGlobalMove=function(t){var i;if(!this.isDisabled()&&n.currentlyClicking){t.preventDefault();i=t.pageX||t.originalEvent.changedTouches[0].pageX;!n.dragging&&Math.abs(n.dragStartPosition-i)>this.dragThreshold&&(n.dragging=!0);return this.onDragMove(t,i)}},n.prototype.onGlobalUp=function(t){var i;if(n.currentlyClicking){t.preventDefault();i=t.pageX||t.originalEvent.changedTouches[0].pageX;this.onDragEnd(t,i);return!1}},n.defaults={duration:200,checkedLabel:"ON",uncheckedLabel:"OFF",resizeHandle:!0,resizeContainer:!0,disabledClass:"iPhoneCheckDisabled",containerClass:"iPhoneCheckContainer",labelOnClass:"iPhoneCheckLabelOn",labelOffClass:"iPhoneCheckLabelOff",handleClass:"iPhoneCheckHandle",handleCenterClass:"iPhoneCheckHandleCenter",handleRightClass:"iPhoneCheckHandleRight",dragThreshold:5,handleMargin:15,handleRadius:4,containerRadius:5,dataName:"iphoneStyle",onChange:function(){}},n}();$.iphoneStyle=this.iOSCheckbox=n;$.fn.iphoneStyle=function(){var t,f,o,i,s,h,u,c,l,a,e,v;for(t=1<=arguments.length?r.call(arguments,0):[],o=(l=(a=t[0])!=null?a.dataName:void 0)!=null?l:n.defaults.dataName,e=this.filter(":checkbox"),u=0,c=e.length;u<c;u++)f=e[u],i=$(f).data(o),i!=null?(s=t[0],h=2<=t.length?r.call(t,1):[],(v=i[s])!=null&&v.apply(i,h)):new n(f,t[0]);return this};$.fn.iOSCheckbox=function(n){var t;return n==null&&(n={}),t=$.extend({},n,{resizeHandle:!1,disabledClass:"iOSCheckDisabled",containerClass:"iOSCheckContainer",labelOnClass:"iOSCheckLabelOn",labelOffClass:"iOSCheckLabelOff",handleClass:"iOSCheckHandle",handleCenterClass:"iOSCheckHandleCenter",handleRightClass:"iOSCheckHandleRight",dataName:"iOSCheckbox"}),this.iphoneStyle(t)}}).call(this)