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

// 預先檢查驗證碼
function check_code( msg )
{
	var url = "home.php?fn=eng/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 ) {
		alert( msg );
		return false;
	}
	return true;
}


// 中文 -- 免費加入資源中心
function check_register_chi( fm )
{
	if ( ! check_required( 'RU_Name', '您的姓名' )     ) return false;
	if ( ! check_required( 'RU_Address', '通訊地址' )     ) return false;
	if ( ! check_required( 'RU_Telephone', '連絡電話' )     ) return false;
	if ( ! check_numeric2( 'RU_Telephone', '連絡電話' )     ) return false;
	if ( ! check_required( 'RU_Email', '電子郵件信箱' )     ) return false;
	if ( ! check_email( 'RU_Email' ) ) return false;
	if ( document.getElementById( "RU_AgeGroup" ).selectedIndex == -1 ) {
		alert( "請選取您的年齡!" );
		return false;
	}
	if ( ! ( fm.RU_Receive1.checked || fm.RU_Receive2.checked || fm.RU_Receive3.checked || fm.RU_Receive4.checked ) ) {
		alert( "請至少勾選一項您希望得到的服務!" );
		return false;
	}
	var bFlag = false;
	for ( var i=1 ; i <= 16 ; i++ )
	{
		if ( document.getElementById( "RU_Interesting" + i ).checked ) {
			bFlag = true;
		}
	}
	if ( ! bFlag ) {
		alert( "請勾選您感到有興趣的理財議題!" );
		return false;
	}
	if ( document.getElementById( "RU_From" ).selectedIndex == -1 ) {
		alert( "請選取您是在哪裡得知ipac的!" );
		return false;
	}
	if ( document.getElementById( "RU_From" ).value == "7" ) {
		if ( ! check_required( 'RU_FromOthers', '在哪裡得知ipac的' )     ) return false;
	}
	if ( ! check_required( 'code', '驗證碼' ) ) return false;
	if ( ! check_code( "請輸入正確的驗證碼" ) ) return false;
	return true;
}

// 英文版 -- 免費加入資源中心
function check_register_eng( fm )
{
	if ( ! check_required2( 'RU_Name', 'Name' )     ) return false;
	if ( ! check_required2( 'RU_Address', 'Mailing Address' )     ) return false;
	if ( ! check_required2( 'RU_Telephone', 'Contact Number' )     ) return false;
	if ( ! check_required2( 'RU_Email', 'Email' )     ) return false;
	if ( ! check_email2( 'RU_Email' ) ) return false;
	if ( document.getElementById( "RU_AgeGroup" ).selectedIndex == -1 ) {
		alert( "Please select your age!" );
		return false;
	}
	if ( ! ( fm.RU_Receive1.checked || fm.RU_Receive2.checked || fm.RU_Receive3.checked || fm.RU_Receive4.checked ) ) {
		alert( "Please select at least one of the resources that you want to subscribe to!" );
		return false;
	}
	var bFlag = false;
	for ( var i=1 ; i <= 16 ; i++ )
	{
		if ( document.getElementById( "RU_Interesting" + i ).checked ) {
			bFlag = true;
		}
	}
	if ( ! bFlag ) {
		alert( "Please tick  the category or categories that you are interested in!" );
		return false;
	}
	if ( document.getElementById( "RU_From" ).value == "7" ) {
		if ( ! check_required2( 'RU_FromOthers', 'how did you hear about ipac' )     ) return false;
	}
	if ( ! check_required2( 'code', 'left words' ) ) return false;
	if ( ! check_code( "please keyin left words" ) ) return false;
	return true;
}

