CoordinateControl = function (newId, newMapObject, newMapId)
{
  if (arguments.length > 0)
    this.init(newId, newMapObject, newMapId);
};

CoordinateControl.prototype = new Object();
CoordinateControl.constructor = CoordinateControl;
 
CoordinateControl.prototype.init = function (newId, newMapObject, newMapId)
{
  this.id = newId;

  if (newMapId!=null)
  {
    this.mapObject = OBJECT_MANAGER.getControl(newMapId);
    this.mapId = newMapId;
  }
  else
  {
    this.mapObject = newMapObject;
    this.mapId = newMapObject.id;
  }
  
  this.mapObject.coordConvControl = this;
  this.CoordConvConfig = new Object;
};

CoordinateControl.prototype.callback = function(data, pendingOperation)
{
  if (data != null)
  {
    switch (pendingOperation)
    {
      case 'CoordConvSP2LatLon':
        var LatDMS = this.dmsToStr(this.decdeg_to_dms(data['lat']));
        var LonDMS = this.dmsToStr(this.decdeg_to_dms(data['lon']));
        if (this.SP2LatLonCallback)
          this.SP2LatLonCallback(LatDMS,LonDMS);
        break;
    }
  }
};

CoordinateControl.prototype.decdeg_to_dms = function(dd)
{
  var D = Math.floor(dd);
  var dm = (dd-D) * 60;
  var M = Math.floor(dm);
  var S = (dm-M) * 60;
  var arr = new Array(D,M,S);
  return(arr);
};

CoordinateControl.prototype.dmsToStr = function(dmsArray)
{
  var str = dmsArray[0]+'&deg; '+dmsArray[1]+"' "+Math.floor(dmsArray[2]*100)/100+'"';
  return(str);
};
