/*****************************
 *  換頁
*****************************/
// 轉頁 url:要連結的網頁
function goto( url ){
	location.href = url;
}
// 轉頁，刪除上一頁 url:要連結的網頁
function goto_replace( url ){
	location.replace(url);
}
// 返回上一頁
function goto_back(){
	history.back();
}
// 轉頁並加上網頁參數值 url:要連結的網頁, field:參數值名稱(xxx,yyy,zzz), value:參數值(aaa,bbb,ccc)
function goto_param( url, field, value ){
	var strlink = "";
	if ( ( field != undefined ) && ( value != undefined ) ){
		var strfield = field.split( "," );
		var strvalue = value.split( "," );
		
		for ( inti = 0; inti < strfield.length; inti++ ){
			if ( strlink == "" ) strlink = "?" + strfield[inti] + "=" + strvalue[inti];
			else strlink += "&" + strfield[inti] + "=" + strvalue[inti];
		}
	}
	location.href = url + encodeURI(strlink);
}
// 頁面轉換, url:連結網頁, param:原本的網頁參數值, value:要轉換的頁數, field_pagenum:頁碼的變數名稱
function page_change( url, param, value, field_pagenum ){
	var strlink = '';
	if ( field_pagenum == undefined ) field_pagenum = 'pagenum='; else field_pagenum += '=';
	if ( param == '' ) strlink = "?" + field_pagenum + value;
	else{
		arr_param = param.split('&');
		for ( var i = 0; i < arr_param.length; i++ ){
			if ( arr_param[i].substr( 0, field_pagenum.length ) != field_pagenum ) strlink += ( strlink == '' ? '' : '&' ) + arr_param[i];	
		}
		strlink = '?' + strlink + '&' + field_pagenum + value;
	}
	location.href = url + strlink;
}

/*****************************
 *  刪除更新確認
*****************************/
// 刪除單張圖片
function delete_pic( delyes_id, div_self_id, div_other_id ){
	if ( confirm( "您確定要刪除此圖檔?" ) ){
		document.getElementById(delyes_id).value = 1;
		if ( div_self_id != undefined ) document.getElementById(div_self_id).style.display = 'none';
		if ( div_other_id != undefined ) document.getElementById(div_other_id).style.display = '';
	}else return false;
}	
// 刪除單一檔案
function delete_file( delyes_id, div_self_id, div_other_id ){
	if ( confirm( "您確定要刪除此檔案?" ) ){
		document.getElementById(delyes_id).value = 1;
		if ( div_self_id != undefined ) document.getElementById(div_self_id).style.display = 'none';
		if ( div_other_id != undefined ) document.getElementById(div_other_id).style.display = '';
	}else return false;
}
// 確認是否要刪除 url:要連結的網頁, field:參數值名稱(xxx,yyy,zzz), value:參數值(aaa,bbb,ccc)
function chk_del( url, field, value ){
	if ( confirm( "您確定要刪除此筆資料?\n該筆所有相關資料將會一併刪除" ) ) goto_param( url, field, value ); else return false;

}
// 確認是否要多筆刪除
function chk_delall( thisForm, action ){
	if ( !action ){ action = 'delall'; }
	alert( "正準備進行選取資料的刪除動作!!" );
	if ( confirm( "再次確定要刪除資料嗎?\n所有相關資料將會一併刪除" ) ){
		thisForm.action.value = action;
		thisForm.submit();
		return true;
	}else return false;
}
// 確認是否要更新
function chk_updateall( thisForm, action ){
	if ( !action ){ action = 'updateall'; }
	alert( "正準備進行選取資料的更新動作!!" );
	if ( confirm( "再次確定要更新資料嗎?" ) ){
		thisForm.action.value = action;
		thisForm.submit();
		return true;
	}else return false;
}
// 全選或全不選 
function chkall( thisForm, checkbox, chkeckboxid ){
	if ( chkeckboxid == undefined ){ chkeckboxid = ''; }
    var objForm = document.forms[thisForm.name];
    var objLen = objForm.length;
    for ( var iCount = 0; iCount < objLen; iCount++ ){
		if ( objForm.elements[iCount].type == "checkbox" ){
			if ( chkeckboxid == '' ){
				if ( checkbox.checked == true ) objForm.elements[iCount].checked = true;
				else objForm.elements[iCount].checked = false;
			}else{
				var objid = objForm.elements[iCount].id;
				if ( objid.substr(0, chkeckboxid.length) == chkeckboxid ){
					if ( checkbox.checked == true ) objForm.elements[iCount].checked = true;
					else objForm.elements[iCount].checked = false;
				}
			}
        }
    }
}
// 重新排序
function chk_sort( thisForm ){
	if ( confirm("確定再重新排序?") ){
		thisForm.action.value = "sort";
		return true;
	}else return false;
}