// 中文 -- 索取 ipac 每季簡訊
function check_securedownload_chi( fm )
{
	if ( ! ( document.getElementById( "BU_ThroughEmail" ).checked || document.getElementById( "BU_ThroughMail" ).checked ) ) {
		alert( "請勾選您希望的寄送方式!" );
		return false;
	}
	var bFlag = false;
	for ( var i=1 ; i <= bd_count ; i++ )
	{
		if ( document.getElementById( "BU_BD_list" + i ).checked ) {
			bFlag = true;
		}
	}
	if ( ! bFlag ) {
		alert( "請勾選您想要收到的文宣資料!" );
		return false;
	}
	if ( ! check_required( 'BU_FullName', '全名(請提供稱謂)' )     ) return false;
	if ( ! check_required( 'BU_Email', '電子郵件信箱' )     ) return false;
	if ( ! check_email( 'BU_Email' ) ) return false;
	if ( ! check_required( 'BU_Address', '郵寄地址' )     ) return false;
	if ( document.getElementById( "BU_Address" ).value.length > 99 ) {
		alert( "您輸入的郵寄地址太長了!" );
		return false;
	}
	if ( ! check_required( 'BU_Telephone', '白天聯絡電話' )     ) return false;
	if ( ! check_numeric2( 'BU_Telephone', '白天聯絡電話' )     ) return false;
	if ( ! check_required( 'code', '驗證碼' ) ) return false;
	if ( ! check_code( "請輸入正確的驗證碼" ) ) return false;
	return true;
}

// 英文版 -- 索取 ipac 每季簡訊
function check_securedownload_eng( fm )
{
	if ( ! ( document.getElementById( "BU_ThroughEmail" ).checked || document.getElementById( "BU_ThroughMail" ).checked ) ) {
		alert( "Please choose your receive method!" );
		return false;
	}
	var bFlag = false;
	for ( var i=1 ; i <= bd_count ; i++ )
	{
		if ( document.getElementById( "BU_BD_list" + i ).checked ) {
			bFlag = true;
		}
	}
	if ( ! bFlag ) {
		alert( "Please choose the brochures!" );
		return false;
	}
	if ( ! check_required2( 'BU_FullName', 'Full Name (including salutation)' )     ) return false;
	if ( ! check_required2( 'BU_Email', 'Email Address' )     ) return false;
	if ( ! check_email2( 'BU_Email' ) ) return false;
	if ( ! check_required( 'BU_Address', 'Mailing Address' )     ) return false;
	if ( document.getElementById( "BU_Address" ).value.length > 99 ) {
		alert( "Your Mailing Address is too long!" );
		return false;
	}
	if ( ! check_required( 'BU_Telephone', 'Preferred Telephone Contact' )     ) return false;
	if ( ! check_required2( 'code', 'left words' ) ) return false;
	if ( ! check_code( "please keyin left words" ) ) return false;
	return true;
}

// 中文 -- 活動報名
function check_event_register_chi( fm )
{
	if ( ! check_required( 'EU_Name', '姓名' )     ) return false;
	if ( ! check_required( 'EU_Handphone', '手機' )     ) return false;
	if ( ! check_numeric2( 'EU_Handphone', '手機' )     ) return false;
	if ( document.getElementById( "EU_Office" ).value != "" ) {
		if ( ! check_numeric2( 'EU_Office', '連絡電話' )     ) return false;
	}
	if ( document.getElementById( "EU_Address" ).value.length > 99 ) {
		alert( "您輸入的連絡地址太長了!" );
		return false;
	}
	if ( ! check_required( 'EU_Email', '電子郵件' )     ) return false;
	if ( ! check_email( 'EU_Email' ) ) return false;
	if ( ! check_required( 'code', '驗證碼' ) ) return false;
	if ( ! check_code( "請輸入正確的驗證碼" ) ) return false;
	return true;
}

// 英文版 -- 活動報名
function check_event_register_eng( fm )
{
	if ( ! check_required2( 'EU_Name', 'Name' )     ) return false;
	if ( ! check_required2( 'EU_Handphone', 'Handphone' )     ) return false;
	if ( document.getElementById( "EU_Address" ).value.length > 99 ) {
		alert( "Your Mailing Address is too long!" );
		return false;
	}
	if ( ! check_required2( 'EU_Email', 'Email' )     ) return false;
	if ( ! check_email2( 'EU_Email' ) ) return false;
	if ( ! check_required2( 'code', 'left words' ) ) return false;
	if ( ! check_code( "please keyin left words" ) ) return false;
	return true;
}


