 ///////////////////OBJECT NINEDIGITS////////////////////////

function cell(namecell, valuecell, namedrawing_0,name_selected, name_right, 
name_a,name_b,name_c,name_d,name_e,name_f,
name_qab, name_qac, name_qad, name_qae, name_qaf, name_qag,name_qah, name_qbc, 
name_qbd, name_qbe, name_qbf, name_qbg, name_qbh, name_qcd, name_qce, name_qcf,
name_qcg, name_qch, name_qde, name_qdf, name_qdg, name_qdh, name_qef, name_qeg, 
name_qeh, name_qfg, name_qfh, name_qgh,  numberstate)
{
this.m_name_cell=namecell;
this.m_value_cell=valuecell;
this.m_namedrawing_cell_state_0=namedrawing_0;
this.m_namedrawing_cell_state_1=name_selected;

this.m_namedrawing_cell_state_right=name_right;


this.m_namedrawing_cell_state =new Object(7);

this.m_namedrawing_cell_state[1]=name_a;
this.m_namedrawing_cell_state[2]=name_b;
this.m_namedrawing_cell_state[3]=name_c;
this.m_namedrawing_cell_state[4]=name_d;
this.m_namedrawing_cell_state[5]=name_e;
this.m_namedrawing_cell_state[6]=name_f;

this.m_namedrawing_cell_state_q=new Object(30);

this.m_namedrawing_cell_state_q[1]=name_qab;
this.m_namedrawing_cell_state_q[2]=name_qac;
this.m_namedrawing_cell_state_q[3]=name_qad;
this.m_namedrawing_cell_state_q[4]=name_qae;
this.m_namedrawing_cell_state_q[5]=name_qaf;
this.m_namedrawing_cell_state_q[6]=name_qag;
this.m_namedrawing_cell_state_q[7]=name_qah;
this.m_namedrawing_cell_state_q[8]=name_qbc;
this.m_namedrawing_cell_state_q[9]=name_qbd;
this.m_namedrawing_cell_state_q[10]=name_qbe;
this.m_namedrawing_cell_state_q[11]=name_qbf;
this.m_namedrawing_cell_state_q[12]=name_qbg;
this.m_namedrawing_cell_state_q[13]=name_qbh;
this.m_namedrawing_cell_state_q[14]=name_qcd;
this.m_namedrawing_cell_state_q[15]=name_qce;
this.m_namedrawing_cell_state_q[16]=name_qcf;
this.m_namedrawing_cell_state_q[17]=name_qcg;
this.m_namedrawing_cell_state_q[18]=name_qch;
this.m_namedrawing_cell_state_q[19]=name_qde;
this.m_namedrawing_cell_state_q[20]=name_qdf;
this.m_namedrawing_cell_state_q[21]=name_qdg;
this.m_namedrawing_cell_state_q[22]=name_qdh;
this.m_namedrawing_cell_state_q[23]=name_qef;
this.m_namedrawing_cell_state_q[24]=name_qeg;
this.m_namedrawing_cell_state_q[25]=name_qeh;
this.m_namedrawing_cell_state_q[26]=name_qfg;
this.m_namedrawing_cell_state_q[27]=name_qfh;
this.m_namedrawing_cell_state_q[28]=name_qgh;

this.m_state=numberstate;
this.m_tower_state=0;
this.m_queen_state=0;
}

function statecells()
{
this.m_cell_1a=0;
this.m_cell_1b=0;
this.m_cell_1c=0;
this.m_cell_2a=0;
this.m_cell_2b=0;
this.m_cell_2c=0;
this.m_cell_3a=0;
this.m_cell_3b=0;
this.m_cell_3c=0;
this.m_term_1=0;
this.m_term_2=0;
this.m_term_3=0;
this.m_expression=0;

this.p_fill=fill;
    function fill (v1a,v1b,v1c,v2a,v2b,v2c,v3a,v3b,v3c)
    {
	this.m_cell_1a=v1a;
	this.m_cell_1b=v1b;
	this.m_cell_1c=v1c;
	this.m_cell_2a=v2a;
	this.m_cell_2b=v2b;
	this.m_cell_2c=v2c;
	this.m_cell_3a=v3a;
	this.m_cell_3b=v3b;
	this.m_cell_3c=v3c;
	this.m_term_1=v1a*100+v1b*10+v1c;
	this.m_term_2=v2a*100+v2b*10+v2c;
	this.m_term_3=v3a*100+v3b*10+v3c;
	this.m_expression=this.m_term_1*1000000+this.m_term_2*1000+this.m_term_3;
   }

}



