
var ie4 = (document.all && !document.getElementById) ? true : false;
var ie5 = (document.all && document.getElementById) ? true : false;
var ns6 = (!document.all && document.getElementById) ? true : false;
var ns4 = (document.layers) ? true : false;

var zo_mouseDownX = -1, zo_mouseDownY = -1, zo_mapLeft=0, zo_mapTop=0;
var zo_bgLyr;
var zo_started = false;
var zo_handlerFunction = null;

function ZoomOutTool (mapLeft, mapTop, mapWidth, mapHeight) {
	zo_mapLeft = mapLeft;
	zo_mapTop = mapTop;
	
	var	zo_bgLyrContent = '<img border=0  src="images/spacer.gif" vspace="0" hspace="0"' +
				' width=' + mapWidth + ' height=' + mapHeight + 
				' style="POSITON:ABSOLUTE; cursor:crosshair; LEFT:' + mapLeft + '; TOP: ' + mapTop + 
				';">';
	createLayer('zo_bgLyr', null, mapLeft, mapTop, mapWidth, mapHeight, zo_bgLyrContent, '', 'hidden');
	
	if (ie4 || ie5) {
		zo_bgLyr = document.all['zo_bgLyr'];
	} else if (ns6) {
		zo_bgLyr = document.getElementById('zo_bgLyr');
	} else if (ns4) {
		zo_bgLyr = document.layers['zo_bgLyr'];	
		zo_bgLyr.captureEvents(Event.MOUSEUP | Event.MOUSEDOWN);
	}
	zo_bgLyr.onmousedown = zoomouttoolMouseDown;
	zo_bgLyr.onmouseup = zoomouttoolMouseUp;
	zo_bgLyr.onmousemove = zoomouttoolMouseMove;

	this.addListener = zoomouttoolAddListener;
	this.start = zoomouttoolStart;
	this.stop = zoomouttoolStop;
	this.getPoint = zoomouttoolGetClickedPoint;
	this.getPointX = zoomouttoolGetClickedPointX;
	this.getPointY = zoomouttoolGetClickedPointY;
	
}

function zoomouttoolStart () {
	zoomouttoolShowHideDrawingLyr(true);
	zo_started = true;
}
function zoomouttoolStop () {
	zoomouttoolShowHideDrawingLyr(false);
	zo_started = false;
}
function zoomouttoolAddListener (handlerFunction) {
	if (handlerFunction != null || handlerFunction != '') {
		zo_handlerFunction = handlerFunction;
		if (zo_handlerFunction.lastIndexOf(')') == -1) {
			zo_handlerFunction += '()';
		} 
	}
}
function zoomouttoolGetClickedPoint () {
	return new Array(zo_mouseDownX-zo_mapLeft, zo_mouseDownY-zo_mapTop);
}
function zoomouttoolGetClickedPointX () {
	return (zo_mouseDownX-zo_mapLeft);
}
function zoomouttoolGetClickedPointY () {
	return (zo_mouseDownY-zo_mapTop);
}
function zoomouttoolShowHideDrawingLyr (show) {
	if (ie4 || ie5 || ns6) {
		zo_bgLyr.style.visibility = (show)? 'visible' : 'hidden';
	} else if (ns4) {
		zo_bgLyr.visibility = (show) ? 'show' : 'hide'; 
	} 
}

function zoomouttoolMouseDown (e) {
	if ((ns4 && e.which == 1) || (ns6 && e.button == 0) || ((ie4 || ie5) && window.event.button == 1)) {
    	var x = (ns4 || ns6)? e.pageX : event.x;
        var y = (ns4 || ns6)? e.pageY : event.y+document.body.scrollTop;
		if (zo_started) {
			zo_mouseDownX = x;
			zo_mouseDownY = y;
		}
		return false;
	}
	return true;
}
function zoomouttoolMouseUp (e) {
	if ((ns4 && e.which == 1) || (ns6 && e.button == 0) || ((ie4 || ie5) && window.event.button == 1)) {
    	var x = (ns4 || ns6)? e.pageX : event.x;
        var y = (ns4 || ns6)? e.pageY : event.y+document.body.scrollTop;
		
		if (zo_handlerFunction != null) {
			eval (zo_handlerFunction);
		}
	}
	return true;
}

function zoomouttoolMouseMove (e) {
	if ((ns4 && e.which == 1) || (ns6 && e.button == 0) || ((ie4 || ie5) && window.event.button == 1)) {
    	var x = (ns4 || ns6)? e.pageX : event.x;
        var y = (ns4 || ns6)? e.pageY : event.y+document.body.scrollTop;	
		
		return false;
	}
	return true;	
}
