// JavaScript Document
function WorkMinus(ox,oy)
{
	var tmpOldCoordX=DisplayToMap(ox,oy).x;
	var tmpOldCoordY=DisplayToMap(ox,oy).y;
	
	removeDiv();	
	scale=scale-1;
			
	if(scale<-21) scale=-21;
	
	var tmpNewCoordX=DisplayToMap(ox,oy).x;
	var tmpNewCoordY=DisplayToMap(ox,oy).y;
	
	var StepX=tmpOldCoordX-tmpNewCoordX;
	var StepY=tmpOldCoordY-tmpNewCoordY;
	
	AbsMapX=AbsMapX+StepX;
	AbsMapY=AbsMapY+StepY;
	
	createDiv();
	if(moveLine!="none")
	{
		clear();
		drawPoly();
		Distance();
	}
	if(SelectCanvas)
	{
			var canvas=document.getElementById('select').getContext('2d');
			canvas.clearRect(0,0,screenSize().w,screenSize().h);
			draw('select');
	}
}

function WorkPlus(ox,oy)
{
	var tmpOldCoordX=DisplayToMap(ox,oy).x;
	var tmpOldCoordY=DisplayToMap(ox,oy).y;
	
	removeDiv();
	
	scale=scale+1;
			
	if(scale>1) scale=1;
	
	var tmpNewCoordX=DisplayToMap(ox,oy).x;
	var tmpNewCoordY=DisplayToMap(ox,oy).y;
	
	var StepX=tmpOldCoordX-tmpNewCoordX;
	var StepY=tmpOldCoordY-tmpNewCoordY;
	
	AbsMapX=AbsMapX+StepX;
	AbsMapY=AbsMapY+StepY;
	
	createDiv();
	
	if(moveLine!="none")
	{
		clear();
		drawPoly();
		Distance();
	}
	if(SelectCanvas)
	{
			var canvas=document.getElementById('select').getContext('2d');
			canvas.clearRect(0,0,screenSize().w,screenSize().h);
			draw('select');
	}
		
}


function removeDiv()
{
	var object = document.getElementById('work');
	//alert("sf");
	while(object.firstChild!=null) 
	{
		//object.firstChild.firstChild.src=' http://www.orengis.ru/scan_image_cgi.exe?X='+(1000)+'&Y='+(1000)+'&S=1';
		//object.removeChild(object.firstChild.firstChild);
		object.removeChild(object.firstChild);
	
	}
	if(!isIE)
	{
		window.stop();
		//alert('sfdsf');
	}
}

//---------массив img для кнопок---------------
var arrImg= new Array();
/*arrImg["kursor"]= new Image(40,40);
arrImg["kursor"].src="../img/kursor.jpg";
arrImg["kursor_b"]= new Image(40,40);
arrImg["kursor_b"].src="../img/kursor_b.jpg";*/

arrImg["hand"]= new Image(40,40);
arrImg["hand"].src="../img/hand.jpg";
arrImg["hand_b"]= new Image(40,40);
arrImg["hand_b"].src="../img/hand_b.jpg";

arrImg["lupaInc"]= new Image(40,40);
arrImg["lupaInc"].src="../img/Inc.jpg";
arrImg["lupaInc_b"]= new Image(40,40);
arrImg["lupaInc_b"].src="../img/Inc_b.jpg";

arrImg["lupaDec"]= new Image(40,40);
arrImg["lupaDec"].src="../img/Dec.jpg";
arrImg["lupaDec_b"]= new Image(40,40);
arrImg["lupaDec_b"].src="../img/Dec_b.jpg";

arrImg["lineika"]= new Image(40,40);
arrImg["lineika"].src="../img/lineika.jpg";
arrImg["lineika_b"]= new Image(40,40);
arrImg["lineika_b"].src="../img/lineika_b.jpg";

