N = (document.all) ? 0 : 1;
var ob;
var totalX=0;
var totalY=0;

var absX=7200
var absY=9000
var totalXMax;
var totalYMax;
var isG=0;
var zoom=1;
var a1x=0,a1y=0;
var a2x=0,a2y=0;
var a3x=0,a3y=0;
var a4x=0,a4y=0;
var gx=0;
var gy=0;
var mapfilesurl="./map";
//-------------------------
var h,w;
h=600;w=600;
//-------------------------
var blockNodes=false;
var blockStreets=false;
var blockGas=false;
var inMove=0;


//-------------------- init:

function buildTimeout()
{
document.getElementById("map").style.width=w;
document.getElementById("map").style.height=h;
document.getElementById("nodes").style.width=w-10;
document.getElementById("nodes").style.height=h-10;
a1i.style.posLeft=(w/2)-(document.all.a1i.width/2);a1i.style.posTop=(h/2)-(document.all.a1i.height/2);
a5i.style.display="none";

var poffset=5;
if ((h==600)&&(w==600)){
l.style.posLeft=poffset;l.style.posTop=(h/2)-(document.all.l.height/2);
t.style.posLeft=(w/2)-(document.all.t.width/2);t.style.posTop=poffset;
r.style.posLeft=(w-poffset)-(document.all.r.width);r.style.posTop=(h/2)-(document.all.r.height/2);
d.style.posLeft=(w/2)-(document.all.d.width/2);d.style.posTop=(h-poffset)-(document.all.d.height);
}
else
{l.style.posLeft=-100;
r.style.posLeft=-100;
t.style.posLeft=-100;
d.style.posLeft=-100;
}

totalX=0;
totalY=4000;

setTimeout(buildSegPos,900);
setTimeout(NodeReq,900);
}


//-------------------- arrow move:
function moveMap(a)
{nodes.empty();
if (a==1){totalX=limit(totalX-((400*8)/zoom),0,totalXMax);totalY=limit(totalY,0,totalYMax);}
if (a==2){totalX=limit(totalX,0,totalXMax);totalY=limit(totalY-((400*8)/zoom),0,totalYMax);}
if (a==3){totalX=limit(totalX+((400*8)/zoom),0,totalXMax);totalY=limit(totalY,0,totalYMax);}
if (a==4){totalX=limit(totalX,0,totalXMax);totalY=limit(totalY+((400*8)/zoom),0,totalYMax);}
buildSegPos(null);
nodes.empty();
NodeReq(null);
}