// 文章類別
function go_cat()
{
	var qs = new Querystring();
	var lang = "chi";
	if ( qs.get("fn") != null ) {
		lang = ( qs.get("fn").substr( 0, 3 ) == "chi" ) ? "chi" : "eng";		
	}
	if ( document.getElementById( "cat1" ).value == "" ) {
		if ( lang == "chi" ) {
			alert( "請選擇類別!" );
		} else {
			alert( "Please choose the category!" );
		}
		return;
	}
	if ( document.getElementById( "cat2" ).value == "" ) {
		if ( lang == "chi" ) {
			alert( "請選擇年度!" );
		} else {
			alert( "Please choose the year!" );
		}
		return;
	}

	location.href = "home.php?fn=" + lang + "/article_archive&cat1=" + document.getElementById( "cat1" ).value + "&cat2=" + document.getElementById( "cat2" ).value;
}


/*-------------------------------------------------------------------------------------------------------------------
 Function: bookmark()
 Description: 加入我的最愛
 Input: 網址，網站名稱
 Output: true or false
 Example: 
	bookmark( 'http://www.hinet.net/', 'Hinet' );
Revision History:
   1.0: original version 2008/4/17
-------------------------------------------------------------------------------------------------------------------*/
function bookmark( address, sitename ) {
	if ( window.sidebar ) {
		window.sidebar.addPanel( sitename, address,"" );
	} else if( document.all ) {
		window.external.AddFavorite( address, sitename );
	} else if( window.opera && window.print ) {
		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 ) {
		alert( "請填寫" + sMessage + "!" );
		objField.focus();
		return false;
	}
	return true;
}
function check_required2( objID, sMessage )
{
	var objField = document.getElementById( objID );
	if ( objField.value.replace( /\s/g, "" ).length == 0 ) {
		alert( "Please Input " + sMessage + "!" );
		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 ) {
		alert( sMessage + "必須是數字!" );
		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 ) ) {
		alert( sMessage + "必須是數字!" );
		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 ) ) {
		alert( "請填寫正確的Email信箱!" );
		objField.select();
		objField.focus();
		return false;
	}
	return true;
}
function check_email2( 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 ) ) {
		alert( "Please input the correct E-mail." );
		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
-------------------------------------------------------------------------------------------------------------------*/
function jump_get( p ) {
	var qs = new Querystring();
	var tail = "";
	var fn = "";
	if ( qs.get("fn") != null ) {
		fn += "fn=" + qs.get("fn");
	}
	if ( qs.get("keyword") != null ) {
		tail += "&keyword=" + qs.get("keyword");
	}
	if ( qs.get("level") != null ) {
		tail += "&level=" + qs.get("level");
	}
	if ( qs.get("lv0") != null ) {
		tail += "&lv0=" + qs.get("lv0");
	}
	if ( qs.get("lv1") != null ) {
		tail += "&lv1=" + qs.get("lv1");
	}
	if ( qs.get("lv2") != null ) {
		tail += "&lv2=" + qs.get("lv2");
	}
	if ( qs.get("cno") != null ) {
		tail += "&cno=" + qs.get("cno");
	}
	if ( qs.get("no") != null ) {
		tail += "&no=" + qs.get("no");
	}
	if ( qs.get("y") != null ) {
		tail += "&y=" + qs.get("y");
	}
	if ( qs.get("m") != null ) {
		tail += "&m=" + qs.get("m");
	}
	if ( qs.get("oid") != null ) {
		tail += "&oid=" + qs.get("oid");
	}
	if ( qs.get("k") != null ) {
		tail += "&k=" + qs.get("k");
	}
	location.href = "home.php?" + fn + "&p=" + p + tail + "#anchor";
}
