function doCheckAll(obj,checkBoxName) { //var checkboxs = document.all.namedItem(checkBoxName); var checkboxs = document.getElementsByName(checkBoxName); for(var i=0;i -1 ? big5Table.substring( j , j +1 ) : val ); } return result; } //顯示程式路徑名稱 function changeTitle(qpid){ $.post( 'Title', { pid : qpid }, function(data){ $('#title').html(data); $(document).attr("title",$('#title').html()); }); } function setSubTitle(qpid,name,lastChar){ $.post( 'Title', { pid : qpid }, function(data){ var j = data.lastIndexOf(lastChar); if(j>0) $('#subTitle').html(data.substring(0,j)+'/'+name); else $('#subTitle').html(name); }); } //更改程式路徑名稱 function changeSubTitle(qpid,name){ setSubTitle(qpid,name,'/'); } //更改原作業程式路徑名稱+name function addSubTitle(qpid,name){ setSubTitle(qpid,name,'('); } //json YNValue to boolean JSON.stringify(obj) function toBool(obj){ if(obj.expression && obj.expression=="Y") return true; else return false; } //json YNValue to boolean JSON.stringify(obj) function toXBool(obj){ if(obj && obj=="Y") return true; else return false; } function gotoPage(currentPage,pagerId,winname,index){ var pager = getElement(pagerId); if(pager.title == currentPage) // avoid calling twice; return false; pager.title = currentPage; jQuery.ajax( { type: "POST", url: "Pager!goPage", data: "currentPage="+currentPage+"&pager="+pagerId+"&winname="+winname+"&index="+index, dataType: "html", success: function(divDetail) { if(pager) pager.innerHTML = divDetail; reloadPortfolioGrid(); }, error: function(req, status, error) { } }); } //sjg:grid pageSize Setting function function changeSize(currentSize,pagerId,winname,index){ var pager = getElement(pagerId); if(pager.title == currentSize) // avoid calling twice; return false; pager.title = currentSize; jQuery.ajax( { type: "POST", url: "Pager!goSize", data: "currentSize="+currentSize+"&pager="+pagerId+"&winname="+winname+"&index="+index, dataType: "html", success: function(divDetail) { if(pager) pager.innerHTML = divDetail; reloadPortfolioGrid(); }, error: function(req, status, error) { } }); } // sjg:grid must set reloadTopics="reloadPortfolioGrid" function reloadPortfolioGrid() { $.publish('reloadPortfolioGrid'); return false; } function suppress(){ event.keyCode = 0; event.returnValue = false; return false; } function eraseNull(container){ var $container = $(container); $container.find(':text,textfeild,textarea').each(function(){ var $this = $(this); if($this.val() == "null"){ $this.val(''); } }); } function nullToBlank(value){ if (value == null||value == 'null') { return ''; } return value; } /** * open help window * @param pid * @return */ function openHelp(context,pid){ if(pid.length!=0&&pid!="null"){ var url = context + 'pages/help/' + pid.substr(0,2).toLowerCase()+'/'+pid+'.txt'; if(UrlExists(url)) openWin(url); else alert(pid+' 說明檔不存在'); } } /** * 把資料傳遞到Grid並顯示,無triggerReload * @param gridTableId 指定頁面的gridTableId * @param page json格式內的page參數 * @param records json格式內的records參數 * @param rows json格式內的rows參數 * @param total json格式內的total參數 * @param girdModel json格式內的gridModel參數 * @param lastUrl json格式內的lastUrl參數 * @return 沒有return */ function showGrid(gridTableId, page, records, rows, total, girdModel, lastUrl){ jsonData={ 'page':json.page, 'records' :json.records, 'rows':json.rows, 'total' :json.total, 'gridModel':json.gridModel };//GridBean only $(gridTableId)[0].addJSONData(jsonData); $(gridTableId).jqGrid( 'setGridParam', { url:lastUrl+'?'+gridParam }); //.trigger("reloadGrid"); } /** * 把資料傳遞到Grid並顯示,有triggerReload * @param gridTableId 指定頁面的gridTableId * @param page json格式內的page參數 * @param records json格式內的records參數 * @param rows json格式內的rows參數 * @param total json格式內的total參數 * @param girdModel json格式內的gridModel參數 * @param lastUrl json格式內的lastUrl參數 * @param trigger 若此值不為null則會進行trigger("reloadGrid") * @return 沒有return */ function showGrid(gridTableId, page, records, rows, total, gridModel, lastUrl, trigger){ jsonData={ 'page':page, 'records' :records, 'rows':rows, 'total' :total, 'gridModel':gridModel };//GridBean only $(gridTableId)[0].addJSONData(jsonData); $(gridTableId).jqGrid( 'setGridParam', { url:lastUrl+'?'+gridParam });//.trigger("reloadGrid"); if(trigger){ $(gridTableId).jqGrid( 'setGridParam', { url:lastUrl+'?'+gridParam }).trigger("reloadGrid"); } } /** * <%-- 清除資料--%> */ function clearArea(container){ var $container = $(container); $container.find(':text,textfeild,textarea').val(''); $container.find('select option:first-child').attr('selected', true); $container.find('input[type=checkbox]').attr('checked', false); $container.find('input[type=hidden]').val(''); $container.find(':radio:checked').attr('checked', false); cleanMsgForStatusField(); } /** * open a window * @param url * @return */ function openWin(url){ scrW=screen.width - 10; scrH=screen.height - 10; openX = 0; openY = 0; window.open(url,'help', 'scrollbars=yes,status=0,resizable=1,width=' + scrW+ ',height=' + scrH + ',left=' + openX + ',top=' + openY ); } /** * check url exists or not * @param url * @return */ function UrlExists(url) { var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.send(); return http.status!=404; } /** * 透過strut2 validation * @param $form * @param action * @return */ function validate($form,action){ valid = true; $.ajaxSetup({async: false}); // 同步 $.post( action + '!processValidate', $form.serialize(), function(data){ if(data.status == 'ng') { showStatusMsg( data.status, data.msg ); valid = false; }else{ cleanMsgForStatusField(); } }); $.ajaxSetup({async: true}); // 設回非同步 return valid; } /** * 檢查是否有Login,若無則關閉視窗 * 每秒會被呼叫 * @return */ function checkLogin() { //console.log('call checkLogin....'); if(!isLogin()){ if ((typeof parent.skip)!='undefined'){ parent.skip = true; // used by layout.jsp } window.close(); } } function logout(){ $.ajaxSetup({async: false}); // 同步 //登出,清除所有cookie $.post('Logout', function(data){ }); $.ajaxSetup({async: true}); // 設回非同步 //closeAllWin_ByMenuRTri 在 layout.jsp window.top.closeAllWin_ByMenuRTri(); //從portal登入後的menu進入 if(window.top.opener && !window.top.opener.closed){ try{ window.top.opener.top.location.replace("Login_input"); window.top.close(); }catch(e){ //mark //alert(e); } //從portal首頁下方的系統下拉式選單進入 }else{ window.top.location.replace('Login_input'); } // call 入口網的提供的 closeWindows method.關閉其它從入口網menu開啟的ap視窗。 try{ top.window.opener.closeWindows(); }catch(e){ console.log(e); } } function closeWindowsByHeader(){ if(window.top.opener){ //一併關閉其它系統的視窗。 window.top.opener.top.entrance_menu.closeSiblingWin(window.self.name); //關閉此系統視窗。 window.top.skip = true; //觸發layout的onload event。 window.top.close(); } } /** * 是否已經登入 * @returns {Boolean} */ function isLogin(){ var result = false; $.ajaxSetup({async: false}); // 同步 $.post( 'Login_input!checkLogin', function(isLogin){ var patt=/true/g;//weird,string comparsion with true,no working result=patt.test($.trim(isLogin).substr(0,4)); }).error( function() {result = false; }); $.ajaxSetup({async: true}); // 設回非同步 return result; } /** * 解決報單號碼的二個空格在jqGrid會被IE吃掉的問題 * @param value * @param obj * @param rawObj * @return */ function declNoFormatter(value, obj, rawObj) { if (value == null) { return ''; }else if(typeof value == "number" ){ value = value.toString(); } return value.replace(/ /g, ' '); } function unformatDeclNo(value) { if (value == null) { return ''; } return value.replace(/ /g, ' '); } function resetDeclNo($grid,$form){ var rowId = $grid.jqGrid( 'getGridParam', 'selrow' ); var row = $grid.jqGrid('getRowData', rowId); // 取得選取行的資料 $("#DECL_NO",$form).val(unformatDeclNo(row.DECL_NO)); } /** * javascript的parseInt預到0開頭的字串時,預設是8進位制 所以"08", "09"在解析成數字時,都會變成0 parseInt('08') 結果會變成0 必須指定進位進度,parseInt("08", 10),才可正常解析成8 */ (function () { var origParseInt = window.parseInt; window.parseInt = function (val, radix) { if (arguments.length === 1) { radix = 10; } return origParseInt.call(this, val, radix); }; }()); /** * 檢查是否為空白或null或無定義 * @param value * @returns {Boolean} */ function isUndefinedOrNull(value){ return (typeof value == "undefined" || value == "" || value == null); } var optionContainer={}; /** * 可以設定Select物件是否唯讀,當中的暫時移除的物件會放至於optionContainer當中。 * @param obj Select的物件 * @param readonly 設定是否設定成唯讀。 */ function SetSelectReadOnly(obj, readonly){ if(obj){ var id = $(obj).attr('id'); if (readonly) { if ( ! optionContainer[id]) { optionContainer[id] = $(obj).html(); } $('option:not(:selected)', $(obj)).each(function(index, value){ $(value).remove(); }); } else if (optionContainer[id]){ $(obj).find('option').remove().end().append(optionContainer[id]); } else { // alert('no html!'); } } } function getCxtPidUrl(pid){ if(pid.charAt(0)=='C') url = "/APCS/" + pid; else if(pid.charAt(0)=='R') url = "/APRM/" + pid; else if(pid.charAt(0)=='F') url = "/APFE/" + pid; else if(pid.charAt(0)=='D') url = "/APDF/" + pid; else if(pid.charAt(0)=='G') url = "/APGQ/" + pid; else if(pid.charAt(0)=='N') url = "/APNF/" + pid; else if(pid.charAt(0)=='T') url = "/APTP/" + pid; else if(pid.charAt(0)=='W') url = "/APWO/" + pid; else if(pid.substring(0,2)=="EZ") url = "/APEZ/" + pid; else if(pid.charAt(0)=='E') url = "/APEX/" + pid; return url; }