/*
 * Planos's Router implementation
 */
var CPlanosRouter = function(map) {
	
	var me = this;
	this.map = map;

	this.findRoute = function(route) {
		
		// recupera as coordenadas
		var centerLL = me.map.getCenter().getLatitude() + ',' + me.map.getCenter().getLongitude();
		
		var params = "from=";
		params += escape(route.from);
		params += "&to=";
		params += escape(route.to);
		params += "&ll=";
		params += centerLL;
		
		if (typeof(route.route)!= 'undefined') {
			params += "&route="
			params += escape(route.route);			
		}
		
		new RouterRequest("findRoute.do", {
			"method": "GET",
			"async": true,
			"params": params,
			"callback": processRoute	
		});
		
	}
	
	// cada implementação, terá sua própria maneira de processar a resposta do WS
	var processRoute = function(transport) {
		var target = document.getElementById("resultContent");		
		target.innerHTML = transport.responseText;
		
		var scriptTag = target.getElementsByTagName("script")[0];		
		if (scriptTag) eval(scriptTag.innerHTML);
		
		//zera as requisições de ipoints e do explorer 
   		abortRequests()
		
		//carrega o explorer após todas as buscas 
		//explorer.refresh();		    	
	}

	this.createRoute = function(route) {
		
		me.map.clearRoutes();
		me.map.plotRoute(route.waypoints);
		
		var points = route.points;
		
		for (var i = 0; i < points.length; i++ ) {
			me.map.plot(
				points[i].address,
				points[i].place,
				new CPoint(points[i].location.x, points[i].location.y),
				points[i].plot,
				"Route"
			);
		}
	}

};