
SocialEngineAPI.Roads = new Class({
  
  Base: {},
  
  
  options: {
    'ajaxURL' : 'user_roads_ajax.php'
  },
  
  
  currentConfirmDeleteID: 0,
  mapLoaded: 0,
  

  // Delete
  deleteRoad: function(road_id)
  {
    // Display
    currentConfirmDeleteID = road_id;
    TB_show("Delete this Route?", '#TB_inline?height=100&width=300&inlineId=confirmroutedelete', '', '../images/trans.gif');
  },
  
  deleteRouteConfirm: function()
  {
    road_id = currentConfirmDeleteID;
       
    // Ajax
    var bind = this;
    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'action' : 'delete_route',
        'route_id' : road_id
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.status || responseObject.status=="failure" )
        {
          alert("An error occured deleting this road.");
        } else {
			window.location.reload( false );
		}
      }
    });
    
    request.send();
    
    // Reset
    currentConfirmDeleteID = 0;
  },
  
  
  initializeMap : function() {
	  this.injectJS('./include/js/plotter/plotter.js');
  },
  
  injectJS : function(url) {
		var sz = document.createElement( "script" );
		sz.src = url;
		sz.type = "text/javascript";
		document.getElementsByTagName( "head" )[0].appendChild( sz );
  },
  
  
  // Preview
  preview: function(routeId, user)
  {
	  if (!this.mapLoaded) {
		  onPlotterReadyFunctions.push(function() { 
				SocialEngine.Roads.mapLoaded = 1;
				plotter.initializePreview();
				SocialEngine.Roads.preview(routeId);
			});
		  this.initializeMap();
	  } else {
		var request = new Request.JSON({
			'method' : 'post',
			'url' : this.options.ajaxURL,
			'data' : {	'action' : 'open',
						'open_id' : routeId,
						'user': user},
			'onComplete':function(responseObj) {
				plotter.loadSavedRoutePreview(responseObj);
			}
		});
		
		request.send();
  	 }

  },
  
  previewInTab: function (routeId, parentId, user, mw, mh) {
	  if (!this.mapLoaded) {
		onPlotterReadyFunctions.push(function() { 
			var canvas = document.createElement('div');
			canvas.id = 'map_canvas';
			canvas.style.width = (mw) ? mw : '625px';
			canvas.style.height = (mh) ? mh : '400px';
			canvas.style.margin = '2px';
			canvas.style.border = '#999999 1px solid';
			document.getElementById(parentId).appendChild(canvas);
			SocialEngine.Roads.mapLoaded = 1;
			plotter.initializePreview();
			SocialEngine.Roads.preview(routeId, user);
			
			var tabBtn = document.getElementById('profile_tabs_roads');
			if (tabBtn) {
				tabBtn.addEvent('click', function () { plotter.checkResize(); });
			}
			
		});
		this.initializeMap();
	  } else {
		document.getElementById('map_canvas').style.visibility = 'hidden';
		var request = new Request.JSON({
			'method' : 'post',
			'url' : this.options.ajaxURL,
			'data' : {	'action' : 'open',
						'open_id' : routeId,
						'user' : user},
						
			'onComplete':function(responseObj) {
				document.getElementById('map_canvas').style.visibility = 'visible';
				document.getElementById(parentId).appendChild(document.getElementById('map_canvas'));				
				plotter.loadSavedRoutePreview(responseObj);
			}
		});
		request.send(); 
		  
	  }
	  
  },
  
  saveToMyRoutes: function (routeId, routeType, owner) {
	
	if (SocialEngine.Viewer.user_exists) {
		
		var data = (routeType == 'user') ?
					{ 'action' : 'saveToMyRoutes', 'route_id' : routeId, 'user' : owner, 'routeType': routeType} :
					{ 'action' : 'saveToMyRoutes', 'route_id' : routeId, 'event_id' : owner, 'routeType': routeType};
		var request = new Request.JSON({
					'method' : 'post',
					'url' : this.options.ajaxURL,					
					'data' : data,
					'onComplete':function(responseObj) {
						alert(responseObj.message);
					}
				});
	
		  request.send(); 
	} else {
		alert("You must be logged in to use this feature.");
	}
  }
  
 
  
  

});