var minx;
var maxx;
var miny;
var maxy;
var iWidth;
var iHeight;
var singleclick;
var doubleclick;
var clickTime = 999;
var moveTime = 999;
var upTime;

function mapZoomInit(p_minx, p_maxx, p_miny, p_maxy, p_iWidth, p_iHeight, p_singleclick, p_doubleclick) {
    minx = p_minx;
    maxx = p_maxx;
    miny = p_miny;
    maxy = p_maxy;
    iWidth = p_iWidth;
    iHeight = p_iHeight;
    singleclick = p_singleclick;
    doubleclick = p_doubleclick;
}

var map = null;

if (is.ie) {
    map = document.all("map_image0");
} else if (is.ns) {
    map = document.images["map_image0"];
}

function selectMapImage(map_image_id) {
   change("SET_MAP_IMAGE", map_image_id);
}

function processEvent(e) {
    if (is.ie) {
        e = self.event;
    }
    if (is.ns) {
        e.preventDefault();
    }

    if (e.type == "mouseout") {
        return false;
    }

    if (e.type == "mousedown") {
        d = new Date();
        clickTime = d.getTime();
    }

    if (e.type == "mousemove") {
        d = new Date();
        if (moveTime == 999 && clickTime != 999)
            moveTime = d.getTime();
    }

    if (e.type == "mouseup") {
        d = new Date();
        upTime = d.getTime();
    }

    //ali.safarnejad:20070202if (upTime - clickTime <= 250 && (e.type == "mousedown" || e.type == "mouseup")) {
    if ((upTime > clickTime) && (upTime - clickTime <= 250) && (e.type == "mousedown" || e.type == "mouseup")) {
        handleMouseClick('click');
    }

    var map_tool = document.view.map_tool;

    if (map_tool != null && map_tool.value == "identify" && e.type == "mousedown") {
        if ((upTime > clickTime) && (upTime - clickTime <= 250) && (e.type == "mousedown" || e.type == "mouseup")) {
            handleMouseClick('click');
            return false;
        }
    }

    if (map_tool != null && map_tool.value == "graph" && e.type == "mousedown") {
        if ((upTime > clickTime) && (upTime - clickTime <= 250) && (e.type == "mousedown" || e.type == "mouseup")) {
            handleMouseClick('click');
        }
    }

    if (_zoomProcessEvent(map, e) == false) {
        if (is.ie) {
            window.status = getGeoLocation(map, minx, miny, maxx, maxy, iWidth, iHeight);
            return false;
        } else if (is.ns) {
            return window.routeEvent(e);
        }
    } else {
        if (_zoomFinished(map) == true) {
            if (_zoomIsBounds(map)) {
                change("MAP_ZOOM", _zoomGetBounds(map));
            }
        }
    }

    return false;
}

if (is.ie) {
    document.write('<span ID="map_zoom" onMouseMove="processEvent(event)" style="position:absolute; visibility:hidden; style.background:Images\box.gif; top:0; left:0; background-image: url(Images/box.gif); " ></span>');
    map.ondblclick = function() {
        handleMouseClick('dblclick');
    }

    map.onmousedown = processEvent;
    map.onmouseup = processEvent;
    map.onmousemove = processEvent;
} else if (is.ns) {
    document.write('<span id="map_zoom" STYLE="position:absolute; top:0; left:0; background-image: url(Images/box.gif); position:absolute; visibility:hidden"></span>');
    map.ondblclick = function() {
        handleMouseClick('dblclick');
    }

    map.addEventListener('mouseout', processEvent, true);
    map.addEventListener('mouseup', processEvent, true);
    map.addEventListener('mousedown', processEvent, true);
    map.addEventListener('mousemove', processEvent, true);
}

_zoomInit(map, "map_zoom");
