  var visible = true;
  var isMove = false;
  var started = false;

  var originX;         // position where mouse is originally clicked
  var originY;

  var numPoints = 0;   // Number of points in parcel
  var points;          // Sequence of points in parcel (map coords)
  var latmin, latmax, lonmin, lonmax;  // Boundary of parcel

  // Function to compute absolute x position of obj
  // (Copied from javascript forum)
  function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
      while (obj.offsetParent) {
        curleft += obj.offsetLeft;
        obj = obj.offsetParent;
      }
    }
    else if (obj.x) {
      curleft += obj.x;
    }
    return curleft;
  }
  // Function to compute absolute x position of obj
  // (Copied from javascript forum)
  function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
      while (obj.offsetParent) {
        curtop += obj.offsetTop
        obj = obj.offsetParent;
      }
    }
    else if (obj.y) {
      curtop += obj.y;
    }
    return curtop;
  }

  function turnOnRubberBox () {
    visible = true;
  }

  function turnOffRubberBox () {
    visible = false;
    started = false;

    if (navigator.appName == "Microsoft Internet Explorer") {
      var r = document.all.rubberBand;  // rubber band DIV
      r.style.visibility = 'hidden';
    }
    else if (navigator.appName == "Netscape") {
      var r = document.getElementById('rubberBand');
      r.style.visibility = 'hidden';
    }
    else {
      // Not supported yet...
    }
  }

 function startRubber (evt) {
   var cmd = document.forms[0].cmdChecked.value;

   //document.write(cmd+' line 82');

   if (!((cmd == 'ZOOM_IN')           // Zoom In
         ||(cmd == 'ZOOM_OUT')        // Zoom Out
         ||(cmd == 'RECENTER')        // Panning
         ||(cmd == 'MOVE_POINT')      // Moving
         ||(cmd == 'SEARCH_AREA')     // Search Area
         ||(cmd == 'DOWNLOAD_MAP')))   // Search Area
   return;

   /*** Added by Ong (4/21/03) ***/
   if (cmd == 'MOVE_POINT') {
     isMove = true;
   }

   if (cmd == 'RECENTER' || isMove) {
     visible = false;
   }

   /*** End of added by Ong (4/21/03) ***/
   if (navigator.appName == "Microsoft Internet Explorer") {
     var r = document.all.rubberBand;  // rubber band DIV
     var ic = document.all.iconl;      // icon DIV
     var map = document.all.imap;      // DIV on which main map sits on
     var offsetX = findPosX(map);      // abs x pos of map DIV
     var offsetY = findPosY(map);      // abs y pos of map DIV
     originX = offsetX + event.x;      // abs x pos of where mouse is clicked
     originY =  offsetY + event.y;     // abs y pos of where mouse is clicked
     r.style.width = 0;                // size is initially 0
     r.style.height = 0;
     r.style.pixelLeft = originX;      // move it to mouse position
     r.style.pixelTop  = originY;

     // show rubber band if visible is true
     r.style.visibility = visible ? 'visible' : 'hidden';
     ic.style.visibility = isMove ? 'visible' : 'hidden';
   }
   else if (navigator.appName == "Netscape") {
     var r = document.getElementById('rubberBand');
     var ic = document.getElementById('iconl');
     // DEBUG
     //var map = document.getElementById("imap");
     originX = evt.clientX;     // abs x pos of where mouse is clicked
     /*
     originX = parseInt(evt.clientX) - findPosX(map)+
               parseInt(window.scrollX); 
     */
     originY = evt.clientY;     // abs y pos of where mouse is clicked
     /*
     originY = parseInt(evt.clientY) - findPosY(map)+
               parseInt(window.scrollY); 
     */
     r.style.width = 0;
     r.style.height = 0;
     r.style.left = originX + 'px';
     r.style.top = originY + 'px';
     r.style.visibility = visible ? 'visible' : 'hidden';
     ic.style.visibility = isMove ? 'visible' : 'hidden';
   }
   else {
     // Not tested.

     var r = document.rubberBand;
     r.clip.width = 0; r.clip.height = 0;
     r.left = evt.x;
     r.top = evt.y;
     r.visibility = visible ? 'show' : 'hide';
   }
   if (document.layers) {
     document.captureEvents(Event.MOUSEMOVE);
   }
   started = true;
 }



 function moveRubber (evt) {
   if (!started) return;  // if rubber band is not started return immediately

   if (navigator.appName == "Microsoft Internet Explorer") { 
     var r = document.all.rubberBand;
     var ic = document.all.iconl;
     var map = document.all.imap;
     var limitX = parseInt(map.style.width);  // to check whether mouse goes
     var limitY = parseInt(map.style.height); // outside map or not
     var offsetX = findPosX(map);
     var offsetY = findPosY(map);
     var mouseX = offsetX + event.x;
     var mouseY = offsetY + event.y;
     var minX = Math.min(originX, mouseX);    // compute min and max of x and y
     var minY = Math.min(originY, mouseY);
     var maxX = Math.max(originX, mouseX);
     var maxY = Math.max(originY, mouseY);
     var r_flag = document.all.RFLAG;
     r_flag.value = 'dragging';

     /*** Added by Ong (4/21/03) ***/
     var dirX = document.all.DIRX;
         dirX.value = (originX > mouseX) ? "left":"right";
     var dirY = document.all.DIRY;
         dirY.value = (originY > mouseY) ? "up":"down";
     /*** End of added by Ong (4/21/03) ***/

     if (event.x >= 0 && event.x <= limitX &&
         event.y >= 0 && event.y <= limitY) {
       // mouse remains on map
       r.style.pixelLeft = minX;
       r.style.pixelTop = minY;
       r.style.width = maxX - minX;
       r.style.height =  maxY - minY;
      
       ic.style.zIndex = 99;
       ic.style.pixelLeft = mouseX + 10;
       ic.style.pixelTop = mouseY + 10;
     }

     // mainly for debugging purpose
     window.status = "offsetX = " + r.style.pixelLeft + 
                     " offsetY = " + r.style.pixelTop +
                     " width = " + r.style.width + 
                     " height = " + r.style.height;
    
     if ((maxY - minY) > 20) {
       r.style.borderWidth = 2;
       r.style.backgroundImage = "none";
     } else {
       r.style.borderWidth = 0;
       r.style.backgroundImage = "url(../framework/images/rubber.gif)";
     }
 
     clipLayer('rubberBand', 0, 0, maxX - minX, maxY - minY);
   }
   else if (navigator.appName == "Netscape") {
     var r = document.getElementById('rubberBand');
     var ic = document.getElementById('iconl');
     var map = document.getElementById('imap');
     var limitX = parseInt(map.style.width);  // to check whether mouse goes
     var limitY = parseInt(map.style.height); // outside map or not
     var offsetX = findPosX(map);
     var offsetY = findPosY(map);
     var mouseX = evt.clientX;
     var mouseY = evt.clientY;
     var minX = Math.min(originX, mouseX);    // compute min and max of x and y
     var minY = Math.min(originY, mouseY);
     var maxX = Math.max(originX, mouseX);
     var maxY = Math.max(originY, mouseY);

     /*** Added by Ong (4/21/03) ***/
     var dirX =  document.getElementById('DIRX');
         dirX.value = (originX > mouseX) ? 'left':'right';
     var dirY =  document.getElementById('DIRY');
         dirY.value = (originY > mouseY) ? 'up':'down';
     /*** End of added by Ong (4/21/03) ***/

     window.status = "Mozilla:" +
/*
                     " limitX = " + limitX +
                     " limitY = " + limitY +
                     " offsetX = " + offsetX + 
                     " offsetY = " + offsetY + 
                     " mouseX = " + mouseX + 
                     " mouseY = " + mouseY;
*/
                     " minx = " + minX +
                     " miny = " + minY +
                     " maxx = " + maxX + 
                     " maxy = " + maxY;

     if ((minX - offsetX) >= 0 && (maxX - offsetX) <= limitX &&
         (minY - offsetY) >= 0 && (maxY - offsetY) <= limitY) {
    // mouse remains on map
    // might be wrong
       r.style.left = minX + 'px';
       r.style.top = minY + 'px';
       r.style.width = maxX - minX;
       r.style.height =  maxY - minY;

       ic.style.zIndex = 99;
       ic.style.left = minX + 'px';
       ic.style.top = minY + 'px';
     }

/*
     window.status = "Mozilla: minx = " + r.style.top + 
                     " miny = " + r.style.top +
                     " width = " + r.style.width + 
                     " height = " + r.style.height;
*/
     if ((maxY - minY) > 20) {
       r.style.borderWidth = 2;
       r.style.backgroundImage = "none";
     } else {
       r.style.borderWidth = 0;
       r.style.backgroundImage = "url(../framework/images/rubber.gif)";
     }
   }
   else {

     // Not tested.

     var r = document.rubberBand;
     r.clip.width = evt.x - r.left;
     r.clip.height = evt.y - r.top;
     r.document.open();
     r.document.write('<TABLE WIDTH="' + r.clip.width + '" HEIGHT="' + 
       r.clip.height + '" BORDER="1"><TR><TD><\/TD><\/TR><\/TABLE>');     
     r.document.close();
   }
 }

 function stopRubber (evt) {
   var cmd = document.forms[0].cmdChecked.value;
   var mapSRID;

   if (document.forms[0].srid) {
     mapSRID = document.forms[0].srid.value;
   } else {
     mapSRID = -1;
   }
   
   if (cmd == 'PARCEL') {     //Mark Parcel
     numPoints++;

     var minx = document.forms[0].minx.value;
     var miny = document.forms[0].miny.value;
     var maxx = document.forms[0].maxx.value;
     var maxy = document.forms[0].maxy.value;
     var scrWidth = document.forms[0].imagewidth.value;
     var scrHeight = document.forms[0].imageheight.value;
     var mapWidth = Math.abs(minx - maxx);
     var mapHeight = Math.abs(miny - maxy);
     var theImg = document.forms[0].mainmap;
     var map = document.getElementById("imap");

     if (navigator.appName == "Microsoft Internet Explorer") {
      var geoCoor = unitConvert(evt.offsetX, evt.offsetY);
     }
     else if (navigator.appName == "Netscape") {
      var x = parseInt(evt.clientX) - findPosX(map)+
              parseInt(window.scrollX);
      var y = parseInt(evt.clientY) - findPosY(map)+
              parseInt(window.scrollY);
      var geoCoor = unitConvert(x,y);
     }
      
     var d, img, returnvalue;
     var dx, dy;
     dx = parseInt(evt.clientX);
     dy = parseInt(evt.clientY);
    
    returnvalue = true;
     window.status = "X:" + geoCoor[0] + ", Y:" + geoCoor[1];
     try {
       marker = new Image();
       marker.src = "images/red.gif";
       if (navigator.appName == "Microsoft Internet Explorer") {
         d = document.createElement("DIV");
         d.setAttribute("id", "frame" + numPoints);
         img = document.createElement("IMG");
         img.setAttribute("src", marker.src);
         img.setAttribute("id", "point" + numPoints);
         img.setAttribute("width", 5);
         img.setAttribute("height", 5);
         var offsetX = findPosX(map);     // abs x pos of map DIV
         var offsetY = findPosY(map);     // abs y pos of map DIV
         dx = offsetX + event.x;     // abs x pos of where mouse is clicked
         dy =  offsetY + event.y;    // abs y pos of where mouse is clicked
       } else if (navigator.appName == "Netscape") {
         d = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
         d.setAttribute("id", "frame" + numPoints);
         img = document.createElementNS("http://www.w3.org/1999/xhtml", "img");
         img.setAttribute("src", marker.src);
         img.setAttribute("id", "point" + numPoints);
         img.setAttribute("width", 5);
         img.setAttribute("height", 5);
         
         dx = parseInt(evt.clientX);
         dy = parseInt(evt.clientY);
       }
       d.appendChild(img);
       document.getElementsByTagName("body")[0].appendChild(d);
       var newD = document.getElementById("frame" + numPoints);
       newD.style.position = 'absolute';
       newD.style.left = dx - 1;
       newD.style.top = dy - 1;

       if (points) { // Not first point
         points = points + "," + geoCoor[0] + ' ' + geoCoor[1];
       } else { // First point
         points = geoCoor[0] + ' ' + geoCoor[1];

         // Initialize boundary variables
         lonmin = geoCoor[0];
         lonmax = geoCoor[0];
         latmin = geoCoor[1];
         latmax = geoCoor[1];
       }

       // Store the boundary points in latmin,lonmin,latmax & lonmax
       if (geoCoor[0] < lonmin) {
         lonmin = geoCoor[0];
       }
       if (geoCoor[1] < latmin) {
         latmin = geoCoor[1];
       }
       if (geoCoor[0] > lonmax) {
         lonmax = geoCoor[0];
       }
       if (geoCoor[1] > latmax) {
         latmax = geoCoor[1];
       }
       
     }
     catch(e) {
       returnvalue = false;
     }
     return returnvalue;
   }

   //alert('line 386 '+cmd);

   if (cmd == 'PARCEL_INFO') {  // Check if 'Parcel Information' is checked
     var minx = document.forms[0].minx.value;
     var miny = document.forms[0].miny.value;
     var maxx = document.forms[0].maxx.value;
     var maxy = document.forms[0].maxy.value;
     var scrWidth = document.forms[0].imagewidth.value;
     var scrHeight = document.forms[0].imageheight.value;
     var mapWidth = Math.abs(minx - maxx);
     var mapHeight = Math.abs(miny - maxy);
     var scaleX = mapWidth / scrWidth;
     var scaleY = mapHeight / scrHeight;
     var theImg = document.forms[0].mainmap;
     var map = document.getElementById("imap");

     var popupForm;

     if (navigator.appName == "Microsoft Internet Explorer") {
      var geoCoor = unitConvert(evt.offsetX, evt.offsetY);
     }
     else if (navigator.appName == "Netscape") {
      var x = parseInt(evt.clientX) - findPosX(map)+
              parseInt(window.scrollX);
      var y = parseInt(evt.clientY) - findPosY(map)+
              parseInt(window.scrollY);
      var geoCoor = unitConvert(x,y);
     }
     if (document.getElementById("parcelInfoForm"))
     {
       popupForm = document.getElementById("parcelInfoForm").value;
       window.open(popupForm+'?showOnMap=1&srid='+mapSRID+'&X='+geoCoor[0]+
       '&Y='+geoCoor[1]+'&scaleX='+scaleX+'&scaleY='+scaleY, null,
       'height=650,width=620,status=no,toolbar=no,scrollbars=yes,'+
       'resizable=yes');
     }
     return;
   } // end if (cmd=='PARCEL_INFO')
      
   if (cmd == 'POINT_INFO') { // Check if Point_info is checked

     //alert("line 427 har!har!");

     var mapID = '';

     if (document.forms[0].mapID) {
       mapID = document.forms[0].mapID.value;
     } 

     var minx = document.forms[0].minx.value;
     var miny = document.forms[0].miny.value;
     var maxx = document.forms[0].maxx.value;
     var maxy = document.forms[0].maxy.value;
     var scrWidth = document.forms[0].imagewidth.value;
     var scrHeight = document.forms[0].imageheight.value;
     var mapWidth = Math.abs(minx - maxx);
     var mapHeight = Math.abs(miny - maxy);
     var scaleX = mapWidth / scrWidth;
     var scaleY = mapHeight / scrHeight;
     var theImg = document.forms[0].mainmap;
     var map = document.getElementById("imap");

     var popupForm;

     if (navigator.appName == "Microsoft Internet Explorer") {
      var geoCoor = unitConvert(evt.offsetX, evt.offsetY);
     }
     else if (navigator.appName == "Netscape") {
      var x = parseInt(evt.clientX) - findPosX(map)+
              parseInt(window.scrollX);
      var y = parseInt(evt.clientY) - findPosY(map)+
              parseInt(window.scrollY);
      var geoCoor = unitConvert(x,y);
     }
     //alert('line 460 '+ document.getElementById("popupForm").value);
     if (document.getElementById("popupForm"))
     {
       popupForm = document.getElementById("popupForm").value;
       window.open(popupForm
        +'?showOnMap=1&srid='+mapSRID
        +'&X='+geoCoor[0]
        +'&Y='+geoCoor[1]
        +'&scaleX='+scaleX
        +'&scaleY='+scaleY
        +'&mapID='+mapID
        +'&s_oper_type=point_info'
        , null,
        'height=650,width=620,status=no,toolbar=no,scrollbars=yes,'
        +'resizable=yes');
     }
     return;
   }
   if (cmd == 'INSERT_POINT') { // Check if Add_Point is checked

     var minx = document.forms[0].minx.value;
     var miny = document.forms[0].miny.value;
     var maxx = document.forms[0].maxx.value;
     var maxy = document.forms[0].maxy.value;
     var scrWidth = document.forms[0].imagewidth.value;
     var scrHeight = document.forms[0].imageheight.value;
     var mapWidth = Math.abs(minx - maxx);
     var mapHeight = Math.abs(miny - maxy);
     var scaleX = mapWidth / scrWidth;
     var scaleY = mapHeight / scrHeight;
     var theImg = document.forms[0].mainmap;
     var map = document.getElementById("imap");

     
     if (navigator.appName == "Microsoft Internet Explorer") {
      var geoCoor = unitConvert(evt.offsetX, evt.offsetY);
     }
     else if (navigator.appName == "Netscape") {
      var x = parseInt(evt.clientX) - findPosX(map)+
              parseInt(window.scrollX);
      var y = parseInt(evt.clientY) - findPosY(map)+
              parseInt(window.scrollY);
      var geoCoor = unitConvert(x,y);
     }
     var addForm;
     if (document.getElementById("addForm")) {
       addForm = document.getElementById("addForm").value;
       window.open(addForm+'?showOnMap=1&srid='+mapSRID+'&X='+geoCoor[0]+
                 '&Y='+geoCoor[1]+'&scaleX='+scaleX+'&scaleY='+scaleY,
                 'insertPoint','height=650,width=620,status=no,toolbar=no,'+
                 'scrollbars=yes,resizable=yes');
     }
     return;
   }


   if (!started) return;  // if rubber band is not started return immediately
   started = false;
   var r_flag = document.getElementById("RFLAG");
   r_flag.value = 'moving';
   if (document.layers) {
     document.releaseEvents(Event.MOUSEMOVE);
   }
   document.onmousemove = null;
  
   // Hide rubberband on mouseup
   var rb = document.getElementById("rubberBand");
   rb.style.visibility = 'hidden';

   //Added by Dileep 07/14/2003
   //Check if 'Search By Area' is checked
   if (cmd == 'SEARCH_AREA') {
     var theImg = document.forms[0].mainmap;
     var map = document.getElementById("imap");

     // Get rubber band's final position
     var r = document.getElementById("rubberBand");
     x1 = parseInt(r.style.left) - findPosX(map);
     x2 = x1 + parseInt(r.style.width);
     y1 = parseInt(r.style.top) - findPosY(map);
     y2 = y1 + parseInt(r.style.height);
     var initCoor = unitConvert(x1, y1);
     var finalCoor = unitConvert(x2, y2);

     var searchForm;
     if (document.getElementById("searchForm")) {
       searchForm = document.getElementById("searchForm").value;
       var strURL = searchForm+'?showOnMap=1&srid='+mapSRID+'&x1='+initCoor[0]+
         '&y1='+initCoor[1]+'&x2='+finalCoor[0]+'&y2='+finalCoor[1];
       if (document.getElementById("initext")) {
         var initext = document.getElementById("initext").value;
         strURL = strURL + "&initext=" + initext;
       }
       if (document.getElementById("mapID")) {
         var mapID = document.getElementById("mapID").value;
         strURL = strURL + "&mapID=" + mapID;
       }
       window.open(strURL, 'searchByArea',
                 'height=650,width=620,status=no,'+
                 'toolbar=no,scrollbars=yes,resizable=yes');
     }
     return;
   }
   
   //Check if 'Download Map' is checked
   if (cmd == 'DOWNLOAD_MAP') {
     var theImg = document.forms[0].mainmap;
     var map = document.getElementById("imap");

     // Get rubber band's final position
     var r = document.getElementById("rubberBand");
     x1 = parseInt(r.style.left) - findPosX(map);
     x2 = x1 + parseInt(r.style.width);
     y1 = parseInt(r.style.top) - findPosY(map);
     y2 = y1 + parseInt(r.style.height);
     var initCoor = unitConvert(x1, y1);
     var finalCoor = unitConvert(x2, y2);

     var searchForm;
     if (document.getElementById("downloadForm")) {
       searchForm = document.getElementById("downloadForm").value;
       var strURL = searchForm+'?showOnMap=1&srid='+mapSRID+'&x1='+initCoor[0]+
         '&y1='+initCoor[1]+'&x2='+finalCoor[0]+'&y2='+finalCoor[1];
       if (document.getElementById("initext")) {
         var initext = document.getElementById("initext").value;
         strURL = strURL + "&initext=" + initext;
       }
       if (document.getElementById("mapID")) {
         var mapID = document.getElementById("mapID").value;
         strURL = strURL + "&mapID=" + mapID;
       }
       window.open(strURL, 'searchByArea',
                 'height=650,width=620,status=no,'+
                 'toolbar=no,scrollbars=yes,resizable=yes');
     }
     return;
   }
   
    var x1, x2, y1, y2;
   if (navigator.appName == "Microsoft Internet Explorer") {
     var r = document.all.rubberBand;
     var map = document.all.imap;

     // Get rubber band's final position
     x1 = parseInt(r.style.left) - findPosX(map);
     x2 = x1 + parseInt(r.style.width);
     y1 = parseInt(r.style.top) - findPosY(map);
     y2 = y1 + parseInt(r.style.height);

     // Set values of hidden fields so that map will zoom in to that area.
     var coord = document.all.INPUT_COORD;
     coord.value = x1 + "," + y1 + ";" + x2 + "," + y2 + "\n";
     var type = document.all.INPUT_TYPE;
     type.value = "auto_rect";

     // Mimic mouse click on map
     document.forms[0].submit();
   }
   else if (navigator.appName == "Netscape") { // For Mozilla
     var r = document.getElementById('rubberBand');
     var map = document.getElementById('imap');
     x1 = parseInt(r.style.left) - findPosX(map);
     x2 = x1 + parseInt(r.style.width);
     y1 = parseInt(r.style.top) - findPosY(map);
     y2 = y1 + parseInt(r.style.height);
     var coord = document.getElementById('INPUT_COORD');
     coord.value = x1 + "," + y1 + ";" + x2 + "," + y2 + "\n";
     var type = document.getElementById('INPUT_TYPE');
     type.value = "auto_rect";

     // Mimic mouse click on map
     document.forms[0].submit();
   }
   else {   // Netscape
     var r = document.rubberBand;
     x1 = r.left;
     x2 = r.left + r.clip.width;
     y1 = r.top;
     y2 = r.top + r.clip.height;
   }
 }

 // Following functions handle events when mouse is on rubber band DIV 
 // Idea is almost same as above functions.

 function moveRubberOnGIF (evt) {
   if (!started) return;

   if (navigator.appName == "Microsoft Internet Explorer") { // IE
     var r = document.all.rubberBand;
     var minX = Math.min(originX, event.x);
     var minY = Math.min(originY, event.y);
     var maxX = Math.max(originX, event.x);
     var maxY = Math.max(originY, event.y);
     r.style.pixelLeft = minX;
     r.style.pixelTop = minY;
     r.style.height = maxY - minY; 
     r.style.width = maxX - minX;
     r.style.height = maxY - minY; 
     window.status = "minx = " + r.style.pixelLeft + 
                     " miny = " + r.style.pixelTop +
                     " width = " + r.style.width + 
                     " height = " + r.style.height;
     clipLayer('rubberBand', 0, 0, maxX - minX, maxY - minY);
   }
   else if (navigator.appName == "Netscape") {               // Mozilla
     var r = document.getElementById('rubberBand');
     var offsetX = findPosX(r);
     var offsetY = findPosY(r);
     var mouseX = evt.clientX;
     var mouseY = evt.clientY;

     // compute min and max of x and y
     var minX = Math.min(originX, mouseX);
     var minY = Math.min(originY, mouseY);
     var maxX = Math.max(originX, mouseX);
     var maxY = Math.max(originY, mouseY);

     r.style.left = minX;
     r.style.top = minY;
     r.style.width = maxX - minX;
     r.style.height =  maxY - minY;

     window.status = "minx = " + r.style.top + 
                     " miny = " + r.style.top +
                     " width = " + r.style.width + 
                     " height = " + r.style.height;
   }
   else if (document.layers) {   // Netscape
     // Not tested.
     var r = document.rubberBand;
     r.clip.width = evt.x - r.left;
     r.clip.height = evt.y - r.top;
     r.document.open();
     r.document.write('<TABLE WIDTH="' + r.clip.width + '" HEIGHT="' + 
     r.clip.height + '" BORDER="1"><TR><TD><\/TD><\/TR><\/TABLE>');     
     r.document.close();
   }
 }

 function stopRubberOnGIF (evt) {
   if (!started) return;

   if (document.layers) {
     document.releaseEvents(Event.MOUSEMOVE);
   }
   document.onmousemove = null;

   var x1, x2, y1, y2;
   if (navigator.appName == "Microsoft Internet Explorer") { // IE
     var r = document.all.rubberBand;
     var map = document.all.imap;
     var offsetX = findPosX(map);
     var offsetY = findPosY(map);
     x1 = parseInt(r.style.left) - offsetX;
     y1 = parseInt(r.style.top) - offsetY;
     x2 = x1 + parseInt(r.style.width);
     y2 = y1 + parseInt(r.style.height);

     var coord = document.all.INPUT_COORD;
     coord.value = x1 + "," + y1 + ";" + x2 + "," + y2 + "\n";
     var type = document.all.INPUT_TYPE;
     type.value = "auto_rect";

     // Mimic mouse click on map
     document.forms[0].submit();
   }
   else if (navigator.appName == "Netscape") { // Mozilla
     var r = document.getElementById('rubberBand');
     var map = document.getElementById('imap');
     x1 = parseInt(r.style.left) - findPosX(map);
     x2 = x1 + parseInt(r.style.width);
     y1 = parseInt(r.style.top) - findPosY(map);
     y2 = y1 + parseInt(r.style.height);
     var coord = document.getElementById('INPUT_COORD');
     coord.value = x1 + "," + y1 + ";" + x2 + "," + y2 + "\n";
     var type = document.getElementById('INPUT_TYPE');
     type.value = "auto_rect";

     // Mimic mouse click on map
     document.forms[0].submit();
   }
   else if (document.layers) {   // Netscape

     // Not tested.

     var r = document.rubberBand;
     x1 = r.left;
     x2 = r.left + r.clip.width;
     y1 = r.top;
     y2 = r.top + r.clip.height;
   }
 }

  /*** Added by Ong (6/4/03) ***/
  function unitConvert(screenX, screenY)
  {
    var minx = document.forms[0].minx.value;
    var miny = document.forms[0].miny.value;
    var maxx = document.forms[0].maxx.value;
    var maxy = document.forms[0].maxy.value;
    var scrWidth = document.forms[0].imagewidth.value;
    var scrHeight = document.forms[0].imageheight.value;
    var mapWidth = Math.abs(minx - maxx);
    var mapHeight = Math.abs(miny - maxy);
    var scaleX = mapWidth / scrWidth;
    var scaleY = mapHeight / scrHeight;
    var deltaX = scrWidth - screenX;
    var deltaY = scrHeight - screenY;

    var mapX = (screenX * scaleX) + parseFloat(minx);
    var mapY = (deltaY * scaleX) + parseFloat(miny);

    mapUnit = new Array(mapX, mapY);

    return mapUnit;
  }
  /*** End of added by Ong (6/4/03) ***/

// clip layer display to clipleft, cliptip, clipright, clipbottom
function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {
//alert('hello');
  var layer = document.getElementById(name).style;
  if (layer != null) {
    if (navigator.appName == "Netscape") {                      // Netscape
      layer.clip.left   = clipleft;
      layer.clip.top    = cliptop;
      layer.clip.right  = clipright;
      layer.clip.bottom = clipbottom;
    } else if (navigator.appName == "Microsoft Internet Explorer") {                  // IE
      layer.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' +
                   clipbottom + ' ' + clipleft + ')';
    } else if (netscape6) {   // Netscape 6
      layer.clip = 'rect(' + cliptop + 'px ' + clipright + 'px ' + 
                   clipbottom + 'px ' + clipleft + 'px)';

    }
  }
}

