//--------------------------------------
//
// INDEX
//
// 001 - Menu Construction
// 002 - Pagination
// 004 - Car Handling
// 005 - Item Handling
// 006 - Servers
//
// 00X - Misc
//
//--------------------------------------

	//--------------------------------------
	//
	//  001 - Menu Construction
	//
	//--------------------------------------

	function constructOptions()
	{
		var data = "<h3>Options</h3>";
					
		if (option['listtype'] == 'detail')
			data += "<a href='javascript:optionListType();' >List Type: <span style='color: orangered;'>Detail</span></a>";
		else
			data += "<a href='javascript:optionListType();' >List Type: <span style='color: purple;'>Icon</span></a>";
			
		data += "<br /><br />";
		data += "<a href='javascript:parts_removeAll();' >Remove All Parts</a>";
		
		$("#options").html(data);
	}

	function optionListType()
	{
		if (option['listtype'] == 'detail')
			option['listtype'] = 'icon';
		else
			option['listtype'] = 'detail';
		
		constructOptions();
		sectionAccess(currpage);
	}

	//--------------------------------------
	//
	//  002 - Page Construction
	//
	//--------------------------------------

	function sectionAccess(id)
	{
		if (id.substr(0, 9) != 'menuitem_')
			id = 'menuitem_' + id;

		if (car['base'] < 1 && id != 'menuitem_base')
		{
			alert("Please choose a car base before viewing parts.");
			return;
		}
		
		currpage = id.replace("menuitem_", "");
		
		$(".auto_menu_img_active").removeClass("auto_menu_img_active");
		
		$("#" + id).addClass("auto_menu_img_active");
		
		$(".items_container").hide();
		
		if (currpage == 'base')
			$("#items_base").show();
		else
		{
			var data = "";
			var is_active = "";
	
			for (var i = 0; i < carPart[car['base']].length; i++)
			{
				if (item[carPart[car['base']][i]]['type'] == currpage)
				{
					var this_id = carPart[car['base']][i];
					
					if (option['listtype'] == 'detail')
					{
						if (layer[item[this_id]['type'] + '_' + item[this_id]['subtype']] == this_id)
							is_active = "tr_icon_part_active";
						else
							is_active = "";
							
						data += "<tr id='item_" + this_id + "' onclick='javascript:itemAccess(" + this_id + ");' class='tr_icon_part " + is_active + "' >";
						data += "<td align='left' >";
						data += "<img width='15' src='" + server_icon + icon_prefix + this_id + ".png'  alt='[x]' />";
						data += "</td>";
						data += "<td align='left' >";
						data += item[this_id]['name'];
						data += "</td>";
						data += "<td align='left' >";
						data += item[this_id]['subtype'];
						data += "</td>";
						data += "<td align='right' >";
						data += addCommas(item[this_id]['cost']);
						data += "</td>";
						data += "</tr>";
					}
					else
					{
						if (layer[item[this_id]['type'] + '_' + item[this_id]['subtype']] == this_id)
							is_active = "icon_part_active";
						else
							is_active = "";
							
						data += "<a id='item_" + this_id + "' href='javascript:itemAccess(" + this_id + ");' class='icon_part " + is_active + "' title='" + item[this_id]['name'] + "' >";
						data += "<img src='" + server_icon + icon_prefix + this_id + ".png'  alt='[x]' />";
						data += "</a>";
					}
				}
			}
			
			if (data == "")
				data = "No items available in this section for current Car base.";
			else
				if (option['listtype'] == 'detail')
				{
					var table_header = "<table id='item_table' cellpadding='2' cellspacing='0' border='0' width='515'>";
					table_header += "<thead>";
					table_header += "<tr>";
					table_header += "<th>";
					table_header += "</th>";
					table_header += "<th align='left'>";
					table_header += "Name";
					table_header += "</th>";
					table_header += "<th align='left'>";
					table_header += "Type";
					table_header += "</th>";
					table_header += "<th align='right'>";
					table_header += "Cost";
					table_header += "</th>";
					table_header += "</tr>";
					table_header += "</thead>";
					table_header += "</tbody>";
					
					data = table_header + data + "</tbody></table>";
				}			
			
			$("#items_" + currpage).html(data).show();
			// $("tr:nth-child(odd)").addClass("tr_altrow");
			$("#item_table").tableSorter({sortColumn: 'Name', stripingRowClass: ['tr_altrow','tr_altrow2']});
		}
	}

	function finish()
	{
		if(confirm("Finish car?"))
		{		
			$("#content_loading_inner > strong").html("Saving Car");
			elHide('content_main');
			elShow('content_loading');

			var path = "save.php?post_do=save";
			path += "&env=" + option['environment'];
			path += "&car=" + car['base'];
			path += "&flip=" + car['flip'];
			path += "&layers=" + serializeLayers();

			window.location = path;
			/*
				$.post("save.php",
					{ 
						post_do: "save", 
						env: option['environment'], 
						tracker: avatar['tracker'], 
						gender: avatar['gender'], 
						base: avatar['base'], 
						flip: avatar['flip'], 
						hair: avatar['hair'], 
						eyes: avatar['eyes'], 
						mouth: avatar['mouth'], 
						layers: avatar['items'].join('~'), 
						hlayers: avatar['items_hidden'].join('~') 
					},
					function(data){
								
						if ( isNaN(data) || data == '')
						{
							alert("Error, unable to save avatar.\n" + data);
							elHide('content_loading');
							elShow('content_main');
						}
						else
							window.location = '/avatar/' + data;
					}
				);
			*/
		}
	}

	//--------------------------------------
	//
	//  004 - Car Handling
	//
	//--------------------------------------

	function constructImage()
	{
		/*
		var request = fetchImageServer() + "image.php?bg=garage";
		request += "&car=" + car['base'];
		request += "&flip=" + car['flip'];
		request += "&layers=" + serializeLayers();
		
		$("#img_car").attr({src: request});
		*/	
			
		var so = new SWFObject("http://"+domain+".tektek.org/auto/image.swf?version="+swf_version, "swf_image", "200", "200", "9", "#ffffff");
		so.addVariable("domain", domain);
		so.addVariable("car", car['base']);
		so.addVariable("flip", car['flip']);
		so.addVariable("bg", "white");
		so.addVariable("layers", serializeLayers());
		
		so.write("flashcontent");
		
		car['tracker']++;
		
		// add-in
		constructPrice();
		
		
	}
	
	function constructPrice()
	{
		var data = "";
		var amount = 0;
	
		for ( keyVar in layer )
		{
			if (layer[keyVar] != '')
				amount += parseInt(item[layer[keyVar]]['cost']);
		}
		
		$("#currprice").html("Total: " + addCommas(amount) + " Gold");
	}

	function imageFlip()
	{
		(car['flip'] == 0) ? car['flip'] = 1 : car['flip'] = 0;	
		constructImage();
	}

	function carBase(id)
	{
		car['base'] = id;

		for ( keyVar in layer )
		{
			if (layer[keyVar] != '')
				if (carPart[id].inArray(layer[keyVar]) == false)
					layer[keyVar] = '';
		}
		
		constructImage();
	}

	function serializeLayers()
	{
		var layers_array = new Array();
		
		for ( keyVar in layer )
		{
			if (layer[keyVar] != '')
				layers_array.push(layer[keyVar]);
		}
			
		return layers_array.join('~');
	}

	//--------------------------------------
	//
	//  005 - Item Handling
	//
	//--------------------------------------
	
	function itemAccess(id)
	{
		var curritem = item[id];
		var currlayer = curritem['type'] + '_' + curritem['subtype'];
	
		// if layer in use, remove old item
		$("#item_" + layer[currlayer]).removeClass("icon_part_active");
		$("#item_" + layer[currlayer]).removeClass("tr_icon_part_active");
			
		// if old item was this item, unequip it, else add it
		if (layer[currlayer] == id)
			layer[currlayer] = '';
		else
		{
			layer[currlayer] = id;
			
			if (option['listtype'] == 'detail')
				$("#item_" + id).addClass("tr_icon_part_active");
			else
				$("#item_" + id).addClass("icon_part_active");			
		}		

		constructImage();
	} 
	
	function itemAccessQuiet(id)
	{
		var curritem = item[id];
		var currlayer = curritem['type'] + '_' + curritem['subtype'];
	
		if (layer[currlayer] == id)
			layer[currlayer] = '';
		else
			layer[currlayer] = id;		
	}

	function parts_removeAll()
	{
		if(confirm('Remove ALL parts from car?'))
		{
			for ( keyVar in layer )
			{
			   layer[keyVar] = '';
			}	
			
			constructImage();
			sectionAccess(currpage);
		}
	}

	//--------------------------------------
	//
	//  00X - Servers
	//
	//--------------------------------------

	function fetchIconServer(x)
	{
		//return server_icon[x+''];
		return server_icon;
	}

	function fetchImageServer()
	{
		var server = server_image[server_image_turn];

		server_image_turn++;
		
		if (server_image_turn >= server_image.length)
			server_image_turn = 0;
			
		return server;
	}

	
	//--------------------------------------
	//
	//  00X - Misc
	//
	//--------------------------------------

		
	function addCommas(nStr)
	{
		nStr += '';
		x = nStr.split('.');
		x1 = x[0];
		x2 = x.length > 1 ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		return x1 + x2;
	}	

	Array.prototype.inArray = function (value)
	{
		for (var i = 0; i < this.length; i++)
			if (this[i] === value)
				return true;
		return false;
	}

	Array.prototype.clear = function()
	{
	  this.length = 0;
	}

	function el(x)
	{
		return document.getElementById(''+x+'');
	}

	function elShow(x)
	{
		document.getElementById(''+x+'').style.display = 'block';
	}

	function elHide(x)
	{
		document.getElementById(''+x+'').style.display = 'none';	
	}
	
	