PageSourceSearch

https://fair.ftc.gov.tw/fair/common/js/utils.js

js ftc.gov.tw collected 2026-10-01 10:38:39 UTC 10,323 bytes, 308 lines download raw bytes

1var noSendToAry = [52, 80, 85, 90, 95, 96, 97, 98, 100, 110, 113, 114, 115, 116, 120, 140, 160, 1080, 1090, 1100, 1110, 1130, 1140, 1141, 1150, 1160, 1170, 1180, 1211, 1212, 5030, 5040, 6666, 7777, 8888, 9600, 9701, 9702, 9878, 9879, 9880, 9881, 9882, 9884, 9885, 9887, 9888, 9889, 9890, 9990, 9992, 9993, 9994, 9995, 9996, 9997]
2
3function Load_Select_From_XML(fLoaded_XML_Data,fXML_Path,fSelect_Object)
4{
5	if (fLoaded_XML_Data.toChild(fXML_Path))
6	{
7		// for (var i=fSelect_Object.options.length-1;i>=0;i--)
8		// 	fSelect_Object.options.remove(0);
9		if (fLoaded_XML_Data.toFirstChild())
10		{
11			var fTmp_DF_Idx=0;
12			var fTmp_DF_Cnter=0;
13			do
14			{
15				if (fLoaded_XML_Data.getAttribute("DF")=="1")
16					fTmp_DF_Idx=fTmp_DF_Cnter;
17				var oNode = document.createElement("option");
18				oNode.value=fLoaded_XML_Data.getAttribute("ID");
19				oNode.text=fLoaded_XML_Data.getText();
20				fSelect_Object.add(oNode);
21				fTmp_DF_Cnter++;
22			}while (fLoaded_XML_Data.toNext());
23			fSelect_Object.selectedIndex=fTmp_DF_Idx;
24		}
25		else
26		{
27			return false;	
28		}
29	}
30	else
31	{
32		return false;	
33	}
34	return true;
35}
36
37function Load_Check_From_XML(fLoaded_XML_Data,fXML_Path,fObj,fName){
38	if(fLoaded_XML_Data.toChild(fXML_Path)){
39		fLoaded_XML_Data.toChild("ITEM")
40		do{
41			var chk = document.createElement("input");
42			chk.type = "checkbox";
43			chk.id = fName+"_"+fLoaded_XML_Data.getAttribute("ID");
44			chk.name = fName;
45			chk.value = fLoaded_XML_Data.getAttribute("ID");
46			fObj.appendChild(chk);
47
48			var sp = document.createElement("span");
49			sp.innerText = " "+fLoaded_XML_Data.getText();
50			fObj.appendChild(sp);
51
52			var blank = document.createElement("span");
53			blank.innerHTML = "   "
54			fObj.appendChild(blank);
55
56		}while(fLoaded_XML_Data.toNext("ITEM"))
57		
58	}
59	
60}
61
62function Load_Radio_From_XML(fLoaded_XML_Data,fXML_Path,fObj,fName){
63	if(fLoaded_XML_Data.toChild(fXML_Path)){
64		fLoaded_XML_Data.toChild("ITEM")
65		do{
66			var chk = document.createElement("input");
67			chk.type = "radio";
68			chk.id = fName+"_"+fLoaded_XML_Data.getAttribute("ID");
69			chk.name = fName;
70			chk.value = fLoaded_XML_Data.getAttribute("ID");
71			fObj.appendChild(chk);
72
73			var sp = document.createElement("span");
74			sp.innerText = " "+fLoaded_XML_Data.getText();
75			fObj.appendChild(sp);
76
77			var blank = document.createElement("span");
78			blank.innerHTML = "   "
79			fObj.appendChild(blank);
80
81		}while(fLoaded_XML_Data.toNext("ITEM"))
82		
83	}
84	
85}
86function initDatePicker(obj){
87	$(obj).datepicker({
88		changeMonth: true,
89		changeYear: true,
90		showOn: "button",
91		buttonImage: "../img/calendar.gif",
92		buttonImageOnly: true,
93		buttonText: "選擇日期",
94	})
95}
96
97//Server端---->Date 欄位傳回字串 Ex:2002/6/20 13:3:2
98//Client端---->Call "Get_Date_Str" To Get--->910620
99function Get_Date_Str(fDate_Str,fType)
100{
101	if(fDate_Str != null && typeof(fDate_Str.replace)!="undefined")
102		fDate_Str = fDate_Str.replace(/-/g,"/")
103	var fTemp_Date=new Date(fDate_Str);
104	if(isNaN(fTemp_Date.getFullYear()))
105		return "";
106	if (fType==1)
107		return (""+toStringLen((fTemp_Date.getFullYear()-1911),2)+"/"+toStringLen((fTemp_Date.getMonth()+1),2)+"/"+toStringLen(fTemp_Date.getDate(),2));
108	else if (fType==2)
109		return (""+toStringLen((fTemp_Date.getFullYear()-1911),2)+"/"+toStringLen((fTemp_Date.getMonth()+1),2)+"/"+toStringLen(fTemp_Date.getDate(),2)+" "+toStringLen(fTemp_Date.getHours(),2)+":"+toStringLen(fTemp_Date.getMinutes(),2)+":"+toStringLen(fTemp_Date.getSeconds(),2));
110	else 
111		return (""+toStringLen((fTemp_Date.getFullYear()-1911),2)+toStringLen((fTemp_Date.getMonth()+1),2)+toStringLen(fTemp_Date.getDate(),2));
112}
113
114function Get_Time_Str(fDate_Str,fType)
115{
116//alert(fDate_Str);
117	var fTemp_Date=new Date(fDate_Str);
118	if (fType==1)
119		return (""+toStringLen(fTemp_Date.getHours(),2)+":"+toStringLen(fTemp_Date.getMinutes(),2));
120	else
121		return (""+toStringLen(fTemp_Date.getHours(),2)+toStringLen(fTemp_Date.getMinutes(),2));
122}
123//-----------------------------------------------------------------------------
124// 加長字串長度,補"0"
125//	@ sVal : string
126//		: 原字串
127//	@ nLen : int
128//		: 指定長度
129//	@ return  :  string
130//-----------------------------------------------------------------------------
131function toStringLen(sVal, nLen)
132{
133	// 轉換數值為字串
134	var bEvent = false;
135	if (typeof(nLen) == "undefined")
136	{
137		bEvent = true;
138		nLen = sVal;
139		sVal = event.srcElement.value;
140	}
141	else if (typeof(sVal) == "number")	// 轉換數作為字串
142		sVal = sVal.toString();
143
144	if (typeof(sVal) != "string" || sVal == "")
145		sVal = "";
146	else
147	{
148		// 加長字串
149		for (var i = sVal.length; i < nLen; ++i)
150			sVal = "0" + sVal;
151	}
152	if (bEvent)
153		event.srcElement.value = sVal;
154	else
155		return sVal;
156}
157
158//瀏覽檔案上傳
159function Open_Get_File_Window(eve,type_id,sort)
160{
161	//準備上傳檔案資訊
162	var ISave_XML = new XMLDoc();
163	ISave_XML.loadXML('<?xml version="1.0" encoding="utf-8"?><REQUEST pos="FS_FAIR"></REQUEST>');
164	ISave_XML.toChild("/REQUEST");
165	ISave_XML.setAttribute("TYPE_ID",type_id);
166	ISave_XML.setAttribute("SORT",sort);
167
168	var args=new Array();
169	args[0]=menuFrame;
170	args[1]=ISave_XML.xml();
171	args[2]=$(eve.parentNode.children[0]).html();
172	$.showModalDialog("common/fs_upload_choose_file.htm",args,"width:750px;height:350px;",function(IReturnV){
173		if (!IReturnV)			
174		{
175			return false;
176		}else{
177			var IRes_XML = new XMLDoc();
178			IRes_XML.loadXML(IReturnV);
179			if (IRes_XML.toChild("/RESPONSE/ERROR")) {
180				return false;
181			}else{														//2024 11.28 Andy新增上傳日
182				var ret_file_arr = new Array();
183				ret_file_arr[0] = IRes_XML.getAttribute("FILE_NAME");
184				
185				// 獲取當前日期
186				const now = new Date();
187				const year = now.getFullYear() - 1911; // 民國年
188				const month = String(now.getMonth() + 1).padStart(2, '0');
189				const day = String(now.getDate()).padStart(2, '0');
190				const uploadDate = `上傳日 : ${year}.${month}.${day}`;
191				ret_file_arr[0] = `(${uploadDate} ${ret_file_arr[0]})`;
192				ret_file_arr[1] = IRes_XML.getAttribute("URL");
193				ret_file_arr[2] = IRes_XML.getAttribute("FID");
194				ret_file_arr[3] = IRes_XML.getAttribute("HASH");
195				$(eve.parentNode.children[0]).html("<a class='a' onclick='window.open(\""+ret_file_arr[1]+"\")'>"+ret_file_arr[0]+"</a>")
196			}
197		}
198		obj=null;
199	})
200	
201}
202
203function formatUploadDate(Idoc, File_name,is_license) {  		//將格式改成(上傳日 113.11.28) 寫成function
204    // 取得 SAVE_DATE 屬性值
205    var SAVE_DATE = Idoc.getAttribute("SAVE_DATE");
206    if(!SAVE_DATE)
207		SAVE_DATE = Idoc.getText("SAVE_DATE");
208	if(is_license)
209		SAVE_DATE = Idoc.getText("LICENSE_SAVE_DATE");
210    // 解析日期字串
211    var date = new Date(SAVE_DATE); // 轉換為 JavaScript Date 物件
212
213    // 取得民國年、月份和日期
214    var year = date.getFullYear() - 1911; // 民國年
215    var month = String(date.getMonth() + 1).padStart(2, '0'); // 月份,補零
216    var day = String(date.getDate()).padStart(2, '0'); // 日期,補零
217
218    // 格式化為所需的格式
219    var formattedDate = `${year}.${month}.${day}`;  // 例:113.11.28
220    
221    // 組合上傳日文字
222    const uploadDate = `上傳日 : ${formattedDate}`;
223    
224    // 返回組合好的顯示名稱
225    const displayName = `(${uploadDate}) ${File_name}`;
226    
227    return displayName;
228}
229
230
231
232
233
234// 假設原始日期字串是 '2024/11/29 10:59:58'// 輸出:113/11/29 10:59:58
235// 自訂格式化函數
236function formatDate(date) {
237    let year = date.getFullYear() - 1911;  // 將年份減去 1911 以符合台灣年
238    let month = date.getMonth() + 1;  // 月份是從 0 開始的,因此要加 1
239    let day = date.getDate();
240    let hours = date.getHours();
241    let minutes = date.getMinutes();
242    let seconds = date.getSeconds();
243
244    // 補零以確保顯示兩位數
245    month = month < 10 ? '0' + month : month;
246    day = day < 10 ? '0' + day : day;
247    hours = hours < 10 ? '0' + hours : hours;
248    minutes = minutes < 10 ? '0' + minutes : minutes;
249    seconds = seconds < 10 ? '0' + seconds : seconds;
250
251    // 返回格式化結果
252    return `${year}/${month}/${day} ${hours}:${minutes}:${seconds}`;
253}
254      //從DB撈出datatime會有下午跟上午
255function formatToROCDate(dateString) {
256	    // 打印類型與內容,檢查資料來源
257		console.log("Input:", dateString);
258		console.log("Type of dateString:", typeof dateString);
259	   // 確保 dateString 是字串類型
260	   dateString = String(dateString);
261		// 將日期部分和時間部分手動切割
262		let datePart = dateString.slice(0, 10); // 提取日期部分,例如 "2024/11/29"
263		let timePart = dateString.slice(11);   // 提取時間部分,例如 "下午 02:48:58"
264	
265		// 處理日期部分
266		let year = parseInt(datePart.slice(0, 4));     // 提取年份
267		let month = parseInt(datePart.slice(5, 7));    // 提取月份
268		let day = parseInt(datePart.slice(8, 10));     // 提取日期
269	
270		// 處理時間部分
271		let ampm = timePart.slice(0, 2);               // 提取 "上午" 或 "下午"
272		let hour = parseInt(timePart.slice(3, 5));     // 提取小時
273		let minute = parseInt(timePart.slice(6, 8));   // 提取分鐘
274		let second = parseInt(timePart.slice(9, 11));  // 提取秒數
275	
276		// 西元轉民國年份
277		let rocYear = year - 1911;
278	
279		// 轉換 PM 時間為 24 小時制
280		if (ampm === "下午" && hour < 12) {
281			hour += 12;
282		} else if (ampm === "上午" && hour === 12) {
283			hour = 0; // 凌晨 12 點為 0 時
284		}
285	
286		// 格式化結果
287		return `${rocYear}/${month.toString().padStart(2, "0")}/${day.toString().padStart(2, "0")} ${hour.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}:${second.toString().padStart(2, "0")}`;
288	}
289	
290
291
292function fGet_Query_String_Data(fItem_Index)
293{
294	var fURL_String_Arr=location.href.split("?");
295	if (fURL_String_Arr.length>1)
296	{
297		var fQueryString_Param_Arr=fURL_String_Arr[1].split("&");
298		var fGet_Index_Param_Arr=fQueryString_Param_Arr[fItem_Index].split("=");
299		if(fGet_Index_Param_Arr.length>1)
300		{
301			return (fGet_Index_Param_Arr[1]);
302		}
303		else
304			return false;
305	}
306	else
307		return false;	
308}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.