var ViaM_ns = (document.layers ? true : false);
var ViaM_ie = (document.all ? true : false);
var ViaM_navig = navigator.userAgent;
var ViaM_moz = (ViaM_navig.indexOf("Gecko")>=0?true : false);
var ViaM_isClick = false;
var ViaM_mousedown = false;
var ViaM_mouseStartX = -1;
var ViaM_mouseStartY = -1;

var ViaM_minX = 0;
var ViaM_maxX = 0;
var ViaM_minY = 0;
var ViaM_maxY = 0;
var isInit = false;
var minX,maxX,minY,maxY,offsetY,offsetX;
var daDiv;
var baseX;
var baseY;
var ViaM_SelectionDiv,ViaM_CrossDiv,map;

function get(obj)
{
	return document.getElementById(obj);
}

function doZoom(e) {
	if (isZoom)	{	
	
		
		x = (ViaM_moz ? e.pageX : event.clientX + document.body.scrollLeft) ;	
		
		deltaX = x - origX;
		document.getElementById("testwrite").value = deltaX;
		if (typeof(ViaM_infoLayer) != "undefined") ViaM_initInfoArray();
		
		if ((deltaX > 0)&&(x < maxX)&&(!isComputingMap)) {
						
			oImg.style.left = x + "px";
		}
		
		if ((deltaX <= 0)&&(x > minX)&&(!isComputingMap)) {
			
			
			oImg.style.left = x + "px";
			
		}		
		
	}
	return false;
}

var startScale;
var noImgAlt = false;
function activateZoom(e)
{
	noImgAlt = true;
	isZoom = true;
	n = 107 - parseInt(ViaM_posScale);
	n = n / 90 * 100;
	startScale = parseInt(Math.pow(10,((0.04*n))));
}
function deactivateZoom()
{
	if (isZoom) {
		
		isZoom = false;
		n = 107 - (parseInt(oImg.style.top) - parseInt(get("scaleGif").offsetTop));
		n = n / 90 * 100;
		scaleToObtain = parseInt(Math.pow(10,((0.04*n))));
		oImg.style.display = "none";
		ViaM_SelectionDiv.style.visibility = "hidden";
		document.forms["mainform"].psize.value = scaleToObtain;
		ViaM_doCalc("ZOOM_SWITCH_CMD");
		noImgAlt = false;
	}
}
 
 
isDrag=false;
var daMap,mapWidth,mapHeight,mapTop,mapLeft,oImg,daDiv,bgOutDiv;

function ViaM_init(o) 
{				
		
		if ((document.all)&&(get("skyFrame"))) get("skyFrame").style.display = "";
		if ((o=="")||(o==null)) o = "carteDyn";
		
		daMap = get("mapDiv");
		daMap.width = daMap.style.width;
		daMap.height = daMap.style.height;
		daMap.style.cursor = ((isDrag) ? "move" : "crosshair");
		mapWidth = parseInt(daMap.width);
		mapHeight = parseInt(daMap.height);
		mapLeft = 0;
		mapTop = 0;
		ratioMap = parseInt(daMap.width)/parseInt(daMap.height);

		if (oImg) origY = parseInt(oImg.style.top);
		if (oImg) origX = parseInt(oImg.style.left);
		isZoom = false;
		navZoom = 1;
		offsetX = findPosition(daMap)[0];
		offsetY = findPosition(daMap)[1];
		
		ViaM_SelectionDiv = document.createElement("DIV");
		ViaM_SelectionDiv.style.position = "absolute";
		ViaM_SelectionDiv.id = "ViaM_SelectionDiv";
		ViaM_SelectionDiv.style.height = "1px";
		ViaM_SelectionDiv.style.width = "1px";
		ViaM_SelectionDiv.style.visibility = "hidden";
		ViaM_SelectionDiv.style.border = "2px solid #FF0000";
		ViaM_SelectionDiv.style.zIndex = 19;
		ViaM_SelectionDiv.innerHTML = "<img src='gisi/s.gif' height=1 width=1>";
		daMap.appendChild(ViaM_SelectionDiv);
				
		isInit = true;
		daMap = get(o);
		ViaM_minX = findPosition(daMap)[0];
		ViaM_maxX = ViaM_minX + parseInt(daMap.width);
		ViaM_minY = findPosition(daMap)[1];
		ViaM_maxY = ViaM_minY + parseInt(daMap.height);
		
		baseY = parseInt(daMap.style.top);
		baseX = parseInt(daMap.style.left);
		daMap.onmousedown = ViaM_mouseDown;
		daMap.onmousemove = ViaM_mouseMove;
		daMap.onmouseup = ViaM_mouseUp;
		ViaM_SelectionDiv.onmousemove = ViaM_mouseMove;
		ViaM_SelectionDiv.onmouseup = ViaM_mouseUp;
		
}

