﻿var qBuffer = null;
var gyid = '';

function takumi_style(t_style)
{
	if( checkCookie() == 'true' )
	{
		createCookie( 'takumi_style', t_style, 640, '/' );
		alert("スタイル変更しました。");
	}
}

// 資料庫 onload -------------------------------------------------------------------
function db_onload()
{
	var single_mode = document.getElementById('single_mode');
	
	document.getElementById('q_submit').style.display = 'none';
	document.getElementById('ajax_submit').value = "　　　　検 索　　　　";
	document.getElementById('ajax_submit').style.display = 'inline';
	if(single_mode)
	{
		document.getElementById('ajax_show').style.display = 'none';
		document.getElementById('ajax_hidden').style.display = 'inline';
		document.getElementById('ajax_show_gy').style.display = 'none';
		document.getElementById('ajax_hidden_gy').style.display = 'inline';
	}

	// 取得 cookie
	if( checkCookie() == 'true' && !single_mode )
	{
		if( readCookie('view_mode') != 'null' )
		{
			if( readCookie('view_mode') == 'true' )
			{ document.getElementById('db_form')['q_view'][0].checked = 'true'; }
			else
			{ document.getElementById('db_form')['q_view'][1].checked = 'true'; }
		}
		if( readCookie('db_order_by') != 'null' )
		{ document.getElementById('q_order_by').value = readCookie('db_order_by'); }
		if( readCookie('db_item_per_page') != 'null' )
		{ document.getElementById('q_item_per_page').value = readCookie('db_item_per_page'); }

		ajax_mission_list();
	}
}
// 寫入 cookie
function db_set_cookie()
{
	createCookie( 'view_mode', document.getElementById('db_form')['q_view'][0].checked, 490 );
	createCookie( 'db_order_by', document.getElementById('db_form')['q_order_by'].value, 490 );
	createCookie( 'db_item_per_page', document.getElementById('db_form')['q_item_per_page'].value, 490 );
}
// 清除資料庫 cookie
function db_clear_cookie()
{
	if( checkCookie() == 'true' ) { deleteCookie('mission_author'); deleteCookie('mission_mail'); }
}
// 任務資料修改 - 表單驗證
function ajax_info_modify_submit( form )
{
	var errmsg = '';
	if( form['u_title'].value == '' ) { errmsg += "エラー：\n任務名を入力して下さい。\n\n"; }
	if( form['u_mail'].value != '' )	// 檢驗信箱
	{
		if( !form['u_mail'].value.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/) )
		{ errmsg += "エラー：\nメールアドレスが正しくありません。\n\n"; }
	}
	if( form['u_hp'].value != '' )	// 檢驗個人網站
	{
		if( !form['u_hp'].value.match(/^https?:\/\/.+\.+.+/) )
		{ errmsg += "エラー：\nホームページアドレスが正しくありません。\n\n"; }
	}
	if( form['u_tag'].value != '' )	// 檢驗標籤
	{
		var tag_array = form['u_tag'].value.split(",");
		if( tag_array.length > 5 )
		{ errmsg += "エラー：\nタグが多すぎ，７つまでで入力して下さい。\n\n"; }
		else
		{
			for( itr = 0 ; itr < tag_array.length ; itr++ )
			{
				if( tag_array[itr].length > 7 )
				{ errmsg += "エラー：\nタグ名が長すぎ、７文字までで入力して下さい。\n\n"; }
			}
		}
	}
	if( form['u_file_link'].value != '' )	// 檢驗網址
	{
		if( !form['u_file_link'].value.match(/^https?:\/\/.+\.+.+/) )
		{ errmsg += "エラー：\nファイルアドレスが正しくありません。\n\n"; }
	}
	//
	if( form['u_snap_link'].value != ''  && form['u_snap'].value != '' )
	{
		if( !confirm("警告：\n外部リンクを入力したため、サムネイル画像をアップロードしません。\n処理を継続しますか？\n") )
		{ return false; }
	}
	// 錯誤訊息
	if( errmsg != '' )
	{
		alert(errmsg);
		return false;
	}
	else { return true; }
}
// 保存查詢內容
function storeQuery(div_name)
{
	if(!qBuffer)
	{ qBuffer = document.getElementById(div_name).innerHTML; }
}
// 回復查詢內容
function restoreQuery(div_name)
{
	document.getElementById(div_name).innerHTML = qBuffer;
	qBuffer = null;
}
// 啟用「刪除任務」按鈕
function enableDelMission()
{
	if( document.getElementById('u_delete').disabled )
	{ document.getElementById('u_delete').disabled = !document.getElementById('u_delete').disabled; }
}
function disableDelMission()
{ document.getElementById('u_delete').disabled = 'true'; }
// 移至此頁 - 轉向 AJAX
function page_jump_to_ajax(page_total)
{
	var page = document.getElementById('page_jump_input').value;
	if( page != '' )
	{ ajax_mission_list( page, page_total ); }
}


