			function checkMail()
			{
				var mail_check = document.getElementById("mail_check");

				var newMail = data.getElementsByTagName("newMail")[0];
				if( newMail )
				{
					if( newMail.hasChildNodes() )
					{
						var newMailCount = newMail.firstChild.nodeValue;
					}
				}

				var mail_check_img = document.getElementById("mail_check_img");
				var mail_check_count = document.getElementById("mail_check_count");

				if( newMailCount > 0 )
				{
					mail_check_img.style.backgroundImage = "url('./img/mail1.gif')";

					mail_check_count.style.fontSize = "9px";
					mail_check_count.style.color = "red";
					mail_check_count.style.textAlign = "right";
					mail_check_count.style.verticalAlign = "top";
					clearElement( mail_check_count );
					mail_check_count.appendChild( document.createTextNode( newMailCount ) );
				}
				else
				{
					mail_check_img.style.backgroundImage = "url('./img/mail0.gif')";
					clearElement( mail_check_count );
				}
			}
			function toggleResult()	
			{
				clearGrid = true;

				var grid_body = document.getElementById("grid_body");
				clearElement( grid_body );

				grid_body.style.width = "100%";

				var toggle_info = data.getElementsByTagName("toggle_info")[0];
				var item_id = toggle_info.getElementsByTagName("item_id")[0].firstChild.nodeValue;
				grid_body.appendChild( oneCellRow( data.getElementsByTagName("toggle")[0].firstChild.nodeValue, null, 2, "table_style_center" ) )
				grid_body.appendChild( historyNavBar() );
			}
			function updateSlotList( element, list_data, slot_type, owner_id, owner_type )
			{
				if( element )
					var equip_list = element;
				else
					var equip_list = document.getElementById("equip_list");

				if( equip_list )
				{
					clearElement( equip_list );
	
					if( list_data )
						var equipment = list_data;
					else
						var equipment = xmlVal( playerData, "equipment" );

					var total_items = xmlVal( equipment, "total_items" );
					var tot_items = ( total_items > 0 ? total_items : 0 );

					var rows = Math.ceil( tot_items / 5 );
					rows = ( rows < 1 ? 1 : rows );
					var items = xmlList( equipment, "slot_item" );
					var i = 0;
					for( var r = 1; r<= rows; r++ )
					{
						var row = document.createElement( "tr" );
	
						for( var c = 1; c <= 5; c++ )
						{
							var div1 = document.createElement("div");
							var extra_style = null;
							var item = null;
							var link = null;

							if( i < tot_items )
							{
								item = items[i];
								var item_name = xmlVal( item, "item_name" );
								div1.style.backgroundImage = "url('./img/"+item_name.toLowerCase()+".gif')";

								if( slot_type == 'inventory' )
									link = "defaultAJAX( 'inventoryData', new Array( '"+owner_id+"', '"+xmlVal( item, 'item_id' )+"' ), new Array( 'i', '"+owner_type+"' ), 'Inventory: Equipment', new Array( new Array( 'view2', 'equipment' ) ) )";
								else if( slot_type == 'npc' )
									link = "defaultAJAX( 'npcData', new Array( '"+owner_id+"', '"+xmlVal( item, 'item_id' )+"' ), new Array( '"+owner_type+"' ), 'Inventory: Equipment', new Array( new Array( 'view2', 'equipment' ) ) )";

								if( link )
									extra_style = " link";
							}
							else
								extra_style = " tab_grey";

							div1.className = "map_cell_div no_rep back_center"+extra_style;

							i++;

							var lvl = xmlVal( item, "item_level" );
							var div2 = document.createElement("div");
							div2.className = "map_cell_div";
							if( lvl && item )
								div2.style.backgroundImage = "url('./img/equip_lvl"+lvl+".gif')";
	
							div1.appendChild( div2 );
							lvl = null;

							row.appendChild( oneCell( div1, link, null, "white_back" ) );
						}
						equip_list.appendChild( row );
					}
				}
			}
			function updateRightPane()
			{
				var grid_name1 = document.getElementById("grid_name1");
				var grid_name2 = document.getElementById("grid_name2");
				var tile_no = document.getElementById("tile_no");
				var p_x = document.getElementById("player_x");
				var p_y = document.getElementById("player_y");
				var g_x = document.getElementById("grid_x");
				var g_y = document.getElementById("grid_y");

				clearElement( grid_name1 );
				clearElement( grid_name2 );
				clearElement( tile_no );
				clearElement( p_x );
				clearElement( p_y );
				clearElement( g_x );
				clearElement( g_y );

				grid_name1.appendChild( document.createTextNode( xmlVal( data, "gridName" ) ) );
				grid_name2.appendChild( document.createTextNode( xmlVal( data, "gridName" ) ) );
				tile_no.appendChild( document.createTextNode( playerArray['tileNo'] ) );
				p_x.appendChild( document.createTextNode( playerArray['tileX'] ) );
				p_y.appendChild( document.createTextNode( playerArray['tileY'] ) );
				g_x.appendChild( document.createTextNode( ( xmlVal( data, "gridSizeX" ) * 2 + 1 ) ) );
				g_y.appendChild( document.createTextNode( ( xmlVal( data, "gridSizeY" ) * 2 + 1 ) ) );

				var tile_charge = document.getElementById("tile_charge");

				var value = xmlVal( data, "pTileCharge" );
				temp_img = makeImg( "./img/charge"+value+".gif", 17, 15, null, "Tile charge: "+value );

				clearElement( tile_charge );
				tile_charge.appendChild( temp_img );
				tile_charge = null;

				var tile_contents = document.getElementById("tile_contents");

				while( tile_contents.childNodes.length > 0 )
				{
					tile_contents.removeChild( tile_contents.childNodes[0] );
				}
				//t_contents = data.getElementsByTagName("pTileContents");
				var t_content_list = xmlList( data, "tile_content" );
				var digLevel = xmlVal( data, "digLevel" );
				var scan_lvl = xmlVal( data, "scanLevel" );

				var table = document.createElement("table");
				var tbody = document.createElement("tbody");

				for( var ct = 0; ct < t_content_list.length; ct++ )
				{
					var item = t_content_list[ct];

					var lvl = xmlVal( item, "level" );
					var value = xmlVal( item, "type" );

					var span1 = span2 = span3 = null;
					if( value != "empty" && value != "unknown" )
					{
						var temp_text = document.createTextNode( number_format( xmlVal( item, "quantity" ), 0, '.', ',' )+" " );
						temp_img = makeImg( "./img/res"+value+".gif", 19, 14, null, value );
					
						var span1 = nNodeSpan( "L"+lvl+") ", temp_img, " ", temp_text );
						var span2 = null;
						if( lvl <= digLevel )
							span2 = oneNodeSpan( makeImg( "./img/dig.gif", 19, 14, null, "Dig me some "+value+"!", "defaultAJAX( 'actionDig', new Array('"+lvl+"'), null, null );" ), null, null, "link" );
						else
							span2 = oneNodeSpan( " " );
					}
					else
					{
						var span1 = oneNodeSpan( "L"+lvl+") [ "+( value == "empty" ? "empty": "?????" )+" ] " );
					}
					if( lvl <= scan_lvl )
						var span3 = oneNodeSpan( makeImg( './img/scan.gif', 19, 14, null, "Scan the area!", "defaultAJAX( 'scanMap', new Array( '"+lvl+"' ) );" ), null, null, "link" );
					var span = nNodeSpan( span1, " ", ( span2 ? span2 : '' ), " ", ( span3 ? span3 : '' ) );

					var div = document.createElement( "div" );
					div.style.height = 15;
					div.appendChild( span );
					tbody.appendChild( oneCellRow( div, null, null, "table_style_left tab_border" ) );
				}
				table.appendChild( tbody );
				tile_contents.appendChild( table );
			}
			function updateBottomPanes()
			{
				//statusbar
				var status_bar = document.getElementById("status_bar");
				if( status_bar )
				{
					clearElement( status_bar );
					var status_text = xmlVal( playerData, "status_text" );
					if( status_text )
					{
						status_bar.appendChild( document.createTextNode( status_text ) );
						status_bar.style.backgroundColor = "rgb(255,255,0)";

						if( timers['status_bar'] )
							clearInterval( timers['status_bar'] );
						timers['status_bar'] = setInterval( "fadeNewData( 'bar', 'status', timers )", 50 );
					}
				}

				//autoqueue
				var auto_queue = document.getElementById("auto_queue");
				if( auto_queue )
				{
					clearElement( auto_queue );
					var queue_text = xmlVal( playerData, "queue" );
					if( queue_text )
						auto_queue.appendChild( document.createTextNode( queue_text ) );
				}
			}
			function updatePlayerDetails()
			{
				if( views['tool_box'] == "tool_box_game" )
				{
					var doc_inventory = null;
					var inventory_list = null;
					var doc_turns = document.getElementById("doc_turns");
					if( doc_turns )
					{
						clearElement( doc_turns );
						doc_turns.appendChild( document.createTextNode( playerArray['turns'] ) );
					}
					var player_name = document.getElementById("player_name");
					if( player_name )
					{
						clearElement( player_name );
						player_name.appendChild( nNodeSpan( makeImg( './img/player1.gif' ), " ", oneNodeSpan( playerArray['name'], null, "defaultAJAX( 'profileData', new Array( '"+player_id+"' ), new Array( 'p' ) )", "link" ) ) );
					}
				}
			}

			function updateDPad()
			{
				var dirs_ar = null;
				var gridUp = null;
				var gridDown = null;
				dirs_ar = new Array("N", "W", "E", "S", "NW", "NE", "SW", "SE");

				for(var ar = 0; ar < dirs_ar.length; ar++ )
				{
					var action_temp_tag = null;
					var temp_img = null;

					var ar_dir = null;
					ar_dir = dirs_ar[ar];
					action_temp_tag = document.getElementById("action_"+ar_dir);

					if( action_temp_tag )
					{
						clearElement( action_temp_tag );
						action_temp_tag.className = null;

						actions[ar_dir] = xmlVal( playerData, "action"+ar_dir );
						if( actions[ar_dir] )
						{
							if( actions[ar_dir] == "C" )
							{
								temp_img = makeImg( "./img/chop.gif", 17, 17, null, "Chop!", "defaultAJAX( 'actionChop', null, new Array('"+ar_dir+"'), null);" );
								action_temp_tag.className = "link";
							}
							else if( actions[ar_dir] >= 1 )
							{
								temp_img = makeImg( "./img/move_"+ar_dir+"1.gif", 17, 17, null, "'Move "+ar_dir+"'", "defaultAJAX( 'actionMove', new Array( '1' ), new Array( '"+ar_dir+"'), null );" );
								action_temp_tag.className = "link";
							}
							else if( actions[ar_dir] == 0 )
								temp_img = makeImg( "./img/move_"+ar_dir+"0.gif", 17, 17 );
						}
						else
							temp_img = makeImg( "./img/move_"+ar_dir+"0.gif", 17, 17 );

						if( temp_img )
							action_temp_tag.appendChild(temp_img);
					}
				}

				gridUp = document.getElementById("grid_up");
				if( gridUp )
				{
					clearElement( gridUp );
					gridUp.className = "map_cell_div";

					if( xmlVal( playerData, "moveGridParent" ) == 1 )
							gridUp.appendChild( makeImg( "./img/leave_grid.gif", 17, 17, null, "Leave Grid", "defaultAJAX( 'actionGrid', null, new Array( 'parent' ), null, null, null, null, null, 'Loading new Grid!', null, true );", 'link' ) );
				}

				gridDown = document.getElementById("grid_down");
				if( gridDown )
				{
					clearElement( gridDown );
					gridDown.className = "map_cell_div";

					if( xmlVal( playerData, "moveGridChild" ) == 1 )
						gridDown.appendChild( makeImg( "./img/enter_grid.gif", 17, 17, null, "Enter Grid", "defaultAJAX( 'actionGrid', null, new Array( 'child' ), null, null, null, null, null, 'Loading new Grid!', null, true );", 'link' ) );
				}
				
			}

