# Source: polygon.js

    /**
     * @namespace WPGMZA
     * @module Polygon
     * @requires WPGMZA.MapObject
     */
    (function($) {
    	WPGMZA.Polygon = function(row, enginePolygon)
    	{
    		var self = this;

    		WPGMZA.assertInstanceOf(this, "Polygon");

    		this.paths = null;
    		this.title = null;
    		this.name = null;
    		this.link = null;

    		WPGMZA.MapObject.apply(this, arguments);
    	}

    	WPGMZA.Polygon.prototype = Object.create(WPGMZA.MapObject.prototype);
    	WPGMZA.Polygon.prototype.constructor = WPGMZA.Polygon;

    	WPGMZA.Polygon.getConstructor = function()
    	{
    		switch(WPGMZA.settings.engine)
    		{
    			case "google-maps":
    				if(WPGMZA.isProVersion())
    					return WPGMZA.GoogleProPolygon;
    				return WPGMZA.GooglePolygon;
    				break;

    			default:
    				if(WPGMZA.isProVersion())
    					return WPGMZA.OLProPolygon;
    				return WPGMZA.OLPolygon;
    				break;
    		}
    	}

    	WPGMZA.Polygon.createInstance = function(row, engineObject)
    	{
    		var constructor = WPGMZA.Polygon.getConstructor();
    		return new constructor(row, engineObject);
    	}

    	WPGMZA.Polygon.prototype.toJSON = function()
    	{
    		var result = WPGMZA.MapObject.prototype.toJSON.call(this);

    		$.extend(result, {
    			name:		this.name,
    			title:		this.title,
    			link:		this.link,
    		});

    		return result;
    	}

    })(jQuery);