/**************************************************
 * FF Adventure Next
 * Copyright (C) 2007 Leef <postmaster@ffa.x0.to>
 *
 * http://ffa.x0.to/
 **************************************************/

var LOGIN_USERID = "";
var LOGIN_PASSWD = "";
var battleTimerID;
var chatTimerID;
var SAVE_COOKIE = false;
var SELECT_LINE;

function onLoad()
{
	if (!navigator.cookieEnabled) {
		$('loadingmes').innerHTML = 'Cookieを有効にしてください';
	} else if (new Ajax.Request('./index.php', {
		method: 'post',
		parameters: 'ajax=true&mode=LoginMembers',
		onSuccess : function (obj)
					{
						$('members').innerHTML = obj.responseText;
						reloadLoginMembers();
					},
		onFailure : reloadLoginMembers()
	})) {
		$('content').show();
		$('loading').hide();
	} else {
		$('loadingmes').innerHTML =	'このブラウザは非対応です ' + "\n" +
									'[ <a href="./index.php?mode=SystemRequirements">動作環境</a> ]';
	}
}

function reloadLoginMembers()
{
	setInterval(function ()
	{
		pageLoad('LoginMembers', 'ajax=true&userid=' + LOGIN_USERID +
				 '&passwd=' + LOGIN_PASSWD, 'members');
	}
	, LOGIN_RELOAD * 1000);
}

function pageLoad(mode, queryString, targetID)
{
	if (!targetID) targetID = 'mainwindow';
	var callBack;
	var content = $('content');
	var loading = $('loading');

	switch (targetID) {
		case 'mainwindow':
		case 'subwindow':
			$('loadingmes').innerHTML = 'Now Loading...';
			content.scrollTop = 0;
			content.scrollLeft = 0;
			successFunc = function (obj)
			{
				setTimeout(function ()
				{
					ajaxInnerHTML(obj, mode, targetID);
				}, SLEEP * 1000);
			}
			failureFunc = function ()
			{
				loading.hide();
				content.show();
			}

			loading.show();
			content.hide();
			break;
		default:
			successFunc = function (obj)
			{
				$(targetID).innerHTML = obj.responseText.stripScripts();
				$(targetID).innerHTML = obj.responseText;
				obj.responseText.evalScripts();
			}
			failureFunc = function ()
			{
				$(targetID).innerHTML = '通信に失敗しました';
			}
	}

	new Ajax.Request('./index.php', {
		method: 'post',
		parameters: 'ajax=true&mode=' + mode + '&' + queryString,
		onSuccess : successFunc,
		onFailure : failureFunc
	});
}

function ajaxInnerHTML(obj, mode, targetID)
{
	var res = obj.responseText.stripScripts();
	var mesObj = $('loadingmes');

	var link =	' [ <a href="./" onclick="' +
				"$('loading').hide(); $('content').show(); " +
				"return false;" +
				'">OK</a> ]';

	if (res) {
		var result = res.split("\n", 1).toString();

		if (result == '<!-- Success -->') {
			$(targetID).innerHTML = res;
			if (targetID == 'mainwindow') {
				$('chatwindow').hide();
				if (battleTimerID) {
					clearInterval(battleTimerID);
					battleTimerID = "";
				}
				if (chatTimerID) {
					clearInterval(chatTimerID);
					chatTimerID = "";
				}
			}
			obj.responseText.evalScripts();
			$('content').show();
			$('loading').hide();

			return 1;
		} else if (result == '<!-- Failed -->') {
			mesObj.innerHTML = '<span class="ft0">' + res + '</span>' + link;

			return 2;
		} else {
			mesObj.innerHTML = res;

			return 3;
		}
	} else {
		mesObj.innerHTML = '<span class="ft0">ページの取得に失敗しました</span>' + link;

		return 0;
	}
}

function changeSubWindow(mode)
{
	if(mode)
	{
		$('mainwindow').hide();
		$('subwindow').show();
		$('close').show();

		if (chatTimerID) {
			$('chatwindow').hide();
		}
	} else {
		$('mainwindow').show();
		$('subwindow').hide();
		$('close').hide();

		if (chatTimerID) {
			$('chatwindow').show();
		}
	}


	$('content').scrollTop = 0;
	$('content').scrollLeft = 0;
}

function showWindow(str)
{
	var text = str;
	var e = window.event || arguments.callee.caller.arguments[0];
	$('popuptext').innerHTML = text.replace(/\[/g, "<").replace(/\]/g, " />");
	$('popup').style.left = (Event.pointerX(e) + 10) + 'px';
	$('popup').style.top  = (Event.pointerY(e) + 10) + 'px';
	$('popup').show();
}

function hideWindow()
{
	$('popup').hide();
}

function swapLine(i, j)
{
	if (j < 1 || j > 6) {
		return false;
	}

	var temp;

	swap($('flag' + i), $('flag' + j), 'checkbox');
	swap($('ability' + i), $('ability' + j));
	swap($('ablnk' + i), $('ablnk' + j), 'html');
	swap($('condition' + i), $('condition' + j));
	swap($('conlnk' + i), $('conlnk' + j), 'html');
	swap($('target' + i), $('target' + j));
	swap($('tarlnk' + i), $('tarlnk' + j), 'html');

	return true;
}

function swap(obj1, obj2, mode)
{
	var temp;

	switch (mode) {
		case 'checkbox':
			temp = obj1.checked;
			obj1.checked = obj2.checked;
			obj2.checked = temp;
			break;

		case 'html':
			temp = obj1.innerHTML;
			obj1.innerHTML = obj2.innerHTML;
			obj2.innerHTML = temp;
			break;

		default:
			temp = obj1.value;
			obj1.value = obj2.value;
			obj2.value = temp;
			break;
	}
}