//--------Kontrol----------------------------------------------------------------
function kontrol(id){
	oldcontrol=control;
	if(id=="hand")
	{
		document.getElementById("move").style.cursor="pointer";
		document.hand.src=arrImg["hand_b"].src;
		document.lupaInc.src=arrImg["lupaInc"].src;
		document.lupaDec.src=arrImg["lupaDec"].src;
		//document.kursor.src=arrImg["kursor"].src;
		document.lineika.src=arrImg["lineika"].src;
		
		
	}
	if(id=="lupaInc" || id=="lupaDec")
	{
					
		document.getElementById("move").style.cursor="crosshair";
		
		if(id=="lupaInc")
		{
			document.lupaInc.src=arrImg["lupaInc_b"].src;
			document.lupaDec.src=arrImg["lupaDec"].src;
			//document.kursor.src=arrImg["kursor"].src;
			document.hand.src=arrImg["hand"].src;
			document.lineika.src=arrImg["lineika"].src;
		}
		if(id=="lupaDec")
		{
			document.lupaInc.src=arrImg["lupaInc"].src;
			document.lupaDec.src=arrImg["lupaDec_b"].src;
			//document.kursor.src=arrImg["kursor"].src;
			document.hand.src=arrImg["hand"].src;
			document.lineika.src=arrImg["lineika"].src
		}
		
	}
	/*if(id=="kursor")
	{
		
			
		document.getElementById("move").style.cursor="default";
			document.lupaInc.src=arrImg["lupaInc"].src;
			document.lupaDec.src=arrImg["lupaDec"].src;
			document.kursor.src=arrImg["kursor_b"].src;
			document.hand.src=arrImg["hand"].src;
			document.lineika.src=arrImg["lineika"].src
	
		
	}*/
	if(id=="lineika")
	{
		document.getElementById("move").style.cursor="crosshair";
		document.lupaInc.src=arrImg["lupaInc"].src;
			document.lupaDec.src=arrImg["lupaDec"].src;
			//document.kursor.src=arrImg["kursor"].src;
			document.hand.src=arrImg["hand"].src;
			document.lineika.src=arrImg["lineika_b"].src;
						
	}
	control=id;
}
//---------------------------------------------------------------------

//--------------------------------------------------линейка-------------------------------------------------------
function drawPoly() 
{
    var canvas=document.getElementById('canvasId').getContext('2d');
	canvas.strokeStyle = 'black'; // цвет линии
	canvas.lineWidth = 1;// ширина линиии
	// Начинаем отрисовку
	canvas.clearRect(0,0,screenSize().w,screenSize().h);
	//-------------------------------------
	canvas.beginPath();
      for (var j = 0; j < lineI-1; j++) {
			canvas.moveTo(MapToDisplay(arr[0][j],arr[1][j]).x, MapToDisplay(arr[0][j],arr[1][j]).y );
			canvas.lineTo(MapToDisplay(arr[0][j+1],arr[1][j+1]).x, MapToDisplay(arr[0][j+1],arr[1][j+1]).y );
			
      }
	canvas.closePath();
	
	canvas.stroke();
	//-----------------------------
    canvas.beginPath();
	canvas.moveTo(MapToDisplay(x1,y1).x,MapToDisplay(x1,y1).y);
	canvas.lineTo(MapToDisplay(x2,y2).x,MapToDisplay(x2,y2).y);
	canvas.closePath();
	canvas.stroke();
	

	
	
}
function MDown(event)
{
x1=DisplayToMap(defPosition(event).x, defPosition(event).y).x;
y1=-DisplayToMap(defPosition(event).x, defPosition(event).y).y;
arr[0][lineI]=x1;
arr[1][lineI]=y1;
lineI++;
}
function MMove(event)
{
	x2=DisplayToMap(defPosition(event).x, defPosition(event).y).x;
	y2=-DisplayToMap(defPosition(event).x, defPosition(event).y).y;
	
}

//-------------------------------------------подсчет расстояния линейкой--------------------------

