/*

Plugin name: UGMOZoomToAddress
For Ugmo version: 3.0

Description:
With this plugin you can zoom to a specified address

*/

(function(undefined){

if(typeof UGMO !== "undefined"){
    
    UGMO.fn.zoomToAddress = function(address, callback, failCallback, bounds){
        var ugmo_ = this;
        
        var geocode = {
            address: address
        };
        
        if(bounds){
            geocode.bounds = bounds;
        }
		
        var geocoder = new google.maps.Geocoder();
        
        geocoder.geocode(geocode, function(result){
            if(result){
				
				if(typeof(result) === 'object' && result.length > 0){				
					// result found
					if(typeof(result[0].geometry) === 'object'){
						ugmo_.map.setCenter(result[0].geometry.location);
					}
					if(typeof(result[0].geometry.bounds) === 'object'){
						ugmo_.map.fitBounds(result[0].geometry.bounds);
					}
					
					if(callback !== undefined && callback){
						callback(result);
					}
				}else{ 
					// no result found
					if(failCallback !== undefined && failCallback){
						failCallback();
					}
				}
            }else{
				// request failed
				if(failCallback !== undefined && failCallback){
                	failCallback();
				}
            }
        });
        
    };
    
}

}());