var mouseStartX;
var mouseStartY;

function ViaM_mouseDown(e) {
	if (ViaM_moz) e.preventDefault();
	
	if ((document.all)&&(get("skyFrame"))) get("skyFrame").style.display = "none";
	
	if ((ViaM_ns && e.which != 1) || (ViaM_ie && event.button != 1) ||(ViaM_moz && e.which != 1) || isComputingMap) {
		return true; // avoid right-click capture
	}
	
	if (isDrag) {
		baseY = parseInt(daMap.style.top);
		baseX = parseInt(daMap.style.left);
		mouseStartX = (ViaM_moz ? e.pageX : event.clientX + document.body.scrollLeft);
		mouseStartY = (ViaM_moz ? e.pageY : event.clientY + document.body.scrollTop); 
	} else {
		var ViaM_mouseX = (ViaM_moz ? e.pageX : event.clientX + document.body.scrollLeft);
		var ViaM_mouseY = (ViaM_moz ? e.pageY : event.clientY + document.body.scrollTop);
	
		ViaM_mouseStartX = ViaM_mouseX;
		ViaM_mouseStartY = ViaM_mouseY;
	
		ViaM_isClick = ((ViaM_mouseStartX >= ViaM_minX) && (ViaM_mouseStartX <= ViaM_maxX)) && ((ViaM_mouseStartY >= ViaM_minY) && (ViaM_mouseStartY <= ViaM_maxY)&&(!isComputingMap));
		
		if (ViaM_isClick)
		{
			ViaM_showSelection(ViaM_mouseStartX, ViaM_mouseStartY);
			ViaM_SelectionDiv.style.visibility = "visible";
		}
	}
	ViaM_mousedown = true;
	return true;
	
}
var deltAxe;

function ViaM_mouseMove(e) {
	if (ViaM_mousedown) {
		if (!isDrag) {
			var ViaM_mouseX = (ViaM_moz ? e.pageX : event.clientX + document.body.scrollLeft);
			var ViaM_mouseY = (ViaM_moz ? e.pageY : event.clientY + document.body.scrollTop);
			
			if ((ViaM_isClick)&&(!isComputingMap)) {
				
				ViaM_showSelection(ViaM_mouseX, ViaM_mouseY);
				
				return false;
			}
		} else {
			
			daMap.style.left = parseInt(baseX) - mouseStartX + (ViaM_moz ? e.pageX : event.clientX + document.body.scrollLeft) + "px";
			daMap.style.top = parseInt(baseY) - mouseStartY + (ViaM_moz ? e.pageY : event.clientY + document.body.scrollTop) + "px";
		}
	}
	return false;
}

