/*-------------------------------------------------------------------------------------------------------------------
 Script Name: functions.js
 Author: Tony Wei (魏志國)  tonywei123_at_gmail.com
 Description: JavaScript 共用函式庫
 Revision History:
   1.0: original version 2010/9/18
-------------------------------------------------------------------------------------------------------------------*/

var slang = "chi";		// 整體變數：語系

var _head = location.href.substr( location.href.indexOf( "//" ) + 2 );
_head = _head.substr( _head.indexOf( "/" ) + 1 );
if ( _head.indexOf( "/" ) > -1 ) {
	slang = _head.substr( 0, _head.indexOf( "/" ) );
	switch ( slang )
	{
		case "chi":
		case "eng":
		case "jap":
			break;

		default:
			slang = "chi";
			break;
	}
}


// -------------------------------------------------------------------------------------------------------------------------------------------
// 附加於 windows.onload 函式
// -------------------------------------------------------------------------------------------------------------------------------------------
if ( window.attachEvent ) window.attachEvent( "onload", win_load );	// IE
if ( window.addEventListener ) document.addEventListener( "DOMContentLoaded", win_load, false );	 // Mozilla
function win_load()
{

}

// 語系切換
function change_lang()
{
	var ms1 = document.getElementById( "mySelect1" );
	var new_lang = ms1.options[ ms1.selectedIndex ].value;
	if ( new_lang != slang ) {
		location.href = "/" + new_lang + "/";
	}
}


// -------------------------------------------------------------------------------------------------------------------------------------------
// 聯絡我們
function check_contact_chi()
{
	//if ( ! check_required( '公司名稱', '公司名稱' ) ) return false;
	if ( ! check_required( '聯絡人', '聯絡人' ) ) return false;
	if ( ! check_required( 'Email', 'Email' ) ) return false;
	if ( ! check_email( 'Email' ) ) return false;
	if ( ! check_required( '電話1', '電話-國碼' ) ) return false;
	if ( ! check_required( '電話2', '電話-區碼' ) ) return false;
	if ( ! check_required( '電話3', '電話' ) ) return false;
	/*
	if ( document.getElementById( "國家" ).selectedIndex < 1 ) {
		alert( "請選取您的國家!" );
		return false;
	}
	if ( ! check_required( '城市', '城市' ) ) return false;
	if ( ! check_required( '郵遞區號', '郵遞區號' ) ) return false;
	if ( ! check_required( '地址', '地址' ) ) return false;
	*/
	if ( document.getElementById( "收件位置" ).selectedIndex < 1 ) {
		alert( "請選取您的收件位置!" );
		return false;
	}
	//if ( ! check_required( '主旨', '主旨' ) ) return false;
	//if ( ! check_required( '意見內容', '意見內容' ) ) return false;
	if ( ! check_required( 'code', '驗證碼' ) ) return false;
	if ( ! check_numeric2( 'code', '驗證碼' ) ) return false;
	if ( ! check_code() ) return false;
}

function check_contact_eng()
{
	//if ( ! check_required( '公司名稱', '公司名稱' ) ) return false;
	if ( ! check_required( '聯絡人', 'Contact Person' ) ) return false;
	if ( ! check_required( 'Email', 'Email' ) ) return false;
	if ( ! check_email( 'Email' ) ) return false;
	if ( ! check_required( '電話1', 'Country Code' ) ) return false;
	if ( ! check_required( '電話2', 'Area Code' ) ) return false;
	if ( ! check_required( '電話3', 'Phone' ) ) return false;
	/*
	if ( document.getElementById( "國家" ).selectedIndex < 1 ) {
		alert( "請選取您的國家!" );
		return false;
	}
	if ( ! check_required( '城市', '城市' ) ) return false;
	if ( ! check_required( '郵遞區號', '郵遞區號' ) ) return false;
	if ( ! check_required( '地址', '地址' ) ) return false;
	*/
	if ( document.getElementById( "收件位置" ).selectedIndex < 1 ) {
		alert( "Please select your Subject!" );
		return false;
	}
	//if ( ! check_required( '主旨', '主旨' ) ) return false;
	//if ( ! check_required( '意見內容', '意見內容' ) ) return false;
	if ( ! check_required( 'code', 'Verify code' ) ) return false;
	if ( ! check_numeric2( 'code', 'Verify code' ) ) return false;
	if ( ! check_code() ) return false;
}