/*****************************
 *  檢查判斷
*****************************/
// 檢查空白值, thisForm:form的obj, field:欄位名稱(aaa,bbb), name:顯示文字(xxx,yyy), fckeditor:如果在判斷是否為空值的欄位是使用fckeditor時,需再額外填入欄位名稱
function check( thisForm, field, name, fckeditor ){
	var strfckeditor = "";
	if ( fckeditor != undefined ){
		strfckeditor = fckeditor.split(",");
		for ( inti = 0; inti < strfckeditor.length; inti++){
			var oEditor = FCKeditorAPI.GetInstance( strfckeditor[inti] ) ;
			oEditor.UpdateLinkedField();
		}
	}

	var alertStr = "";
	if ( ( field != undefined ) && ( name != undefined ) ){
		var strfield = field.split( "," );
		var strname  = name.split( "," );

		for ( inti = 0; inti < strfield.length; inti++ ){
			var chkfckeditor = 0;
			for ( intj = 0; intj < strfckeditor.length; intj++ ){
				if ( strfckeditor[intj] == strfield[inti] ) chkfckeditor = 1; //如果此欄位為fckeditor時, 則為1
			}
			var strchk = "trim(thisForm." + strfield[inti] + ".value)";

			if ( chkfckeditor == 1 ){
				if ( eval(strchk) == '<br type="_moz" />' || eval(strchk) == '<br />' ) alertStr += strname[inti] + " 不能為空白!! \n";
				else alertStr += check_null( eval(strchk), strname[inti] );
			}else alertStr += check_null( eval(strchk), strname[inti] );
				
		}
	}

	if ( alertStr != '' ){
	    alert( alertStr );
	    return false;
	}else{
		thisForm.chkpass.value = 1;
		return true;
	}
}
// 檢查此資料是否為空值 val:欄位值, name:顯示文字, fckeditor:判斷此欄位是否用fckeditor建立
function check_null( val, name , fckeditor ){
	// 判斷fckedition前 請在原本頁面加上以下兩行程式碼
	//var oEditor = FCKeditorAPI.GetInstance( 'content' ) ;
	//oEditor.UpdateLinkedField();
	if ( fckeditor == 1 ){
		if ( trim(val) == '<br type="_moz" />' || trim(val) == '<br />' ) return name + " 不能為空白!!\n";
	}
	if ( trim(val) == '' ) return name + " 不能為空白!!\n";
	return '';
}
// 登入檢查 thisForm::form的obj
function check_login( thisForm ){
	var alertStr = "";
	alertStr += check_null( thisForm.account.value, "帳號" );
	alertStr += check_null( thisForm.password.value, "密碼" );
	alertStr += check_null( thisForm.chk.value, "驗證碼" );
     
	if ( alertStr != '' ){
	   alert( alertStr );
	   return false;
	}else{
      thisForm.action.value = "login";
      return true;
    }
}	
// 檢查email是否合法 val:欄位值, name:顯示文字
function check_email( val ,name ){
	if ( name == undefined ) name = "電子郵件";
	var len = val.length;
	if( len == 0 ) return name + " 不能為空白!!\n";

	var re = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
	if ( !re.test(val) ) return name + " 格式錯誤!!\n";
	return '';
}
// 檢查帳號 val:欄位值, name:顯示文字
function check_account( val ,name ){
	if ( name == undefined ) name = "帳號";
	var len = val.length;
	if( len == 0 ) return name + " 不能為空白!!\n";
	var re = /[^a-zA-Z0-9]+/;
	if ( re.test(val) ) return name + " 限用英文，數字組合!!\n";
	return "";
}
// 檢查是否為數值 val:變數, name:顯示文字, chkblank:是否檢查空白值
function check_number( val, name, chkblank ){
	var len = val.length;
	if ( chkblank != 1 && len == 0 ) return "";
	if ( chkblank == 1 ){
		if ( len == 0 ) return name + " 不能為空白!!\n"
	}
	for ( var i = 0; i < len; i++ ){
		var c = val.charAt(i);
		if ( !( c >= 0 && c <= 9 ) ) return name + " 只能是數字!!\n";
	}
	return '';
}
// 檢查是否為浮點數 val:值, digit:小數點幾位, name:顯示名稱, chkblank:是否檢查空白值
function check_float( val, digit, name, chkblank ){
	var len = val.length;
	if ( chkblank != 1 && len == 0 ) return "";
	if ( chkblank == 1 ){
		if ( len == 0 ) return name + ' 不能為空白!!\n';
	}
	if ( digit == '' ) digit = 0;
	arr_num = val.split('.');

	if ( ( arr_num[0] == '' ) && ( arr_num.length != 1 ) ) return name + ' 格式錯誤!!\n';
	if ( arr_num.length > 2 ) return name + ' 格式錯誤!!\n';
	if ( ( arr_num.length == 2 ) && ( arr_num[1].length > digit ) ) return name + ' 只到小數第 ' + digit + ' 位!!\n';
	var chk_val = 0;
	for ( var i = 0; i < arr_num.length; i++ ){
		if ( check_number(arr_num[i], name) != '' ) chk_val = 1;
	}
	if ( chk_val == 1 ) return name + ' 只能是數字!!\n';
	return '';
}
// 檢查行動電話是否輸入正確, num:變數, name:顯示文字, $chkblank:是否檢查空白值
function check_mobile( val, name, chkblank){
	if ( name == undefined ) name = '行動電話';
	var len = val.length;
	if ( chkblank != 1 && len == 0 ) return "";
	if ( chkblank == 1 ){
		if ( len == 0 ) return name + " 不能為空白!!\n"
	}
	if ( ( ( val.substring(0,2) != '09' ) ) || ( val.length != 10 ) ) return name + " 格式錯誤!!\n";
	return "";
}
// 檢查聯絡電話是否輸入正確, num:變數, name:顯示文字, $chkblank:是否檢查空白值
function check_tel( val, name, chkblank ){
	if ( name == undefined ) name = '聯絡電話';
	var len = val.length;
	if ( chkblank != 1 && len == 0 ) return "";
	if ( chkblank == 1 ){
		if ( len == 0 ) return name + " 不能為空白!!\n"
	}
	var re = /^\d{2,}-\d{6,}.*/
	if ( !re.test(val) ) return name + " 格式錯誤!!\n"
	return "";
}
// 檢查密碼和確認密碼是否輸入正確 pw1:密碼, pw2:確認密碼, name1:顯示密碼文字, name2:顯示確認密碼文字
function check_password( pw1, pw2, name1, name2 ){
	if ( name1 == undefined ) name1 = '密碼';
	if ( name2 == undefined ) name2 = '確認密碼';
	if ( pw1 == '' ) return name1 + " 不能為空白!!\n";
	var re = /[^a-zA-Z0-9]+/;
	if ( re.test(pw1) ) return name1 + " 限用英文，數字組合!!\n";

	if ( pw1.length < 6 ) return name1 + " 長度必須大於 6 個字母!!\n";
	if ( pw1 != pw2 ) return name1 + "和" + name2 + "輸入不一樣,請重新輸入!!\n";
	return "";
}
// 檢查新密碼和確認新密碼是否輸入正確 oldpw:原密碼, pw1:密碼, pw2:確認密碼, oldname:顯示原密碼文字, name1:顯示密碼文字, name2:顯示確認密碼文字
function check_newpassword( oldpw, pw1, pw2, oldname, name1, name2 ){
	if ( oldname == undefined ) oldname = '原密碼';
	if ( name1 == undefined ) name1 = '新密碼';
	if ( name2 == undefined ) name2 = '確認新密碼';
	if ( oldpw.length != 0 ){
		if ( pw1 == '' ) return name1 + " 不能為空白!!\n";
		var re = /[^a-zA-Z0-9]+/;
		if ( re.test(pw1) ) return name1 + " 限用英文，數字組合!!\n";

		if ( pw1.length < 6 ) return name1 + " 長度必須大於 6 個字母!!\n";
		if ( pw1 != pw2 ) return name1 + "和" + name2 + "輸入不一樣,請重新輸入!!\n";
		return "";
	}else return "";
}
// 檢查核取方塊 obj:核取方塊物件, $name:顯示名稱
function check_checkbox( obj ,name ){
	var len = obj.length;
	if ( obj.length == undefined ){
		if ( obj.checked == false ) return name + ' 必須選取!!\n';	
	}else{
		var chk = 0;
		for ( var i = 0; i < obj.length; i++ ){
			if ( obj[i].checked == true ) chk = 1;
		}
		if ( chk == 0 ) return name + ' 必須選取!!\n';	
	}
	return "";
}
// 檢查核取方塊 obj:核取方塊物件, $name:顯示名稱
function check_radio( obj ,name ){
	var len = obj.length;
	if ( obj.length == undefined ){
		if ( obj.checked == false ) return name + ' 必須選取!!\n';	
	}else{
		var chk = 0;
		for ( var i = 0; i < obj.length; i++ ){
			if ( obj[i].checked == true ) chk = 1;
		}
		if ( chk == 0 ) return name + ' 必須選取!!\n';	
	}
	return "";
}
function get_value_checked_radio( obj ){
	var len = obj.length;
	if ( obj.length == undefined ){
		if ( obj.checked == true ) return obj.value;	
	}else{
		for ( var i = 0; i < obj.length; i++ ){
			if ( obj[i].checked == true ) return obj[i].value;
		}
	}
	return "";
}

