//handles all the map graphics for zoomin / zoomout and measure

var g_bMouseDown = false;
var g_MapWindow = new clsExtents();

/* CLASS: clsExtents */
 function clsExtents() {
  this.X1 = 0.0;
  this.Y1 = 0.0;
  this.X2 = 0.0;
  this.Y2 = 0.0;
  this.init = false;
 
  this.reset = function() {
   this.X1 = 0.0;
   this.Y1 = 0.0;
   this.X2 = 0.0;
   this.Y2 = 0.0;
   this.init = false;
  };
 
  this.getMinX = function() { return (this.X1 > this.X2?this.X2:this.X1); };
  this.getMinY = function() { return (this.Y1 > this.Y2?this.Y2:this.Y1); };
  this.getMaxX = function() { return (this.X1 < this.X2?this.X2:this.X1); };
  this.getMaxY = function() { return (this.Y1 < this.Y2?this.Y2:this.Y1); };
  this.getWidth = function() { return (this.getMaxX() - this.getMinX()); };
  this.getHeight = function() { return (this.getMaxY() - this.getMinY()); };
  this.getWidthMid = function() { return ((this.X1 + this.X2) / 2); };
  this.getHeightMid = function() { return ((this.Y1 + this.Y2) / 2); };
 
  this.isValid = function() {
   return ((!isNaN(this.X1))&&(!isNaN(this.Y1))&&(!isNaN(this.X2))&&(!isNaN(this.Y2)));
  };
 
  this.clone = function() {
   var temp = new clsExtents();
   temp.X1 = this.X1;
   temp.Y1 = this.Y1;
   temp.X2 = this.X2;
   temp.Y2 = this.Y2;
   temp.init = this.init;
   return temp;
  };
 }

