function Crew_Ride()
{
	this.ride_add = ride_add;
	this.ride_remove = ride_remove;
	this.init_delete_box = init_delete_box;
	this.init_cool_ride = init_cool_ride;	
	this.add_by_icon = add_by_icon;
	this.add_success = false;
	
	
	var drop = $('cool_rides');
	this.drop = drop;
	drop.crew_obj = this;
	var dropFx = drop.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
	
	var drop_delete = $('cool_rides_delete');	
	this.drop_delete = drop_delete;
	drop_delete.crew_obj = this;
	var dropFx_delete = drop_delete.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
	
	this.init_crew = init_crew;
	this.crew_add = crew_add;
	this.init_crew_delete_box = init_crew_delete_box;
	this.crew_remove = crew_remove;
	this.add_crew_by_icon = add_crew_by_icon;
	
	var drop_crew = $('crew');
	this.drop_crew = drop_crew;
	drop_crew.crew_obj = this;
	var dropFx_crew = drop_crew.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
	
	
	
	function init_cool_ride()
	{
		$$('.drag_image').getElements('img').each(function(item)
		{
				item.addEvent('mousedown', function(e) 
				{
					var cur_item = this;
					
					e = new Event(e).stop();					
					var clone = this.clone()
					.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
					.setStyles({'opacity': 0.7, 'position': 'absolute'})
					
					.addEvent('emptydrop', function() 
					{
						this.remove();
						drop.removeEvents();
					}).inject(document.body);
					drop.addEvents
					(
						{
							'drop': function(id,cur_item) 
							{
								drop.crew_obj.ride_add(id,cur_item);
								clone.remove();
								drop.removeEvents();
							}.pass([this.id,cur_item]),
							'over': function() 
							{
								dropFx.start('98B5C1');
							},
							'leave': function() 
							{
								dropFx.start('ffffff');
							}
						}
					);
					var drag = clone.makeDraggable(
						{
							droppables: [drop]
						}); // this returns the dragged element
		 
					drag.start(e); // start the event manual
				});
		});
	}
	function ride_add(id,item)
	{
		//id ==  'car' + car_id
		var params = {};
		params['id'] = id;
		body_blocker.create_block();
		var req = new JsHttpRequest();
	
		req.onreadystatechange = function()
		{
			if(4 == req.readyState)
			{
				//alert(req.responseText);
				this.add_success = false;
				if (req.responseJS != undefined && req.responseJS.success != undefined)
					this.add_success = req.responseJS.success;				
				
				if (this.add_success)
						{
							var username = req.responseJS.username;
							var car_id = req.responseJS.car_id;
							
							var new_item = item.clone();
							//new_item.setStyles({float : 'left'});
							new_item.id = id;
							
							
							var text_item = new Element('span');
							text_item.id = "span_"+id;
							text_item.innerHTML = "<br /><a style='margin:5px;color:black;' href='"+ajax_prefix+"Garage/"+ username + "/" + car_id + "'>view in garage</a>";
							new_item.inject(drop);
							text_item.inject(drop);
							crew.init_delete_box();
						}
						
				dropFx.start('7389AE').chain(dropFx.start.pass('ffffff', dropFx));
				body_blocker.remove_block();
			}
		}
		req.caching = false;
		req.open('POST', ajax_prefix + 'index.php?rm=add_cool_ride', false);
		req.send({q:params});
		return false;
	}
	
	function add_by_icon(id)
	{
		var elem = $(id);
		this.ride_add(id,elem);
	}
	
	function init_delete_box()
	{
	
		$$('.cool_rides').getElements('img').each(function(item)
		{
			item.addEvent('mousedown', function(e) 
			{
				var cur_item = this;
				e = new Event(e).stop();
				
				var page_x = e.page.x;
				var page_y = e.page.y;
				
				var clone = this.clone()
				//.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
				.setStyles({'opacity': 0.7, 'position': 'absolute','left':page_x-35,'top':page_y-41})
				.addEvent('emptydrop', function() 
				{
					this.remove();
					drop_delete.removeEvents();
				}).inject(document.body);
				drop_delete.addEvents
				(
					{
						'drop': function(id,cur_item) 
						{
							drop_delete.crew_obj.ride_remove(id,cur_item);
							clone.remove();
							drop_delete.removeEvents();
						}.pass([this.id,cur_item]),
						'over': function() 
						{
							dropFx_delete.start('98B5C1');
						},
						'leave': function() 
						{
							dropFx_delete.start('ffffff');
						}
					}
				);
				var drag = clone.makeDraggable(
					{
						droppables: [drop_delete]
					}); // this returns the dragged element
	 
				drag.start(e); // start the event manual
			});
		});
	}
	
	function ride_remove(id,item)
	{
		var params = {};
		params['id'] = id;
		body_blocker.create_block();
		var req = new JsHttpRequest();
		req.onreadystatechange = function()
		{
			if(4 == req.readyState)
			{
				//alert(req.responseText);
				this.add_success = false;
				if (req.responseJS != undefined && req.responseJS.success != undefined)
					this.remove_success = req.responseJS.success;
				//alert(req.responseText);
				//alert(req.responseJS.success);
				if (this.remove_success)
						{
							item.remove();			
							var elem = $('span_'+id);
							elem.remove();
							//remove image from cool ride box
						}
				dropFx_delete.start('7389AE').chain(dropFx_delete.start.pass('ffffff', dropFx_delete));						
				body_blocker.remove_block();
			}
		}
		req.caching = false;
		req.open('POST', ajax_prefix + 'index.php?rm=remove_cool_ride', false);
		req.send({q:params});
		return false;
	}
	
	function init_crew()
	{
		//var item = $('user_picture');
		$$('.user_picture').getElements('img').each(function(item)
		{
			item.addEvent('mousedown', function(e) 
			{
				var cur_item = this;
				
				
				
				e = new Event(e).stop();
				
				
				
				var clone = this.clone()
				.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
				.setStyles({'opacity': 0.7, 'position': 'absolute'})
				.addEvent('emptydrop', function() 
				{
					this.remove();
					drop_crew.removeEvents();
				}).inject(document.body);
				drop_crew.addEvents
				(
					{
						'drop': function(id,cur_item) 
						{
							drop_crew.crew_obj.crew_add(id,cur_item);
							clone.remove();
							drop_crew.removeEvents();
						}.pass([this.id,cur_item]),
						'over': function() 
						{
							dropFx_crew.start('98B5C1');
						},
						'leave': function() 
						{
							dropFx_crew.start('ffffff');
						}
					}
				);
				var drag = clone.makeDraggable(
					{
						droppables: [drop_crew]
					}); // this returns the dragged element
	 
				drag.start(e); // start the event manual
			});
		});
	}
	
	function crew_add(id,item)
	{
		var params = {};
		params['id'] = id;
		body_blocker.create_block();
		var req = new JsHttpRequest();
		req.onreadystatechange = function()
		{
			if(4 == req.readyState)
			{
				//alert(req.responseText);
				this.add_success = false;
				if (req.responseJS != undefined && req.responseJS.success != undefined)
					this.add_success = req.responseJS.success;				
				
				if (this.add_success)
						{
							var username = req.responseJS.username;
							var new_item = item.clone();
							new_item.id = id;
							new_item.className = 'red_border';
							
							var text_item = new Element('span');
							text_item.id = "span_"+id;
							text_item.innerHTML = "<br /><a style='margin:5px;color:black;' href='"+ajax_prefix+"Garage/"+ username + "'>view garage</a>";
							new_item.inject(drop_crew);
							text_item.inject(drop_crew);
							crew.init_crew_delete_box();
						}
				dropFx_crew.start('7389AE').chain(dropFx_crew.start.pass('ffffff', dropFx_crew));
				body_blocker.remove_block();
			}
		}
		req.caching = false;
		req.open('POST', ajax_prefix + 'index.php?rm=add_crew', false);
		req.send({q:params});
		return false;
	}
	
	function init_crew_delete_box()
	{
		$$('.crew').getElements('img').each(function(item)
		{
			item.addEvent('mousedown', function(e) 
			{
				var cur_item = this;
				e = new Event(e).stop();
				
				var page_x = e.page.x;
				var page_y = e.page.y;
				
				var clone = this.clone()
				.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
				.setStyles({'opacity': 0.7, 'position': 'absolute','left':page_x-35,'top':page_y-41})
				.addEvent('emptydrop', function() 
				{
					this.remove();
					drop_delete.removeEvents();
				}).inject(document.body);
				drop_delete.addEvents
				(
					{
						'drop': function(id,cur_item) 
						{
							drop_delete.crew_obj.crew_remove(id,cur_item);
							clone.remove();
							drop_delete.removeEvents();
						}.pass([this.id,cur_item]),
						'over': function() 
						{
							dropFx_delete.start('98B5C1');
						},
						'leave': function() 
						{
							dropFx_delete.start('ffffff');
						}
					}
				);
				var drag = clone.makeDraggable(
					{
						droppables: [drop_delete]
					}); // this returns the dragged element
	 
				drag.start(e); // start the event manual
			});
		});
	}
	
	function crew_remove(id,item)
	{
		var params = {};
		params['id'] = id;
		body_blocker.create_block();
		var req = new JsHttpRequest();
		req.onreadystatechange = function()
		{
			if(4 == req.readyState)
			{
				this.add_success = false;
				if (req.responseJS != undefined && req.responseJS.success != undefined)
					this.remove_success = req.responseJS.success;
				if (this.remove_success)
						{
							item.remove();			
							var elem = $('span_'+id);
							elem.remove();
						}
				dropFx_delete.start('7389AE').chain(dropFx_delete.start.pass('ffffff', dropFx_delete));
				body_blocker.remove_block();
			}
		}
		req.caching = false;
		req.open('POST', ajax_prefix + 'index.php?rm=remove_crew', false);
		req.send({q:params});
		return false;
	}
	
	function add_crew_by_icon(id)
	{
		var elem = $(id);
		this.crew_add(id,elem);
	}
}