function ninedigits ()
{
this.m_Clock_ID=0;
this.m_alternate_Clock=1;
this.m_Actual_State=new statecells()
this.m_dim_remember_list=0;
this.m_Actual_State.p_fill(1,2,3,4,5,6,7,8,9);
this.m_recorda_list=new Object(337);
this.m_swapping_state=0;
this.m_swap_first=0;
this.m_solution=0;
this.m_alarmtower=0;
this.m_alarmqueen=0;
this.m_win_text_wnd=0;

this.list_cell= new Object(10);
this.list_cell[1]=new cell("1A",1,"dig1.gif","dig1sctd.gif","dig1v.gif","dig1a.gif","dig1b.gif","dig1c.gif","dig1d.gif","","",
"dig1qa.gif","","","","","","","dig1qb.gif",
"","","","","","dig1qc.gif","","",
"","","dig1qd.gif","","","","dig1qe.gif","",
"","dig1qf.gif","dig1qh.gif","dig1qg.gif", 0);

this.list_cell[2]=new cell("1B",2,"dig2.gif","dig2sctd.gif","dig2v.gif", "dig2a.gif","dig2b.gif","dig2c.gif","dig2d.gif","dig2e.gif","dig2f.gif",
"dig2qab.gif","dig2qac.gif","dig2qad.gif","dig2qae.gif","dig2qaf.gif","dig2qag.gif","dig2qah.gif","dig2qbc.gif",
"dig2qbd.gif","dig2qbe.gif","dig2qbf.gif","dig2qbg.gif","dig2qbh.gif","dig2qcd.gif","dig2qce.gif","dig2qcf.gif",
"dig2qcg.gif","dig2qch.gif","dig2qde.gif","dig2qdf.gif","dig2qdg.gif","dig2qdh.gif","dig2qef.gif","dig2qeg.gif",
"dig2qeh.gif","dig2qfg.gif","dig2qfh.gif","dig2qgh.gif",0);

this.list_cell[3]=new cell("1C",3,"dig3.gif","dig3sctd.gif","dig3v.gif", "dig3a.gif","dig3b.gif","dig3c.gif","dig3d.gif","dig3e.gif","dig3f.gif",
"dig3qab.gif","dig3qac.gif","dig3qad.gif","dig3qae.gif","dig3qaf.gif","dig3qag.gif","dig3qah.gif","dig3qbc.gif",
"dig3qbd.gif","dig3qbe.gif","dig3qbf.gif","dig3qbg.gif","dig3qbh.gif","dig3qcd.gif","dig3qce.gif","dig3qcf.gif",
"dig3qcg.gif","dig3qch.gif","dig3qde.gif","dig3qdf.gif","dig3qdg.gif","dig3qdh.gif","dig3qef.gif","dig3qeg.gif",
"dig3qeh.gif","dig3qfg.gif","dig3qfh.gif","dig3qgh.gif",0);

this.list_cell[4]=new cell("2A",4,"dig4.gif","dig4sctd.gif","dig4v.gif", "dig4a.gif","dig4b.gif","dig4c.gif","dig4d.gif","dig4e.gif","dig4f.gif",
"dig4qab.gif","dig4qac.gif","dig4qad.gif","dig4qae.gif","dig4qaf.gif","dig4qag.gif","dig4qah.gif","dig4qbc.gif",
"dig4qbd.gif","dig4qbe.gif","dig4qbf.gif","dig4qbg.gif","dig4qbh.gif","dig4qcd.gif","dig4qce.gif","dig4qcf.gif",
"dig4qcg.gif","dig4qch.gif","dig4qde.gif","dig4qdf.gif","dig4qdg.gif","dig4qdh.gif","dig4qef.gif","dig4qeg.gif",
"dig4qeh.gif","dig4qfg.gif","dig4qfh.gif","dig4qgh.gif",0);

this.list_cell[5]=new cell("2B",5,"dig5.gif","dig5sctd.gif","dig5v.gif", "dig5a.gif","dig5b.gif","dig5c.gif","dig5d.gif","dig5e.gif","dig5f.gif",
"dig5qab.gif","dig5qac.gif","dig5qad.gif","dig5qae.gif","dig5qaf.gif","dig5qag.gif","dig5qah.gif","dig5qbc.gif",
"dig5qbd.gif","dig5qbe.gif","dig5qbf.gif","dig5qbg.gif","dig5qbh.gif","dig5qcd.gif","dig5qce.gif","dig5qcf.gif",
"dig5qcg.gif","dig5qch.gif","dig5qde.gif","dig5qdf.gif","dig5qdg.gif","dig5qdh.gif","dig5qef.gif","dig5qeg.gif",
"dig5qeh.gif","dig5qfg.gif","dig5qfh.gif","dig5qgh.gif",0);

this.list_cell[6]=new cell("2C",6,"dig6.gif","dig6sctd.gif","dig6v.gif", "dig6a.gif","dig6b.gif","dig6c.gif","dig6d.gif","dig6e.gif","dig6f.gif",
"dig6qab.gif","dig6qac.gif","dig6qad.gif","dig6qae.gif","dig6qaf.gif","dig6qag.gif","dig6qah.gif","dig6qbc.gif",
"dig6qbd.gif","dig6qbe.gif","dig6qbf.gif","dig6qbg.gif","dig6qbh.gif","dig6qcd.gif","dig6qce.gif","dig6qcf.gif",
"dig6qcg.gif","dig6qch.gif","dig6qde.gif","dig6qdf.gif","dig6qdg.gif","dig6qdh.gif","dig6qef.gif","dig6qeg.gif",
"dig6qeh.gif","dig6qfg.gif","dig6qfh.gif","dig6qgh.gif",0);

this.list_cell[7]=new cell("3A",7,"dig7.gif","dig7sctd.gif","dig7v.gif", "dig7a.gif","dig7b.gif","dig7c.gif","dig7d.gif","dig7e.gif","dig7f.gif",
"dig7qab.gif","dig7qac.gif","dig7qad.gif","dig7qae.gif","dig7qaf.gif","dig7qag.gif","dig7qah.gif","dig7qbc.gif",
"dig7qbd.gif","dig7qbe.gif","dig7qbf.gif","dig7qbg.gif","dig7qbh.gif","dig7qcd.gif","dig7qce.gif","dig7qcf.gif",
"dig7qcg.gif","dig7qch.gif","dig7qde.gif","dig7qdf.gif","dig7qdg.gif","dig7qdh.gif","dig7qef.gif","dig7qeg.gif",
"dig7qeh.gif","dig7qfg.gif","dig7qfh.gif","dig7qgh.gif",0);

this.list_cell[8]=new cell("3B",8,"dig8.gif","dig8sctd.gif","dig8v.gif", "dig8a.gif","dig8b.gif","dig8c.gif","dig8d.gif","dig8e.gif","dig8f.gif",
"dig8qab.gif","dig8qac.gif","dig8qad.gif","dig8qae.gif","dig8qaf.gif","dig8qag.gif","dig8qah.gif","dig8qbc.gif",
"dig8qbd.gif","dig8qbe.gif","dig8qbf.gif","dig8qbg.gif","dig8qbh.gif","dig8qcd.gif","dig8qce.gif","dig8qcf.gif",
"dig8qcg.gif","dig8qch.gif","dig8qde.gif","dig8qdf.gif","dig8qdg.gif","dig8qdh.gif","dig8qef.gif","dig8qeg.gif",
"dig8qeh.gif","dig8qfg.gif","dig8qfh.gif","dig8qgh.gif",0);

this.list_cell[9]=new cell("3C",9,"dig9.gif","dig9sctd.gif","dig9v.gif","dig9a.gif","dig9b.gif","dig9c.gif","dig9d.gif","","",
"dig9qa.gif","","","","","","","dig9qb.gif",
"","","","","","dig9qc.gif","","",
"","","dig9qd.gif","","","","dig9qe.gif","",
"","dig9qf.gif","dig9qh.gif","dig9qg.gif", 0);


this.p_swap=swp;
		function swp(cella, cellb)
		{
		if(cella==cellb){return;}
		var prov_cell= this.list_cell[cella];
        this.list_cell[cella]=this.list_cell[cellb];
		this.list_cell[cellb]=prov_cell;
		var nmclla=this.list_cell[cella].m_name_cell;
		var nmcllb=this.list_cell[cellb].m_name_cell;        
		this.list_cell[cella].m_name_cell=nmcllb;
		this.list_cell[cellb].m_name_cell=nmclla;
		this.list_cell[cella].m_state=1;
		this.list_cell[cellb].m_state=1;
		document.images[this.list_cell[cella].m_name_cell].src=this.list_cell[cella].m_namedrawing_cell_state_1;
		document.images[this.list_cell[cellb].m_name_cell].src=this.list_cell[cellb].m_namedrawing_cell_state_1;
		this.m_Actual_State.p_fill(	this.list_cell[1].m_value_cell,	this.list_cell[2].m_value_cell,	this.list_cell[3].m_value_cell,	this.list_cell[4].m_value_cell,	this.list_cell[5].m_value_cell,
			this.list_cell[6].m_value_cell,	this.list_cell[7].m_value_cell,	this.list_cell[8].m_value_cell,	this.list_cell[9].m_value_cell);
		document.form.actualresult.value=this.m_Actual_State.m_expression;
		this.p_adding();
		}

this.p_adding=adding;
		function adding()
			{
			this.isTower()
			this.isQueen()
			if((this.m_Actual_State.m_term_1+this.m_Actual_State.m_term_2==this.m_Actual_State.m_term_3)&&(this.m_Actual_State.m_term_3<1000))
				{
				var actualtexts1="    Solution:\n";
				var actualtexts2="";
				var actualtexts3="     "+this.m_Actual_State.m_term_1+"\n  + "+this.m_Actual_State.m_term_2+"\n    -----\n     "+this.m_Actual_State.m_term_3+"\n";
				if (this.alarmtower==1){actualtexts2="+Tower condition!\n";}
				if ((this.alarmtower==0)&&(this.alarmqueen==1)){actualtexts2="+Queen's condition!";}
				document.form.actualresultcomment.value=actualtexts1+actualtexts3+actualtexts2;
				this.m_solution=1;
				this.p_addlist(this.m_Actual_State);
				}
			else
				{
                var actualtext=this.m_Actual_State.m_term_1+" + "+this.m_Actual_State.m_term_2+"\n not equal to: "+this.m_Actual_State.m_term_3;
				if (this.alarmtower==1){actualtext=actualtext+"\nTower condition accomplished !";}
				if ((this.alarmtower==0)&&(this.alarmqueen==1)){actualtext=actualtext+"\nQueen's condition accomplished !";}
				document.form.actualresultcomment.value=actualtext;
				this.m_solution=0;
				}				
			}

this.p_addlist=padl;
	function padl()
		{
		var signalnew=1;
		for(var xlist=1;xlist<=this.m_dim_remember_list;xlist++)
			{
			if(((this.m_Actual_State.m_term_1==this.m_recorda_list[xlist].m_term_1)&&(this.m_Actual_State.m_term_2==this.m_recorda_list[xlist].m_term_2))&&
			(this.m_Actual_State.m_term_3==this.m_recorda_list[xlist].m_term_3))
				{
				signalnew=0;				
				}
			}
		if(signalnew==1)
			{
			this.m_dim_remember_list++;
			document.form.remember.options[0].text=this.m_dim_remember_list+" Solutions addition + Tower & Queen";
			this.m_recorda_list[this.m_dim_remember_list]=new statecells();
			this.m_recorda_list[this.m_dim_remember_list].p_fill(this.m_Actual_State.m_cell_1a,this.m_Actual_State.m_cell_1b,this.m_Actual_State.m_cell_1c,
			this.m_Actual_State.m_cell_2a,this.m_Actual_State.m_cell_2b,this.m_Actual_State.m_cell_2c,this.m_Actual_State.m_cell_3a,this.m_Actual_State.m_cell_3b,this.m_Actual_State.m_cell_3c);			 
			for (var droplistx=1;droplistx<=this.m_dim_remember_list;droplistx++)
				{
				var addingtext=this.m_recorda_list[droplistx].m_term_1+" + "+this.m_recorda_list[droplistx].m_term_2+" = "+this.m_recorda_list[droplistx].m_term_3;
				document.form.remember.options[droplistx].text=addingtext;
				}
			}
		}


this.p_push=push;
		function push(cell1,cell2,cell3)
		{
		this.p_swap(cell1, cell3); 
		this.p_swap(cell2, cell3); 
		}

this.isTower=iT;
	function iT()
	{
	for (var n=1; n<=9; n++)
		{
		this.list_cell[n].m_tower_state=0;
		}
	this.p_tower();
	this.alarmtower=1;
	for (var n=1; n<=9; n++)
		{
		if(this.list_cell[n].m_tower_state==0)
			{
			this.alarmtower=0;
			}
		}
	}

this.isQueen=iQ;
	function iQ()
	{
	for (var n=1; n<=9; n++)
		{
		this.list_cell[n].m_queen_state=0;
		}
	this.p_queen();
	this.alarmqueen=1;
	for (var n=1; n<=9; n++)
		{
		if(this.list_cell[n].m_queen_state==0)
			{
			this.alarmqueen=0;
			}
		}
	}



this.p_revision=rvsn;
		function rvsn()
		{
		this.m_alternate_Clock=this.m_alternate_Clock*(-1);
		for (var n=1; n<=9; n++)
			{
			if ((this.list_cell[n].m_state==1)|| ((this.list_cell[n].m_tower_state!=0)&&(this.m_alarmtower==0)))
				{
				this.list_cell[n].m_state==0;
				if(document.images[this.list_cell[n].m_name_cell].src !=this.list_cell[n].m_namedrawing_cell_state_0)
					{
					document.images[this.list_cell[n].m_name_cell].src=this.list_cell[n].m_namedrawing_cell_state_0;				
					}
				}
			}
		if((this.m_solution==1)||((this.m_solution==1)&&((this.m_alternate_Clock==-1)&&(this.alarmtower==1))))
			{
			for (var n=1; n<=9; n++)
				{
				if(document.images[this.list_cell[n].m_name_cell].src!=this.list_cell[n].m_namedrawing_cell_state_right)
					{
					document.images[this.list_cell[n].m_name_cell].src=this.list_cell[n].m_namedrawing_cell_state_right;				
                    }
				}
			}

		if ((this.alarmtower==1)&&(this.m_alternate_Clock==(1)))
			{        
			for (var n=1; n<=9; n++)
				{
				if(document.images[this.list_cell[n].m_name_cell].src!=this.list_cell[n].m_namedrawing_cell_state[this.list_cell[n].m_tower_state])
					{
					document.images[this.list_cell[n].m_name_cell].src=this.list_cell[n].m_namedrawing_cell_state[this.list_cell[n].m_tower_state];
					}
				}		
            }

		if (((this.alarmqueen==1)&&(this.alarmtower==0))&&(this.m_alternate_Clock==(1)))
			{        
			for (var n=1; n<=9; n++)
				{
				if(document.images[this.list_cell[n].m_name_cell].src!=this.list_cell[n].m_namedrawing_cell_state_q[this.list_cell[n].m_queen_state])
					{
					document.images[this.list_cell[n].m_name_cell].src=this.list_cell[n].m_namedrawing_cell_state_q[this.list_cell[n].m_queen_state];
					}
				}		
            }
   		}

this.p_tower=ptw;
	function ptw()
	{
    for (var xcount=1;xcount<=9;xcount++)
    	{
		var valuecell=this.list_cell[xcount].m_value_cell;
		if(xcount==1){this.p_verify(1,valuecell,2,4,0,0);}		
		if(xcount==2){this.p_verify(2,valuecell,3,5,1,0);}		
		if(xcount==3){this.p_verify(3,valuecell,0,6,2,0);}		
		if(xcount==4){this.p_verify(4,valuecell,5,7,0,1);}		
		if(xcount==5){this.p_verify(5,valuecell,6,8,4,2);}		
		if(xcount==6){this.p_verify(6,valuecell,0,9,5,3);}		
		if(xcount==7){this.p_verify(7,valuecell,8,0,0,4);}		
		if(xcount==8){this.p_verify(8,valuecell,9,0,7,5);}		
		if(xcount==9){this.p_verify(9,valuecell,0,0,8,6);}		
    	}
	}

this.p_verify=vrf;
	function vrf(pcell,valcell,mira1,mira2,mira3,mira4)
    	{
        var caseta_llista=new Object(5);
        caseta_llista[1]=mira1;
        caseta_llista[2]=mira2;
        caseta_llista[3]=mira3;
        caseta_llista[4]=mira4;

		if((valcell !=1)&&(valcell !=9))
			{	
            var amunt=0; var avall=0;
            for (var xct1=1;xct1<=4;xct1++)
            	{
        		if (caseta_llista[xct1]!=0)
					{
        			if(this.list_cell[caseta_llista[xct1]].m_value_cell==valcell+1)
        				{
        				amunt=xct1;
			            for (var xct2=1;xct2<=4;xct2++)
							{
			        		if (caseta_llista[xct2]!=0)
								{
			        			if(this.list_cell[caseta_llista[xct2]].m_value_cell==(valcell-1))
									{
									avall=xct2;
									if(((amunt==1) && (avall==2)) || ((amunt==2) && (avall==1))){this.list_cell[pcell].m_tower_state=1;}
									if(((amunt==2) && (avall==3)) || ((amunt==3) && (avall==2))){this.list_cell[pcell].m_tower_state=2;}
									if(((amunt==3) && (avall==4)) || ((amunt==4) && (avall==3))){this.list_cell[pcell].m_tower_state=3;}
									if(((amunt==4) && (avall==1)) || ((amunt==1) && (avall==4))){this.list_cell[pcell].m_tower_state=4;}
									if(((amunt==1) && (avall==3)) || ((amunt==3) && (avall==1))){this.list_cell[pcell].m_tower_state=5;}
									if(((amunt==2) && (avall==4)) || ((amunt==4) && (avall==2))){this.list_cell[pcell].m_tower_state=6;}
									}					
								}							                               	
							}
        				}
					}               
                }
			}
		else
			{
	        if(valcell==1)
	        	{
	        	for (var xct=1;xct<=4;xct++)
	        		{
	        		if (caseta_llista[xct]!=0)
	        			{
	        			if(this.list_cell[caseta_llista[xct]].m_value_cell==valcell+1)
	        		    	{
	        		    	this.list_cell[pcell].m_tower_state=xct;
	        		    	}
	        		    }
	        		}
	        	}
	        if(valcell==9)
	        	{
	        	for (xct=1;xct<=4;xct++)
	        		{
	        		if (caseta_llista[xct]!=0)
	        			{
	        			if(this.list_cell[caseta_llista[xct]].m_value_cell==valcell-1)
	        		    	{
	        		    	this.list_cell[pcell].m_tower_state=xct;
	        		    	}
	        		    }
	        		}
	        	}
	        }
		}

this.p_queen=pqin;
	function pqin()
	{
    for (var xcount=1;xcount<=9;xcount++)
    	{
		var valuecell=this.list_cell[xcount].m_value_cell;
		if(xcount==1){this.p_qverify(1,valuecell,2,5,4,0,0,0,0,0);}		
		if(xcount==2){this.p_qverify(2,valuecell,3,6,5,4,1,0,0,0);}		
		if(xcount==3){this.p_qverify(3,valuecell,0,0,6,5,2,0,0,0);}		
		if(xcount==4){this.p_qverify(4,valuecell,5,8,7,0,0,0,1,2);}		
		if(xcount==5){this.p_qverify(5,valuecell,6,9,8,7,4,1,2,3);}		
		if(xcount==6){this.p_qverify(6,valuecell,0,0,9,8,5,2,3,0);}		
		if(xcount==7){this.p_qverify(7,valuecell,8,0,0,0,0,0,4,5);}		
		if(xcount==8){this.p_qverify(8,valuecell,9,0,0,0,7,4,5,6);}		
		if(xcount==9){this.p_qverify(9,valuecell,0,0,0,0,8,5,6,0);}		
    	}
	}


this.p_qverify=qvrf;
	function qvrf(pcell,valcell,mira1,mira2,mira3,mira4,mira5,mira6,mira7,mira8)
    	{
        var caseta_llista=new Object(9);
        caseta_llista[1]=mira1;
        caseta_llista[2]=mira2;
        caseta_llista[3]=mira3;
        caseta_llista[4]=mira4;
        caseta_llista[5]=mira5;
        caseta_llista[6]=mira6;
        caseta_llista[7]=mira7;
        caseta_llista[8]=mira8;

		if((valcell !=1)&&(valcell !=9))
			{	
            var amunt=0; var avall=0;
            for (var xct1=1;xct1<=8;xct1++)
            	{
        		if (caseta_llista[xct1]!=0)
					{
        			if(this.list_cell[caseta_llista[xct1]].m_value_cell==valcell+1)
        				{
        				amunt=xct1;
			            for (var xct2=1;xct2<=8;xct2++)
							{
			        		if (caseta_llista[xct2]!=0)
								{
			        			if(this.list_cell[caseta_llista[xct2]].m_value_cell==(valcell-1))
									{
									avall=xct2;
									if(((amunt==1) && (avall==2)) || ((amunt==2) && (avall==1))){this.list_cell[pcell].m_queen_state=1;}
									if(((amunt==1) && (avall==3)) || ((amunt==3) && (avall==1))){this.list_cell[pcell].m_queen_state=2;}
									if(((amunt==1) && (avall==4)) || ((amunt==4) && (avall==1))){this.list_cell[pcell].m_queen_state=3;}
									if(((amunt==1) && (avall==5)) || ((amunt==5) && (avall==1))){this.list_cell[pcell].m_queen_state=4;}
									if(((amunt==1) && (avall==6)) || ((amunt==6) && (avall==1))){this.list_cell[pcell].m_queen_state=5;}
									if(((amunt==1) && (avall==7)) || ((amunt==7) && (avall==1))){this.list_cell[pcell].m_queen_state=6;}
									if(((amunt==1) && (avall==8)) || ((amunt==8) && (avall==1))){this.list_cell[pcell].m_queen_state=7;}
									if(((amunt==2) && (avall==3)) || ((amunt==3) && (avall==2))){this.list_cell[pcell].m_queen_state=8;}
									if(((amunt==2) && (avall==4)) || ((amunt==4) && (avall==2))){this.list_cell[pcell].m_queen_state=9;}
									if(((amunt==2) && (avall==5)) || ((amunt==5) && (avall==2))){this.list_cell[pcell].m_queen_state=10;}
									if(((amunt==2) && (avall==6)) || ((amunt==6) && (avall==2))){this.list_cell[pcell].m_queen_state=11;}
									if(((amunt==2) && (avall==7)) || ((amunt==7) && (avall==2))){this.list_cell[pcell].m_queen_state=12;}
									if(((amunt==2) && (avall==8)) || ((amunt==8) && (avall==2))){this.list_cell[pcell].m_queen_state=13;}
									if(((amunt==3) && (avall==4)) || ((amunt==4) && (avall==3))){this.list_cell[pcell].m_queen_state=14;}
									if(((amunt==3) && (avall==5)) || ((amunt==5) && (avall==3))){this.list_cell[pcell].m_queen_state=15;}
									if(((amunt==3) && (avall==6)) || ((amunt==6) && (avall==3))){this.list_cell[pcell].m_queen_state=16;}
									if(((amunt==3) && (avall==7)) || ((amunt==7) && (avall==3))){this.list_cell[pcell].m_queen_state=17;}
									if(((amunt==3) && (avall==8)) || ((amunt==8) && (avall==3))){this.list_cell[pcell].m_queen_state=18;}
									if(((amunt==4) && (avall==5)) || ((amunt==5) && (avall==4))){this.list_cell[pcell].m_queen_state=19;}
									if(((amunt==4) && (avall==6)) || ((amunt==6) && (avall==4))){this.list_cell[pcell].m_queen_state=20;}
									if(((amunt==4) && (avall==7)) || ((amunt==7) && (avall==4))){this.list_cell[pcell].m_queen_state=21;}
									if(((amunt==4) && (avall==8)) || ((amunt==8) && (avall==4))){this.list_cell[pcell].m_queen_state=22;}
									if(((amunt==5) && (avall==6)) || ((amunt==6) && (avall==5))){this.list_cell[pcell].m_queen_state=23;}
									if(((amunt==5) && (avall==7)) || ((amunt==7) && (avall==5))){this.list_cell[pcell].m_queen_state=24;}
									if(((amunt==5) && (avall==8)) || ((amunt==8) && (avall==5))){this.list_cell[pcell].m_queen_state=25;}
									if(((amunt==6) && (avall==7)) || ((amunt==7) && (avall==6))){this.list_cell[pcell].m_queen_state=26;}
									if(((amunt==6) && (avall==8)) || ((amunt==8) && (avall==6))){this.list_cell[pcell].m_queen_state=27;}
									if(((amunt==7) && (avall==8)) || ((amunt==8) && (avall==7))){this.list_cell[pcell].m_queen_state=28;}
									}					
								}							                               	
							}
        				}
					}               
                }
			}
		else
			{
	        if(valcell==1)
	        	{
	        	for (var xct=1;xct<=8;xct++)
	        		{
	        		if (caseta_llista[xct]!=0)
	        			{
	        			if(this.list_cell[caseta_llista[xct]].m_value_cell==valcell+1)
	        		    	{
	        		    	this.list_cell[pcell].m_queen_state=queenaux(xct);
	        		    	}
	        		    }
	        		}
	        	}
	        if(valcell==9)
	        	{
	        	for (xct=1;xct<=8;xct++)
	        		{
	        		if (caseta_llista[xct]!=0)
	        			{
	        			if(this.list_cell[caseta_llista[xct]].m_value_cell==valcell-1)
	        		    	{
	        		    	this.list_cell[pcell].m_queen_state=queenaux(xct);
	        		    	}
	        		    }
	        		}
	        	}
	        }
		}
this.p_resitua=prst;
	function prst(optionslctd)
		{
		if(optionslctd==0){return;}
		var quadrat=new Object(9);
		quadrat[1]=this.m_recorda_list[optionslctd].m_cell_1a;
		quadrat[2]=this.m_recorda_list[optionslctd].m_cell_1b;
		quadrat[3]=this.m_recorda_list[optionslctd].m_cell_1c;
		quadrat[4]=this.m_recorda_list[optionslctd].m_cell_2a;
		quadrat[5]=this.m_recorda_list[optionslctd].m_cell_2b;
		quadrat[6]=this.m_recorda_list[optionslctd].m_cell_2c;
		quadrat[7]=this.m_recorda_list[optionslctd].m_cell_3a;
		quadrat[8]=this.m_recorda_list[optionslctd].m_cell_3b;
		quadrat[9]=this.m_recorda_list[optionslctd].m_cell_3c;
		for (var counta=1;counta<=9;counta++)
			{
			var casella=quadrat[counta];
			for(var countb=1;countb<=9;countb++)
				{
				if((this.list_cell[countb].m_value_cell==casella)&&(countb !=counta))
					{
					this.p_swap(counta,countb);
					continue;
					}
				}
			}
		} 


}
///////////////END OBJECT NINEDIGITS//////////////////////////////

