/**
 * @author Krister
 */
var gmap=new gMapApi();

function gMapApi() {
	
	this.map=false;
	this.geocoder=false;
	this.center=false;
	
	this.icons=[];
	
	this.init = function(id) {
		gmap.map = new GMap2(document.getElementById(id));
		gmap.geocoder = new GClientGeocoder();
	};
	
	this.clear = function() {
		gmap.map.clearOverlays();
	};
	
	this.setCenter = function () {
		if(gmap.center) {
			gmap.map.setCenter(new GLatLng(gmap.center[0],gmap.center[1]), 13);
		}
	};
	
	this.compose = function () {
		gmap.map.enableContinuousZoom();
		gmap.map.enableScrollWheelZoom(); 
		gmap.map.addControl(new GSmallMapControl());
		gmap.map.addControl(new GOverviewMapControl());
		gmap.map.addControl(new GMapTypeControl());

	};
	
	this.newMarker = function(opts) {
		
		var icon;
		var iconstring=new String(opts.propType+opts.opType);
		
		if(gmap.icons[iconstring] != null) {
			icon=gmap.icons[iconstring];
		} else {
			icon = new GIcon();
			icon.image = control.host+'img/'+iconstring+'.gif';
			icon.size = new GSize(25,25);
			icon.iconAnchor = new GPoint(10,10);
			gmap.icons[iconstring] = icon;
		}

		var mOpts = {
			icon : icon
		};
		
		var pt=new GLatLng(opts.lat,opts.lngt);
		
		var marker=new GMarker(pt,mOpts);
		marker.value=opts.id;
		
		GEvent.addListener(marker, "click", function() {
				
			$(".prop_observe_elem[name='"+this.value+"']").trigger('click');
		
		});
		gmap.map.addOverlay(marker);
	};
	
	this.getPoint= function() {
		
		var form, query;
		form=$("#form_cargar_propiedad"); 
		query=form.find("select[name='street'] :selected").text()+' '+form.find("input[name='number']").val()+', '+form.find("select[name='city'] :selected").text()+', '+form.find("select[name='province'] :selected").text();
		return gmap.geocoder.getLocations(
			query,
		    function(response) {
		    	if (!response) {
					cargar.setCoords=false;
		      	} else { 
					
					var point, lat, lngt, view_location; 
					point=response.Placemark[0];
					lngt=point.Point.coordinates[0];
					lat=point.Point.coordinates[1]; 
					view_location=point.address;
					
					form.find("input[name='lat']").val(lat);
					form.find("input[name='lngt']").val(lngt);
					form.find("input[name='view_location']").val(view_location);
					cargar.setCoords=true;
					$("#form_cargar_propiedad").submit();
		      	}
		    }
		);
	};
	
	
	
	
	
	
	
	
	
	
}