// AJAX ---------------------------------------------------------------------------
// 任務列表 -----------------------------------------------------------------------
function ajax_mission_list( page, page_total )
{
	if( qBuffer ) { restoreQuery('list_body'); }
	
	if(is_ie) { xmlhttp = getXMLHttpRequestObject(); }

	var q_form = document.getElementById('db_form');
	var queryStr = "";
	queryStr += ( "q_title=" + encodeURIComponent( q_form['q_title'].value ) );
	queryStr += ( "&q_author=" + encodeURIComponent( q_form['q_author'].value ) );
	queryStr += ( "&q_tag=" + encodeURIComponent( q_form['q_tag'].value ) );
	queryStr += ( "&q_tag_in=" + encodeURIComponent( q_form['q_tag_in'].value ) );
	queryStr += ( "&q_view=" + q_form['q_view'][0].checked );
	queryStr += ( "&q_order_by=" + encodeURIComponent( q_form['q_order_by'].value ) );
	queryStr += ( "&q_item_per_page=" + encodeURIComponent( q_form['q_item_per_page'].value ) );
	queryStr += ( "&ajax_page=" + page );
	queryStr += ( "&ajax_page_total=" + page_total );
	
	xmlhttp.onreadystatechange = process_mission_list;
	xmlhttp.open( "POST", 'ajax_mission_list_jp.php' , true );
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send( queryStr );
	
	// 設定 cookie
	if( checkCookie() == 'true' ) { db_set_cookie(); }
}
function process_mission_list()
{
	var res = document.getElementById('ajax_mission_list');
	if ( xmlhttp.readyState == 4 )	// 4 = complete
	{
		if ( xmlhttp.status == 200 )
		{
			result = xmlhttp.responseText;
			res.innerHTML = result;
		}
		else
		{
			res.innerHTML = ("データ取得失敗:\n" + xmlhttp.statusText );
		}
	}
	else
	{
		res.innerHTML = "読み込み中...";
	}
}
// 密碼輸入 -----------------------------------------------------------------------
function ajax_pw_input( id, title )
{
	storeQuery('list_body');

	if(is_ie) { xmlhttp = getXMLHttpRequestObject(); }
	
	var queryStr = "q_id=" + id + "&q_title=" + title;
	
	xmlhttp.onreadystatechange = process_pw_input;
	xmlhttp.open( "POST", 'ajax_pw_input_jp.php' , true );
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send( queryStr );
}
function process_pw_input()
{
	var res = document.getElementById('list_body');
	if ( xmlhttp.readyState == 4 )	// 4 = complete
	{
		if ( xmlhttp.status == 200 )
		{
			result = xmlhttp.responseText;
			res.innerHTML = result;
		}
		else
		{
			res.innerHTML = ("データ取得失敗:\n" + xmlhttp.statusText );
		}
	}
	else
	{
		res.innerHTML = "読み込み中...";
	}
}
// 任務資料編輯 -------------------------------------------------------------------
function ajax_info_modify( challenge, id, title )
{
	if(is_ie) { xmlhttp = getXMLHttpRequestObject(); }

	var pw = document.getElementById('u_pw').value;
	// 密碼加密
	if( pw != '' ) { var hash = hex_sha1( hex_hmac_sha1('salt', pw) ); }
	else { return false; }

	var queryStr = "q_id=" + id + "&q_title=" + title + "&q_hash=";
	queryStr += hex_sha1(hex_hmac_sha1(''+challenge,hash)) + "&challenge=" + challenge;

	xmlhttp.onreadystatechange = process_info_modify;
	xmlhttp.open( "POST", 'ajax_info_modify_jp.php' , true );
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send( queryStr );
}
function process_info_modify()
{
	var res = document.getElementById('modi_res');
	if ( xmlhttp.readyState == 4 )	// 4 = complete
	{
		if ( xmlhttp.status == 200 )
		{
			result = xmlhttp.responseText;
			res.innerHTML = result;
		}
		else
		{
			res.innerHTML = ("データ取得失敗:\n" + xmlhttp.statusText );
		}
	}
	else
	{
		res.innerHTML = "読み込み中...";
	}
}
// 任務評價 - 讀取 ------------------------------------------------------------------
function ajax_gy_load( id )
{
	if( qBuffer ) { restoreQuery('list_body'); }
	storeQuery('list_body');
	gyid = id;
	if(is_ie) { xmlhttp = getXMLHttpRequestObject(); }

	var queryStr = "mid=" + gyid + "&mode=load";

	xmlhttp.onreadystatechange = process_gy_load;
	xmlhttp.open( "POST", 'ajax_gy_jp.php' , true );
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send( queryStr );
}
function process_gy_load()
{
	var res = document.getElementById( 'comment_res_' + gyid );
	if ( xmlhttp.readyState == 4 )	// 4 = complete
	{
		if ( xmlhttp.status == 200 )
		{
			result = xmlhttp.responseText;
			res.innerHTML = result;
		}
		else
		{
			res.innerHTML = ("データ取得失敗:\n" + xmlhttp.statusText );
		}
	}
	else
	{
		res.innerHTML = "読み込み中...";
	}
}
// 任務評價 - 留言 ------------------------------------------------------------------
function ajax_gy( id )
{
	gyid = id;
	if(is_ie) { xmlhttp = getXMLHttpRequestObject(); }

	var q_form = document.getElementById('gy_form');
	var queryStr = "";
	queryStr += "mid=" + gyid + "&mode=gy";
	queryStr += ( "&c_user=" + encodeURIComponent( q_form['c_user'].value ) );
	queryStr += ( "&c_type=" + q_form['c_type'].value );
	queryStr += ( "&c_text=" + encodeURIComponent( q_form['c_text'].value ) );

	xmlhttp.onreadystatechange = process_gy;
	xmlhttp.open( "POST", 'ajax_gy_jp.php' , true );
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send( queryStr );
}
function process_gy()
{
	var res = document.getElementById( 'comment_res_' + gyid );
	if ( xmlhttp.readyState == 4 )	// 4 = complete
	{
		if ( xmlhttp.status == 200 )
		{
			result = xmlhttp.responseText;
			res.innerHTML = result;
		}
		else
		{
			res.innerHTML = ("データ取得失敗:\n" + xmlhttp.statusText );
		}
	}
	else
	{
		res.innerHTML = "読み込み中...";
	}
}
// end of AJAX --------------------------------------------------------------------