function ViaM_mouseUp(e) {
	ViaM_mousedown = false;
	
	if ((ViaM_ns && e.which != 1) || (ViaM_ie && event.button != 1) ||(ViaM_moz && e.which != 1) || isComputingMap ) {
		return true; // avoid right-click capture
	}
	
	if (isDrag) {
		ViaM_x0 = - parseInt(daMap.style.left) + parseInt(daMap.width)/2;
		ViaM_y0 = - parseInt(daMap.style.top) + parseInt(daMap.height)/2;
		document.forms["mainform"].x0.value = ViaM_x0;
		document.forms["mainform"].y0.value = ViaM_y0;
		document.forms["mainform"].x1.value = ViaM_x0;
		document.forms["mainform"].y1.value = ViaM_y0;
		ViaM_doCalc("dragcmd");
		return false;
	} else {
		var ViaM_mouseX = (ViaM_ns||ViaM_moz ? e.pageX : event.clientX + document.body.scrollLeft);
		var ViaM_mouseY = (ViaM_ns||ViaM_moz ? e.pageY : event.clientY + document.body.scrollTop);
	
		if (ViaM_isClick){
			var ViaM_x1 = ViaM_mouseStartX;
			var ViaM_x2 = ViaM_mouseX;
			
			ViaM_x0 = ViaM_mouseStartX - ViaM_minX;
			ViaM_y0 = ViaM_mouseStartY - ViaM_minY;
			ViaM_x1 = ViaM_mouseX - ViaM_minX;
			ViaM_y1 = ViaM_mouseY - ViaM_minY;
		
			
			var ViaM_mouseMoved = (ViaM_x1 != ViaM_x0) || (ViaM_y1 != ViaM_y0);
			if (ViaM_mouseMoved) {
				}
			ViaM_SelectionDiv.style.visibility = "hidden";
			
			if (((ViaM_x1 > ViaM_x0)&&(ViaM_x1 < ViaM_x0 + 5))||((ViaM_y1 > ViaM_y0)&&(ViaM_y1 < ViaM_y0 + 5))||((ViaM_x0 > ViaM_x1)&&(ViaM_x0 < ViaM_x1 + 5))||((ViaM_y0 > ViaM_y1)&&(ViaM_y0 < ViaM_y1 + 5))) {ViaM_x1 = ViaM_x0;ViaM_y1 = ViaM_y0;}
			
			if (ViaM_x1 < 0) ViaM_x1 = 0;
			if (ViaM_x1 > daMap.width) ViaM_x1 = daMap.width;
			if (ViaM_y1 < 0) ViaM_y1 = 0;
			if (ViaM_y1 > daMap.height) ViaM_y1 = daMap.height;
			document.forms["mainform"].x0.value = ViaM_x0;
			document.forms["mainform"].y0.value = ViaM_y0;
			document.forms["mainform"].x1.value = ViaM_x1;
			document.forms["mainform"].y1.value = ViaM_y1;
			ViaM_doCalc("zoommousecmd");
			ViaM_mouseStartX = -1;
			ViaM_mouseStartY = -1;
		}
		ViaM_isClick = false;
		return false;
	}
	
}

function ViaM_showSelection(ViaM_mouseX, ViaM_mouseY) {
	
	var ViaM_x1 = ViaM_mouseStartX;
	var ViaM_x2 = ViaM_mouseX;
	if (ViaM_x1 > ViaM_x2) {
		var ViaM_a = ViaM_x2;  
		ViaM_x2 = ViaM_x1;
		ViaM_x1 = ViaM_a;
	}
	if (ViaM_x1 < ViaM_minX) ViaM_x1 = ViaM_minX;
	if (ViaM_x2 > ViaM_maxX) ViaM_x2 = ViaM_maxX;

	var ViaM_y1 = ViaM_mouseStartY;
	var ViaM_y2 = ViaM_mouseY;
	if (ViaM_y1 > ViaM_y2) {
		ViaM_a = ViaM_y2;
		ViaM_y2 = ViaM_y1;
		ViaM_y1 = ViaM_a;
	}
	if (ViaM_y1 < ViaM_minY) ViaM_y1 = ViaM_minY;
	if (ViaM_y2 > ViaM_maxY) ViaM_y2 = ViaM_maxY;
		ViaM_SelectionDiv.style.visibility = "visible";
		ViaM_SelectionDiv.style.left = ViaM_x1 - findPosition(daMap)[0]+"px";
		ViaM_SelectionDiv.style.top = ViaM_y1 - findPosition(daMap)[1]+"px";
		ViaM_SelectionDiv.style.width = ViaM_x2 - ViaM_x1 +"px";
		ViaM_SelectionDiv.style.height = ViaM_y2 - ViaM_y1 +"px";
		
}

function rollover(i, o) {
	get(i).src = o;
}
function move(dir) {
	document.forms["mainform"].dir.value = dir;
	ViaM_doCalc("panncmd");
}

function findPosition( oLink ) {
  if( oLink.offsetParent ) {
    for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) {
      posX += oLink.offsetLeft;
      posY += oLink.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oLink.x, oLink.y ];
  }
}