MapQuest Advantage JavaScript API Reference Documentation

mqobjects.js

Summary

This file contains the bulk of the class that are used to communicate with the server.


Class Summary
MQAddress Contains information for geocoding and routing to and from addresses.
MQAuthentication  
MQAutoGeocodeCovSwitch Stores geocode coverage switching parameters.
MQAutoMapCovSwitch Stores map coverage switching parameters.
MQAutoRouteCovSwitch Stores route coverage switching parameters.
MQBaseDTStyle This is the base class for the DTStyle and DTStyleEx objects.
MQBestFit Calculates the best scale and center point of a map for the given set of features in the Session.
MQBestFitLL Calculates the best scale and center point of a map for the given collection Lat/Lngs.
MQCenter Centers a map based on a mouse click.
MQCenterLatLng Stores data to center the maps on a given point specified with a latitude/longitude point.
MQColorStyle Pen styles for Rectangle and Line primitives.
MQConstants Class that will contain all the constants for the js api.
MQCoordinateType Constants to specify the type of coordinate the primitives should use.
MQCorridorSearchCriteria Defines the criteria for a Corridor search.
MQCoverageStyle A collection of DTStyle objects.
MQDBLayerQuery Stores geocode coverage switching parameters.
MQDBLayerQueryCollection A collection of MQDBLayerQuery objects.
MQDistanceUnits Constants to specify the type of units to use when calculating distance.
MQDrawTrigger Constants for trigger Draw Triggers
MQDTCollection Contains a collection of display type codes.
MQDTFeatureStyleEx Contains the appearance characteristics of all features for a given display type.
MQDTStyle Contains the appearance characteristics of all features for a given display type.
MQDTStyleEx This is the base class for the DTStyle and DTStyleEx objects.
MQEllipsePrimitive Describes circle annotations to be placed on the map.
MQErrors  
MQFeature  
MQFeatureCollection A collection of Feature objects.
MQFeatureSpeciferAttributeType Constants for the attribute type of a FeatureSpecifier object.
MQFeatureSpecifier Describes FeatureSpecifier annotations to be placed on the map.
MQFeatureSpecifierCollection A collection of MQFeatureSpecifier objects.
MQFillStyle Pen styles for Rectangle and Line primitives.
MQFontStyle Constants for the font style in a DTStyle.
MQGeoAddress Contains the results of geocoding an address.
MQGeocodeOptions Class for specifying geocode parameters.
MQGeocodeOptionsCollection A collection of MQGeocodeOptions objects.
MQIntCollection Contains a collection of ints.
MQLineFeature  
MQLinePrimitive Describes linear annotations to be placed on the map.
MQLocation Contains properties common to MQAddress objects.
MQLocationCollection Contains a collection of Location objects, usually Geocode results.
MQLocationCollectionCollection Contains a collection of Location Collection objects, usually Batch Geocode results.
MQManeuver This object will hold each maneuver of a trekroute returned from a route.
MQManeuverCollection A collection of Maneuver objects which are used to annotate the map.
MQMapCommand Allows actions (such as panning, zooming in, and zooming out) to be performed on a map.
MQMapState Defines the characteristics of a map.
MQMatchType Constants for the symbol type in a DTStyle.
MQNarrativeType Constants to specify the type of route wanted.
MQPan Stores data to center the map on a given point without changing its scale.
MQPenStyle Pen styles for Rectangle and Line primitives.
MQPointCollection A collection of Point objects.
MQPointFeature  
MQPolygonFeature  
MQPolygonPrimitive Describes polygons to be placed on a map.
MQPolySearchCriteria Defines the criteria for a poly search based on a collection of MQLatLngs
MQPrimitive The base class for drawing objects that can be added to the map.
MQPrimitiveCollection A collection of Primitive objects which are used to annotate the map.
MQQualityType Constants for the symbol type in a DTStyle.
MQRadiusSearchCriteria Defines the criteria for a radius search.
MQRecordSet Class for retrieving record attribute information.
MQRectanglePrimitive Describes linear annotations to be placed on the map.
MQRectSearchCriteria Defines the criteria for a rectangle search.
MQRouteMatrixResults Contains the results of a route matrix request.
MQRouteMatrixResultsCode Constants to specify the type of route result.
MQRouteOptions This class is used to set various options that will affect the type of route result returned from the DoRoute function.
MQRouteResults Contains the results of a routing request.
MQRouteResultsCode Constants to specify the type of route result.
MQRouteType Constants to specify the type of route wanted.
MQSearchCriteria Base class to define the criteria for a search.
MQSession Uniquely identifies a MQSession.
MQSign Contains information for geocoding and routing to and from addresses.
MQSignCollection A collection of Sign objects.
MQSingleLineAddress Contains information for Singleline geocoding and routing to and from addresses.
MQStrColCollection Contains a collection of StringCollections.
MQStringCollection Contains a collection of ints.
MQSymbolPrimitive Describes a SymbolPrimitive to be placed on a map.
MQSymbolType Constants for the symbol type in a DTStyle.
MQTextPrimitive Describes text to be placed on the map.
MQTrekRoute This object will hold each maneuver of a trekroute returned from a route.
MQTrekRouteCollection A collection of TrekRoute objects which are used to annotate the map.
MQType Base Type to encapsulate any common functions of the enum type pattern objects.
MQZoomIn Stores data to zoom in one level and center the map on a given point.
MQZoomOut Stores data to zoom out one level and center the map on a given point.
MQZoomTo Stores data to zoom out one level and center the map on a given point.
MQZoomToRect Stores data to zoom to a rectangle specified with pixel coordinates.
MQZoomToRectLatLng Stores data to zoom to a rectangle specified with latitude/longitude points.

Method Summary
static Boolean mqIsClass(strClassName, newObj, allowNull)
           Utility function to wrap null and class type errors
static void MQXmlNodeObject( strName, strValue )
          

try{
   var testCommons = new MQObject();
   testCommons = null;
}catch(error){
   throw "You must include mqcommon.js or toolkit api script prior to mqobjects.js.";
}
/**
 * @fileoverview This file contains the bulk of the class that are used to communicate
 * with the server.
 */
// utility function to wrap null and class type
/**
 * Utility function to wrap null and class type errors
 * @type Boolean
 * @throws InvalidClassException This will throw an exception if the newObj is not the same type as
 * this object.
 * @throws NullPointerException This will throw an exception if the newObj is null and the allowNull
 * is false.
 */
function mqIsClass(strClassName, newObj, allowNull){
   if (newObj!==null){
      try{
         newObj.getClassName();
      } catch (error){
         throw "InvalidClassException";// " This class is not of type " + strClassName;
      }
      if(newObj.getClassName()===strClassName){
         return true;
      } else {
         throw "InvalidClassException";// " This class " + newObj.getClassName() + " is not of type " + strClassName;
      }
   } else if(allowNull) {
      return true;
   }
   throw "NullPointerException";// " This class is not allowed to be set to null";
};
// Begin class MQCONSTANTS
/**
 * Constructs a new MQConstants object.
 * @class Class that will contain all the constants for the
 * js api.
 *
 */
function MQConstants(){
   /**
    * Constant to hold a value for MQDistanceUnits<br>
    * MILES = 0
    * @type int
    */
   this.MQDISTANCEUNITS_MILES = 0;
   /**
    * Constant to hold a value for MQDistanceUnits<br>
    * KILOMETERS = 1
    * @type int
    */
   this.MQDISTANCEUNITS_KILOMETERS = 1;
   /**
    * Constant to hold value for radians conversion<br>
    * RADIANS = 0.01745329251994
    * @type Double
    */
   this.MQLATLNG_RADIANS = 0.01745329251994;
   /**
    * Constant to hold a value for validation check<br>
    * INVALID = 314159.265358
    * @type Double
    */
   this.MQLATLNG_INVALID = 314159.265358;
   /**
    * Constant to hold a value for validation check<br>
    * TOLERANCE = 314159.265358
    * @type Double
    */
   this.MQLATLNG_TOLERANCE = 0.000001;
   /**
    * Constant to hold a value for validation check<br>
    * INVALID = 32767
    * @type int
    */
   this.MQPOINT_INVALID = 32767;
   /**
    * Constant to hold a value for PI<br>
    * PI   = 3.14159265358979323846
    * @type Double
    */
   this.PI = 3.14159265358979323846;
   /**
    * Constant to hold a value for MQSearchCriteria<br>
    * MILES_PER_DEGREE_LAT = 68.9
    * @type Double
    */
   this.MQSEARCHCRITERIA_MILES_PER_DEGREE_LAT = 68.9;
   /**
    * Constant to hold a value for MQSearchCriteria<br>
    * DEGREES_LAT_PER_MILE = ( 1 / this.MILES_PER_DEGREE_LAT )
    * @type Double
    */
   this.MQSEARCHCRITERIA_DEGREES_LAT_PER_MILE = ( 1 / this.MQSEARCHCRITERIA_MILES_PER_DEGREE_LAT );
   /**
    * Constant to hold a value for calculations<br>
    * MILES_PER_LATITUDE = 69.170976
    * @type Double
    */
   this.DISTANCEAPPROX_MILES_PER_LATITUDE = 69.170976;
   /**
    * Constant to hold a value for calculations<br>
    * KILOMETERS_PER_MILE = 1.609347
    * @type Double
    */
   this.DISTANCEAPPROX_KILOMETERS_PER_MILE = 1.609347;
   /**
    * Constant to validate MQRouteTypes <br>
    * FASTEST = 0
    * @type int
    */
   this.MQROUTETYPE_FASTEST = 0;
   /**
    * Constant to validate MQRouteTypes <br>
    * SHORTEST = 1
    * @type int
    */
   this.MQROUTETYPE_SHORTEST = 1;
   /**
    * Constant to validate MQRouteTypes <br>
    * PEDESTRIAN = 2
    * @type int
    */
   this.MQROUTETYPE_PEDESTRIAN = 2;
   /**
    * Constant to validate MQRouteTypes <br>
    * OPTIMIZED = 3
    * @type int
    */
   this.MQROUTETYPE_OPTIMIZED = 3;
   /**
    * Constant to validate MQRouteTypes <br>
    * SELECT_DATASET_ONLY = 4
    * @type int
    */
   this.MQROUTETYPE_SELECT_DATASET_ONLY = 4;
   /**
    * Constant to validate MQNarrativeTypes <br>
    * DEFAULT = 0
    * @type int
    */
   this.MQNARRATIVETYPE_DEFAULT  = 0;
   /**
    * Constant to validate MQNarrativeTypes <br>
    * HTML = 1
    * @type int
    */
   this.MQNARRATIVETYPE_HTML = 1;
   /**
    * Constant to validate MQNarrativeTypes <br>
    * NONE = -1
    * @type int
    */
   this.MQNARRATIVETYPE_NONE = -1;
   /**
    * Constant for MQRouteOptions <br>
    * @type String
    */
   this.MQROUTEOPTIONS_AVOID_ATTRIBUTE_LIMITED_ACCESS = "Limited Access";
   /**
    * Constant for MQRouteOptions <br>
    * @type String
    */
   this.MQROUTEOPTIONS_AVOID_ATTRIBUTE_TOLL_ROAD = "Toll Road";
   /**
    * Constant for MQRouteOptions <br>
    * @type String
    */
   this.MQROUTEOPTIONS_AVOID_ATTRIBUTE_FERRY = "Ferry";
   /**
    * Constant for MQRouteOptions <br>
    * @type String
    */
   this.MQROUTEOPTIONS_AVOID_ATTRIBUTE_UNPAVED_ROAD = "Unpaved";
   /**
    * Constant for MQRouteOptions <br>
    * @type String
    */
   this.MQROUTEOPTIONS_AVOID_ATTRIBUTE_SEASONAL = "Approximate seasonal closure";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_ENGLISH = "English";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_FRENCH = "French";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_GERMAN = "German";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_ITALIAN = "Italian";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_SPANISH = "Spanish";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_DANISH = "Danish";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_DUTCH = "Dutch";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_NORWEGIAN = "Norwegian";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_SWEDISH = "Swedish";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_IBERIAN_SPANISH = "Iberian Spanish";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_BRITISH_ENGLISH = "British English";
   /**
    * Constant for MQRouteOption Language <br>
    * @type String
    */
   this.MQROUTEOPTIONS_LANGUAGE_IBERIAN_PORTUGUESE ="Iberian Portuguese";
   /**
    * Constant for MQRouteResultsCode type validation <br>
    * @type int
    */
   this.MQROUTERESULTSCODE_NOT_SPECIFIED    = -1;
   /**
    * Constant for MQRouteResultsCode type validation <br>
    * @type int
    */
   this.MQROUTERESULTSCODE_SUCCESS          = 0;
   /**
    * Constant for MQRouteResultsCode type validation <br>
    * @type int
    */
   this.MQROUTERESULTSCODE_INVALID_LOCATION = 1;
   /**
    * Constant for MQRouteResultsCode type validation <br>
    * @type int
    */
   this.MQROUTERESULTSCODE_ROUTE_FAILURE    = 2;
   /**
    * Constant for MQRouteResultsCode type validation <br>
    * @type int
    */
   this.MQROUTERESULTSCODE_NO_DATASET_FOUND = 3;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_NOT_SPECIFIED          = -1;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_SUCCESS                = 0;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_INVALID_LOCATION       = 1;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_ROUTE_FAILURE          = 2;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_NO_DATASET_FOUND       = 3;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_INVALID_OPTION         = 4;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_PARTIAL_SUCCESS        = 5;
   /**
    * Constant for MQRouteMatrixResultsCode type validation <br>
    * @type int
    */
   this.MQROUTEMATRIXRESULTSCODE_EXCEEDED_MAX_LOCATIONS = 6;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_NULL       = 0;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_NORTH      = 1;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_NORTH_WEST = 2;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_NORTH_EAST = 3;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_SOUTH      = 4;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_SOUTH_EAST = 5;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_SOUTH_WEST = 6;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_WEST       = 7;
   /**
    * Constant for MQManeuver heading values <br>
    * @type int
    */
   this.MQMANEUVER_HEADING_EAST       = 8;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_STRAIGHT       = 0;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_SLIGHT_RIGHT   = 1;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_RIGHT          = 2;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_SHARP_RIGHT    = 3;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_REVERSE        = 4;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_SHARP_LEFT     = 5;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_LEFT           = 6;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_SLIGHT_LEFT    = 7;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_RIGHT_UTURN    = 8;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_LEFT_UTURN     = 9;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_RIGHT_MERGE    = 10;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_LEFT_MERGE     = 11;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_RIGHT_ON_RAMP  = 12;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_LEFT_ON_RAMP   = 13;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_RIGHT_OFF_RAMP = 14;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_LEFT_OFF_RAMP  = 15;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_RIGHT_FORK     = 16;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_LEFT_FORK      = 17;
   /**
    * Constant for MQManeuver turning values <br>
    * @type int
    */
   this.MQMANEUVER_TURN_TYPE_STRAIGHT_FORK  = 18;
   /**
    * Constant for MQManeuver attribute values <br>
    * @type int
    */
   this.MQMANEUVER_ATTRIBUTE_PORTIONS_TOLL                  = 1;
   /**
    * Constant for MQManeuver attribute values <br>
    * @type int
    */
   this.MQMANEUVER_ATTRIBUTE_PORTIONS_UNPAVED               = 2;
   /**
    * Constant for MQManeuver attribute values <br>
    * @type int
    */
   this.MQMANEUVER_ATTRIBUTE_POSSIBLE_SEASONAL_ROAD_CLOSURE = 4;
   /**
    * Constant for MQManeuver attribute values <br>
    * @type int
    */
   this.MQMANEUVER_ATTRIBUTE_GATE                           = 8;
   /**
    * Constant for MQManeuver attribute values <br>
    * @type int
    */
   this.MQMANEUVER_ATTRIBUTE_FERRY                          = 16;
   /**
    * Constant for MQCoordinateType attribute values <br>
    * @type int
    */
   this.MQCOORDINATETYPE_GEOGRAPHIC = 1;
   /**
    * Constant for MQCoordinateType attribute values <br>
    * @type int
    */
   this.MQCOORDINATETYPE_DISPLAY = 2;
   /**
    * Constant for MQDrawTrigger attribute values <br>
    * @type int
    */
   this.MQDRAWTRIGGER_BEFORE_POLYGONS        = 3585;
   /**
    * Constant for MQDrawTrigger attribute values <br>
    * @type int
    */
   this.MQDRAWTRIGGER_AFTER_POLYGONS         = 3586;
   /**
    * Constant for MQDrawTrigger attribute values <br>
    * @type int
    */
   this.MQDRAWTRIGGER_BEFORE_TEXT            = 3588;
   /**
    * Constant for MQDrawTrigger attribute values <br>
    * @type int
    */
   this.MQDRAWTRIGGER_AFTER_TEXT             = 3618;
   /**
    * Constant for MQDrawTrigger attribute values <br>
    * @type int
    */
   this.MQDRAWTRIGGER_BEFORE_ROUTE_HIGHLIGHT = 3616;
   /**
    * Constant for MQDrawTrigger attribute values <br>
    * @type int
    */
   this.MQDRAWTRIGGER_AFTER_ROUTE_HIGHLIGHT  = 3617;
   /**
    * Constant for MQPenStyle attribute values
    * @type int
    */
   this.MQPENSTYLE_SOLID        = 0;
   /**
    * Constant for MQPenStyle attribute values
    * @type int
    */
   this.MQPENSTYLE_DASH         = 1;
   /**
    * Constant for MQPenStyle attribute values
    * @type int
    */
   this.MQPENSTYLE_DOT          = 2;
   /**
    * Constant for MQPenStyle attribute values
    * @type int
    */
   this.MQPENSTYLE_DASH_DOT     = 3;
   /**
    * Constant for MQPenStyle attribute values
    * @type int
    */
   this.MQPENSTYLE_DASH_DOT_DOT = 4;
   /**
    * Constant for MQPenStyle attribute values
    * @type int
    */
   this.MQPENSTYLE_NONE         = 5;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_INVALID    = 0xffffffff;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_BLACK      = 0;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_BLUE       = 16711680;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_CYAN       = 16776960;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_DARK_GRAY  = 4210752;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_GRAY       = 8421504;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_GREEN      = 65280;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_LIGHT_GRAY = 12632256;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_MAGENTA    = 16711935;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_ORANGE     = 51455;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_PINK       = 11513855;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_RED        = 255;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_WHITE      = 16777215;
   /**
    * Constant for MQColorStyle attribute values
    * @type int
    */
   this.MQCOLORSTYLE_YELLOW     = 65535;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_SOLID       = 0;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_BDIAGONAL   = 1;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_CROSS       = 2;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_DIAG_CROSS  = 3;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_FDIAGONAL   = 4;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_HORIZONTAL  = 5;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_VERTICAL    = 6;
   /**
    * Constant for MQFillStyle attribute values
    * @type int
    */
   this.MQFILLSTYLE_NONE        = 7;
   /**
    * Constant for MQSymbolType attribute values
    * @type int
    */
   this.MQSYMBOLTYPE_RASTER = 0;
   /**
    * Constant for MQSymbolType attribute values
    * @type int
    */
   this.MQSYMBOLTYPE_VECTOR = 1;
   /**
    * Constant for TextAlignment attribute values
    * @type int
    * @see MQTextPrimitive
    */
   this.MQTEXTALIGNMENT_CENTER     = 1;
   /**
    * Constant for TextAlignment attribute values
    * @type int
    * @see MQTextPrimitive
    */
   this.MQTEXTALIGNMENT_LEFT       = 2;
   /**
    * Constant for TextAlignment attribute values
    * @type int
    * @see MQTextPrimitive
    */
   this.MQTEXTALIGNMENT_RIGHT      = 4;
   /**
    * Constant for TextAlignment attribute values
    * @type int
    * @see MQTextPrimitive
    */
   this.MQTEXTALIGNMENT_BASELINE   = 8;
   /**
    * Constant for TextAlignment attribute values
    * @type int
    * @see MQTextPrimitive
    */
   this.MQTEXTALIGNMENT_BOTTOM     = 16;
   /**
    * Constant for TextAlignment attribute values
    * @type int
    * @see MQTextPrimitive
    */
   this.MQTEXTALIGNMENT_TOP        = 32;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_INVALID    = -1;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_NORMAL     = 0;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_BOLD       = 1;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_BOXED      = 2;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_OUTLINED   = 4;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_ITALICS    = 8;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_UNDERLINE  = 16;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_STRIKEOUT  = 32;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_THIN       = 64;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_SEMIBOLD   = 128;
   /**
    * Constant for MQFontStyle attribute values
    * @type int
    */
   this.MQFONTSTYLE_MAX_VALUE  = 256;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_DT_NULL = 65532; // Null DT (meaning no DT specified)
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_ROAD              =  0;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_LINE              =  1;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_POLYGON           =  2;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_POINT             =  3;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_POI               =  4;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_SEED              =  5;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_DISPLAYLIST       =  6;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_APP               =  7;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_CT_XA                =  8;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_BT_LINE              =  0;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_BT_POLYGON           =  1;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_BT_POINT             =  2;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_BT_OTHER             =  3;
   /**
    * Constant for MQBaseDTStyle attribute values
    * @type int
    */
   this.MQBASEDTSTYLE_BT_XA                =  4;
   /**
    * Constant for MQFeatureSpeciferAttributeType attribute values
    * @type int
    */
   this.MQFEATURESPECIFERATTRIBUTETYPE_GEFID       = 0;
   /**
    * Constant for MQFeatureSpeciferAttributeType attribute values
    * @type int
    */
   this.MQFEATURESPECIFERATTRIBUTETYPE_NAME        = 1;
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_LOC        = 0;  // Location
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_INTR       = 1;  // Intersection
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_NEARBLK    = 2;  // Block - Nearest numbered
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_REPBLK     = 3;  // Block - Representative (Centroid)
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_BLOCK      = 4;  // Block
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA1        = 5;  // Admin - Country
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA2        = 6;  // Admin - Division
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA3        = 7;  // Admin - State
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA4        = 8;  // Admin - County
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA5        = 9;  // Admin - City
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA6        = 10; // Admin - Division (rarely used)
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_AA7        = 11; // Admin - smallest division (rarely used)
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_PC1        = 12; // Postal - Zip
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_PC2        = 13; // Postal -
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_PC3        = 14; // Postal -
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_PC4        = 15; // Postal -
   /**
    * Constant for MQMatchType attribute values
    * @type int
    */
   this.MQMATCHTYPE_POI        = 16; // POI
   /**
    * Constant for MQQualityType attribute values
    * @type int
    */
   this.MQQUALITYTYPE_EXACT  = 0;  // Exact
   /**
    * Constant for MQQualityType attribute values
    * @type int
    */
   this.MQQUALITYTYPE_GOOD   = 1;  // Good
   /**
    * Constant for MQQualityType attribute values
    * @type int
    */
   this.MQQUALITYTYPE_APPROX = 2;  // Approximate
}
var MQCONSTANT = new MQConstants();
// End class MQCONSTANTS

// Begin class MQERRORS
function MQErrors(){
   /** @type String
    */
   this.RECORDSET_GETFIELD_1 = "failure in getField -- m_curRec is not Pointing to an existing Record";
   /** @type String
    */
   this.RECORDSET_GETFIELD_2 = "failure in getField -- could not find strFieldName";
   /** @type String
    */
   this.RECORDSET_MOVEFIRST_1 = "failure in moveFirst -- Error Moving Cursor, RecordSet is Empty.";
   /** @type String
    */
   this.RECORDSET_MOVELAST_1 = "Error Moving Cursor, RecordSet is Empty.";
   /** @type String
    */
   this.RECORDSET_MOVENEXT_1 = "Error Moving Cursor, EOF was true.";
   /** @type String
    */
   this.RECORDSET_MOVENEXT_2 = "Error Moving Cursor, Unknown Error.";
   /** @type String
    */
   this.RECORDSET_MOVENEXT_3 = "Error Moving Cursor, RecordSet is Empty.";
}
var MQERROR = new MQErrors();
// End class MQERRORS

// Begin Class MQSign
/* Inheirit from MQObject */
MQSign.prototype = new MQObject();
MQSign.prototype.constructor = MQSign;
/**
 * Constructs a new MQSign object.
 * @class Contains information for geocoding and routing to and from
 * addresses.
 * @extends MQObject
 */