// 檢查身份證字號是否輸入正確 id:身份字號, name:顯示名稱, chkgender:是否要判斷性別, gender:性別值(0:女,1:男)
function check_idnumber( id , name, chkgender, gender ){
	if (　name == undefined ) name = '身分證字號';
	if ( id.length != 10 ) return name + ' 格式錯誤!!\n';
	
	var chk = 0;
	
	for ( var i = 1; i < 10; i++ ){
		if ( check_number(id.charAt(i), '身分證') != '' ) chk = 1;
	}

	if ( chk == 1 ) return name + ' 格式錯誤!!\n';
	var id2 = '';
	str_city = id.charAt(0).toUpperCase();
	
	switch (str_city){
		case 'A': id2 = '10'; break;  case 'B': id2 = '11'; break;
		case 'C': id2 = '12'; break;  case 'D': id2 = '13'; break;
		case 'E': id2 = '14'; break;  case 'F': id2 = '15'; break;
		case 'G': id2 = '16'; break;  case 'H': id2 = '17'; break;
		case 'I': id2 = '34'; break;  case 'J': id2 = '18'; break;
		case 'K': id2 = '19'; break;  case 'L': id2 = '20'; break;
		case 'M': id2 = '21'; break;  case 'N': id2 = '22'; break;
		case 'O': id2 = '35'; break;  case 'P': id2 = '23'; break;
		case 'Q': id2 = '24'; break;  case 'R': id2 = '25'; break;
		case 'S': id2 = '26'; break;  case 'T': id2 = '27'; break;
		case 'U': id2 = '28'; break;  case 'V': id2 = '29'; break;
		case 'W': id2 = '32'; break;  case 'X': id2 = '30'; break;
		case 'Y': id2 = '31'; break;  case 'Z': id2 = '33'; break;
	}
	
	for ( var i = 1; i < 10; i++ ) id2 += id.charAt(i);
	var total = 0;
	total += parseInt(id2.charAt(0), 10);
	total += parseInt(id2.charAt(1), 10) * 9;
	total += parseInt(id2.charAt(2), 10) * 8;
	total += parseInt(id2.charAt(3), 10) * 7;
	total += parseInt(id2.charAt(4), 10) * 6;
	total += parseInt(id2.charAt(5), 10) * 5;
	total += parseInt(id2.charAt(6), 10) * 4;
	total += parseInt(id2.charAt(7), 10) * 3;
	total += parseInt(id2.charAt(8), 10) * 2;
	total += parseInt(id2.charAt(9), 10) * 1;
	
	var chk_number =  10 - ( total % 10 );
	if ( chk_number ==  10 ) chk_number = 0;
	if ( parseInt(id2.charAt(10), 10) != chk_number ) return name + ' 格式錯誤!!\n';
	if ( ( chkgender == 1 ) && ( ( gender == '1' ) || ( gender == '0' ) ) ){
		 if ( gender == '1' ){
			 if ( id.charAt(1) != '1' ) return name + ' 格式錯誤!!\n';
		 }else if ( gender == '0' ){
			 if ( id.charAt(1) != '2' ) return name + ' 格式錯誤!!\n';
		 }
	}
	return "";
}

/*****************************
 *  OTHER
*****************************/
// 清除空白 stringToTrim:字串
function trim( stringToTrim ) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim( stringToTrim ) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim( stringToTrim ) {
	return stringToTrim.replace(/\s+$/,"");
}
// 縮放
function toggle ( id ){
	var obj = document.getElementById(id)
	if ( obj.style.display == 'none' ) obj.style.display = '';           
    else obj.style.display = 'none';
}
function multi_storey_category( page, first, add_detail, div, tb, text_name, level, self_id, selected_value, field_name, field_value, parent_value, show_all ){
	var c = $('#'+ div + '_' + level);
	$.post(page + '.php', {
			first: first,
			add_detail: add_detail,
			div: div,
			tb: tb,
			text_name: text_name,
			level: level,
			self_id: self_id,
			selected_value: selected_value,
			field_name: field_name,
			field_value: field_value,
			parent_value: parent_value,
			show_all: show_all
		},
		function(data){
			$(c).html('')
			$(c).append(data);
		}
	);
}