///////////// INTERFACE /////////////////////////////////////////
function init()
{
//////////////INSTANCES///////////////////////////////
TrueNineDigits=new ninedigits();
TrueNineDigits.m_Clock_ID=setInterval("little_heart()",4000);
/////////////END INSTANCES ////////////////////////////
}

function pushright1()
{
TrueNineDigits.p_push(1,2,3);
}
function pushright2()
{
TrueNineDigits.p_push(4,5,6);
}
function pushright3()
{
TrueNineDigits.p_push(7,8,9);
}
function pushrightall()
{
TrueNineDigits.p_push(1,2,3);
TrueNineDigits.p_push(4,5,6);
TrueNineDigits.p_push(7,8,9);
}
function pushleft1()
{
TrueNineDigits.p_push(3,2,1);
}
function pushleft2()
{
TrueNineDigits.p_push(6,5,4);
}
function pushleft3()
{
TrueNineDigits.p_push(9,8,7);
}
function pushleftall()
{
TrueNineDigits.p_push(3,2,1);
TrueNineDigits.p_push(6,5,4);
TrueNineDigits.p_push(9,8,7);
}
function pushtop1()
{
TrueNineDigits.p_push(1,4,7);
}
function pushtop2()
{
TrueNineDigits.p_push(2,5,8);
}
function pushtop3()
{
TrueNineDigits.p_push(3,6,9);
}
function pushtopall()
{
TrueNineDigits.p_push(1,4,7);
TrueNineDigits.p_push(2,5,8);
TrueNineDigits.p_push(3,6,9);
}
function pushbottom1()
{
TrueNineDigits.p_push(7,4,1);
}
function pushbottom2()
{
TrueNineDigits.p_push(8,5,2);
}
function pushbottom3()
{
TrueNineDigits.p_push(9,6,3);
}
function pushbottomall()
{
TrueNineDigits.p_push(7,4,1);
TrueNineDigits.p_push(8,5,2);
TrueNineDigits.p_push(9,6,3);
}
function pushdiagtl()
{
TrueNineDigits.p_push(1,5,9);
}
function pushdiagtr()
{
TrueNineDigits.p_push(3,5,7);
}
function pushdiagbl()
{
TrueNineDigits.p_push(7,5,3);
}
function pushdiagbr()
{
TrueNineDigits.p_push(9,5,1);
}
function pushldiagtr1()
{
TrueNineDigits.p_swap(2,4);
}
function pushldiagtr2()
{
TrueNineDigits.p_swap(6,8);
}
function pushldiagbr1()
{
TrueNineDigits.p_swap(2,6);
}
function pushldiagbr2()
{
TrueNineDigits.p_swap(4,8);
}


