# Source: geocoder.js

    /**
     * @namespace WPGMZA
     * @module Geocoder
     * @requires WPGMZA
     */
    (function($) {

    	WPGMZA.Geocoder = function()
    	{
    		WPGMZA.assertInstanceOf(this, "Geocoder");
    	}

    	WPGMZA.Geocoder.SUCCESS			= "success";
    	WPGMZA.Geocoder.ZERO_RESULTS	= "zero-results";
    	WPGMZA.Geocoder.FAIL			= "fail";

    	WPGMZA.Geocoder.getConstructor = function()
    	{
    		switch(WPGMZA.settings.engine)
    		{
    			case "google-maps":
    				return WPGMZA.GoogleGeocoder;
    				break;

    			default:
    				return WPGMZA.OLGeocoder;
    				break;
    		}
    	}

    	WPGMZA.Geocoder.createInstance = function()
    	{
    		var constructor = WPGMZA.Geocoder.getConstructor();
    		return new constructor();
    	}

    	WPGMZA.Geocoder.prototype.getLatLngFromAddress = function(options, callback)
    	{
    		if(WPGMZA.isLatLngString(options.address))
    		{
    			var parts = options.address.split(/,\s*/);
    			var latLng = {
    				lat: parseFloat(parts[0]),
    				lng: parseFloat(parts[1])
    			}
    			callback(latLng);
    		}
    	}

    	WPGMZA.Geocoder.prototype.geocode = function(options, callback)
    	{
    		return this.getLatLngFromAddress(options, callback);
    	}

    })(jQuery);