function check_contact_jap()
{
	//if ( ! check_required( '公司名稱', '公司名稱' ) ) return false;
	if ( ! check_required( '聯絡人', 'お名前' ) ) return false;
	if ( ! check_required( 'Email', 'Email' ) ) return false;
	if ( ! check_email( 'Email' ) ) return false;
	if ( ! check_required( '電話1', '国コード' ) ) return false;
	if ( ! check_required( '電話2', '地域コード' ) ) return false;
	if ( ! check_required( '電話3', '電話番号' ) ) return false;
	/*
	if ( document.getElementById( "國家" ).selectedIndex < 1 ) {
		alert( "請選取您的國家!" );
		return false;
	}
	if ( ! check_required( '城市', '城市' ) ) return false;
	if ( ! check_required( '郵遞區號', '郵遞區號' ) ) return false;
	if ( ! check_required( '地址', '地址' ) ) return false;
	*/
	if ( document.getElementById( "收件位置" ).selectedIndex < 1 ) {
		alert( "ご受信場所を選択!" );
		return false;
	}
	//if ( ! check_required( '主旨', '主旨' ) ) return false;
	//if ( ! check_required( '意見內容', '意見內容' ) ) return false;
	if ( ! check_required( 'code', '検証番号' ) ) return false;
	if ( ! check_numeric2( 'code', '検証番号' ) ) return false;
	if ( ! check_code() ) return false;
}


// -------------------------------------------------------------------------------------------------------------------------------------------
// 預先檢查驗證碼
function check_code()
{
	var url = "/chi/check_code/?rand=" + Math.random() + "&code=" + document.getElementById( "code" ).value;
	var objTag = ccioo_ajax_getXmlData( url ).getElementsByTagName("item");
	var sReturn = objTag[0].firstChild.nodeValue;
	if ( parseInt( sReturn ) > 0 ) {
		switch ( slang )
		{
			case "chi":	 	alert( "請輸入正確的驗證碼!" );													break;
			case "eng":	alert( "Please enter the correct Security Code!" );				break;
			case "jap":		alert( "してください正しい認証コードを入力します!" );		break;
		}
		return false;
	}
	return true;
}


