// JavaScript Document



Uranium = 

{
	available_bicycles:null
	,
	RiderIds:0
	,
	AddRider:function(bikeid)
	{
		
		$("#submit-add-rider").html("<img src=\"/images/add_rider_loading.gif\"/>");

		$.get("rider.php", function(data){
			
			// create new div tag w/ form
			var newid = "rider_" + Uranium.RiderIds++;
			$("#riders").append("<div id=\"" + newid + "\" class=\"rider\">" + data + "</div>");
			
			
			var selector_div = "#" + newid + " div";

			// create bicycle pulldown...
			
			var opts = "";
			
			for(a = 0; a < Uranium.available_bicycles.length; a++)
			{
				if(bikeid == Uranium.available_bicycles[a]._id)
				{
					opts += "<option selected=\"true\">" + Uranium.available_bicycles[a]._name + "</option>";
				} 
				else
				{
					opts += "<option>" + Uranium.available_bicycles[a]._name + "</option>";
				}
			}
	
			// update pulldown menu
			$(selector_div).find("div .rider-bicycle").html(opts);
			
			Uranium.UpdateSize($(selector_div).find(".rider-bicycle").get(0));
			
			
			// fade in
			$(selector_div).fadeIn("normal");
			
			// add remove handler
			var selector_a = "#" + newid + " .remove";			
			$(selector_a).click(function(){Uranium.RemoveRider(newid)});
			
			

			
			$(selector_div).find(".rider-name").get(0).focus();
			
			Uranium.UpdateRiderIndex();
			$("#submit-add-rider").html("<img src=\"/images/add_rider.gif\"/>");
				
		});
		
		
		
		return false;
	}
	,
	Bicycle:function()
	{
		this._name = name;
		this._sizes = new Array();
		this._image = null;
		this._type = null;
		this._price = null;
		this._id = null;
		this._discount = null;		
		this.setBasePrice = function(i)
		{
			this._price = i;
		}		
		this.setImage = function(i)
		{
			this._image = i;
		}	
		
		this.setName = function(n)
		{
			this._name = n;	
		}
		this.setSizes = function(s)
		{
			this._sizes = s;
		}	
		
		this.setType = function(t)
		{
			this._type = t;	
		}
		
	}
	,
	FormatCurrancy:function(i)
	{
		
		return "$" + parseInt(i) + ".00";
			
	}
	,
	GetPostData:function()
	{
		
		
		
		var to = $("#trip-overview");
		
		var required_fields = new Array(".contact-name",".contact-phone",".contact-email",".trip-start-date");
		
		for(a = 0; a < required_fields.length; a++)
		{
			var val = to.find(required_fields[a]).get(0).value;
			if(val.length < 1)
			{
				alert("Please make sure you have provided you name, email address, phone, and trip dates.");
				return;
			}
													
		}
		
		var _to_return = "res="; 
		
		_to_return += "Contact Name:\t" + to.find(".contact-name").get(0).value + "\n";
		_to_return += "Contact Phone:\t" + to.find(".contact-phone").get(0).value + "\n";
		_to_return += "Contact Email:\t" + to.find(".contact-email").get(0).value + "\n";

		_to_return += "Trip Start Date:\t" + to.find(".trip-start-date").get(0).value + "\n";
		_to_return += "Trip Duration:\t" + (to.find("#trip-length").get(0).selectedIndex + 1) + "\n";
		_to_return += "Trip Notes:\t" + to.find("#trip-notes").get(0).value + "\n";
		
		_to_return += "\n";
		_to_return += "Total Price:\t" + Uranium.FormatCurrancy(Uranium.GetTotalPrice())  + "\n";
		_to_return += "\n";
		
		
		
		
		// add in each bike..
	
		var r = $(".rider");
	
		for(i = 0; i < r.length; i++)
		{
			

			
			var bike_index = $(r[i]).find(".rider-bicycle:first").get(0).selectedIndex;
			var bike = Uranium.available_bicycles[bike_index]
			
			_to_return += "\n\nRider " + (i+1) + ": ";
			_to_return += $(r[i]).find(".rider-name").get(0).value + "\t" + Uranium.FormatCurrancy(Uranium.GetSigleRiderPrice(bike)) + "\n--------------------------------\n";
			
			var w = $(r[i]).find(".rider-weight").get(0);
			var wIndex = w.selectedIndex; 
			_to_return += "Rider Weight: " + w.options[wIndex].text + "\n";
			
			var hf = $(r[i]).find(".rider-height-feet").get(0);
			var hfIndex = hf.selectedIndex; 
			_to_return += "Rider Height: " + hf.options[hfIndex].text;
		
			var hi = $(r[i]).find(".rider-height-inches").get(0);
			var hiIndex = hi.selectedIndex; 
			_to_return += " " + hi.options[hiIndex].text + "\n";
			
			var hl = $(r[i]).find(".rider-helmet").get(0);
			var hlIndex = hl.selectedIndex; 
			_to_return += "Rider Helmet: " + hl.options[hlIndex].text + "\n";
		
			var b = $(r[i]).find(".rider-bicycle").get(0);
			var bIndex = b.selectedIndex; 
			_to_return += "Rider Bicycle: " + b.options[bIndex].text + "\n";
		
			var s = $(r[i]).find(".rider-size").get(0);
			var sIndex = s.selectedIndex; 
			_to_return += "Frame Size: " + s.options[sIndex].text + "\n";
		
			var p = $(r[i]).find(".rider-pedal").get(0);
			var pIndex = p.selectedIndex; 
			_to_return += "Pedal: " + p.options[pIndex].text + "\n";
		
		}
		
		$.post("submit.php",_to_return,function(data, textStatus){Uranium.UpdatePage(data)});

	}
	,
	GetSigleRiderPrice:function(bike)
	{
		var toReturn =  0;
		
		//alert("GetSigleRiderPrice " + bike._name + " : " + bike._price);
		var d = parseInt($("#trip-length").get(0).selectedIndex) + 1;
		var b = bike._price;
		
		for(x = 1; x <= d;x++)
		{
				if(x > 1 && bike._discount)
				{
					toReturn += b - 5;
				}
				else
				{
					toReturn += b;
				}
		}		
		return toReturn;
		
	}
	,
	GetTotalPrice:function()
	{
		var _to_return = 0;
		
				
		
		$("#riders").find(".rider-bicycle").each(function(){
			
			var bike_index = $(this).get(0).selectedIndex;
			var bike = Uranium.available_bicycles[bike_index]
			_to_return += Uranium.GetSigleRiderPrice(bike);
		});
		
		
		return _to_return;
	}
	,
	Init:function()
	{
		Uranium.LoadBicycles();
		
		
		if(parseInt(document.location.toString().indexOf("bikeid=")) > 0)
		{
			var bikeid = parseInt(document.location.toString().indexOf("bikeid=")) + 7 ;
				bikeid = document.location.toString().substring(bikeid);
				
			Uranium.AddRider(bikeid);
		}
		
	}
	,
	LoadBicycles:function()
	{
		Uranium.available_bicycles = new Array();	
		
		var b1 = new Uranium.Bicycle();
			b1.setName("Pinarello FP2");
			b1.setImage("#");
			b1.setSizes(new Array("44cm - extra small","50cm - small","52cm - medium","56cm - large","62cm - extra larger"));
			b1.setType("road");
			b1.setImage("/images/bikes/pino.gif");
			b1.setBasePrice(40);
			b1._id = "fp2";
			b1._discount = true;
			
				
		var b2 = new Uranium.Bicycle();
			b2.setName("Diamondback Mission 2");
			b2.setImage("#");
			b2.setSizes(new Array("15.5\" - small","18\" - medium","20\" - large"));
			b2.setType("mountain");
			b2.setImage("/images/bikes/dbmission.gif");
			b2.setBasePrice(40);
			b2._id = "dbmission";
			b2._discount = true;
	
		var b3 = new Uranium.Bicycle();
			b3.setName("Ibis Mojo");
			b3.setImage("#");
			b3.setSizes(new Array("18\" - medium"));
			b3.setType("road");
			b3.setImage("/images/bikes/ibismojo.gif");
			b3.setBasePrice(75);
			b3._id = "ibismojo";
			b3._discount = false;
			
		var b4 = new Uranium.Bicycle();
			b4.setName("Fuji LT Thrill 2.0");
			b4.setImage("#");
			b4.setSizes(new Array("15\"","17\"","19\"","21\""));
			b4.setType("mountain");
			b4.setImage("/images/bikes/fujithirll20.gif");
			b4.setBasePrice(40);
			b4._id = "fujilt20";
			b4._discount = true;
			
		
		var b5 = new Uranium.Bicycle();
			b5.setName("Turner 5.Spot");
			b5.setImage("#");
			b5.setSizes(new Array("15\" - small","17\" - medium","19\" - large"));
			b5.setType("road");
			b5.setImage("/images/bikes/turner.gif");
			b5.setBasePrice(65);
			b5._id = "turner";
			b5._discount = false;
				

	var b6 = new Uranium.Bicycle();
			b6.setName("Scott Spark 60");
			b6.setImage("#");
			b6.setSizes(new Array("15.7\"","17.7\"","19.3\"","21.3\""));
			b6.setType("mountain");
			b6.setImage("/images/bikes/scottspark.gif");
			b6.setBasePrice(40);
			b6._id = "scottspark";
			b6._discount = true;
			
			
			

	var b7 = new Uranium.Bicycle();
			b7.setName("Scott Ransom 30");
			b7.setImage("#");
			b7.setSizes(new Array("small","medium","large","extra-large"));
			b7.setType("mountain");
			b7.setImage("/images/bikes/scottransom.gif");
			b7.setBasePrice(75);
			b7._id = "scottransome";
			b7._discount = true;
			


		Uranium.available_bicycles.push(b2);
		Uranium.available_bicycles.push(b3);
		Uranium.available_bicycles.push(b4);
		Uranium.available_bicycles.push(b5);
		Uranium.available_bicycles.push(b6);
		Uranium.available_bicycles.push(b7);
		
		Uranium.available_bicycles.push(b1);
		//
	
		$("#trip-start-date").datepicker();
		
	}
	,
	RemoveRider:function(id)
	{
		
		var selector = "#" + id;
		
		$(selector).fadeOut("normal",function(){$(selector).remove();Uranium.UpdatePrices();Uranium.UpdateRiderIndex();});
		
		
		
		return false;
	}
	,
	LoadBicylePullDown:function(e)
	{
			
		
	}
	,
	SubmitForm:function()
	{	
	// $(".rider .rider-name").each(function(){alert(this.value)});
	}
	,
	UpdateRiderIndex:function()
	{
		var rid = 1;
		$(".rider-index").each(function()
		{	
			$(this).html(rid++);							
		});
		
	}
	,
	UpdatePrice:function()
	{
		
		// total price
		var d = parseInt($("#trip-length").get(0).selectedIndex) + 1;	
		
		var t = "<p class=\"total-grand\">" + Uranium.FormatCurrancy(Uranium.GetTotalPrice()) + "</p>";
			t += "<p>" + $(".rider").length + " Riders</p>";
			t += "<p>" + d + " Day Rental</p>";
			
			
		$("#total-price").html(t);	
	}
	,
	UpdatePage:function(data)
	{
		
		if(data == "false")
		{
			alert("We could not process your order. Please try again later.");
			
			

		} 
		else
		{
			$("#reservation-form").fadeOut("normal",function(){$("#reservation-form").empty();Uranium.ShowConfirmation(data);});
		}
	}
	,
	ShowConfirmation:function(data)
	{			
	
		
			$("#postback").html(data	);
			//$("#postback").load("confirmation.php");
		
	}
	,
	UpdatePrices:function()
	{
		
		

		if($(".rider").length > 0)
		{
				
			$(".rider").each(function(){
				
				//alert("UpdatePrices" );	
				// get trip length
				
				
				var d = parseInt($("#trip-length").get(0).selectedIndex) + 1;	
				
				var bike_index = $(this).find(".rider-bicycle").get(0).selectedIndex;
				
					
				var bike = Uranium.available_bicycles[bike_index];		
				var price = Uranium.GetSigleRiderPrice(bike);
				var t = d + " Day Rental: " + Uranium.FormatCurrancy(price);
				
				
				$(this).find(".rider-total").html(t);
				
				
				
			});
			
			
		
		}
		Uranium.UpdatePrice();
	}
	,
	UpdateSize:function(e)
	{
		var i = e.selectedIndex;
		
	
		$(e).parents().each(function(){
					
			
				if($(this).hasClass("rider"))
				{
					
					// update size
					var sizes = Uranium.available_bicycles[i]._sizes;					
					var opts = "<option>Decide For Me</option>";					
					for(a = 0; a < sizes.length;a++)
					{
						opts += "<option>" + sizes[a] + "</option>";
					}					
					$(this).find(".rider-size").html(opts);
					
					// update images					
					var img = "<img class=\"thumbnail\" src=\"" + Uranium.available_bicycles[i]._image + "\"/>";
					$(this).find(".rider-image").html(img);	
					$(this).find(".rider-image").css("display","none");
					$(this).find(".rider-image").fadeIn("normal");
					
					var p = Uranium.GetSigleRiderPrice(Uranium.available_bicycles[i]);
					
					$(this).find(".rider-total").html(Uranium.FormatCurrancy(p));
				}
		
		}
		);
		
		Uranium.UpdatePrices();

	}
	


}


$(document).ready(function(){ Uranium.Init(); });
