var ab=new Array;ab[0]=new Array([0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0],[0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0],[0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0],[0,3,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0],[0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0],[0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0],[0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0],[0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0]);ab[1]=new Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);ab[2]=new Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);ab[3]=new Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);ab[4]=new Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var TILE_WIDTH=32;var TILE_HEIGHT=40;var bb=new Array();bb[0]=new Image();bb[0].src="mahjongg/0.png";bb[1]=new Image();bb[1].src="mahjongg/1.png";bb[2]=new Image();bb[2].src="mahjongg/2.png";bb[3]=new Image();bb[3].src="mahjongg/3.png";bb[4]=new Image();bb[4].src="mahjongg/4.png";bb[5]=new Image();bb[5].src="mahjongg/5.png";bb[6]=new Image();bb[6].src="mahjongg/6.png";bb[7]=new Image();bb[7].src="mahjongg/7.png";bb[8]=new Image();bb[8].src="mahjongg/8.png";bb[9]=new Image();bb[9].src="mahjongg/9.png";bb[10]=new Image();bb[10].src="mahjongg/A.png";bb[11]=new Image();bb[11].src="mahjongg/B.png";bb[12]=new Image();bb[12].src="mahjongg/C.png";bb[13]=new Image();bb[13].src="mahjongg/D.png";bb[14]=new Image();bb[14].src="mahjongg/E.png";bb[15]=new Image();bb[15].src="mahjongg/F.png";bb[16]=new Image();bb[16].src="mahjongg/G.png";bb[17]=new Image();bb[17].src="mahjongg/H.png";bb[18]=new Image();bb[18].src="mahjongg/I.png";bb[19]=new Image();bb[19].src="mahjongg/J.png";bb[20]=new Image();bb[20].src="mahjongg/K.png";bb[21]=new Image();bb[21].src="mahjongg/L.png";bb[22]=new Image();bb[22].src="mahjongg/M.png";bb[23]=new Image();bb[23].src="mahjongg/N.png";bb[24]=new Image();bb[24].src="mahjongg/O.png";bb[25]=new Image();bb[25].src="mahjongg/P.png";bb[26]=new Image();bb[26].src="mahjongg/Q.png";bb[27]=new Image();bb[27].src="mahjongg/R.png";bb[28]=new Image();bb[28].src="mahjongg/S.png";bb[29]=new Image();bb[29].src="mahjongg/T.png";bb[30]=new Image();bb[30].src="mahjongg/U.png";bb[31]=new Image();bb[31].src="mahjongg/V.png";bb[32]=new Image();bb[32].src="mahjongg/W.png";bb[33]=new Image();bb[33].src="mahjongg/X.png";bb[34]=new Image();bb[34].src="mahjongg/flower1.png";bb[35]=new Image();bb[35].src="mahjongg/flower2.png";bb[36]=new Image();bb[36].src="mahjongg/flower3.png";bb[37]=new Image();bb[37].src="mahjongg/flower4.png";bb[38]=new Image();bb[38].src="mahjongg/season1.png";bb[39]=new Image();bb[39].src="mahjongg/season2.png";bb[40]=new Image();bb[40].src="mahjongg/season3.png";bb[41]=new Image();bb[41].src="mahjongg/season4.png";var cb;var db;var eb;var fb;var gb;var hb;var ib=new Array();var jb=new Array();var kb=new Array();var lb=null;var mb;var nb=null;var ob=0;var pb=144;function Tile(qb,rb,sb,x,y,z){this.img=qb;this.bg=rb;this.sym=sb;this.x=x;this.y=y;this.z=z;this.left=null;this.right=null;this.below=null;this.lcount=0;this.rcount=0;this.acount=0;this.played=false;this.highlighted=false;}
function TList(T,L){this.tile=T;this.next=L;return this;}
function tb(ub,vb){if(vb>1){vb/=100.0;}
if(ub.style.MozOpacity!=undefined){ub.style.MozOpacity=vb;}
else if(ub.style.opacity!=undefined){ub.style.opacity=vb;}
else if(ub.style.filter!=undefined){ub.style.filter="alpha(opacity="+Math.round(vb*100)+")";}
}
function DTile(qb,sb){this.img=qb;this.sym=sb;}
var i;for(var j=0;j<34;j++){i=j*4;kb[i]=new DTile(bb[j],j);kb[i+1]=new DTile(bb[j],j);kb[i+2]=new DTile(bb[j],j);kb[i+3]=new DTile(bb[j],j);}
kb[136]=new DTile(bb[34],34);kb[137]=new DTile(bb[35],34);kb[138]=new DTile(bb[36],34);kb[139]=new DTile(bb[37],34);kb[140]=new DTile(bb[38],35);kb[141]=new DTile(bb[39],35);kb[142]=new DTile(bb[40],35);kb[143]=new DTile(bb[41],35);function wb(n){return Math.floor(Math.random()*n);}
function xb(){var i,j;for(i=0;i<kb.length;i++){j=wb(kb.length-i);var yb=kb[i];kb[i]=kb[i+j];kb[i+j]=yb;}
for(i=0;i<jb.length;i++){jb[i].img.src=kb[i].img.src;jb[i].sym=kb[i].sym;jb[i].played=false;jb[i].img.style.border='none';jb[i].img.style.top=jb[i].y+'px';jb[i].img.style.left=jb[i].x+'px';jb[i].img.style.zIndex=jb[i].z;jb[i].img.style.display='';jb[i].bg.style.display='';jb[i].lcount=jb[i].rcount=jb[i].acount=0;}
for(i=0;i<jb.length;i++){var zb;zb=jb[i].left;while(zb!=null){zb.tile.rcount++;zb=zb.next;}
zb=jb[i].right;while(zb!=null){zb.tile.lcount++;zb=zb.next;}
zb=jb[i].below;while(zb!=null){zb.tile.acount++;zb=zb.next;}
}
hb=jb.length;}
function $b(T){if(lb==null){T.img.style.border='2px solid #ffff00';T.img.style.top=T.y-2+'px';T.img.style.left=T.x-2+'px';T.img.style.zIndex=T.z+1;lb=T;}
else if(lb==T){T.img.style.border='none';T.img.style.top=T.y+'px';T.img.style.left=T.x+'px';T.img.style.zIndex=T.z;lb=null;}
else if(lb.sym==T.sym){_b(lb,T);ac(lb,T);$b(lb);bc();}
else{$b(lb);$b(T);}
}
function cc(){var i,j;var dc=0;for(i=0;i<mb.length;i++){if(mb[i].played)continue;if(db.checked){mb[i].img.style.cursor='help';}
else{mb[i].img.style.cursor='pointer';}
for(j=0;j<mb.length;j++){if(mb[j].played)continue;if(i==j)continue;if(mb[i].sym==mb[j].sym){dc++;mb[i].img.style.cursor='pointer';break;}
}
}
var ec;if(ob==0){if(hb<pb){pb=hb;fc();}
ec='<p><b>رکورد</b><br />'+pb+'</p>';}
else{ec='<p><b>بازى</b><br />'+ob+'</p>';}
cb.innerHTML='<p><b>قطعه باقيمانده!</b><br />'+hb+'</p>'+ec;if(hb>0&&dc==0){fb.style.display='';}
else{fb.style.display='none';}
}
function bc(){var i,j;mb=new Array;j=0;for(i=0;i<jb.length;i++){if(!jb[i].played&&jb[i].acount==0&&(jb[i].lcount==0||jb[i].rcount==0)){mb[j++]=jb[i];jb[i].img.onclick=function(){for(var j=0;j<mb.length;j++){if(mb[j].img==this){$b(mb[j]);break;}
}
}
}
else{jb[i].img.style.cursor='default';}
}
cc();}
function _b(T1,T2){nb=new TList(T1,nb);nb=new TList(T2,nb);}
function gc(){if(lb!=null){$b(lb);}
if(nb==null)return;var T1=nb.tile;var T2=nb.next.tile;nb=nb.next.next;hc(T1,T2);}
function hc(T1,T2){var zb;zb=T1.left;while(zb!=null){zb.tile.rcount++;zb=zb.next;}
zb=T2.left;while(zb!=null){zb.tile.rcount++;zb=zb.next;}
zb=T1.right;while(zb!=null){zb.tile.lcount++;zb=zb.next;}
zb=T2.right;while(zb!=null){zb.tile.lcount++;zb=zb.next;}
zb=T1.below;while(zb!=null){zb.tile.acount++;zb=zb.next;}
zb=T2.below;while(zb!=null){zb.tile.acount++;zb=zb.next;}
T1.img.style.display='';T1.bg.style.display='';T2.img.style.display='';T2.bg.style.display='';T1.played=false;T2.played=false;hb+=2;bc();}
function ac(T1,T2){var zb;T1.played=true;T2.played=true;T1.img.style.display='none';T1.bg.style.display='none';T2.img.style.display='none';T2.bg.style.display='none';zb=T1.left;while(zb!=null){zb.tile.rcount--;zb=zb.next;}
zb=T2.left;while(zb!=null){zb.tile.rcount--;zb=zb.next;}
zb=T1.right;while(zb!=null){zb.tile.lcount--;zb=zb.next;}
zb=T2.right;while(zb!=null){zb.tile.lcount--;zb=zb.next;}
zb=T1.below;while(zb!=null){zb.tile.acount--;zb=zb.next;}
zb=T2.below;while(zb!=null){zb.tile.acount--;zb=zb.next;}
hb-=2;if(!gb&&hb==0){gb=true;ob++;fc();eb.style.display='';setTimeout('youwin.style.display = "none"',5000);}
bc();}
function ic(){var zb;gb=false;while(nb!=null){nb=nb.next;}
lb=null;xb();bc();}
function jc(){var kc="mahjongg=";var lc=document.cookie.split(';');var mc;for(var i=0;i<lc.length;i++){var c=lc[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(kc)==0){mc=parseInt(c.substring(kc.length,c.length));if(mc<0){pb=-mc;}
else{ob=mc;}
}
}
}
function fc(){var kc="mahjongg=";var nc=new Date();var mc;if(ob>0){mc=ob;}
else{mc=-pb;}
nc.setUTCFullYear(1+nc.getUTCFullYear());var c=kc+mc+"; expires="+nc.toUTCString();document.cookie=c;}
function oc(){var dc=0;document.write('<div id="mahjongg">');document.write('<div id="status"></div>');document.write('<div id="youwin" style="display:none">برانده شودي!</div>');document.write('<div id="nomatches" style="display:none">0 قطعه باقيمانده!</div>');document.write(' <div id="buttonbox">');document.write('  <div id="hintbox"><input type="checkbox" name="hints" id="hintbtn" value="1" onchange="cc()" /><label for="hintbtn"> کمک</label></div>');document.write('  <input type="button" id="undobtn" value="پشيمان" onclick="gc()" /> ');document.write('  <input type="button" id="newbtn" value="ازنو" onclick="ic()" />  ');document.write(' </div>');fb=document.getElementById('nomatches');eb=document.getElementById('youwin');cb=document.getElementById('status');db=document.getElementById('hintbtn');document.write(' <div id="board">');for(var k=0;k<ab.length;k++){ib[k]=new Array();for(i=0;i<ab[0].length;i++){ib[k][i]=new Array();for(j=0;j<ab[0][0].length;j++){if(ab[k][i][j]>0){var pc="tile"+dc;document.write('<img src="blank.png" width="1" height="1" id="'+pc+'" style="position: absolute" />');document.write('<div id="s_'+pc+'" style="background: black; position: absolute"></div>');var bb=document.getElementById(pc);var y=-3+TILE_HEIGHT+i*(TILE_HEIGHT+1)-k*5;if((ab[k][i][j]&2)>0){y+=TILE_HEIGHT/2;}
var x=-6+(-TILE_WIDTH/2)+j*(TILE_WIDTH+1)-k*4;if((ab[k][i][j]&4)>0){x+=TILE_WIDTH/2;}
var z=3*k+2;bb.style.width=TILE_WIDTH+'px';bb.style.height=TILE_HEIGHT+'px';bb.style.top=y+'px';bb.style.left=x+'px';bb.style.zIndex=z;var qc=document.getElementById("s_"+pc);tb(qc,0.5);qc.style.width=TILE_WIDTH+1+'px';qc.style.height=TILE_HEIGHT+1+'px';qc.style.top=y+8+'px';qc.style.left=x+6+'px';qc.style.zIndex=z-1;ib[k][i][j]=new Tile(bb,qc,0,x,y,z);jb[dc++]=ib[k][i][j];}
}
}
}
document.write(' </div>');document.getElementById('board').onmousedown=function(){return false;}
;document.write("</div>");for(var z=0;z<ab.length;z++){for(i=0;i<ab[0].length;i++){for(j=0;j<ab[0][0].length;j++){if(ab[z][i][j]>0){if(ab[z][i][j-1]>0){ib[z][i][j].left=new TList(ib[z][i][j-1],ib[z][i][j].left);}
if((ab[z][i][j]&2)>0&&ab[z][i+1][j-1]>0){ib[z][i][j].left=new TList(ib[z][i+1][j-1],ib[z][i][j].left);}
if(ab[z][i][j+1]>0){ib[z][i][j].right=new TList(ib[z][i][j+1],ib[z][i][j].right);}
if((ab[z][i][j]&2)>0&&ab[z][i+1][j+1]>0){ib[z][i][j].right=new TList(ib[z][i+1][j+1],ib[z][i][j].right);}
if(z>0){if(ab[z-1][i][j]>0){ib[z][i][j].below=new TList(ib[z-1][i][j],ib[z][i][j].below);}
if((ab[z][i][j]&2)>0&&ab[z-1][i+1][j]>0){ib[z][i][j].below=new TList(ib[z-1][i+1][j],ib[z][i][j].below);}
if((ab[z][i][j]&4)>0&&ab[z-1][i][j+1]>0){ib[z][i][j].below=new TList(ib[z-1][i][j+1],ib[z][i][j].below);}
if((ab[z][i][j]&4)>0&&(ab[z][i][j]&2)>0&&ab[z-1][i+1][j+1]>0){ib[z][i][j].below=new TList(ib[z-1][i+1][j+1],ib[z][i][j].below);}
}
}
}
}
}
jc();ic();}
