function ZoomIn(wsnav){
    this.id = "zoomin";
    this.toggle = true;
    this.wsnav = wsnav;
    wsnav.tools[this.id] = this;
    this.selected = false;
    this.nn6=document.getElementById&&!document.all;
    this.drawing = false;
}

ZoomIn.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>";
}

ZoomIn.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 = "";
    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));
    if(Math.abs(this.pixelEndX-this.pixelStartX)<=2&&Math.abs(this.pixelEndY-this.pixelStartY)<=2){
        this.wsnav.setZoomAndCenter(this.wsnav.zoom/2, x1, y1);
        rw = 0.5
        px1 = this.wsnav.mapWidth/4+(this.pixelStartX-this.wsnav.mapWidth/2);
        py2 = this.wsnav.mapHeight/4*3-(this.pixelStartY-this.wsnav.mapHeight/2);
    }else{
        x2 = this.wsnav.xmin+(this.pixelEndX*((this.wsnav.xmax-this.wsnav.xmin)/this.wsnav.mapWidth));
        y2 = this.wsnav.ymin+((this.wsnav.mapHeight-this.pixelEndY)*((this.wsnav.ymax-this.wsnav.ymin)/this.wsnav.mapHeight));
        this.wsnav.setBounds(x1, y1, x2, y2);

        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);//100
            py2 = cy+(ph/2);
            rh = rw;
        }else{
            pw = rh*this.wsnav.mapWidth;
            px1 = cx-(pw/2);
            px2 = cx+(pw/2);
            rw = rh;
        }
    }
    this.wsnav.modifyImage((px1*-1)/rw, ((this.wsnav.mapHeight-py2)*-1)/rw, this.wsnav.mapWidth/rw, this.wsnav.mapHeight/rw);
    this.wsnav.refreshMap();
}

ZoomIn.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";
    }
}
