function ZoomOut(wsnav){
    this.id = "zoomout";
    this.toggle = true;
    this.wsnav = wsnav;
    wsnav.tools[this.id] = this;
    this.selected = false;
    this.nn6=document.getElementById&&!document.all;
    this.drawing = false;
}

ZoomOut.prototype.maponmousedown=function(e){
    if (!e) var e = window.event;
    this.drawing = true;
    var divDraw = document.getElementById("divDraw");
    this.pixelStartX = e.clientX-this.wsnav.getGlobalImgX();
    this.pixelStartY = e.clientY-this.wsnav.getGlobalImgY();
    this.pixelEndX = this.pixelStartX;
    this.pixelEndY = this.pixelStartY;
    divDraw.innerHTML = "<div id='zoom_bbox' class='"+(this.nn6?"tool_zoom_box_NN6":"tool_zoom_box")+"'>&nbsp;</div>";
}

ZoomOut.prototype.maponmouseup=function(e){
    if (!e) var e = window.event;
    this.wsnav.loadingAction(true);
    var divDraw = document.getElementById("divDraw");
    this.drawing = false;
    divDraw.style.visibility = "hidden";
    divDraw.innerHTML = "";
    if(Math.abs(this.pixelEndX-this.pixelStartX)<=2&&Math.abs(this.pixelEndY-this.pixelStartY)<=2){
        this.wsnav.modifyImage((this.wsnav.mapWidth/2)-(this.pixelStartX/2), (this.wsnav.mapHeight/2)-(this.pixelStartY/2), this.wsnav.mapWidth/2, this.wsnav.mapHeight/2);
        x1 = this.wsnav.xmin+(this.pixelStartX*((this.wsnav.xmax-this.wsnav.xmin)/this.wsnav.mapWidth));
        y1 = this.wsnav.ymin+((this.wsnav.mapHeight-this.pixelStartY)*((this.wsnav.ymax-this.wsnav.ymin)/this.wsnav.mapHeight));
        this.wsnav.setZoomAndCenter(this.wsnav.zoom*2, x1, y1);
    }else{
        px1 = Math.min(this.pixelStartX,this.pixelEndX);
        py2 = this.wsnav.mapHeight-Math.min(this.pixelStartY,this.pixelEndY);
        px2 = Math.max(this.pixelStartX,this.pixelEndX);
        py1 = this.wsnav.mapHeight-Math.max(this.pixelStartY,this.pixelEndY);

        pw = px2-px1;
        ph = py2-py1;
        rw = pw/this.wsnav.mapWidth;
        rh = ph/this.wsnav.mapHeight;

        cx = (px1+((px2-px1)/2));
        cy = (py1+((py2-py1)/2));

        if(rw>rh){
            ph = rw*this.wsnav.mapHeight;
            py1 = cy-(ph/2);
            py2 = cy+(ph/2);
            rh = rw;
        }else{
            pw = rh*this.wsnav.mapWidth;
            px1 = cx-(pw/2);
            px2 = cx+(pw/2);
            rw = rh;
        }
        
        x1 = this.wsnav.xmin-px1*((this.wsnav.xmax-this.wsnav.xmin)/pw);
        y1 = this.wsnav.ymin-py1*((this.wsnav.ymax-this.wsnav.ymin)/ph);
        x2 = this.wsnav.xmin+(this.wsnav.mapWidth-px1)*((this.wsnav.xmax-this.wsnav.xmin)/pw);
        y2 = this.wsnav.ymin+(this.wsnav.mapHeight-py1)*((this.wsnav.ymax-this.wsnav.ymin)/ph);

        this.wsnav.modifyImage(px1, this.wsnav.mapHeight-py2, this.wsnav.mapWidth*rw, this.wsnav.mapHeight*rw);

        this.wsnav.setBounds(x1, y1, x2, y2);
    }
    this.wsnav.refreshMap();
}

ZoomOut.prototype.maponmousemove=function(e){
    if(this.drawing){
        if (!e) var e = window.event;
        var divDraw = document.getElementById("divDraw");
        var box = document.getElementById("zoom_bbox");
        this.pixelEndX = e.clientX-this.wsnav.getGlobalImgX();
        this.pixelEndY = e.clientY-this.wsnav.getGlobalImgY();
        box.style.left = Math.min(this.pixelStartX, this.pixelEndX)+"px";
        box.style.top = Math.min(this.pixelStartY, this.pixelEndY)+"px";
        box.style.width = Math.abs(this.pixelStartX-this.pixelEndX)+"px";
        box.style.height = Math.abs(this.pixelStartY-this.pixelEndY)+"px";
        divDraw.style.visibility = "visible";
    }
}