var zoomDrag = {

	nx: null,
	ny: null,

	obj : null,

	init : function(o)
	{   o.style.cursor = "url(/css/openhand.cur), auto";
		o.onmousedown	= zoomDrag.start;

		o.hmode			= true ;
		o.vmode			= true ;

		o.root = o ;

		if (isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";

		o.root.onDragStart	= new Function();
		o.root.onDragEnd	= new Function();
		o.root.onDrag		= new Function();
	},

	start : function(e)
	{
   	    this.style.cursor = "url(style/closedhand.cur), auto";
		var o = zoomDrag.obj = this;
		e = zoomDrag.fixE(e);
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		o.root.onDragStart(x, y);

		o.lastMouseX	= e.clientX;
		o.lastMouseY	= e.clientY;

  		document.onmousemove	= zoomDrag.Drag;
		document.onmouseup		= zoomDrag.end;
		return false;
	},

	Drag : function(e)
	{
		e = zoomDrag.fixE(e);
		var o = zoomDrag.obj;

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
 //    	var nx, ny;



		nx = x + (ex - o.lastMouseX)
		ny = y + (ey - o.lastMouseY)


 		zoomDrag.obj.root.style.left = nx + "px";
		zoomDrag.obj.root.style.top = ny + "px";
		zoomDrag.obj.lastMouseX	= ex;
		zoomDrag.obj.lastMouseY	= ey;

		zoomDrag.obj.root.onDrag(nx, ny);


       if(nx>zoomer.left || nx<zoomer.left)
	   nx=zoomer.left;


		ny = (ny < zoomer.toplimit) ? zoomer.toplimit : ny;
        ny = (ny > zoomer.botlimit) ? zoomer.botlimit : ny;

        zoomDrag.obj.root.style.left = nx + "px";
		zoomDrag.obj.root.style.top = ny + "px";
		zoomDrag.obj.lastMouseX	= ex;
		zoomDrag.obj.lastMouseY	= ey;

		zoomDrag.obj.root.onDrag(nx, ny);


	  //	look("foot", ny)

    //    mini.drag(nx,ny);

    	return false;
	},

	end : function()
	{
		zoomDrag.obj.style.cursor = "url(/css/openhand.cur), auto";

		document.onmousemove = null;
		document.onmouseup   = null;
		zoomDrag.obj.root.onDragEnd(	parseInt(zoomDrag.obj.root.style.left),
										parseInt(zoomDrag.obj.root.style.top));
		zoomDrag.obj = null;

		delta = zoomer.botlimit - zoomer.toplimit;
		map.level = Math.round((map.levels-1)*ny/delta);

	  	map.zoom = 400;
		for (var i=1; i<map.level; i++) {
			map.zoom = map.zoom * 2;
		}

        var cx = Math.round(map.globalcenterx*map.edge/map.zoom)
		var cy = Math.round(map.globalcentery*map.edge/map.zoom)

	    	map.UpdateSize();
            map.update();

       //    map.globalcenterx*map.edge/map.zoom
	  // 	   map.globalcentery*map.edge/map.zoom

		map.setCenter(cx+"&"+cy);
     //    alert(map.globalcenterx+" "+(map.globalcenterx*map.edge/map.zoom)+" "+map.zoom)
        mini.zoomframe();

	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};