function swaprow1()
{
TrueNineDigits.p_swap(1,4);
TrueNineDigits.p_swap(2,5);
TrueNineDigits.p_swap(3,6);

TrueNineDigits.p_swap(2,5);
TrueNineDigits.p_swap(3,6);
TrueNineDigits.p_swap(1,4);

TrueNineDigits.p_swap(3,6);
TrueNineDigits.p_swap(1,4);
TrueNineDigits.p_swap(2,5);

TrueNineDigits.p_swap(1,4);
TrueNineDigits.p_swap(2,5);
TrueNineDigits.p_swap(3,6);

TrueNineDigits.p_swap(2,5);
TrueNineDigits.p_swap(3,6);
TrueNineDigits.p_swap(1,4);

}
function swaprow2()
{
TrueNineDigits.p_swap(4,7);
TrueNineDigits.p_swap(5,8);
TrueNineDigits.p_swap(6,9);

TrueNineDigits.p_swap(5,8);
TrueNineDigits.p_swap(6,9);
TrueNineDigits.p_swap(4,7);

TrueNineDigits.p_swap(6,9);
TrueNineDigits.p_swap(4,7);
TrueNineDigits.p_swap(5,8);

TrueNineDigits.p_swap(4,7);
TrueNineDigits.p_swap(5,8);
TrueNineDigits.p_swap(6,9);

TrueNineDigits.p_swap(5,8);
TrueNineDigits.p_swap(6,9);
TrueNineDigits.p_swap(4,7);

}
function swapcol1()
{
TrueNineDigits.p_swap(1,2);
TrueNineDigits.p_swap(4,5);
TrueNineDigits.p_swap(7,8);

TrueNineDigits.p_swap(4,5);
TrueNineDigits.p_swap(7,8);
TrueNineDigits.p_swap(1,2);

TrueNineDigits.p_swap(7,8);
TrueNineDigits.p_swap(1,2);
TrueNineDigits.p_swap(4,5);

TrueNineDigits.p_swap(1,2);
TrueNineDigits.p_swap(4,5);
TrueNineDigits.p_swap(7,8);

TrueNineDigits.p_swap(4,5);
TrueNineDigits.p_swap(7,8);
TrueNineDigits.p_swap(1,2);

}