///////////////////////////////////////////////////////////////////////

			function makeMapSidebar()
			{
				var body = document.createElement( "tbody" );

				body.appendChild( oneCellRow( oneNodeSpan( '[d:name]', "grid_name1", null, "table_style_blank" ) ) );
				body.appendChild( oneCellRow( nNodeSpan( "Size: ", oneNodeSpan( '', "grid_x" ), " x ", oneNodeSpan( '[d:y]', "grid_y" ) ), null, null, "table_style_blank" ) );
				body.appendChild( oneCellRow( nNodeSpan( "Loc: ", oneNodeSpan( '', "grid_name2" ), "=>", oneNodeSpan( '[d:tNo]', "tile_no" ) ), null, null, "table_style_blank bold" ) );
				body.appendChild( oneCellRow( nNodeSpan( "(x=", oneNodeSpan( '', "player_x" ), ", y=", oneNodeSpan( '[d:pY]', "player_y" ), ")" ), null, null, "table_style_blank bold" ) );
				body.appendChild( oneCellRow( nNodeSpan( "Tile contents: ", oneNodeSpan( '', "tile_charge", null, "table_style_blank" ) ), null, null, "table_style_blank" ) );
				body.appendChild( oneCellRow( oneNodeSpan( '', "tile_contents", null, "table_style_blank" ) ) );

				var dPadBody = document.createElement( "tbody" );

				var row = document.createElement( "tr" );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_NW", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_N", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_NE", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "grid_up", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( makeImg( './img/refresh.gif', 17, 20, null, "Refresh Data" ), "refreshData();", null, "map_cell_div link" ) );
				dPadBody.appendChild( row );

				var row = document.createElement( "tr" );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_W", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', null, null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_E", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "grid_down", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', null, null, null ), null, null, "map_cell_div" ) );
				dPadBody.appendChild( row );

				var row = document.createElement( "tr" );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_SW", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_S", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', "action_SE", null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', null, null, null ), null, null, "map_cell_div" ) );
				row.appendChild( oneCell( oneNodeSpan( ' ', null, null, null ), null, null, "map_cell_div" ) );
				dPadBody.appendChild( row );

				var dPadTable = document.createElement( "table" );
				dPadTable.appendChild( dPadBody );
				dPadTable.className = "equipment white_back";
				dPadTable.cellSpacing = 0;
				dPadTable.cellPadding = 0;

				body.appendChild( oneCellRow( dPadTable ) );
				
				return body;
			}
			function currentHistory( name, function_name, arg )
			{

				if( arguments.length == 3 )
				{
					if( page_history_current.length > 0 )
						page_history_back.unshift( page_history_current );

					page_history_current = new Array( name, function_name, arg );
					page_history_forward = new Array();
				}
				else if( name == "backtrack" )
				{
					//page_history_back.shift();
					page_history_current = new Array();
					page_history_forward = new Array();
				}
				else
				{
					if( page_history_current.length > 0 )
					{
						page_history_back.unshift( page_history_current );
	
						page_history_current = new Array();
						page_history_forward = new Array();
					}
				}
			}
			function historyNavBar()
			{
				var table = document.createElement( "table" );
				var tbody = document.createElement( "tbody" );

				var row = document.createElement( "tr" );

				var cell = oneCell( nNodeSpan( oneNodeSpan( makeImg( './img/hisBack0.gif', 14, 10), "navBack", null, "table_style_center" ) ), null, null, "table_style_center" );
				cell.style.width = 65;
				row.appendChild( cell );

				row.appendChild( oneCell( oneNodeSpan( "Back to Map", null, "refreshData();", "link"), null, null, "table_style_center" ) );

				var cell = oneCell( nNodeSpan( oneNodeSpan( makeImg( './img/hisForward0.gif', 14, 10), "navForward", null, "table_style_center" ) ), null, null, "table_style_center" );
				cell.style.width = 65;
				row.appendChild( cell );

				tbody.appendChild( row );
				table.appendChild( tbody );
				table.cellPadding = 0;
				table.cellSpacing = 0;
				table.className = "w100p";

				var master_row = oneCellRow( table, null, 2, "table_style_center solid" );
				master_row.style.height = 12;
				return master_row;
			}
			function updateHistoryNav()
			{
				var navBack = document.getElementById( "navBack" );
				var navForward = document.getElementById( "navForward" );

				if( navBack )
				{
					clearElement( navBack );

					if( page_history_back.length > 0 )
					{
						navBack.appendChild( makeImg( './img/hisBack1.gif', 14, 10 ) );
						navBack.className = "table_style_center link";
						navBack.onmouseover = new Function( "grabMouseCoords"+( agent != "firefox" ? '()' : '' )+"; return displayFloatDiv( '"+page_history_back[0][0]+"' )" );
						navBack.onmouseout = new Function( "return killFloatDiv()" );

						navBack.onclick = new Function( "return historyClick( page_history_back[0], 'back' );" );
					}
					else
					{
						navBack.appendChild( makeImg( './img/hisBack0.gif', 14, 10 ) );
						navBack.className = "table_style_center";
					}
				}
				if( navForward )
				{
					clearElement( navForward );

					if( page_history_forward.length > 0 )
					{
						navForward.appendChild( makeImg( './img/hisForward1.gif', 14, 10 ) );
						navForward.className = "table_style_center link";
						navForward.onmouseover = new Function( "grabMouseCoords"+( agent != "firefox" ? '()' : '' )+"; return displayFloatDiv( '"+page_history_forward[0][0]+"' )" );
						navForward.onmouseout = new Function( "return killFloatDiv()" );

						navForward.onclick = new Function( "return historyClick( page_history_forward[0], 'forward' );" );
					}
					else
					{
						navForward.appendChild( makeImg( './img/hisForward0.gif', 14, 10 ) );
						navForward.className = "table_style_center";
					}
				}
			}
			function parseArgs( args )
			{
				var func = '';

				for( var a = 0; a < args.length; a++ )
				{
					var arg = args[a];
					if( arg == null )
						func += 'null'+( parseInt( a ) + 1 < args.length ? ', ' : '' );
					else if( arg instanceof Array )
					{
						func += 'new Array( ';
						func += parseArgs( arg );
						func += ' )'+( parseInt( a ) + 1 < args.length ? ', ' : '' );
					}
					else if( typeof arg == "object" )
						func += arg+( parseInt( a ) + 1 < args.length ? ', ' : '' );
					else if( typeof arg == "string" )
						func += "'"+arg+"'"+( parseInt( a ) + 1 < args.length ? ', ' : '' );
					else
						func += 'null'+( parseInt( a ) + 1 < args.length ? ', ' : '' );

				}
				
				return func;
			}
			function historyClick( array, dir )
			{
				var onclick = array[1]+"( ";
				onclick += parseArgs( array[2] );
				onclick += " );";

				navRecord = false;

				var temp_function = new Function( "return "+onclick );
				temp_function();

				if( dir == "back" )
				{
					if( page_history_current.length > 0 )
						page_history_forward.unshift( page_history_current );
					page_history_current = page_history_back.shift();

				}
				else
				{
					if( page_history_current.length > 0 )
						page_history_back.unshift( page_history_current );
					page_history_current = page_history_forward.shift();
				}

				
				navRecord = true;
			}

