var objZoomBox;

function ZoomBox(image,box,osX,osY)
{		
	if (arguments.length == 4) 
	{
		this.isDrag = false;
		this.mapImage = document.getElementById(image);
		this.boxImage = document.getElementById(box);
		this.offsetX = osX;
		this.offsetY = osY;
	}	

	this.mouseMove = function(mmX,mmY)
	{
		if (this.isDrag) 
		{
			if (mmX > this.offsetX && mmY > this.offsetY && mmX < this.mapImage.width + this.offsetX && mmY < this.mapImage.height + this.offsetY)
			{	
				if (this.initX < mmX) { this.xMin = this.initX; this.xMax = mmX-this.initX; }

				else { this.xMin = mmX; this.xMax = this.initX-mmX; }
			
				if (this.initY < mmY) { this.yMin = this.initY; this.yMax = mmY-this.initY; }

				else { this.yMin = mmY; this.yMax = this.initY-mmY; }

				this.drawBox(this.xMin,this.yMin,this.xMax,this.yMax);
			
			}
			else { this.mouseUp(); return true;}
		}
		return false;
	}

	this.mouseDown = function(mdX,mdY)
	{
		this.isDrag = true;
		this.isComplete = true;
		this.initX  = mdX
		this.initY  = mdY
	
		this.xMin = mdX;
		this.yMin = mdY;
		this.xMax = 1;	
		this.yMax = 1;

		this.boxImage.style.visibility = "visible";
				
		this.drawBox(this.xMin,this.yMin,this.xMax,this.yMax);

		return false;
	}

	this.mouseUp = function()
	{
		if (this.isDrag)
		{	
			this.isDrag = false;
			this.boxImage.style.visibility = "hidden";
			this.update();
		}
		
		return false;
	}

	this.mouseOver = function()
	{
		this.mapImage.style.cursor = "crosshair";
	}

	this.drawBox = function(xmin, ymin, xmax, ymax)
	{
		this.boxImage.style.left   = xmin + "px";
		this.boxImage.style.top    = ymin + "px";
		this.boxImage.style.width  = xmax + "px";
		this.boxImage.style.height = ymax + "px";
	}
		
	this.update = function()
	{
		this.xMin = this.xMin - this.offsetX;
		this.yMin = this.yMin - this.offsetY;
		this.xMax = this.xMax + this.xMin;
		this.yMax = this.yMax + this.yMin;
							
		if (this.xMax < this.xMin) { tmpX = this.xMin; this.xMin = this.xMax; this.xMax = tmpX; }
		if (this.yMax < this.yMin) { tmpY = this.yMin; this.yMin = this.yMax; this.yMax = tmpY; }
	}
	
	this.getIsComplete = function() { return this.isComplete; }
	
	this.setIsComplete = function() { this.isComplete = false; }
			
	this.getXMin = function() { return this.xMin; }

	this.getYMin = function() { return this.yMin; }

	this.getXMax = function() { return this.xMax; }

	this.getYMax = function() { return this.yMax; }
}
