﻿var o_bgcolor = '';
var o_color = '';
var o_cursor = '';
var o_obj = null;
var tag_count = 1;

// 上傳 onload ---------------------------------------------------------------------
function upload_onload()
{
	document.getElementById('new_author').style.display = 'none';
	
	// 取代傳統表單
//	if(xmlhttp) { document.getElementById('uploader_ui').innerHTML = '4'; }
	
	// 取得 cookie
	if( checkCookie() == 'true' )
	{
		if( readCookie('mission_author') != null )
		{ document.getElementById('u_author').value = readCookie('mission_author'); }
		if( readCookie('mission_mail') != 'null' )
		{ document.getElementById('u_mail').value = readCookie('mission_mail'); }
	}
}

//  清除 cookie
function clear_cookie()
{
	if( checkCookie() == 'true' ) { deleteCookie('mission_author'); deleteCookie('mission_mail'); }
}

// 新增作者表單
function toogle_new_author()
{
	if( document.getElementById('new_author').style.display == 'block' )
	{
		document.getElementById('new_author').style.display = 'none';
		document.getElementById('u_author_new').value = '';
		document.getElementById('u_author_dir').value = '';
	}
	else
	{
		document.getElementById('new_author').style.display = 'block';
		document.getElementById('u_author').value = '';
	}
}

// 插入標籤
function add_tag()
{
	if( document.getElementById('insert_tag').value == '' ) { return true; }
	if( document.getElementById('u_tag').value.match(/,+\s*$/) || document.getElementById('u_tag').value == '' )
	{ document.getElementById('u_tag').value += document.getElementById('insert_tag').value + ", "; }
	else
	{ document.getElementById('u_tag').value += ", " + document.getElementById('insert_tag').value + ", "; }
	document.getElementById('u_tag').focus();
}


// 上傳表單 ------------------------------------------------------------------------
function upload_submit( form )
{
	var errmsg = '';
	// 驗證表單
	if( form['u_title'].value == '' ) { errmsg += "錯誤：\n請輸入任務名稱。\n\n"; }
	if( form['u_author'].value == '' )
	{
		if( form['u_author_new'].value == '' )
		{ errmsg += "錯誤：\n請輸入作者名稱。\n\n"; }
		else if( form['u_author_dir'].value == '' )
		{ errmsg += "錯誤：\n請輸入資料夾名稱。\n\n"; }
		else	// 檢驗新作者、資料夾名稱
		{
			if( !form['u_author_new'].value.length > 16 )
			{ errmsg += "錯誤：\n作者名稱過長，不能超過 16 個字。\n\n"; }
			if( !form['u_author_dir'].value.match(/^[a-zA-Z]\w+$/) )
			{ 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標籤名稱過長，不能超過 7 個字。\n\n"; }
			}
		}
	}
	if( form['u_file'].value == '' )
	{
		if( form['u_file_link'].value == '' ) { errmsg += "錯誤：\n請上傳檔案，或輸入可以下載的網址。\n\n"; }
		else	// 檢驗網址
		{
			if( !form['u_file_link'].value.match(/^https?:\/\/.+\.+.+/) )
			{ errmsg += "錯誤：\n網址格式不正確。\n\n"; }
		}
	}
	
	// 密碼加密
	if( form['u_pw'].value != '' )
	{
		// 檢驗密碼
		if( !form['u_pw'].value.match(/^\w{3,}$/) ) { errmsg += "錯誤：\n密碼格式不正確或太短。\n\n"; }
		if( form['u_pw'].value.length > 12 ) { errmsg += "錯誤：\n密碼太長，最多只能使用 12 字的密碼。\n\n"; }
		if( form['u_title'].value != '' )
		{
			{ form['hash'].value = hex_sha1( hex_hmac_sha1( 'salt', form['u_pw'].value ) ); }
		}
		form['u_pw'].value = '';
	}
	else
	{
		if( !confirm("警告：\n您沒有輸入密碼，以後將無法自行修改任務資料。\n確定要繼續嗎？\n") )
		{ return false; }
	}
	
	//
	if( form['u_snap_link'].value != ''  && form['u_snap'].value != '' )
	{
		if( !confirm("警告：\n因為您輸入了外部連結，所以縮圖不會上傳。\n確定要繼續嗎？\n") )
		{ return false; }
	}
	
	// 錯誤訊息
	if( errmsg != '' )
	{
		alert(errmsg);
		return false;
	}
	else
	{
		// 設定 cookie
		if( checkCookie() == 'true' )
		{ createCookie( 'mission_author', document.getElementById('u_author').value, 490 ); }
		form['u_pw'].value = '';
		return true;
	}
}



// AJAX ---------------------------------------------------------------------------
// 任務列表 -----------------------------------------------------------------------
// end of AJAX --------------------------------------------------------------------
