window.addEvent( "domready", function()
{
	var server_status_spin_ele = $( "server_status_top" );
	var IsPanelExtented = false;

	function SetExtented( IsExtented )
	{
		IsPanelExtented = IsExtented;
		if( IsExtented ) server_status_spin_ele = $( "server_status_content" );
		else server_status_spin_ele = $( "server_status_top" );
	}

	$$( $( "server_status_top" ), $( "server_status_content" ) ).set( "spinner",
	{
		"id":				"status_spinner",
		"message":			"",
		"class":			"server_status_spinner",

		"img":
		{
			"class":		"server_status_spinner-img"
		},

		"fxOptions":
		{
			"duration":		250,
			"link":			"cancel"
		}
	} );
	$( "server_status_top" ).spin();

	$( "server_status_body" ).set( "slide" ).slide( "hide" );

	$$( $( "server_status_top" ), $( "server_status_body" ), $( "status_spinner" ) ).addEvents(
	{
		"mouseenter":			function()
		{
			$( "server_status_body" ).slide( "in" );
			SetExtented( true );
		},

		"mouseleave":			function()
		{
			$( "server_status_body" ).slide( "out" );
			SetExtented( false );
		}
	} );

	if( $( "server_status_back" ) && $( "server_status_next" && $( "server_status_current" ) ) )
	{
		$( "server_status_back" ).clicked = true;
		$( "server_status_next" ).clicked = false;
		
		$( "server_status_back" ).addEvents(
		{
			"click":			function( evt )
			{
				if( !this.clicked )
				{
					this.clicked = true;

					$( "server_status_next" ).clicked = false;
					$( "server_status_current" ).set( "text", "Ecchi\u00A0Server" );
				}
				else
				{
					evt.stop();

					$( "server_status_next" ).clicked = false;
				}
			}
		} );

		$( "server_status_next" ).addEvents(
		{
			"click":				function( evt )
			{
				if( !this.clicked )
				{
					this.clicked = true;

					$( "server_status_back" ).clicked = false;
					$( "server_status_current" ).set( "text", "Sakray\u00A0Server" );
				}
				else
				{
					evt.stop();

					$( "server_status_back" ).clicked = false;
				}
			}
		} );
	}

	function CheckStatus( element, status )
	{
		if( $( element ) )
		{
			if( status )
			{
				$( element ).set( "text", "Online" );
				$( element ).setProperty( "class", "StatusText-Online" );
			}
			else
			{
				$( element ).set( "text", "Offline" );
				$( element ).setProperty( "class", "StatusText-Offline" );
			}
		}
	}

	var OnlinePlayers_Request = new Request.JSON(
	{
		"url": "Include/online_players.php",
		"onSuccess":				function( data )
		{
			if( data )
			{
				$( "players_online" ).set( "text", data["players"] + "\u00A0Player" + ( data["players"] == 1 ? "" : "s" ) );
				$( "gms_online" ).set( "text", data["gms"] + "\u00A0GM" + ( data["gms"] == 1 ? "" : "s" ) );
			}
		}
	} );

	var ServerStatus_Request = new Request.JSON(
	{
		"url": "Include/server_status.php",
		"onSuccess":				function( data )
		{
			if( data )
			{
				for( var i = 0; i < data.length; i++ )
				{
					CheckStatus( data[i].ele, data[i].data );
				}
			}
			OnlinePlayers_Request.send();

			server_status_spin_ele.unspin();
		}
	} );

	if( $( "ecchi_server_status" ) && $( "sakray_server_status" ) )
	{
		new SimpleSlideShow.Carousel( $( "server_status_context" ),
		{
			"startIndex": 0,
			"slides": $$( $( "ecchi_server_status" ), $( "sakray_server_status" ) ),
			"nextLink": "status_next",
			"prevLink": "status_back"
		} );
	}

	if( $( "ecchi_server_status2" ) && $( "sakray_server_status2" ) )
	{
		new SimpleSlideShow.Carousel( $( "server_status_context2" ),
		{
			"startIndex": 0,
			"slides": $$( $( "ecchi_server_status2" ), $( "sakray_server_status2" ) ),
			"nextLink": "status_next",
			"prevLink": "status_back"
		} );
	}

	function RefreshStatus()
	{
		server_status_spin_ele.spin();
		ServerStatus_Request.send();
	}

	RefreshStatus();
	RefreshStatus.periodical( 30000 );
} );
