// usage: log('inside coolFunc', this, arguments); // paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ window.log = function f(){ log.history = log.history || []; log.history.push(arguments); if(this.console) { var args = arguments, newarr; args.callee = args.callee.caller; newarr = [].slice.call(args); if (typeof console.log === 'object') log.apply.call(console.log, console, newarr); else console.log.apply(console, newarr);}}; // make it safe to use console.log always (function(a){function b(){}for(var c="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),d;!!(d=c.pop());){a[d]=a[d]||b;}}) (function(){try{console.log();return window.console;}catch(a){return (window.console={});}}()); // place any jQuery/helper plugins in here, instead of separate, slower script files. /* ========================================================== * Bootstrap Javascript Plugins * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ========================================================== */ /* ========================================================== * bootstrap-alert.js v2.0.0 * http://twitter.github.com/bootstrap/javascript.html#alerts * ========================================================== */ !function($){var dismiss='[data-dismiss="alert"]',Alert=function(el){$(el).on("click",dismiss,this.close);};Alert.prototype={constructor:Alert,close:function(e){var $this=$(this),selector=$this.attr("data-target"),$parent;if(!selector){selector=$this.attr("href");selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"");}$parent=$(selector);$parent.trigger("close");e&&e.preventDefault();$parent.length||($parent=$this.hasClass("alert")?$this:$this.parent());$parent.removeClass("in");function removeElement(){$parent.remove();$parent.trigger("closed");}$.support.transition&&$parent.hasClass("fade")?$parent.on($.support.transition.end,removeElement):removeElement();}};$.fn.alert=function(option){return this.each(function(){var $this=$(this),data=$this.data("alert");if(!data){$this.data("alert",(data=new Alert(this)));}if(typeof option=="string"){data[option].call($this);}});};$.fn.alert.Constructor=Alert;$(function(){$("body").on("click.alert.data-api",dismiss,Alert.prototype.close);});}(window.jQuery); /* ============================================================ * bootstrap-button.js v2.0.0 * http://twitter.github.com/bootstrap/javascript.html#buttons * ============================================================ */ !function($){var Button=function(element,options){this.$element=$(element);this.options=$.extend({},$.fn.button.defaults,options);};Button.prototype={constructor:Button,setState:function(state){var d="disabled",$el=this.$element,data=$el.data(),val=$el.is("input")?"val":"html";state=state+"Text";data.resetText||$el.data("resetText",$el[val]());$el[val](data[state]||this.options[state]);setTimeout(function(){state=="loadingText"?$el.addClass(d).attr(d,d):$el.removeClass(d).removeAttr(d);},0);},toggle:function(){var $parent=this.$element.parent('[data-toggle="buttons-radio"]');$parent&&$parent.find(".active").removeClass("active");this.$element.toggleClass("active");}};$.fn.button=function(option){return this.each(function(){var $this=$(this),data=$this.data("button"),options=typeof option=="object"&&option;if(!data){$this.data("button",(data=new Button(this,options)));}if(option=="toggle"){data.toggle();}else{if(option){data.setState(option);}}});};$.fn.button.defaults={loadingText:"loading..."};$.fn.button.Constructor=Button;$(function(){$("body").on("click.button.data-api","[data-toggle^=button]",function(e){$(e.target).button("toggle");});});}(window.jQuery); /* ========================================================== * bootstrap-carousel.js v2.0.0 * http://twitter.github.com/bootstrap/javascript.html#carousel * ========================================================== */ !function($){var Carousel=function(element,options){this.$element=$(element);this.options=$.extend({},$.fn.carousel.defaults,options);this.options.slide&&this.slide(this.options.slide);};Carousel.prototype={cycle:function(){this.interval=setInterval($.proxy(this.next,this),this.options.interval);return this;},to:function(pos){var $active=this.$element.find(".active"),children=$active.parent().children(),activePos=children.index($active),that=this;if(pos>(children.length-1)||pos<0){return;}if(this.sliding){return this.$element.one("slid",function(){that.to(pos);});}if(activePos==pos){return this.pause().cycle();}return this.slide(pos>activePos?"next":"prev",$(children[pos]));},pause:function(){clearInterval(this.interval);return this;},next:function(){if(this.sliding){return;}return this.slide("next");},prev:function(){if(this.sliding){return;}return this.slide("prev");},slide:function(type,next){var $active=this.$element.find(".active"),$next=next||$active[type](),isCycling=this.interval,direction=type=="next"?"left":"right",fallback=type=="next"?"first":"last",that=this;this.sliding=true;isCycling&&this.pause();$next=$next.length?$next:this.$element.find(".item")[fallback]();if(!$.support.transition&&this.$element.hasClass("slide")){this.$element.trigger("slide");$active.removeClass("active");$next.addClass("active");this.sliding=false;this.$element.trigger("slid");}else{$next.addClass(type);$next[0].offsetWidth;$active.addClass(direction);$next.addClass(direction);this.$element.trigger("slide");this.$element.one($.support.transition.end,function(){$next.removeClass([type,direction].join(" ")).addClass("active");$active.removeClass(["active",direction].join(" "));that.sliding=false;setTimeout(function(){that.$element.trigger("slid");},0);});}isCycling&&this.cycle();return this;}};$.fn.carousel=function(option){return this.each(function(){var $this=$(this),data=$this.data("carousel"),options=typeof option=="object"&&option;if(!data){$this.data("carousel",(data=new Carousel(this,options)));}if(typeof option=="number"){data.to(option);}else{if(typeof option=="string"||(option=options.slide)){data[option]();}else{data.cycle();}}});};$.fn.carousel.defaults={interval:5000};$.fn.carousel.Constructor=Carousel;$(function(){$("body").on("click.carousel.data-api","[data-slide]",function(e){var $this=$(this),href,$target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"")),options=!$target.data("modal")&&$.extend({},$target.data(),$this.data());$target.carousel(options);e.preventDefault();});});}(window.jQuery); /* ============================================================= * bootstrap-collapse.js v2.0.0 * http://twitter.github.com/bootstrap/javascript.html#collapse * ============================================================ */ !function($){var Collapse=function(element,options){this.$element=$(element);this.options=$.extend({},$.fn.collapse.defaults,options);if(this.options["parent"]){this.$parent=$(this.options["parent"]);}this.options.toggle&&this.toggle();};Collapse.prototype={constructor:Collapse,dimension:function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height";},show:function(){var dimension=this.dimension(),scroll=$.camelCase(["scroll",dimension].join("-")),actives=this.$parent&&this.$parent.find(".in"),hasData;if(actives&&actives.length){hasData=actives.data("collapse");actives.collapse("hide");hasData||actives.data("collapse",null);}this.$element[dimension](0);this.transition("addClass","show","shown");this.$element[dimension](this.$element[0][scroll]);},hide:function(){var dimension=this.dimension();this.reset(this.$element[dimension]());this.transition("removeClass","hide","hidden");this.$element[dimension](0);},reset:function(size){var dimension=this.dimension();this.$element.removeClass("collapse")[dimension](size||"auto")[0].offsetWidth;this.$element.addClass("collapse");},transition:function(method,startEvent,completeEvent){var that=this,complete=function(){if(startEvent=="show"){that.reset();}that.$element.trigger(completeEvent);};this.$element.trigger(startEvent)[method]("in");$.support.transition&&this.$element.hasClass("collapse")?this.$element.one($.support.transition.end,complete):complete();},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]();}};$.fn.collapse=function(option){return this.each(function(){var $this=$(this),data=$this.data("collapse"),options=typeof option=="object"&&option;if(!data){$this.data("collapse",(data=new Collapse(this,options)));}if(typeof option=="string"){data[option]();}});};$.fn.collapse.defaults={toggle:true};$.fn.collapse.Constructor=Collapse;$(function(){$("body").on("click.collapse.data-api","[data-toggle=collapse]",function(e){var $this=$(this),href,target=$this.attr("data-target")||e.preventDefault()||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""),option=$(target).data("collapse")?"toggle":$this.data();$(target).collapse(option);});});}(window.jQuery); /* ============================================================ * bootstrap-dropdown.js v2.0.0 * http://twitter.github.com/bootstrap/javascript.html#dropdowns * ============================================================ */ !function($){var toggle='[data-toggle="dropdown"]',Dropdown=function(element){var $el=$(element).on("click.dropdown.data-api",this.toggle);$("html").on("click.dropdown.data-api",function(){$el.parent().removeClass("open");});};Dropdown.prototype={constructor:Dropdown,toggle:function(e){var $this=$(this),selector=$this.attr("data-target"),$parent,isActive;if(!selector){selector=$this.attr("href");selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"");}$parent=$(selector);$parent.length||($parent=$this.parent());isActive=$parent.hasClass("open");clearMenus();!isActive&&$parent.toggleClass("open");return false;}};function clearMenus(){$(toggle).parent().removeClass("open");}$.fn.dropdown=function(option){return this.each(function(){var $this=$(this),data=$this.data("dropdown");if(!data){$this.data("dropdown",(data=new Dropdown(this)));}if(typeof option=="string"){data[option].call($this);}});};$.fn.dropdown.Constructor=Dropdown;$(function(){$("html").on("click.dropdown.data-api",clearMenus);$("body").on("click.dropdown.data-api",toggle,Dropdown.prototype.toggle);});}(window.jQuery); /* ========================================================= * bootstrap-modal.js v2.0.0 * http://twitter.github.com/bootstrap/javascript.html#modals * ========================================================= */ !function($){var Modal=function(content,options){this.options=$.extend({},$.fn.modal.defaults,options);this.$element=$(content).delegate('[data-dismiss="modal"]',"click.dismiss.modal",$.proxy(this.hide,this));};Modal.prototype={constructor:Modal,toggle:function(){return this[!this.isShown?"show":"hide"]();},show:function(){var that=this;if(this.isShown){return;}$("body").addClass("modal-open");this.isShown=true;this.$element.trigger("show");escape.call(this);backdrop.call(this,function(){var transition=$.support.transition&&that.$element.hasClass("fade");!that.$element.parent().length&&that.$element.appendTo(document.body);that.$element.show();if(transition){that.$element[0].offsetWidth;}that.$element.addClass("in");transition?that.$element.one($.support.transition.end,function(){that.$element.trigger("shown");}):that.$element.trigger("shown");});},hide:function(e){e&&e.preventDefault();if(!this.isShown){return;}var that=this;this.isShown=false;$("body").removeClass("modal-open");escape.call(this);this.$element.trigger("hide").removeClass("in");$.support.transition&&this.$element.hasClass("fade")?hideWithTransition.call(this):hideModal.call(this);}};function hideWithTransition(){var that=this,timeout=setTimeout(function(){that.$element.off($.support.transition.end);hideModal.call(that);},500);this.$element.one($.support.transition.end,function(){clearTimeout(timeout);hideModal.call(that);});}function hideModal(that){this.$element.hide().trigger("hidden");backdrop.call(this);}function backdrop(callback){var that=this,animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;this.$backdrop=$('