function swapcol2()
{
TrueNineDigits.p_swap(2,3);
TrueNineDigits.p_swap(5,6);
TrueNineDigits.p_swap(8,9);

TrueNineDigits.p_swap(5,6);
TrueNineDigits.p_swap(8,9);
TrueNineDigits.p_swap(2,3);

TrueNineDigits.p_swap(8,9);
TrueNineDigits.p_swap(2,3);
TrueNineDigits.p_swap(5,6);

TrueNineDigits.p_swap(2,3);
TrueNineDigits.p_swap(5,6);
TrueNineDigits.p_swap(8,9);

TrueNineDigits.p_swap(5,6);
TrueNineDigits.p_swap(8,9);
TrueNineDigits.p_swap(2,3);
}

function symmetryv1()
{
TrueNineDigits.p_swap(1,3);
}
function symmetryv2()
{
TrueNineDigits.p_swap(4,6);
}
function symmetryv3()
{
TrueNineDigits.p_swap(7,9);
}
function symmetryvall()
{
TrueNineDigits.p_swap(1,3);
TrueNineDigits.p_swap(4,6);
TrueNineDigits.p_swap(7,9);
}
function symmetryvallblack()
{
TrueNineDigits.p_swap(1,3);
TrueNineDigits.p_swap(7,9);
}
function symmetryhallblack()
{
TrueNineDigits.p_swap(1,7);
TrueNineDigits.p_swap(3,9);
}
function symmetryh1()
{
TrueNineDigits.p_swap(1,7);
}
function symmetryh2()
{
TrueNineDigits.p_swap(2,8);
}
function symmetryh3()
{
TrueNineDigits.p_swap(3,9);
}
function symmetryhall()
{
TrueNineDigits.p_swap(1,7);
TrueNineDigits.p_swap(2,8);
TrueNineDigits.p_swap(3,9);
}
function symmetryalltr()
{
TrueNineDigits.p_swap(2,4);
TrueNineDigits.p_swap(3,7);
TrueNineDigits.p_swap(8,6);
}
function symmetryallbr()
{
TrueNineDigits.p_swap(4,8);
TrueNineDigits.p_swap(9,1);
TrueNineDigits.p_swap(6,2);
}

