var ab=320;var bb=26;var cb=40;var db=40;var eb=8;var fb=8;var gb=eb*cb;var hb=fb*db;var ib=530;var jb=Array();var kb=0;jb[0]=new Image();jb[0].src="jewel/help0.jpg";jb[1]=new Image();jb[1].src="jewel/help1.jpg";jb[2]=new Image();jb[2].src="jewel/help2.jpg";jb[3]=new Image();jb[3].src="jewel/help3.jpg";jb[4]=new Image();jb[4].src="jewel/help2.jpg";jb[5]=new Image();jb[5].src="jewel/help1.jpg";var lb=new Image();lb.src="jewel/empty.gif";var images=new Array();images[0]=new Image();images[0].src="jewel/square.gif";images[1]=new Image();images[1].src="jewel/octagon.gif";images[2]=new Image();images[2].src="jewel/diamond.gif";images[3]=new Image();images[3].src="jewel/jewel.gif";images[4]=new Image();images[4].src="jewel/triangle.gif";images[5]=new Image();images[5].src="jewel/hex.gif";images[6]=new Image();images[6].src="jewel/circle.gif";var mb=new Array();mb[0]=new Image();mb[0].src="jewel/hint1.gif";mb[1]=new Image();mb[1].src="jewel/hint2.gif";mb[2]=new Image();mb[2].src="jewel/hint3.gif";mb[3]=new Image();mb[3].src="jewel/hint4.gif";var nb;var ob=new Image();ob.src="jewel/graypixel.gif";var pb=new Image();pb.src="jewel/goldpixel.gif";var qb=new Image();qb.src="jewel/goldbonus.gif";var rb=new Image();rb.src="jewel/graybonus.gif";var sb={x:0,y:0}
;var tb=Array();var ub=Array();var vb;var wb;var xb;var yb;var zb;var $b=[];var _b=0;var ac=0;var bc;var cc;var dc;var ec;var fc;var gc=false;var hc;var ic=0;var jc=0;var kc=null;var lc=0;function mc(i,j,x,y,nc,oc){this.i=i;this.j=j;this.x=x;this.y=y;this.offsetX=0;this.offsetY=0;this.remove=false;this.token=nc;this.piece=oc;return this;}
function pc(){var qc;var nc;for(var i=0;i<eb;i++){for(var j=0;j<fb;j++){do{qc=false;nc=rc(7);if(i>=2&&nc==tb[i-1][j].token&&nc==tb[i-1][j].token){qc=true;}
if(j>=2&&nc==tb[i][j-1].token&&nc==tb[i][j-1].token){qc=true;}
}
while(qc);tb[i][j].token=nc;tb[i][j].piece.src=images[nc].src;}
}
}
function sc(tc,uc,vc,wc,xc,yc){if(tc<0)return false;if(uc<0)return false;if(vc<0)return false;if(wc<0)return false;if(xc<0)return false;if(yc<0)return false;if(tc>=eb)return false;if(uc>=fb)return false;if(vc>=eb)return false;if(wc>=fb)return false;if(xc>=eb)return false;if(yc>=fb)return false;return(tb[tc][uc].token==tb[vc][wc].token&&tb[vc][wc].token==tb[xc][yc].token);}
function zc(){$b=[];for(var i=0;i<eb;i++){for(var j=0;j<fb;j++){var qc=false;if(sc(i,j,i-1,j-1,i+1,j-1))qc=true;if(sc(i,j,i,j-2,i,j-3))qc=true;if(sc(i,j,i-1,j-1,i-2,j-1))qc=true;if(sc(i,j,i+1,j-1,i+2,j-1))qc=true;if(sc(i,j,i-1,j+1,i+1,j+1))qc=true;if(sc(i,j,i,j+2,i,j+3))qc=true;if(sc(i,j,i-1,j+1,i-2,j+1))qc=true;if(sc(i,j,i+1,j+1,i+2,j+1))qc=true;if(sc(i,j,i-1,j-1,i-1,j+1))qc=true;if(sc(i,j,i-2,j,i-3,j))qc=true;if(sc(i,j,i-1,j-1,i-1,j-2))qc=true;if(sc(i,j,i-1,j+1,i-1,j+2))qc=true;if(sc(i,j,i+1,j-1,i+1,j+1))qc=true;if(sc(i,j,i+2,j,i+3,j))qc=true;if(sc(i,j,i+1,j-1,i+1,j-2))qc=true;if(sc(i,j,i+1,j+1,i+1,j+2))qc=true;if(qc){$b.push(tb[i][j]);}
}
}
$c();if($b.length>0){var c=rc($b.length);kc=$b[c];_c.style.top=kc.y+'px';_c.style.left=kc.x+'px';}
}
function ad(){setTimeout("ad()",1000);if(nb>0){nb--;}
else{bd();}
}
function $c(){nb=15;_c.style.display="none";}
function bd(){if(cd>0)return;nb=5;_c.src=mb[0].src;_c.style.display="";setTimeout('_c.src%20=%20mb[1].html',150);setTimeout('_c.src%20=%20mb[3].html',300);setTimeout('_c.src%20=%20mb[2].html',450);setTimeout('_c.src%20=%20mb[0].html',600);setTimeout('_c.style.display = "none"',750);}
function dd(){if(gc)ed();}
function ed(){gc=true;fc.style.display="none";fd();hc=10;_b=0;gd(0);hd();id=jd=kd=null;ld.style.display="none";md.style.display="none";do{pc();zc();}
while($b.length<5);$c();cd=0;}
function nd(){var od="highscore:"+escape(zb.toLowerCase())+"=";var pd=document.cookie.split(';');for(var i=0;i<pd.length;i++){var c=pd[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(od)==0){ac=parseInt(c.substring(od.length,c.length));}
}
}
function qd(){var rd=ac;dc.innerHTML=""+rd;}
function sd(){var od="highscore:"+escape(zb.toLowerCase())+"=";ac=_b;qd();var td=new Date();td.setUTCFullYear(1+td.getUTCFullYear());var c=od+ac+"; expires="+td.toUTCString();document.cookie=c;}
function gd(ud){_b+=ud;var vd=_b;cc.innerHTML=""+vd;if(_b>ac)sd();return ud;}
function wd(i,j,xd){yd();ub[i][j].innerHTML=''+xd;zd(ub[i][j],.50);ub[i][j].style.display="";setTimeout('zd( ub['+i+']['+j+'], .30)',300);setTimeout('ub['+i+']['+j+'].style.display = "none"; fe();',500);}
function $d(jc){var ud=0;for(var i=0;i<eb;i++){for(var j=0;j<fb;j++){if(sc(i,j,i+1,j,i+2,j)){ud+=gd(hc+hc/2*jc);wd(i+1,j,hc+hc/2*jc);tb[i][j].remove=tb[i+1][j].remove=tb[i+2][j].remove=true;jc++;}
if(sc(i,j,i,j+1,i,j+2)){ud+=gd(hc+hc/2*jc);wd(i,j+1,hc+hc/2*jc);tb[i][j].remove=tb[i][j+1].remove=tb[i][j+2].remove=true;jc++;}
}
}
if(ud>0){_d();ae(0,"$d("+jc+")");}
else{be(jc-1);}
return ud;}
function ce(){zd(fc,.30);fc.style.display="";setTimeout('zd( fc, .45 );',100);setTimeout('zd( fc, .60 );',200);setTimeout('zd( fc, .80 );',300);setTimeout('zd( fc, 1.0 );',400);setTimeout('zd( fc, .80 );',3000);setTimeout('zd( fc, .60 );',3100);setTimeout('zd( fc, .45 );',3200);setTimeout('zd( fc, .30 );',3300);setTimeout('fc.style.display = "none"',3400);}
function be(jc){while(ic<hc&&jc>0){ic++;jc--;vb.style.width=ib*ic/hc+'px';}
if(jc>0){de=ic/20;ee();}
}
var de;function ee(){if(ic==hc){vb.style.width=ib+'px';wb.src=qb.src;yd();}
if(ic>0){var i,j;ic=ic-de;do{i=rc(eb);j=rc(fb);}
while(tb[i][j].remove);wd(i,j,hc);tb[i][j].remove=true;tb[i][j].piece.style.display="none";vb.style.width=ib*ic/hc+'px';gd(hc);setTimeout('ee()',200);}
else{hc+=10;_d();vb.style.width=0+'px';wb.src=rb.src;ae(0,"$d(0)");fe();}
}
function hd(){vb.style.width=0+'px';wb.src=rb.src;ic=0;}
function _d(){for(var i=0;i<eb;i++){var ge=0;for(var j=fb-1;j>=0;j--){if(tb[i][j].remove){tb[i][j].piece.style.display="none";while(j>=ge&&tb[i][j-ge].remove)ge++;if(j>=ge){tb[i][j].token=tb[i][j-ge].token;tb[i][j].piece.src=tb[i][j-ge].piece.src;tb[i][j-ge].remove=true;}
else{var nc=rc(7);tb[i][j].token=nc;tb[i][j].piece.src=images[nc].src;}
tb[i][j].offsetY=-ge*db;tb[i][j].remove=false;}
}
}
}
function yd(){cd++;}
function fe(){cd--;if(cd==0){zc();if($b.length==0){yd();ce();}
}
}
function zd(he,ie){if(ie>1){ie/=100.0;}
if(he.style.MozOpacity!=undefined){he.style.MozOpacity=ie;}
else if(he.style.opacity!=undefined){he.style.opacity=ie;}
else if(he.style.filter!=undefined){he.style.filter="alpha(opacity="+Math.round(ie*100)+")";}
}
function Win2BoardCoords(x,y){var i=Math.round((x-ab)/cb);var j=Math.round((y-bb)/db);return{i:i,j:j}
}
function Board2WinCoords(i,j){return{x:i*cb+ab,y:j*db+bb
}
}
function RoundCoords(x,y){var je=Win2BoardCoords(x,y);return Board2WinCoords(je.i,je.j);}
function ke(le){if(le.pageX||le.pageY){return{x:le.pageX,y:le.pageY}
;}
return{x:le.clientX,y:le.clientY}
}
function fd(){sb.x=0;sb.y=0;sb=me(bc);}
function me(e){var ne=0;var top=0;while(e.offsetParent){ne+=e.offsetLeft;top+=e.offsetTop;e=e.offsetParent;}
ne+=e.offsetLeft;top+=e.offsetTop;return{x:ne-sb.x,y:top-sb.y}
;}
function oe(pe,le){le=le||window.event;var qe=me(pe);var re=ke(le);return{x:re.x-qe.x,y:re.y-qe.y}
;}
var cd=1;var se=false;var id=null;var jd=null;var kd=null;var te=null;var ue=[];var md=null;var ld=null;var _c=null;var ve=null;var we=null;var xe=null;var ye=null;var ze=null;function $e(le){le=le||window.event;var re=ke(le);if(kd){var _e=re.x-ve.x;var af=re.y-ve.y;if(!se){if(Math.abs(_e-jd.x)<5&&Math.abs(af-jd.y)<5){return false;}
}
se=true;if(id){md.style.display="none";id=null;}
if(Math.abs(_e-jd.x)<Math.abs(af-jd.y)){_e=jd.x;}
else{af=jd.y;}
_e=Math.max(_e,ye);_e=Math.min(_e,ze);af=Math.max(af,we);af=Math.min(af,xe);kd.style.position='absolute';kd.style.top=af+'px';kd.style.left=_e+'px';var je=Win2BoardCoords(_e,af);if(te!=null&&te.i==je.i&&te.j==je.j){return false;}
else if(te!=null){var bf=te.piece;bf.style.top=te.y+'px';bf.style.left=te.x+'px';te=null;}
for(var c=0;c<ue.length;c++){if(ue[c].i==je.i&&ue[c].j==je.j){te=ue[c];var bf=te.piece;bf.style.top=jd.y+'px';bf.style.left=jd.x+'px';}
}
return false;}
}
function cf(he){if(!he)return;he.style.cursor="pointer";he.onmousedown=function(le){if(cd>0){return false;}
yd();kd=this;se=false;var df=me(this);je=Win2BoardCoords(df.x,df.y);jd=tb[je.i][je.j];we=xe=jd.y;ye=ze=jd.x;ef(je.i,je.j);ld.style.top=jd.y+'px';ld.style.left=jd.x+'px';ld.style.display="";ve=oe(this,le);this.style.zIndex=10000;return false;}
}
function ef(i,j){te=null;ue=[];if(i>0){ue.push(tb[i-1][j]);ye-=cb;}
if(j>0){ue.push(tb[i][j-1]);we-=db;}
if(i<eb-1){ue.push(tb[i+1][j]);ze+=cb;}
if(j<fb-1){ue.push(tb[i][j+1]);xe+=db;}
}
function ff(tc,uc,vc,wc,gf){yd();var oc=tb[tc][uc].piece;tb[tc][uc].piece=tb[vc][wc].piece;tb[vc][wc].piece=oc;var nc=tb[tc][uc].token;tb[tc][uc].token=tb[vc][wc].token;tb[vc][wc].token=nc;tb[tc][uc].offsetX=tb[vc][wc].x-tb[tc][uc].x;tb[tc][uc].offsetY=tb[vc][wc].y-tb[tc][uc].y;tb[vc][wc].offsetX=tb[tc][uc].x-tb[vc][wc].x;tb[vc][wc].offsetY=tb[tc][uc].y-tb[vc][wc].y;ae(0,gf);fe();}
function hf(tc,uc,vc,wc){yd();ff(tc,uc,vc,wc,"mf("+tc+","+uc+","+vc+","+wc+")");fe();}
function jf(le){le=le||window.event;var re=ke(le);if(kd){kd.style.zIndex=3;kd=null;if(!se){if(id){switch(Math.abs(id.i-jd.i)+Math.abs(id.j-jd.j)){case 0:jd=id=null;ld.style.display="none";md.style.display="none";fe();return;break;case 1:hf(jd.i,jd.j,id.i,id.j);jd=id=null;ld.style.display="none";md.style.display="none";fe();return;break;default:break;}
}
id=jd;md.style.top=id.y+'px';md.style.left=id.x+'px';md.style.display="";jd=null;ld.display="none";fe();return;}
var _e=re.x-ve.x;var af=re.y-ve.y;if(Math.abs(_e-jd.x)<Math.abs(af-jd.y)){_e=jd.x;}
else{af=jd.y;}
_e=Math.max(_e,ye);_e=Math.min(_e,ze);af=Math.max(af,we);af=Math.min(af,xe);kf=Win2BoardCoords(_e,af);lf=jd;var oc=tb[kf.i][kf.j].piece;tb[kf.i][kf.j].piece=tb[lf.i][lf.j].piece;tb[lf.i][lf.j].piece=oc;var nc=tb[kf.i][kf.j].token;tb[kf.i][kf.j].token=tb[lf.i][lf.j].token;tb[lf.i][lf.j].token=nc;oc=jd.piece;oc.style.top=jd.y+'px';oc.style.left=jd.x+'px';oc.style.zIndex=3;for(var c=0;c<ue.length;c++){oc=ue[c].piece;oc.style.top=ue[c].y+'px';oc.style.left=ue[c].x+'px';oc.style.zIndex=3;}
ld.style.display="none";mf(kf.i,kf.j,lf.i,lf.j);fe();}
}
function mf(tc,uc,vc,wc){yd();var ud=$d(0);if(ud==0){ff(tc,uc,vc,wc,"");}
fe();}
function ae(n,gf){var qc=false;var nf=5;if(n==0){yd();ae(nf,gf);return;}
for(var i=eb-1;i>=0;i--){for(var j=fb-1;j>=0;j--){if(tb[i][j].offsetX!=0){qc=true;if(n>Math.abs(tb[i][j].offsetX)){tb[i][j].offsetX=0;}
else{tb[i][j].offsetX-=n*of(tb[i][j].offsetX);}
tb[i][j].piece.style.left=tb[i][j].x+tb[i][j].offsetX+'px';tb[i][j].piece.style.display="";}
if(tb[i][j].offsetY!=0){qc=true;if(n>Math.abs(tb[i][j].offsetY)){tb[i][j].offsetY=0;}
else{tb[i][j].offsetY-=n*of(tb[i][j].offsetY);}
tb[i][j].piece.style.top=tb[i][j].y+tb[i][j].offsetY+'px';if(tb[i][j].y+tb[i][j].offsetY>=0){tb[i][j].piece.style.display="";}
}
}
}
if(qc){n=Math.min(n+nf,db);setTimeout("ae("+n+", '"+gf+"')",50);}
else{eval(gf);fe();}
}
function rc(n){return Math.floor(Math.random()*n);}
function of(n){if(n<0)return-1;if(n>0)return+1;return 0;}
function pf(){zb="";document.getElementById("score").innerHTML="امتياز:";nd();qd();ed();return false;}
function qf(){if(gc)return;setTimeout("qf()",1000);kb=(kb+1)%jb.length;}
function rf(){document.body.onmousedown=function(){return false}
;document.write('<div id="jewelworld">');document.write('<div id="score">امتياز:</div>');document.write('<div id="thescore">0000000</div>');cc=document.getElementById("thescore");document.write('<div id="highscore">رکورد:</div>');document.write('<div id="thehighscore">0000000</div>');dc=document.getElementById("thehighscore");document.write('<div id="board">');document.write('<img src="jewel/highlight.gif" width="40" height="40" id="highlight" style="position: absolute; display: none" />');ld=document.getElementById("highlight");document.write('<img src="jewel/highlight.gif" width="40" height="40" id="oldhighlight" style="position: absolute; display: none" />');md=document.getElementById("oldhighlight");document.write('<img src="jewel/hint1.gif" width="40" height="40" id="hint" style="position: absolute; display: none" />');_c=document.getElementById("hint");_c.style.zIndex=1;for(var i=0;i<eb;i++){tb[i]=new Array();for(var j=0;j<fb;j++){var sf="sq"+i+"_"+j;document.write('<img src="jewel/empty.gif" width="40" height="40" id="'+sf+'" style="position: absolute; display: none" />');var oc=document.getElementById(sf);var df=Board2WinCoords(i,j);oc.style.top=df.y+'px';oc.style.left=df.x+'px';oc.style.zIndex=3;oc.style.display="";cf(oc);tb[i][j]=new mc(i,j,df.x,df.y,-1,oc);}
}
document.write('</div>');document.write('<div id="ub">');for(var i=0;i<eb;i++){ub[i]=new Array();for(var j=0;j<fb;j++){var sf="rp"+i+"_"+j;document.write('<div id="'+sf+'" style="display: none" ></div>');ub[i][j]=document.getElementById(sf);ub[i][j].style.position='absolute';ub[i][j].style.top=tb[i][j].y+'px';ub[i][j].style.left=tb[i][j].x+'px';ub[i][j].style.zIndex=5;}
}
document.write('</div>');document.write('<div id="bonus">');document.write('<img src="jewel/graypixel.gif" width="'+ib+'" height="8" id="graybar" />');document.write('<img src="jewel/goldpixel.gif" width="0" height="8" id="goldbar" />');vb=document.getElementById('goldbar');document.write('<img src="jewel/graybonus.gif" width="45" height="25" id="goldbonus" style="display: none" />');wb=document.getElementById("goldbonus");wb.style.position='absolute';wb.style.top='364px';wb.style.left='591px';wb.style.zIndex=3;wb.style.display="";document.write('</div>');document.write('<div id="restart"></div>');ec=document.getElementById("restart");ec.style.zIndex=5;ec.onclick=dd;zd(ec,.90);document.write('<div id="gameover"></div>');fc=document.getElementById("gameover");fc.style.zIndex=10;fc.style.display="none";fc.innerHTML='<p></p><p>Game Over</p>';fc.onclick=function(){fc.style.display="none";}
;setTimeout("ad()",1000);document.write('</div>');bc=document.getElementById("jewelworld");bc.onmousemove=$e;document.onmouseup=jf;zb="";nd();qd();ed();}
