1234567891011121314 |
- /*! ============================================================
- * bootstrapSwitch v1.5 by Larentis Mattia @SpiritualGuru
- * http://www.larentis.eu/
- *
- * Enhanced for radiobuttons by Stein, Peter @BdMdesigN
- * http://www.bdmdesign.org/
- *
- * Project site:
- * http://www.larentis.eu/switch/
- * ============================================================
- * Licensed under the Apache License, Version 2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- * ============================================================ */
- !function(a){a.fn.bootstrapSwitch=function(c){var b={init:function(){return this.each(function(){var p=a(this),m,f,l,o,q=p.closest("form"),h="",g=p.attr("class"),i,d,j="ON",e="OFF",n=false;a.each(["switch-mini","switch-small","switch-large"],function(r,s){if(g.indexOf(s)>=0){h=s}});p.addClass("has-switch");if(p.data("on")!==undefined){i="switch-"+p.data("on")}if(p.data("on-label")!==undefined){j=p.data("on-label")}if(p.data("off-label")!==undefined){e=p.data("off-label")}if(p.data("icon")!==undefined){n=p.data("icon")}f=a("<span>").addClass("switch-left").addClass(h).addClass(i).html(j);i="";if(p.data("off")!==undefined){i="switch-"+p.data("off")}l=a("<span>").addClass("switch-right").addClass(h).addClass(i).html(e);o=a("<label>").html(" ").addClass(h).attr("for",p.find("input").attr("id"));if(n){o.html('<i class="icon icon-'+n+'"></i>')}m=p.find("input").wrap(a("<div>")).parent().data("animated",false);if(p.data("animated")!==false){m.addClass("switch-animate").data("animated",true)}m.append(f).append(o).append(l);p.find(">div").addClass(p.find("input").is(":checked")?"switch-on":"switch-off");if(p.find("input").is(":disabled")){a(this).addClass("deactivate")}var k=function(r){r.siblings("label").trigger("mousedown").trigger("mouseup").trigger("click")};p.on("keydown",function(r){if(r.keyCode===32){r.stopImmediatePropagation();r.preventDefault();k(a(r.target).find("span:first"))}});f.on("click",function(r){k(a(this))});l.on("click",function(r){k(a(this))});p.find("input").on("change",function(w,u){var v=a(this),s=v.parent(),r=v.is(":checked"),t=s.is(".switch-off");w.preventDefault();s.css("left","");if(t===r){if(r){s.removeClass("switch-off").addClass("switch-on")}else{s.removeClass("switch-on").addClass("switch-off")}if(s.data("animated")!==false){s.addClass("switch-animate")}if(typeof u==="boolean"&&u){return}s.parent().trigger("switch-change",{el:v,value:r})}});p.find("label").on("mousedown touchstart",function(s){var r=a(this);d=false;s.preventDefault();s.stopImmediatePropagation();r.closest("div").removeClass("switch-animate");if(r.closest(".has-switch").is(".deactivate")){r.unbind("click")}else{r.on("mousemove touchmove",function(y){var t=a(this).closest(".switch"),v=(y.pageX||y.originalEvent.targetTouches[0].pageX)-t.offset().left,w=(v/t.width())*100,x=25,u=75;d=true;if(w<x){w=x}else{if(w>u){w=u}}t.find(">div").css("left",(w-u)+"%")});r.on("click touchend",function(w){var v=a(this),t=a(w.target),u=t.siblings("input");w.stopImmediatePropagation();w.preventDefault();v.unbind("mouseleave");if(d){u.prop("checked",!(parseInt(v.parent().css("left"))<-25))}else{u.prop("checked",!u.is(":checked"))}d=false;u.trigger("change")});r.on("mouseleave",function(v){var u=a(this),t=u.siblings("input");v.preventDefault();v.stopImmediatePropagation();u.unbind("mouseleave");u.trigger("mouseup");t.prop("checked",!(parseInt(u.parent().css("left"))<-25)).trigger("change")});r.on("mouseup",function(t){t.stopImmediatePropagation();t.preventDefault();a(this).unbind("mousemove")})}});if(q.data("bootstrapSwitch")!=="injected"){q.bind("reset",function(){setTimeout(function(){q.find(".switch").each(function(){var r=a(this).find("input");r.prop("checked",r.is(":checked")).trigger("change")})},1)});q.data("bootstrapSwitch","injected")}})},toggleActivation:function(){var d=a(this);d.toggleClass("deactivate");d.find("input:checkbox").attr("disabled",d.is(".deactivate"))},isActive:function(){return !a(this).hasClass("deactivate")},setActive:function(e){var d=a(this);if(e){d.removeClass("deactivate");d.find("input:checkbox").attr("disabled",false)}else{d.addClass("deactivate");d.find("input:checkbox").attr("disabled",true)}},toggleState:function(d){var e=a(this).find("input[type=checkbox]");e.prop("checked",!e.is(":checked")).trigger("change",d)},toggleRadioState:function(d){a(this).find("input[type=radio]").not(":checked").trigger("change",d)},setState:function(e,d){a(this).find("input").prop("checked",e).trigger("change",d)},status:function(){return a(this).find("input").is(":checked")},destroy:function(){var f=a(this),e=f.find("div"),g=f.closest("form"),d;e.find(":not(input)").remove();d=e.children();d.unwrap().unwrap();d.unbind("change");if(g){g.unbind("reset");g.removeData("bootstrapSwitch")}return d}};if(b[c]){return b[c].apply(this,Array.prototype.slice.call(arguments,1))}else{if(typeof c==="object"||!c){return b.init.apply(this,arguments)}else{a.error("Method "+c+" does not exist!")}}}}(jQuery);(function(){jQuery(".switch")["bootstrapSwitch"]()})();
|