function rotatingunclock()
{
TrueNineDigits.p_swap(1,2);
TrueNineDigits.p_swap(2,3);
TrueNineDigits.p_swap(3,6);
TrueNineDigits.p_swap(6,9);
TrueNineDigits.p_swap(9,8);
TrueNineDigits.p_swap(8,7);
TrueNineDigits.p_swap(7,4);
}
function rotatingclock()
{
TrueNineDigits.p_swap(1,4);
TrueNineDigits.p_swap(4,7);
TrueNineDigits.p_swap(7,8);
TrueNineDigits.p_swap(8,9);
TrueNineDigits.p_swap(9,6);
TrueNineDigits.p_swap(6,3);
TrueNineDigits.p_swap(3,2);
}

function pushswap(cellswap)
{
if(TrueNineDigits.m_swapping_state==0)
	{
	TrueNineDigits.m_swapping_state=1;
	TrueNineDigits.m_swap_first=cellswap;
	document.images[TrueNineDigits.list_cell[cellswap].m_name_cell].src=TrueNineDigits.list_cell[cellswap].m_namedrawing_cell_state_1;
	}
else
	{
	TrueNineDigits.m_swapping_state=0;
	TrueNineDigits.p_swap(TrueNineDigits.m_swap_first,cellswap) ;
	TrueNineDigits.m_swap_first=0;	
	}
}

