/
jquery.tetris.min.js
1 lines (1 loc) · 11 KB
/
jquery.tetris.min.js
1
(function(e){function n(e,t){var n=a(s(r(e)));n.l=255+(n.l-255)/t;return u(l(n))}function r(e){if(/^#([a-f\d]){6}$/i.test(e))return e;if(/^#([a-f\d]){3}$/i.test(e))return e.replace(/^#([a-f\d])([a-f\d])([a-f\d])$/i,"#$1$1$2$2$3$3");var t={red:"FF0000",orange:"FFA500",darkgray:"A9A9A9",slategray:"708090",floralwhite:"FFFAF0",tan:"D2B48C",yellow:"FFFF00",indianred:"CD5C5C",lightcoral:"F08080",lemonchiffon:"FFFACD",pink:"FFC0CB",violet:"EE82EE",firebrick:"B22222",darksalmon:"E9967A",mediumorchid:"BA55D3",gold:"FFD700",orchid:"DA70D6",lightpink:"FFB6C1",darkorange:"FF8C00",mediumpurple:"9370DB",plum:"DDA0DD",purple:"800080",orangered:"FF4500",papayawhip:"FFEFD5",darkseagreen:"8FBC8F",lime:"00FF00",indigo:"4B0082",peachpuff:"FFDAB9",blueviolet:"8A2BE2",lightskyblue:"87CEFA",teal:"008080",bisque:"FFE4C4",darkkhaki:"BDB76B",darkviolet:"9400D3",midnightblue:"191970",aqua:"00FFFF",sienna:"A0522D",slateblue:"6A5ACD",darkorchid:"9932CC",antiquewhite:"FAEBD7",cyan:"00FFFF",maroon:"800000",lawngreen:"7CFC00",chartreuse:"7FFF00",palevioletred:"DB7093",blue:"0000FF",silver:"C0C0C0",limegreen:"32CD32",lightgreen:"90EE90",palegoldenrod:"EEE8AA",navy:"000080",crimson:"DC143C",palegreen:"98FB98",aquamarine:"7FFFD4",darkslateblue:"483D8B",peru:"CD853F",darkred:"8B0000",darkgreen:"006400",powderblue:"B0E0E6",lightseagreen:"20B2AA",snow:"FFFAFA",hotpink:"FF69B4",olivedrab:"6B8E23",dodgerblue:"1E90FF",paleturquoise:"AFEEEE",gray:"808080",thistle:"D8BFD8",lightcyan:"E0FFFF",mediumblue:"0000CD",darkturquoise:"00CED1",coral:"FF7F50",fuchsia:"FF00FF",turquoise:"40E0D0",sandybrown:"F4A460",darkgoldenrod:"B8860B",khaki:"F0E68C",magenta:"FF00FF",cadetblue:"5F9EA0",ghostwhite:"F8F8FF",lavenderblush:"FFF0F5",green:"008000",skyblue:"87CEEB",steelblue:"4682B4",whitesmoke:"F5F5F5",darkslategray:"2F4F4F",olive:"808000",oldlace:"FDF5E6",lightblue:"ADD8E6",lightsalmon:"FFA07A",mediumseagreen:"3CB371",wheat:"F5DEB3",dimgray:"696969",royalblue:"4169E1",lightsalmon:"FFA07A",darkolivegreen:"556B2F",brown:"A52A2A",deeppink:"FF1493",burlywood:"DEB887",lightyellow:"FFFFE0",lightsteelblue:"B0C4DE",white:"FFFFFF",moccasin:"FFE4B5",rosybrown:"BC8F8F",darkmagenta:"8B008B",cornflowerblue:"6495ED",azure:"F0FFFF",lavender:"E6E6FA",goldenrod:"DAA520",greenyellow:"ADFF2F",blanchedalmond:"FFEBCD",beige:"F5F5DC",seagreen:"2E8B57",chocolate:"D2691E",springgreen:"00FF7F",lightslategray:"778899",ivory:"FFFFF0",darkcyan:"008B8B",mintcream:"F5FFFA",forestgreen:"228B22",mediumvioletred:"C71585",linen:"FAF0E6",darkblue:"00008B",aliceblue:"F0F8FF",yellowgreen:"9ACD32",mediumturquoise:"48D1CC",black:"000000",cornsilk:"FFF8DC",mistyrose:"FFE4E1",deepskyblue:"00BFFF",mediumslateblue:"7B68EE",salmon:"FA8072",honeydew:"F0FFF0",gainsboro:"DCDCDC",navajowhite:"FFDEAD",mediumaquamarine:"66CDAA",tomato:"FF6347",seashell:"FFF5EE",lightgrey:"D3D3D3",saddlebrown:"8B4513",mediumspringgreen:"00FA9A",lightgoldenrodyellow:"FAFAD2"};if(t[e.toLowerCase()])return"#"+t[e.toLowerCase()];console.log('invalid html color "'+e+'"');return"#FFFFFF"}function s(e){var t=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function o(e){var t=e.toString(16);return t.length==1?"0"+t:t}function u(e){return"#"+o(e.r)+o(e.g)+o(e.b)}function a(e){var t=Math.round(e.r),n=Math.round(e.g),r=Math.round(e.b);var i=Math.min(t,Math.min(n,r)),s=Math.max(t,Math.max(n,r));var o=s-i+0;var u=s+i+0;var a=u/510;var f;var l;if(s==i){f=0;l=0}else{var c=(s-t)/o;var h=(s-n)/o;var p=(s-r)/o;f=a<=.5?o/u:o/(510-u);if(t==s)l=60*(6+p-h);if(n==s)l=60*(2+c-p);if(r==s)l=60*(4+h-c);if(l>360)l-=360}return{h:Math.round(l*255/360),s:Math.round(f*255),l:Math.round(a*255)}}function f(e,t,n){var r=e;if(n>360)n-=360;if(n<0)n+=360;if(n<60)r=e+(t-e)*n/60;else if(n<180)r=t;else if(n<240)r=e+(t-e)*(240-n)/60;return Math.round(r*255)}function l(e){var t=e.h*360/255,n=e.s/255,r=e.l/255;var i,s,o;if(n==0){i=s=o=Math.round(r*255)}else{var u,a;if(r<=.5)a=r+r*n;else a=r+n-r*n;u=2*r-a;i=f(u,a,t+120);s=f(u,a,t);o=f(u,a,t-120)}return{r:i,g:s,b:o}}var t=0;e.fn.tetris=function(r,s){function y(){var e=g.shift();g.push(e);return e}function _(n,i){var s=n.innerWidth()||n.width();if(s<o+2*b){s=o+2*b;if(n.innerWidth())n.innerWidth(s);else n.width(s)}O=Math.floor(s/(o+2*b));M=Math.ceil(S.length/O);O=Math.ceil(S.length/M);r=e("<div>",{"class":"tetris",id:"tetris_"+t}).css("height",M*(u+2*(A?b+a:b)));if(i==0)n.append(r);else e("#tetris_"+t).replaceWith(r);if(s>(n.innerWidth()||n.width())&&i<2)_(n,i+1);else r.css("width",O*(o+2*(A?b+a:b)))}function K(t,n){var r=S.shift();if(!r)return;var i,s;var o=r.cat;if(F[t]&&F[t]==o){i=1;H[t].attr("class",H[t].attr("class")+" right");if(A&&H[t].attr("class").match(/left/))H[t].attr("class",H[t].attr("class")+" left_right")}if(!n)if(B&&B==o){s=1;P.attr("class",P.attr("class")+" bottom");if(A&&P.attr("class").match(/top/))P.attr("class",P.attr("class")+" top_bottom")}F[t]=B=o;var u=e('<div class="cell t'+r.cat+(i?" left":"")+(s?" top":"")+(r.title?' title"':'"')+(r.desc?' title="'+r.desc+'"':"")+">"+(r.href?'<a href="'+r.href+(v?'" target="_blank"':'"')+">":"")+"<span>"+(r.title&&d?"<hr/>":"")+(r.logo?'<img src="'+p+r.logo+'"/>':"")+(r.name||"")+(r.title&&d?"<hr/>":"")+"</span>"+(r.href?"</a>":"")+"</div>");D[t].append(u);if(i&&s&&!P.attr("class").match(/left/)){u.addClass("corner_left_top");u.append(e('<div class="corner left top"></div>'))}if(i&&!s&&H[t].attr("class").match(/top/)){H[t].addClass("corner_right_top");H[t].append(e('<div class="corner right top"></div>'))}if(i&&H[t].attr("class").match(/bottom/)&&(!S[0]||S[0].cat!=o)){H[t].addClass("corner_right_bottom");H[t].append(e('<div class="corner right bottom"></div>'))}if(!i&&s&&P.attr("class").match(/left/)){P.addClass("corner_left_bottom");P.append(e('<div class="corner left bottom"></div>'))}H[t]=P=u}t+=1;var o=s.width||s.side||100;var u=s.height||s.side||100;var a=s.margin!=undefined?s.margin:2;var f=s.padding!=undefined?s.padding:4;var l=s.border!=undefined?s.border:s["border-width"]!=undefined?s["border-width"]:2;var c=s.logowidth||s.logoside||40;var h=s.logoheight||s.logoside||40;var p=s.logodir||"";var d=s.hrtitles;var v=s.targetblank;var m=s.colorfactor||5;var g=s.defcolors||["#48C","#F80","#8C4","#22F","#F44","#EA0"];var b=f+l+a;var w="";var E="div#tetris_"+t;var S=[];for(i=0;i<r.length;i++){var x=r[i];var T=x.id||x.catid||"tetris_cat_"+i;var N=x.bdcolor||x["border-color"]||x.color||y();var C=x.bgcolor||x["background-color"]||n(N,m);w+=E+" div.t"+T+", "+E+" div.t"+T+" div.corner {border-color: "+N+";}"+E+" div.t"+T+" {background-color: "+C+";}";if(x.name||x.catname||x.logo||x.catlogo)S.push({title:true,name:x.name||x.catname,logo:x.logo||x.catlogo,desc:x.desc||x.catdesc,cat:T});var k=x.apps||x.applications||x.functions;if(k)for(j=0;j<k.length;j++){var L=k[j];if(L.name||L.appname||L.logo||L.applogo){S.push({name:L.name||L.appname,logo:L.logo||L.applogo,desc:L.desc||L.appdesc,href:L.href||L.url||L.uri||L.appuri,cat:T})}}}var A=navigator.userAgent.match(/MSIE 6.0/);var O,M,r;_(this,0);var D=[];for(i=0;i<M;i++){D[i]=e("<div>",{"class":"row"});r.append(D[i])}var P,H=[],B,F=[];var I,q,R;var U,z,W;for(i=0;i<O;i++){U=S[0].cat;z=S[M-1]?S[M-1].cat:undefined;q=I=0;if(z&&U==z){I=M}else if(W&&W==U&&R>0&&(!S[M-R]||S[M-R].cat!=W)){if(z&&S[M]&&S[M].cat==z){var X=1;while(S[M-1-X].cat==z)X++;if(S[M-X].title&&(S[M+X]&&S[M+X].cat==z||S.length<2*M&&S[S.length-1].cat==z&&M-X<S.length-M)){var V=S[M-X];S[M-X]=S[M];S[M]=V}}}else if(z){while(S[I]&&U==S[I].cat)I++;while(S[M-1-q]&&z==S[M-1-q].cat)q++}else if(W&&W==U){z=S[S.length-1].cat;if(z!=U||R==0&&F[S.length-1]&&F[S.length-1]!=U)while(S[I]&&U==S[I].cat)I++}W=z;R=q;for(j=0;j<M;j++){var J=j<I?j+M-I:j>=M-q?j-M+q:j+q-I;K(J,j==0||J==0||J==q)}}e("head").append(e('<style type="text/css" id="tetris_'+t+'_css">'+E+" {"+"margin: 0 auto;"+"}"+E+" div {"+"border-radius: "+b+"px;"+"-moz-border-radius: "+b+"px;"+"-webkit-border-radius: "+b+"px;"+"}"+E+" div.left, "+E+" div.top {"+"border-top-left-radius: 0;"+"-moz-border-radius-topleft: 0;"+"-webkit-border-radius-topleft: 0;"+"}"+E+" div.left, "+E+" div.bottom {"+"border-bottom-left-radius: 0;"+"-moz-border-radius-bottomleft: 0;"+"-webkit-border-radius-bottomleft: 0;"+"}"+E+" div.right, "+E+" div.bottom {"+"border-bottom-right-radius: 0;"+"-moz-border-radius-bottomright: 0;"+"-webkit-border-radius-bottomright: 0;"+"}"+E+" div.right, "+E+" div.top {"+"border-top-right-radius: 0;"+"-moz-border-radius-topright: 0;"+"-webkit-border-radius-topright: 0;"+"}"+E+" div.corner_left_top {"+"border-top-left-radius: "+(l+a)+"px;"+"-moz-border-radius-topleft: "+(l+a)+"px;"+"-webkit-border-radius-topleft: "+(l+a)+"px;"+"}"+E+" div.corner_left_bottom {"+"border-bottom-left-radius: "+(l+a)+"px;"+"-moz-border-radius-bottomleft: "+(l+a)+"px;"+"-webkit-border-radius-bottomleft: "+(l+a)+"px;"+"}"+E+" div.corner_right_bottom {"+"border-bottom-right-radius: "+(l+a)+"px;"+"-moz-border-radius-bottomright: "+(l+a)+"px;"+"-webkit-border-radius-bottomright: "+(l+a)+"px;"+"}"+E+" div.corner_right_top {"+"border-top-right-radius: "+(l+a)+"px;"+"-moz-border-radius-topright: "+(l+a)+"px;"+"-webkit-border-radius-topright: "+(l+a)+"px;"+"}"+E+" div.row {"+"height: "+(u+2*b)+"px"+"}"+E+" div.row div.cell{"+"float: left;"+"border-style: solid;"+"text-align: center;"+"overflow: hidden;"+"position: relative;"+"height : "+(A?u+2*(f+l):u)+"px;"+"width : "+(A?o+2*(f+l):o)+"px;"+"margin : "+a+"px ;"+"padding : "+f+"px ;"+"border-width: "+l+"px ;"+"}"+E+" div.row div.cell.top {"+"margin-top: 0;"+"padding-top: "+b+"px;"+"border-top-width: 0;"+"}"+E+" div.row div.cell.bottom {"+"margin-bottom: 0;"+"padding-bottom: "+b+"px;"+"border-bottom-width: 0;"+"}"+E+" div.row div.cell.left {"+"margin-left: 0;"+"padding-left: "+b+"px;"+"border-left-width: 0;"+"}"+E+" div.row div.cell.right {"+"margin-right: 0;"+"padding-right: "+b+"px;"+"border-right-width: 0;"+"}"+E+" div.row div.cell div.corner {"+"position: absolute;"+"height: 0;"+"width: 0;"+"border-style: solid;"+"border-width: 0;"+"padding: 0;"+"margin: 0;"+"font-size: 0;"+"}"+E+" div.row div.cell div.left {"+"left: 0;"+"border-right-width: "+l+"px;"+"padding-right: "+a+"px;"+"margin-right: "+f+"px;"+"}"+E+" div.row div.cell div.top {"+"top: 0;"+"border-bottom-width: "+l+"px;"+"padding-bottom: "+(A?a-2:a)+"px;"+"margin-bottom: "+f+"px;"+"}"+E+" div.row div.cell div.right {"+"right: 0;"+"border-left-width: "+l+"px;"+"padding-left: "+a+"px;"+"margin-left: "+f+"px;"+"}"+E+" div.row div.cell div.bottom {"+"bottom: 0;"+"border-top-width: "+l+"px;"+"padding-top: "+(A?a-2:a)+"px;"+"margin-top: "+f+"px;"+"}"+E+" div.title {"+"font-weight: bold;"+"}"+E+" a {"+"display: block;"+"}"+E+" a:hover {"+"background-color: white;"+"}"+E+" span{"+"height: "+u+"px;"+"width: "+o+"px;"+"margin: 0 auto;"+"overflow: hidden;"+"display: table-cell;"+"vertical-align: middle;"+"}"+E+" img{"+"width: "+c+"px;"+"height: "+h+"px;"+"display: block;"+"margin: auto;"+"}"+(A?E+" div.row div.left, "+E+" div.row div.right { width : "+(o+2*b-a)+"px; }"+E+" div.row div.left_right { width : "+(o+2*b)+"px; }"+E+" div.row div.top, "+E+" div.row div.bottom { height: "+(u+2*b-a)+"px; }"+E+" div.row div.top_bottom { height: "+(u+2*b)+"px; }":"")+w+"</style>"))}})(jQuery)