/*-------------------------------------------------------------------------------------------------------------------
 Script Name: functions.js
 Author: Tony Wei (魏志國)  tonywei123_at_gmail.com
 Description: JavaScript 共用函式庫
 Revision History:
   1.0: original version 2010/7/26
-------------------------------------------------------------------------------------------------------------------*/


var slang = "chi";		// 整體變數：語系

if ( location.href.indexOf( "lang=chi" ) > -1 ) {
	slang = "chi";
} else {
	if ( location.href.indexOf( "lang=sim" ) > -1 ) {
		slang = "sim";
	} else {
		slang = "eng";
	}
}


// 聯絡我們
function check_contact_us_chi()
{
	if ( ! check_required( '姓名', '姓名' ) ) return false;
	if ( ! check_required( '電話', '電話' ) ) return false;
	if ( ! check_required( 'E-mail', 'E-mail' ) ) return false;
	if ( ! check_email( 'E-mail' ) ) return false;
	if ( document.getElementById( "國家" ).selectedIndex < 1 ) {
		alert( "請選取國家!" );
		document.getElementById( "國家" ).focus();
		return false;
	}
	if ( ! check_required( '留言', '留言' ) ) return false;
}

// 聯絡我們
function check_contact_us_sim()
{
	if ( ! check_required( '姓名', '姓名' ) ) return false;
	if ( ! check_required( '電話', '电话' ) ) return false;
	if ( ! check_required( 'E-mail', 'E-mail' ) ) return false;
	if ( ! check_email( 'E-mail' ) ) return false;
	if ( document.getElementById( "國家" ).selectedIndex < 1 ) {
		alert( "請選取国家!" );
		document.getElementById( "國家" ).focus();
		return false;
	}
	if ( ! check_required( '留言', '留言' ) ) return false;
}

// 聯絡我們
function check_contact_us_eng()
{
	if ( ! check_required( '姓名', 'Name' ) ) return false;
	if ( ! check_required( '電話', 'Tel' ) ) return false;
	if ( ! check_required( 'E-mail', 'E-mail' ) ) return false;
	if ( ! check_email( 'E-mail' ) ) return false;
	if ( document.getElementById( "國家" ).selectedIndex < 1 ) {
		alert( "Please choose Country!" );
		document.getElementById( "國家" ).focus();
		return false;
	}
	if ( ! check_required( '留言', 'Comments' ) ) return false;
}

// 進階搜尋第二步驟
function adv_search_step2()
{
	var bHasChecked = false;
	for ( var i=0 ; i < 100 ; i++ )
	{
		if ( document.getElementById( "c" + i ) == null ) {
			break;
		}
		if ( document.getElementById( "c" + i ).checked ) {
			bHasChecked = true;
			break;
		}
	}
	if ( ! bHasChecked ) {
		switch ( slang )
		{
			case "chi":
				alert( "請先勾選您要搜尋的條件!" );
				break;

			case "sim":
				alert( "请先勾选您要搜寻的条件!" );
				break;

			case "eng":
				alert( "Please select parameters for your search!" );
				break;
		}
		return;
	}
	document.form1.submit();
}

// 一般搜尋 -- keyword
function go_search1()
{
	if ( document.getElementById( "keyword" ).value == "Keyword" ) {
		document.getElementById( "keyword" ).value = "";
	}
	if ( document.getElementById( "keyword" ).value == "" ) {
		switch ( slang )
		{
			case "chi":
				alert( "請輸入關鍵字!" );
				return;

			case "sim":
				alert( "请输入关键词!" );
				return;

			case "eng":
				alert( "Please input the keyword!" );
				return;
		}
	}
	location.href = "index.aspx?lang=" + slang + "&fn=search_result&k=" + encodeURI( document.getElementById( "keyword" ).value );
}

// 一般搜尋 -- Part No.
function go_search2()
{
	if ( document.getElementById( "partno" ).value == "Part No." ) {
		document.getElementById( "partno" ).value = "";
	}
	if ( document.getElementById( "partno" ).value == "" ) {
		switch ( slang )
		{
			case "chi":
				alert( "請輸入 Part No." );
				return;

			case "sim":
				alert( "请输入 Part No." );
				return;

			case "eng":
				alert( "Please input the Part No." );
				return;
		}
	}
	location.href = "index.aspx?lang=" + slang + "&fn=search_result&pno=" + encodeURI( document.getElementById( "partno" ).value );
}