function buildSegPos(e)
{
totalXMax=absX-((600*8)/zoom);
totalYMax=absY-((600*8)/zoom);
if (inMove!=1)
{
/*
document.a1i.src=mapfilesurl+"/"+zoom+"/"+calcAx(1)+"-"+calcAy(1)+".jpg";
document.a2i.src=mapfilesurl+"/"+zoom+"/"+calcAx(2)+"-"+calcAy(2)+".jpg";
document.a3i.src=mapfilesurl+"/"+zoom+"/"+calcAx(3)+"-"+calcAy(3)+".jpg";
document.a4i.src=mapfilesurl+"/"+zoom+"/"+calcAx(4)+"-"+calcAy(4)+".jpg";
*/
document.a1i.src=mapfilesurl+"/map_seg.php?px="+calcAx(1)+"&py="+calcAy(1)+"&pz="+zoom+"";
document.a2i.src=mapfilesurl+"/map_seg.php?px="+calcAx(2)+"&py="+calcAy(2)+"&pz="+zoom+"";
document.a3i.src=mapfilesurl+"/map_seg.php?px="+calcAx(3)+"&py="+calcAy(3)+"&pz="+zoom+"";
document.a4i.src=mapfilesurl+"/map_seg.php?px="+calcAx(4)+"&py="+calcAy(4)+"&pz="+zoom+"";

var px1=calcAx(1)*600;
var py1=calcAy(1)*600;
var px2=calcAx(2)*600;
var py2=calcAy(2)*600;
var px3=calcAx(3)*600;
var py3=calcAy(3)*600;
var px4=calcAx(4)*600;
var py4=calcAy(4)*600;

a1i.style.posLeft=px1-Math.abs((totalX*zoom)/8);
a1i.style.posTop=py1-((totalY*zoom)/8);
a2i.style.posLeft=px2-Math.abs((totalX*zoom)/8);
a2i.style.posTop=py2-((totalY*zoom)/8);
a3i.style.posLeft=px3-Math.abs((totalX*zoom)/8);
a3i.style.posTop=py3-((totalY*zoom)/8);
a4i.style.posLeft=px4-Math.abs((totalX*zoom)/8);
a4i.style.posTop=py4-((totalY*zoom)/8);

nodes.style.posLeft=0-Math.abs((totalX*zoom)/8);
nodes.style.posTop=0-((totalY*zoom)/8);
}
else
{

var tx=window.event.clientX-gx; //window.event only EE or OPERA
var ty=window.event.clientY-gy; //window.event only EE or OPERA
//-------
var rx;
var ry;
if (gx<window.event.clientX)
{rx=totalX-Math.abs(((tx*8)/zoom));}
else
{rx=totalX+Math.abs(((tx*8)/zoom));}
if (gy<window.event.clientY)
{ry=totalY-Math.abs(((ty*8)/zoom));}
else
{ry=totalY+Math.abs(((ty*8)/zoom));}
totalX=limit(rx,0,totalXMax);
totalY=limit(ry,0,totalYMax);
/*
document.a1i.src=mapfilesurl+"/"+zoom+"/"+calcAx(1)+"-"+calcAy(1)+".jpg";
document.a2i.src=mapfilesurl+"/"+zoom+"/"+calcAx(2)+"-"+calcAy(2)+".jpg";
document.a3i.src=mapfilesurl+"/"+zoom+"/"+calcAx(3)+"-"+calcAy(3)+".jpg";
document.a4i.src=mapfilesurl+"/"+zoom+"/"+calcAx(4)+"-"+calcAy(4)+".jpg";
*/

//map_seg.php?px=2&py=11&pz=8
/*
document.a1i.src=mapfilesurl+"/map_seg.php?px="+calcAx(1)+"&py="+calcAy(1)+"&pz="+zoom+"";
document.a2i.src=mapfilesurl+"/map_seg.php?px="+calcAx(2)+"&py="+calcAy(2)+"&pz="+zoom+"";
document.a3i.src=mapfilesurl+"/map_seg.php?px="+calcAx(3)+"&py="+calcAy(3)+"&pz="+zoom+"";
document.a4i.src=mapfilesurl+"/map_seg.php?px="+calcAx(4)+"&py="+calcAy(4)+"&pz="+zoom+"";
*/

var px1=calcAx(1)*600;
var py1=calcAy(1)*600;
var px2=calcAx(2)*600;
var py2=calcAy(2)*600;
var px3=calcAx(3)*600;
var py3=calcAy(3)*600;
var px4=calcAx(4)*600;
var py4=calcAy(4)*600;


a1i.style.posLeft=px1-Math.abs((totalX*zoom)/8);
a1i.style.posTop=py1-((totalY*zoom)/8);
a2i.style.posLeft=px2-Math.abs((totalX*zoom)/8);
a2i.style.posTop=py2-((totalY*zoom)/8);
a3i.style.posLeft=px3-Math.abs((totalX*zoom)/8);
a3i.style.posTop=py3-((totalY*zoom)/8);
a4i.style.posLeft=px4-Math.abs((totalX*zoom)/8);
a4i.style.posTop=py4-((totalY*zoom)/8);

nodes.style.posLeft=0-Math.abs((totalX*zoom)/8);
nodes.style.posTop=0-((totalY*zoom)/8);
}

ptr.style.posLeft=interp((totalX),7200,160);
ptr.style.posTop=interp((totalY),9000,184);
ptr.style.width=(14*8)/zoom;
ptr.style.height=(13*8)/zoom;
}


//-------------------------
if (N) {document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);}

