/*! jquery.klavier - v1.1.1 - 2016-04-24 * https://github.com/learningmedia/jquery.klavier * Copyright (c) 2016 Andreas Helmberger & Ulrich Kaiser; Licensed MIT */ !function(a,b){if("object"==typeof exports){var c=require("jquery");b(c)}else"function"==typeof define&&define.amd?define(["jquery"],b):b(jQuery)}(this,function(a){function b(b,c){var d,f,g=e.getWhiteKeyCount(c.startKey,c.endKey),j=b.innerWidth()/g,k=h*j,l=b.innerHeight(),m=i*l,n=0;for(f=c.startKey;f<=c.endKey;f++)d=e.isBlackKey(f),a("
").css({position:"absolute",width:(d?k:j)+"px",height:(d?m:l)+"px",top:"0px",left:(d?n-k/2:n)+"px",zIndex:d?c.zIndex+1:c.zIndex}).addClass(c.cssPrefix+"-key").addClass(c.cssPrefix+(d?"-black-key":"-white-key")).attr("data-value",f).appendTo(b),d||(n+=j)}function c(b){return parseInt(a(b).data("value"),10)}function d(a){var b=e.getOrCreate(a.delegateTarget),d=c(a.target),f=b.getSelectedValues(),g=f.indexOf(d);switch(b.options.selectionMode){case"single":f=-1===g?[d]:[];break;case"multiple":-1===g?f.push(d):f.splice(g,1);break;default:f=[]}b.setSelectedValues(f)}function e(c,d){this.options=a.extend({},e.defaults,d),this.$el=a(c),this.$el.data(j,this),l(this.$el,this.options),b(this.$el,this.options)}var f=0,g=120,h=.6,i=.6,j="klavier",k=[1,3,6,8,10],l=function(a,b){a.css("position","relative").addClass(b.cssPrefix+"-container").on("click."+j,"."+b.cssPrefix+"-key",d)};e.prototype.destroy=function(){this.$el.removeData(j),this.$el.removeClass(this.options.cssPrefix+"-container"),this.$el.off("."+j),this.$el.empty(),this.$el=null},e.prototype.getSelectedValues=function(){return this.$el.find("."+this.options.cssPrefix+"-selected-key").get().map(function(a){return c(a)})},e.prototype.setSelectedValues=function(b){this.$el.find("."+this.options.cssPrefix+"-key").each(function(d,e){var f=-1!==b.indexOf(c(e));a(e).toggleClass(this.options.cssPrefix+"-selected-key",f)}.bind(this)),"function"==typeof this.options.onSelectedValuesChanged&&this.options.onSelectedValuesChanged(this.getSelectedValues())},e.getOrCreate=function(b,c){return a(b).data(j)||new e(b,c)},e.isBlackKey=function(a){var b=a%12;return-1!==k.indexOf(b)},e.getWhiteKeyCount=function(a,b){var c,d=0;for(c=a;b>=c;c++)e.isBlackKey(c)||(d+=1);return d},e.validateOptions=function(a){if(a.endKey<=a.startKey)throw new Error("The end key must be greater than the start key.");if(a.startKey