function pushexpressionright()
{
TrueNineDigits.p_swap(9,8);
TrueNineDigits.p_swap(8,7);
TrueNineDigits.p_swap(7,6);
TrueNineDigits.p_swap(6,5);
TrueNineDigits.p_swap(5,4);
TrueNineDigits.p_swap(4,3);
TrueNineDigits.p_swap(3,2);
TrueNineDigits.p_swap(2,1);
}
function pushexpressionleft()
{
TrueNineDigits.p_swap(1,2);
TrueNineDigits.p_swap(2,3);
TrueNineDigits.p_swap(3,4);
TrueNineDigits.p_swap(4,5);
TrueNineDigits.p_swap(5,6);
TrueNineDigits.p_swap(6,7);
TrueNineDigits.p_swap(7,8);
TrueNineDigits.p_swap(8,9);

}
function pushexpressionsim()
{
TrueNineDigits.p_swap(1,9);
TrueNineDigits.p_swap(2,8);
TrueNineDigits.p_swap(3,7);
TrueNineDigits.p_swap(4,6);
}

function recorda()
{
TrueNineDigits.p_resitua(document.form.remember.selectedIndex);
}

function show()
{
TrueNineDigits.m_win_text_wnd=window.open ("","MainText","width=300, height=500, toolbar=1, menubar=1, scrollbars=1" );
TrueNineDigits.m_win_text_wnd.document.write("<html>");
TrueNineDigits.m_win_text_wnd.document.write("<body bgcolor=white>");

TrueNineDigits.m_win_text_wnd.document.write("<font face=MsComic size=+2>");
TrueNineDigits.m_win_text_wnd.document.write("My Results:");
TrueNineDigits.m_win_text_wnd.document.write("</font>");
TrueNineDigits.m_win_text_wnd.document.write("<br>");

for (var linia=1;linia<=TrueNineDigits.m_dim_remember_list;linia++)
	{
	TrueNineDigits.m_win_text_wnd.document.write("<br>");
	TrueNineDigits.m_win_text_wnd.document.write("<font face=MSComic size=+2>");
	TrueNineDigits.m_win_text_wnd.document.write(TrueNineDigits.m_recorda_list[linia].m_term_1+" + ");
	TrueNineDigits.m_win_text_wnd.document.write(TrueNineDigits.m_recorda_list[linia].m_term_2+" = ");
	TrueNineDigits.m_win_text_wnd.document.write(TrueNineDigits.m_recorda_list[linia].m_term_3);
	TrueNineDigits.m_win_text_wnd.document.write("</font>");
	}
TrueNineDigits.m_win_text_wnd.document.write("</body>");
TrueNineDigits.m_win_text_wnd.document.write("<html>");
TrueNineDigits.m_win_text_wnd.document.close();
}

function digitshelppage()
{
window.open ("ninedhelp.html","","width=660, height=400, toolbar=0, menubar=0, scrollbars=1" );
}

///////////////END INTERFACE////////////////////////////////

/////////////////AUXILIARY ///////////////////////////////////

function little_heart()
{
TrueNineDigits.p_revision();
}
function queenaux(x)
{
if(x==1){return 1;}
if(x==2){return 8;}
if(x==3){return 14;}
if(x==4){return 19;}
if(x==5){return 23;}
if(x==6){return 26;}
if(x==7){return 28;}
if(x==8){return 27;}
}

/////////////////END AUXILIARY ///////////////////////////////////