// 進階搜尋 -- 送出查詢
function check_search_list()
{
	var qs = new Querystring();
	if ( qs.get("no") == "4" ) {		// IC/LDO 專用
		if ( document.getElementById( "d1" ) != null && document.getElementById( "d1" ).type=="text" && document.getElementById( "d1" ).value != "" ) {
			if ( document.getElementById( "d2" ) != null && document.getElementById( "d2" ).type=="text" && document.getElementById( "d2" ).value != "" ) {
				var Vin		= parseFloat( document.getElementById( "d1" ).value );
				var Vout	= parseFloat( document.getElementById( "d2" ).value );
				if ( Vin > Vout ) {
					switch ( slang )
					{
						case "chi":
							alert( "您輸入的Vin>Vout，請重新輸入!" );
							break;

						case "sim":
							alert( "您輸入的Vin>Vout，請重新輸入!" );
							break;

						case "eng":
							alert( "Vin should not greater than Vout, please check your input again!" );
							break;
					}
					return false;
				}
			}
		}
	}

	var bHasSelected = false;
	for ( var i=1 ; i <= 100 ; i++ )
	{
		if ( document.getElementById( "d" + i ) != null ) {
			if ( document.getElementById( "d" + i ).type=="text" && document.getElementById( "d" + i ).value != "" ) {
				bHasSelected = true;
				break;
			}
			if ( document.getElementById( "d" + i ).type=="select-multiple" && document.getElementById( "d" + i ).selectedIndex != -1 ) {
				bHasSelected = true;
				break;
			}
		}
	}
	if ( ! bHasSelected ) {
		switch ( slang )
		{
			case "chi":
				alert( "請選取您要搜尋的條件!" );
				break;

			case "sim":
				alert( "请选取您要搜寻的条件!" );
				break;

			case "eng":
				alert( "Please select parameters for your search!" );
				break;
		}
		return false;
	}
}

// 商品列表頁條件篩選 -- MOSFETs
function go_filter1()
{
	var qs = new Querystring();

	var sTemp = "";
	for ( var i=1 ; i <= 100 ; i++ )
	{
		if ( document.getElementById( "d" + i ) != null ) {
			var ss = document.getElementById( "d" + i );
			sTemp += "&d" + i + "=" + ss.options[ ss.selectedIndex ].value;
		}
	}

	location.href = "index.aspx?lang=" + slang + "&fn=product_list&no=" + qs.get("no") + "&page=1" + sTemp;
}

// 商品列表頁條件篩選 --   IC/LDO   IC/Switching Controller   IC/Switching Converter
function go_filter3( func )
{

	// 判別分類
	var qs = new Querystring();
	var no = qs.get("no");

	var cno = "0";
	switch ( no )
	{
		case "4":
		case "7":
		case "8":
		case "9":
			cno = "4";
			break;

		case "5":
		case "10":
		case "11":
		case "12":
			cno = "5";
			break;

		case "6":
		case "25":
		case "26":
		case "27":
			cno = "6";
			break;
	}

	// 驗證數字
	if ( document.getElementById( "vin" ).value != "" ) {
		if ( ! check_numeric3( "vin", "Vin" ) ) return;
	}
	if ( document.getElementById( "vout" ).value != "" ) {
		if ( ! check_numeric3( "vout", "Vout" ) ) return;
		if ( cno == "4" && document.getElementById( "vin" ).value != "" ) {
			var vin	= parseFloat( document.getElementById( "vin" ).value );
			var vout	 = parseFloat( document.getElementById( "vout" ).value );
			if ( vout > vin ) {
				alert( "Error: Vout > Vin, please input the correct data!" );
				return;
			}
		}
	}
	if ( document.getElementById( "iout" ).value != "" ) {
		if ( ! check_numeric3( "iout", "Iout" ) ) return;
	}

	var sTemp = "";
	for ( var i=1 ; i <= 100 ; i++ )
	{
		if ( document.getElementById( "d" + i ) != null ) {
			var ss = document.getElementById( "d" + i );
			if ( ss.options[ ss.selectedIndex ].value != "0" ) {
				sTemp += "&d" + i + "=" + ss.options[ ss.selectedIndex ].value;
			}
		}
	}

	var sPage = "";
	if ( func == 1 ) {
		sPage = "search_result";
	} else {
		sPage = "product_list";
		cno = no;
	}

	location.href = "index.aspx?lang=" + slang + "&fn=" + sPage + "&no=" + cno + "&vin=" + document.getElementById( "vin" ).value
							 + "&vout=" + document.getElementById( "vout" ).value + "&iout="+ document.getElementById( "iout" ).value + sTemp;
}

