
// Mapka gragdrop

var dragObject  = null;
var mouseOffset = null;
var dragContainer = null;
var tZoomLoaded = null;

var map_obrzk = '';
var x_obr = 0;
var y_obr = 0;
var virt_znac = '';

xd = 6;
yd = 6;


function ShowZoomImage()
{
 oZoomImage = new Image();
 oZoomImage.src = map_obrzk;				

 if(document.getElementById) // DOM 3: IE5+, NS6, Firefox
  {
   document.getElementById("i_prohlmap").style.display = "block";
  }

 if (!oZoomImage.complete) tZoomLoaded = setInterval(checkZoomLoaded,'500');
 else   checkZoomLoaded();
}

function checkZoomLoaded()
{
 if(oZoomImage.complete)
  {
   document.getElementById('i_prohlmap').innerHTML = '<div id="imgMainImageZoom"><img id="imgMainImageZoom" src="' + oZoomImage.src + '"><img id="point" src="../city_pano/point.gif" border=0 width=11 height=11 STYLE="position:absolute; left:1300px; top:1300px">'+ virt_znac +'</div>';
   clearTimeout(tZoomLoaded);		
   enableDrag('i_prohlmap', 'imgMainImageZoom', x_obr, y_obr);					
  }
}

function enableDrag(spContainer, imgDrag, imgWidth, imgHeight)
{
	var dragItem = null;
	var dragCont = null;
	var contW, contH = 0;
	var top, left;

	document.onmousemove = mouseMove;
	document.onmouseup   = mouseUp;

	dragCont = document.getElementById(spContainer);
	dragContainer = dragCont;
	dragContainer.style.position = 'relative';
	dragContainer.style.overflow = 'hidden';

	dragItem = document.getElementById(imgDrag);

	try {dragItem.style.cursor = 'pointer';} catch (e) {} //cursor property breaks IE5.5
	dragItem.onmousedown = function(ev)
	     {		
		dragObject  = this;
		dragObject.style.position = 'absolute';
		mouseOffset = getMouseOffset(this, ev);
		
		// ------------  umísti značku  ------------
		if(je_editor && foto_sel > 0)
		 {
		  rohob = document.getElementById('i_prohlmap');
		  var roh = getPosition(rohob);
		  if(foto_sel == foto_cnt)
		      opoi = document.getElementById('point'); // je-li vybrán ten poslední přidání
		  else
		      opoi = document.getElementById('point'+foto_sel);

		  xpoz = (mouseOffset.x - roh.x - xd);
		  ypoz = (mouseOffset.y - roh.y - yd);

		  opoi.style.top  = ypoz +'px';
		  opoi.style.left = xpoz +'px';

		  if( document.getElementById('xp'+foto_sel) )    // foto_sel != null
		    { document.getElementById('xp'+foto_sel).value = xpoz;
		      document.getElementById('yp'+foto_sel).value = ypoz; }
		 }

	     }
        // ondblclick 

	dragItem.style.position = 'absolute';
	dragItem.style.height = imgHeight + 'px'; dragItem.style.width = imgWidth + 'px';
	dragItem.style.top = 0; dragItem.style.left = 0;
	dragItem.top = 0; dragItem.left = 0;

	top = -((parseInt(dragItem.style.height)/2) - (parseInt(dragCont.style.height)/2));
	left = -((parseInt(dragItem.style.width)/2) - (parseInt(dragCont.style.width)/2));

	dragItem.style.top = top +'px';
	dragItem.style.left = left+'px';
	dragItem.top = dragItem.style.top;
	dragItem.left = dragItem.style.left;
}
//Drag Image End


function mouseCoords(ev)
{
 if(ev.pageX || ev.pageY)   { return {x:ev.pageX, y:ev.pageY}; }
 return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
	  y:ev.clientY + document.body.scrollTop  - document.body.clientTop  };
}


function mouseMove(ev)
{
 ev = ev || window.event;
 var mousePos = mouseCoords(ev);
 var targWidth, targHeight;
 
 if(dragObject){
	if (dragContainer) {
		targWidth  = parseInt(dragContainer.offsetWidth);
		targHeight = parseInt(dragContainer.offsetHeight);
		// dragObject.height dragObject.width
		if (((mousePos.y - mouseOffset.y) < 0) && ((mousePos.y - mouseOffset.y + y_obr) > targHeight) ) { dragObject.style.top  = (mousePos.y - mouseOffset.y) + 'px'; }
		if (((mousePos.x - mouseOffset.x) < 0) && ((mousePos.x - mouseOffset.x + x_obr) > targWidth) )  { dragObject.style.left = (mousePos.x - mouseOffset.x) + 'px'; }
	} else {
		dragObject = null;
	}
	return false;
 }
}
 
function mouseUp()
{
 dragObject = null;
}

function getMouseOffset(target, ev)
{
 ev = ev || window.event;
 var docPos  = getPosition(target);
 var mousePos  = mouseCoords(ev);
 return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}
 
function getPosition(obj)
{
 var left = 0;
 var top = 0;
 if (obj.offsetParent) {
	left += obj.offsetLeft ;
	top += obj.offsetTop;		
	while (obj = obj.offsetParent) {
		if (parseInt(obj.style.left)) {
			left -= parseInt(obj.style.left);
			top -= parseInt(obj.style.top);
		}
	}
 }
 return {x:left, y:top};
}