/*-------------------------------------------------------------------------------------------------------------------
 Function: check_required()
 Description: 檢查表單欄位是否有填寫
 Input: 物件ID, 訊息
 Output: 是否驗證通過 true or false
 Example: 
	check_required( "username", "姓名" );
Revision History:
   1.0: original version 2007/1/5
-------------------------------------------------------------------------------------------------------------------*/
function check_required( objID, sMessage )
{
	var objField = document.getElementById( objID );
	if ( objField.value.replace( /\s/g, "" ).length == 0 ) {
		switch ( slang )
		{
			case "chi":
				alert( "請填寫" + sMessage + "!" );
				break;

			case "eng":
				alert( "Please input " + sMessage + "!" );
				break;

			case "jap":
				alert( "入力してください " + sMessage + "!" );
				break;
		}
		objField.focus();
		return false;
	}
	return true;
}

 /*-------------------------------------------------------------------------------------------------------------------
 Function: check_numeric()
 Description: 檢查表單欄位是否是數字
 Input: 物件ID, 訊息
 Output: 是否驗證通過 true or false
 Example: 
	check_numeric( "amount", "數量" );
Revision History:
   1.0: original version 2007/1/8
-------------------------------------------------------------------------------------------------------------------*/
function check_numeric( objID, sMessage )
{
	var objField = document.getElementById( objID );
	if ( isNaN( parseInt( objField.value ) ) || parseInt( objField.value ) != objField.value ) {
		switch ( slang )
		{
			case "chi":
				alert( sMessage + "必須是數字!" );
				break;

			case "eng":
				alert( sMessage + " must be a numeric!" );
				break;

			case "jap":
				alert( sMessage + " する必要があります数値!" );
				break;
		}
		objField.select();
		objField.focus();
		return false;
	}
	return true;
}

 /*-------------------------------------------------------------------------------------------------------------------
 Function: check_numeric2()
 Description: 檢查表單欄位是否是數字
 Input: 物件ID, 訊息
 Output: 是否驗證通過 true or false
 Example: 
	check_numeric2( 'mobile', '手機或聯絡電話' );
Revision History:
   1.0: original version 2007/1/8
-------------------------------------------------------------------------------------------------------------------*/
function check_numeric2( objID, sMessage )
{
	var objField = document.getElementById( objID );
	var filter= /^([0-9\-\(\)#]+)$/i;
	if ( ! filter.test( objField.value ) ) {
		switch ( slang )
		{
			case "chi":
				alert( sMessage + "必須是數字!" );
				break;

			case "eng":
				alert( sMessage + " must be a numeric!" );
				break;

			case "jap":
				alert( sMessage + " する必要があります数値!" );
				break;
		}
		objField.select();
		objField.focus();
		return false;
	}
	return true;
}

 /*-------------------------------------------------------------------------------------------------------------------
 Function: check_email()
 Description: 檢查表單欄位是否是合法 Email 帳號
 Input: 物件ID, 訊息
 Output: 是否驗證通過 true or false
 Example: 
	check_email( "email" );
Revision History:
   1.0: original version 2007/1/8
-------------------------------------------------------------------------------------------------------------------*/
function check_email( objID, sMessage )
{
	var objField = document.getElementById( objID );
	var filter= /^([\w-]+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if ( ! filter.test( objField.value ) ) {
		switch ( slang )
		{
			case "chi":
				alert( "請填寫正確的Email信箱!" );
				break;

			case "eng":
				alert( "Please input a correct E-mail." );
				break;

			case "jap":
				alert( "入力してください正しい電子メールを!" );
				break;
		}
		objField.select();
		objField.focus();
		return false;
	}
	return true;
}

/*-------------------------------------------------------------------------------------------------------------------
 Function: jump_get()
 Description: 換頁, 使用 GET
 Input: 新頁碼
 Output: N/A
 Example: 
	jump_get(2);
Revision History:
   1.0: original version 2007/1/10
   2.0: fn 參數版 2007/6/23 2008/5/30
   3.0: rewrite 版 2009/5/16
   4.0: SEO 網址版 2009/8/27
   4.1: 多語系版 2009/8/30
-------------------------------------------------------------------------------------------------------------------*/
function jump_get( p ) {

	var slang = "", fn = "", no = "";
	var head = location.href.substr( location.href.indexOf( "//" ) + 2 );
	head = head.substr( head.indexOf( "/" ) + 1 );
	if ( head.indexOf( "/" ) > -1 ) {
		slang = head.substr( 0, head.indexOf( "/" ) );
		head = head.substr( head.indexOf( "/" ) + 1 );
	}
	if ( head.indexOf( "/" ) > -1 ) {
		fn = head.substr( 0, head.indexOf( "/" ) );
		head = head.substr( head.indexOf( "/" ) + 1 );
	}
	if ( head.indexOf( "/" ) > -1 ) {
		no = head.substr( 0, head.indexOf( "/" ) );
		head = head.substr( head.indexOf( "/" ) + 1 );
	} else {
		no = "0";
	}
	var tail = "";
	if ( head.indexOf( "/" ) > -1 ) {
		head = head.substr( head.indexOf( "/" ) + 1 );
		if ( head.indexOf( "/" ) > -1 ) {
			tail = head.substr( 0, head.indexOf( "/" ) );
		}
	}

	var url = "/" + slang + "/" + fn + "/" + no + "/" + p + "/" + tail;
	//alert( url );
	location.href = url;
}

function jump_get2( p, tail ) {
	var slang = "", fn = "", no = "";
	var head = location.href.substr( location.href.indexOf( "//" ) + 2 );
	head = head.substr( head.indexOf( "/" ) + 1 );
	if ( head.indexOf( "/" ) > -1 ) {
		slang = head.substr( 0, head.indexOf( "/" ) );
		head = head.substr( head.indexOf( "/" ) + 1 );
	}
	if ( head.indexOf( "/" ) > -1 ) {
		fn = head.substr( 0, head.indexOf( "/" ) );
		head = head.substr( head.indexOf( "/" ) + 1 );
	}
	if ( head.indexOf( "/" ) > -1 ) {
		no = head.substr( 0, head.indexOf( "/" ) );
		head = head.substr( head.indexOf( "/" ) + 1 );
	} else {
		no = "0";
	}
	var url = "/" + slang + "/" + fn + "/" + no + "/" + p + "/" + tail + "/";
	location.href = url;
}