document.addEventListener("mousedown",MDown,false);
document.addEventListener("mousemove",MMove,false);
document.addEventListener("mouseup",MUp,false);


document.captureEvents(window.event.MOUSEDOWN | window.event.MOUSEMOVE | window.event.MOUSEUP);

document.onmousedown = MDown;
document.onmousemove = MMove;
document.onmouseup = MUp;
         
        
                            
function mwZoom(a)
{
//if (a>0) {zoomin();}
//if (a<0) {zoomout();}
//window.scrollTo(0,1000);
//document.all.nodes.scrollIntoView(true);
//document.all.nodes.scrollIntoView(false);
}

//-------------------------

function calcAx(a){
var tx=0;
if ((a==1)||(a==3)){
tx=Math.floor(totalX/((600*8)/zoom));
if (tx<0) {tx=0;}
}
if ((a==2)||(a==4)){
tx=Math.floor((totalX+((600*8)/zoom))/((600*8)/zoom));
if (tx>10) {tx=10;}
}
//tx=Math.floor((tx*zoom)/8)
return tx;
}

//---------------------
function calcAy(a)
{var ty=0;
if ((a==1)||(a==2)){
ty=Math.floor(totalY/((600*8)/zoom));
}
if ((a==3)||(a==4)){
ty=Math.floor((totalY+((600*8)/zoom))/((600*8)/zoom));
}
//ty=Math.floor((ty*zoom)/8)
return ty;
}

//-------------------------------- ------------- ---------------------------------------
//-------------------------------- MOUSE ACTIONS ---------------------------------------

function mouseX(evt) {
$("result").addEvent(function(event){
alert(win.page.x);
if (win.page.x) return win.page.x; 
});
/*if (evt==null){evt=window.event;}
if (evt.pageX) return evt.pageX;
else if (evt.clientX)
   return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
else //return null;

*/
}

function mouseY(evt) {
/*
if (evt==null)evt=window.event;
if (evt.pageY) return evt.pageY;
else if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
else //return null;
if (win.page.y) return win.page.y; 
*/
}

//-----------------------------------------------

function MDown(e){

if (N) {
ob = null;//document.layers[e.target.name];
X=e.x;
Y=e.y;

}
else{ ob = null;// event.srcElement.parentElement.style;
X=window.event.offsetX; //window.event only EE or OPERA
Y=window.event.offsetY; //window.event only EE or OPERA
}
if (isG==0)
{isG=1;
gx=window.event.clientX; //window.event only EE or OPERA
gy=window.event.clientY; //window.event only EE or OPERA
}
//setAtr();
map.style.cursor = "all-scroll";
inMove=1;
return false;
}

//-----------------------
function MMove(e){
//ToDo: moving routine

//setAtr();
if (inMove==1){

//document.nodes2.clear;
//nodes.empty();
buildSegPos(null);

gx=window.event.clientX; //window.event only EE or OPERA
gy=window.event.clientY; //window.event only EE or OPERA
UnTip();
}
return false;
}

//-------------------------
function MUp(e){
inMove=0;
//move for:
var tx=window.event.clientX-gx; //window.event only EE or OPERA
var ty=window.event.clientY-gy; //window.event only EE or OPERA
//-------

var rx;
var ry;

if (gx<window.event.clientX)
{rx=totalX-Math.abs(((tx*8)/zoom));}
else
{rx=totalX+Math.abs(((tx*8)/zoom));}

if (gy<window.event.clientY)
{ry=totalY-Math.abs(((ty*8)/zoom));}
else
{ry=totalY+Math.abs(((ty*8)/zoom));}

totalX=limit(rx,0,totalXMax);
totalY=limit(ry,0,totalYMax);
isG=0;
buildSegPos(null);
//NodeReq(null);
map.style.cursor = "auto";
return false;
}

function reReq(e)
{nodes.empty();
NodeReq(null);
}


//-------------------------------- MOUSE ACTIONS ---------------------------------------
//-------------------------------- ------------- ---------------------------------------

var togleM=0;

