/*
 * Webble v0.5.0
 * http://couchware.ca/webble
 *
 * Copyright 2010, Couchware Inc.
 * All rights reserved. 
 */
(function(){Object.create=function(e){var l=function(){};l.prototype=e;return new l}})();(function(){Number.randomInt=function(e,l){return Math.floor(Math.random()*(l-e+1))+e};Number.randomFloat=function(e,l){return Math.random()*(l-e+1)+e}})();
(function(){Array.matrix=function(e,l,h){var c,a,b,d=[];for(a=0;a<e;a++){c=[];for(b=0;b<l;b++)c[b]=h;d[a]=c}return d};Array.prototype.unique=function(){for(var e=[],l=0;l<this.length;l++){var h=this[l];e.some(function(c){return c===h})||e.push(h)}return e};Array.prototype.isEmpty=function(){return this.length===0};Array.prototype.intersect=function(e){var l=[],h=this.unique(),c=e.unique();h.forEach(function(a){c.some(function(b){return a===b})&&l.push(a)});return l};Array.prototype.complement=function(e){var l=
[],h=this.unique(),c=e.unique();h.forEach(function(a){c.some(function(b){return a===b})||l.push(a)});return l};Array.prototype.random=function(e,l){return this[Number.randomInt(e||0,l||this.length-1)]};Array.prototype.remove=function(e){for(var l,h=0;h<this.length;h++)if(this[h]===e){l=this.splice(h,1);break}return l};Array.prototype.shuffle=function(){for(var e=this.length-1;e>0;e--)this.swap(Number.randomInt(0,e),e);return this};Array.prototype.swap=function(e,l){var h=this[e];this[e]=this[l];this[l]=
h;return this};Array.prototype.transpose=function(){var e=this.length?this.length:0,l=this[0]instanceof Array?this[0].length:0;if(l===0||e===0)return[];var h,c,a=[];for(h=0;h<l;h++){a[h]=[];for(c=0;c<e;c++)a[h][c]=this[c][h]}return a};if(!Array.prototype.filter)Array.prototype.filter=function(e,l){var h=this.length>>>0;if(typeof e!="function")throw new TypeError;for(var c=[],a=0;a<h;a++)if(a in this){var b=this[a];e.call(l,b,a,this)&&c.push(b)}return c};if(!Array.prototype.forEach)Array.prototype.forEach=
function(e,l){var h=this.length>>>0;if(typeof e!="function")throw new TypeError;for(var c=0;c<h;c++)c in this&&e.call(l,this[c],c,this)};if(!Array.prototype.map)Array.prototype.map=function(e,l){var h=this.length>>>0;if(typeof e!="function")throw new TypeError;for(var c=new Array(h),a=0;a<h;a++)if(a in this)c[a]=e.call(l,this[a],a,this);return c};if(!Array.prototype.reduce)Array.prototype.reduce=function(e){var l=this.length>>>0;if(typeof e!="function")throw new TypeError;if(l==0&&arguments.length==
1)throw new TypeError;var h=0;if(arguments.length>=2)var c=arguments[1];else{do{if(h in this){c=this[h++];break}if(++h>=l)throw new TypeError;}while(1)}for(;h<l;h++)if(h in this)c=e.call(null,c,this[h],h,this);return c};if(!Array.prototype.some)Array.prototype.some=function(e,l){var h=0,c=this.length>>>0;if(typeof e!="function")throw new TypeError;for(;h<c;h++)if(h in this&&e.call(l,this[h],h,this))return true;return false}})();
if(!window.console){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var i=0;i<names.length;++i)window.console[names[i]]=function(){}}
(function(e){window.webble=window.webble||{};var l=1;window.webble.counter=function(h,c){var a,b=h.name||"unnamed-counter-"+l++,d=h.receiver||{trigger:e.noop},f,k,m;c=c||{};f=h.min||0;k=h.max;m=h.val||f;return a={inc:function(q){if(q!==0)q=q||1;m+=q;d.trigger("webble:"+b+":incremented",[q,m,f,k]);d.trigger("webble:"+b+":changed",[m,f,k]);return a},dec:function(q){if(q!==0)q=q||1;m-=q;d.trigger("webble:"+b+":decremented",[q,m,f,k]);d.trigger("webble:"+b+":changed",[m,f,k]);return a},val:function(q){if(q||
q===0){m=q;d.trigger("webble:"+b+":changed",[m,f,k]);return a}return m},reset:function(){d.trigger("webble:"+b+":reset",[m,f,k]);a.val(f);return a}}}})(jQuery);(function(e){window.webble=window.webble||{};var l=1;window.webble.lock=function(h,c){var a,b=h.name||"unnamed-lock-"+l++,d=h.receiver||{trigger:e.noop},f=false;c=c||{};return a={lock:function(){f=true;d.trigger("webble:"+b+":locked");return a},unlock:function(){f=false;d.trigger("webble:"+b+":unlocked");return a},locked:function(){return f}}}})(jQuery);
(function(){window.webble=window.webble||{};window.webble.semaphore=function(e,l){var h,c,a;l=l||{};a=c=e.permits;if(e.drained)c=0;return h={acquire:function(){c--;return h},release:function(){c++;return h},availablePermits:function(){return c},drainPermits:function(){var b=c;c=0;return b},hasAllPermits:function(){return c===a}}}})(jQuery);
(function(e){window.webble=window.webble||{};window.webble.timer=function(l,h){var c,a=l.receiver||{trigger:e.noop},b,d=l.start||1E4,f=d,k=l.delta||200;h=h||{};return c={start:function(){a.trigger("webble:timer:start",[d]);a.trigger("webble:timer:tick",[f,d]);b=setInterval(function(){f-=k;a.trigger("webble:timer:tick",[f,d]);if(f===0){c.stop();a.trigger("webble:timer:expired",[d])}},k)},stop:function(){clearInterval(b);a.trigger("webble:timer:stop",[d]);return c},set:function(m){c.stop();d=m},reset:function(){c.stop();
f=d;return c},val:function(){return f}}}})(jQuery);
(function(e){window.webble=window.webble||{};var l=window.webble.difficulty=function(h,c){c=c||{};return{maximumTime:function(){return 0},minimumTime:function(){return 0},time:function(){return 0},scoreModifier:function(){return 1},tileAmount:function(){return 0}}};l.normal=function(h,c){var a;c=c||{};a=l({},c);e.extend(a,{maximumTime:function(){return 1E4},minimumTime:function(){return 1E3},time:function(b){return Math.max(a.maximumTime()-(b-1)*1E3,a.minimumTime())},scoreModifier:function(){return 1},
tileAmount:function(b){var d=b.pieceSize,f=b.level,k=parseInt(Math.min(f,3)/2),m=b.tileCount;b=b.cellCount;var q=parseInt((b-m)/10),p=0;if(!d)throw new Error("Pieces size must be number > 0");if(!f)throw new Error("Level must be number > 0");if(!m&&m!=0)throw new Error("Tile count is required");if(!b)throw new Error("Cell count must be a number > 0");p=d+k+1;if(f>3)p+=f-3;if(parseInt(m/b)*100<80)p+=q;return Math.min(p,8+d)}});return a}})(jQuery);
(function(e){window.webble=window.webble||{};var l=window.webble.piece=function(h,c){c=c||{};c.scanEdges=function(a){var b,d={top:0,right:0,bottom:0,left:0};for(b=0;b<a.length&&!d.top;b++)d.top=a[b][0];for(b=0;b<a.length&&!d.bottom;b++)d.bottom=a[b][a.length-1];for(b=0;b<a[0].length&&!d.left;b++)d.left=a[0][b];for(b=0;b<a[a.length-1].length&&!d.right;b++)d.right=a[a.length-1][b];return d};c.swap=function(a,b,d){var f=a[b.col][b.row];a[b.col][b.row]=a[d.col][d.row];a[d.col][d.row]=f};c.size=h.size||
0;c.dimensions=h.dimensions||{cols:0,rows:0};c.struct=h.struct||Array.matrix(3,3,0);c.edges=c.scanEdges(c.struct);return{dimensions:function(){return c.dimensions},edges:function(){return c.edges},rotate:function(){},size:function(){return c.size},struct:function(){return c.struct}}};l.dash=function(h,c){var a;c=c||{};a=l({size:2,dimensions:{cols:1,rows:2},struct:[[0,0,0],[0,1,1],[0,0,0]]},c);e.extend(a,{rotate:function(){c.struct=c.struct.transpose();c.dimensions={cols:c.dimensions.rows,rows:c.dimensions.cols};
c.edges=c.scanEdges(c.struct)}});return a};l.diagonal=function(h,c){var a;c=c||{};a=l({size:2,dimensions:{cols:2,rows:2},struct:[[0,0,0],[0,1,0],[0,0,1]]},c);e.extend(a,{rotate:function(){c.swap(c.struct,{col:2,row:2},{col:2,row:0});c.edges=c.scanEdges(c.struct)}});return a};l.dot=function(h,c){c=c||{};return l({size:1,dimensions:{cols:1,rows:1},struct:[[0,0,0],[0,1,0],[0,0,0]]},c)};l.el=function(h,c){var a;c=c||{};a=l({size:3,dimensions:{cols:2,rows:2},struct:[[0,0,0],[0,1,1],[0,1,0]]},c);e.extend(a,
{rotate:function(){c.swap(c.struct,{col:1,row:0},{col:2,row:1});c.swap(c.struct,{col:1,row:0},{col:1,row:2});c.swap(c.struct,{col:1,row:0},{col:0,row:1});c.edges=c.scanEdges(c.struct)}});return a};l.line=function(h,c){var a;c=c||{};a=l({size:3,dimensions:{cols:1,rows:3},struct:[[0,0,0],[1,1,1],[0,0,0]]},c);e.extend(a,{rotate:function(){c.struct=c.struct.transpose();c.dimensions={cols:c.dimensions.rows,rows:c.dimensions.cols};c.edges=c.scanEdges(c.struct)}});return a}})(jQuery);
(function(){window.webble=window.webble||{};var e=window.webble.piece,l=[e.dash(),e.diagonal(),e.dot(),e.el(),e.line()];e.queue=function(h,c){var a,b;h=h||{};c=c||{};c.randomPiece=function(){return l[Math.floor(Math.random()*(l.length-1-0+1))+0]};a=h.size||5;b=[];for(var d=0;d<a;d++)b.push(c.randomPiece());return{peek:function(){return b[0]},dequeue:function(){var f=b.shift();b.push(c.randomPiece());return f}}}})(jQuery);
(function(e){window.webble=window.webble||{};window.webble.selector=function(l,h){var c,a,b,d,f,k,m;l=l||{};h=h||{};f={cols:3,rows:3};a=e("<div>",{"class":"selector active"});for(var q=0;q<9;q++)e("<div>",{"class":"cell"}).appendTo(a);b=a.children();k=l.board;k.element().append(a);m=l.piece;var p=function(){b.each(function(j){var u=e(this),n=Math.floor(j/3);j=m.struct()[j%3][n]?"visible":"hidden";u.css("visibility",j);e.browser.msie&&parseInt(e.browser.version)===8&&u.parent().append(u.remove())})};
p();return c={active:function(j){if(typeof j!=="undefined"){d=j;a.removeClass("active").removeClass("inactive");if(d){a.addClass("active").css("opacity",1);e.browser.msie&&a[0].style.removeAttribute("filter")}else a.addClass("inactive").css("opacity",0.6);return c}return d},dimensions:function(){return f},edges:function(){return m.edges()},element:function(){return a},piece:function(j){if(j){m=j;p();return c}return m},position:function(j){if(j){a.css({left:j.left,top:j.top});return c}return{left:parseInt(a.css("left")),
top:parseInt(a.css("top"))}},rotate:function(){m.rotate();p();return c},selectedTiles:function(){var j=[],u=c.position();b.each(function(n){if(e(this).css("visibility")!=="hidden")(n=k.tileAtPosition({left:u.left+n%3*32,top:u.top+Math.floor(n/3)*32}))&&j.push(n)});return j},moveTo:function(j){return c.moveToPosition({left:j.col*32,top:j.row*32},{left:0,top:0})},moveToPosition:function(j,u){u=u||k.element().offset();var n=j.left-u.left,w=j.top-u.top,y=c.edges();n=Math.min(32*(6-y.right),Math.max(32*
(-1+y.left),n-32));n=Math.floor(n/32)*32;w=Math.min(32*(8-y.bottom),Math.max(32*(-1+y.top),w-32));w=Math.floor(w/32)*32;return c.position({left:n,top:w})}}}})(jQuery);
(function(e){window.webble=window.webble||{};var l=["blue","green","purple","red","yellow"],h=["up","down","left","right"],c=window.webble.tile=function(a,b){var d;b=b||{};b.type="normal";b.category="normal";b.color=a.color==="random"||!a.color?l.random():a.color;b.element=e("<div>",{"class":"tile "+b.color});return d={color:function(f){if(f){if(f==="random")f=l.random();b.element.removeClass(b.color).addClass(f);b.color=f}return b.color},category:function(){return b.category},element:function(){return b.element},
position:function(f){if(f){b.element.css({left:f.left,top:f.top});return d}return{left:parseInt(b.element.css("left")),top:parseInt(b.element.css("top"))}},type:function(){return b.type}}};c.normal=function(a,b){return c(a,b)};c.multiplier=function(a,b){var d,f;b=b||{};f=a.multiplier||2;d=c({color:a.color},b);b.category="multiplier";b.type="x"+f;b.itemElement=e("<div>",{"class":"item "+b.type});b.itemElement.appendTo(b.element);e.extend(d,{multiplier:function(){return f}});return d};c.x2=function(a,
b){a.multiplier=2;return c.multiplier(a,b)};c.x3=function(a,b){a.multiplier=3;return c.multiplier(a,b)};c.x4=function(a,b){a.multiplier=4;return c.multiplier(a,b)};c.powerUp=function(a,b){var d,f;b=b||{};f=a.type||"normal";d=c({color:a.color},b);b.category="powerUp";b.type=f;b.itemElement=e("<div>",{"class":"item "+f});b.itemElement.appendTo(b.element);return d};c.bomb=function(a,b){b=b||{};return c.powerUp({color:a.color,type:"bomb"},b)};c.gravity=function(a,b){b=b||{};return c.powerUp({color:a.color,
type:"gravity"},b)};c.rocket=function(a,b){var d,f;b=b||{};f=a.dir||h.random();d=c.powerUp({color:a.color,type:"rocket"},b);b.itemElement.addClass(f);e.extend(d,{dir:function(){return f}});return d}})(jQuery);
(function(e){window.webble=window.webble||{};window.webble.line=function(l,h){var c,a,b;h=h||{};c=l.tiles||[];a=e(c.map(function(d){return d.element()[0]}));return{elements:function(){return a.slice()},items:function(d){return c.reduce(function(f,k){k.type()===d&&f.push(k);return f},[])},middle:function(){if(b)return b;var d={left:Number.MAX_VALUE,top:Number.MAX_VALUE},f={left:Number.MIN_VALUE,top:Number.MIN_VALUE};c.forEach(function(k){k=k.position();d.left=Math.min(d.left,k.left);f.left=Math.max(f.left,
k.left);d.top=Math.min(d.top,k.top);f.top=Math.max(f.top,k.top)});return b={left:d.left+(f.left-d.left)/2,top:d.top+(f.top-d.top)/2}},tiles:function(){return c.slice()}}}})(jQuery);(function(){window.webble=window.webble||{};window.webble.item=function(e,l){var h,c,a,b,d;e=e||{};l=l||{};h=e.type||"normal";c=e.initial||0;a=e.weight||10;b=e.cooldown||0;d=e.max||1;return{type:function(){return h},initial:function(){return c},weight:function(){return a},cooldown:function(){return b},max:function(){return d}}}})(jQuery);
(function(e){window.webble=window.webble||{};var l=window.webble,h=l.semaphore,c=l.tile,a=l.line,b={cols:8,rows:10,width:256,height:320,cwidth:32,cheight:32},d=function(j){return j},f=function(j){return{col:7-j.col,row:j.row}},k=function(j){return{col:j.col,row:9-j.row}},m=function(j,u,n,w){if(u.length>0){var y=h({permits:u.length,drained:true}),t=function(){y.release();y.hasAllPermits()&&w()};e.each(u,function(){j.animateTile(this.from,this.to,this.cells*n,t)})}else w()},q=function(j,u){j.tile=~~j.tile+
1;switch(u.category()){case "normal":break;default:j[u.category()]=~~j[u.category()]+1}switch(u.type()){case "normal":break;default:j[u.type()]=~~j[u.type()]+1}},p=l.board=function(j,u){var n,w,y,t={vertical:"down",horizontal:"left"},x={tile:0,multiplier:0,powerUp:0};j=j||{};u=u||{};w=j.grid||Array.matrix(8,10,null);y=e("<div>",{"class":"board"});return n={animateTile:function(g,o,s,A){if(!s&&s!==0)s=1E3;var B=n.tileAt(g);B.element().animate(n.toPosition(o),{duration:s,complete:A});w[o.col][o.row]=
B;w[g.col][g.row]=null},clear:function(){for(var g=0;g<8;g++)for(var o=0;o<10;o++)if(w[g][o]){w[g][o].element().remove();w[g][o]=null}x={};return n},clone:function(){return p({grid:e.extend(true,[],w)})},createTile:function(g,o){if(n.tileAt(g))throw new Error("Tile already exists at cell");o=e.extend({},o);var s=o.hidden||false,A=c[o.type||"normal"]({color:o.color,dir:o.dir});w[g.col][g.row]=A;A.element().css({left:g.col*32,top:g.row*32,display:s?"none":"block"}).appendTo(y);q(x,A);return A},tileCount:function(g){return~~x[g||
"tile"]},dimensions:function(){return b},findMatches:function(){var g=n.findXMatches(),o=n.findYMatches();return g.concat(o)},findXMatches:function(){for(var g=[],o=0;o<10;o++)for(var s=0;s<8;s++){var A=n.tileAt({col:s,row:o});if(!(!A||8-s<3)){var B=[];A=A.color();var C;for(C=0;C<8-s;C++){var E=n.tileAt({col:s+C,row:o});if(!E||E.color()!==A)break;B.push(E)}if(B.length>=3){console.log("X match of length "+B.length+" found");g.push(a({tiles:B}));s+=B.length-1}}}return g},findYMatches:function(){for(var g=
[],o=0;o<8;o++)for(var s=0;s<10;s++){var A=n.tileAt({col:o,row:s});if(!(!A||10-s<3)){var B=[];A=A.color();var C;for(C=0;C<10-o;C++){var E=n.tileAt({col:o,row:s+C});if(!E||E.color()!==A)break;B.push(E)}if(B.length>=3){console.log("Y match of length "+B.length+" found");g.push(a({tiles:B}));s+=B.length-1}}}return g},free:function(){for(var g=[],o=0;o<8;o++)n.tileAt({col:o,row:0})||g.push(o);return g},hasTile:function(g){return n.tileAtPosition(g.position())===g},moveTile:function(g,o){var s=n.tileAt(g);
if(s){s.position({left:o.col*32,top:o.row*32});w[o.col][o.row]=s;w[g.col][g.row]=null}},tileAt:function(g,o){if(w[g.col]){if(o){w[g.col][g.row]||q(x,o);w[g.col][g.row]=o;y.append(o.element().css({left:g.col*32,top:g.row*32}));return n}return w[g.col][g.row]}},tileAtPosition:function(g,o){return this.tileAt(n.toCell(g),o)},element:function(){return y},grid:function(){return w},refactorSetup:function(g){if(g){var o=g.horizontalFlip;t.vertical=g.verticalFlip?t.vertical==="down"?"up":"down":g.vertical||
t.vertical;t.horizontal=o?t.horizontal==="left"?"right":"left":g.horizontal||t.horizontal;return n}return e.extend({},t)},refactor:function(g,o,s){if(!s)s=e.noop;if(g==="both"){n.refactor(t.vertical,o,function(){n.refactor(t.horizontal,o,s)});return n}else if(g==="vertical"){n.refactor(t.vertical,o,s);return n}else if(g==="horizontal"){n.refactor(t.horizontal,o,s);return n}o=e.extend({},{instant:false,step:200},o);switch(g){case "up":case "down":n.refactorVertical(g,o,s);break;case "left":case "right":n.refactorHorizontal(g,
o,s);break}return n},refactorVertical:function(g,o,s){var A=d,B=[],C=n.clone();switch(g){case "up":break;case "down":A=k;break}for(g=0;g<8;g++)for(var E=0;E<10;E++)if(C.tileAt(A({col:g,row:E}))){for(var G=0,D=E-1;D>=0;D--){if(C.tileAt(A({col:g,row:D})))break;G++}if(G>0){D=A({col:g,row:E});var J=A({col:g,row:E-G});B.push({from:D,to:J,cells:G});G=C.tileAt(D);C.grid()[J.col][J.row]=G;C.grid()[D.col][D.row]=null}}if(o.instant){e.each(B,function(){n.moveTile(this.from,this.to)});s()}else m(n,B,o.step,
s)},refactorHorizontal:function(g,o,s){var A=d,B=[],C=this.clone();switch(g){case "left":break;case "right":A=f;break}for(g=0;g<8;g++)for(var E=0;E<10;E++)if(C.tileAt(A({col:g,row:E}))){for(var G=0,D=g-1;D>=0;D--){if(C.tileAt(A({col:D,row:E})))break;G++}if(G>0){D=A({col:g,row:E});var J=A({col:g-G,row:E});B.push({from:D,to:J,cells:G});G=C.tileAt(D);C.grid()[J.col][J.row]=G;C.grid()[D.col][D.row]=null}}if(o.instant){e.each(B,function(){n.moveTile(this.from,this.to)});s()}else m(n,B,o.step,s)},removeTile:function(g){if(!g)throw new Error("Attempted to remove null tile");
var o=x;o.tile--;switch(g.category()){case "normal":break;default:o[g.category()]--}switch(g.type()){case "normal":break;default:o[g.type()]--}o=n.toCell(g.position());w[o.col][o.row]=null;g.element().remove();return n},removeTiles:function(g){(g||[]).forEach(function(o){n.removeTile(o)})},swapTile:function(g,o){var s=n.tileAt(o);s&&n.removeTile(s);n.moveTile(g,o);n.tileAt(g,s);return n},cellCount:function(){return 80},tiles:function(){for(var g,o=[],s=0;s<8;s++)for(var A=0;A<10;A++)(g=n.tileAt({col:s,
row:A}))&&o.push(g);return o},toCell:function(g){return{col:g.left/32,row:g.top/32}},toPosition:function(g){return{left:g.col*32,top:g.row*32}}}};p.uw=32;p.uh=32;p.cols=8;p.rows=10})(jQuery);
(function(e){window.webble=window.webble||{};var l=window.webble,h=l.semaphore,c=l.animationhelper={floatText:function(a){var b=a.board,d=a.text||"",f=a.fontSize||14;a=a.position||{left:0,top:0};if(!b)throw new Error("Board argument is required");var k=h({permits:2,drained:true}),m=function(){k.release();k.hasAllPermits()&&e(this).remove()};e("<div>",{"class":"float-text",text:d}).css({left:a.left+16,top:a.top+16,fontSize:f}).appendTo(b.element()).delay(1E3,"float-text").queue("float-text",function(q){e(this).animate({opacity:0},
{duration:1E3,queue:false,complete:m});q()}).dequeue("float-text").animate({top:"-=30"},{duration:2E3,complete:m})},insertTile:function(a){var b=a.tiles||[],d=e(b.map(function(k){return k.element()[0]})),f=d.slice(1);a=a.complete||e.noop;b.isEmpty()?a():d.eq(0).animate({height:"show"},{duration:300,step:function(k,m){f.css(m.prop,m.now);f.css("display","block")},complete:a})},instant:function(a){(a.complete||e.noop)()},removeLine:function(a){var b=a.tiles||[],d=e(b.map(function(m){return m.element()[0]})),
f=d.slice(1),k=a.complete||e.noop;b.isEmpty()?k():d.each(function(){var m=e(this);m.data({"z-index":m.css("z-index"),top:parseInt(m.css("top"))})}).css("z-index",100).eq(0).animate({top:"+=16",opacity:0},{duration:500,step:function(m,q){if(q.prop==="top"){var p=Math.abs(q.start-m);f.css(q.prop,function(){return e(this).data(q.prop)+p})}else f.css(q.prop,q.now)},complete:function(){d.each(function(){var m=e(this);m.css({"z-index":m.data("z-index"),top:function(q,p){return parseInt(p)-16}})}).removeData("top").removeData("z-index");
k()}})},removePiece:function(a){var b=a.tiles||[],d=e(b.map(function(k){return k.element()[0]})),f=d.slice(1);a=a.complete||e.noop;b.isEmpty()?a():d.eq(0).fadeOut({duration:200,step:function(k,m){f.css(m.prop,k)},complete:a})},activate:function(a){var b=a.factor||2,d=a.duration||500,f=a.elements||e(),k=f.slice(1);a=a.complete||e.noop;if(f.length===0)a();else{var m=f.eq(0).width(),q=f.eq(0).height();f.each(function(){var p=e(this);p.data({left:parseInt(p.css("left")),top:parseInt(p.css("top"))})}).eq(0).animate({left:"-="+
m*(b-1)/2,top:"-="+q*(b-1)/2,opacity:0,width:m*b,height:q*b},{duration:d,step:function(p,j){if(j.prop==="left"||j.prop==="top"){var u=p-j.start;k.css(j.prop,function(){return e(this).data(j.prop)+u})}else k.css(j.prop,j.now)},complete:a})}},fade:function(a){var b=a.tiles||[],d=a.opacity||0,f=a.duration||500,k=a.easing||"swing",m=e(b.map(function(p){return p.element()[0]})),q=m.slice(1);a=a.complete||e.noop;b.isEmpty()?a():m.eq(0).animate({opacity:d},{duration:f,easing:k,step:function(p,j){q.css(j.prop,
p)},complete:a})},explodeBomb:function(a){var b=a.board,d=a.bombs||[],f=a.affected||[],k=a.complete||e.noop,m=h({permits:2,drained:true});a=function(){m.release();m.hasAllPermits()&&k()};if(!b)throw new Error("Board argument is required");var q=e(d.reduce(function(p,j){var u=e("<img>",{src:"images/explosion.png","class":"explosion"}).css({left:j.position().left+43,top:j.position().top+43,width:4,height:4});b.element().append(u);p.push(u[0]);return p},[]));c.activate({factor:40,duration:1E3,elements:q,
complete:a});c.fade({tiles:d.concat(f),opacity:0,complete:a})},fireRocket:function(a){var b=a.dimensions||{width:0,height:0},d=a.rockets||[],f=e((a.affected||[]).map(function(n){return n.element()[0]})),k=f.slice(1),m=a.complete||e.noop,q=h({permits:d.length+1,drained:true}),p=function(){q.release();q.hasAllPermits()&&m()},j={up:{top:-96,opacity:0},down:{top:b.height+96-b.cheight,opacity:0},left:{left:-96,opacity:0},right:{left:b.width+96-b.cwidth,opacity:0}},u={duration:1300,complete:function(){var n=
e(this);n.css({left:n.data("left"),top:n.data("top")}).removeData("left").removeData("top");p()}};if(d.isEmpty())q.hasAllPermits()&&m();else d.forEach(function(n){n.element().data({left:parseInt(n.element().css("left")),top:parseInt(n.element().css("top"))}).css("z-index",100).delay(200).animate(j[n.dir()],e.extend({},u))});f.length===0?p():f.eq(0).fadeOut({duration:700,step:function(n,w){k.css(w.prop,n)},complete:p})},bounce:function(){}}})(jQuery);
(function(e){window.webble=window.webble||{};var l=window.webble,h=l.line,c=l.boardhelper={insertTiles:function(a){var b=a.ui,d=a.receiver||{trigger:e.noop},f=a.settings,k=a.amount||0,m=a.chooseType,q=a.animation,p=a.complete||e.noop;if(!b)throw new Error("UI argument is required");if(!f)throw new Error("Settings argument is required");if(!m)throw new Error("Choose type argument is required");if(!q)throw new Error("Animation argument is required");var j=b.board.free().shuffle(),u=Math.min(4,k,j.length),
n=[],w=b.board.tileCount("multiplier"),y=b.board.tileCount("powerUp");j=j.slice(0,u);if(j.isEmpty()&&k>0){d.trigger("webble:game:end");p(-k)}else{if(k<=j.length&&k<=4&&(w<f.maximumMultipliers||y<f.maximumPowerUps)){a=j.pop();f=m({board:b.board,settings:f,multiplierCount:w,powerUpCount:y});j.forEach(function(x){x=b.board.createTile({col:x,row:0},{hidden:true});n.push(x)});n.push(b.board.createTile({col:a,row:0},{type:f,hidden:true}));j.push(a)}else j.forEach(function(x){x=b.board.createTile({col:x,
row:0},{hidden:true});n.push(x)});b.board.refactor("both",{instant:true});do{f=b.board.findMatches().reduce(function(x,g){return x.concat(g.tiles())},[]);f=n.intersect(f);f.forEach(function(x){x.color("random")})}while(!f.isEmpty());var t=[];b.board.removeTiles(n);n.forEach(function(x,g){var o=g===0?"random":x.color();o=b.board.createTile({col:j[g],row:0},{color:o,type:x.type(),hidden:true});t.push(o)});d.trigger("webble:insert-tiles:animation:start");q({tiles:t,complete:function(){d.trigger("webble:insert-tiles:animation:end");
p(k-u)}})}},randomBoard:function(a){var b=a.board,d=b.dimensions().cols,f=a.multipliers,k=a.powerUps,m=a.level||1,q=0;if(!b)throw new Error("Board argument is required");b.clear();f.concat(k).forEach(function(p){for(var j=p.initial()+(p.type()==="normal"?m-1:0),u=0;u<j;u++){b.createTile({col:q%d,row:Math.floor(q/d)},{type:p.type()});q++}});this.shuffleBoard(a);b.refactor("both",{instant:true});do{a=b.findMatches();a.forEach(function(p){p.tiles().forEach(function(j){if(b.hasTile(j)){var u=j.position(),
n=u.left/l.board.uw;u=u.top/l.board.uh;b.removeTile(j);b.createTile({col:n,row:u},{type:j.type()})}})})}while(!a.isEmpty())},shuffleBoard:function(a){a=a.board;var b=a.dimensions(),d=b.cols;b=b.rows;if(!a)throw new Error("Board argument is required");for(var f=0;f<b;f++)for(var k=0;k<d;k++)a.swapTile({col:k,row:f},{col:Number.randomInt(0,d-1),row:Number.randomInt(0,b-1)})},removePiece:function(a){var b=a.ui,d=a.receiver||{trigger:e.noop},f=a.animation,k=a.complete||e.noop;if(!b)throw new Error("UI argument is required");
if(!f)throw new Error("Animation argument is required");var m=b.selector.selectedTiles()||[];d.trigger("webble:remove-piece:start",[m]);f({tiles:m,complete:function(){b.board.removeTiles(m);d.trigger("webble:remove-piece:end",[m]);b.board.refactor("both",{},k)}})},removeLines:function(a){var b=a.ui,d=a.receiver||{trigger:e.noop},f=a.animations,k=a.complete||e.noop,m=a.iteration||0;if(!b)throw new Error("UI argument is required");if(!f)throw new Error("Animations argument is required");var q=b.board.findMatches();
if(q.isEmpty())k(m);else{m++;d.trigger("webble:remove-lines:iteration",[q,m]);var p=q.reduce(function(y,t){return y.concat(t.tiles())},[]).unique();k=p.reduce(function(y,t){var x=t.category(),g=t.type();if(x!=="normal"){y[x]=y[x]||[];y[x].push(t)}y[g]=y[g]||[];y[g].push(t);return y},{});var j=k.powerUp||[],u=(k.normal||[]).concat(k.multiplier||[]),n=function(){d.trigger("webble:remove-lines:animation:end",[m]);b.board.removeTiles(u);c.handlePowerUps({ui:b,receiver:d,powerUps:j,exclude:p,animations:f,
complete:w,iteration:m})},w=function(y){b.board.refactor("both",{},function(){a.iteration=y;c.removeLines(a)})};(function(y){return function(){f.fade({duration:150,easing:"linear",tiles:p,opacity:0.5,complete:y})}})(function(y){return function(){f.fade({duration:150,easing:"linear",tiles:p,opacity:1,complete:y})}}(function(){d.trigger("webble:remove-lines:animation:start",[m]);f.removeLine({tiles:u,complete:n})}))()}},handleBombs:function(a){var b=a.ui,d=a.receiver||{trigger:e.noop},f=a.bombs||[],
k=a.exclude||[],m=a.animations,q=a.complete||e.noop,p=a.iteration||0;if(!b)throw new Error("UI argument is required");if(!m)throw new Error("Animations argument is required");if(f.isEmpty())q(p);else{var j=f.reduce(function(t,x){var g=b.board.toCell(x.position());g=c.extractSquare(b.board,g,3);t.lines.push(h({tiles:g}));g.slice(1).forEach(function(o){var s=o.category();t[s]=t[s]||[];t[s].push(o)});return t},{lines:[]});p++;d.trigger("webble:item:bomb:iteration",[j.lines,p]);var u=j.powerUp||[],n=
(j.normal||[]).concat(j.multiplier||[]),w=e(f.reduce(function(t,x){var g=e("<img>",{src:"images/tiles/tile-"+x.color()+".png","class":"tile-clone"}).css({left:x.position().left,top:x.position().top});b.board.element().append(g);t.push(g[0]);return t},[])),y=function(){d.trigger("webble:item:bomb:animation:end");b.board.removeTiles(f);b.board.removeTiles(n);var t=u.complement(k);if(t.isEmpty())q(p);else{a.bombs=undefined;a.powerUps=t.complement(f);a.iteration=p;c.handlePowerUps(a)}};m.activate({elements:w,
complete:function(){w.remove();d.trigger("webble:item:bomb:animation:start");m.explodeBomb({board:b.board,bombs:f,affected:n,complete:y})}})}},handleGravities:function(a){var b=a.ui,d=a.receiver||{trigger:e.noop},f=a.gravities||[],k=a.animations,m=a.complete||e.noop,q=a.iteration||0;if(!b)throw new Error("UI argument is required");if(!k)throw new Error("Animations argument is required");if(!f.isEmpty()&&f.length%2===1){q++;d.trigger("webble:item:gravity:iteration",[f,q]);b.board.refactorSetup({horizontalFlip:true});
var p=e(f.reduce(function(u,n){var w=e("<img>",{src:"images/tiles/tile-"+n.color()+".png","class":"tile-clone"}).css({left:n.position().left,top:n.position().top});b.board.element().append(w);u.push(w[0]);return u},[])),j=function(){b.board.removeTiles(f);m(q)};k.activate({elements:p,complete:function(){p.remove();k.removeLine({tiles:f,complete:j})}})}else m(q)},handleRockets:function(a){var b=a.ui,d=a.receiver||{trigger:e.noop},f=a.rockets||[],k=a.exclude||[],m=a.animations,q=a.complete||e.noop,
p=a.iteration||0;if(!b)throw new Error("UI argument is required");if(!m)throw new Error("Animations argument is required");if(f.isEmpty())q(p);else{var j=f.reduce(function(t,x){var g=b.board.toCell(x.position());g=c.extractSegment(b.board,g,x.dir());t.lines.push(h({tiles:g}));g.slice(1).forEach(function(o){var s=o.category();t[s]=t[s]||[];t[s].push(o)});return t},{lines:[]});p++;d.trigger("webble:item:rocket:iteration",[j.lines,p]);var u=j.powerUp||[],n=(j.normal||[]).concat(j.multiplier||[]),w=e(f.reduce(function(t,
x){var g=e("<img>",{src:"images/tiles/tile-"+x.color()+".png","class":"tile-clone"}).css({left:x.position().left,top:x.position().top});b.board.element().append(g);t.push(g[0]);return t},[])),y=function(){d.trigger("webble:item:rocket:animation:end");b.board.removeTiles(f);b.board.removeTiles(n);var t=u.complement(k);if(t.isEmpty())q(p);else{a.rockets=undefined;a.powerUps=t.complement(f);a.iteration=p;c.handlePowerUps(a)}};m.activate({elements:w,complete:function(){w.remove();d.trigger("webble:item:rocket:animation:start");
m.fireRocket({dimensions:b.board.dimensions(),rockets:f,affected:n,complete:y})}})}},handlePowerUps:function(a){var b=a.powerUps||[],d=a.complete||e.noop,f=b.reduce(function(k,m){var q=m.type();k[q]=k[q]||[];k[q].push(m);return k},{});c.handleRockets(e.extend({},a,{rockets:f.rocket,exclude:b,complete:function(k){c.handleBombs(e.extend({},a,{bombs:f.bomb,exclude:b,complete:function(m){c.handleGravities(e.extend({},a,{gravities:f.gravity,exclude:b,complete:d,iteration:m}))},iteration:k}))}}))},extractSegment:function(a,
b,d){var f=[a.tileAt(b)],k=b.col;b=b.row;switch(d){case "up":for(;typeof(d=a.tileAt({col:k,row:--b}))!=="undefined";)d!==null&&f.push(d);break;case "down":for(;typeof(d=a.tileAt({col:k,row:++b}))!=="undefined";)d!==null&&f.push(d);break;case "left":for(;typeof(d=a.tileAt({col:--k,row:b}))!=="undefined";)d!==null&&f.push(d);break;case "right":for(;typeof(d=a.tileAt({col:++k,row:b}))!=="undefined";)d!==null&&f.push(d);break;default:throw new Error("Unrecognized direction");}return f},extractSquare:function(a,
b,d){var f=[a.tileAt(b)],k;k=(d-1)/2;var m=b.col-k,q=b.row-k;if(d<=1||d%2===0)throw new Error("Side must be odd and > 1");for(var p=m;p<m+d;p++)for(var j=q;j<q+d;j++)if(!(p===b.col&&j===b.row))if(typeof(k=a.tileAt({col:p,row:j}))!=="undefined")k!==null&&f.push(k);return f}}})(jQuery);
(function(e){window.webble=window.webble||{};var l={};window.webble.gamehelper={suspend:function(h){var c=h.receiver||{trigger:e.noop};l.fn=h.fn;l.args=h.args;c.trigger("webble:game:suspended")},resume:function(h){h=h.receiver||{trigger:e.noop};if(l.fn){var c=l.fn,a=l.args;l={};h.trigger("webble:game:resumed");c.apply(this,a)}},chooseType:function(h){var c=h.board,a=h.settings,b=h.multiplierCount||0,d=h.powerUpCount||0;if(!c)throw new Error("Board argument is required");if(!a)throw new Error("Settings argument is required");
var f=a.multipliers.length+a.powerUps.length===1?0:(b-d)*15+50,k=h.settings.maximumMultipliers;h=h.settings.maximumPowerUps;if(Number.randomInt(1,100)<=5)return"normal";var m;if(b<k&&d<h)m=Number.randomInt(0,99)<f?"powerUps":"multipliers";else if(b<k)m="multipliers";else if(d<h)m="powerUps";b=[];switch(m){case "multipliers":a.multipliers.reduce(function(p,j){!j.cooldown()&&j.weight()>0&&c.tileCount(j.type())<j.max()&&p.push(j);return p},b);break;case "powerUps":a.powerUps.reduce(function(p,j){j.type()!==
"normal"&&!j.cooldown()&&j.weight()>0&&c.tileCount(j.type())<j.max()&&p.push(j);return p},b);break;default:throw new Error("Unknown item category");}if(b.isEmpty())return"normal";a=b.reduce(function(p,j){p.push(p[p.length-1]+j.weight());return p},[0]);var q;m=Number.randomInt(0,a[a.length-1]-1);for(d=0;d<a.length;d++)if(m<a[d]){q=b[d-1];q.type()==="star"&&q.cooldown(10);break}return q.type()}}})(jQuery);
(function(){window.webble=window.webble||{};var e={min:50,max:3E3},l={min:18,max:40},h=function(c,a){var b=0;switch(a){case "line":b=Math.min(c,4)*50;if(c>5)for(var d=0;d<c-4;d++)b+=(d+2)*50;break;case "rocket":case "bomb":b=c*50;break;case "star":b=c*50/2;break}return b};window.webble.scorehelper={pieceScore:function(c){c=c.tiles;if(!c)throw new Error("Tiles argument is required");return c.length*10},lineScore:function(c){var a=c.lines,b=c.type||"line";c=c.chain||1;var d={},f=0,k=0;if(!a)throw new Error("Lines argument is required");
a.forEach(function(m){m.tiles().forEach(function(q){d[q.type()]=d[b.type]++||1;f++})});return k=h(f,b)*Math.pow(2,d.x2||0)*Math.pow(3,d.x3||0)*Math.pow(4,d.x4||0)*c},levelScore:function(c){return 600*(c.level||1)},fontSizeFor:function(c){return Math.min(Math.max(l.min+(l.max-l.min)*(((c.score||0)-e.min)/(e.max-e.min)),l.min),l.max)}}})(jQuery);
(function(e){var l=webble.animationhelper,h=webble.boardhelper,c=webble.gamehelper,a=webble.scorehelper,b={};e(function(){var d=e("#window"),f,k=".ogg";if(typeof Audio==="undefined"){f=function(){};f.prototype.play=e.noop}else{f=Audio;var m=new Audio("");if(m.canPlayType)"no"!=m.canPlayType("audio/ogg")&&""!=m.canPlayType("audio/ogg")||(k=".mp3")}var q={bleep:new f("sounds/bleep"+k),click:new f("sounds/click"+k),line:[new f("sounds/line-1"+k),new f("sounds/line-2"+k),new f("sounds/line-3"+k),new f("sounds/line-4"+
k),new f("sounds/line-5"+k),new f("sounds/line-6"+k),new f("sounds/line-7"+k)]},p=webble.difficulty.normal(),j=webble.counter({min:1,name:"level-counter",receiver:d}),u=e("#level").text(1),n=webble.timer({start:p.time(j.val()),receiver:d}),w=e("#timer-progress").progressbar({value:n.val()}),y=e("#score-progress").progressbar({value:0}),t=webble.board(),x=webble.piece.queue({size:5}),g=x.dequeue(),o=webble.selector({board:t,piece:g});f=e("#board-container");f.append(t.element());var s=webble.counter({name:"score-counter",
receiver:d}),A=e("#score").text(0),B=webble.counter({val:a.levelScore(j.val())}),C=webble.counter({name:"high-score-counter",receiver:d}),E=e("#high-score").text(0),G=webble.counter({val:s.val()}),D=webble.counter({val:B.val()});d.bind({"webble:level-counter:changed":function(r,v){u.text(v);r.stopPropagation()},"webble:score-counter:changed":function(r,v){A.text(v);r.stopPropagation()},"webble:high-score-counter:changed":function(r,v){E.text(v);r.stopPropagation()},"webble:insert-tiles:animation:start":function(r){I.soundEnabled&&
q.bleep.play();r.stopPropagation()},"webble:remove-lines:animation:start":function(r,v){I.soundEnabled&&q.line[Math.min(7,v)-1].play();r.stopPropagation()},"webble:remove-lines:iteration":function(r,v,z){if(z=a.lineScore({lines:v,type:"line",chain:z})){O(z);v=v.map(function(F){return F.middle()}).reduce(function(F,H){return{left:Math.min(F.left,H.left)+Math.abs(F.left-H.left)/2,top:Math.min(F.top,H.top)+Math.abs(F.top-H.top)/2}});l.floatText({board:t,text:"+"+z,fontSize:a.fontSizeFor({score:z}),position:v})}y.progressbar({value:G.val()*
100/D.val()});r.stopPropagation()},"webble:item:rocket:iteration":function(r,v,z){if(z=a.lineScore({lines:v,type:"rocket",chain:z})){O(z);v=v.map(function(F){return F.middle()}).reduce(function(F,H){return{left:Math.min(F.left,H.left)+Math.abs(F.left-H.left)/2,top:Math.min(F.top,H.top)+Math.abs(F.top-H.top)/2}});l.floatText({board:t,text:"+"+z,fontSize:a.fontSizeFor({score:z}),position:v})}y.progressbar({value:G.val()*100/D.val()});r.stopPropagation()},"webble:remove-lines:end":function(r){if(s.val()>
B.val()){j.inc();n.set(p.time(j.val()));var v=a.levelScore({level:j.val()}),z=s.val()-B.val();z=Math.min(z,v*0.1);B.val(s.val()).inc(v-z);G.val(z);D.val(v);y.progressbar({value:G.val()*100/D.val()})}r.stopPropagation()},"webble:remove-piece:start":function(r,v){var z=a.pieceScore({tiles:v});if(z){O(z);var F=v.map(function(H){return H.position()}).reduce(function(H,M){return{left:Math.min(H.left,M.left)+Math.abs(H.left-M.left)/2,top:Math.min(H.top,M.top)+Math.abs(H.top-M.top)/2}});l.floatText({board:t,
text:"+"+z,fontSize:a.fontSizeFor({score:z}),position:F})}y.progressbar({value:G.val()*100/D.val()});r.stopPropagation()},"webble:remove-piece:end":function(r){g=x.dequeue();o.piece(g);o.moveTo(b);r.stopPropagation()},"webble:click-lock:locked":function(r){o.active(false);n.stop();r.stopPropagation()},"webble:click-lock:unlocked":function(r){o.active(true);n.reset();n.start();r.stopPropagation()},"webble:timer:tick":function(r,v,z){w.progressbar({value:v*100/z});r.stopPropagation()},"webble:timer:expired":function(r){L.click();
r.stopPropagation()},"webble:game:suspended":function(r){r.stopPropagation()},"webble:game:resumed":function(r){r.stopPropagation()},"webble:game:end":function(r){Q.dialog("open");r.stopPropagation()}});var J={win:d,container:f,selector:o,board:t},I={difficulty:p,soundEnabled:false,musicEnabled:false,maximumMultipliers:3,maximumPowerUps:3,multipliers:[webble.item({type:"x2",initial:2,weight:50,max:3}),webble.item({type:"x3",initial:0,weight:20,max:1}),webble.item({type:"x4",initial:0,weight:10,max:1})],
powerUps:[webble.item({type:"normal",initial:28,weight:5,max:100}),webble.item({type:"rocket",initial:3,weight:55,max:3}),webble.item({type:"gravity",initial:1,weight:50,max:1}),webble.item({type:"bomb",initial:1,weight:10,max:1})]};k=e("#sound-toggle").click(function(){var r=e(this);if(r.hasClass("on")){r.removeClass("on");I.soundEnabled=false}else{r.addClass("on");I.soundEnabled=true}});m=e("#music-toggle").click(function(){var r=e(this);if(r.hasClass("on")){r.removeClass("on");I.musicEnabled=false}else{r.addClass("on");
I.musicEnabled=true}});I.soundEnabled&&k.addClass("on");I.musicEnabled&&m.addClass("on");e("#help-toggle").click(function(){R.dialog("open")});var L=e("<div>",{"class":"grid"});for(k=0;k<t.cellCount();k++)e("<div>",{"class":"cell"}).appendTo(L);L.appendTo(f).children().each(function(r){e(this).data("col",r%8).data("row",Math.floor(r/8))}).end().mouseover(function(r){r=e(r.target);var v=r.data("col"),z=r.data("row");r.hasClass("cell")||console.log("not a cell");b={col:v,row:z};o.moveTo(b)});var K=
webble.lock({name:"click-lock",receiver:d});K.lock();var N=webble.lock({name:"suspend-lock",receiver:d});N.unlock();h.randomBoard({board:t,multipliers:I.multipliers,powerUps:I.powerUps,level:1});e(document).keydown(function(r){if(r.ctrlKey){o.rotate();o.moveTo(b)}else{var v,z;switch(r.keyCode){case KeyEvent.DOM_VK_N:v="normal";break;case KeyEvent.DOM_VK_W:v="rocket";z="up";break;case KeyEvent.DOM_VK_S:v="rocket";z="down";break;case KeyEvent.DOM_VK_A:v="rocket";z="left";break;case KeyEvent.DOM_VK_D:v=
"rocket";z="right";break;case KeyEvent.DOM_VK_G:v="gravity";break;case KeyEvent.DOM_VK_B:v="bomb";break}if(!K.locked()){r=b;var F=t.tileAt(r);if(F){t.removeTile(F);t.createTile(r,{color:F.color(),type:v,dir:z})}}}});L.mousedown(function(r){if(r.which!==3)return true;o.rotate();o.moveToPosition({left:r.pageX,top:r.pageY});return false}).get(0).oncontextmenu=function(){return false};L.click(function(){if(!K.locked()){I.soundEnabled&&q.click.play();K.lock();h.removePiece({ui:J,receiver:d,animation:l.removePiece,
complete:function(){d.trigger("webble:remove-lines:start");var r=p.tileAmount({tileCount:t.tileCount(),cellCount:t.cellCount(),pieceSize:g.size(),level:j.val()});P(0,r)}})}});e("#start-dialog").dialog({autoOpen:false,modal:true,resizable:false,draggable:false,width:600,height:300,close:function(){K.unlock()}}).dialog("open");var R=e("#help-dialog").dialog({autoOpen:false,modal:true,resizable:false,draggable:false,width:600,height:300,open:function(){K.locked()?N.lock():n.stop()},close:function(){if(K.locked()){N.unlock();
c.resume({receiver:d})}else n.start()}}),Q=e("#end-dialog").dialog({autoOpen:false,modal:true,resizable:false,draggable:false,width:600,height:300,close:function(){j.reset();s.reset();B.val(a.levelScore(j.val()));G.val(s.val());D.val(B.val());h.randomBoard({board:t,multipliers:I.multipliers,powerUps:I.powerUps,level:j.val()});n.set(p.time(j.val()));K.unlock()}}),O=function(r){if(!(r<=0)){s.inc(r);G.inc(r);s.val()>C.val()&&C.val(s.val())}},P=function(r,v){if(v===0){d.trigger("webble:remove-lines:end",
[r]);K.unlock()}else S(r,function(z){h.insertTiles({ui:J,receiver:d,settings:I,amount:v,chooseType:c.chooseType,animation:l.insertTile,complete:function(F){F<0?d.trigger("webble:remove-lines:end",[z]):t.refactor("both",{},function(){T(z,function(H){N.locked()?c.suspend({fn:P,args:[H,F],receiver:d}):P(H,F)})})}})})},S=function(r,v){h.removeLines({ui:J,receiver:d,animations:l,iteration:r,complete:function(z){v(z)}})},T=function(r,v){h.removeLines({ui:J,receiver:d,animations:l,iteration:r,complete:function(z){v(z)}})}})})(jQuery);