// 商品列表頁條件篩選 -- ICs
/* 2010/10/23 起作廢，與 MOSFETs 共用 go_filter1() 即可
function go_filter2()
{
	var qs = new Querystring();

	var sTemp = "";

	if ( document.getElementById( "v1" ).value != "" ) {
		if ( ! check_numeric3( "v1", "Vin(Min)" ) ) return;
		sTemp += "&v1=" + document.getElementById( "v1" ).value;
	}

	if ( document.getElementById( "v2" ).value != "" ) {
		if ( ! check_numeric3( "v2", "Vin(Max)" ) ) return;
		sTemp += "&v2=" + document.getElementById( "v2" ).value;
	}

	if ( document.getElementById( "v3" ).value != "" ) {
		if ( ! check_numeric3( "v3", "Vout" ) ) return;
		sTemp += "&v3=" + document.getElementById( "v3" ).value;
	}

	if ( document.getElementById( "v4" ).value != "" ) {
		if ( ! check_numeric3( "v4", "Iout" ) ) return;
		sTemp += "&v4=" + document.getElementById( "v4" ).value;
	}

	for ( var i=1 ; i <= 100 ; i++ )
	{
		if ( document.getElementById( "d" + i ) != null ) {
			var ss = document.getElementById( "d" + i );
			sTemp += "&d" + i + "=" + ss.options[ ss.selectedIndex ].value;
		}
	}

	location.href = "index.aspx?lang=" + slang + "&fn=product_list&no=" + qs.get("no") + "&page=1" + sTemp;
}
*/


/*-------------------------------------------------------------------------------------------------------------------
 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 "sim":
				alert( "请填写" + sMessage + "!" );
				break;

			case "eng":
				alert( "Please input " + sMessage + "!" );
				break;
		}
		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 "sim":
				alert( "请填写正确的Email电邮!" );
				break;

			case "eng":
				alert( "Please input a correct E-mail." );
				break;
		}
		objField.select();
		objField.focus();
		return false;
	}
	return true;
}

 /*-------------------------------------------------------------------------------------------------------------------
 Function: check_numeric3()
 Description: 檢查表單欄位是否是數字
 Input: 物件ID, 訊息
 Output: 是否驗證通過 true or false
 Example: 
	check_numeric3( 'price', '金額' );
Revision History:
   1.0: original version 2010/7/31
-------------------------------------------------------------------------------------------------------------------*/
function check_numeric3( objID, sMessage )
{
	var objField = document.getElementById( objID );
	var filter= /^([0-9]+)([0-9\.]*)$/i;
	if ( ! filter.test( objField.value ) ) {
		switch ( slang )
		{
			case "chi":
				alert( sMessage + "必須是數字!" );
				break;

			case "sim":
				alert( sMessage + "必须是数字!" );
				break;

			case "eng":
				alert( sMessage + " must be a numeric!" );
				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
   3.0: c21 專用 2010/1/13
-------------------------------------------------------------------------------------------------------------------*/
function jump_get( p, sortNumber ) {
	var qs = new Querystring();
	var tail = "";
	if ( qs.get("type") != null ) {
		tail += "&type=" + qs.get("type");
	}
	if ( qs.get("year") != null ) {
		tail += "&year=" + qs.get("year");
	}
	if ( qs.get("no") != null ) {
		tail += "&no=" + qs.get("no");
	}
	if ( qs.get("k") != null ) {
		tail += "&k=" + encodeURI( document.getElementById('k').value );
	}
	if ( qs.get("pno") != null ) {
		tail += "&pno=" + encodeURI( document.getElementById('pno').value );
	}
	for ( var i=1 ; i <= 4 ; i++ ) {
		if ( qs.get( "v" + i ) != null ) {
			tail += "&v" + i + "=" + qs.get( "v" + i );
		}
	}
	/*
	if ( qs.get("fn") == "product_list" ) {
		for ( var i=1 ; i <= 100 ; i++ )
		{
			if ( document.getElementById( "d" + i ) != null ) {
				var ss = document.getElementById( "d" + i );
				tail += "&d" + i + "=" + ss.options[ ss.selectedIndex ].value;
			}
		}
	}
	*/
	if ( qs.get("vin") != null ) {
		tail += "&vin=" + qs.get("vin");
	}
	if ( qs.get("vout") != null ) {
		tail += "&vout=" + qs.get("vout");
	}
	if ( qs.get("iout") != null ) {
		tail += "&iout=" + qs.get("iout");
	}
	if ( location.href.indexOf( "&d" ) > -1 ) {
		for ( var i=1 ; i <= 100 ; i++ )
		{
			if ( qs.get( "d" + i ) != null ) {
				tail += "&d" + i + "=" + qs.get( "d" + i );
			}
		}
	}

	location.href = "index.aspx?lang=" + qs.get("lang") + "&fn=" + qs.get("fn") + "&page=" + p + tail;
}