function togleMap()
{
closeAddjam();
if (togleM==0){
$("config").style.width=1;togleCfg=0;
$("config").style.display="none";
$("minimap").style.display="block";
$("minimap").style.width=160;togleM=1;}
else
{document.getElementById("minimap").style.display="none";
document.getElementById("minimap").style.width=1;togleM=0;}
return false;
}

//----------------------------------------
var togleCfg=0;
function togleConfig()
{
closeAddjam();
if (togleCfg==0){
$("minimap").style.width=1;togleM=0;
$("minimap").style.display="none";
$("config").style.width=200;
$("config").style.display="block";togleCfg=1;}
else
{$("config").style.display="none";
$("config").style.width=1;togleCfg=0;}

return false;
}

//----------------------------------------
function zoomin(e)
{

//totalXmax=(600*zoom*9)/8;
//totalYmax=(600*zoom*13)/8;
if (zoom!=8){
zoom=limit((zoom*2),1,8);

totalXmax=absX-(600*(8/zoom));
totalYmax=absY-(600*(8/zoom));

totalX=limit((totalX+((300*6)/zoom)),0,totalXMax);
totalY=limit((totalY+((300*6)/zoom)),0,totalYMax);

buildSegPos(null);
nodes.empty();
NodeReq(null);}
}
//----------------------------------------
function zoomout(e)
{
//totalXmax=(600*zoom*9)/8;
//totalYmax=(600*zoom*13)/8;


if (zoom!=1){
zoom=limit((zoom/2),1,8);

totalXmax=absX-(600*(8/zoom));
totalYmax=absY-(600*(8/zoom));

totalX=limit((totalX-((300*4)/zoom)),0,totalXMax);
totalY=limit((totalY-((300*4)/zoom)),0,totalYMax);
buildSegPos(null);
nodes.empty();
NodeReq(null);
}

}
//----------------------------------------

function resetMapAll(e)
{blockNodes=0;
 blockStreets=0;
 blockGas=0;
 totalX=1200;
 totalY=6500;
 zoom=8;
 blockNodes=false;
// document.getElementById("blockN").checked=true;
 blockStreets=false;
 document.getElementById("blockS").checked=true;
 blockGas=false;
 //document.getElementById("blockG").checked=true;
document.getElementById("minimap").style.posLeft=-59;
document.getElementById("minimap").style.width=1;togleM=0;
document.getElementById("config").style.posLeft=-59;
document.getElementById("config").style.width=1;togleCfg=0;
buildSegPos(null);

NodeReq(null);
}

//----------------------------------------
function NodeReq(e)
{
var hn=0;
var hs=0;
var hg=0;
var brw=0;
if (blockN.checked==false){hn=1;}
if (Browser.Engine.trident||Browser.Engine.presto){brw=0;}else{brw=1;}

var req = new Request.HTML({url:'inc/nodes.php'+'?px='+totalX+'&py='+totalY+'&nodes='+hn+'&pz='+zoom+'&brw='+brw, onSuccess: function(html) {$('nodes').set('text', '');$('nodes').adopt(html);}, onFailure: function() {$('result').set('text', 'The request failed.'+'  src: inc/nodes.php'+'?px='+gx+'&py='+gy+'&pz='+zoom+'&brw='+brw);} });
req.send();
}

//----------------------------------------
var togleAddJam=0;
function setEditing(eid)
{
if (togleAddJam==0){
togleM=0;
togleCfg=0;
togleAddJam=1;
$("minimap").style.display="none";
$("config").style.display="none";
$("addJam").style.width=400;$("addJam").style.display="block";
}
else
{$("addJam").style.display="none";togleAddJam=0;}


var hn=0;
var hs=0;
var hg=0;
var brw=0;

var req = new Request.HTML({url:'inc/jamInject.php'+'?id='+eid, onSuccess: function(html) {$('addJam').set('text', '');$('addJam').adopt(html);}});
req.send();
}

function setAddJam(jamnum)
{
$("addJam").style.display="none";togleAddJam=0;
}