function MQSign () {
   MQObject.call(this);
   this.setM_Xpath("Sign");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSIGN()));
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQSign.prototype.getClassName = function(){
      return "MQSign";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSign.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQSign.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {XML Node} node of the document.
    * @type void
    * @private
    */
   MQSign.prototype.loadXmlFromNode = function (node) {
      this.setM_XmlDoc(mqCreateXMLDocImportNode(node));
   };

   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQSign.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    *   initializes the object to its defaults.
    */
   MQSign.prototype.clear = function (){
      this.setType(0);
      this.setText("");
      this.setExtraText("");
      this.setDirection(MQCONSTANT.MQMANEUVER_HEADING_NULL);
   };
   /**
     * Sets Type.
     * @param {int} type The Type
     * @type void
     */
   MQSign.prototype.setType = function(type){
      this.setProperty("Type",type);
   };
   /**
    * Returns the type.
    *
    * <pre>
    * LIST OF VALUES:
    *    0    No sign
    *
    *    United States Road Shield Tokens
    *    1    Interstate
    *    2    US Highway
    *    3    State Route
    *    4    County Route / Parish Route
    *    5    Interstate Business
    *    10   Farm to Market (FM)
    *    11   Bureau of Indian Affairs (BIA)
    *
    *    Puerto Rico Road Shield Tokens
    *    15   Carr
    *    16   Carretera
    *
    *    US Virgin Islands Road Shield Tokens
    *    19   National Roads
    *
    *    Canada Road Shield Tokens
    *    20   Trans Canada Highway
    *    21   Autoroute
    *    22   Primary Provincial Route
    *    23   Provincial Secondary Route
    *    24   District Route / Regional Route
    *    25   Yellowhead Highway
    *
    *    United Kingdom Road Shield Tokens
    *    30   Motorway / M Road
    *    31   National / A Road
    *    33   Regional / B Road
    *    34   C Road
    *
    *    Brazil Road Shield Tokens
    *    35  National
    *    36  State
    *
    *    Mexico Road Shield Tokens
    *    40   Federal Route
    *    41   Route Type 2
    *    42   State Route
    *
    *    Argentina Road Shield Tokens
    *    45  National
    *    46  Provincial
    *
    *    European Road Shield Tokens
    *    50   European / E Road
    *
    *    Andorra Road Shield Tokens
    *    52   Carretera General
    *    53   Carretera Secundaria
    *
    *    Austria Road Shield Tokens
    *    55   Autobahnen
    *    56   Schnellstrassen
    *    57   Bundersstrassen
    *    58   Landestrassen / Bezirkstrassen / Privatstrassen des Bundes
    *
    *    Belgium Road Shield Tokens
    *    60   Autosnelwegen
    *    61   Gewestwegen
    *    62   Bretelles / Ring / Regionaalwegen
    *
    *    Denmark Road Shield Tokens
    *    65   Primaerrute
    *    66   Sekendaerrute
    *
    *    Finland Road Shield Tokens
    *    70   Valtatie
    *    71   Kantatie
    *    72   Seututie
    *    73   Muun Yleisen Tie
    *
    *    France / Monaco Road Shield Tokens
    *    75   Autoroutes
    *    76   Routes Nationales
    *    77   Departmentale Strategique / Routes Departmentales
    *    78   Voie Communale, Chemin Rural / Vicinal / Communal
    *    79   Local
    *
    *    Germany Road Shield Tokens
    *    80   Autobahnen
    *    81   Bundesstrassen
    *
    *    Italy / San Marino / Vatican City State Road Shield Tokens
    *    90   Autostrada
    *    91   Strada Statale
    *    92   Strada Provinciale / Strada Regionale
    *
    *    Luxembourg Road Shield Tokens
    *    95   Autoroute A
    *    96   Routes Nationales
    *    97   Chemins Repris
    *    98   Autoroute B
    *
    *    The Netherlands (Holland) Road Shield Tokens
    *    100  Autosnelwegen
    *    101  Nationale wegen
    *    102  Stadsroutenummmers
    *
    *    Norway Road Shield Tokens
    *    105  Riksveg
    *    106  Fylkeveg
    *
    *    Portugal Road Shield Tokens
    *    110  Autostrada
    *    111  Itinerario Principal
    *    112  Itinerario Complementar
    *    113  Estrada Nacional
    *    114  Estrada Municipal
    *
    *    Spain Road Shield Tokens
    *    115  Autopista
    *    116  Nacional
    *    117  Autonomica 1st order
    *    118  Autonomica 2nd order / Autonomica Local
    *    119  Autonomica Local
    *
    *    Sweden Road Shield Tokens
    *    120  Riksvag
    *    121  Lansvag
    *
    *    Switzerland / Liechtenstein Road Shield Tokens
    *    125  Autostrassen
    *    126  Haupstrassen
    *
    *    Czech Republic Road Shield Tokens
    *    130  Dalnice
    *    131  Silnice
    *
    *    Greece Road Shield Tokens
    *    140  National Roads
    *
    *    Hungary Road Shield Tokens
    *    150  Autopalya (Motorways)
    *    151  Orszagut (Country Roads)
    *
    *    Bosnia and Herzegovina Road Shield Tokens
    *    152  Autoput
    *    153  Magistralni Put
    *    154  Regionalni Put
    *
    *    Estonia Road Shield Tokens
    *    155  Pohimaantee  (Motorway)
    *    156  Tugimaantee  (National)
    *    157  Korvalmaantee (Regional)
    *
    *    Poland Road Shield Tokens
    *    160  Autostrada (Motorways
    *    161  Drogo Ekspresowa (Expressway)
    *    162  Drogo Krajowa (National Road)
    *    163  Drogo Wojewodzka (Regional Road)
    *
    *    Latvia Road Shield Tokens
    *    165  Galvenie Autoceii (Motorway)
    *    166  Skiras Autoceii  (1st class road)
    *    167  Skiras Autoceii  (2nd class road)
    *
    *    Bulgaria Road Shield Tokens
    *    168 Magistrala (Motorway)
    *    169 Put (National Road)
    *
    *    Slovak Republic Road Shield Tokens
    *    170  Dialnice
    *    171  Cesty
    *
    *    Albania Road Shield Tokens
    *    172  Route Type 2
    *    173  Route Type 3
    *
    *    Lithuania Road Shield Tokens
    *    175  Magistraliniai Keliai
    *    176  Krasto Keliai
    *    177  Rajoniniai Keliai
    *
    *    Slovenia Road Shield Tokens
    *    180  Avtocesta
    *    181  Hitra Cesta
    *    182  Glavna Cesta
    *    183  Regionalna Cesta
    *
    *    Croatia Road Shield Tokens
    *    185  Autocesta
    *    186  Drzavna
    *    187  Zupanijska Cesta
    *
    *    Romania Road Shield Tokens
    *    190  Class 2 (A1, A2)
    *    191  Class 3
    *    192  Class 4
    *
    *    United Arab Emirates Road Shield Tokens
    *    200  Federal
    *    201  Emirate
    *
    *    Oman Road Shield Tokens
    *    205  Class 1
    *    206  Class 2
    *
    *    Bahrain Road Shield Tokens
    *    208  Highway Class 2
    *
    *    Kuwait Road Shield Tokens
    *    210  Ring Road
    *    211  2 Digit State Route
    *
    *    Saudi Arabia Road Shield Tokens
    *    212  Class 1
    *    213  Class 2
    *    214  Class 3
    *
    *    Hong Kong Road Shield Tokens
    *    215  Highway
    *
    *    Taiwan Road Shield Tokens
    *    220  National Freeway
    *    221  Provincial Highway
    *    222  County Highway
    *
    *    Singapore Road Shield Tokens
    *    225  Level 1 Roads
    *    226  Level 3 Roads
    *
    *    Malaysia Road Shield Tokens
    *    230  Level 1 Roads
    *    231  Level 3 Roads
    *
    *    Autralia Road Shield Tokens
    *    235  Freeway
    *    236  Highway/ National
    *    237  State
    *
    *    New Zealand Road Shield Tokens
    *    240  State
    *
    *    South Africa Road Shield Tokens
    *    245  National
    *    246  Regional
    *    247  Metro
    *
    *    Exit sign information
    *    1001 Exit number
    * </pre>
    *
     * @return The Type
     * @type int
     */
   MQSign.prototype.getType = function(){
      return this.getProperty("Type");
   };
   /**
     * Sets Text.
     * @param {String} text The Text
     * @type void
     */
   MQSign.prototype.setText = function(text){
      this.setProperty("Text",text);
   };
   /**
     * Gets Text.
     * @return The Text
     * @type String
     */
   MQSign.prototype.getText = function(){
      return this.getProperty("Text");
   };
   /**
     * Sets ExtraText.
     * @param {String} extraText The ExtraText
     * @type void
     */
   MQSign.prototype.setExtraText = function(extraText){
      this.setProperty("ExtraText",extraText);
   };
   /**
     * Gets ExtraText.
     * @return The ExtraText
     * @type String
     */
   MQSign.prototype.getExtraText = function(){
      return this.getProperty("ExtraText");
   };
   /**
     * Sets Direction.
     * @param {Long} direction The Direction
     * @type void
     */
   MQSign.prototype.setDirection = function(direction){
      this.setProperty("Direction",direction);
   };
   /**
     * Gets Direction.
     * @return The Direction
     * @type Long
     */
   MQSign.prototype.getDirection = function(){
      return this.getProperty("Direction");
   };
// End class MQSign

// Begin class MQFeature
/* Inheirit from MQFeature */
MQFeature.prototype = new MQObject();
MQFeature.prototype.constructor = MQFeature;
/**
 * Constructs a new MQFeature object.
 * @class
 * @extends MQObject
 * @see MQPointFeature
 * @see MQPolygonFeature
 * @see MQLineFeature
 */
function MQFeature () {
   MQObject.call(this);
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQFeature.prototype.getClassName = function(){
      return "MQFeature";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFeature.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
     * Gets Distance.
     * @return The Distance value
     * @type String
     */
   MQFeature.prototype.getDistance = function(){
      return this.getProperty("Distance");
   };
   /**
     * Sets Distance.
     * @param {Double} dblDistance The Distance value
     * @type void
     */
   MQFeature.prototype.setDistance = function(dblDistance){
      this.setProperty("Distance",dblDistance);
   };
   /**
     * Gets name.
     * @return The name value
     * @type String
     */
   MQFeature.prototype.getName = function(){
      return this.getProperty("Name");
   };
   /**
     * Sets name.
     * @param {String} strName The name value
     * @type void
     */
   MQFeature.prototype.setName = function(strName){
      this.setProperty("Name",strName);
   };
   /**
     * Gets sourceLayerName.
     * @return The sourceLayerName value
     * @type String
     */
   MQFeature.prototype.getSourceLayerName = function(){
      return this.getProperty("SourceLayerName");
   };
   /**
     * Sets sourceLayerName.
     * @param {String} strSourceLayerName The sourceLayerName value
     * @type void
     */
   MQFeature.prototype.setSourceLayerName = function(strSourceLayerName){
      this.setProperty("SourceLayerName",strSourceLayerName);
   };
   /**
     * Gets key.
     * @return The key value
     * @type String
     */
   MQFeature.prototype.getKey = function(){
      return this.getProperty("Key");
   };
   /**
     * Sets key.
     * @param {String} strKey The key value
     * @type void
     */
   MQFeature.prototype.setKey = function(strKey){
      this.setProperty("Key",strKey);
   };
   /**
     * Sets GEFID.
     * @param {int} intGEFID the value to set GEFID to
     * @type void
     */
   MQFeature.prototype.setGEFID = function(intGEFID){
      this.setProperty("GEFID",intGEFID);
   };
   /**
     * Gets GEFID.
     * @return The GEFID value
     * @type int
     */
   MQFeature.prototype.getGEFID = function(){
      return this.getProperty("GEFID");
   };
   /**
     * Sets DT.
     * @param {int} intDT the value to set DT to
     * @type void
     */
   MQFeature.prototype.setDT = function(intDT){
      this.setProperty("DT",intDT);
   };
   /**
     * Gets DT.
     * @return The DT value
     * @type int
     */
   MQFeature.prototype.getDT = function(){
      return this.getProperty("DT");
   };
// End class MQFeature

// Begin class MQPointFeature
/* Inheirit from MQPointFeature */
MQPointFeature.prototype = new MQFeature();
MQPointFeature.prototype.constructor = MQPointFeature;
/**
 * Constructs a new MQPointFeature object.
 * @class
 * @extends MQFeature
 * @see MQLatLng
 * @see MQPoint
 */
function MQPointFeature () {
   MQObject.call(this);
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPOINTFEATURE()));
   this.setM_Xpath("PointFeature");
   /**
    * Value to represent the MQLatLng
    * @type MQLatLng
    */
   this.m_CenterLatLng = new MQLatLng("CenterLatLng");
   /**
    * Value to represent the MQPoint
    * @type MQPoint
    */
   this.m_CenterPoint = new MQPoint("CenterPoint");
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPointFeature.prototype.getClassName = function(){
      return "MQPointFeature";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPointFeature.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQPointFeature.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlng = this.getCenterLatLng();
      var point = this.getCenterPoint();
      var lnode = mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng");
      var pnode = mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint");
      if(lnode !== null)
         latlng.loadXmlFromNode(lnode);
      if(pnode !== null)
         point.loadXmlFromNode(pnode);
   };

    /**
    * Assigns the xml that relates to this object.
    * @param node {XML Node} of the document.
    * @type void
    * @private
    */
   MQPointFeature.prototype.loadXmlFromNode = function (node) {
      this.setM_XmlDoc(mqCreateXMLDocImportNode(node));
      this.getCenterLatLng().setLatLng(this.getProperty("CenterLatLng/Lat"), this.getProperty("CenterLatLng/Lng"));
      var x = this.getProperty("CenterPoint/X");
      if(x!=="")
         this.getCenterPoint().setXY(x, this.getProperty("CenterPoint/Y"));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQPointFeature.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenterLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterLatLng"));
      newNode = mqCreateXMLDoc(this.getCenterPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Returns the m_CenterLatLng object.
    * @return The m_CenterLatLng object.
    * @type MQLatLng
    */
   MQPointFeature.prototype.getCenterLatLng = function() {
      return this.m_CenterLatLng;
   };
   /**
    * Sets the m_CenterLatLng object.
    * @param {MQLatLng} latLng the MQLatLng to set m_CenterLatLng to.
    * @type void
    */
   MQPointFeature.prototype.setCenterLatLng = function(latLng) {
      this.m_CenterLatLng.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   /**
    * Returns the m_CenterPoint object.
    * @return The m_CenterPoint object.
    * @type MQPoint
    */
   MQPointFeature.prototype.getCenterPoint = function() {
      return this.m_CenterPoint;
   };
   /**
    * Sets the m_CenterPoint object.
    * @param {MQPoint} Point the MQPoint to set m_CenterPoint to.
    * @type void
    */
   MQPointFeature.prototype.setCenterPoint = function(Point) {
      this.m_CenterPoint.setXY(Point.getX(), Point.getY());
   };
// End class MQPointFeature

// Begin class MQPolygonFeature
/* Inheirit from MQPolygonFeature */
MQPolygonFeature.prototype = new MQPointFeature();
MQPolygonFeature.prototype.constructor = MQPolygonFeature;
/**
 * Constructs a new MQPolygonFeature object.
 * @class
 * @extends MQFeature
 * @see MQLatLng
 * @see MQLatLngCollection
 * @see MQPoint
 * @see MQPointCollection
 */
function MQPolygonFeature () {
   MQPointFeature.call(this);
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPOLYGONFEATURE()));
   this.setM_Xpath("PolygonFeature");
   /**
    * Value to represent the MQLatLngCollection
    * @type MQLatLngCollection
    */
   var m_LatLngs = new MQLatLngCollection();
   m_LatLngs.setM_Xpath("LatLngs");
   /**
    * Returns the m_LatLngs object.
    * @return The m_LatLngs object.
    * @type MQLatLngCollection
    */
   this.getLatLngs = function() {
      return m_LatLngs;
   };
   /**
    * Sets the m_LatLngs object.
    * @param {MQLatLngCollection} latLngs the MQLatLngCollection to set m_LatLngs to.
    * @type void
    */
   this.setLatLngs = function(latLngs) {
      if (latLngs.getClassName()==="MQLatLngCollection"){
         m_LatLngs.removeAll();
         m_LatLngs.append(latLngs);
      } else {
         alert("failure in setLatLngs");
         throw "failure in setLatLngs";
      }
   };
   /**
    * Value to represent the MQPointCollection
    * @type MQPointCollection
    */
   var m_Points = new MQPointCollection();
   m_Points.setM_Xpath("Points");
   /**
    * Returns the m_Points object.
    * @return The m_Points object.
    * @type MQPointCollection
    */
   this.getPoints = function() {
      return m_Points;
   };
   /**
    * Sets the m_Points object.
    * @param {MQPointCollection} pts the MQPointCollection to set m_Points to.
    * @type void
    */
   this.setPoints = function(pts) {
      m_Points.removeAll();
      m_Points.append(pts);
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPolygonFeature.prototype.getClassName = function(){
      return "MQPolygonFeature";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPolygonFeature.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQPolygonFeature.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlng = this.getCenterLatLng();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")!==null)
         latlng.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")));
      var point = this.getCenterPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         point.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));
      var latlngs = this.getLatLngs();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         latlngs.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
      var points = this.getPoints();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")!==null)
         points.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQPolygonFeature.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenterLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterLatLng"));
      newNode = mqCreateXMLDoc(this.getCenterPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      newNode = mqCreateXMLDoc(this.getLatLngs().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      newNode = mqCreateXMLDoc(this.getPoints().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Points"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQPolygonFeature

// Begin class MQLineFeature
/* Inheirit from MQLineFeature */
MQLineFeature.prototype = new MQPolygonFeature();
MQLineFeature.prototype.constructor = MQLineFeature;
/**
 * Constructs a new MQLineFeature object.
 * @class
 * @extends MQFeature
 * @see MQLatLng
 * @see MQLatLngCollection
 * @see MQPoint
 * @see MQPointCollection
 */
function MQLineFeature () {
   MQPolygonFeature.call(this);
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getLINEFEATURE()));
   this.setM_Xpath("LineFeature");
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQLineFeature.prototype.getClassName = function(){
      return "MQLineFeature";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQLineFeature.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQLineFeature.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlng = this.getCenterLatLng();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")!==null)
         latlng.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")));
      var point = this.getCenterPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         point.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));
      var latlngs = this.getLatLngs();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         latlngs.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
      var points = this.getPoints();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")!==null)
         points.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQLineFeature.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenterLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterLatLng"));
      newNode = mqCreateXMLDoc(this.getCenterPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      newNode = mqCreateXMLDoc(this.getLatLngs().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      newNode = mqCreateXMLDoc(this.getPoints().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Points"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
     * Gets LeftPostalCode.
     * @return The LeftPostalCode value
     * @type String
     */
   MQLineFeature.prototype.getLeftPostalCode = function(){
      return this.getProperty("LeftPostalCode");
   };
   /**
     * Sets LeftPostalCode.
     * @param {String} strVal The LeftPostalCode value
     * @type void
     */
   MQLineFeature.prototype.setLeftPostalCode = function(strVal){
      this.setProperty("LeftPostalCode",strVal);
   };
   /**
     * Gets RightPostalCode.
     * @return The RightPostalCode value
     * @type String
     */
   MQLineFeature.prototype.getRightPostalCode = function(){
      return this.getProperty("RightPostalCode");
   };
   /**
     * Sets RightPostalCode.
     * @param {String} strVal The RightPostalCode value
     * @type void
     */
   MQLineFeature.prototype.setRightPostalCode = function(strVal){
      this.setProperty("RightPostalCode",strVal);
   };
   /**
     * Gets LeftAddressHi.
     * @return The LeftAddressHi value
     * @type String
     */
   MQLineFeature.prototype.getLeftAddressHi = function(){
      return this.getProperty("LeftAddressHi");
   };
   /**
     * Sets LeftAddressHi.
     * @param {String} strVal The LeftAddressHi value
     * @type void
     */
   MQLineFeature.prototype.setLeftAddressHi = function(strVal){
      this.setProperty("LeftAddressHi",strVal);
   };
   /**
     * Gets RightAddressHi.
     * @return The RightAddressHi value
     * @type String
     */
   MQLineFeature.prototype.getRightAddressHi = function(){
      return this.getProperty("RightAddressHi");
   };
   /**
     * Sets RightAddressHi.
     * @param {String} strVal The RightAddressHi value
     * @type void
     */
   MQLineFeature.prototype.setRightAddressHi = function(strVal){
      this.setProperty("RightAddressHi",strVal);
   };
   /**
     * Gets LeftAddressLo.
     * @return The LeftAddressLo value
     * @type String
     */
   MQLineFeature.prototype.getLeftAddressLo = function(){
      return this.getProperty("LeftAddressLo");
   };
   /**
     * Sets LeftAddressLo.
     * @param {String} strVal The LeftAddressLo value
     * @type void
     */
   MQLineFeature.prototype.setLeftAddressLo = function(strVal){
      this.setProperty("LeftAddressLo",strVal);
   };
   /**
     * Gets RightAddressLo.
     * @return The RightAddressLo value
     * @type String
     */
   MQLineFeature.prototype.getRightAddressLo = function(){
      return this.getProperty("RightAddressLo");
   };
   /**
     * Sets RightAddressLo.
     * @param {String} strVal The RightAddressLo value
     * @type void
     */
   MQLineFeature.prototype.setRightAddressLo = function(strVal){
      this.setProperty("RightAddressLo",strVal);
   };
// End class MQLineFeature

// Begin class MQLocation
/* Inheirit from MQLocation */
MQLocation.prototype = new MQObject();
MQLocation.prototype.constructor = MQLocation;
/**
 * Constructs a new MQLocation object.
 * @class Contains properties common to MQAddress
 * objects. A MQLocation can also be geocoded, but only to the city
 * level.
 * @extends MQObject
 */
function MQLocation () {
   MQObject.call(this);
   this.setM_Xpath("Location");
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQLocation.prototype.getClassName = function(){
      return "MQLocation";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQLocation.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQLocation.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQLocation.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
     * Gets admin area.
     * @param  {int} intIndex Which admin area (1 - 7)
     * @return The admin area value for intIndex
     * @type String
     */

// End class MQLocation

// Begin Class MQAddress
/* Inheirit from MQLocation */
MQAddress.prototype = new MQLocation();
MQAddress.prototype.constructor = MQAddress;
/**
 * Constructs a new MQAddress object.
 * @class Contains information for geocoding and routing to and from
 * addresses.
 * @extends MQLocation
 */
function MQAddress () {
   MQLocation.call(this);
   this.setM_Xpath("Address");
   if(this.getClassName() === "MQAddress"){
      this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getADDRESS()));
   }
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQAddress.prototype.getClassName = function(){
      return "MQAddress";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQAddress.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQAddress.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQAddress.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
     * Sets street.
     * @param {String} strStreet  street Address
     * @type void
     */

   MQAddress.prototype.getAdminArea = function(intIndex){
   return this.getProperty("AdminArea" + intIndex);
   };
   /**
   * Sets admin area.
   * @param  {int} intIndex Which admin area (1 - 7)
   * @param {String} strAdminArea The admin area value for intIndex
   * @type void
   */
   MQAddress.prototype.setAdminArea = function(intIndex, strAdminArea){
   this.setProperty("AdminArea" + intIndex,strAdminArea);
   };
   /**
   * Gets country.
   * @return The country value
   * @type String
   */
   MQAddress.prototype.getCountry = function(){
   return this.getProperty("AdminArea1");
   };
   /**
   * Sets country.
   * @param {String} strCountry The country value
   * @type void
   */
   MQAddress.prototype.setCountry = function(strCountry){
   this.setProperty("AdminArea1",strCountry);
   };
   /**
   * Gets county.
   * @return The county value
   * @type String
   */
   MQAddress.prototype.getCounty = function(){
   return this.getProperty("AdminArea4");
   };
   /**
   * Sets county.
   * @param {String} strCounty The county value
   * @type void
   */
   MQAddress.prototype.setCounty = function(strCounty){
   this.setProperty("AdminArea4",strCounty);
   };
   /**
   * Gets city.
   * @return The city value
   * @type String
   */
   MQAddress.prototype.getCity = function(){
   return this.getProperty("AdminArea5");
   };
   /**
   * Sets city.
   * @param {String} strCity The city value
   * @type void
   */
   MQAddress.prototype.setCity = function(strCity){
   this.setProperty("AdminArea5",strCity);
   };
   /**
   * Gets postal code.
   * @return The postal code value
   * @type String
   */
   MQAddress.prototype.getPostalCode = function(){
   return this.getProperty("PostalCode");
   };
   /**
   * Sets postal code.
   * @param {String} strPostalCode The postal code value
   * @type void
   */
   MQAddress.prototype.setPostalCode = function(strPostalCode){
   this.setProperty("PostalCode",strPostalCode);
   };
   /**
   * Gets state.
   * @return The state value
   * @type String
   */
   MQAddress.prototype.getState = function(){
   return this.getProperty("AdminArea3");
   };
   /**
   * Sets state.
   * @param {String} strState The state value
   * @type void
   */
   MQAddress.prototype.setState = function(strState){
   this.setProperty("AdminArea3",strState);
   };

   MQAddress.prototype.setStreet = function(strStreet){
      this.setProperty("Street",strStreet);
   };
   /**
     * Gets street.
     * @return The street
     * @type String
     */
   MQAddress.prototype.getStreet = function(){
      return this.getProperty("Street");
   };
// End class MQAddress


// Begin Class MQSingleLineAddress
/* Inheirit from MQLocation */
MQSingleLineAddress.prototype = new MQLocation();
MQSingleLineAddress.prototype.constructor = MQSingleLineAddress;

/**
 * Constructs a new MQSingleLineAddress object.
 * @class Contains information for Singleline geocoding and routing to and from
 * addresses.
 * @extends MQLocation
 */
function MQSingleLineAddress () {
   MQLocation.call(this);
   this.setM_Xpath("SingleLineAddress");
   if(this.getClassName() === "MQSingleLineAddress"){
      this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSINGLELINEADDRESS()));
   }
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQSingleLineAddress.prototype.getClassName = function(){
      return "MQSingleLineAddress";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSingleLineAddress.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQSingleLineAddress.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQSingleLineAddress.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
     * Sets Address.
     * @param {String} strAddress  Singleline Address
     * @type void
     */
   MQSingleLineAddress.prototype.setAddress = function(strAddress){
      this.setProperty("Address",strAddress);
   };
   /**
     * Gets Country.
     * @return The Country
     * @type String
     */
   MQSingleLineAddress.prototype.getAddress = function(){
      return this.getProperty("Address");
   };
   MQSingleLineAddress.prototype.setCountry = function(strCountry){
      this.setProperty("Country",strCountry);
   };
   /**
     * Gets Country.
     * @return The Country
     * @type String
     */
   MQSingleLineAddress.prototype.getCountry = function(){
      return this.getProperty("Country");
   };
// End class MQSingleLineAddress


// Begin Class MQGeoAddress
/* Inheirit from MQAddress */
MQGeoAddress.prototype = new MQAddress();
MQGeoAddress.prototype.constructor = MQGeoAddress;
/**
 * Constructs a new MQGeoAddress object.
 * @class Contains the results of geocoding an address.
 * @extends MQAddress
 * @see MQLocation
 * @see MQAddress
 * @see MQLatLng
 */
function MQGeoAddress () {
   MQAddress.call(this);
   this.setM_Xpath("GeoAddress");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getGEOADDRESS()));
   /**
    * Value to represent the MQLatLng
    * @type MQLatLng
    *
    */
   var m_MQLatLng = new MQLatLng();
   /**
    * Returns the m_MQLatLng object.
    * @return The m_MQLatLng object.
    * @type MQLatLng
    *
    */
   this.getMQLatLng = function() {
      return m_MQLatLng;
   };
   /**
    * Sets the m_MQLatLng object.
    * @param {MQLatLng} latLng the Document to set m_MQLatLng to.
    * @type void
    *
    */
   this.setMQLatLng = function(latLng) {
      m_MQLatLng = latLng;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQGeoAddress.prototype.getClassName = function(){
      return "MQGeoAddress";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQGeoAddress.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQGeoAddress.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var lat = this.getProperty("LatLng/Lat");
      var lng = this.getProperty("LatLng/Lng");
      this.getMQLatLng().setLatLng(lat,lng);
   };
   /**
    * Build an xml string that represents this object. Because this is
    * a complex object we need to completely rebuild the xml string.
    * @return The xml string.
    * @type String
    *
    */
   MQGeoAddress.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getMQLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLng"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
     * Sets distAlong.
     * @param {Double} dblDistAlong the value to set distAlong to
     * @type void
     */
   MQGeoAddress.prototype.setDistAlong = function(dblDistAlong){
      this.setProperty("DistAlong",dblDistAlong);
   };
   /**
     * Gets distAlong.
     * @return The distAlong value
     * @type Double
     */
   MQGeoAddress.prototype.getDistAlong = function(){
      return this.getProperty("DistAlong");
   };
   /**
     * Sets GEFID.
     * @param {int} intGEFID the value to set GEFID to
     * @type void
     */
   MQGeoAddress.prototype.setGEFID = function(intGEFID){
      this.setProperty("GEFID",intGEFID);
   };
   /**
     * Gets GEFID.
     * @return The GEFID value
     * @type int
     */
   MQGeoAddress.prototype.getGEFID = function(){
      return this.getProperty("GEFID");
   };
   /**
     * Sets ResultCode.
     * @param {String} strResultCode the value to set ResultCode to
     * @type void
     */
   MQGeoAddress.prototype.setResultCode = function(strResultCode){
      this.setProperty("ResultCode",strResultCode);
   };
   /**
     * Gets ResultCode.
     * @return The ResultCode value
     * @type String
     */
   MQGeoAddress.prototype.getResultCode = function(){
      return this.getProperty("ResultCode");
   };
   /**
     * Sets SourceId.
     * @param {String} strSourceId the value to set SourceId to
     * @type void
     */
   MQGeoAddress.prototype.setSourceId = function(strSourceId){
      this.setProperty("SourceId",strSourceId);
   };
   /**
     * Gets SourceId.
     * @return The SourceId value
     * @type String
     */
   MQGeoAddress.prototype.getSourceId = function(){
      return this.getProperty("SourceId");
   };
// End Class MQGeoAddress

// Begin Class MQManeuver
/* Inheirit from MQObject */
MQManeuver.prototype = new MQObject();
MQManeuver.prototype.constructor = MQManeuver;
/**
 * Constructs a new MQManeuver object.
 * @class This object will hold each maneuver of a trekroute returned from a route.
 * @extends MQObject
 * @see MQLatLngCollection
 * @see MQSignCollection
 * @see MQStringCollection
 */
function MQManeuver () {
   MQObject.call(this);
   this.setM_Xpath("Maneuver");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getMANEUVER()));
   /**
    * Value to represent the collection of streets.
    * @type MQStringCollection
    */
   var m_Streets = new MQStringCollection("Item");
   m_Streets.setM_Xpath("Streets");
   /**
    * Returns the m_Streets collection.
    * @return The m_Streets collection.
    * @type MQStringCollection
    */
   this.getStreets = function() {
      return m_Streets;
   };
   /**
    * Sets the m_Streets collection.
    * @param {MQStringCollection} streets The collection to set m_Streets to.
    * @type void
    */
   this.setStreets = function(streets) {
      m_Streets.removeAll();
      m_Streets.append(streets);
   };
   /**
    * Value to represent the collection of shape points.
    * @type MQLatLngCollection
    */
   var m_ShapePoints = new MQLatLngCollection();
   m_ShapePoints.setM_Xpath("ShapePoints");
   /**
    * Returns the m_ShapePoints collection.
    * @return The m_ShapePoints collection.
    * @type MQLatLngCollection
    */
   this.getShapePoints = function() {
      return m_ShapePoints;
   };
   /**
    * Sets the m_ShapePoints collection.
    * @param {MQLatLngCollection} shapePoints The collection to set m_ShapePoints to.
    * @type void
    */
   this.setShapePoints = function(shapePoints) {
      if (shapePoints.getClassName()==="MQLatLngCollection"){
         m_ShapePoints.removeAll();
         m_ShapePoints.append(shapePoints);
      }
      else {
         alert("failure in setShapePoints");
         throw "failure in setShapePoints";
      }
   };
   /**
    * Value to represent the collection of GEFIDs
    * @type MQIntCollection
    */
   var m_GEFIDs = new MQIntCollection("Item");
   m_GEFIDs.setM_Xpath("GEFIDs");
   /**
    * Returns the m_GEFIDs collection.
    * @return The m_GEFIDs collection.
    * @type MQIntCollection
    */
   this.getGEFIDs = function() {
      return m_GEFIDs;
   };
   /**
    * Sets the m_GEFIDs collection.
    * @param {MQIntCollection} GEFIDs The collection to set m_GEFIDs to.
    * @type void
    */
   this.setGEFIDs = function(GEFIDs) {
      m_GEFIDs.removeAll();
      m_GEFIDs.append(GEFIDs);
   };
   /**
    * Value to represent the collection of signs
    * @type MQSignCollection
    */
   var m_Signs = new MQSignCollection("Sign");
   m_Signs.setM_Xpath("Signs");
   /**
    * Returns the m_Signs collection.
    * @return The m_Signs collection.
    * @type MQSignCollection
    */
   this.getSigns = function() {
      return m_Signs;
   };
   /**
    * Sets the m_Signs collection.
    * @param {MQSignCollection} signs The collection to set m_Signs to.
    * @type void
    */
   this.setSigns = function(signs) {
      m_Signs.removeAll();
      m_Signs.append(signs);
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQManeuver.prototype.getClassName = function(){
      return "MQManeuver";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQManeuver.prototype.getObjectVersion = function(){
      return 1;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQManeuver.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var streets = this.getStreets();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Streets")!==null)
         streets.loadXmlFromNode(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Streets"));
      var shapes = this.getShapePoints();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/ShapePoints")!==null)
         shapes.loadXmlFromNode(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/ShapePoints"));
      var gefids = this.getGEFIDs();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/GEFIDs")!==null)
         gefids.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/GEFIDs")));
      var signs = this.getSigns();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Signs")!==null)
        signs.loadXmlFromNode(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Signs"));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQManeuver.prototype.saveXml = function () {
      // get inner object nodes
        var newNode = mqCreateXMLDoc(this.getStreets().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Streets"));
        newNode = mqCreateXMLDoc(this.getShapePoints().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "ShapePoints"));
        newNode = mqCreateXMLDoc(this.getGEFIDs().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "GEFIDs"));
        newNode = mqCreateXMLDoc(this.getSigns().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Signs"));
        return mqXmlToStr(this.getM_XmlDoc());

   };
 /**
   * Sets the turn type of this Maneuver.
   * @param {int} type that is a valid turn type
   * Valid types are the constants starting with K_
   * @type void
   */
   MQManeuver.prototype.setTurnType = function(type){
      this.setProperty("TurnType",type);
   };

 /**
   * Returns the turn type of this Maneuver.
   * @return The turn type of this Maneuver.
   * @type int
   */
   MQManeuver.prototype.getTurnType = function(){
      return this.getProperty("TurnType");
   };

   /**
   * Sets the distance of this Maneuver.
   * @param {Float} distance The distance
   * @type void
   */
   MQManeuver.prototype.setDistance = function(distance){
      this.setProperty("Distance",distance);
   };

   /**
   * Returns the distance of this Maneuver.
   * @return The distance of this Maneuver.
   * @type Float
   */
   MQManeuver.prototype.getDistance = function(){
      return this.getProperty("Distance");
   };

   /**
   * Sets the seconds to travel this Maneuver.
   * @param {int} seconds The seconds to travel this Maneuver.
   * @type void
   */
   MQManeuver.prototype.setTime = function(seconds){
      this.setProperty("Time",seconds);
   };

   /**
   * Returns the seconds to travel this Maneuver.
   * @return The seconds to travel this Maneuver.
   * @type int
   */
   MQManeuver.prototype.getTime = function(){
      return this.getProperty("Time");
   };
   /**
   * Sets an integer representing the direction for this Maneuver.
   * @param {int} direction The direction for this Maneuver
   * @type void
   */
   MQManeuver.prototype.setDirection = function(direction){
      this.setProperty("Direction",direction);
   };
   /**
   * Returns an integer representing the direction for this Maneuver.
   * @return The integer representing the direction for this Maneuver.
   * @type int
   */
   MQManeuver.prototype.getDirection = function(){
      return this.getProperty("Direction");
   };
   /**
   * Returns a string representing the direction for this Maneuver.
   * @return The string representing the direction for this Maneuver.
   * @type String
   */
   MQManeuver.prototype.getDirectionName = function(){
      switch (parseInt(this.getDirection()))
      {
      case MQCONSTANT.MQMANEUVER_HEADING_NORTH:      return "North";
      case MQCONSTANT.MQMANEUVER_HEADING_NORTH_WEST: return "Northwest";
      case MQCONSTANT.MQMANEUVER_HEADING_NORTH_EAST: return "Northeast";
      case MQCONSTANT.MQMANEUVER_HEADING_SOUTH:      return "South";
      case MQCONSTANT.MQMANEUVER_HEADING_SOUTH_EAST: return "Southeast";
      case MQCONSTANT.MQMANEUVER_HEADING_SOUTH_WEST: return "Southwest";
      case MQCONSTANT.MQMANEUVER_HEADING_WEST:       return "West";
      case MQCONSTANT.MQMANEUVER_HEADING_EAST:       return "East";
      default:                                       return "";
      }

   };
   /**
   * Set the attributes associated with this maneuver.
   * @param {int} attributes attributes associated with this maneuver.
   * @type void
   */
   MQManeuver.prototype.setAttributes = function(attributes){
      this.setProperty("Attributes",attributes);
   };
   /**
   * Get the attributes associated with this maneuver.
   * @return The attributes associated with this maneuver.
   * @type int
   */
   MQManeuver.prototype.getAttributes = function(){
      return this.getProperty("Attributes");
   };
   /**
   * Sets a string representing the narrative for this Maneuver.
   * @param {String} narrative a string representing the narrative for this Maneuver
   * @type void
   */
   MQManeuver.prototype.setNarrative = function(narrative){
      this.setProperty("Narrative",narrative);
   };
   /**
   * Returns a string representing the narrative for this Maneuver.
   * @returns a string representing the narrative for this Maneuver
   * @type String
   */
   MQManeuver.prototype.getNarrative = function(){
      return this.getProperty("Narrative");
   };
// End class MQManeuver

// Begin Class MQTrekRoute
/* Inheirit from MQObject */
MQTrekRoute.prototype = new MQObject();
MQTrekRoute.prototype.constructor = MQTrekRoute;
/**
 * Constructs a new MQTrekRoute object.
 * @class This object will hold each maneuver of a trekroute returned from a route.
 * @extends MQObject
 * @see MQLatLngCollection
 * @see MQSignCollection
 * @see MQStringCollection
 */
function MQTrekRoute () {
   MQObject.call(this);
   this.setM_Xpath("TrekRoute");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getTREKROUTE()));
   /**
    * Value to represent the collection of streets.
    * @type MQManeuverCollection
    *
    */
   var maneuverList = new MQManeuverCollection("Maneuver");
   maneuverList.setM_Xpath("Maneuvers");
   /**
    * Returns the maneuverList collection.
    * @return The maneuverList collection.
    * @type MQManeuverCollection
    */
   this.getManeuvers = function() {
      return maneuverList;
   };
   /**
    * Value to represent the collection of streets.
    * @type MQManeuverCollection
    *
    */
   var shapePoints = null;
   /**
    * Returns the shapePoints collection made by appending all the maneuver shape point collections.
    * @return The shapePoints collection.
    * @type MQLatLngCollection
    */
   this.getShapePoints = function() {
      // calc and set if null
      if (shapePoints === null){
         distance = 0.0;
         time = 0;
         shapePoints = new MQLatLngCollection();
         shapePoints.setM_Xpath("ShapePoints");
         for(var man = 0; man < this.getManeuvers().getSize(); man++) {
            shapePoints.append(this.getManeuvers().get(man).getShapePoints());
            distance += parseFloat(this.getManeuvers().get(man).getDistance());
            time += parseInt(this.getManeuvers().get(man).getTime());
         }
      }
      return shapePoints;
   };
   /**
    * Value of the total distance for this maneuver.
    * @type Float
    */
   var distance = null;
   /**
    * Returns the total distance for this maneuver.
    * @return The total distance for this maneuver.
    * @type Float
    */
   this.getDistance = function() {
      // calc and set if null
      if(distance === null){
         distance = 0.0;
         time = 0;
         shapePoints = new MQLatLngCollection();
         shapePoints.setM_Xpath("ShapePoints");
         for(var man = 0; man < this.getManeuvers().getSize(); man++) {
            shapePoints.append(this.getManeuvers().get(man).getShapePoints());
            distance += parseFloat(this.getManeuvers().get(man).getDistance());
            time += parseInt(this.getManeuvers().get(man).getTime());
         }
      }
      return distance;
   };
   /**
    * Value of the total time for this maneuver.
    * @type int
    */
   var time = null;
   /**
    * Returns the total time for this maneuver.
    * @return The total time for this maneuver.
    * @type int
    */
   this.getTime = function(){
      // calc and set if null
      if(time === null){
         distance = 0.0;
         time = 0;
         shapePoints = new MQLatLngCollection();
         shapePoints.setM_Xpath("ShapePoints");
         for(var man = 0; man < this.getManeuvers().getSize(); man++) {
            shapePoints.append(this.getManeuvers().get(man).getShapePoints());
            distance += parseFloat(this.getManeuvers().get(man).getDistance());
            time += parseInt(this.getManeuvers().get(man).getTime());
         }
      }
      return time;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQTrekRoute.prototype.getClassName = function(){
      return "MQTrekRoute";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQTrekRoute.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQTrekRoute.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
     var maneuvers = this.getManeuvers();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Maneuvers")!==null)
         maneuvers.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Maneuvers")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQTrekRoute.prototype.saveXml = function () {
      // get inner object nodes
        var newNode = mqCreateXMLDoc(this.getManeuvers().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Maneuvers"));
        return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQTrekRoute

// Begin class MQGeocodeOptions
/* Inheirit from MQObject */
MQGeocodeOptions.prototype = new MQObject();
MQGeocodeOptions.prototype.constructor = MQGeocodeOptions;
/**
 * @class Class for specifying geocode parameters.
 * @extends MQObject
 * @see MQMatchType
 * @see MQQualityType
 */
function MQGeocodeOptions (){
   MQObject.call(this);
   this.setM_Xpath("GeocodeOptions");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getGEOCODEOPTIONS()));
   /**
    * Value to represent the MQMatchType
    * @type MQMatchType
    *
    */
   var m_MatchType = new MQMatchType(0);
   /**
    * Returns the m_MatchType object.
    * @return The m_MatchType object.
    * @type MQMatchType
    *
    */
   this.getMatchType = function(){
      return m_MatchType;
   };
   /**
    * Sets the m_MatchType.
    * @param {MQMatchType} MatchType The object to set m_MatchType to.
    * @type void
    *
    */
   this.setMatchType = function(MatchType){
      m_MatchType = MatchType;
   };
   /**
    * Value to represent the MQQualityType
    * @type MQQualityType
    *
    */
   var m_QualityType = new MQQualityType(0);
   /**
    * Returns the m_QualityType object.
    * @return The m_QualityType object.
    * @type MQQualityType
    *
    */
   this.getQualityType = function(){
      return m_QualityType;
   };
   /**
    * Sets the m_QualityType.
    * @param {MQQualityType} QualityType The object to set m_QualityType to.
    * @type void
    *
    */
   this.setQualityType = function(QualityType){
      m_QualityType = QualityType;
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQGeocodeOptions.prototype.getClassName = function(){
      return "MQGeocodeOptions";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQGeocodeOptions.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQGeocodeOptions.prototype.loadXml = function (strXml){
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      this.setMatchType(new MQMatchType(Math.floor(this.getProperty("MatchType"))));
      this.getQualityType(new MQQualityType(Math.floor(this.getProperty("QualityType"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQGeocodeOptions.prototype.saveXml = function (){
        this.setProperty("MatchType", this.getMatchType().intValue());
        this.setProperty("QualityType", this.getQualityType().intValue());
        return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the name of the coverage that this option applies to
    * @param {String} newCoverageName The coverage name
    * @type void
    */
   MQGeocodeOptions.prototype.setCoverageName = function(newCoverageName){
      this.setProperty("CoverageName", newCoverageName);
   };
   /**
    * Gets the name of the coverage that this option applies to
    * @return The name of the coverage that this option applies to
    * @type String
    */
   MQGeocodeOptions.prototype.getCoverageName = function(){
      return this.getProperty("CoverageName");
   };
   /**
    * Sets the maximum matches to be returned for this object.
    * @param {int} nMax The maximum number of matches that are to be returned by
    * the search.
    * @type void
    */
   MQGeocodeOptions.prototype.setMaxMatches = function(nMax){
      this.setProperty("MaxMatches", nMax);
   };
   /**
    * Gets the maximum matches to be returned for this object.
    * @return The maximum number of matches that are to be returned by
    * the search
    * @type int
    */
   MQGeocodeOptions.prototype.getMaxMatches = function(){
      return this.getProperty("MaxMatches");
   };
// End class MQGeocodeOptions

// Begin class MQRouteOptions
/* Inheirit from MQObject */
MQRouteOptions.prototype = new MQObject();
MQRouteOptions.prototype.constructor = MQRouteOptions;
/**
 * @class This class is used to set various options that will affect the
 * type of route result returned from the DoRoute function.
 * @extends MQObject
 * @see MQAutoRouteCovSwitch
 * @see MQIntCollection
 * @see MQDistanceUnits
 * @see MQNarrativeType
 * @see MQRouteType
 * @see MQStringCollection
 */
function MQRouteOptions (){
   MQObject.call(this);
   this.setM_Xpath("RouteOptions");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getROUTEOPTIONS()));
   /**
    * Value to represent the Avoid Attribute List
    * @type MQStringCollection
    *
    */
   var m_AvoidAttrList = new MQStringCollection();
   m_AvoidAttrList.setM_Xpath("AvoidAttributeList");
   /**
    * Returns the m_AvoidAttrList collection.
    * @return The m_AvoidAttrList collection.
    * @type MQStringCollection
    *
    */
   this.getAvoidAttrList = function(){
      return m_AvoidAttrList;
   };
   /**
    * Sets the m_AvoidAttrList collection.
    * @param {MQStringCollection} AvoidAttrList The collection to set m_AvoidAttrList to.
    * @type void
    *
    */
   this.setAvoidAttrList = function(avoidAttrList){
      m_AvoidAttrList.removeAll();
        m_AvoidAttrList.append(avoidAttrList);
   };
   /**
    * Value to represent the Avoid Gef Id List
    * @type MQIntCollection
    *
    */
   var m_AvoidGefIdList = new MQIntCollection();
   m_AvoidGefIdList.setM_Xpath("AvoidGefIdList");
   /**
    * Returns the m_AvoidGefIdList collection.
    * @return The m_AvoidGefIdList collection.
    * @type MQIntCollection
    *
    */
   this.getAvoidGefIdList = function(){
      return m_AvoidGefIdList;
   };
   /**
    * Sets the m_AvoidGefIdList collection.
    * @param {MQIntCollection} AvoidGefIdList The collection to set m_AvoidGefIdList to.
    * @type void
    *
    */
   this.setAvoidGefIdList = function(avoidGefIdList){
      m_AvoidGefIdList.removeAll();
        m_AvoidGefIdList.append(avoidGefIdList);
   };
   /**
    * Value to represent the Avoid Absolute Gef Id List
    * @type MQIntCollection
    *
    */
   var m_AvoidAbsGefIdList = new MQIntCollection();
   m_AvoidAbsGefIdList.setM_Xpath("AvoidAbsoluteGefIdList");
   /**
    * Returns the m_AvoidAbsGefIdList collection.
    * @return The m_AvoidAbsGefIdList collection.
    * @type MQIntCollection
    *
    */
   this.getAvoidAbsGefIdList = function(){
      return m_AvoidAbsGefIdList;
   };
   /**
    * Sets the m_AvoidAbsGefIdList collection.
    * @param {MQIntCollection} AvoidAbsGefIdList The collection to set m_AvoidAbsGefIdList to.
    * @type void
    *
    */
   this.setAvoidAbsGefIdList = function(avoidAbsGefIdList){
      m_AvoidAbsGefIdList.removeAll();
      m_AvoidAbsGefIdList.append(avoidAbsGefIdList);
   };
   /**
    * Value to represent the MQAutoRouteCovSwitch
    * @type MQAutoRouteCovSwitch
    *
    */
   var m_AutoRouteCovSwitch = new MQAutoRouteCovSwitch("CovSwitcher");
   /**
    * Returns the m_AutoRouteCovSwitch object.
    * @return The m_AutoRouteCovSwitch object.
    * @type MQAutoRouteCovSwitch
    *
    */
   this.getAutoRouteCovSwitch = function(){
      return m_AutoRouteCovSwitch;
   };
   /**
    * Sets the m_AutoRouteCovSwitch collection.
    * @param {MQAutoRouteCovSwitch} autoRouteCovSwitch The object to set m_AutoRouteCovSwitch to.
    * @type void
    *
    */
   this.setAutoRouteCovSwitch = function(autoRouteCovSwitch){
      m_AutoRouteCovSwitch = autoRouteCovSwitch;
   };
   /**
    * Value to represent the MQRouteType
    * @type MQRouteType
    *
    */
   var m_RouteType = new MQRouteType(0);
   /**
    * Returns the m_RouteType object.
    * @return The m_RouteType object.
    * @type MQRouteType
    *
    */
   this.getRouteType = function(){
      return m_RouteType;
   };
   /**
    * Sets the m_RouteType collection.
    * @param {MQRouteType} routeType The object to set m_RouteType to.
    * @type void
    *
    */
   this.setRouteType = function(routeType){
      m_RouteType = routeType;
   };
   /**
    * Value to represent the MQNarrativeType
    * @type MQNarrativeType
    *
    */
   var m_NarrativeType = new MQNarrativeType(0);
   /**
    * Returns the m_NarrativeType object.
    * @return The m_NarrativeType object.
    * @type MQNarrativeType
    *
    */
   this.getNarrativeType = function(){
      return m_NarrativeType;
   };
   /**
    * Sets the m_NarrativeType collection.
    * @param {MQNarrativeType} narrativeType The object to set m_NarrativeType to.
    * @type void
    *
    */
   this.setNarrativeType = function(narrativeType){
      m_NarrativeType = narrativeType;
   };
   /**
    * Value to represent the MQDistanceUnits
    * @type MQDistanceUnits
    *
    */
   var m_DistanceUnits = new MQDistanceUnits(0);
   /**
    * Returns the m_DistanceUnits object.
    * @return The m_DistanceUnits object.
    * @type MQDistanceUnits
    *
    */
   this.getDistanceUnits = function(){
      return m_DistanceUnits;
   };
   /**
    * Sets the m_DistanceUnits collection.
    * @param {MQDistanceUnits} distanceUnits The object to set m_DistanceUnits to.
    * @type void
    *
    */
   this.setDistanceUnits = function(distanceUnits){
      m_DistanceUnits = distanceUnits;
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRouteOptions.prototype.getClassName = function(){
      return "MQRouteOptions";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRouteOptions.prototype.getObjectVersion = function(){
      return 3;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQRouteOptions.prototype.loadXml = function (strXml){
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var avoidAttributeList = this.getAvoidAttrList();
      avoidAttributeList.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/AvoidAttributeList")));
      var avoidGefIdList = this.getAvoidGefIdList();
      avoidGefIdList.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/AvoidGefIdList")));
      var avoidAbsoluteGefIdList = this.getAvoidAbsGefIdList();
      avoidAbsoluteGefIdList.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/AvoidAbsoluteGefIdList")));
      var covSwitcher = this.getAutoRouteCovSwitch();
      covSwitcher.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CovSwitcher")));
      this.setRouteType(new MQRouteType(Math.floor(this.getProperty("RouteType"))));
      this.getNarrativeType(new MQNarrativeType(Math.floor(this.getProperty("NarrativeType"))));
      this.getDistanceUnits(new MQDistanceUnits(Math.floor(this.getProperty("NarrativeDistanceUnitType"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRouteOptions.prototype.saveXml = function (){
        // get inner object nodes
        var newNode = null;
        this.setProperty("RouteType", this.getRouteType().intValue());
        this.setProperty("NarrativeType", this.getNarrativeType().intValue());
        this.setProperty("NarrativeDistanceUnitType", this.getDistanceUnits().getValue());
        newNode = mqCreateXMLDoc(this.getAutoRouteCovSwitch().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CovSwitcher"));
        newNode = mqCreateXMLDoc(this.getAvoidAttrList().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "AvoidAttributeList"));
        newNode = mqCreateXMLDoc(this.getAvoidGefIdList().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "AvoidGefIdList"));
        newNode = mqCreateXMLDoc(this.getAvoidAbsGefIdList().saveXml());
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "AvoidAbsoluteGefIdList"));
        return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the maximum number of shape points for the server to
    * return from the route. The smaller the number the less
    * data gets returned from the server response on a route.
    * @param {int} nCount with the maximum number of shape points.
    * @type void
    */
   MQRouteOptions.prototype.setMaxShapePointsPerManeuver = function(nCount){
      this.setProperty("MaxShape", nCount);
   };
   /**
    * Returns the maximum number of shape points for the route options.
    * @return The maximum number of shape points
    * @type int
    */
   MQRouteOptions.prototype.getMaxShapePointsPerManeuver = function(){
      return this.getProperty("MaxShape");
   };
   /**
    * Sets the maximum number of GEFIDs for the server to
    * return from the route. The smaller the number the less
    * data gets returned from the server response on a route.
    * @param {int} nCount with the maximum number of GEFIDs.
    * @type void
    */
   MQRouteOptions.prototype.setMaxGEFIDsPerManeuver = function(nCount){
      this.setProperty("MaxGEFID", nCount);
   };
   /**
    * Returns the maximum number of GEFIDs for the route options.
    * @return The maximum number of GEFIDs
    * @type int
    */
   MQRouteOptions.prototype.getMaxGEFIDsPerManeuver = function(){
      return this.getProperty("MaxGEFID");
   };
   /**
    * Sets the language for the server to use on a route narrative.
    * Valid values for languages are defined by the members of this class
    * starting with the prefix szLanguage_.
    * @param {String} strLanguage containing a valid language
    * @type void
    */
   MQRouteOptions.prototype.setLanguage = function(strLanguage){
      this.setProperty("Language", strLanguage);
   };
   /**
    * Returns the language set for this RouteOptions object.
    * @return The language set
    * @type String
    */
   MQRouteOptions.prototype.getLanguage = function(){
      return this.getProperty("Language");
   };
   /**
    * Set the coverage name of the routing data to
    * use takes precedence over CovSwitcher.
    * @param {String} newCoverageName The coverage name
    * @type void
    */
   MQRouteOptions.prototype.setCoverageName = function(newCoverageName){
      this.setProperty("CoverageName", newCoverageName);
   };
   /**
    * Returns the coverage name of the routing data to use
    * takes precedence over CovSwitcher.
    * @return The coverage name
    * @type String
    */
   MQRouteOptions.prototype.getCoverageName = function(){
      return this.getProperty("CoverageName");
   };
   /**
    * Sets the state boundary display flag.
    * @param {Boolean} bFlag The state boundary display flag
    * @type void
    */
   MQRouteOptions.prototype.setStateBoundaryDisplay = function(bFlag){
      this.setProperty("StateBoundaryDisplay", (bFlag===true)?1:0);
   };
   /**
    * Gets the state boundary display flag
    * @return true if a state boundary text should be displayed, false otherwise.
    * @type boolean
    */
   MQRouteOptions.prototype.getStateBoundaryDisplay = function(){
      return (this.getProperty("StateBoundaryDisplay")==1)? true : false;
   };
   /**
    * Sets the country boundary display flag.
    * @param  {Boolean} bFlag The country boundary display flag
    * @type void
    */
   MQRouteOptions.prototype.setCountryBoundaryDisplay = function(bFlag){
      this.setProperty("CountryBoundaryDisplay", (bFlag===true)?1:0);
   };
   /**
    * Gets the country boundary display flag
    * @return true if a country boundary text should be displayed, false otherwise.
    * @type boolean
    */
   MQRouteOptions.prototype.getCountryBoundaryDisplay = function(){
      return (this.getProperty("CountryBoundaryDisplay")==1)? true : false;
   };
// End class MQRouteOptions

// Begin Class MQRouteResults
/* Inheirit from MQObject */
MQRouteResults.prototype = new MQObject();
MQRouteResults.prototype.constructor = MQRouteResults;
/**
 * Constructs a new MQRouteResults object.
 * @class Contains the results of a routing request.
 * @extends MQObject
 * @see MQLatLngCollection
 * @see MQLocationCollection
 * @see MQRouteResultsCode
 * @see MQStringCollection
 * @see MQTrekRouteCollection
 */
function MQRouteResults () {
   MQObject.call(this);
   this.setM_Xpath("RouteResults");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getROUTERESULTS()));
   /**
    * Value to represent the collection of locations.
    * @type MQLocationCollection
    *
    */
   var m_Locations = new MQLocationCollection();
   m_Locations.setM_Xpath("Locations");
   /**
    * Returns all Locations used in the route.  LatLng may be altered to closest
    * point on found road segment.  Locations may be re-ordered in the case
    * of an optimized route
    * @return All Locations used in the route.
    * @type MQLocationCollection
    */
   this.getLocations = function() {
      return m_Locations;
   };
   /**
    * Value to represent the collection of MQTrekRoutes.
    * @type MQTrekRouteCollection
    *
    */
   var m_TrekRoutes = new MQTrekRouteCollection("TrekRoute");
   m_TrekRoutes.setM_Xpath("TrekRoutes");
   /**
    * Returns the TrekRouteCollection member of this object.
    * @return All TrekRoutes used in the route.
    * @type MQTrekRouteCollection
    */
   this.getTrekRoutes = function() {
      return m_TrekRoutes;
   };
      /**
    * Value to represent the collection of locations.
    * @type MQRouteResultsCode
    *
    */
   var m_ResultCode = new MQRouteResultsCode(MQCONSTANT.MQROUTERESULTSCODE_NOT_SPECIFIED);
   /**
    * Gets the result code member of this object.
    * @return The result code member of this object.
    * @type MQRouteResultsCode
    */
   this.getResultCode = function() {
      return m_ResultCode;
   };
   /**
    * Sets the result code member of this object.
    * @param {MQRouteResultsCode} resultCode The MQRouteResultsCode for this MQRouteResults object.
    * @type void
    */
   this.setResultCode = function(resultCode) {
      m_ResultCode = resultCode;
   };
   /**
    * Value to represent the collection of result messages.
    * @type MQStringCollection
    *
    */
   var m_ResultMessages = new MQStringCollection("Item");
   m_ResultMessages.setM_Xpath("ResultMessages");
   /**
    * Returns the messages returned by Server.
    * Each result message should contain a unique number followed by
    * a text description.  Ex: "200 Unable to calculate route."
    * Messages for invalid locations should be numbered 100..199
    * Messages for route failures should be numbered 200..99
    * @return An MQStringCollection of messages.
    * @type MQStringCollection
    */
   this.getResultMessages = function() {
      return m_ResultMessages;
   };
   /**
    * Value to represent the collection of streets.
    * @type MQManeuverCollection
    *
    */
   var shapePoints = null;
   /**
    * Returns the shapePoints collection made by appending all the maneuver shape point collections.
    * @return The shapePoints collection.
    * @type MQLatLngCollection
    */
   this.getShapePoints = function() {
      // calc and set if null
      if (shapePoints === null){
         distance = 0.0;
         time = 0;
         shapePoints = new MQLatLngCollection();
         shapePoints.setM_Xpath("ShapePoints");
         for(var tr = 0; tr < this.getTrekRoutes().getSize(); tr++) {
            var trek = this.getTrekRoutes().get(tr);
            for(var man = 0; man < trek.getManeuvers().getSize(); man++) {
               shapePoints.append(trek.getManeuvers().get(man).getShapePoints());
               distance += parseFloat(trek.getManeuvers().get(man).getDistance());
               time += parseInt(trek.getManeuvers().get(man).getTime());
            }
         }
      }
      return shapePoints;
   };
   /**
    * Value of the total distance for this maneuver.
    * @type Float
    */
   var distance = -1.0;
   /**
    * Returns the total distance for this maneuver.
    * @return The total distance for this maneuver.
    * @type Float
    */
   this.getDistance = function() {
      // calc and set if null
      if(distance === -1.0){
         distance = 0.0;
         time = 0;
         shapePoints = new MQLatLngCollection();
         shapePoints.setM_Xpath("ShapePoints");
         for(var tr = 0; tr < this.getTrekRoutes().getSize(); tr++) {
            var trek = this.getTrekRoutes().get(tr);
            for(var man = 0; man < trek.getManeuvers().getSize(); man++) {
               shapePoints.append(trek.getManeuvers().get(man).getShapePoints());
               distance += parseFloat(trek.getManeuvers().get(man).getDistance());
               time += parseInt(trek.getManeuvers().get(man).getTime());
            }
         }
      }
      return distance;
   };
   /**
    * Value of the total time for this maneuver.
    * @type int
    */
   var time = -1;
   /**
    * Returns the total time for this maneuver.
    * @return The total time for this maneuver.
    * @type int
    */
   this.getTime = function(){
      // calc and set if null
      if(time === -1){
         distance = 0.0;
         time = 0;
         shapePoints = new MQLatLngCollection();
         shapePoints.setM_Xpath("ShapePoints");
         for(var tr = 0; tr < this.getTrekRoutes().getSize(); tr++) {
            var trek = this.getTrekRoutes().get(tr);
            for(var man = 0; man < trek.getManeuvers().getSize(); man++) {
               shapePoints.append(trek.getManeuvers().get(man).getShapePoints());
               distance += parseFloat(trek.getManeuvers().get(man).getDistance());
               time += parseInt(trek.getManeuvers().get(man).getTime());
            }
         }
      }
      return time;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRouteResults.prototype.getClassName = function(){
      return "MQRouteResults";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRouteResults.prototype.getObjectVersion = function(){
      return 1;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQRouteResults.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var locs = this.getLocations();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Locations")!==null)
         locs.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Locations")));
      var trek = this.getTrekRoutes();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/TrekRoutes")!==null)
         trek.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/TrekRoutes")));
      var mesgs = this.getResultMessages();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/ResultMessages")!==null)
         mesgs.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/ResultMessages")));
      this.setResultCode(new MQRouteResultsCode(Math.floor(this.getProperty("ResultCode"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRouteResults.prototype.saveXml = function () {
      // get inner object nodes
      this.setProperty("ResultCode", this.getResultCode().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the Coverage name used to perform this route.
    * @param {String} strName Name of coverage.
    * @type void
    */
   MQRouteResults.prototype.setCoverageName = function(strName){
      this.setProperty("CoverageName",strName);
   };
   /**
    * Gets the Coverage name used to perform this route.
    * @return The value of CoverageName
    * @type String
    */
   MQRouteResults.prototype.getCoverageName = function(){
      return this.getProperty("CoverageName");
   };
// End class MQRouteResults

// Begin Class MQRouteMatrixResults
/* Inheirit from MQObject */
MQRouteMatrixResults.prototype = new MQObject();
MQRouteMatrixResults.prototype.constructor = MQRouteMatrixResults;
/**
 * Constructs a new MQRouteMatrixResults object.
 * @class Contains the results of a route matrix request.
 * @extends MQObject
 * @see MQRouteMatrixResultsCode
 * @see MQStringCollection
 * @see MQIntCollection
 */
function MQRouteMatrixResults () {
   MQObject.call(this);
   this.setM_Xpath("RouteMatrixResults");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getROUTEMATRIXRESULTS()));
   /**
    * Value to represent the count of locations
    * @type int
    */
   var m_LocationCount = -1;
   /**
    * Value to represent the distance matrix
    * @type MQIntCollection
    */
   var m_Distance = null;
   /**
    * Sets the distance MQIntCollection. Should be used only for loadXml method.
    * @param {MQIntCollection} col The distance MQIntCollection.
    * @type void
    */
    this.setDistance = function(col){
        if (col){
           if (col.getClassName()==="MQIntCollection"){
               if (m_Distance!==null){
                  m_Distance.removeAll();
                  m_Distance.append(col);
               }else{
                  m_Distance = col;
               }
           }else{
            alert("failure in setDistance -- col is not MQIntCollection type");
            throw "failure in setDistance -- col is not MQIntCollection type";
           }
       }else{
            alert("failure in setDistance -- col is null");
            throw "failure in setDistance -- col is null";
       }
    };
   /**
    * Returns the calculated distance of the route.
    * @return The calculated total distance of the route.
    * @param {int} from The route to start with
    * @param {int} to The route to end with
    * @type Double
    */
   this.getDistance = function(from, to){
       if(m_LocationCount===-1){
          m_LocationCount = this.getProperty("LocationCount");
       }
       var pos = ((from * m_LocationCount) + to);
       return (m_Distance.get(pos)/1000.0).toFixed(6);
   };
   /**
    * Value to represent the time matrix
    * @type MQIntCollection
    */
   var m_Time = null;
   /**
    * Sets the time MQIntCollection. Should be used only for loadXml method.
    * @param {MQIntCollection} col The time MQIntCollection.
    * @type void
    *
    */
    this.setTime = function(col){
        if (col){
           if (col.getClassName()==="MQIntCollection"){
              if (m_Time!==null){
                 m_Time.removeAll();
                 m_Time.append(col);
              }else{
                 m_Time = col;
              }
           }else{
              alert("failure in setTime -- col is not MQIntCollection type");
              throw "failure in setTime -- col is not MQIntCollection type";
           }
       }else{
          alert("failure in setTime -- col is null");
          throw "failure in setTime -- col is null";
       }
    };
   /**
    * Returns the calculated elapsed time in seconds for the route.
    * @return The calculated elapsed time in seconds for the route.
    * @param {int} from The route to start with
    * @param {int} to The route to end with
    * @type int
    */
   this.getTime = function(from, to){
       if(m_LocationCount===-1){
          m_LocationCount = this.getProperty("LocationCount");
       }
       var pos = ((from * m_LocationCount) + to);
       return m_Time.get(pos);
   };
   /**
    * Value to represent the result code
    * @type MQRouteMatrixResultsCode
    */
   var m_ResultCode = new MQRouteMatrixResultsCode(MQCONSTANT.MQROUTEMATRIXRESULTSCODE_NOT_SPECIFIED);
   /**
    * Gets the result code member of this object.
    * @returns The MQRouteMatrixResultsCode for this MQRouteMatrixResults object.
    * @type MQRouteMatrixResultsCode
    */
   this.getResultCode = function(){
       return m_ResultCode;
   };
   /**
    * Sets the result code member of this object.
    * @param {MQRouteMatrixResultsCode} resultCode The MQRouteMatrixResultsCode for this MQRouteMatrixResults object.
    * @throws Some Exception for invalid type or null/missing parameters
    * @type void
    */
   this.setResultCode = function(rc){
       if (rc){
           if (rc.getClassName()==="MQRouteMatrixResultsCode"){
               m_ResultCode = rc;
           }else{
            alert("failure in setResultsCode -- rc is not MQRouteMatrixResultsCode type");
            throw "failure in setResultsCode -- rc is not MQRouteMatrixResultsCode type";
           }
       }else{
            alert("failure in setResultsCode -- rc is null");
            throw "failure in setResultsCode -- rc is null";
       }
   };
   /**
    * Value to represent the result messages
    * @type MQStringCollection
    */
   var m_ResultMessages = null;
   /**
    * Sets the ResultMessages MQStringCollection. Should be used only for loadXml method.
    * @param {MQStringCollection} col The ResultMessages MQStringCollection.
    * @type void
    *
    */
    this.setResultMessages = function(col){
        if (col){
           if (col.getClassName()==="MQStringCollection"){
              if (m_ResultMessages!==null){
                 m_ResultMessages.removeAll();
                 m_ResultMessages.append(col);
              }else{
                 m_ResultMessages = col;
              }
           }else{
            alert("failure in setResultMessages -- col is not MQStringCollection type");
            throw "failure in setResultMessages -- col is not MQStringCollection type";
           }
       }else{
         alert("failure in setResultMessages -- col is null");
         throw "failure in setResultMessages -- col is null";
       }
    };
   /**
    * Gets the result messages of this object.
    * @returns The MQStringCollection for this object.
    * @type MQStringCollection
    */
   this.getResultsMessages = function(){
       return m_ResultMessages;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRouteMatrixResults.prototype.getClassName = function(){
      return "MQRouteMatrixResults";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRouteMatrixResults.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQRouteMatrixResults.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var dis = new MQIntCollection();
      dis.setM_Xpath("DistanceMatrix");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DistanceMatrix")!==null)
         dis.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DistanceMatrix")));
      this.setDistance(dis);
      var tim = new MQIntCollection();
      tim.setM_Xpath("TimeMatrix");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/TimeMatrix")!==null)
         tim.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/TimeMatrix")));
      this.setTime(tim);
      var mes = new MQStringCollection();
      mes.setM_Xpath("ResultMessages");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/ResultMessages")!==null)
         mes.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/ResultMessages")));
      this.setResultMessages(mes);
      this.setResultCode(new MQRouteMatrixResultsCode(Math.floor(this.getProperty("ResultCode"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRouteMatrixResults.prototype.saveXml = function () {
      // get inner object nodes
      this.setProperty("ResultCode", this.getResultCode().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the Coverage name used to perform this route.
    * @param {String} newCoverageName the Coverage name used to perform this route.
    * @type void
    */
   MQRouteMatrixResults.prototype.setCoverageName = function(newCoverageName){
      this.setProperty("CoverageName",newCoverageName);
   };
   /**
    * Gets the Coverage name used to perform this route.
    * @return The value of CoverageName
    * @type String
    */
   MQRouteMatrixResults.prototype.getCoverageName = function(){
      return this.getProperty("CoverageName");
   };
   /**
    * Gets the all-to-all flag.
    * @return Returns the allToAll flag. True if the matrix is from each
    * location to each other, False if from location 0 to all others.
    * @type Boolean
    */
   MQRouteMatrixResults.prototype.getAllToAllFlag = function(){
      return (this.getProperty("AllToAll")==1)? true : false;
   }
// End Class MQRouteMatrixResults

// Begin Class MQRecordSet
/* Inheirit from MQObject */
MQRecordSet.prototype = new MQObject();
MQRecordSet.prototype.constructor = MQRecordSet;
/**
 * Constructs a new MQRecordSet object.
 * @class Class for retrieving record attribute information.
 * @extends MQObject
 * @see MQStringCollection
 */
function MQRecordSet() {
   MQObject.call(this);
   this.setM_Xpath("RecordSet");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getRECORDSET()));
   /**
    * Value to represent end of file indicator
    * @type Boolean
    */
   var m_EOF = true;
   /**
    * Value to represent beginning of file indicator
    * @type Boolean
    */
   var m_BOF = true;
   /**
    * Value to represent total record count
    * @type int
    */
   var m_recCnt = 0;
   /**
    * Value to represent current record
    * @type int
    */
   var m_curRec = -1;
   /**
    * Value to represent the field names of the columns
    * @type MQStringCollection
    */
   var m_Fields = new MQStringCollection();
   m_Fields.setM_Xpath("Fields");
   /**
    * Value to represent the record set retrieved for the user
    * @type MQStrColCollection
    */
   var m_Records = new MQStrColCollection("Record");
   m_Records.setM_Xpath("Records");
   m_Records.setValidClassName("MQStringCollection");
   /**
    * Sets the cursor to the first record in the record set.
    * @type void
    */
   this.moveFirst = function(){
      if(m_Records.getSize() !== 0){
         m_EOF = false;
         m_BOF = false;
         m_curRec = 0;
      }else{
         alert(MQERROR.RECORDSET_MOVEFIRST_1);
         throw MQERROR.RECORDSET_MOVEFIRST_1;
      }
   };
   /**
    * Sets the cursor to the last record in the record set.
    * @type void
    */
   this.moveLast = function(){
      if(m_Records.getSize() !== 0){
         m_EOF = false;
         m_BOF = false;
         m_curRec = m_Records.getSize()-1;
      }else{
         alert(MQERROR.RECORDSET_MOVELAST_1);
         throw MQERROR.RECORDSET_MOVELAST_1;
      }
   };
   /**
    * Sets the cursor to the next record in the record set.
    * If the cursor is currently set to the last record,
    * A call to MoveNext sets EOF to true
    * @type void
    */
   this.moveNext = function(){
      var numRecs = m_Records.getSize();
      if( numRecs!== 0){
         if(m_curRec < numRecs-1){
            m_curRec++;
            m_BOF = false;
            m_EOF = false;
         }else if(m_curRec === numRecs-1){
            m_curRec++;
            m_BOF = false;
            m_EOF = true;
         }else if(m_EOF){
            alert(MQERROR.RECORDSET_MOVENEXT_1);
            throw MQERROR.RECORDSET_MOVENEXT_1;
         }else{
            alert(MQERROR.RECORDSET_MOVENEXT_2);
            throw MQERROR.RECORDSET_MOVENEXT_2;
         }
      }else{
         alert(MQERROR.RECORDSET_MOVENEXT_3);
         throw MQERROR.RECORDSET_MOVENEXT_3;
      }
   };
   /**
    * Set to true when the cursor is before the beginning of the record set
    * @return beginning record set flag
    * @type Boolean
    */
   this.isBOF = function(){
      return m_BOF;
   };
   /**
    * Set to true when the cursor is passed the end of the record set
    * @return end record set flag
    * @type Boolean
    */
   this.isEOF = function(){
      return m_EOF;
   };
   /**
    * Get the list of available field names
    * @return the list of field names
    * @type MQStringCollection
    */
   this.getFieldNames = function(){
      return m_Fields;
   };
   /**
    * Get the field value by field name
    * @param {String} strFieldName the field name
    * @type String
    */
   this.getField = function(strFieldName){
      // validate that 0<= m_curRec<m_recCnt
      if (!(0 <= m_curRec && m_curRec < m_recCnt)){
         alert(MQERROR.RECORDSET_GETFIELD_1);
         throw MQERROR.RECORDSET_GETFIELD_1;
      }
      // find the position of the field in the fieldNames array
      var pos = -1;
      for(var i = 0; i < m_Fields.getSize(); i++){
         if(m_Fields.get(i)===strFieldName){
            pos = i;
            break;
         }
      }
      // check pos not equal to -1
      if (pos===-1){
         alert(MQERROR.RECORDSET_GETFIELD_2);
         throw MQERROR.RECORDSET_GETFIELD_2;
      }
      // find the var in the current record
      return m_Records.get(m_curRec).get(pos);
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   this.loadXml = function (strXml) {
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      m_Fields.loadXml(mqXmlToStr(mqGetNode(xmlDoc,"/" + this.getM_Xpath() + "/Fields")));
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var col = null;
         m_Records.removeAll();
         // iterate through xml and create stringcollections to add to the strcolCollection
         for (var count=minCount;count < maxCount; count++){
            if(nodes[count].nodeName==="Record"){
               col = new MQStringCollection();
               col.setM_Xpath("Record");
               col.loadXml(mqXmlToStr(nodes[count]));
               m_Records.add(col);
            }
         }
      }
      m_recCnt = this.getProperty("RecordCount");
      if(m_recCnt > 0){
         m_curRec = 0;
         m_BOF = false;
         m_EOF = false;
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRecordSet.prototype.getClassName = function(){
      return "MQRecordSet";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRecordSet.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRecordSet.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End Class MQRecordSet

// Begin Class MQMapState
/* Inheirit from MQObject */
MQMapState.prototype = new MQObject();
MQMapState.prototype.constructor = MQMapState;
/**
 * Constructs a new MQMapState object.
 * @class Defines the characteristics of a map. It includes such information
 * as the map name, the coverage name, the latitude/longitude of the
 * map Center, the map scale, and the image size.
 * @extends MQObject
 * @see MQLatLng
 * @see MQPoint
 */
function MQMapState(){
   MQObject.call(this);
   this.setM_Xpath("MapState");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getMAPSTATE()));
   /**
    * Value to represent the Center point of the map
    * @type MQLatLng
    */
   var m_MQLatLng = new MQLatLng("Center");
   /**
    * Returns the Center point of the map associated with this MapState object.
    * @return The Center point of this MapState object.
    * @type MQLatLng
    */
   this.getCenter = function() {
      return m_MQLatLng;
   };
   /**
    * Sets the Center point of the map associated with this MapState object.
    * @param {MQLatLng} latLng The Center point for the map associated with this
    * MapState object.
    * @type void
    */
   this.setCenter = function(latLng) {
      m_MQLatLng.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQMapState.prototype.getClassName = function(){
      return "MQMapState";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQMapState.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Initializes object.
    * @type void
    */
   MQMapState.prototype.initObject = function(){
      this.setProperty("Scale", 0);
      this.setCenter(new MQLatLng(0,0));
      this.setProperty("Width", -1.0);
      this.setProperty("Height", -1.0);
      this.setProperty("MapName", "");
      this.setProperty("CoverageName", "");
   }
   /**
    * Compares this object to the specified object. The result is true if and
    * only if the argument is not null and is a MapState object that has
    * same attributes as this object.
    * @param   {MQMapState} comparator the object to compare this MapState against.
    * @return  true if the MapState objects are equal; false otherwise.
    * @type Boolean
    */
   MQMapState.prototype.equals = function(comparator){
      if(comparator){
         try{
         if(comparator.getClassName()==="MQMapState"){
            // Test whether the attributes have identical values
            return m_nScale == other.m_nScale
            && m_strMapName === other.m_strMapName
            && m_strCoverageName === other.m_strCoverageName
            && m_llCenter.equals(other.m_llCenter)
            && m_dMapWidth === other.m_dMapWidth
            && m_dMapHeight === other.m_dMapHeight;
         }}catch(error){}
      }
      return false;
   };
   /**
    * Sets the map name of the map associated with this MapState object.
    * @param {String} strName The map name for the map associated with this
    * MapState object.
    * @type void
    */
   MQMapState.prototype.setMapName = function(strName){
      this.setProperty("MapName", strName);
   }
   /**
    * Returns the map name of the map associated with this MapState object.
    * @return The map name of the map associated with this MapState object.
    * @type void
    */
   MQMapState.prototype.getMapName = function(){
      this.getProperty("MapName");
   }
   /**
    * Sets the coverage name for the map associated with this MapState object.
    * @param {String} strCovId The coverage name of the map associated with this
    * MapState object.
    * @type void
    */
   MQMapState.prototype.setCoverageName = function(strCovId){
      this.setProperty("CoverageName", strCovId);
   }
   /**
    * Returns the coverage name of the map associated with this MapState object.
    * @return The coverage name of this MapState object.
    * @type void
    */
   MQMapState.prototype.getCoverageName = function(){
      this.getProperty("CoverageName");
   }
   /**
    * Sets the width of the generated map in inches.
    * @param {Double} dWidth double value specifying the width
    * of the map in inches.
    * @type void
    */
   MQMapState.prototype.setWidthInches = function(dWidth){
      this.setProperty("Width", dWidth);
   }
   /**
    * Returns the width of the generated map in inches.
    * @return the width of the generated map in inches.
    * @type = int
    */
   MQMapState.prototype.getWidthInches = function(){
      return this.getProperty("Width");
   }
   /**
    * Sets the height of the generated map in inches.
    * @param {Double} dHeight double value specifying the height
    * of the map in inches.
    * @type void
    */
   MQMapState.prototype.setHeightInches = function(dHeight){
      this.setProperty("Height", dHeight);
   }
   /**
    * Returns the height of the generated map in inches.
    * @return the height of the generated map in inches.
    * @type = int
    */
   MQMapState.prototype.getHeightInches = function(){
      return this.getProperty("Height");
   }
   /**
    * Sets the width of the generated map in pixels.
    * @param {int} iWidth int value specifying the width of the
    * map in pixels.
    * @param {int} dpi int value specifying the DPI of the image, used
    * to convert from inches to pixels.
    * @type void
    */
   MQMapState.prototype.setWidthPixels = function(iWidth, dpi){
      if(dpi){
         this.setProperty("Width", parseFloat(iWidth)/parseFloat(dpi));
      } else {
         this.setProperty("Width", parseFloat(iWidth)/parseFloat(72));
      }
   }
   /**
    * Returns the width of the generated map in pixels.
    * @param {int} dpi int value specifying the DPI used to convert
    * image size from inches to pixels.
    * @return the width of the generated map in pixels.
    * @type void
    */
   MQMapState.prototype.getWidthPixels = function(dpi){
      if (dpi){
         return Math.ceil(this.getProperty("Width")*dpi);
      } else {
         return Math.ceil(this.getProperty("Width")*72);
      }
    }
   /**
    * Sets the height of the generated map in pixels.
    * @param {int} iHeight int value specifying the height
    * of the map in pixels.
    * @param {int} dpi int value specifying the DPI of the image, used to
    * convert from inches to pixels.
    * @type void
    */
   MQMapState.prototype.setHeightPixels = function(iHeight, dpi){
      if(dpi){
         this.setProperty("Height", parseFloat(iHeight)/parseFloat(dpi));
      } else {
         this.setProperty("Height", parseFloat(iHeight)/parseFloat(72));
      }
   }
   /**
    * Returns the height of the generated map in pixels.
    * @param {int} dpi int value specifying the DPI used to convert
    * image size from inches to pixels.
    * @type void
    */
   MQMapState.prototype.getHeightPixels = function(dpi){
      if (dpi){
         return Math.ceil(this.getProperty("Height")*dpi);
      } else {
         return Math.ceil(this.getProperty("Height")*72);
      }
    }
   /**
    * Sets the scale of the map associated with this MapState object.
    * @param {int} nNewScale The new scale value for the map associated with this
    * MapState object.
    * @type void
    */
   MQMapState.prototype.setMapScale = function(nNewScale){
      this.setProperty("Scale",nNewScale);
   }
    /**
     * Returns the scale of the map associated with this MapState object.
     * @return      The scale of this MapState object.
     */
    MQMapState.prototype.getMapScale = function(){
       return this.getProperty("Scale");
    }
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQMapState.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var lat = this.getProperty("Center/Lat");
      var lng = this.getProperty("Center/Lng");
      this.getCenter().setLatLng(lat,lng);
   };
   /**
    * Build an xml string that represents this object. Because this is
    * a complex object we need to completely rebuild the xml string.
    * @return The xml string.
    * @type String
    *
    */
   MQMapState.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Center"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End Class MQMapState

// Begin class MQSearchCriteria
/* Inheirit from MQObject */
MQSearchCriteria.prototype = new MQObject();
MQSearchCriteria.prototype.constructor = MQSearchCriteria;
/**
 * Constructs a new MQSearchCriteria object.
 * @class Base class to define the criteria for a search. This class is not to be
 * directly instantiated. Use one of its child classes instead.
 * @extends MQObject
 */
function MQSearchCriteria () {
   MQObject.call(this);
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQSearchCriteria.prototype.getClassName = function(){
      return "MQSearchCriteria";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSearchCriteria.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Sets the data member of this object which indicates the maximum number
    * of matches that are to be returned by the search.
    * @param {int} nMax The maximum number of matches that are to be returned by
    * the search.
    * @type void
    */
   MQSearchCriteria.prototype.setMaxMatches = function(nMax){
      this.setProperty("MaxMatches", nMax);
   };
   /**
    * Gets the data member of this object which indicates the maximum number
    * of matches that are to be returned by the search.
    * @return The maximum number of matches that are to be returned by
    * the search
    * @type int
    */
   MQSearchCriteria.prototype.getMaxMatches = function(){
      return this.getProperty("MaxMatches");
   };
// End class MQSearchCriteria

// Begin class MQRadiusSearchCriteria
/* Inheirit from MQSearchCriteria */
MQRadiusSearchCriteria.prototype = new MQSearchCriteria();
MQRadiusSearchCriteria.prototype.constructor = MQRadiusSearchCriteria;
/**
 * Constructs a new MQRadiusSearchCriteria object.
 * @class Defines the criteria for a radius search. The radius to be searched
 * is defined by the latitude/longitude of the Center and the radius
 * of the circle.
 * @extends MQSearchCriteria
 * @see MQLatLng
 * @see MQDistanceUnits
 */
function MQRadiusSearchCriteria () {
   MQObject.call(this);
   this.setM_Xpath("RadiusSearchCriteria");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getRADIUSSEARCHCRITERIA()));
   /**
    * Value to represent the MQLatLng
    * @type MQLatLng
    *
    */
   var m_MQLatLng = new MQLatLng("CenterLatLng");
   /**
    * Returns the Center (latitude/longitude) of the circle which defines
    * the extent of the search area.
    * @return The m_MQLatLng object.
    * @type MQLatLng
    *
    */
   this.getCenter = function() {
      return m_MQLatLng;
   };
   /**
    * Sets the latitude and longitude values of the Center point of the
    * circle which defines the extent of the search area.
    * @param {MQLatLng} latLng the Document to set m_MQLatLng to.
    * @type void
    *
    */
   this.setCenter = function(latLng) {
      m_MQLatLng.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRadiusSearchCriteria.prototype.getClassName = function(){
      return "MQRadiusSearchCriteria";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRadiusSearchCriteria.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQRadiusSearchCriteria.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var lat = this.getProperty("CenterLatLng/Lat");
      var lng = this.getProperty("CenterLatLng/Lng");
      this.getCenter().setLatLng(lat, lng);
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRadiusSearchCriteria.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterLatLng"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the radius of the circle which defines the extent of the search
    * area.
    * @param {Double} radius The radius that this object is to be set to.
    * @param {MQDistanceUnits} lUnits DistanceUnits Miles or KiloMeters
    * @type void
    */
   MQRadiusSearchCriteria.prototype.setRadius = function(radius, lUnits){
      if(lUnits){
         mqIsClass("MQDistanceUnits", lUnits, false);
      } else {
         lUnits = new MQDistanceUnits(MQCONSTANT.MQDISTANCEUNITS_MILES);
      }
      if (lUnits.getValue() === MQCONSTANT.MQDISTANCEUNITS_KILOMETERS)
         radius = radius / MQCONSTANT.DISTANCEAPPROX_KILOMETERS_PER_MILE;
      this.setProperty("Radius", radius);
   };
   /**
    * Returns the radius of the circle which defines the extent of the search
    * area.
    * @param {MQDistanceUnits} lUnits DistanceUnits Miles or KiloMeters
    * @return The radius of the circle which defines the extent of
    * the search area.
    * @type Double
    */
   MQRadiusSearchCriteria.prototype.getRadius = function(lUnits){
      if(lUnits){
         mqIsClass("MQDistanceUnits", lUnits, false);
      } else {
         lUnits = new MQDistanceUnits(MQCONSTANT.MQDISTANCEUNITS_MILES);
      }
      var radius = this.getProperty("Radius");
      if (lUnits.getValue() === MQCONSTANT.MQDISTANCEUNITS_KILOMETERS)
         radius = radius * MQCONSTANT.DISTANCEAPPROX_KILOMETERS_PER_MILE;
      return radius;
   };
// End class MQRadiusSearchCriteria

// Begin class MQRectSearchCriteria
/* Inheirit from MQSearchCriteria */
MQRectSearchCriteria.prototype = new MQSearchCriteria();
MQRectSearchCriteria.prototype.constructor = MQRectSearchCriteria;
/**
 * Constructs a new MQRectSearchCriteria object.
 * @class Defines the criteria for a rectangle search. The rectangle to be
 * searched is defined by the upper left and lower right corners of
 * the rectangle.
 * @param {MQRectLL} mqRectLL An object provided by the TileMap ToolKit that
 * is used to preset the upper left and lower right latlngs.
 * This parameter is optional.
 * @extends MQSearchCriteria
 * @see MQLatLng
 */
function MQRectSearchCriteria (mqRectLL) {
   MQObject.call(this);
   this.setM_Xpath("RectSearchCriteria");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getRECTSEARCHCRITERIA()));
   /**
    * Value to represent the latitude/longitude of the upper left corner
    * @type MQLatLng
    */
   var m_UpperLeft = new MQLatLng("UpperLeftLatLng");
   /**
    * Gets the latitude/longitude of the upper left corner
    * of this RectSearchCriteria object.
    * @return The m_UpperLeft object.
    * @type MQLatLng
    */
   this.getUpperLeft = function() {
      return m_UpperLeft;
   };
   /**
    * Sets the latitude/longitude of the upper left corner
    * of this RectSearchCriteria object.
    * @param {MQLatLng} latLng the MQLatLng to set m_UpperLeft to.
    * @type void
    */
   this.setUpperLeft = function(latLng) {
      m_UpperLeft.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   /**
    * Value to represent the latitude/longitude of the lower right corner
    * @type MQLatLng
    */
   var m_LowerRight = new MQLatLng("LowerRightLatLng");
   /**
    * Gets the latitude/longitude of the lower right corner
    * of this RectSearchCriteria object.
    * @return The m_LowerRight object.
    * @type MQLatLng
    */
   this.getLowerRight = function() {
      return m_LowerRight;
   };
   /**
    * Sets the latitude/longitude of the lower right corner
    * of this RectSearchCriteria object.
    * @param {MQLatLng} latLng the MQLatLng to set m_LowerRight to.
    * @type void
    */
   this.setLowerRight = function(latLng) {
      m_LowerRight.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   if (mqRectLL){
      m_UpperLeft.setLatLng(mqRectLL.getUpperLeft().getLat(),mqRectLL.getUpperLeft().getLng());
      m_LowerRight.setLatLng(mqRectLL.getLowerRight().getLat(),mqRectLL.getLowerRight().getLng());
   }
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRectSearchCriteria.prototype.getClassName = function(){
      return "MQRectSearchCriteria";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRectSearchCriteria.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQRectSearchCriteria.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var lat = this.getProperty("UpperLeftLatLng/Lat");
      var lng = this.getProperty("UpperLeftLatLng/Lng");
      this.getUpperLeft().setLatLng(lat, lng);
      lat = this.getProperty("LowerRightLatLng/Lat");
      lng = this.getProperty("LowerRightLatLng/Lng");
      this.getLowerRight().setLatLng(lat, lng);
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRectSearchCriteria.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getUpperLeft().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftLatLng"));
      newNode = mqCreateXMLDoc(this.getLowerRight().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LowerRightLatLng"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQRectSearchCriteria

// Begin class MQPolySearchCriteria
/* Inheirit from MQSearchCriteria */
MQPolySearchCriteria.prototype = new MQSearchCriteria();
MQPolySearchCriteria.prototype.constructor = MQPolySearchCriteria;
/**
 * Constructs a new MQPolySearchCriteria object.
 * @class Defines the criteria for a poly search based on a collection of
 * MQLatLngs
 * @extends MQSearchCriteria
 * @see MQLatLngCollection
 */
function MQPolySearchCriteria () {
   MQObject.call(this);
   this.setM_Xpath("PolySearchCriteria");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPOLYSEARCHCRITERIA()));
   /**
    * Value to represent the MQLatLngCollection
    * @type MQLatLngCollection
    */
   var m_LatLngs = new MQLatLngCollection();
   m_LatLngs.setM_Xpath("LatLngs");
   /**
    * Returns the m_LatLngs object.
    * @return The m_LatLngs object.
    * @type MQLatLngCollection
    */
   this.getShapePoints = function() {
      return m_LatLngs;
   };
   /**
    * Sets the m_LatLngs object.
    * @param {MQLatLngCollection} latLngs the MQLatLngCollection to set m_LatLngs to.
    * @type void
    */
   this.setShapePoints = function(latLngs) {
      if (latLngs.getClassName()==="MQLatLngCollection"){
         m_LatLngs.removeAll();
         m_LatLngs.append(latLngs);
      }
      else {
         alert("failure in setShapePoints");
         throw "failure in setShapePoints";
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPolySearchCriteria.prototype.getClassName = function(){
      return "MQPolySearchCriteria";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPolySearchCriteria.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    */
   MQPolySearchCriteria.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlngs = this.getShapePoints();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         latlngs.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    */
   MQPolySearchCriteria.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getShapePoints().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQPolySearchCriteria

// Begin class MQCorridorSearchCriteria
/* Inheirit from MQPolySearchCriteria */
MQCorridorSearchCriteria.prototype = new MQPolySearchCriteria();
MQCorridorSearchCriteria.prototype.constructor = MQCorridorSearchCriteria;
/**
 * Constructs a new MQCorridorSearchCriteria object.
 * @class Defines the criteria for a Corridor search. The corridor to be searched
 * is defined by the latitude/longitude collection
 * @extends MQPolySearchCriteria
 * @see MQDistanceUnits
 * @see MQSearchCriteria
 */
function MQCorridorSearchCriteria () {
   MQPolySearchCriteria.call(this);
   this.setM_Xpath("CorridorSearchCriteria");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getCORRIDORSEARCHCRITERIA()));
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQCorridorSearchCriteria.prototype.getClassName = function(){
      return "MQCorridorSearchCriteria";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQCorridorSearchCriteria.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Sets exactLinks-whether to use generalization in determining corridor
    * @param {Boolean} bExactLinks Enables/disables generalization in the server.
    * @type void
    */
   MQCorridorSearchCriteria.prototype.setCorrExactLinks = function(bExactLinks){
      this.setProperty("ExactLinks", (bExactLinks===true)?1:0);
   };
   /**
    * Returns the exactLinks-whether to use generalization in determining corridor
    * @return The exactLinks-whether to use generalization in determining corridor
    * @type Boolean
    */
   MQCorridorSearchCriteria.prototype.getCorrExactLinks = function(){
      return (this.getProperty("ExactLinks")==1)? true : false;
   };
   /**
    * Sets the Corridor width (miles) which defines the extent of the search
    * area. Returns the width it was set to.
    * @param  {Double} dCorrWidth The corridor width that this object is to be set to.
    * @param  {MQDistanceUnits} lUnits DistanceUnits Miles or KiloMeters.
    * @type void
    */
   MQCorridorSearchCriteria.prototype.setCorridorWidth = function(dCorrWidth, lUnits){
      if(lUnits){
         mqIsClass("MQDistanceUnits", lUnits, false);
      } else {
         lUnits = new MQDistanceUnits(MQCONSTANT.MQDISTANCEUNITS_MILES);
      }
      if (lUnits.getValue() === MQCONSTANT.MQDISTANCEUNITS_KILOMETERS)
         dCorrWidth = dCorrWidth / MQCONSTANT.DISTANCEAPPROX_KILOMETERS_PER_MILE;
      this.setProperty("CorridorWidth", dCorrWidth);
   };
   /**
    * Returns the width of the corridor which defines the extent of the search
    * area.
    * @param {MQDistanceUnits} lUnits The DistanceUnits Miles or KiloMeters
    * @return The width of the corridor which defines the extent of
    * the search area.
    * @type Double
    */
   MQCorridorSearchCriteria.prototype.getCorridorWidth = function(lUnits){
      if(lUnits){
         mqIsClass("MQDistanceUnits", lUnits, false);
      } else {
         lUnits = new MQDistanceUnits(MQCONSTANT.MQDISTANCEUNITS_MILES);
      }
      var width = this.getProperty("CorridorWidth");
      if (lUnits.getValue() === MQCONSTANT.MQDISTANCEUNITS_KILOMETERS)
         width = width * MQCONSTANT.DISTANCEAPPROX_KILOMETERS_PER_MILE;
      return width;
   };
   /**
    * Sets the buffer width which defines the amount to generalize.
    * Returns the width it was set to.
    * @param {Double} dBufferWidth The corridor buffer that this object is to be
    * set to.
    * @param {MQDistanceUnits} lUnits The DistanceUnits Miles or KiloMeters.
    * @type void
    */
   MQCorridorSearchCriteria.prototype.setCorridorBufferWidth = function(dBufferWidth, lUnits){
      if(lUnits){
         mqIsClass("MQDistanceUnits", lUnits, false);
      } else {
         lUnits = new MQDistanceUnits(MQCONSTANT.MQDISTANCEUNITS_MILES);
      }
      if (lUnits.getValue() === MQCONSTANT.MQDISTANCEUNITS_KILOMETERS)
         dBufferWidth = dBufferWidth / MQCONSTANT.DISTANCEAPPROX_KILOMETERS_PER_MILE;
      this.setProperty("CorridorBufferWidth", dBufferWidth);
   };
   /**
    * Returns the width of the corridor buffer which defines the extent of the
    * generalization.
    * @param {MQDistanceUnits} lUnits DistanceUnits Miles or KiloMeters
    * @return The width of the corridor buffer which defines the extent of
    * the generalization.
    * @type Double
    */
   MQCorridorSearchCriteria.prototype.getCorridorBufferWidth = function(lUnits){
      if(lUnits){
         mqIsClass("MQDistanceUnits", lUnits, false);
      } else {
         lUnits = new MQDistanceUnits(MQCONSTANT.MQDISTANCEUNITS_MILES);
      }
      var width = this.getProperty("CorridorBufferWidth");
      if (lUnits.getValue() === MQCONSTANT.MQDISTANCEUNITS_KILOMETERS)
         width = width * MQCONSTANT.DISTANCEAPPROX_KILOMETERS_PER_MILE;
      return width;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    */
/*   MQCorridorSearchCriteria.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlngs = this.getLatLngs();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         latlngs.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
   };*/
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    */
/*   MQCorridorSearchCriteria.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getLatLngs().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      return mqXmlToStr(this.getM_XmlDoc());
   };*/
// End class MQCorridorSearchCriteria

// Begin Class MQDBLayerQuery
/* Inheirit from MQObject */
MQDBLayerQuery.prototype = new MQObject();
MQDBLayerQuery.prototype.constructor = MQDBLayerQuery;
/**
 * Constructs a new MQDBLayerQuery object.
 * @class Stores geocode coverage switching parameters.
 * @extends MQObject
 */
function MQDBLayerQuery () {
   MQObject.call(this);
   this.setM_Xpath("DBLayerQuery");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getDBLAYERQUERY()));
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQDBLayerQuery.prototype.getClassName = function(){
      return "MQDBLayerQuery";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDBLayerQuery.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQDBLayerQuery.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQDBLayerQuery.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Contains Secondary SQL Query.
    *   Remarks:
    * Optional Secondary SQL query (used in conjunction with spatial search criteria)
    * Allows user to add further SQL restrictions on the results that would have been returned.
    * This SQL fragment will be appended to the WHERE clause with an "AND" operator.
    * @param {String} strName The string which is to be stored as the database layer
    * name in this object.
    * @type void
    */
   MQDBLayerQuery.prototype.setDBLayerName = function(strName){
      this.setProperty("LayerName",strName);
   };
   /**
    * Returns the database layer name of this object.
    * @return The database layer name of this object.
    * @type String
    */
   MQDBLayerQuery.prototype.getDBLayerName = function(){
      return this.getProperty("LayerName");
   };
   /**
    * Sets the query string to the specified string.
    * @param {String} strQuery The query string which is to be stored in this object.
    * @type void
    */
   MQDBLayerQuery.prototype.setExtraCriteria = function(strQuery){
      this.setProperty("ExtraCriteria",strQuery);
   };
   /**
    * Contains Secondary SQL Query.
    *   Remarks:
    * Optional Secondary SQL query (used in conjunction with spatial search criteria)
    * Allows user to add further SQL restrictions on the results that would have been returned.
    * This SQL fragment will be appended to the WHERE clause with an "AND" operator.
    * @return   The query string of this object.
    * @type Long
    */
   MQDBLayerQuery.prototype.getExtraCriteria = function(){
      return this.getProperty("ExtraCriteria");
   };
// End class MQDBLayerQuery

// Begin Class MQPrimitive
/* Inheirit from MQObject */
MQPrimitive.prototype = new MQObject();
MQPrimitive.prototype.constructor = MQPrimitive;
/**
 * Constructs a new MQPrimitive object.
 * @class The base class for drawing objects that can be added to the map.
 * @extends MQObject
 * @see MQCoordinateType
 * @see MQDrawTrigger
 */
function MQPrimitive () {
   MQObject.call(this);
   /**
    * Value to represent the draw trigger to be used
    * @type MQDrawTrigger
    */
   var m_DrawTrigger = new MQDrawTrigger(MQCONSTANT.MQDRAWTRIGGER_AFTER_TEXT);
   /**
    * Gets the DrawTrigger
    * @return The m_DrawTrigger object.
    * @type MQDrawTrigger
    */
   this.getDrawTrigger = function() {
      return m_DrawTrigger;
   };
   /**
    * Sets the DrawTrigger
    * @param {MQDrawTrigger} dt the MQDrawTrigger to set m_DrawTrigger to.
    * @type void
    */
   this.setDrawTrigger = function(dt) {
      if(dt){
         if(dt.getClassName() === "MQDrawTrigger"){
            m_DrawTrigger = dt;
         }
      }
   };
   /**
    * Value to represent the coordinate type to be used
    * @type MQCoordinateType
    */
   var m_CoordinateType = new MQCoordinateType(MQCONSTANT.MQCOORDINATETYPE_GEOGRAPHIC);
   /**
    * Gets the CoordinateType
    * @return The m_CoordinateType object.
    * @type MQCoordinateType
    */
   this.getCoordinateType = function() {
      return m_CoordinateType;
   };
   /**
    * Sets the CoordinateType
    * @param {MQCoordinateType} dt the MQCoordinateType to set m_CoordinateType to.
    * @type void
    */
   this.setCoordinateType = function(dt) {
      if(dt){
         if(dt.getClassName() === "MQCoordinateType"){
            m_CoordinateType = dt;
         }
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPrimitive.prototype.getClassName = function(){
      return "MQPrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPrimitive.prototype.getObjectVersion = function(){
      return 2;
   };
   /**
    * Sets the key.
    * @param {String} strKey The new key to be assigned to this object.
    * @type void
    */
   MQPrimitive.prototype.setKey = function(strKey){
      this.setProperty("Key",strKey);
   };
   /**
    * Gets the key.
    * @return The key of this object.
    * @type String
    */
   MQPrimitive.prototype.getKey = function(){
      return this.getProperty("Key");
   }
   /**
    * Sets the Opacity.
    * @param {String} strOpacity The new Opacity to be assigned to this object.
    * @type void
    */
   MQPrimitive.prototype.setOpacity = function(strOpacity){
      this.setProperty("Opacity",strOpacity);
   };
   /**
    * Gets the Opacity.
    * @return The Opacity of this object.
    * @type String
    */
   MQPrimitive.prototype.getOpacity = function(){
      return this.getProperty("Opacity");
   }
// Begin Class MQPrimitive

// Begin Class MQLinePrimitive
/* Inheirit from MQPrimitive */
MQLinePrimitive.prototype = new MQPrimitive();
MQLinePrimitive.prototype.constructor = MQLinePrimitive;
/**
 * Constructs a new MQLinePrimitive object.
 * @class Describes linear annotations to be placed on the map. The line is
 * converted into latitude/longitude points so it can be placed in the
 * same geographical location after the map is manipulated.
 * @extends MQPrimitive
 * @see MQColorStyle
 * @see MQPenStyle
 * @see MQPointCollection
 * @see MQLatLngCollection
 */
function MQLinePrimitive () {
   MQPrimitive.call(this);
   this.setM_Xpath("LinePrimitive");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getLINEPRIMITIVE()));
   /**
    * Value to represent the color style to be used
    * @type MQColorStyle
    */
   var m_Color = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_BLACK);
   /**
    * Gets the m_Color
    * @return The m_Color object.
    * @type MQColorStyle
    */
   this.getColor = function() {
      return m_Color;
   };
   /**
    * Sets the m_Color
    * @param {MQColorStyle} obj the MQColorStyle to set m_Color to.
    * @type void
    */
   this.setColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_Color = obj;
         }
      }
   };
   /**
    * Value to represent the pen style to be used
    * @type MQPenStyle
    */
   var m_Style = new MQPenStyle(MQCONSTANT.MQPENSTYLE_SOLID);
   /**
    * Gets the m_Style
    * @return The m_Style object.
    * @type MQPenStyle
    */
   this.getStyle = function() {
      return m_Style;
   };
   /**
    * Sets the m_Style
    * @param {MQPenStyle} obj the MQPenStyle to set m_Style to.
    * @type void
    */
   this.setStyle = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQPenStyle"){
            m_Style = obj;
         }
      }
   };
   /**
    * The MQPointCollection of coordinates of the Line.
    * @type MQPointCollection
    */
   var m_XYArray = new MQPointCollection();
   m_XYArray.setM_Xpath("Points");
   /**
    * Gets the m_XYArray
    * @return The m_XYArray object.
    * @type MQPointCollection
    */
   this.getPoints = function() {
      return m_XYArray;
   };
   /**
    * The MQLatLngCollection of coordinates of the Line.
    * @type MQLatLngCollection
    */
   var m_LLArray = new MQLatLngCollection();
   m_LLArray.setM_Xpath("LatLngs");
   /**
    * Gets the m_LLArray
    * @return The m_LLArray object.
    * @type MQLatLngCollection
    */
   this.getLatLngs = function() {
      return m_LLArray;
   };
   /**
    * Sets the m_LLArray
    * @param {MQLatLngCollection} obj the MQLatLngCollection to set m_LLArray to.
    * @type void
    */
   this.setLatLngs = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQLatLngCollection"){
            m_LLArray.removeAll();
            m_LLArray.append(obj);
         }
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQLinePrimitive.prototype.getClassName = function(){
      return "MQLinePrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQLinePrimitive.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQLinePrimitive.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var ll = new MQLatLngCollection();
      ll.setM_Xpath("LatLngs");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         ll.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
      this.setLatLngs(ll);
      var pt = new MQPointCollection();
      pt.setM_Xpath("Points");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")!==null)
         pt.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")));
      this.setPoints(ll);
      this.setDrawTrigger(new MQDrawTrigger(Math.floor(this.getProperty("DrawTrigger"))));
      this.setCoordinateType(new MQCoordinateType(Math.floor(this.getProperty("CoordinateType"))));
      this.setColor(new MQColorStyle(Math.floor(this.getProperty("Color"))));
      this.setStyle(new MQPenStyle(Math.floor(this.getProperty("Style"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQLinePrimitive.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getLatLngs().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      newNode = mqCreateXMLDoc(this.getPoints().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Points"));
      this.setProperty("DrawTrigger", this.getDrawTrigger().intValue());
      this.setProperty("CoordinateType", this.getCoordinateType().intValue());
      this.setProperty("Color", this.getColor().intValue());
      this.setProperty("Style", this.getStyle().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the value representing the width of this object.
    * @param {int} width The new Width to be assigned to this object.
    * @type void
    */
   MQLinePrimitive.prototype.setWidth = function(width){
      this.setProperty("Width",width);
   };
   /**
    * Returns the value representing the width of this object.
    * @return The Width of this object.
    * @type int
    */
   MQLinePrimitive.prototype.getWidth = function(){
      return this.getProperty("Width");
   }
// Begin Class MQLinePrimitive

// Begin Class MQPolygonPrimitive
/* Inheirit from MQLinePrimitive */
MQPolygonPrimitive.prototype = new MQLinePrimitive();
MQPolygonPrimitive.prototype.constructor = MQPolygonPrimitive;
/**
 * Constructs a new MQPolygonPrimitive object.
 * @class Describes polygons to be placed on a map. The polygon is initially
 * defined with a collection of points. These points are the X,Y
 * coordinates of the vertices of the polygon. The coordinates are
 * converted into a latitude/longitude points so the annotation can be
 * placed in the same geographical location after the map is
 * manipulated.
 * @extends MQLinePrimitive
 * @see MQColorStyle
 * @see MQFillStyle
 */
function MQPolygonPrimitive () {
   MQLinePrimitive.call(this);
   this.setM_Xpath("LinePrimitive");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPOLYGONPRIMITIVE()));
   /**
    * Value to represent the fill color style to be used
    * @type MQColorStyle
    */
   var m_FillColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_RED);
   /**
    * Gets the m_FillColor
    * @return The m_FillColor object.
    * @type MQColorStyle
    */
   this.getFillColor = function() {
      return m_FillColor;
   };
   /**
    * Sets the m_FillColor
    * @param {MQColorStyle} obj the MQColorStyle to set m_FillColor to.
    * @type void
    */
   this.setFillColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_FillColor = obj;
         }
      }
   };
   /**
    * Value to represent the color style to be used
    * @type MQFillStyle
    */
   var m_FillStyle = new MQFillStyle(MQCONSTANT.MQFILLSTYLE_SOLID);
   /**
    * Gets the m_FillStyle
    * @return The m_FillStyle object.
    * @type MQFillStyle
    */
   this.getFillStyle = function() {
      return m_FillStyle;
   };
   /**
    * Sets the m_FillStyle
    * @param {MQFillStyle} obj the MQFillStyle to set m_FillStyle to.
    * @type void
    */
   this.setFillStyle = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQFillStyle"){
            m_FillStyle = obj;
         }
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPolygonPrimitive.prototype.getClassName = function(){
      return "MQPolygonPrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPolygonPrimitive.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQPolygonPrimitive.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var ll = new MQLatLngCollection();
      ll.setM_Xpath("LatLngs");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         ll.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
      this.setLatLngs(ll);
      var pt = new MQPointCollection();
      pt.setM_Xpath("Points");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")!==null)
         pt.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/Points")));
      this.setPoints(ll);
      this.setDrawTrigger(new MQDrawTrigger(Math.floor(this.getProperty("DrawTrigger"))));
      this.setCoordinateType(new MQCoordinateType(Math.floor(this.getProperty("CoordinateType"))));
      this.setColor(new MQColorStyle(Math.floor(this.getProperty("Color"))));
      this.setStyle(new MQPenStyle(Math.floor(this.getProperty("Style"))));
      this.setFillColor(new MQColorStyle(Math.floor(this.getProperty("FillColor"))));
      this.setFillStyle(new MQFillStyle(Math.floor(this.getProperty("FillStyle"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQPolygonPrimitive.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getLatLngs().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      newNode = mqCreateXMLDoc(this.getPoints().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "Points"));
      this.setProperty("DrawTrigger", this.getDrawTrigger().intValue());
      this.setProperty("CoordinateType", this.getCoordinateType().intValue());
      this.setProperty("Color", this.getColor().intValue());
      this.setProperty("Style", this.getStyle().intValue());
      this.setProperty("FillColor", this.getFillColor().intValue());
      this.setProperty("FillStyle", this.getFillStyle().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
// Begin Class MQPolygonPrimitive

// Begin Class MQRectanglePrimitive
/* Inheirit from MQPrimitive */
MQRectanglePrimitive.prototype = new MQPrimitive();
MQRectanglePrimitive.prototype.constructor = MQRectanglePrimitive;
/**
 * Constructs a new MQRectanglePrimitive object.
 * @class Describes linear annotations to be placed on the map. The line is
 * converted into latitude/longitude points so it can be placed in the
 * same geographical location after the map is manipulated.
 * @extends MQPrimitive
 * @see MQColorStyle
 * @see MQPenStyle
 * @see MQPointCollection
 * @see MQLatLngCollection
 */
function MQRectanglePrimitive () {
   MQPrimitive.call(this);
   this.setM_Xpath("RectanglePrimitive");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getRECTANGLEPRIMITIVE()));
   /**
    * Value to represent the color style to be used
    * @type MQColorStyle
    */
   var m_Color = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_BLACK);
   /**
    * Gets the m_Color
    * @return The m_Color object.
    * @type MQColorStyle
    */
   this.getColor = function() {
      return m_Color;
   };
   /**
    * Sets the m_Color
    * @param {MQColorStyle} obj the MQColorStyle to set m_Color to.
    * @type void
    */
   this.setColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_Color = obj;
         }
      }
   };
   /**
    * Value to represent the pen style to be used
    * @type MQPenStyle
    */
   var m_Style = new MQPenStyle(MQCONSTANT.MQPENSTYLE_SOLID);
   /**
    * Gets the m_Style
    * @return The m_Style object.
    * @type MQPenStyle
    */
   this.getStyle = function() {
      return m_Style;
   };
   /**
    * Sets the m_Style
    * @param {MQPenStyle} obj the MQPenStyle to set m_Style to.
    * @type void
    */
   this.setStyle = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQPenStyle"){
            m_Style = obj;
         }
      }
   };
   /**
    * Value to represent the fill color style to be used
    * @type MQColorStyle
    */
   var m_FillColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_RED);
   /**
    * Gets the m_FillColor
    * @return The m_FillColor object.
    * @type MQColorStyle
    */
   this.getFillColor = function() {
      return m_FillColor;
   };
   /**
    * Sets the m_FillColor
    * @param {MQColorStyle} obj the MQColorStyle to set m_FillColor to.
    * @type void
    */
   this.setFillColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_FillColor = obj;
         }
      }
   };
   /**
    * Value to represent the color style to be used
    * @type MQFillStyle
    */
   var m_FillStyle = new MQFillStyle(MQCONSTANT.MQFILLSTYLE_SOLID);
   /**
    * Gets the m_FillStyle
    * @return The m_FillStyle object.
    * @type MQFillStyle
    */
   this.getFillStyle = function() {
      return m_FillStyle;
   };
   /**
    * Sets the m_FillStyle
    * @param {MQFillStyle} obj the MQFillStyle to set m_FillStyle to.
    * @type void
    */
   this.setFillStyle = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQFillStyle"){
            m_FillStyle = obj;
         }
      }
   };
   /**
    * Value to represent the latitude/longitude of the upper left corner
    * @type MQLatLng
    */
   var m_UpperLeftLL = new MQLatLng("UpperLeftLatLng");
   /**
    * Gets the latitude/longitude of the upper left corner.
    * @return The m_UpperLeftLL object.
    * @type MQLatLng
    */
   this.getUpperLeftLatLng = function() {
      return m_UpperLeftLL;
   };
   /**
    * Sets the latitude/longitude of the upper left corner.
    * @param {MQLatLng} latLng the MQLatLng to set m_UpperLeftLL to.
    * @type void
    */
   this.setUpperLeftLatLng = function(latLng) {
      m_UpperLeftLL.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   /**
    * Value to represent the latitude/longitude of the lower right corner
    * @type MQLatLng
    */
   var m_LowerRightLL = new MQLatLng("LowerRightLatLng");
   /**
    * Gets the latitude/longitude of the lower right corner
    * @return The m_LowerRightLL object.
    * @type MQLatLng
    */
   this.getLowerRightLatLng = function() {
      return m_LowerRightLL;
   };
   /**
    * Sets the latitude/longitude of the lower right corner
    * @param {MQLatLng} latLng the MQLatLng to set m_LowerRightLL to.
    * @type void
    */
   this.setLowerRightLatLng = function(latLng) {
      m_LowerRightLL.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   /**
    * Value to represent the x/y of the upper left corner
    * @type MQPoint
    */
   var m_UpperLeftPT = new MQPoint("UpperLeftPoint");
   /**
    * Gets the x/y of the upper left corner.
    * @return The m_UpperLeftPT object.
    * @type MQPoint
    */
   this.getUpperLeftPoint = function() {
      return m_UpperLeftPT;
   };
   /**
    * Sets the x/y of the upper left corner.
    * @param {MQPoint} point the MQPoint to set m_UpperLeftPT to.
    * @type void
    */
   this.setUpperLeftPoint = function(point) {
      m_UpperLeftPT.setXY(point.getX(), point.getY());
   };
   /**
    * Value to represent the x/y of the lower right corner
    * @type MQPoint
    */
   var m_LowerRightPT = new MQPoint("LowerRightPoint");
   /**
    * Gets the x/y of the lower right corner
    * @return The m_LowerRightPT object.
    * @type MQPoint
    */
   this.getLowerRightPoint = function() {
      return m_LowerRightPT;
   };
   /**
    * Sets the x/y of the lower right corner
    * @param {MQPoint} point the MQPoint to set m_LowerRightPT to.
    * @type void
    */
   this.setLowerRightPoint = function(point) {
      m_LowerRightPT.setXY(point.getX(), point.getY());
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRectanglePrimitive.prototype.getClassName = function(){
      return "MQRectanglePrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRectanglePrimitive.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQRectanglePrimitive.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlng = this.getUpperLeftLatLng();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftLatLng")!==null)
         latlng.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftLatLng")));
      latlng = this.getLowerRightLatLng();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightLatLng")!==null)
         latlng.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightLatLng")));
      var point = this.getUpperLeftPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftPoint")!==null)
         point.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftPoint")));
      point = this.getLowerRightPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightPoint")!==null)
         point.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightPoint")));

      this.setDrawTrigger(new MQDrawTrigger(Math.floor(this.getProperty("DrawTrigger"))));
      this.setCoordinateType(new MQCoordinateType(Math.floor(this.getProperty("CoordinateType"))));
      this.setColor(new MQColorStyle(Math.floor(this.getProperty("Color"))));
      this.setStyle(new MQPenStyle(Math.floor(this.getProperty("Style"))));
      this.setFillColor(new MQColorStyle(Math.floor(this.getProperty("FillColor"))));
      this.setFillStyle(new MQFillStyle(Math.floor(this.getProperty("FillStyle"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQRectanglePrimitive.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getUpperLeftLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftLatLng"));
      newNode = mqCreateXMLDoc(this.getLowerRightLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LowerRightLatLng"));
      newNode = mqCreateXMLDoc(this.getUpperLeftPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftPoint"));
      newNode = mqCreateXMLDoc(this.getLowerRightPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LowerRightPoint"));

      this.setProperty("DrawTrigger", this.getDrawTrigger().intValue());
      this.setProperty("CoordinateType", this.getCoordinateType().intValue());
      this.setProperty("Color", this.getColor().intValue());
      this.setProperty("Style", this.getStyle().intValue());
      this.setProperty("FillColor", this.getFillColor().intValue());
      this.setProperty("FillStyle", this.getFillStyle().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the value representing the width of this object.
    * @param {int} width The new Width to be assigned to this object.
    * @type void
    */
   MQRectanglePrimitive.prototype.setWidth = function(width){
      this.setProperty("Width",width);
   };
   /**
    * Returns the value representing the width of this object.
    * @return The Width of this object.
    * @type int
    */
   MQRectanglePrimitive.prototype.getWidth = function(){
      return this.getProperty("Width");
   }
// End Class MQRectanglePrimitive

// Begin Class MQEllipsePrimitive
/* Inheirit from MQRectanglePrimitive */
MQEllipsePrimitive.prototype = new MQRectanglePrimitive();
MQEllipsePrimitive.prototype.constructor = MQEllipsePrimitive;
/**
 * Constructs a new MQEllipsePrimitive object.
 * @class Describes circle annotations to be placed on the map. The ellipse
 * is positioned by the Upper Left and Lower Right coordinates of a
 * bounding rectangle. The coordinates are converted into
 * latitude/longitude points so the annotation can be placed in the
 * same geographical location after the map is manipulated.
 * @extends MQRectanglePrimitive
 */
function MQEllipsePrimitive () {
   MQRectanglePrimitive.call(this);
   this.setM_Xpath("EllipsePrimitive");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getELLIPSEPRIMITIVE()));
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQEllipsePrimitive.prototype.getClassName = function(){
      return "MQEllipsePrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQEllipsePrimitive.prototype.getObjectVersion = function(){
      return 0;
   };
// End Class MQEllipsePrimitive

// Begin Class MQSymbolPrimitive
/* Inheirit from MQPrimitive */
MQSymbolPrimitive.prototype = new MQPrimitive();
MQSymbolPrimitive.prototype.constructor = MQSymbolPrimitive;
/**
 * Constructs a new MQSymbolPrimitive object.
 * @class Describes a SymbolPrimitive to be placed on a map. The SymbolPrimitive is initially
 * located by an X/Y coordinate. The coordinate is converted into a
 * latitude/longitude point so the SymbolPrimitive can be placed in the same
 * geographical location after the map is manipulated.
 * @extends MQPrimitive
 * @see MQPoint
 * @see MQLatLng
 * @see MQSymbolType
 */
function MQSymbolPrimitive () {
   MQPrimitive.call(this);
   this.setM_Xpath("SymbolPrimitive");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSYMBOLPRIMITIVE()));
   /**
    * Value to represent the x/y of the center of the map
    * @type MQPoint
    */
   var m_pt = new MQPoint("CenterPoint");
   /**
    * Gets the x/y of the center of the map
    * @return The m_pt object.
    * @type MQPoint
    */
   this.getCenterPoint = function() {
      return m_pt;
   };
   /**
    * Sets the x/y of the center of the map
    * @param {MQPoint} point the MQPoint to set m_pt to.
    * @type void
    */
   this.setCenterPoint = function(point) {
      m_pt.setXY(point.getX(), point.getY());
   };
   /**
    * Value to represent the latitude/longitude of the center of the map
    * @type MQLatLng
    */
   var m_ll = new MQLatLng("CenterLatLng");
   /**
    * Gets the latitude/longitude of the center of the map
    * @return The m_ll object.
    * @type MQLatLng
    */
   this.getCenterLatLng = function() {
      return m_ll;
   };
   /**
    * Sets the latitude/longitude of the center of the map
    * @param {MQLatLng} latLng the MQLatLng to set m_ll to.
    * @type void
    */
   this.setCenterLatLng = function(latLng) {
      m_ll.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   /**
    * Value to for symbol type
    * @type MQSymbolType
    */
   var m_SymbolType = new MQSymbolType(MQCONSTANT.MQSYMBOLTYPE_RASTER);
   /**
    * Gets the m_SymbolType
    * @return The m_SymbolType object.
    * @type MQSymbolType
    */
   this.getSymbolType = function() {
      return m_SymbolType;
   };
   /**
    * Sets the m_SymbolType
    * @param {MQSymbolType} obj the MQSymbolType to set m_SymbolType to.
    * @type void
    */
   this.setSymbolType = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQSymbolType"){
            m_SymbolType = obj;
         }
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQSymbolPrimitive.prototype.getClassName = function(){
      return "MQSymbolPrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSymbolPrimitive.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQSymbolPrimitive.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlng = this.getCenterLatLng();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")!==null)
         latlng.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")));
      var point = this.getCenterPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         point.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));

      this.setDrawTrigger(new MQDrawTrigger(Math.floor(this.getProperty("DrawTrigger"))));
      this.setCoordinateType(new MQCoordinateType(Math.floor(this.getProperty("CoordinateType"))));
      this.setSymbolType(new MQSymbolType(Math.floor(this.getProperty("SymbolType"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQSymbolPrimitive.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenterLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterLatLng"));
      newNode = mqCreateXMLDoc(this.getCenterPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));

      this.setProperty("DrawTrigger", this.getDrawTrigger().intValue());
      this.setProperty("CoordinateType", this.getCoordinateType().intValue());
      this.setProperty("SymbolType", this.getSymbolType().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the value representing the symbolName of this object.
    * @param {String} symbolName The new SymbolName to be assigned to this object.
    * @type void
    */
   MQSymbolPrimitive.prototype.setSymbolName = function(symbolName){
      this.setProperty("SymbolName",symbolName);
   };
   /**
    * Returns the value representing the symbolName of this object.
    * @return The SymbolName of this object.
    * @type String
    */
   MQSymbolPrimitive.prototype.getSymbolName = function(){
      return this.getProperty("SymbolName");
   }
// End Class MQSymbolPrimitive

// Begin Class MQTextPrimitive
/* Inheirit from MQPrimitive */
MQTextPrimitive.prototype = new MQPrimitive();
MQTextPrimitive.prototype.constructor = MQTextPrimitive;
/**
 * Constructs a new MQTextPrimitive object.
 * @class Describes text to be placed on the map. The text is initially
 * located by the X/Y coordinate. The coordinate is converted into a
 * latitude/longitude point so the annotation can be placed in the
 * same geographical location after the map is manipulated.
 * @extends MQPrimitive
 * @see MQColorStyle
 * @see MQFontStyle
 * @see MQLatLng
 * @see MQPoint
 * @see MQConstants
 */
function MQTextPrimitive () {
   MQPrimitive.call(this);
   this.setM_Xpath("TextPrimitive");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getTEXTPRIMITIVE()));
   /**
    * Value to represent the x/y of the upper left of the map
    * @type MQPoint
    */
   var m_pt = new MQPoint("UpperLeftPoint");
   /**
    * Gets the x/y of the upper left of the map
    * @return The m_pt object.
    * @type MQPoint
    */
   this.getUpperLeftPoint = function() {
      return m_pt;
   };
   /**
    * Sets the x/y of the upper left of the map
    * @param {MQPoint} point The MQPoint to set m_pt to.
    * @type void
    */
   this.setUpperLeftPoint = function(point) {
      m_pt.setXY(point.getX(), point.getY());
   };
   /**
    * Value to represent the latitude/longitude of the upper left of the map
    * @type MQLatLng
    */
   var m_ll = new MQLatLng("UpperLeftLatLng");
   /**
    * Gets the latitude/longitude of the upper left of the map
    * @return The m_ll object.
    * @type MQLatLng
    */
   this.getUpperLeftLatLng = function() {
      return m_ll;
   };
   /**
    * Sets the latitude/longitude of the upper left of the map
    * @param {MQLatLng} latLng The MQLatLng to set m_ll to.
    * @type void
    */
   this.setUpperLeftLatLng = function(latLng) {
      m_ll.setLatLng(latLng.getLatitude(), latLng.getLongitude());
   };
   /**
    * Value to represent the color style to be used
    * @type MQColorStyle
    */
   var m_color = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_BLACK);
   /**
    * Gets the color.
    * @return The m_color type.
    * @type MQColorStyle
    */
   this.getColor = function() {
      return m_color;
   };
   /**
    * Sets the color.
    * @param {MQColorStyle} obj The MQColorStyle to set m_color type to.
    * @type void
    */
   this.setColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_color = obj;
         }
      }
   };
   /**
    * Value to represent the font style to be used
    * @type MQFontStyle
    */
   var m_nStyle = new MQFontStyle(MQCONSTANT.MQFONTSTYLE_BOXED);
   /**
    * Gets the font style.
    * @return The m_nStyle.
    * @type MQFontStyle
    */
   this.getStyle = function() {
      return m_nStyle;
   };
   /**
    * Sets the font style.
    * @param {MQFontStyle} obj The MQFontStyle to set m_nStyle type to.
    * @type void
    */
   this.setStyle = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQFontStyle"){
            m_nStyle = obj;
         }
      }
   };
   /**
    * Value to represent the background color style to be used
    * @type MQColorStyle
    */
   var m_bgdColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_WHITE);
   /**
    * Gets the background color.
    * @return The m_bgdColor type.
    * @type MQColorStyle
    */
   this.getBkgdColor = function() {
      return m_bgdColor;
   };
   /**
    * Sets the background color.
    * @param {MQColorStyle} obj The MQColorStyle to set m_bgdColor type to.
    * @type void
    */
   this.setBkgdColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_bgdColor = obj;
         }
      }
   };
   /**
    * Value to represent the box outline color style to be used
    * @type MQColorStyle
    */
   var m_lBoxOutlineColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_INVALID);
   /**
    * Gets the box outline color.
    * @return The m_lBoxOutlineColor type.
    * @type MQColorStyle
    */
   this.getBoxOutlineColor = function() {
      return m_lBoxOutlineColor;
   };
   /**
    * Sets the box outline color.
    * @param {MQColorStyle} obj The MQColorStyle to set m_lBoxOutlineColor type to.
    * @type void
    */
   this.setBoxOutlineColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_lBoxOutlineColor = obj;
         }
      }
   };
   /**
    * Value to represent the outline color style to be used
    * @type MQColorStyle
    */
   var m_lOutlineColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_INVALID);
   /**
    * Gets the outline color.
    * @return The m_lOutlineColor type.
    * @type MQColorStyle
    */
   this.getOutlineColor = function() {
      return m_lOutlineColor;
   };
   /**
    * Sets the outline color.
    * @param {MQColorStyle} obj The MQColorStyle to set m_lOutlineColor type to.
    * @type void
    */
   this.setOutlineColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_lOutlineColor = obj;
         }
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQTextPrimitive.prototype.getClassName = function(){
      return "MQTextPrimitive";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQTextPrimitive.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQTextPrimitive.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var latlng = this.getUpperLeftLatLng();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftLatLng")!==null)
         latlng.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftLatLng")));
      var point = this.getUpperLeftPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftPoint")!==null)
         point.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftPoint")));

      this.setDrawTrigger(new MQDrawTrigger(Math.floor(this.getProperty("DrawTrigger"))));
      this.setCoordinateType(new MQCoordinateType(Math.floor(this.getProperty("CoordinateType"))));
      this.setColor(new MQColorStyle(Math.floor(this.getProperty("Color"))));
      this.setStyle(new MQFontStyle(Math.floor(this.getProperty("Style"))));
      this.setBkgdColor(new MQColorStyle(Math.floor(this.getProperty("BkgdColor"))));
      this.setBoxOutlineColor(new MQColorStyle(Math.floor(this.getProperty("BoxOutlineColor"))));
      this.setOutlineColor(new MQColorStyle(Math.floor(this.getProperty("OutlineColor"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQTextPrimitive.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getUpperLeftLatLng().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftLatLng"));
      newNode = mqCreateXMLDoc(this.getUpperLeftPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftPoint"));

      this.setProperty("DrawTrigger", this.getDrawTrigger().intValue());
      this.setProperty("CoordinateType", this.getCoordinateType().intValue());
      this.setProperty("Color", this.getColor().intValue());
      this.setProperty("Style", this.getStyle().intValue());
      this.setProperty("BkgdColor", this.getBkgdColor().intValue());
      this.setProperty("BoxOutlineColor", this.getBoxOutlineColor().intValue());
      this.setProperty("OutlineColor", this.getOutlineColor().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the Text of this object.
    * @param {String} str The new Text of this object.
    * @type void
    */
   MQTextPrimitive.prototype.setText = function(str){
      this.setProperty("Text",str);
   };
   /**
    * Returns the Text of this object.
    * @return The new Text of this object.
    * @type String
    */
   MQTextPrimitive.prototype.getText = function(){
      return this.getProperty("Text");
   }
   /**
    * Sets the FontName of this object.
    * @param {String} str The new FontName of this object.
    * @type void
    */
   MQTextPrimitive.prototype.setFontName = function(str){
      this.setProperty("FontName",str);
   };
   /**
    * Returns the FontName of this object.
    * @return The new FontName of this object.
    * @type String
    */
   MQTextPrimitive.prototype.getFontName = function(){
      return this.getProperty("FontName");
   }
   /**
    * Sets the Width of this object.
    * @param {int} val The new Width of this object.
    * @type void
    */
   MQTextPrimitive.prototype.setWidth = function(val){
      this.setProperty("Width",val);
   };
   /**
    * Returns the Width of this object.
    * @return The new Width of this object.
    * @type int
    */
   MQTextPrimitive.prototype.getWidth = function(){
      return this.getProperty("Width");
   }
   /**
    * Sets the FontSize of this object.
    * @param {int} val The new FontSize of this object.
    * @type void
    */
   MQTextPrimitive.prototype.setFontSize = function(val){
      this.setProperty("FontSize",val);
   };
   /**
    * Returns the FontSize of this object.
    * @return The new FontSize of this object.
    * @type int
    */
   MQTextPrimitive.prototype.getFontSize = function(){
      return this.getProperty("FontSize");
   }
   /**
    * Sets the Margin of this object.
    * @param {int} val The new Margin of this object.
    * @type void
    */
   MQTextPrimitive.prototype.setMargin = function(val){
      this.setProperty("Margin",val);
   };
   /**
    * Returns the Margin of this object.
    * @return The new Margin of this object.
    * @type int
    */
   MQTextPrimitive.prototype.getMargin = function(){
      return this.getProperty("Margin");
   }
   /**
    * Sets the TextAlignment of this object.
    * @param {int} val The new TextAlignment of this object.
    * @type void
    */
   MQTextPrimitive.prototype.setTextAlignment = function(val){
      this.setProperty("TextAlignment",val);
   };
   /**
    * Returns the TextAlignment of this object.
    * @return The new TextAlignment of this object.
    * @type int
    */
   MQTextPrimitive.prototype.getTextAlignment = function(){
      return this.getProperty("TextAlignment");
   }
// End Class MQTextPrimitive

// Begin class MQFeatureSpecifier
/* Inheirit from MQObject */
MQFeatureSpecifier.prototype = new MQObject();
MQFeatureSpecifier.prototype.constructor = MQFeatureSpecifier;
/**
 * Constructs a new MQFeatureSpecifier object.
 * @class Describes FeatureSpecifier annotations to be placed on the map. The FeatureSpecifier is
 * converted into latitude/longitude points so it can be placed in the
 * same geographical location after the map is manipulated.
 * @extends MQObject
 * @see MQFeatureSpeciferAttributeType
 */
function MQFeatureSpecifier(){
   MQObject.call(this);
   this.setM_Xpath("FeatureSpecifier");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getFEATURESPECIFIER()));
   /**
    * Value to represent the Feature Specifer Attribute Type to be used
    * @type MQFeatureSpeciferAttributeType
    */
   var m_Type = new MQFeatureSpeciferAttributeType(MQCONSTANT.MQFEATURESPECIFERATTRIBUTETYPE_GEFID);
   /**
    * Gets the Feature Specifer Attribute Type.
    * @return The m_Type.
    * @type MQFeatureSpeciferAttributeType
    */
   this.getAttributeType = function() {
      return m_Type;
   };
   /**
    * Sets the Feature Specifer Attribute Type.
    * @param {MQFeatureSpeciferAttributeType} obj The MQFeatureSpeciferAttributeType to set m_Type to.
    * @type void
    */
   this.setAttributeType = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQFeatureSpeciferAttributeType"){
            m_Type = obj;
         }
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQFeatureSpecifier.prototype.getClassName = function(){
      return "MQFeatureSpecifier";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFeatureSpecifier.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Set attribute value member of the FeatureSpecifier.
    * @param {String} val The value member of the FeatureSpecifier.
    * @type void
    */
   MQFeatureSpecifier.prototype.setAttributeValue = function(val){
      this.setProperty("AttributeValue",val);
   };
   /**
    * Get attribute value member of the FeatureSpecifier.
    * @return The new value member of the FeatureSpecifier.
    * @type String
    */
   MQFeatureSpecifier.prototype.getAttributeValue = function(){
      return this.getProperty("AttributeValue");
   };
// End class MQFeatureSpecifier

// Begin class MQBaseDTStyle
/* Inheirit from MQObject */
MQBaseDTStyle.prototype = new MQObject();
MQBaseDTStyle.prototype.constructor = MQBaseDTStyle;
/**
 * Constructs a new MQBaseDTStyle object.
 * @class This is the base class for the DTStyle and DTStyleEx objects.
 * @extends MQObject
 * @see MQDTFeatureStyleEx
 * @see MQDTStyle
 * @see MQDTStyleEx
 */
function MQBaseDTStyle(){
   MQObject.call(this);
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQBaseDTStyle.prototype.getClassName = function(){
      return "MQBaseDTStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQBaseDTStyle.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Sets the DT of this object.
    * @param {int} val The new DT of this object.
    * @type void
    */
   MQBaseDTStyle.prototype.setDT = function(val){
      this.setProperty("DT",val);
   };
   /**
    * Returns the DT of this object.
    * @return The new DT of this object.
    * @type int
    */
   MQBaseDTStyle.prototype.getDT = function(){
      return this.getProperty("DT");
   }
   /**
    * Sets the HighScale of this object.
    * @param {int} val The new HighScale of this object.
    * @type void
    */
   MQBaseDTStyle.prototype.setHighScale = function(val){
      this.setProperty("HighScale",val);
   };
   /**
    * Returns the HighScale of this object.
    * @return The new HighScale of this object.
    * @type int
    */
   MQBaseDTStyle.prototype.getHighScale = function(){
      return this.getProperty("HighScale");
   }
   /**
    * Sets the LowScale of this object.
    * @param {int} val The new LowScale of this object.
    * @type void
    */
   MQBaseDTStyle.prototype.setLowScale = function(val){
      this.setProperty("LowScale",val);
   };
   /**
    * Returns the LowScale of this object.
    * @return The new LowScale of this object.
    * @type int
    */
   MQBaseDTStyle.prototype.getLowScale = function(){
      return this.getProperty("LowScale");
   };
   /**
    * Checks the equality of the values of two MQBaseDTStyle objects.
    * @return True if values are equal and false otherwise.
    * @type Boolean
    */
    MQBaseDTStyle.prototype.equals = function(type){
      if(type){
         try{
            var className = type.getClassName();
         } catch (error){
            alert("Invalid type for this function!");
            throw "Invalid type for this function!";
         }
         if(className === this.getClassName()){
            return (   this.getDT() === type.getDT() &&
                     this.getHighScale() === type.getHighScale() &&
                     this.getLowScale() === type.getLowScale());
         } else {
            alert("Invalid type for this function!");
            throw "Invalid type for this function!";
         }
      } else {
         alert("An MQBaseDTStyle parameter must be provided for this function!");
         throw "An MQBaseDTStyle parameter must be provided for this function!";
      }
   };
// End class MQBaseDTStyle

// Begin class MQDTStyle
/* Inheirit from MQBaseDTStyle */
MQDTStyle.prototype = new MQBaseDTStyle();
MQDTStyle.prototype.constructor = MQDTStyle;
/**
 * Constructs a new MQDTStyle object.
 * @class Contains the appearance characteristics of all features for a given
 * display type. These characteristics include the icon name, icon type
 * (Raster or Metafile), icon visible, label visible, low scale index,
 * and high scale index. The scale indexes indicate the range of map
 * scales at which the display type style applies. If the user desires
 * to create his own icon, it must be a .BMP, which is a raster image.
 *
 * In order to modify feature types other than points or use complex
 * style descriptions, use the Style File Editor application to design
 * complex styles to use with the DTStyleEx class. The Style File
 * Editor application can export complex styles as map style strings.
 * The DTStyleEx class has all the functionality described for DTStyle,
 * and additionally can modify or add styles for point, line, and
 * polygon map features using map style strings.
 * @extends MQBaseDTStyle
 */
function MQDTStyle(){
   MQBaseDTStyle.call(this);
   this.setM_Xpath("DTStyle");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getDTSTYLE()));
   /**
    * Value to represent the font color style to be used
    * @type MQColorStyle
    */
   var m_FontColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_INVALID);
   /**
    * Gets the color.
    * @return The m_FontColor type.
    * @type MQColorStyle
    */
   this.getFontColor = function() {
      return m_FontColor;
   };
   /**
    * Sets the color.
    * @param {MQColorStyle} obj The MQColorStyle to set m_FontColor type to.
    * @type void
    */
   this.setFontColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_FontColor = obj;
         }
      }
   };
   /**
    * Value to represent the font outline color style to be used
    * @type MQColorStyle
    */
   var m_FontOutlineColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_INVALID);
   /**
    * Gets the FontOutlineColor.
    * @return The m_FontOutlineColor type.
    * @type MQColorStyle
    */
   this.getFontOutlineColor = function() {
      return m_FontOutlineColor;
   };
   /**
    * Sets the FontOutlineColor.
    * @param {MQColorStyle} obj The MQColorStyle to set m_FontOutlineColor type to.
    * @type void
    */
   this.setFontOutlineColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_FontOutlineColor = obj;
         }
      }
   };
   /**
    * Value to represent the font box background color style to be used
    * @type MQColorStyle
    */
   var m_FontBoxBkgdColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_INVALID);
   /**
    * Gets the FontBoxBkgdColor.
    * @return The m_FontBoxBkgdColor type.
    * @type MQColorStyle
    */
   this.getFontBoxBkgdColor = function() {
      return m_FontBoxBkgdColor;
   };
   /**
    * Sets the FontBoxBkgdColor.
    * @param {MQColorStyle} obj The MQColorStyle to set m_FontBoxBkgdColor type to.
    * @type void
    */
   this.setFontBoxBkgdColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_FontBoxBkgdColor = obj;
         }
      }
   };
   /**
    * Value to represent the font box outline color style to be used
    * @type MQColorStyle
    */
   var m_FontBoxOutlineColor = new MQColorStyle(MQCONSTANT.MQCOLORSTYLE_INVALID);
   /**
    * Gets the FontBoxOutlineColor.
    * @return The m_FontBoxOutlineColor type.
    * @type MQColorStyle
    */
   this.getFontBoxOutlineColor = function() {
      return m_FontBoxOutlineColor;
   };
   /**
    * Sets the FontBoxOutlineColor.
    * @param {MQColorStyle} obj The MQColorStyle to set m_FontBoxOutlineColor type to.
    * @type void
    */
   this.setFontBoxOutlineColor = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQColorStyle"){
            m_FontBoxOutlineColor = obj;
         }
      }
   };
   /**
    * Value to represent the font style to be used
    * @type MQFontStyle
    */
   var m_FontStyle = new MQFontStyle(MQCONSTANT.MQFONTSTYLE_INVALID);
   /**
    * Gets the font.
    * @return The m_FontStyle type.
    * @type MQFontStyle
    */
   this.getFontStyle = function() {
      return m_FontStyle;
   };
   /**
    * Sets the font.
    * @param {MQFontStyle} obj The MQFontStyle to set m_FontStyle type to.
    * @type void
    */
   this.setFontStyle = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQFontStyle"){
            m_FontStyle = obj;
         }
      }
   };
   /**
    * Value to represent the symbol type to be used
    * @type MQSymbolType
    */
   var m_SymbolType = new MQSymbolType(MQCONSTANT.MQSYMBOLTYPE_RASTER);
   /**
    * Gets the color.
    * @return The m_SymbolType type.
    * @type MQSymbolType
    */
   this.getSymbolType = function() {
      return m_SymbolType;
   };
   /**
    * Sets the color.
    * @param {MQSymbolType} obj The MQSymbolType to set m_SymbolType type to.
    * @type void
    */
   this.setSymbolType = function(obj) {
      if(obj){
         if(obj.getClassName() === "MQSymbolType"){
            m_SymbolType = obj;
         }
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQDTStyle.prototype.getClassName = function(){
      return "MQDTStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDTStyle.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQDTStyle.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      this.setFontColor(new MQColorStyle(Math.floor(this.getProperty("FontColor"))));
      this.setFontOutlineColor(new MQColorStyle(Math.floor(this.getProperty("FontOutlineColor"))));
      this.setFontBoxBkgdColor(new MQColorStyle(Math.floor(this.getProperty("FontBoxBkgdColor"))));
      this.setFontBoxOutlineColor(new MQColorStyle(Math.floor(this.getProperty("FontBoxOutlineColor"))));
      this.setFontStyle(new MQFontStyle(Math.floor(this.getProperty("FeatureSpeciferAttributeType"))));
      this.setSymbolType(new MQSymbolType(Math.floor(this.getProperty("SymbolType"))));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQDTStyle.prototype.saveXml = function () {
      this.setProperty("FontColor", this.getFontColor().intValue());
      this.setProperty("FontOutlineColor", this.getFontOutlineColor().intValue());
      this.setProperty("FontBoxBkgdColor", this.getFontBoxBkgdColor().intValue());
      this.setProperty("FontBoxOutlineColor", this.getFontBoxOutlineColor().intValue());
      this.setProperty("FontStyle", this.getFontStyle().intValue());
      this.setProperty("SymbolType", this.getSymbolType().intValue());
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the SymbolName of this object.
    * @param {String} val The new SymbolName of this object.
    * @type void
    */
   MQDTStyle.prototype.setSymbolName = function(val){
      this.setProperty("SymbolName",val);
   };
   /**
    * Returns the SymbolName of this object.
    * @return The new SymbolName of this object.
    * @type String
    */
   MQDTStyle.prototype.getSymbolName = function(){
      return this.getProperty("SymbolName");
   };
   /**
    * Sets the FontName of this object.
    * @param {String} val The new FontName of this object.
    * @type void
    */
   MQDTStyle.prototype.setFontName = function(val){
      this.setProperty("FontName",val);
   };
   /**
    * Returns the FontName of this object.
    * @return The new FontName of this object.
    * @type String
    */
   MQDTStyle.prototype.getFontName = function(){
      return this.getProperty("FontName");
   };
   /**
    * Sets the Visible flag.
    * @param {Boolean} bFlag The Visible flag
    * @type void
    */
   MQDTStyle.prototype.setVisible = function(bFlag){
      this.setProperty("Visible", (bFlag===true)?1:0);
   };
   /**
    * Gets the Visible flag
    * @return true if a Visible = 1, false otherwise.
    * @type boolean
    */
   MQDTStyle.prototype.getVisible = function(){
      return (this.getProperty("Visible")==1)? true : false;
   };
   /**
    * Sets the LabelVisible flag.
    * @param {Boolean} bFlag The LabelVisible flag
    * @type void
    */
   MQDTStyle.prototype.setLabelVisible = function(bFlag){
      this.setProperty("LabelVisible", (bFlag===true)?1:0);
   };
   /**
    * Gets the LabelVisible flag
    * @return true if a LabelVisible = 1, false otherwise.
    * @type boolean
    */
   MQDTStyle.prototype.getLabelVisible = function(){
      return (this.getProperty("LabelVisible")==1)? true : false;
   };
   /**
    * Sets the FontSize of this object.
    * @param {int} val The new FontSize of this object.
    * @type void
    */
   MQDTStyle.prototype.setFontSize = function(val){
      this.setProperty("FontSize",val);
   };
   /**
    * Returns the FontSize of this object.
    * @return The new FontSize of this object.
    * @type int
    */
   MQDTStyle.prototype.getFontSize = function(){
      return this.getProperty("FontSize");
   }
   /**
    * Sets the FontBoxMargin of this object.
    * @param {int} val The new FontBoxMargin of this object.
    * @type void
    */
   MQDTStyle.prototype.setFontBoxMargin = function(val){
      this.setProperty("FontBoxMargin",val);
   };
   /**
    * Returns the FontBoxMargin of this object.
    * @return The new FontBoxMargin of this object.
    * @type int
    */
   MQDTStyle.prototype.getFontBoxMargin = function(){
      return this.getProperty("FontBoxMargin");
   }
// End class MQDTStyle

// Begin class MQDTStyleEx
/* Inheirit from MQBaseDTStyle */
MQDTStyleEx.prototype = new MQBaseDTStyle();
MQDTStyleEx.prototype.constructor = MQDTStyleEx;
/**
 * Constructs a new MQDTStyleEx object.
 * @class This is the base class for the DTStyle and DTStyleEx objects.
 * @extends MQBaseDTStyle
 */
function MQDTStyleEx(){
   MQBaseDTStyle.call(this);
   this.setM_Xpath("DTStyleEx");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getDTSTYLEEX()));
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQDTStyleEx.prototype.getClassName = function(){
      return "MQDTStyleEx";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDTStyleEx.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQDTStyleEx.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQDTStyleEx.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the StyleString of this object.
    * @param {String} val The new StyleString of this object.
    * @type void
    */
   MQDTStyleEx.prototype.setStyleString = function(val){
      this.setProperty("StyleString",val);
   };
   /**
    * Returns the StyleString of this object.
    * @return The new StyleString of this object.
    * @type String
    */
   MQDTStyleEx.prototype.getStyleString = function(){
      return this.getProperty("StyleString");
   };
// End class MQDTStyleEx

// Begin class MQDTFeatureStyleEx
/* Inheirit from MQDTStyle */
MQDTFeatureStyleEx.prototype = new MQDTStyleEx();
MQDTFeatureStyleEx.prototype.constructor = MQDTFeatureStyleEx;
/**
 * Constructs a new MQDTFeatureStyleEx object.
 * @class Contains the appearance characteristics of all features for a given
 * display type. These characteristics include the icon name, icon type
 * (Raster or Metafile), icon visible, label visible, low scale index,
 * and high scale index. The scale indexes indicate the range of map
 * scales at which the display type style applies. If the user desires
 * to create his own icon, it must be a .BMP, which is a raster image.
 *
 * The MQDTFeatureStyleEx class is very similar to DTStyleEx, but lets
 * developers specify what map features to override by providing its
 * name or unique ID (GEF ID) within a map data set.
 * @extends MQDTStyleEx
 * @see MQFeatureSpecifierCollection
 */
function MQDTFeatureStyleEx(){
   MQBaseDTStyle.call(this);
   this.setM_Xpath("DTStyleEx");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getDTFEATURESTYLEEX()));
   /**
    * Value to represent Feature Specifier Collection
    * @type MQFeatureSpecifierCollection
    */
   var m_Col = new MQFeatureSpecifierCollection("FeatureSpecifier");
   m_Col.setM_Xpath("FeatureSpecifierCollection");
   /**
    * Returns the m_Col object.
    * @return The m_Col object.
    * @type MQFeatureSpecifierCollection
    */
   this.getFeatureSpecifiers = function() {
      return m_Col;
   };
   /**
    * Sets the m_Col object.
    * @param {MQFeatureSpecifierCollection} col the MQFeatureSpecifierCollection to set m_Col to.
    * @type void
    */
   this.setFeatureSpecifiers = function(col) {
      if (mqIsClass(m_Col.getClassName(), col, false)){
         m_Col.removeAll();
         m_Col.append(col);
      }
   };
};
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQDTFeatureStyleEx.prototype.getClassName = function(){
      return "MQDTFeatureStyleEx";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDTFeatureStyleEx.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQDTFeatureStyleEx.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQDTFeatureStyleEx.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQDTStyleEx

// Begin Class MQMapCommand
/* Inheirit from MQObject */
MQMapCommand.prototype = new MQObject();
MQMapCommand.prototype.constructor = MQMapCommand;
/**
 * Constructs a new MQMapCommand object.
 * @class Allows actions (such as panning, zooming in, and zooming out) to be
 * performed on a map.
 * @extends MQObject
 */
function MQMapCommand () {
   MQObject.call(this);
   this.setM_Xpath("DTStyleEx");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getDTFEATURESTYLEEX()));
   /**
    * Value to represent Feature Specifier Collection
    * @type MQFeatureSpecifierCollection
    */
   var m_Col = new MQFeatureSpecifierCollection("FeatureSpecifier");
   m_Col.setM_Xpath("FeatureSpecifierCollection");
   /**
    * Returns the m_Col object.
    * @return The m_Col object.
    * @type MQFeatureSpecifierCollection
    */
   this.getFeatureSpecifiers = function() {
      return m_Col;
   };
   /**
    * Sets the m_Col object.
    * @param {MQFeatureSpecifierCollection} col the MQFeatureSpecifierCollection to set m_Col to.
    * @type void
    */
   this.setFeatureSpecifiers = function(col) {
      if (col.getClassName()==="MQFeatureSpecifierCollection")
         m_Col = col;
      else {
         alert("failure in setFeatureSpecifiers");
         throw "failure in setFeatureSpecifiers";
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQMapCommand.prototype.getClassName = function(){
      return "MQMapCommand";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQMapCommand.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQMapCommand

// Begin Class MQBestFit
/* Inheirit from MQMapCommand */
MQBestFit.prototype = new MQMapCommand();
MQBestFit.prototype.constructor = MQBestFit;
/**
 * Constructs a new MQBestFit object.
 * @class Calculates the best scale and center point of a map for the given
 * set of features in the Session. For example, if you place 20
 * points in a FeatureCollection object in your Session, adding a
 * BestFit object to the Session adjusts the MapState object so that
 * the map optimally displays all 20 points.
 * @extends MQMapCommand
 * @see MQDTCollection
 */
function MQBestFit () {
   MQMapCommand.call(this);
   this.setM_Xpath("BestFit");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getBESTFIT()));
   /**
    * Value to represent DT Collection
    * @type MQDTCollection
    */
   var m_DisplayTypes = new MQDTCollection();
   m_DisplayTypes.setM_Xpath("DisplayTypes");
   /**
    * Returns the m_DisplayTypes collection.
    * @return The m_DisplayTypes collection.
    * @type MQDTCollection
    *
    */
   this.getDisplayTypes = function(){
      return m_DisplayTypes;
   };
   /**
    * Sets the m_DisplayTypes collection.
    * @param {MQDTCollection} col The collection to set m_DisplayTypes to.
    * @type void
    *
    */
   this.setDisplayTypes = function(col){
      m_DisplayTypes.removeAll();
      m_DisplayTypes.append(col);
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQBestFit.prototype.getClassName = function(){
      return "MQBestFit";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQBestFit.prototype.getObjectVersion = function(){
      return 2;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQBestFit.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getDisplayTypes();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DisplayTypes")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DisplayTypes")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQBestFit.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getDisplayTypes().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "DisplayTypes"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the IncludePrimitives flag.
    * @param {Boolean} bFlag The IncludePrimitives flag
    * @type void
    */
   MQBestFit.prototype.setIncludePrimitives = function(bFlag){
      this.setProperty("IncludePrimitives", (bFlag===true)?1:0);
   };
   /**
    * Gets the IncludePrimitives flag
    * @return true if a IncludePrimitives = 1, false otherwise.
    * @type boolean
    */
   MQBestFit.prototype.getIncludePrimitives = function(){
      return (this.getProperty("IncludePrimitives")==1)? true : false;
   };
   /**
    * Sets the KeepCenter flag.
    * @param {Boolean} bFlag The KeepCenter flag
    * @type void
    */
   MQBestFit.prototype.setKeepCenter = function(bFlag){
      this.setProperty("KeepCenter", (bFlag===true)?1:0);
   };
   /**
    * Gets the KeepCenter flag
    * @return true if a KeepCenter = 1, false otherwise.
    * @type boolean
    */
   MQBestFit.prototype.getKeepCenter = function(){
      return (this.getProperty("KeepCenter")==1)? true : false;
   };
   /**
    * Sets the SnapToZoomLevel flag.
    * @param {Boolean} bFlag The SnapToZoomLevel flag
    * @type void
    */
   MQBestFit.prototype.setSnapToZoomLevel = function(bFlag){
      this.setProperty("SnapToZoomLevel", (bFlag===true)?1:0);
   };
   /**
    * Gets the SnapToZoomLevel flag
    * @return true if a SnapToZoomLevel = 1, false otherwise.
    * @type boolean
    */
   MQBestFit.prototype.getSnapToZoomLevel = function(){
      return (this.getProperty("SnapToZoomLevel")==1)? true : false;
   };
   /**
    * Sets the ScaleAdjustmentFactor of this object.
    * @param {Double} val The new ScaleAdjustmentFactor of this object.
    * @type void
    */
   MQBestFit.prototype.setScaleAdjustmentFactor = function(val){
      this.setProperty("ScaleAdjFactor",val);
   };
   /**
    * Returns the ScaleAdjustmentFactor of this object.
    * @return The new ScaleAdjustmentFactor of this object.
    * @type Double
    */
   MQBestFit.prototype.getScaleAdjustmentFactor = function(){
      return this.getProperty("ScaleAdjFactor");
   }
// End class MQBestFit

// Begin Class MQBestFitLL
/* Inheirit from MQMapCommand */
MQBestFitLL.prototype = new MQMapCommand();
MQBestFitLL.prototype.constructor = MQBestFitLL;
/**
 * Constructs a new MQBestFitLL object.
 * @class Calculates the best scale and center point of a map for the given
 * collection Lat/Lngs.  Adding a BestFitLL object to the Session
 * adjusts the MapState object so that the map optimally displays all
 * Lat/Lngs in the LatLngCollection set in the BestFitLL object.
 * @extends MQMapCommand
 * @see MQLatLngCollection
 */
function MQBestFitLL () {
   MQMapCommand.call(this);
   this.setM_Xpath("BestFitLL");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getBESTFITLL()));
   /**
    * Value to represent LatLng Collection
    * @type MQLatLngCollection
    */
   var m_LatLng = new MQLatLngCollection();
   m_LatLng.setM_Xpath("LatLngs");
   /**
    * Returns the m_LatLng collection.
    * @return The m_LatLng collection.
    * @type MQLatLngCollection
    *
    */
   this.getLatLngs = function(){
      return m_LatLng;
   };
   /**
    * Sets the m_LatLng collection.
    * @param {MQLatLngCollection} col The collection to set m_LatLng to.
    * @type void
    *
    */
   this.setLatLngs = function(col){
      m_LatLng.removeAll();
      m_LatLng.append(col);
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQBestFitLL.prototype.getClassName = function(){
      return "MQBestFitLL";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQBestFitLL.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQBestFitLL.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getLatLngs();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LatLngs")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQBestFitLL.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getLatLngs().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LatLngs"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the KeepCenter flag.
    * @param {Boolean} bFlag The KeepCenter flag
    * @type void
    */
   MQBestFitLL.prototype.setKeepCenter = function(bFlag){
      this.setProperty("KeepCenter", (bFlag===true)?1:0);
   };
   /**
    * Gets the KeepCenter flag
    * @return true if a KeepCenter = 1, false otherwise.
    * @type boolean
    */
   MQBestFitLL.prototype.getKeepCenter = function(){
      return (this.getProperty("KeepCenter")==1)? true : false;
   };
   /**
    * Sets the SnapToZoomLevel flag.
    * @param {Boolean} bFlag The SnapToZoomLevel flag
    * @type void
    */
   MQBestFitLL.prototype.setSnapToZoomLevel = function(bFlag){
      this.setProperty("SnapToZoomLevel", (bFlag===true)?1:0);
   };
   /**
    * Gets the SnapToZoomLevel flag
    * @return true if a SnapToZoomLevel = 1, false otherwise.
    * @type boolean
    */
   MQBestFitLL.prototype.getSnapToZoomLevel = function(){
      return (this.getProperty("SnapToZoomLevel")==1)? true : false;
   };
   /**
    * Sets the ScaleAdjustmentFactor of this object.
    * @param {Double} val The new ScaleAdjustmentFactor of this object.
    * @type void
    */
   MQBestFitLL.prototype.setScaleAdjustmentFactor = function(val){
      this.setProperty("ScaleAdjFactor",val);
   };
   /**
    * Returns the ScaleAdjustmentFactor of this object.
    * @return The new ScaleAdjustmentFactor of this object.
    * @type Double
    */
   MQBestFitLL.prototype.getScaleAdjustmentFactor = function(){
      return this.getProperty("ScaleAdjFactor");
   }
// End class MQBestFitLL

// Begin Class MQCenter
/* Inheirit from MQMapCommand */
MQCenter.prototype = new MQMapCommand();
MQCenter.prototype.constructor = MQCenter;
/**
 * Constructs a new MQCenter object.
 * @class Centers a map based on a mouse click. The new center point is
 * calculated in pixels and stored in the X and Y coordinates of this
 * object.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQCenter () {
   MQMapCommand.call(this);
   this.setM_Xpath("Center");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getCENTER()));
   /**
    * Value to represent center of the map
    * @type MQPoint
    */
   var m_Center = new MQPoint("CenterPoint");
   /**
    * Returns the m_Center.
    * @return The m_Center.
    * @type MQPoint
    *
    */
   this.getCenter = function(){
      return m_Center;
   };
   /**
    * Sets the m_Center.
    * @param {MQPoint} pt The point to set m_Center to.
    * @type void
    *
    */
   this.setCenter = function(pt){
      if (mqIsClass(m_Center.getClassName(), pt, false)){
         m_Center = pt.internalCopy(m_Center);
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQCenter.prototype.getClassName = function(){
      return "MQCenter";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQCenter.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQCenter.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getCenter();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQCenter.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQCenter

// Begin Class MQCenterLatLng
/* Inheirit from MQMapCommand */
MQCenterLatLng.prototype = new MQMapCommand();
MQCenterLatLng.prototype.constructor = MQCenterLatLng;
/**
 * Constructs a new MQCenterLatLng object.
 * @class Stores data to center the maps on a given point specified with
 * a latitude/longitude point.
 * @extends MQMapCommand
 * @see  MQLatLng
 */
function MQCenterLatLng () {
   MQMapCommand.call(this);
   this.setM_Xpath("CenterLatLng");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getCENTERLATLNG()));
   /**
    * Value to represent center of the map
    * @type MQLatLng
    */
   var m_Center = new MQLatLng("CenterLatLng");
   /**
    * Returns the m_Center.
    * @return The m_Center.
    * @type MQLatLng
    *
    */
   this.getCenter = function(){
      return m_Center;
   };
   /**
    * Sets the m_Center.
    * @param {MQLatLng} ll The LatLng to set m_Center to.
    * @type void
    *
    */
   this.setCenter = function(ll){
      if (mqIsClass(m_Center.getClassName(), ll, false)){
         m_Center = ll.internalCopy(m_Center);
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQCenterLatLng.prototype.getClassName = function(){
      return "MQCenterLatLng";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQCenterLatLng.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQCenterLatLng.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getCenter();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterLatLng")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQCenterLatLng.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterLatLng"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQCenterLatLng

// Begin Class MQPan
/* Inheirit from MQMapCommand */
MQPan.prototype = new MQMapCommand();
MQPan.prototype.constructor = MQPan;
/**
 * Constructs a new MQPan object.
 * @class Stores data to center the map on a given point without changing
 * its scale. Setting the X,Y coordinates moves the map viewport that number of
 * pixels left or right and up or down.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQPan () {
   MQMapCommand.call(this);
   this.setM_Xpath("Pan");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPAN()));
   /**
    * Value to represent center of the map
    * @type MQPoint
    */
   var m_Point = new MQPoint("DeltaPoint");
   /**
    * Returns the m_Point.
    * @return The m_Point.
    * @type MQPoint
    *
    */
   this.getPoint = function(){
      return m_Point;
   };
   /**
    * Sets the Delta X and Delta Y variables, which are the number of
    * pixels that the map viewport is to be moved in the horizontal and
    * vertical direction respectively.
    * @param {Double} dblX The number of pixels that the map viewport is to be moved in
    * the horizontal direction.  Negative indicates movement to the left,
    * positive to the right.
    * @param {Double} dblY The number of pixels that the map viewport is to be moved in
    * the vertical direction.  Negative indicates movement upward, positive downward.
    * @type void
    */
   this.setDeltaXY = function(dblX, dblY){
      m_Point.setXY(dblX, dblY);
   };
   /**
    * Sets the Delta Y variable, which is the number of pixels that the
    * map viewport is to be moved in the vertical direction.
    * @param {Double} dblY  The number of pixels that the map viewport is to be moved in
    * the vertical direction.  Negative indicates movement upward,
    * positive downward.
    * @type void
    */
   this.setDeltaY = function(dblY){
      m_Point.setY(dblY);
   };
   /**
    * Sets the Delta X variable, which is the number of pixels that the
    * map viewport is to be moved in the horizontal direction.
    * @param {Double} dblX The number of pixels that the map viewport is to be moved in
    * the horizontal direction.  Negative indicates movement to the
    * left, positive to the right.
    * @type void
    */
   this.setDeltaX = function(dblX){
      m_Point.setX(dblX);
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPan.prototype.getClassName = function(){
      return "MQPan";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPan.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQPan.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getPoint();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DeltaPoint")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DeltaPoint")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQPan.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getPoint().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "DeltaPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQPan

// Begin Class MQZoomIn
/* Inheirit from MQMapCommand */
MQZoomIn.prototype = new MQMapCommand();
MQZoomIn.prototype.constructor = MQZoomIn;
/**
 * Constructs a new MQZoomIn object.
 * @class Stores data to zoom in one level and center the map on a given
 * point. Setting the X,Y coordinates to the invalid Point results in a zoom
 * without changing the Center point.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQZoomIn () {
   MQMapCommand.call(this);
   this.setM_Xpath("ZoomIn");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getZOOMIN()));
   /**
    * Value to represent center of the map
    * @type MQPoint
    */
   var m_Center = new MQPoint("CenterPoint");
   /**
    * Returns the m_Center.
    * @return The m_Center.
    * @type MQPoint
    *
    */
   this.getCenter = function(){
      return m_Center;
   };
   /**
    * Sets the m_Center.
    * @param {MQPoint} pt The point to set m_Center to.
    * @type void
    *
    */
   this.setCenter = function(pt){
      m_Center = pt;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQZoomIn.prototype.getClassName = function(){
      return "MQZoomIn";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQZoomIn.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQZoomIn.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getCenter();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQZoomIn.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQZoomIn

// Begin Class MQZoomOut
/* Inheirit from MQMapCommand */
MQZoomOut.prototype = new MQMapCommand();
MQZoomOut.prototype.constructor = MQZoomOut;
/**
 * Constructs a new MQZoomOut object.
 * @class Stores data to zoom out one level and center the map on a given
 * point. Setting the X,Y coordinates to the invalid Point results in a zoom
 * without changing the Center point.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQZoomOut () {
   MQMapCommand.call(this);
   this.setM_Xpath("ZoomOut");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getZOOMOUT()));
   /**
    * Value to represent center of the map
    * @type MQPoint
    */
   var m_Center = new MQPoint("CenterPoint");
   /**
    * Returns the m_Center.
    * @return The m_Center.
    * @type MQPoint
    *
    */
   this.getCenter = function(){
      return m_Center;
   };
   /**
    * Sets the m_Center.
    * @param {MQPoint} pt The point to set m_Center to.
    * @type void
    *
    */
   this.setCenter = function(pt){
      m_Center = pt;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQZoomOut.prototype.getClassName = function(){
      return "MQZoomOut";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQZoomOut.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQZoomOut.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getCenter();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQZoomOut.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQZoomOut

// Begin Class MQZoomTo
/* Inheirit from MQMapCommand */
MQZoomTo.prototype = new MQMapCommand();
MQZoomTo.prototype.constructor = MQZoomTo;
/**
 * Constructs a new MQZoomTo object.
 * @class Stores data to zoom out one level and center the map on a given
 * point. Setting the X,Y coordinates to the invalid Point results in a zoom
 * without changing the Center point.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQZoomTo () {
   MQMapCommand.call(this);
   this.setM_Xpath("ZoomTo");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getZOOMTO()));
   /**
    * Value to represent center of the map
    * @type MQPoint
    */
   var m_Center = new MQPoint("CenterPoint");
   /**
    * Returns the m_Center.
    * @return The m_Center.
    * @type MQPoint
    */
   this.getCenter = function(){
      return m_Center;
   };
   /**
    * Sets the m_Center.
    * @param {MQPoint} pt The point to set m_Center to.
    * @type void
    */
   this.setCenter = function(pt){
      m_Center = pt;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQZoomTo.prototype.getClassName = function(){
      return "MQZoomTo";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQZoomTo.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    */
   MQZoomTo.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var obj = this.getCenter();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")!==null)
         obj.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/CenterPoint")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    */
   MQZoomTo.prototype.saveXml = function () {
      var newNode = mqCreateXMLDoc(this.getCenter().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "CenterPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Get zoom level index from the AutoMapCovswitch object ZoomLevels property.
    * Has no affect when not using map data selector.
    * @return The zoom level index.
    * @type Long
    */
   MQZoomTo.prototype.getZoomLevel = function () {
      return this.getProperty("ZoomLevel");
   };
   /**
    * Set zoom level index from the AutoMapCovswitch object ZoomLevels property.
    * Has no affect when not using map data selector.
    * @param {Long} val The zoom level index.
    * @type void
    */
   MQZoomTo.prototype.setZoomLevel = function (val) {
      this.setProperty("ZoomLevel", val);
   };
// End class MQZoomTo

// Begin Class MQZoomToRect
/* Inheirit from MQMapCommand */
MQZoomToRect.prototype = new MQMapCommand();
MQZoomToRect.prototype.constructor = MQZoomToRect;
/**
 * Constructs a new MQZoomToRect object.
 * @class Stores data to zoom to a rectangle specified with pixel
 * coordinates.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQZoomToRect () {
   MQMapCommand.call(this);
   this.setM_Xpath("ZoomToRect");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getZOOMTORECT()));
   /**
    * Value to represent upper left of the map
    * @type MQPoint
    */
   var m_UpperLeft = new MQPoint("UpperLeftPoint");
   /**
    * Value to represent lower right of the map
    * @type MQPoint
    */
   var m_LowerRight = new MQPoint("LowerRightPoint");
    /**
     * Returns the upper left and lower right corners of this rectangle.
     * @param {MQPoint} ulpt The upper left corner of this rectangular zoom area.
     * @param {MQPoint} lrpt The lower right corner of this rectangular zoom area.
     * @void
     */
   this.getRect = function(ulpt, lrpt){
      ulpt.loadXml(m_UpperLeft.copy().saveXml());
      lrpt.loadXml(m_LowerRight.copy().saveXml());
   };
   /**
    * Sets the upper left and lower right corners of the rectangle that
    * is to be zoomed to.
    * @param {MQPoint} ulpt The X,Y coordinates of the upper left corner of
    * this rectangular zoom area.
    * @param {MQPoint} lrpt The X,Y coordinates of the lower right corner
    * of this rectangular zoom area.
    * @type void
    *
    */
   this.setRect = function(ulpt, lrpt){
      if (mqIsClass(m_UpperLeft.getClassName(), ulpt, false) && mqIsClass(m_LowerRight.getClassName(), lrpt, false)){
         m_UpperLeft = ulpt.internalCopy(m_UpperLeft);
         m_LowerRight= lrpt.internalCopy(m_LowerRight);
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQZoomToRect.prototype.getClassName = function(){
      return "MQZoomToRect";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQZoomToRect.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQZoomToRect.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var ul = new MQPoint("UpperLeftPoint"), lr = new MQPoint("LowerRightPoint");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftPoint")!==null)
         ul.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftPoint")));
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightPoint")!==null)
         lr.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightPoint")));
      this.setRect(ul, lr);
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQZoomToRect.prototype.saveXml = function () {
      var ul = new MQPoint("UpperLeftPoint"), lr = new MQPoint("LowerRightPoint");
      this.getRect(ul, lr);
      var newNode = mqCreateXMLDoc(ul.saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftPoint"));
      newNode = mqCreateXMLDoc(lr.saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LowerRightPoint"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQZoomToRect

// Begin Class MQZoomToRectLatLng
/* Inheirit from MQMapCommand */
MQZoomToRectLatLng.prototype = new MQMapCommand();
MQZoomToRectLatLng.prototype.constructor = MQZoomToRectLatLng;
/**
 * Constructs a new MQZoomToRectLatLng object.
 * @class Stores data to zoom to a rectangle specified with
 * latitude/longitude points.
 * @extends MQMapCommand
 * @see  MQPoint
 */
function MQZoomToRectLatLng () {
   MQMapCommand.call(this);
   this.setM_Xpath("ZoomToRectLatLng");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getZOOMTORECTLATLNG()));
   /**
    * Value to represent upper left of the map
    * @type MQLatLng
    */
   var m_UpperLeft = new MQLatLng("UpperLeftLatLng");
   /**
    * Value to represent lower right of the map
    * @type MQLatLng
    */
   var m_LowerRight = new MQLatLng("LowerRightLatLng");
    /**
     * Returns the upper left and lower right corners of this rectangle.
     * @param {MQLatLng} ulll The upper left corner of this rectangular zoom area.
     * @param {MQLatLng} lrll The lower right corner of this rectangular zoom area.
     * @void
     */
   this.getRect = function(ulll, lrll){
      ulll.loadXml(m_UpperLeft.copy().saveXml());
      lrll.loadXml(m_LowerRight.copy().saveXml());
   };
   /**
    * Sets the upper left and lower right corners of the rectangle that
    * is to be zoomed to.
    * @param {MQLatLng} ulll The X,Y coordinates of the upper left corner of
    * this rectangular zoom area.
    * @param {MQLatLng} lrll The X,Y coordinates of the lower right corner
    * of this rectangular zoom area.
    * @type void
    *
    */
   this.setRect = function(ulll, lrll){
      if (mqIsClass(m_UpperLeft.getClassName(), ulll, false) && mqIsClass(m_LowerRight.getClassName(), lrll, false)){
         m_UpperLeft = ulll.internalCopy(m_UpperLeft);
         m_LowerRight= lrll.internalCopy(m_LowerRight);
      }
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQZoomToRectLatLng.prototype.getClassName = function(){
      return "MQZoomToRectLatLng";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQZoomToRectLatLng.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQZoomToRectLatLng.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var ul = new MQLatLng("UpperLeftLatLng"), lr = new MQLatLng("LowerRightLatLng");
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftLatLng")!==null)
         ul.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/UpperLeftLatLng")));
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightLatLng")!==null)
         lr.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/LowerRightLatLng")));
      this.setRect(ul, lr);
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQZoomToRectLatLng.prototype.saveXml = function () {
      var ul = new MQLatLng("UpperLeftLatLng"), lr = new MQLatLng("LowerRightLatLng");
      this.getRect(ul, lr);
      var newNode = mqCreateXMLDoc(ul.saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "UpperLeftLatLng"));
      newNode = mqCreateXMLDoc(lr.saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "LowerRightLatLng"));
      return mqXmlToStr(this.getM_XmlDoc());
   };
// End class MQZoomToRectLatLng

// Begin class MQType
/**
 * Constructs a new MQType object.
 * @class Base Type to encapsulate any common functions of the enum type pattern objects.
 */
function MQType(){};
   /**
    * Checks the equality of the values of two MQType objects.
    * @return True if values are equal and false otherwise.
    * @type Boolean
    */
    MQType.prototype.equals = function(type){
      if(type){
         try{
            var className = type.getClassName();
         } catch (error){
            alert("Invalid type for this function!");
            throw "Invalid type for this function!";
         }
         if(className=== this.getClassName()){
            return (this.intValue() === type.intValue());
         } else {
            alert("Invalid type for this function!");
            throw "Invalid type for this function!";
         }
      } else {
         alert("An MQType parameter must be provided for this function!");
         throw "An MQType parameter must be provided for this function!";
      }
   };
// End class MQType

// Begin class MQRouteType
/* Inheirit from MQType */
MQRouteType.prototype = new MQType();
MQRouteType.prototype.constructor = MQRouteType;
/**
 * Constructs a new MQRouteType object.
 * @class Constants to specify the type of route wanted.
 * @extends MQType
 */
function MQRouteType(val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQROUTETYPE_FASTEST:             value = val; break;
      case MQCONSTANT.MQROUTETYPE_SHORTEST:          value = val; break;
      case MQCONSTANT.MQROUTETYPE_PEDESTRIAN:          value = val; break;
      case MQCONSTANT.MQROUTETYPE_OPTIMIZED:            value = val; break;
      case MQCONSTANT.MQROUTETYPE_SELECT_DATASET_ONLY:    value = val; break;
      default:
         alert(val + " is an invalid value for MQRouteType!");
         throw val + " invalid value for MQRouteType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRouteType.prototype.getClassName = function(){
      return "MQRouteType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRouteType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQRouteType

// Begin class MQNarrativeType
/* Inheirit from MQType */
MQNarrativeType.prototype = new MQType();
MQNarrativeType.prototype.constructor = MQNarrativeType;
/**
 * Constructs a new MQNarrativeType object.
 * @class Constants to specify the type of route wanted.
 * @extends MQType
 */
function MQNarrativeType (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    */
   var value = -2;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQNARRATIVETYPE_DEFAULT:   value = val; break;
      case MQCONSTANT.MQNARRATIVETYPE_HTML:    value = val; break;
      case MQCONSTANT.MQNARRATIVETYPE_NONE:    value = val; break;
      default:
         alert(val + " is an invalid value for MQNarrativeType!");
         throw val + " invalid value for MQNarrativeType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQNarrativeType.prototype.getClassName = function(){
      return "MQNarrativeType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQNarrativeType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQNarrativeType

// Begin class MQCoordinateType
/* Inheirit from MQType */
MQCoordinateType.prototype = new MQType();
MQCoordinateType.prototype.constructor = MQCoordinateType;
/**
 * Constructs a new MQCoordinateType object.
 * @class Constants to specify the type of coordinate the primitives should use.
 * @extends MQType
 */
function MQCoordinateType (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -2;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQCOORDINATETYPE_DISPLAY:    value = val; break;
      case MQCONSTANT.MQCOORDINATETYPE_GEOGRAPHIC: value = val; break;
      default:
         alert(val + " is an invalid value for MQCoordinateType!");
         throw val + " invalid value for MQCoordinateType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQCoordinateType.prototype.getClassName = function(){
      return "MQCoordinateType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQCoordinateType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQCoordinateType

// Begin class MQFeatureSpeciferAttributeType
/* Inheirit from MQType */
MQFeatureSpeciferAttributeType.prototype = new MQType();
MQFeatureSpeciferAttributeType.prototype.constructor = MQFeatureSpeciferAttributeType;
/**
 * Constructs a new MQFeatureSpeciferAttributeType object.
 * @class Constants for the attribute type of a FeatureSpecifier object.
 * Used to select the attribute of a feature you want to match.
 * @extends MQType
 */
function MQFeatureSpeciferAttributeType (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQFEATURESPECIFERATTRIBUTETYPE_GEFID:    value = val; break;
      case MQCONSTANT.MQFEATURESPECIFERATTRIBUTETYPE_NAME:    value = val; break;
      default:
         alert(val + " is an invalid value for MQFeatureSpeciferAttributeType!");
         throw val + " invalid value for MQFeatureSpeciferAttributeType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQFeatureSpeciferAttributeType.prototype.getClassName = function(){
      return "MQFeatureSpeciferAttributeType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFeatureSpeciferAttributeType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQFeatureSpeciferAttributeType

// Begin class MQSymbolType
/* Inheirit from MQType */
MQSymbolType.prototype = new MQType();
MQSymbolType.prototype.constructor = MQSymbolType;
/**
 * Constructs a new MQSymbolType object.
 * @class Constants for the symbol type in a DTStyle.
 * @extends MQType
 */
function MQSymbolType (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQSYMBOLTYPE_RASTER:    value = val; break;
      case MQCONSTANT.MQSYMBOLTYPE_VECTOR:    value = val; break;
      default:
         alert(val + " is an invalid value for MQSymbolType!");
         throw val + " invalid value for MQSymbolType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQSymbolType.prototype.getClassName = function(){
      return "MQSymbolType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSymbolType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQSymbolType

// Begin class MQMatchType
/* Inheirit from MQType */
MQMatchType.prototype = new MQType();
MQMatchType.prototype.constructor = MQMatchType;
/**
 * Constructs a new MQMatchType object.
 * @class Constants for the symbol type in a DTStyle.
 * @extends MQType
 */
function MQMatchType (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQMATCHTYPE_LOC:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_INTR:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_NEARBLK:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_REPBLK:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_BLOCK:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA1:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA2:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA3:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA4:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA5:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA6:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_AA7:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_PC1:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_PC2:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_PC3:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_PC4:    value = val; break;
      case MQCONSTANT.MQMATCHTYPE_POI:    value = val; break;
      default:
         alert(val + " is an invalid value for MQMatchType!");
         throw val + " invalid value for MQMatchType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQMatchType.prototype.getClassName = function(){
      return "MQMatchType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQMatchType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQMatchType

// Begin class MQQualityType
/* Inheirit from MQType */
MQQualityType.prototype = new MQType();
MQQualityType.prototype.constructor = MQQualityType;
/**
 * Constructs a new MQQualityType object.
 * @class Constants for the symbol type in a DTStyle.
 * @extends MQType
 */
function MQQualityType (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQQUALITYTYPE_EXACT:    value = val; break;
      case MQCONSTANT.MQQUALITYTYPE_GOOD:    value = val; break;
      case MQCONSTANT.MQQUALITYTYPE_APPROX:    value = val; break;
      default:
         alert(val + " is an invalid value for MQQualityType!");
         throw val + " invalid value for MQQualityType!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQQualityType.prototype.getClassName = function(){
      return "MQQualityType";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQQualityType.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQQualityType

// Begin class MQDrawTrigger
/* Inheirit from MQType */
MQDrawTrigger.prototype = new MQType();
MQDrawTrigger.prototype.constructor = MQDrawTrigger;
/**
 * Constructs a new MQDrawTrigger object.
 * @class Constants for trigger Draw Triggers
 * @extends MQType
 */
function MQDrawTrigger (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQDRAWTRIGGER_AFTER_POLYGONS:    value = val; break;
      case MQCONSTANT.MQDRAWTRIGGER_AFTER_ROUTE_HIGHLIGHT: value = val; break;
      case MQCONSTANT.MQDRAWTRIGGER_AFTER_TEXT: value = val; break;
      case MQCONSTANT.MQDRAWTRIGGER_BEFORE_POLYGONS: value = val; break;
      case MQCONSTANT.MQDRAWTRIGGER_BEFORE_ROUTE_HIGHLIGHT: value = val; break;
      case MQCONSTANT.MQDRAWTRIGGER_BEFORE_TEXT: value = val; break;
      default:
         alert(val + " is an invalid value for MQDrawTrigger!");
         throw val + " invalid value for MQDrawTrigger!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQDrawTrigger.prototype.getClassName = function(){
      return "MQDrawTrigger";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDrawTrigger.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQDrawTrigger

// Begin class MQPenStyle
/* Inheirit from MQType */
MQPenStyle.prototype = new MQType();
MQPenStyle.prototype.constructor = MQPenStyle;
/**
 * Constructs a new MQPenStyle object.
 * @class Pen styles for Rectangle and Line primitives.
 * @extends MQType
 */
function MQPenStyle (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQPENSTYLE_DASH:    value = val; break;
      case MQCONSTANT.MQPENSTYLE_DASH_DOT: value = val; break;
      case MQCONSTANT.MQPENSTYLE_DASH_DOT_DOT:    value = val; break;
      case MQCONSTANT.MQPENSTYLE_SOLID: value = val; break;
      case MQCONSTANT.MQPENSTYLE_DOT:    value = val; break;
      case MQCONSTANT.MQPENSTYLE_NONE: value = val; break;
      default:
         alert(val + " is an invalid value for MQPenStyle!");
         throw val + " invalid value for MQPenStyle!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQPenStyle.prototype.getClassName = function(){
      return "MQPenStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPenStyle.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQPenStyle

// Begin class MQFontStyle
/* Inheirit from MQType */
MQFontStyle.prototype = new MQType();
MQFontStyle.prototype.constructor = MQFontStyle;
/**
 * Constructs a new MQFontStyle object.
 * @class Constants for the font style in a DTStyle. When using DTStyles
 * you may reset the font style back to the its default style from
 * the style file state by specifying mqFontInvalid.
 * @extends MQType
 */
function MQFontStyle (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -2;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQFONTSTYLE_BOLD:    value = val; break;
      case MQCONSTANT.MQFONTSTYLE_BOXED: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_DOT:    value = val; break;
      case MQCONSTANT.MQFONTSTYLE_ITALICS: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_MAX_VALUE:    value = val; break;
      case MQCONSTANT.MQFONTSTYLE_NORMAL: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_OUTLINED: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_SEMIBOLD: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_STRIKEOUT: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_THIN: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_UNDERLINE: value = val; break;
      case MQCONSTANT.MQFONTSTYLE_INVALID: value = val; break;
      default:
         alert(val + " is an invalid value for MQFontStyle!");
         throw val + " invalid value for MQFontStyle!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQFontStyle.prototype.getClassName = function(){
      return "MQFontStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFontStyle.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQFontStyle

// Begin class MQColorStyle
/* Inheirit from MQType */
MQColorStyle.prototype = new MQType();
MQColorStyle.prototype.constructor = MQColorStyle;
/**
 * Constructs a new MQColorStyle object.
 * @class Pen styles for Rectangle and Line primitives.
 * @extends MQType
 */
function MQColorStyle (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = MQCONSTANT.MQCOLORSTYLE_INVALID;
   if(val!==null){
      value = val;
   }
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQColorStyle.prototype.getClassName = function(){
      return "MQColorStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQColorStyle.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Returns the RGB value representing the color in the default sRGB
    * ColorModel. (Bits 24-31 are alpha, 16-23 are red, 8-15 are green, 0-7 are
    * blue). Alpha is defaulted to 255.
    * @return the RGB value representing this object.
    * @type int
    */
   MQColorStyle.prototype.getRGB = function(){
      var rgb = -16777216;
      var a = parseInt(parseInt(this.intValue() / 65536) % 256);
      var b = parseInt(parseInt(parseInt(this.intValue() / 256) % 256) * 256);
      var c = parseInt(parseInt(this.intValue() % 256) * 65536);
      return rgb + a + b + c;
   }
// End class MQColorStyle

// Begin class MQFillStyle
/* Inheirit from MQType */
MQFillStyle.prototype = new MQType();
MQFillStyle.prototype.constructor = MQFillStyle;
/**
 * Constructs a new MQFillStyle object.
 * @class Pen styles for Rectangle and Line primitives.
 * @extends MQType
 */
function MQFillStyle (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -1;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQFILLSTYLE_SOLID:    value = val; break;
      case MQCONSTANT.MQFILLSTYLE_BDIAGONAL: value = val; break;
      case MQCONSTANT.MQFILLSTYLE_CROSS:    value = val; break;
      case MQCONSTANT.MQFILLSTYLE_DIAG_CROSS: value = val; break;
      case MQCONSTANT.MQFILLSTYLE_FDIAGONAL:    value = val; break;
      case MQCONSTANT.MQFILLSTYLE_HORIZONTAL: value = val; break;
      case MQCONSTANT.MQFILLSTYLE_VERTICAL:    value = val; break;
      case MQCONSTANT.MQFILLSTYLE_NONE: value = val; break;
      default:
         alert(val + " is an invalid value for MQFillStyle!");
         throw val + " invalid value for MQFillStyle!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQFillStyle.prototype.getClassName = function(){
      return "MQFillStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFillStyle.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQFillStyle

// Begin class MQDistanceUnits
/* Inheirit from MQType */
MQDistanceUnits.prototype = new MQType();
MQDistanceUnits.prototype.constructor = MQDistanceUnits;
 /**
 * Constructs a new MQDistanceUnits object.
 * @class Constants to specify the type of units to use when calculating distance.
 * @param {int} val Used to determine a miles or kilometers unit. Miles is the
 * default type if nothing is handed into the constructor.
 * @see MQGeoAddress
 * @extends MQType
 */
function MQDistanceUnits (val) {

   // Default value is miles
   /**
    * Value to represent the type of units to use
    * @type int
    */
   var value = 0;
   val = val || 0;
   switch (val)
   {
      case MQCONSTANT.MQDISTANCEUNITS_MILES:      value = val; break;
      case MQCONSTANT.MQDISTANCEUNITS_KILOMETERS: value = val; break;
      default:
         alert(val + " is an invalid value for MQDistanceUnits!");
         throw val + " invalid value for MQDistanceUnist!";
   };
   /**
     * Gets value.
     * @return The value value
     * @type int
     */
   this.getValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQDistanceUnits.prototype.getClassName = function(){
      return "MQDistanceUnits";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDistanceUnits.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQDistanceUnits

// Begin class MQRouteResultsCode
/* Inheirit from MQType */
MQRouteResultsCode.prototype = new MQType();
MQRouteResultsCode.prototype.constructor = MQRouteResultsCode;
/**
 * Constructs a new MQRouteResultsCode object.
 * @class Constants to specify the type of route result.
 * @extends MQType
 */
function MQRouteResultsCode (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -2;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQROUTERESULTSCODE_NOT_SPECIFIED:    value = val; break;
      case MQCONSTANT.MQROUTERESULTSCODE_SUCCESS:          value = val; break;
      case MQCONSTANT.MQROUTERESULTSCODE_INVALID_LOCATION: value = val; break;
      case MQCONSTANT.MQROUTERESULTSCODE_ROUTE_FAILURE:    value = val; break;
      case MQCONSTANT.MQROUTERESULTSCODE_NO_DATASET_FOUND: value = val; break;
      default:
         alert(val + " is an invalid value for MQRouteResultsCode!");
         throw val + " invalid value for MQRouteResultsCode!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRouteResultsCode.prototype.getClassName = function(){
      return "MQRouteResultsCode";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRouteResultsCode.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQRouteResultsCode

// Begin class MQRouteMatrixResultsCode
/* Inheirit from MQType */
MQRouteMatrixResultsCode.prototype = new MQType();
MQRouteMatrixResultsCode.prototype.constructor = MQRouteMatrixResultsCode;
/**
 * Constructs a new MQRouteMatrixResultsCode object.
 * @class Constants to specify the type of route result.
 * @extends MQType
 */
function MQRouteMatrixResultsCode (val) {
   /**
    * Value to represent the type and preset to a invalid value
    * @type int
    *
    */
   var value = -2;
   // Prevent values except constants that are allowed
   switch (val)
   {
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_NOT_SPECIFIED:          value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_SUCCESS:                value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_INVALID_LOCATION:       value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_ROUTE_FAILURE:          value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_NO_DATASET_FOUND:       value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_INVALID_OPTION:         value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_PARTIAL_SUCCESS:        value = val; break;
      case MQCONSTANT.MQROUTEMATRIXRESULTSCODE_EXCEEDED_MAX_LOCATIONS: value = val; break;
      default:
         alert(val + " is an invalid value for MQRouteMatrixResultsCode!");
         throw val + " invalid value for MQRouteMatrixResultsCode!";
   };
   /**
    * Gets the integer value of this type.
    * @return The integer of value of this type.
    * @type int
    */
   this.intValue = function(){
      return value;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQRouteMatrixResultsCode.prototype.getClassName = function(){
      return "MQRouteMatrixResultsCode";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQRouteMatrixResultsCode.prototype.getObjectVersion = function(){
      return 0;
   };
// End class MQRouteMatrixResultsCode

// Begin class MQLocationCollection
/* Inheirit from MQObjectCollection */
MQLocationCollection.prototype = new MQObjectCollection(32678);
MQLocationCollection.prototype.constructor = MQLocationCollection;
/**
  * Constructs a new MQLocationCollection object.
  * @class Contains a collection of Location objects, usually Geocode results.
  * The Geocode results are in the form of <code><b>MQGeoAddress</b></code>
  * objects.
  * @param {String} strMQLocationType The type of MQLocation descedent to check for
  * @extends MQObjectCollection
  * @see MQLocation
  * @see MQAddress
  * @see MQGeoAddress
  * @see MQSingleLineAddress
  */
function MQLocationCollection() {
   MQObjectCollection.call(this, 32678);
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getLOCATIONCOLLECTION()));
   this.setM_Xpath("LocationCollection");
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQLocationCollection.prototype.getClassName = function(){
      return "MQLocationCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQLocationCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQLocationCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var loc = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            if(nodes[count].nodeName==="Address"){
               loc = new MQAddress();
               loc.loadXml(mqXmlToStr(nodes[count]));
            }else if(nodes[count].nodeName==="GeoAddress"){
               loc = new MQGeoAddress();
               loc.loadXml(mqXmlToStr(nodes[count]));
            }else if(nodes[count].nodeName==="SingleLineAddress"){
               loc = new MQSingleLineAddress();
               loc.loadXml(mqXmlToStr(nodes[count]));
            }
            this.add(loc);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQLocationCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
   /**
    * Is this object an MQGeoAddress or an MQAddress or an MQSingleLineAddress
    * @return True if valid, false otherwise
    * @type MQLocation
    *
    */
   MQLocationCollection.prototype.isValidObject = function(obj){
      if(obj){
         if(obj.getClassName()==="MQGeoAddress" || obj.getClassName()==="MQAddress" || obj.getClassName()==="MQSingleLineAddress"){
            return true;
         }
      }
      return false;
   };
// End class MQLocationCollection



// Begin class MQLocationCollectionCollection
/* Inheirit from MQObjectCollection */
MQLocationCollectionCollection.prototype = new MQObjectCollection(32678);
MQLocationCollectionCollection.prototype.constructor = MQLocationCollectionCollection;
/**
  * Constructs a new MQLocationCollectionCollection object.
  * @class Contains a collection of Location Collection objects, usually Batch Geocode results.
  * The Geocode results are in the form of <code><b>MQGeoAddress</b></code>
  * objects.
  * @extends MQObjectCollection
  * @see MQLocationCollection
  */
function MQLocationCollectionCollection() {
   MQObjectCollection.call(this, 32678);
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getLOCATIONCOLLECTIONCOLLECTION()));
   this.setM_Xpath("LocationCollectionCollection");
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQLocationCollectionCollection.prototype.getClassName = function(){
      return "MQLocationCollectionCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQLocationCollectionCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQLocationCollectionCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var loc = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            loc = new MQLocationCollection();
            loc.loadXml(mqXmlToStr(nodes[count]));
            this.add(loc);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQLocationCollectionCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
   /**
    * Is this object an MQLocationCollection
    * @return True if valid, false otherwise
    * @type MQLocation
    *
    */
   MQLocationCollectionCollection.prototype.isValidObject = function(obj){
      if(obj){
         if(obj.getClassName()==="MQLocationCollection"){
            return true;
         }
      }
      return false;
   };
// End class MQLocationCollectionCollection



// Begin class MQSignCollection
/* Inheirit from MQObjectCollection */
MQSignCollection.prototype = new MQObjectCollection(32678);
MQSignCollection.prototype.constructor = MQSignCollection;
/**
  * Constructs a new MQSignCollection object.
  * @class A collection of Sign objects.
  * @param {String} itemXpath The xpath of the items in the collection
  * @extends MQObjectCollection
  * @see MQSign
  */
function MQSignCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   this.setValidClassName("MQSign");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSIGNCOLLECTION()));
   this.setM_Xpath("SignCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQSignCollection.prototype.getClassName = function(){
      return "MQSignCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSignCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQSignCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var sign = null;
         // iterate through xml and create objects for collection
         if(this.getValidClassName()==="MQSign"){
            for (var count=minCount;count < maxCount; count++){
               sign = new MQSign();
               sign.setM_Xpath(this.getM_itemXpath());
               sign.loadXml(mqXmlToStr(nodes[count]));
               this.add(sign);
            }
            }
      }
   };

   /**
    * Assigns the xml that relates to this object.
    * @param {Node} node of the xml document to be imported.
    * @type void
    * @private
    *
    */
   MQSignCollection.prototype.loadXmlFromNode = function (node) {

      var xmlDoc = mqCreateXMLDocImportNode(node);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var sign = null;
         // iterate through xml and create objects for collection
         if(this.getValidClassName()==="MQSign"){
            for (var count=minCount;count < maxCount; count++){
               sign = new MQSign();
                sign.setM_Xpath(this.getM_itemXpath());
                sign.loadXmlFromNode(nodes[count]);
               this.add(sign);
            }
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQSignCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQSignCollection

// Begin class MQPointCollection
/* Inheirit from MQObjectCollection */
MQPointCollection.prototype = new MQObjectCollection(32678);
MQPointCollection.prototype.constructor = MQPointCollection;
/**
  * Constructs a new MQPointCollection object.
  * @class A collection of Point objects.
  * @param {String} itemXpath The xpath of the items in the collection
  * @extends MQObjectCollection
  * @see MQPoint
  */
function MQPointCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   this.setValidClassName("MQPoint");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPOINTCOLLECTION()));
   this.setM_Xpath("PointCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQPointCollection.prototype.getClassName = function(){
      return "MQPointCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPointCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQPointCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var pnt = null;
         // iterate through xml and create objects for collection
         if(this.getValidClassName()==="MQPoint"){
            for (var count=minCount;count < maxCount; count++){
							var x;
							var y;
							if(nodes[count].firstChild!==null){
								 x = nodes[count].firstChild.nodeValue;
							}
							count++;
							if(nodes[count].firstChild!==null){
								 y = nodes[count].firstChild.nodeValue;
							}
               pnt = new MQPoint(x,y);
               this.add(pnt);
            }
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQPointCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQPointCollection


// Begin class MQDBLayerQueryCollection
/* Inheirit from MQObjectCollection */
MQDBLayerQueryCollection.prototype = new MQObjectCollection(32678);
MQDBLayerQueryCollection.prototype.constructor = MQDBLayerQueryCollection;
/**
  * Constructs a new MQDBLayerQueryCollection object.
  * @class A collection of MQDBLayerQuery objects.
  * @param {String} itemXpath The xpath of the items in the collection
  * @extends MQObjectCollection
  * @see MQDBLayerQuery
  */
function MQDBLayerQueryCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   this.setValidClassName("MQDBLayerQuery");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSIGNCOLLECTION()));
   this.setM_Xpath("DBLayerQueryCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQDBLayerQueryCollection.prototype.getClassName = function(){
      return "MQDBLayerQueryCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDBLayerQueryCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQDBLayerQueryCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var sign = null;
         // iterate through xml and create objects for collection
         if(this.getValidClassName()==="MQDBLayerQuery"){
            for (var count=minCount;count < maxCount; count++){
               sign = new MQDBLayerQuery();
               sign.setM_Xpath(this.getM_itemXpath());
               sign.loadXml(mqXmlToStr(nodes[count]));
               this.add(sign);
            }
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQDBLayerQueryCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQDBLayerQueryCollection

// Begin class MQManeuverCollection
/* Inheirit from MQObjectCollection */
MQManeuverCollection.prototype = new MQObjectCollection(32678);
MQManeuverCollection.prototype.constructor = MQManeuverCollection;
/**
  * Constructs a new MQManeuverCollection object.
  * @class A collection of Maneuver objects which are used to annotate the
  * map.
  * @param {String} itemXpath The xpath of the items in the collection
  * @extends MQObjectCollection
  * @see MQManeuver
  */
function MQManeuverCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   this.setValidClassName("MQManeuver");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getMANEUVERCOLLECTION()));
   this.setM_Xpath("ManeuverCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQManeuverCollection.prototype.getClassName = function(){
      return "MQManeuverCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQManeuverCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQManeuverCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var maneuver = null;
         // iterate through xml and create objects for collection
         if(this.getValidClassName()==="MQManeuver"){
            for (var count=minCount;count < maxCount; count++){
               maneuver = new MQManeuver();
               maneuver.setM_Xpath(this.getM_itemXpath());
               maneuver.loadXml(mqXmlToStr(nodes[count]));
               this.add(maneuver);
            }
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQManeuverCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQManeuverCollection

// Begin class MQTrekRouteCollection
/* Inheirit from MQObjectCollection */
MQTrekRouteCollection.prototype = new MQObjectCollection(32678);
MQTrekRouteCollection.prototype.constructor = MQTrekRouteCollection;
/**
  * Constructs a new MQTrekRouteCollection object.
  * @class A collection of TrekRoute objects which are used to annotate the
  * map.
  * @param {String} itemXpath The xpath of the items in the collection
  * @extends MQObjectCollection
  * @see MQTrekRoute
  */
function MQTrekRouteCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   this.setValidClassName("MQTrekRoute");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getTREKROUTECOLLECTION()));
   this.setM_Xpath("TrekRouteCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQTrekRouteCollection.prototype.getClassName = function(){
      return "MQTrekRouteCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQTrekRouteCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQTrekRouteCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var trek = null;
         // iterate through xml and create objects for collection
         if(this.getValidClassName()==="MQTrekRoute"){
            for (var count=minCount;count < maxCount; count++){
               trek = new MQTrekRoute();
               trek.setM_Xpath(this.getM_itemXpath());
               trek.loadXml(mqXmlToStr(nodes[count]));
               this.add(trek);
            }
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQTrekRouteCollection.prototype.saveXml = function () {
  	  var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQTrekRouteCollection

// Begin class MQIntCollection
/* Inheirit from MQObjectCollection */
MQIntCollection.prototype = new MQObjectCollection(32678);
MQIntCollection.prototype.constructor = MQIntCollection;
/**
  * Constructs a new MQIntCollection object.
  * @class Contains a collection of ints.
  * @param {String} itemXpath The xpath to the item
  * @extends MQObjectCollection
  */
function MQIntCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("int");
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   if(this.getClassName() === "MQIntCollection"){
      this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getINTCOLLECTION()));
       this.setM_Xpath("IntCollection");
   }
}
  /**
   * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQIntCollection.prototype.getClassName = function(){
      return "MQIntCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQIntCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml The xml to be assigned.
    * @type void
    *
    */
   MQIntCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var str = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
              if(nodes[count].firstChild!==null){
                str = parseInt(nodes[count].firstChild.nodeValue);
              }else {
                 str = 0;
              }
            this.add(str);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQIntCollection.prototype.saveXml = function () {
   	  var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = "<" + this.getM_itemXpath() + ">" + this.get(i) + "</" + this.getM_itemXpath() + ">";
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQIntCollection

// Begin class MQDTCollection
/* Inheirit from MQIntCollection */
MQDTCollection.prototype = new MQIntCollection("Item");
MQDTCollection.prototype.constructor = MQDTCollection;
/**
  * Constructs a new MQDTCollection object.
  * @class Contains a collection of display type codes.
  * @param {String} itemXpath The xpath to the item
  * @extends MQIntCollection
  */
function MQDTCollection(itemXpath) {
   MQIntCollection.call(this, itemXpath);
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getDTCOLLECTION()));
   this.setM_Xpath("DTCollection");
};
  /**
   * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQDTCollection.prototype.getClassName = function(){
      return "MQDTCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQDTCollection.prototype.getObjectVersion = function(){
      return 1;
   };
// End class MQDTCollection

// Begin class MQFeatureCollection
/* Inheirit from MQObjectCollection */
MQFeatureCollection.prototype = new MQObjectCollection(32678);
MQFeatureCollection.prototype.constructor = MQFeatureCollection;
/**
  * Constructs a new MQFeatureCollection object.
  * @class A collection of Feature objects.
  * @extends MQObjectCollection
  * @see MQLineFeature
  * @see MQPointFeature
  * @see MQPolygonFeature
  */
function MQFeatureCollection() {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("ALL");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getFEATURECOLLECTION()));
   this.setM_Xpath("FeatureCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQFeatureCollection.prototype.getClassName = function(){
      return "MQFeatureCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFeatureCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQFeatureCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var feat = null;
         var nodeName = "";
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            nodeName = nodes[count].nodeName;
            if(nodeName==="LineFeature"){
               feat = new MQLineFeature();
               feat.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodeName==="PointFeature"){
               feat = new MQPointFeature();
               feat.loadXmlFromNode(nodes[count]);
            } else if(nodeName==="PolygonFeature"){
               feat = new MQPolygonFeature();
               feat.loadXml(mqXmlToStr(nodes[count]));
            }
            this.add(feat);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQFeatureCollection.prototype.saveXml = function () {
   	  var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Version=\"" + this.getObjectVersion() + "\" Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQFeatureCollection

// Begin class MQFeatureSpecifierCollection
/* Inheirit from MQObjectCollection */
MQFeatureSpecifierCollection.prototype = new MQObjectCollection(32678);
MQFeatureSpecifierCollection.prototype.constructor = MQFeatureSpecifierCollection;
/**
  * Constructs a new MQFeatureSpecifierCollection object.
  * @class A collection of MQFeatureSpecifier objects.
  * @extends MQObjectCollection
  * @see MQFeatureSpecifier
  */
function MQFeatureSpecifierCollection() {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("MQFeatureSpecifier");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getFEATURESPECIFIERCOLLECTION()));
   this.setM_Xpath("FeatureCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQFeatureSpecifierCollection.prototype.getClassName = function(){
      return "MQFeatureSpecifierCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQFeatureSpecifierCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQFeatureSpecifierCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var feat = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            if(nodes[count].nodeName==="FeatureSpecifier"){
               feat = new MQFeatureSpecifier();
               feat.loadXml(mqXmlToStr(nodes[count]));
            }
            this.add(feat);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQFeatureSpecifierCollection.prototype.saveXml = function () {
	  var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQFeatureSpecifierCollection

// Begin class MQGeocodeOptionsCollection
/* Inheirit from MQObjectCollection */
MQGeocodeOptionsCollection.prototype = new MQObjectCollection(32678);
MQGeocodeOptionsCollection.prototype.constructor = MQGeocodeOptionsCollection;
/**
  * Constructs a new MQGeocodeOptionsCollection object.
  * @class A collection of MQGeocodeOptions objects.
  * @extends MQObjectCollection
  * @see MQGeocodeOptions
  */
function MQGeocodeOptionsCollection() {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("MQGeocodeOptions");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getGEOCODEOPTIONSCOLLECTION()));
   this.setM_Xpath("GeocodeOptionsCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQGeocodeOptionsCollection.prototype.getClassName = function(){
      return "MQGeocodeOptionsCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQGeocodeOptionsCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQGeocodeOptionsCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var geoO = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            if(nodes[count].nodeName==="GeocodeOptions"){
               geoO = new MQGeocodeOptions();
               geoO.loadXml(mqXmlToStr(nodes[count]));
            }
            this.add(geoO);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQGeocodeOptionsCollection.prototype.saveXml = function () {
	  var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQGeocodeOptionsCollection

// Begin class MQCoverageStyle
/* Inheirit from MQObjectCollection */
MQCoverageStyle.prototype = new MQObjectCollection(32678);
MQCoverageStyle.prototype.constructor = MQCoverageStyle;
/**
  * Constructs a new MQCoverageStyle object.
  * @class A collection of DTStyle objects. DTStyle objects contain
  * information necessary to display various features on a map.
  * @extends MQObjectCollection
  * @see MQBaseDTStyle
  */
function MQCoverageStyle() {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("ALL");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getCOVERAGESTYLE()));
   this.setM_Xpath("CoverageStyle");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQCoverageStyle.prototype.getClassName = function(){
      return "MQCoverageStyle";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQCoverageStyle.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQCoverageStyle.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var dt = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            if(nodes[count].nodeName==="DTStyle"){
               dt = new MQDTStyle();
               dt.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="DTStyleEx"){
               dt = new MQDTStyleEx();
               dt.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="DTFeatureStyleEx"){
               dt = new MQDTFeatureStyleEx();
               dt.loadXml(mqXmlToStr(nodes[count]));
            }
            if(dt!==null){
               this.add(dt);
            }
            dt = null;
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQCoverageStyle.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<CoverageStyle Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "<Name>" + this.getProperty("Name") + "</Name>";
      strRetArray[strRetArray.length] = "</CoverageStyle>";
      var strRet = strRetArray.join("");
      return strRet;
   };
   /**
    * Sets the name of the CoverageStyle.
    * @param {String} strName Name of CoverageStyle.
    * @type void
    */
   MQCoverageStyle.prototype.setName = function(strName){
      this.setProperty("Name",strName);
   };
   /**
    * Returns the name of the CoverageStyle.
    * @return The value of Name
    * @type String
    */
   MQCoverageStyle.prototype.getName = function(){
      return this.getProperty("Name");
   };
// End class MQCoverageStyle

// Begin class MQPrimitiveCollection
/* Inheirit from MQObjectCollection */
MQPrimitiveCollection.prototype = new MQObjectCollection(32678);
MQPrimitiveCollection.prototype.constructor = MQPrimitiveCollection;
/**
  * Constructs a new MQPrimitiveCollection object.
  * @class A collection of Primitive objects which are used to annotate the
  * map. Some examples of Primitive objects are: Ellipse, Icon, Line,
  * Polygon, Rectangle, and TextAnnotation.
  * @extends MQObjectCollection
  * @see MQPrimitive
  * @see MQEllipsePrimitive
  * @see MQLinePrimitive
  * @see MQPolygonPrimitive
  * @see MQRectanglePrimitive
  * @see MQTextPrimitive
  * @see MQSymbolPrimitive
  */
function MQPrimitiveCollection() {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("ALL");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getPRIMITIVECOLLECTION()));
   this.setM_Xpath("PrimitiveCollection");
}
   /**
    * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQPrimitiveCollection.prototype.getClassName = function(){
      return "MQPrimitiveCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQPrimitiveCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQPrimitiveCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var prim = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            if(nodes[count].nodeName==="EllipsePrimitive"){
               prim = new MQEllipsePrimitive();
               prim.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="LinePrimitive"){
               prim = new MQLinePrimitive();
               prim.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="PolygonPrimitive"){
               prim = new MQPolygonPrimitive();
               prim.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="RectanglePrimitive"){
               prim = new MQRectanglePrimitive();
               prim.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="TextPrimitive"){
               prim = new MQTextPrimitive();
               prim.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="SymbolPrimitive"){
               prim = new MQSymbolPrimitive();
               prim.loadXml(mqXmlToStr(nodes[count]));
            }
            this.add(prim);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQPrimitiveCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQPrimitiveCollection

// Begin class MQStringCollection
/* Inheirit from MQObjectCollection */
MQStringCollection.prototype = new MQObjectCollection(32678);
MQStringCollection.prototype.constructor = MQStringCollection;
/**
  * Constructs a new MQStringCollection object.
  * @class Contains a collection of ints.
  * @param {String} itemXpath The xpath to the item
  * @extends MQObjectCollection
  */
function MQStringCollection(itemXpath) {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("String");
   if (itemXpath){
      this.setM_itemXpath(itemXpath);
   }
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSTRINGCOLLECTION()));
   this.setM_Xpath("StringCollection");
}
  /**
   * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQStringCollection.prototype.getClassName = function(){
      return "MQStringCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQStringCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml The xml to be assigned.
    * @type void
    *
    */
   MQStringCollection.prototype.loadXml = function (strXml) {
      this.removeAll();
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;

           var str = null;
         // iterate through xml and create objects for collection
           for (var count=minCount;count < maxCount; count++){
              if(nodes[count].firstChild!==null){
              str = nodes[count].firstChild.nodeValue;
              } else {
                 str = "";
              }
            this.add(str);
           }
      }
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {Node} node of the xml document to be imported.
    * @type void
    * @private
    */
   MQStringCollection.prototype.loadXmlFromNode = function (node) {
		this.setM_XmlDoc(mqCreateXMLDocImportNode(node));
		var xmlDoc = this.getM_XmlDoc();
		if (xmlDoc!==null){
			var root = xmlDoc.documentElement;
			var nodes = root.childNodes;
			var maxCount = nodes.length;
			maxCount = (maxCount < 32678) ? maxCount : 32678;
			var minCount = 0;           var str = null;
			// iterate through xml and create objects for collection
			for (var count=minCount;count < maxCount; count++){
				if(nodes[count].firstChild!==null){
				str = nodes[count].firstChild.nodeValue;
				} else {
					str = "";
				}
				this.add(str);
			}
		}
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQStringCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = "<" + this.getM_itemXpath() + ">" + this.get(i) + "</" + this.getM_itemXpath() + ">";
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
// End class MQStringCollection

// Begin class MQStrColCollection
/* Inheirit from MQObjectCollection */
MQStrColCollection.prototype = new MQObjectCollection(32678);
MQStrColCollection.prototype.constructor = MQStrColCollection;
/**
  * Constructs a new MQStrColCollection object.
  * @class Contains a collection of StringCollections.
  * @param {String} itemXpath The xpath to the item
  * @extends MQObjectCollection
  * @see MQStringCollection
  */
function MQStrColCollection() {
   MQObjectCollection.call(this, 32678);
   this.setValidClassName("MQStringCollection");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSTRCOLCOLLECTION()));
}
  /**
   * Returns the text name of this class.
   * @return The text name of this class.
   * @type String
   */
   MQStrColCollection.prototype.getClassName = function(){
      return "MQStrColCollection";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQStrColCollection.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQStrColCollection.prototype.saveXml = function () {
      var strRetArray = new Array();
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRet = strRetArray.join("");
      return strRet;
   };
// End class MQStrColCollection

// Begin Class MQAutoGeocodeCovSwitch
/* Inheirit from MQObject */
MQAutoGeocodeCovSwitch.prototype = new MQObject();
MQAutoGeocodeCovSwitch.prototype.constructor = MQAutoGeocodeCovSwitch;
/**
 * Constructs a new MQAutoGeocodeCovSwitch object.
 * @class Stores geocode coverage switching parameters.
 * @extends MQObject
 */
function MQAutoGeocodeCovSwitch () {
   MQObject.call(this);
   this.setM_Xpath("AutoGeocodeCovSwitch");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getAUTOGEOCODECOVSWITCH()));
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQAutoGeocodeCovSwitch.prototype.getClassName = function(){
      return "MQAutoGeocodeCovSwitch";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQAutoGeocodeCovSwitch.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQAutoGeocodeCovSwitch.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQAutoGeocodeCovSwitch.prototype.saveXml = function () {
      return mqXmlToStr(this.getM_XmlDoc());
   };
   /**
    * Sets the name of the Geocode coverage switching rules to use.  Names of
    * coverage switching rules are defined in the mqserver.ini file.
    * @param {String} strName Name of coverage switching rules to use.
    * @type void
    */
   MQAutoGeocodeCovSwitch.prototype.setName = function(strName){
      this.setProperty("Name",strName);
   };
   /**
    * Gets the name of the Geocode coverage switching rules being used.
    * @return The value of Name
    * @type String
    */
   MQAutoGeocodeCovSwitch.prototype.getName = function(){
      return this.getProperty("Name");
   };
   /**
    * Sets the maximum matches to be returned for this object.
    * Default = 1
    * @param {Long} lMaxMatches max matches for this object
    * @type void
    */
   MQAutoGeocodeCovSwitch.prototype.setMaxMatches = function(lMaxMatches){
      this.setProperty("MaxMatches",lMaxMatches);
   };
   /**
    * Gets the maximum matches to be returned for this object.
    * @return The max matches for this object
    * @type Long
    */
   MQAutoGeocodeCovSwitch.prototype.getMaxMatches = function(){
      return this.getProperty("MaxMatches");
   };
// End class MQAutoGeocodeCovSwitch

// Begin Class MQAutoRouteCovSwitch
/* Inheirit from MQObject */
MQAutoRouteCovSwitch.prototype = new MQObject();
MQAutoRouteCovSwitch.prototype.constructor = MQAutoRouteCovSwitch;
/**
 * Constructs a new MQAutoRouteCovSwitch object.
 * @class Stores route coverage switching parameters.
  * @param {String} strXpath The type of xPath for this class
 * @extends MQObject
 * @see MQIntCollection
 */
function MQAutoRouteCovSwitch (strXpath) {
   MQObject.call(this);
   if(this.getClassName() === "MQAutoRouteCovSwitch"){
      if (strXpath){
         this.setM_Xpath(strXpath);
         this.setM_XmlDoc(mqCreateXMLDoc("<" + strXpath + "><Name/><DataVendorCodeUsage>0</DataVendorCodeUsage><DataVendorCodes Count=\"0\"/></" + strXpath + ">"));
      } else {
         this.setM_Xpath("AutoRouteCovSwitch");
         this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getAUTOROUTECOVSWITCH()));
      }
   }
   /**
    * Value to represent the data vendor codes
    * @type MQIntCollection
    *
    */
   var m_DataVendorCodes = new MQIntCollection();
   m_DataVendorCodes.setM_Xpath("DataVendorCodes");
   /**
    * Returns the m_DataVendorCodes collection.
    * @return The m_DataVendorCodes collection.
    * @type MQIntCollection
    *
    */
   this.getDataVendorCodes = function() {
      return m_DataVendorCodes;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQAutoRouteCovSwitch.prototype.getClassName = function(){
      return "MQAutoRouteCovSwitch";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQAutoRouteCovSwitch.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQAutoRouteCovSwitch.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var dataVendorCodes = this.getDataVendorCodes();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DataVendorCodes")!==null)
         dataVendorCodes.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DataVendorCodes")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQAutoRouteCovSwitch.prototype.saveXml = function () {
      // get inner object nodes
        var newNode = mqCreateXMLDoc(this.getDataVendorCodes().saveXml());
        // replace nodes
        this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "DataVendorCodes"));
        return mqXmlToStr(this.getM_XmlDoc());

   };
   /**
    * Sets the name of the Route coverage switching rules to use.  Names of
    * coverage switching rules are defined in the mqserver.ini file.
    * @param {String} strName Name of coverage switching rules to use.
    * @type void
    */
   MQAutoRouteCovSwitch.prototype.setName = function(strName){
      this.setProperty("Name",strName);
   };
   /**
    * Gets the name of the Route coverage switching rules being used.
    * @return The value of Name
    * @type String
    */
   MQAutoRouteCovSwitch.prototype.getName = function(){
      return this.getProperty("Name");
   };
   /**
    * Sets the DataVendorCodeUsage for this object.
    * @param {int} lDataVendorCodeUsage DataVendorCodeUsage for this object
    * @type void
    */
   MQAutoRouteCovSwitch.prototype.setDataVendorCodeUsage = function(lDataVendorCodeUsage){
      this.setProperty("DataVendorCodeUsage",lDataVendorCodeUsage);
   };
   /**
    * Gets the DataVendorCodeUsage for this object.
    * @return The DataVendorCodeUsage for this object
    * @type int
    */
   MQAutoRouteCovSwitch.prototype.getDataVendorCodeUsage = function(){
      return this.getProperty("DataVendorCodeUsage");
   };
// End class MQAutoRouteCovSwitch

// Begin Class MQAutoMapCovSwitch
/* Inheirit from MQAutoRouteCovSwitch */
MQAutoMapCovSwitch.prototype = new MQAutoRouteCovSwitch();
MQAutoMapCovSwitch.prototype.constructor = MQAutoMapCovSwitch;
/**
 * Constructs a new MQAutoMapCovSwitch object.
 * @class Stores map coverage switching parameters. Add this object to a
 * Session to enable automatic map coverage switching for the session.
 * @param {String} strXpath The type of xPath for this class
 * @extends MQAutoRouteCovSwitch
 * @see MQIntCollection
 */
function MQAutoMapCovSwitch (strXpath) {
   MQAutoRouteCovSwitch.call(this);
   if (strXpath){
      this.setM_Xpath(strXpath);
      this.setM_XmlDoc(mqCreateXMLDoc("<" + strXpath + "><Name/><Style/><DataVendorCodeUsage>0</DataVendorCodeUsage><DataVendorCodes Count=\"0\"/><ZoomLevels Count=\"14\"><Item>6000</Item><Item>12000</Item><Item>24000</Item><Item>48000</Item><Item>96000</Item><Item>192000</Item><Item>400000</Item><Item>800000</Item><Item>1600000</Item><Item>3000000</Item><Item>6000000</Item><Item>12000000</Item><Item>24000000</Item><Item>48000000</Item></ZoomLevels></" + strXpath + ">"));
   } else {
      this.setM_Xpath("AutoMapCovSwitch");
      this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getAUTOMAPCOVSWITCH()));
   }
   /**
    * Value to represent the Zoom Levels
    * @type MQIntCollection
    */
   var m_ZoomLevels = new MQIntCollection();
   m_ZoomLevels.setM_Xpath("ZoomLevels");
   m_ZoomLevels.add(6000);
   m_ZoomLevels.add(12000);
   m_ZoomLevels.add(24000);
   m_ZoomLevels.add(48000);
   m_ZoomLevels.add(96000);
   m_ZoomLevels.add(192000);
   m_ZoomLevels.add(400000);
   m_ZoomLevels.add(800000);
   m_ZoomLevels.add(1600000);
   m_ZoomLevels.add(3000000);
   m_ZoomLevels.add(6000000);
   m_ZoomLevels.add(12000000);
   m_ZoomLevels.add(24000000);
   m_ZoomLevels.add(48000000);
   /**
    * Returns the m_ZoomLevels collection.
    * @return The m_ZoomLevels collection.
    * @type MQIntCollection
    */
   this.getZoomLevels = function() {
      return m_ZoomLevels;
   };
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQAutoMapCovSwitch.prototype.getClassName = function(){
      return "MQAutoMapCovSwitch";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQAutoMapCovSwitch.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQAutoMapCovSwitch.prototype.loadXml = function (strXml) {
      this.setM_XmlDoc(mqCreateXMLDoc(strXml));
      var dataVendorCodes = this.getDataVendorCodes();
      if(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DataVendorCodes")!==null)
         dataVendorCodes.loadXml(mqXmlToStr(mqGetNode(this.getM_XmlDoc(),"/" + this.getM_Xpath() + "/DataVendorCodes")));
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQAutoMapCovSwitch.prototype.saveXml = function () {
      // get inner object nodes and replace nodes
      var newNode = mqCreateXMLDoc(this.getDataVendorCodes().saveXml());
      this.setM_XmlDoc(mqReplaceElementNode(this.getM_XmlDoc(), newNode, "DataVendorCodes"));
      return mqXmlToStr(this.getM_XmlDoc());

   };
   /**
    * Sets the name of the style alias to be selected for the selected mapping
    * coverage or blank for default.
    * @param {String} strStyle Name of the style alias to use.
    * @type void
    */
   MQAutoMapCovSwitch.prototype.setStyle = function(strStyle){
      this.setProperty("Style",strStyle);
   };
   /**
    * Gets the name of the style alias to be selected for the selected mapping
    * coverage or blank for default.
    * @return The value of Style
    * @type String
    */
   MQAutoMapCovSwitch.prototype.getStyle = function(){
      return this.getProperty("Style");
   };
// End class MQAutoMapCovSwitch

// Begin Class MQSession
/* Inheirit from MQObject */
MQSession.prototype = new MQObjectCollection(32678);
MQSession.prototype.constructor = MQSession;
/**
 * @class Uniquely identifies a MQSession.
 * Maintains the state of the current user's requests. Contains zero
 * or one of the following objects: MQMapCommand, MQMapState,
 * MQDBLayerQueryCollection, MQFeatureCollection, and MQCoverageStyle.
 * @see MQMapCommand
 * @see MQMapState
 * @see MQDBLayerQueryCollection
 * @see MQFeatureCollection
 * @see MQCoverageStyle
 * @see MQPrimitiveCollection
 * @see MQAutoMapCovSwitch
 * @extends MQObject
 */
function MQSession(){
   MQObjectCollection.call(this, 32678);
   this.setM_Xpath("Session");
   this.setM_XmlDoc(mqCreateXMLDocFromNode(MQXML.getSESSION()));
}
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQSession.prototype.getClassName = function(){
      return "MQSession";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQSession.prototype.getObjectVersion = function(){
      return 0;
   };
   /**
    * Assigns the xml that relates to this object.
    * @param {String} strXml the xml to be assigned.
    * @type void
    *
    */
   MQSession.prototype.loadXml = function (strXml) {
      var xmlDoc = mqCreateXMLDoc(strXml);
      this.setM_XmlDoc(xmlDoc);
      if (xmlDoc!==null){
         var root = xmlDoc.documentElement;
         var nodes = root.childNodes;
         var maxCount = nodes.length;
         maxCount = (maxCount < 32678) ? maxCount : 32678;
         var minCount = 0;
         var obj = null;
         // iterate through xml and create objects for collection
         for (var count=minCount;count < maxCount; count++){
            obj = null;
            if(nodes[count].nodeName==="MapState"){
               obj = new MQMapState();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="CoverageStyle"){
               obj = new MQCoverageStyle();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="AutoMapCovSwitch"){
               obj = new MQAutoMapCovSwitch();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="DBLayerQueryCollection"){
               obj = new MQDBLayerQueryCollection();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="FeatureCollection"){
               obj = new MQFeatureCollection();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="PrimitiveCollection"){
               obj = new MQPrimitiveCollection();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="Center"){
               obj = new MQCenter();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="CenterLL"){
               obj = new MQCenterLL();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="ZoomIn"){
               obj = new MQZoomIn();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="ZoomOut"){
               obj = new MQZoomOut();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="ZoomTo"){
               obj = new MQZoomTo();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="ZoomToRect"){
               obj = new MQZoomToRect();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="ZoomToRectLL"){
               obj = new MQZoomToRectLL();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="Pan"){
               obj = new MQPan();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="BestFit"){
               obj = new MQBestFit();
               obj.loadXml(mqXmlToStr(nodes[count]));
            } else if(nodes[count].nodeName==="BestFitLL"){
               obj = new MQBestFitLL();
               obj.loadXml(mqXmlToStr(nodes[count]));
            }
           if (obj!==null)
              this.add(obj);
         }
      }
   };
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQSession.prototype.saveXml = function () {
      var strRetArray = new Array();
      strRetArray[strRetArray.length] = "<" + this.getM_Xpath() + " Count=\"" + this.getSize() + "\">";
      // iterate through objects and add them here
      var size = this.getSize();
      for(var i = 0; i < size; i++){
         strRetArray[strRetArray.length] = this.get(i).saveXml();
      }
      strRetArray[strRetArray.length] = "</" + this.getM_Xpath() + ">";
      var strRet = strRetArray.join("");
      return strRet;
   };
   /**
    * Adds a MQObject to the collection. Calls <code>addOne(MQObject, null)</code>.
    * @param {MQObject} obj The new MQObject to be added to the collection.
    * @see addOne(MQObject, null)
    * @type void
    */
   MQSession.prototype.add = function (obj){
      return this.addOne(obj, null);
   }
   /**
    * Returns true if the specified object is a MapCommand object, false otherwise.
    *    <UL><B>MQMapCommand objects</B>
    *       <LI>MQCenter
    *       <LI>MQCenterLatLng
    *       <LI>MQZoomIn
    *       <LI>MQZoomOut
    *       <LI>MQZoomTo
    *       <LI>MQZoomToRect
    *       <LI>MQZoomToRectLatLng
    *       <LI>MQPan
    *       <LI>MQBestFit
    *       <LI>MQBestFitLL
    *    </UL>
    * @param  {MQObject} obj The MQObject to be validated.
    * @return true if the specified object is a MapComand object, false otherwise.
    * @type Boolean
    */
   MQSession.prototype.isMapCommandObject = function(obj)
   {
      if(obj){
         var cls = obj.getClassName();
         if(cls==="MQCenter" || cls==="MQCenterLatLng" || cls==="MQZoomIn" ||
            cls==="MQZoomOut" || cls==="MQZoomTo" || cls==="MQZoomToRect" ||
            cls==="MQZoomToRectLatLng" || cls==="MQPan" || cls==="MQBestFit" ||
            cls==="MQBestFitLL"){
            return true;
         }else{
            return false;
         }
      }

   }
   /**
    * Adds an element to this Session object, ensuring that it is
    * the only one of its class type.  Validates element as being one
    * of object types that is permitted in this Session object.  If
    * it is, and there happens to be one of that type of object
    * already present, the new object will replace it.
    * @param  {MQObject} newElement The new element that is to be added to this MQSession object.
    * @param  {MQObject} replacedElement The element that was previously in this MQSession object.
    * @return index of element that is added.
    * @type void
    */
   MQSession.prototype.addOne = function(newElement, replacedElement){
      var collectionSize = this.getSize();
      var newTypeId = newElement.getClassName();
      var newIndex = 0;

      if (this.isValidObject(newElement)){
         if (this.isMapCommandObject(newElement)){
            // Check if we already have a MapCommand object
            for (newIndex = 0; newIndex < collectionSize; newIndex++){
               if (isMapCommandObject(get(newIndex)))
                  break;
            }
         } else {
            for (newIndex = 0; newIndex < collectionSize; newIndex++){
               if (get(newIndex).getClassId() == newTypeId)
                  break;
            }
         }
      } else {
         alert("Invalid object for this collection.");
         throw ("Invalid object for this collection.");
      }
      if (newIndex < collectionSize){
         replacedElement = this.set(newIndex, newElement);
      }else{
         m_collection.add(newElement);
      }
      return newIndex;
   }
   /**
    * Returns true if the specified object is a valid object for this
    * collection, false otherwise.
    *    <UL><B>Valid objects</B>
    *       <LI>MQCenter
    *       <LI>MQCenterLatLng
    *       <LI>MQZoomIn
    *       <LI>MQZoomOut
    *       <LI>MQZoomTo
    *       <LI>MQZoomToRect
    *       <LI>MQZoomToRectLatLng
    *       <LI>MQPan
    *       <LI>MQBestFit
    *       <LI>MQBestFitLL
    *       <LI>MQDBLayerQueryCollection
    *       <LI>MQCoverageStyle
    *       <LI>MQFeatureCollection
    *       <LI>MQAutoMapCovSwitch
    *       <LI>MQPrimitiveCollection
    *       <LI>MQMapState
    *    </UL>
    * @param  {MQObject} obj The MQObject to be validated.
    * @return Boolean true if the specified object is a valid object for this
    * collection, false otherwise.
    * @type Boolean
    */
   MQSession.prototype.isValidObject = function(obj){
      if(obj){
         var cls = obj.getClassName();
         if(cls==="MQCenter" || cls==="MQCenterLatLng" || cls==="MQZoomIn" || cls==="MQZoomOut" ||
            cls==="MQZoomTo" || cls==="MQZoomToRect" || cls==="MQZoomToRectLatLng" || cls==="MQPan" ||
            cls==="MQBestFit" || cls==="MQBestFitLL" || cls==="MQDBLayerQueryCollection" || cls==="MQCoverageStyle" ||
            cls==="MQFeatureCollection" || cls==="MQAutoMapCovSwitch" || cls==="MQPrimitiveCollection" || cls==="MQMapState"){
            return true;
         }else{
            return false;
         }
      }
   }
// End Class MQSession

// Begin Class MQAuthentication
function MQAuthentication(strInfo) {
   var strTransactionInfo = (strInfo!=null) ? strInfo: "";
   this.getInfo = function(){
   return strTransactionInfo;
   }

}
   /**
    * Build an xml string that represents this object.
    * @return The xml string.
    * @type String
    *
    */
   MQAuthentication.prototype.saveXml = function() {
      return "<Authentication Version=\"" + this.getObjectVersion() + "\">" +
            "<TransactionInfo>" + this.getInfo() + "</TransactionInfo>" +
            "</Authentication>";
   };
   /**
    * Returns the text name of this class.
    * @return The text name of this class.
    * @type String
    */
   MQAuthentication.prototype.getClassName = function(){
      return "MQAuthentication";
   };
   /**
    * Returns the version of this class.
    * @return The version of this class.
    * @type int
    */
   MQAuthentication.prototype.getObjectVersion = function(){
      return 2;
   };
// End Class MQAuthentication

// Begin class MQXmlNodeObject
function MQXmlNodeObject( strName, strValue ) {

   var nodeName = strName;
   var nodeValue = strValue;

   this.saveXml = function() {
      return "<" + nodeName + ">" + nodeValue + "</" + nodeName + ">";
   };
}

MapQuest Advantage JavaScript API Reference Documentation

Documentation generated by JSDoc on Fri Oct 19 08:54:32 2007