function Distance()
{
	
	var d=document.getElementById('flag');
	if(d.firstChild!=null)
	removeChildren(d);
	
	var s=0;
	
	for(var i=0; i<lineI; i++)
	{
			//var s=0;
			olds=Math.floor(s);
			s=0;
			for(var j=0; j<i; j++)
			{
				s=s+Math.sqrt((arr[0][j]-arr[0][j+1])*(arr[0][j]-arr[0][j+1])+(arr[1][j]-arr[1][j+1])*(arr[1][j]-arr[1][j+1]));
			}	
			//---------dom создание---------------------------
			var parent= document.getElementById('flag');
			var newdiv = document.createElement('div');
			newdiv.id ="myDivId"+j;
			newdiv.style.width = "auto";
			newdiv.style.height = "auto";
			newdiv.style.background = '#fff';
			newdiv.style.color = '#000';
			newdiv.style.position = 'absolute';
			newdiv.style.left = MapToDisplay(arr[0][i],arr[1][i]).x+"px";
			newdiv.style.top =MapToDisplay(arr[0][i],arr[1][i]).y+"px";
			newdiv.style.fontfamily='Tahoma, Arial, Helvetica, sans-serif';
			newdiv.style.fontsize='10px';
			var text;
			
			//if(j==0) s=0;
			if((s-olds)>1000)
			{
				text=Number((s-olds)/1000).toFixed(1)+"км";
			}
			else text=Math.floor(s)-olds+"м";
			
			var textNode = document.createTextNode(text);
			newdiv.appendChild(textNode);
			parent.appendChild(newdiv);
			
			parent=document.getElementById("myDivId"+j);
			var newbr=document.createElement('br');
			parent.appendChild(newbr);
			
			
			if(s>1000)
			{
				text=Number(s/1000).toFixed(1)+"км";
			}
			else text=Math.floor(s)+"м";
			
			textNode = document.createTextNode(text);
			parent.appendChild(textNode);
			
			
			
	}
	
}

//-------------удаление-----------------------

function removeChildren(node) {
var children = node.childNodes
     while(children.length) {
     node.removeChild(children[0]);
    }

}

function delL()
{
	for(var j=0;j<arr[0].length-1;j++)
	{
		arr[0][j]=0;
	 	arr[1][j]=0;
	}
	moveLine=false;
	canvas=document.getElementById('canvasId').getContext('2d');
	canvas.clearRect(0,0,screenSize().w,screenSize().h);
	var d=document.getElementById('flag');
	removeChildren(d);
	lineI=0;
	olds=0;
	moveLine="none";
	document.getElementById('noline').style.display="none";
}

function clear()
{
	canvas=document.getElementById('canvasId').getContext('2d');
	canvas.clearRect(0,0,screenSize().w,screenSize().h);
			
	var d=document.getElementById('flag');
	if(d.firstChild!=null)
	removeChildren(d);
}
//------------------------------------------------------end lineika--------------------------------------------------------

//--------------------------------------------------select----------------------------------------------------------------------
//---------------------Выделение-----------------------------------------


function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
// Читайте ниже об этой строке
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Не вышло  Невозможно создать экземпляр класса XMLHTTP ');
return false;
}
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
	var k= new Array();
	k[0]="";
	var j=0;
    var txt=http_request.responseText;
	//alert(txt);
	for(var i=0;i<txt.length-1;i++)
	{
		if(txt.charAt(i)==" "){ j++; k[j]="";}
		else k[j]=k[j]+txt.charAt(i);
		
	}
	var q,w;
	q=0;
	w=0;
	for(var i=0;i<=j;i++)
	{
		if(i%2==0){ xy[0][q]=parseFloat(k[i]);  q++; }
		else{ xy[1][w]=parseFloat(k[i]); w++;}
		
	}
	draw('select');
    //console.appendChild(txt);
  //}
} else {
//alert('С запросом возникла проблема.');
}
}

}

//--------------------------------------------------------------------------------------------------------

function draw(id) {
	var type=0;
	var kol=0;
	var t=1;	
	var canvas = document.getElementById(id).getContext('2d');
      // Начинаем отрисовку
	  for(var j=0;j<=xy[0].length;j++)
	  {
	  if(xy[0][type]==0)
	  {
		//canvas.strokeStyle = 'red'; // цвет линии
		//canvas.lineWidth = 1;// ширина линиии
      	canvas.beginPath();
	   		for (var i = type+1; i <=type+xy[1][type]; i++) 
			{
            // Ставим точку на исходную позицию
			//MapToDisplay(xy[0][i],xy[1][i]).x
            if (i == type+1) canvas.moveTo(MapToDisplay(xy[0][i],-xy[1][i]).x,MapToDisplay(xy[0][i],-xy[1][i]).y);
            // Рисуем линии от точки к точке
            else canvas.lineTo(MapToDisplay(xy[0][i],-xy[1][i]).x,MapToDisplay(xy[0][i],-xy[1][i]).y);
			
			if(i==type+xy[1][type])
			{
				canvas.moveTo(MapToDisplay(xy[0][type+1],-xy[1][type+1]).x, MapToDisplay(xy[0][type+1],-xy[1][type+1]).y);
				canvas.lineTo(MapToDisplay(xy[0][i],-xy[1][i]).x, MapToDisplay(xy[0][i],-xy[1][i]).y); 
			
			}
      		}
      // Задаем цвет заливки в формате RGBA
      canvas.fillStyle = 'red';
      // Зальем полученный многоугольник цветом
      canvas.fill();
	 // canvas.stroke();
	  type=type+1+xy[1][type];
	 	  
	  }
	  
	  if(xy[0][type]==1)
	  {
		  	canvas.strokeStyle = 'red'; // цвет линии
			canvas.lineWidth = 1;// ширина линиии
			// Начинаем отрисовку
			//canvas.clearRect(0,0,screenSize().w,screenSize().h);
				//-------------------------------------
			
			canvas.beginPath();
      		for (var i = type+1; i <type+1+xy[1][type]; i+=2) 
			{
			canvas.moveTo(MapToDisplay(xy[0][i],-xy[1][i]).x,MapToDisplay(xy[0][i],-xy[1][i]).y);
			canvas.lineTo(MapToDisplay(xy[0][i+1],-xy[1][i+1]).x,MapToDisplay(xy[0][i+1],-xy[1][i+1]).y);
			}
			canvas.closePath();
			canvas.stroke();
			type=type+1+xy[1][type];
			
	  }
	 	
	  }
		//xy=new Array();
		//xy[0]=new Array();
		//xy[1]=new Array();
		SelectCanvas=true;
}
//----------------------------------end select----------------------------------------------------------------------------------------------

