// Pathfinder.thinker. v1.7. Copyright(C),2001-2008 Anastas R. Safarov
// ....especially for the I/M.E.T.R.O. project
// ....no part of this text can be used in any form without
// ....any permission with the author
// all design & scripting by Anastas R. Safarov
// All rights reserved. 
// insidernotguilty@mail.ru
phase=0;vertices=new Array();startedalready=false;lights=new Array();peresad=0;flag=0;fish=1;turnedon=new Array();turnedon[0]=0;function showLayer(name){if(NS4){eval("document."+name+".visibility = 'show'");}else{eval(name+".style.visibility = 'visible'");}}function hideLayer(name){if(NS4){eval("document."+name+".visibility = 'hide'");}else{eval(name+".style.visibility = 'hidden';");}thinker.style.visibility='hidden';}function switchImage(name,newImage){if(NS4){eval("document."+name+".src = '"+newImage+"'");}else{eval(name+".src = '"+newImage+"'");}}function movement(){switchImage("step3","images/"+langlang+"/step3p2.gif");if(findfor==0)// time
{findfor=1;switchImage("imovement","images/"+langlang+"/counter_pp.gif");}else{findfor=0;switchImage("imovement","images/"+langlang+"/counter_time.gif");}if(startedalready){clearallworld();goon(vertices[1]);goon(vertices[2]);startthedance();}}function turnon(num){if(NS4){eval("document.station"+num+".document.imga"+num+".src = img_blinker");}else{eval("imga"+num+".src = img_blinker");}turnedon[0]++;turnedon[turnedon[0]]=num;// for gone fishing
}function turnon_w(num){if(NS4){eval("document.station"+num+".document.imga"+num+".src = img_blinker");}else{eval("imga"+num+".src = img_blinker");}}function turnoff(num){if(NS4){eval("document.station"+num+".document.imga"+num+".src = 'blacklight.gif'");}else{eval("imga"+num+".src = 'blacklight.gif'");}}function turnon1(num){if(NS4){eval("document.station"+num+".document.imga"+num+".src = 'first2.gif'");}else{eval("imga"+num+".src = 'first2.gif'");}}function turnon2(num){if(NS4){eval("document.station"+num+".document.imga"+num+".src = 'second2.gif'");}else{eval("imga"+num+".src = 'second2.gif'");}}function setAllToFire(){for(i=1;i<=turnedon[0];i++){turnon_w(turnedon[i]);}}function gonefishing(){if(fish){fish=!fish;img_blinker="redlight4.gif";switchImage("privatedancer","images/"+langlang+"/nonblink.gif");if(turnedon[0]>0)setAllToFire();}else{fish=!fish;img_blinker="redlight8.gif";switchImage("privatedancer","images/"+langlang+"/blink.gif");if(turnedon[0]>0)setAllToFire();}}function MarkStation(Num){createnewLayerWithImage("NN"+Num,12,12,"blacklight.gif",coordsX[Num]-6,coordsY[Num]-6);}opened=new Array();vclosed=new Array();wasopened=new Array();g=new Array();adder=0;function search(first,second){vclosed[0]=0;for(i=0;i<=300;i++){vclosed[i]=false;wasopened[i]=false;g[i]=0;}opened[0]=1;opened[1]=first;wasopened[first]=true;vclosed[0]=1;vclosed[1]=first;to_set=0;peresad=0;while(true){if(opened[0]==0){alert("notfound! send these numbers: ('"+first+","+second+"') to insidernotguilty@mail.ru");return 0;}min=10000;temp_minN=1;for(j=1;j<=opened[0];j++){if(g[opened[j]]<min){min=g[opened[j]];temp_minN=j;}}minN=opened[temp_minN];if(minN==second){//        alert("min: "+min);
 return min;}vclosed[0]++;vclosed[vclosed[0]]=minN;for(k=temp_minN;k<=opened[0];k++)opened[k]=opened[k+1];opened[0]--;allvertices=Connections[minN][0];for(k=1;k<=allvertices;k++){nowvertex=Connections[minN][k];adder=Connections[minN][k+allvertices];flag=adder;if(adder==38){adder=!findfor?3:200;flag=200;//       alert(adder);
//        alert("vertex: "+minN+" , cost: "+g[minN] );
}tempgk=g[minN]+adder;if(wasopened[nowvertex]&&g[nowvertex]<tempgk){//        alert( "from: "+minN+" to: "+nowvertex+" g: "+tempgk+" oldg:"+g[nowvertex] );
//        g[nowvertex] = tempgk;
}else{//         if (!wasopened[nowvertex]) 
//         {
//          alert( "(!) from: "+minN+" to: "+nowvertex+" g: "+tempgk+" oldg:"+g[nowvertex] );
 g[nowvertex]=tempgk;opened[0]++;opened[opened[0]]=nowvertex;wasopened[nowvertex]=true;Connections[nowvertex][Connections[nowvertex][0]*2+1]=minN;Connections[nowvertex][Connections[nowvertex][0]*2+2]=flag;//       }
}}}}function lightway(first,second){nowv=second;nextv=second;lit_stations=0;peresad=0;len=0;while(true){nextv=Connections[nowv][Connections[nowv][0]*2+1];//    for (i=0;i<Connections[nextv];i++)
//     if (Connections[nextv][i+1] == nowv)
//     {
//      len = Connections[nextv][i*2+1];
//     }
//    if (len==38) peresad++ ;
//    nowv = nextv;
 if(Connections[nowv][Connections[nowv][0]*2+2]==200)peresad++;nowv=nextv;if(nowv!=first){turnon(nowv);lit_stations++;}if(nowv==first){return lit_stations;}}return lit_stations;}function goon(num)// mf
{//   if (phase == 1 && num == vertices[1]) 
//   {
//      alert('!');
//      return;
//   }  
 if(phase>1||startedalready){clearallworld();turnedon[0]=0;phase=0;}phase++;if(phase==1)turnon1(num);if(phase==2)turnon2(num);switchImage("step"+phase,"images/"+langlang+"/step"+phase+"p2.gif");vertices[phase]=num;}function clearphases(){switchImage("step1","images/"+langlang+"/metro_up_03a.gif");switchImage("step2","images/"+langlang+"/metro_up_04a.gif");switchImage("step3","images/"+langlang+"/metro_up_05a.gif");}function startthedance(){if(phase>1){showLayer("thinker");phase=0;if(vertices[1]==vertices[2]){wayCost=0;}else{wayCost=search(vertices[1],vertices[2]);minusS=lightway(vertices[1],vertices[2]);if(findfor)wayCost=wayCost-peresad*(200-3);wayCost=wayCost-minusS+1;}k=wayCost%10;switchImage("number1","images/"+langlang+"/n"+k+".gif");k=Math.round(((wayCost%100)/10)-0.5);switchImage("number10","images/"+langlang+"/n"+k+".gif");k=Math.round(wayCost/100-0.5);switchImage("number100","images/"+langlang+"/n"+k+".gif");hideLayer("thinker");k=peresad%10;switchImage("pnumber1","images/"+langlang+"/n"+k+".gif");k=Math.round(((peresad%100)/10)-0.5);switchImage("pnumber10","images/"+langlang+"/n"+k+".gif");k=Math.round(peresad/100-0.5);switchImage("pnumber100","images/"+langlang+"/n"+k+".gif");startedalready=true;clearphases();}}function dothebap(){for(i=0;i<177;i++)turnoff(i);}function clearallworld(){if(phase>0)turnoff(vertices[1]);if(phase>1)turnoff(vertices[2]);clearphases();phase=0;if(startedalready){dothebap();startedalready=false;}}function initall(){preloadimages();createnewLayer('thinker',400,470,283,102,'<img src=images/"+langlang+"/brainz.gif border=0></a>','hidden');createnewLayer('about',330,570,272,141,'<img src=images/"+langlang+"/about.gif usemap="#aboutclosemap" border=0></a>','hidden');//  showLayer( "thinker" );
 for(num=0;num<=177;num++){if(num==1){createnewLayer('station1',coordsX[1],coordsY[1]+320,15,15,'<a href="javascript:goon(1)"><img src=blacklight.gif name=imga1 border=0></a>');}else createnewLayer('station'+num,coordsX[num],coordsY[num]+320,15,15,'<a href="javascript:goon('+num+')"><img src=blacklight.gif name=imga'+num+' border=0></a>');  }       
 //  hideLayer( "thinker" );
}function showabout(){showLayer("about");}function closeabout(){hideLayer("about");}function showbrains(){showLayer("thinker");}