function XMic(m,event)
{
if(defPosition(event).x>440 && defPosition(event).x<590 )
document.getElementById(m).style.left=defPosition(event).x-400-2;

var tmpOldCoordX=DisplayToMap((screenSize().w-300)/2,(screenSize().h)/2).x;
var tmpOldCoordY=DisplayToMap((screenSize().w-300)/2,(screenSize().h)/2).y;
removeDiv();

scale=Math.round(setMicX(defPosition(event).x-400-2).sc);
//alert(scale);

var tmpNewCoordX=DisplayToMap((screenSize().w-300)/2,(screenSize().h)/2).x;
var tmpNewCoordY=DisplayToMap((screenSize().w-300)/2,(screenSize().h)/2).y;
	
var StepX=tmpOldCoordX-tmpNewCoordX;
var StepY=tmpOldCoordY-tmpNewCoordY;
	
AbsMapX=AbsMapX+StepX;
AbsMapY=AbsMapY+StepY;
	
	createDiv();
	if(moveLine!="none")
	{
		clear();
		drawPoly();
		Distance();
	}
	if(SelectCanvas)
	{
			var canvas=document.getElementById('select').getContext('2d');
			canvas.clearRect(0,0,screenSize().w,screenSize().h);
			draw('select');
	}
}

//------------------положение линейки от scale-------------------

function getMicX()
{
	var leftmic
	if(scale<=0)
	leftmic=25+(23-Math.abs(scale))*7;
	else
	leftmic=25+(23+scale)*7;
	
	return{leftmic:leftmic};
	
}

function setMicX(lmic)
{
	var sc;
	sc=(lmic-25)/7-23;
	if(sc>3) sc=0-sc;
	//canvas.clearRect(0,0,screenSize().w,screenSize().h);
	return{sc:sc};
	
}

function printit(){
window.print() ;
} 

//-----------------------------------------стрелки-----------------------------------------------
function topButton()
{
	AbsMapY=AbsMapY+256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function bottomButton()
{
	AbsMapY=AbsMapY-256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function leftButton()
{
	AbsMapX=AbsMapX-256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function rightButton()
{
	AbsMapX=AbsMapX+256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function lefttopButton()
{
	AbsMapY=AbsMapY+256/GetDiv().result;
	AbsMapX=AbsMapX-256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function righttopButton()
{
	AbsMapY=AbsMapY+256/GetDiv().result;
	AbsMapX=AbsMapX+256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function leftbottomButton()
{
	AbsMapY=AbsMapY-256/GetDiv().result;
	AbsMapX=AbsMapX-256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
function rightbottomButton()
{
	AbsMapY=AbsMapY-256/GetDiv().result;
	AbsMapX=AbsMapX+256/GetDiv().result;
	removeDiv(); 
	createDiv(); 
	if(moveLine!="none"){	clear(); drawPoly(); Distance();}
	if(SelectCanvas){var canvas=document.getElementById("select").getContext("2d");canvas.clearRect(0,0,screenSize().w,screenSize().h);draw("select");}
}
