///////////////////////////////////////////////////////////////////////////
///
///  全系統共用函式 javascript  
///  p02
///  2009.11.25
///
///////////////////////////////////////////////////////////////////////////


var jsfun_Debug = 0;  //0=上線 1=debug，會顯示錯誤訊息


/////// 開啟視窗


//查詢-顯示客戶影像全尺寸
function openFullImage(strImgType, intImgNum) {
    window.open("/w3erpNet/Sys/getImage.ashx?ImgTable=" + strImgType + "&ImgAutoNum=" + intImgNum, "winFullImage_" + intImgNum, "toolbar=no,resizable=yes,scrollbars=yes,left=0,top=0,width=800,height=600");
}


function openWinSysMultilanguageEdit(frmNum) {
    window.open("/w3erpNet/Sys/sysFormLangTranslate.aspx?fnum=" + frmNum, "WinSysMultilanguageEdit", "toolbar=no,resizable=yes,scrollbars=yes,left=0,top=0,width=800,height=600");
}




/////// 開啟視窗 End


/// master page

function fix_Helptoolbar() {
    var help_toolbar = getEleById("help_toolbar");
    if (help_toolbar != null) {
        help_toolbar.style.left = document.body.clientWidth - 20;
        help_toolbar.style.top = 0 + document.body.scrollTop;
    }
}
setInterval("fix_Helptoolbar()", 1000);



///



//show進行
function showProcess(dv_proc){
    if (typeof(dv_proc) != "undefined"){
        if (dv_proc.innerHTML == "")
            dv_proc.innerHTML = '<img src="/images/progress.gif" align="absmiddle" />';
        else
            dv_proc.innerHTML = "";
    }
    return;
}
function showProc(dv,btn){
    if (typeof(dv) != "undefined"){
        if (dv.innerHTML == "")
            dv.innerHTML = '<img src="/images/progress.gif" align="absmiddle" />';
        else
            dv.innerHTML = "";
    }
    if (typeof (btn) != "undefined")
        btn.disabled = btn.disabled == true ? false : true;
    return;
}

//錯誤,back
function errBack(dvproc,btn){ 
    showProcess(dvproc);
    if (btn != null)
        btn.disabled=false; 
    
    return; 
}

//建立物件
/*function createEl(tagName,options){
    var el = document.createElement(tagName);
    for (var k in options){
        el.setAttribute(k,options[k]);
    }
    return el;
}*/
function createEL(tagName, options) {
    var el = document.createElement(tagName);
    if (options == null) return el;
    if (typeof (options) != 'object') { alert('收到options是字串，請傳物件進來。\n\n目前的options:\n' + options); return el; }

    for (var x in options) {
        if (typeof (x) != 'string') continue;
        var key = x.trim().toLowerCase();
        if (key.length == 0) continue;
        var value = options[x];
        switch (key) {
            case 'id': el.id = value; break;
            case 'class':
            case 'classname': el.className = value; break;
            case 'html':
                el.innerHTML = options.html;
                break;
            case 'text': el.appendChild(document.createTextNode(options.text)); break;
            case '': break;
            case 'style': el.style.cssText = value; break;
            case 'styles':
                for (var k in value) {
                    var styleName = k.toJsStyleName();
                    if (styleName != null) el.style[styleName] = value[k];
                }
                break;
            case 'children':
                for (var k in value) {
                    var child = value[k];
                    if (child.tagName != undefined) el.appendChild(createEL(child.tagName, child.options));
                }
                break;
            default: el.setAttribute(x, value); break;
        }
    }

    return el;

}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.toJsStyleName = function() {
    var s = this.toString();
    if (s.length == 0) return null;
    var arr = s.split('-');
    if (arr.length > 1) {
        for (var i = 1, len = arr.length; i < len; i++)
            arr[i] = arr[i].capitalize();
        return arr.join('');
    }
    return s;
}

String.prototype.capitalize = function() {
    var s = this.toLowerCase();
    if (s.length > 0) return s.substring(0, 1).toUpperCase() + s.substring(1);
    return s;
}

//陣列
Array.prototype.insertAt = function(index, item) {
    this.splice(index, 0, item);
};
Array.prototype.remove = function(elem) {
    var match = -1;

    while ((match = this.indexOf(elem)) > -1) {
        this.splice(match, 1);
    }
};

// document.getElementById 功能
function getEleById(strObjId){

    return document.getElementById(strObjId);

}
// document.getElementsByName 功能
function getEleByName(strObjId) {

    return document.getElementsByName(strObjId);

}
// document.getElementById 功能
// 給ID,自動加上.net包了masterpage後會變化的結果
function getEleNetById(strObjId){

    var str = "ctl00_ContentPlaceHolder1_" + strObjId;
    var rtnObj = document.getElementById(str);
    return rtnObj

}
function getEleNetByName(strObjId){

    var str = "ctl00$ContentPlaceHolder1$" + strObjId;
    var rtnObj = document.getElementsByName(str);
    return rtnObj
}
///.net在master裡的取法(非包在master下)
function getEleMasterById(strObjId) {

    var str = "ctl00_" + strObjId;
    var rtnObj = document.getElementById(str);
    return rtnObj

}
function getEleMasterByName(strObjId) {

    var str = "ctl00$" + strObjId;
    var rtnObj = document.getElementsByName(str);
    return rtnObj
}

///呼叫 jQuery Tabs 
function callTabs(tbsname){
    $("#"+ tbsname).tabs();
}
var objNowBackColor = '';
function txt_over(obj) {
    objNowBackColor = obj.style.backgroundColor;
    //alert(objNowBackColor);
    obj.style.backgroundColor = '#e9ffe9';
}
function txt_over(obj,newColor) {
    objNowBackColor = obj.style.backgroundColor;
    //alert(objNowBackColor);
    obj.style.backgroundColor = newColor;
}

function txt_out(obj){
    //alert(objNowBackColor);
    obj.style.backgroundColor = objNowBackColor;
}

function txt_out(obj,oriColor)
{
    if (oriColor!="")
        obj.style.backgroundColor = oriColor;
    else
        obj.style.backgroundColor = '';

}

var objNowColor = '';
function txt_overT(obj, newColor) {
    objNowColor = obj.style.color;
    //alert(objNowBackColor);
    obj.style.color = newColor;
}
function txt_outT(obj) {
    //alert(objNowBackColor);
    obj.style.color = objNowColor;
}

function checkbrowser() {
    if ($.browser.msie) { return "IE"; }
    else if ($.browser.mozilla) { return "firefox"; }
    else if ($.browser.safari) { return "safari"; }
    else if ($.browser.opera) { return "opera"; }
    //瀏覽器繪圖引擎版本號
    //alert($.browser.version);
}

///
///  el = 要查出定位的元素
///
function getRealPosition(el) {
    document.body.off;
    var pos = { top: el.offsetTop, left: el.offsetLeft }
    while (el.offsetParent) {
        el = el.offsetParent;
        pos.top += el.offsetTop;
        pos.left += el.offsetLeft;
    }
    return pos;

}

///
///  objBtn = 按鈕
///  el = 要附著於按鈕的元素
///
function showElwithBtn(objBtn, el) {

     var pos = getRealPosition(objBtn); //定義出objBtn的最上一層
     el.style.left = pos.left;//讓div顯示的位置與欄位相當
     el.style.top = pos.top + objBtn.offsetHeight;
     //el.style.display = el.style.display == 'none' ? 'block' : 'none';

     if (el.style.display == 'none') {
         $(el).fadeIn();
         el.style.display = 'block';
     } else {
         $(el).fadeOut();
         el.style.display = 'none';
     }
     
     if (el.style.display == 'block') {
         el.focus();
     }

     return;
 }
 ///
 ///  objBtn = 按鈕
 ///  el = 要附著於按鈕的元素
 ///  這是從視窗右邊往左推 <=== 不能,因此這個函式跟showElwithBtn效果一樣
 ///
 function showElwithBtnRight(objBtn, el, leftpix) {

     var pos = getRealPosition(objBtn); //定義出objBtn的最上一層
     el.style.left = leftpix; //讓div顯示的位置與欄位相當
     el.style.top = pos.top + objBtn.offsetHeight;
     //el.style.display = el.style.display == 'none' ? 'block' : 'none';

     if (el.style.display == 'none') {
         $(el).fadeIn();
         el.style.display = 'block';
     } else {
         $(el).fadeOut();
         el.style.display = 'none';
     }

     if (el.style.display == 'block') {
         el.focus();
     }

     return;
 }

//把空白取代成HTML CODE
function encodeSpace(value) {
     return value.replace(' ', '&nbsp;');
}
 //把HTML CODE空白取代成真的空白
function decodeSpace(value) {
     return value.replace('&nbsp;', ' ');
 }

///把 javascript 不接受的視窗命名tag取代掉
function replace4jstag(str) {
    str = str.replace(/\-/g, "");
    str = str.replace(/\+/g, "");
    str = str.replace(/\./g, "");
    str = str.replace(/\[/g, "");
    str = str.replace(/\]/g, "");
    str = str.replace(/\ /g, "");
    return str;
}
 

//插入一行TR
 function w3_insertTRat(eleTable, intIndex, newTR) {
     var oldTBody = eleTable.getElementsByTagName('tbody')[0];
     var trArr = oldTBody.getElementsByTagName('tr');
     var trArr = oldTBody.childNodes;
     if (intIndex < 0 || intIndex >= trArr.length) return;
     if (trArr[intIndex].tagName == null) return;
     if (trArr[intIndex].tagName.toLowerCase() != "tr") return;
     oldTBody.insertBefore(newTR, trArr[intIndex]);
     var trArr2 = oldTBody.getElementsByTagName('tr');
     return eleTable;
 }


 //資料處理中 (進度圖)
 //來自 asp : /cust/message.asp 改編
 function show_proc(NB, mm) {  //NB->代"B"顯示資料!  mm->要顯示的訊息
     /*
     window.msg_showData.style.left =Math.floor(window.screen.width / 3)
     window.msg_showData.style.top =	Math.floor(window.screen.height / 4.5)
     */
     var obj_showData = createEL("span", { "id": "msg_showProcess", "onmousedown": "indrag=true;drag(this)", "onmouseup": "indrag=false", "style": "POSITION: absolute;display:none; Z-INDEX:99" });
     var table = createEL("table", { "bgColor": "#f0f0f0", "borderColorDark": "#000000", "borderColorLight": "#e7e7e7", "width": "190px", "border": "0", "style": "font-size:9pt;border:solid 1px black;" });
     obj_showData.appendChild(table);
     var tbody = createEL("tbody", {});
     table.appendChild(tbody);
     var tr = createEL("tr", { "height": "22" });
     tbody.appendChild(tr);
     var td = createEL("td", { "colSpan": "2", "align": "center", "bgColor": "#808080", "style": "COLOR: #f0f0f0" }); td.innerText = "W3ERP.NET";
     tr.appendChild(td);
     var tr2 = createEL("tr", { "height": "90", "valign": "middle" });
     tbody.appendChild(tr2);
     var td2 = createEL("td", { "valign": "middle","align":"center" }); td2.innerHTML = '<img border="0" src="/images/progress.gif" alt="Processing..." />';
     tr2.appendChild(td2);
     var td3 = createEL("td", { "valign": "middle" });
     tr2.appendChild(td3);

     var obj_text = createEL("span", { "id": "proc_text" }); obj_text.innerHTML = 'Data processing......';
     td3.appendChild(obj_text);

     document.body.appendChild(obj_showData);


     var obj_showData = document.getElementById('msg_showProcess');
     var obj_text = document.getElementById('proc_text');
     obj_showData.style.top = document.body.scrollTop + 200;
     obj_showData.style.left = document.body.scrollLeft + 350;
     if (NB == "B" || NB == "b") {
         obj_text.innerHTML = mm;
         obj_showData.style.display = "block";
     }
     else {
         obj_showData.style.display = "none";
     }
 }

 //顯示訊息圖層(無進度圖)
 function show_msg(NB, mm, t) {  //NB->代 "" 表示關閉,代顏色表示底色並顯示資料!  mm->要顯示的訊息  t=持續多久ms

     if (NB == null) NB = "";
     var bgColor = NB;
     if (bgColor.toLowerCase() == "b") bgColor = "#ffffaa";

     var obj_showData = createEL("span", { "class": "msg_showData", "style": "POSITION: absolute;display:none; Z-INDEX:99;" });
     var table = createEL("table", { "bgColor": bgColor, "borderColorDark": "#000000", "borderColorLight": "#e7e7e7", "width": "250px", "border": "0", "style": "font-size:10pt;border:solid 1px black;" });
     obj_showData.appendChild(table);
     var tbody = createEL("tbody", {});
     table.appendChild(tbody);
     var tr = createEL("tr", { "height": "22" });
     tbody.appendChild(tr);
     var td = createEL("td", { "colSpan": "2", "align": "center", "bgColor": "#606060", "style": "COLOR: #f0f0f0" }); td.innerHTML = "W3ERP.NET Message Alert <span style=\"position:absolute;padding-left:30px;color:Red;font-weight:bold;cursor:hand;font-size:11pt;\" onclick=\"var objData = $(this.parentNode.parentNode.parentNode.parentNode.parentNode).remove();\"> x </span>";
     tr.appendChild(td);
     var tr2 = createEL("tr", { "height": "150", "valign": "middle" });
     tbody.appendChild(tr2);
     var td2 = createEL("td", { "valign": "middle", "align": "center" }); //td2.innerHTML = '<img border="0" src="/images/progress.gif" alt="Processing..." />';
     tr2.appendChild(td2);
     var td3 = createEL("td", { "valign": "middle" });
     tr2.appendChild(td3);

     var obj_text = createEL("span", { "class": "msg_text" }); obj_text.innerHTML = 'W3ERP.NET Message Alert';
     td3.appendChild(obj_text);

     document.body.appendChild(obj_showData);
     if (t != null) {
         setTimeout(function() { $(obj_showData).remove() }, t);
     }

     var obj_showData = $("span.msg_showData");
     var obj_text = $("span.msg_text");
     if (NB != "") {
         var addTop = document.body.scrollTop + (200 + (obj_showData.length * 20));
         var addLeft = document.body.scrollTop + (350 + (obj_showData.length * 20));
         $(obj_showData[obj_showData.length - 1]).css("top", addTop);
         $(obj_showData[obj_showData.length - 1]).css("left", addLeft);
         $(obj_showData[obj_showData.length - 1]).slideDown();
         $(obj_text[obj_showData.length - 1]).html(mm);
     }
     else {
         $(obj_showData[0]).remove();
     }
 }


 function rKeyCode(kCode) {

     var rtn = "";
     switch (kCode) {
         case 9: rtn = "TAB"; break;
         case 13: rtn = "ENTER"; break;
         case 112: rtn = "F1"; break;
         case 113: rtn = "F2"; break;
         case 114: rtn = "F3"; break;
         case 115: rtn = "F4"; break;
         case 116: rtn = "F5"; break;
         case 117: rtn = "F6"; break;
         case 118: rtn = "F7"; break;

         case 27: rtn = "ESC"; break;
         case 38: rtn = "UP"; break;
         case 40: rtn = "DOWN"; break;

         default: rtn = ""; break;
     }
     return rtn;
 }

 function insertData(obj) {
     var strTable = obj.upTable;
     var arrColumn = obj.upColumn;  // | 分隔
     var arrValue = obj.upValue;  // | 分隔
     var intJob = obj.upJob;
     var upCheck = "";
     if (obj.upCheck != null) upCheck = obj.upCheck;
     

     var dv = obj.nextSibling.nextSibling;
     showProcess(dv);
     dv.style.color = "Red";
     //alert('obj.upTable=' + obj.upTable + '\nobj.upColumn=' + obj.upColumn + '\nobj.upValue=' + obj.upValue);
     var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/insertData';
     var para = { 'strTable': strTable, 'arrColumn': encodeURIComponent(arrColumn), 'arrValue': encodeURIComponent(arrValue) ,
                         'arrCheck': encodeURIComponent(upCheck), 'intJob': intJob
     }
     new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: para
                 , timeout: 3000
                 , onComplete: function(data) {
                     if (data == null || data == "") {
                         dv.style.color = "Blue";
                         dv.innerHTML = 'OK';
                     } else {
                         dv.innerHTML = '更新失敗,錯誤訊息:\n' + data;
                     }
                 }
                 , onError: function(httpStatus, message) { dv.innerHTML = '更新失敗,錯誤訊息:\n\n' + httpStatus + ' error!' + message; }
                 , onTimeout: function() { dv.innerHTML = '等候資料庫回應時間過久,與資料庫連線已經斷了'; }
     }
         );
 }

 ///批次更新
 function updateDataColumn(obj) {

     var intSid2 = obj.upSid2;
     var strType = obj.upType;  //單據屬性(如果有)
     var strTable = obj.upTable;
     var strKeyName = obj.upKeyName;
     var strKeyValue = obj.upKeyValue;
     var oColumn = obj.name;
     if (oColumn.indexOf('$')) {
         var ayCol = oColumn.split('$');
         oColumn = ayCol[ayCol.length - 1];
     }
     var oValue = obj.value;
     var vType = obj.vtype;
     var intJob = obj.upJob;

     var dv = obj.nextSibling.nextSibling;
     showProcess(dv);
     dv.style.color = "Red";

     //檢查是否為數字
     if (vType == "int") {
         if (isNaN(oValue) || oValue == "") {
             dv.innerHTML = "必須輸入數字!!";
             return false;
         }
     }
     if (vType == "textarea") {
         oValue = obj.innerText;
     }
     if (vType == "button") {
         oValue = obj.upValue;
     }

     /*alert('intSid2=' + intSid2 + '\nstrType=' + strType + '\nstrTable=' + strTable + '\nstrKeyName=' + strKeyName + '\nstrKeyValue=' + strKeyValue
                         + '\nstrColumn=' + oColumn
                         + '\nstrValue=' + encodeURIComponent(oValue)
                         + '\nintJob=' + intJob);
     */
     var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/updateDataColumn';
     var para = { 'intSid2': intSid2, 'strType': strType, 'strTable': strTable, 'strKeyName': strKeyName, 'strKeyValue': strKeyValue
                         , 'strColumn': oColumn
                         , 'strValue': encodeURIComponent(oValue)
                         , 'intJob': intJob
                         , 'strColumnType': vType
     }
     new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: para
                 , timeout: 3000
                 , onComplete: function(data) {
                     if (data == null || data == "") {
                         dv.style.color = "Blue";
                         dv.innerHTML = 'OK';
                     } else {
                         dv.innerHTML = '更新失敗,錯誤訊息:\n' + data;
                     }
                 }
                 , onError: function(httpStatus, message) { dv.innerHTML = '更新失敗,錯誤訊息:\n\n' + httpStatus + ' error!' + message; }
                 , onTimeout: function() { dv.innerHTML = '等候資料庫回應時間過久,與資料庫連線已經斷了'; }
     }
         );

 }
 // 即時更新 - 行動版
 function updateDataColumnMB(intSid2, strType, strTable, strKeyName, strKeyValue, oColumn, oValue, obj, intJob) {

     if (oColumn.indexOf('$')) {
         var ayCol = oColumn.split('$');
         oColumn = ayCol[ayCol.length - 1];
     }
     var vType = "string";
     var dv = obj.nextSibling.nextSibling;
     showProcess(dv);
     dv.style.color = "Red";

     /*alert('intSid2=' + intSid2 + '\nstrType=' + strType + '\nstrTable=' + strTable + '\nstrKeyName=' + strKeyName + '\nstrKeyValue=' + strKeyValue
     + '\nstrColumn=' + oColumn
     + '\nstrValue=' + encodeURIComponent(oValue)
     + '\nintJob=' + intJob);
     */
     var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/updateDataColumn';
     var para = { 'intSid2': intSid2, 'strType': strType, 'strTable': strTable, 'strKeyName': strKeyName, 'strKeyValue': strKeyValue
                         , 'strColumn': oColumn
                         , 'strValue': encodeURIComponent(oValue)
                         , 'intJob': intJob
                         , 'strColumnType': vType
     }
     new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: para
                 , timeout: 5000
                 , onComplete: function(data) {
                     if (data == null || data == "") {
                         dv.style.color = "Blue";
                         dv.innerHTML = 'OK';
                     } else {
                         dv.innerHTML = '更新失敗,錯誤訊息:\n' + data;
                     }
                 }
                 , onError: function(httpStatus, message) { dv.innerHTML = '更新失敗,錯誤訊息:\n\n' + httpStatus + ' error!' + message; }
                 , onTimeout: function() { dv.innerHTML = '等候資料庫回應時間過久,與資料庫連線已經斷了'; }
     }
         );
 }
 /// 批次更新 - 下同
 function updateDataColumn_setDownColumnValue(obj) {

     if (obj == null) return;

     var allObj = getEleByName(obj.name);

     if (allObj.length > 0) {
         var flag = false;
         for (var i = 0; i < allObj.length; i++) {

             if (flag) {

                 if (obj.vtype == "textarea") 
                     allObj[i].innerText = obj.innerText;
                 else
                     allObj[i].value = obj.value;
                    
                 updateDataColumn(allObj[i]);

             }
             if (allObj[i] == obj) flag = true;
         }

     }

 }

 /// 沒有批次更新 - 單純下同
 function setDownColumnValue(obj) {

     if (obj == null) return;

     var allObj = getEleByName(obj.name);

     if (allObj.length > 0) {
         var flag = false;
         for (var i = 0; i < allObj.length; i++) {

             if (flag) {

                 if (obj.vtype == "textarea")
                     allObj[i].innerText = obj.innerText;
                 else
                     allObj[i].value = obj.value;
                 //alert(allObj[i].value);
                 allObj[i].select();
                 allObj[i].blur();
             }
             if (allObj[i] == obj) flag = true;
         }

     }

 }


 ///列出片語清單
 ///
 /// strSELname = 片語名稱
 /// eleBtn = 扮演按鈕角色的 element
 /// eleTarget = 目標，點選號要置放值的 element
 /// eleShowDV = 顯示片語的 div 區塊
 /// intAct = 0 帶值 , 1 帶文字
 ///
 function getSEL_div(strSELname, eleBtn, eleTarget, eleShowDV, intAct, intJob) {
     //alert(eleShowDV.style.display);
     if (eleShowDV.style.display == "block") { $(eleShowDV).fadeOut(); return; }

     var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/getSEL_div';
     new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: { 'strSELname': strSELname
                 , 'strTarget': eleTarget.id
                 , 'intAct': intAct
                 , 'nowJob': intJob
 }
                 , timeout: 5000
                 , onComplete: function(data) {
                     if (data == null || data == "") {
                     } else { getSEL_putDiv(data, eleBtn, eleShowDV); }
                 }
                 , onError: function(httpStatus, message) { if (jsfun_Debug == 1) alert('debug:error'); }
                 , onTimeout: function() { if (jsfun_Debug == 1) alert('debug:timeout'); }
     }
         );
 }

 ///片語清單秀在下拉旁
 function getSEL_putDiv(data, eleBtn, eleShowDV) {

     eleShowDV.style.display = "none";
     eleShowDV.innerHTML = data;
     showElwithBtn(eleBtn, eleShowDV);

 }
 
 ///帶值
 function getSEL_putValue(strTargetId,strValue){

     var tgEle = getEleById(strTargetId);

     if (tgEle != null) {
        switch(tgEle.tagName.toLowerCase()){
            case 'input':
                tgEle.value += strValue + ',';
                break;
            case 'div':
            case 'span':
            case 'textarea':
                tgEle.innerText += strValue + ',';
                break;
        }
    }
}

///帶值,目的在兩次 nextSibling
function getSEL_putValueNextSibling(eleTD, strValue) {

    if (eleTD.innerHTML.substring(0, 6).toLowerCase() == "<input") return;
    var eleDiv = eleTD.parentNode.parentNode.parentNode.parentNode;
    
    //alert(eleDiv.tagName);
    var tgEle = eleDiv.nextSibling.nextSibling;
    //alert(tgEle.tagName);

    if (tgEle != null) {
        switch (tgEle.tagName.toLowerCase()) {
            case 'input':
                tgEle.value += strValue + ',';
                break;
            case 'div':
            case 'span':
            case 'textarea':
                tgEle.innerText += strValue + ',';
                break;
        }
        tgEle.focus();
    }
}


///快速新增片語
function getSEL_addSELdirect(strSELname, eleBtn) {

    var txtSEL = eleBtn.previousSibling;
    if (txtSEL == null) return;
    if (txtSEL.tagName.toLowerCase() != "input") return;
    if (txtSEL.value == "") { alert('未輸入片語');txtSEL.select(); return; }
    var eleShowDV = eleBtn.parentNode.parentNode.parentNode.parentNode.parentNode;
    var dv = eleBtn.nextSibling;
    
    showProc(dv, eleBtn);

    var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/addSEL';
    new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: { 'strSELname': strSELname
                 , 'strText': encodeURIComponent(txtSEL.value)
    }
                 , timeout: 5000
                 , onComplete: function(data) {
                     if (data == null || data == "") {
                         alert('OK'); errBack(dv, eleBtn);
                         if (eleShowDV.style.display == "block") { $(eleShowDV).fadeOut(); return; }
                     } else {
                        alert(data); errBack(dv, eleBtn);
                     }
                 }
                 , onError: function(httpStatus, message) { errBack(dv, eleBtn); if (jsfun_Debug == 1) alert('debug:error'); }
                 , onTimeout: function() { errBack(dv, eleBtn); if (jsfun_Debug == 1) alert('debug:timeout'); }
    }
         );


}


function getSEL_updateSEL(eleTD, strTable, strKeyColumn, strKeyNum, strColumn, vSEL, tSEL, nowJob) {

    if (eleTD.innerHTML.substring(0, 6).toLowerCase() == "<input") {
        var ipt = $(eleTD).find('input:text');
        var newSEL = tSEL;
        if (ipt.length > 0) newSEL = ipt[0].value;

        eleTD.innerHTML = vSEL + '.' + newSEL;
        if (eleTD.intAct == 1) {
            eleTD.onclick = function() { getSEL_putValueNextSibling(this, newSEL); };
        }
    } else {
        eleTD.innerHTML = '<input type="text" class="c1" value="' + tSEL + '" vSEL="' + vSEL + '" upKeyName="' + strKeyColumn + '" upKeyValue="' + strKeyNum + '" upTable="' + strTable + '" name="' + strColumn + '" upType="" upJob="' + nowJob + '" upSid2="0" onblur="updateDataColumn(this)" vtype="input" /><span></span><span></span>';
    }

}

/// p02 20110211
/// 核取方塊的動作
/// strID = 物件ID
/// intAct = 1:選 2:不選 3:反向選
function doCheckBox(strID, intAct) {
    var eleChk = getEleByName(strID);
    if (eleChk.length > 0) {
        for (var i = 0; i < eleChk.length; i++) {
            switch (intAct) {
                case 1:
                    eleChk[i].checked = true;
                    break;
                case 2:
                    eleChk[i].checked = false;
                    break;
                case 3:
                    eleChk[i].checked = eleChk[i].checked == true ? false : true; 
                    break;
            }
        }
    }
}


/*------------------------------------------------------------------
★★ 製定日期： p02 20110214
★★ 名    稱： chk_getVal(xObj)
★★ 功    能： checkBox,是否有勾選
★★ 變數說明： xObj -> 物件ID			
★★ 傳回狀況： 將有勾選的value,組合成一字串,傳回
★★ 備　　註： 
----------------------------------------------------------------------*/
function chk_getVal(xObj) {

    var eleChk = getEleByName(xObj);
    var re_str = '';

    if (eleChk.length > 0) {
        for (var cc = 0; cc < eleChk.length; cc++) {
            if (eleChk[cc].checked) {
                re_str += eleChk[cc].value + ',';
            }
        }
        re_str = re_str.substring(0, re_str.length - 1);
    }
    return re_str;
}

/*------------------------------------------------------------------
★★ 製定日期： p03 (2003.6.26) 
★★ 名    稱： check_hook(xObj) from /cust/jsFun.js
★★ 功    能： checkBox,是否有勾選
★★ 變數說明： xObj -> 物件		xValue -> 要傳回xObj.那一屬性			
★★ 傳回狀況： 將有勾選的,組合成一字串,傳回
	 
★★ 備　　註： xObj 為一個物件.且為陣列型態(從1開始判斷)
----------------------------------------------------------------------*/
function check_hook(xObj, xValue) {
    re_str = ''
    tag_ll = eval(xObj + '.length')
    for (cc = 1; cc < tag_ll; cc++) {
        //alert(cc + '= ' + eval(xObj + '[cc].checked'))
        if (eval(xObj + '[cc].checked')) {
            re_str += eval(xObj + '[cc].' + xValue) + ','
        }
    }
    re_str = re_str.substring(0, re_str.length - 1)
    return re_str;
}


function push_fb(pushUrl) {
    if (pushUrl == null || pushUrl == "") pushUrl = location.href;
    var desc = ''; var via = '';
    if (document.referrer) via = document.referrer;
    if (typeof (_ref) != 'undefined') via = _ref;
    if (window.getSelection) desc = window.getSelection();
    if (document.getSelection) desc = document.getSelection();
    if (document.selection) desc = document.selection.createRange().text;

    void (open('http://www.facebook.com/share.php?u=' + encodeURIComponent(pushUrl)));
}

function push_plurk(pushUrl) {
    if (pushUrl == null || pushUrl == "") pushUrl = location.href;
    void (window.open('http://www.plurk.com/?qualifier=shares&amp;status='.concat(encodeURIComponent(pushUrl)).concat(' ').concat('(').concat(encodeURIComponent(document.title)).concat(')')));
}

function push_twr(pushUrl) {
    if (pushUrl == null || pushUrl == "") pushUrl = location.href;
    void (window.open('http://twitter.com/home/?status='.concat(encodeURIComponent(pushUrl)).concat(' ').concat(encodeURIComponent(pushUrl))));
}



///
///
///  數字轉字串
///
///
var word = new Array('零', '壹', '貳', '參', '肆', '伍', '陸', '柒', '捌', '玖');
var word4 = new Array('萬', '億', '兆', '京', '垓', '秭', '穰', '溝', '澗', '正', '載', '極', '恆河沙', '阿僧祇', '那由他', '不可思議', '無量', '大數');

var o = new nullcounts();
var o = new counts_chr(o, word, '仟', '', 3);
var o = new counts_chr(o, word, '佰', '', 2);
var o = new counts_chr(o, word, '拾', '', 1);

w4l = word4.length;

for (i = w4l; i >= 0; i--) {
    var o = new counts_chr(o, word, word4[i], '', 4);
    var o = new counts_chr(o, word, '仟', '', 3);
    var o = new counts_chr(o, word, '佰', '', 2);
    var o = new counts_chr(o, word, '拾', '', 1);
}
var o = new counts_chr(o, word, '', 0);
function setNumToWord(numValue) {
    getvalue = numValue;
    o.clear();
    o.count = getvalue;
    o.setCount();
    return o.getchrCount();
}

function nullcounts() {
    this.count = '0';
    this.setCount = function() {
        this.count = '0';
        return true;
    }
    this.clear = function() {
        this.count = '0';
        return true;
    }
    this.getCount = function() {
        return '';
    }
    this.getString = function() {
        return true;
    }
    this.getchrCount = function() {
        return '';
    }
}

function counts_chr(o1, o2, unit, color, point) {
    this.count = '';
    this.obj = o1;
    this.obj.parent = this;
    this.unit = unit;
    this.word = o2;
    this.color = color;
    this.show_flag = false;
    this.point = point;
    this.clear = function() {
        this.count = '';
        this.show_flag = false;
        return this.obj.clear();
    }

    this.setCount = function() {

        c = this.count;
        cl = c.length;
        this.show_flag = true;

        if (this.point == 4) {
            cl2 = cl - 4;
            if (cl2 > 0) {
                r1 = c.substring(cl2, cl);
                if (r1 == '0000') { this.show_flag = false; }
            }
        }

        if (cl == 1) {
            return;
        }
        r = c.substring(cl - 1, cl);
        this.count = r;
        this.obj.count = c.substring(0, cl - 1);
        return this.obj.setCount();
    }

    this.getCount = function() {
        return this.obj.getCount() + this.count;
    }

    this.getchrCount = function() {

        if (this.show_flag == false) { return ''; }

        if (this.count != '' && this.count != '0') {
            if (this.color != '') {
                return this.obj.getchrCount() + this.word[this.count] + '<font color=' + this.color + '>' + this.unit + '</font>';
            } else {
                return this.obj.getchrCount() + this.word[this.count] + this.unit;
            }
        } else {
            if (this.point == 4 && this.obj.show_flag) {
                if (this.color != '') {
                    return this.obj.getchrCount() + '<font color=' + this.color + '>' + this.unit + '</font>';
                } else {
                    return this.obj.getchrCount() + this.unit;
                }
            }

            if (this.point == 1 && this.parent.count != '0') {
                return this.obj.getchrCount() + this.word[this.count];
            }

            return this.obj.getchrCount() + '';
        }
    }
}
///
/// 欄位設定
///
function setNetQueryFieldSetting_Submit(eleTBL) {

    var tbl = $(eleTBL);
    var btn = tbl.find("input.btn")[0];
    var dv; 
    if (btn != null) dv = btn.nextSibling.nextSibling.nextSibling;
    showProc(dv, btn);
    
    var fieldSetting_cmd = tbl.find("input[name=fieldSetting_cmd]").val();
    var rvs_num = tbl.find("input[name=rvs_num]").val();
    var rvs_rvsm_num = tbl.find("input[name=rvs_rvsm_num]").val();
    var rvs_target = tbl.find("input[name=rvs_target]").val();
    var rvs_job_num = tbl.find("input[name=rvs_job_num]").val();
    var rvs_ranking = "";
    var rvs_style = "";

    var chkColumn = tbl.find("input[name=chkColumn]"); //rvs_setting
    var floatColumn = tbl.find("input[name=floatColumn]"); //rvs_float
    var subfloatColumn = tbl.find("input[name=subfloatColumn]"); //rvs_stFloat
    var leftstrColumn = tbl.find("input[name=leftstrColumn]"); //rvs_leftstr

    var rvs_setting = ""; var rvs_float = ""; var rvs_stFloat = "";var rvs_leftstr = "";
    for (var i = 0; i < chkColumn.length; i++) {
        if (chkColumn[i].checked) rvs_setting += "1|";
        else 
            rvs_setting += "0|";
        rvs_float += floatColumn[i].value + "|";
        rvs_stFloat += subfloatColumn[i].value + "|";
        rvs_leftstr += leftstrColumn[i].value + "|";
    }
    rvs_setting = rvs_setting.substring(0, rvs_setting.length - 1);
    rvs_float = rvs_float.substring(0, rvs_float.length - 1);
    rvs_stFloat = rvs_stFloat.substring(0, rvs_stFloat.length - 1);
    rvs_leftstr = rvs_leftstr.substring(0, rvs_leftstr.length - 1);

    //alert('fieldSetting_cmd=' + fieldSetting_cmd + '\nrvs_rvsm_num=' + rvs_rvsm_num + '\nrvs_num=' + rvs_num + '\nrvs_target=' + rvs_target + '\nrvs_job_num=' + rvs_job_num + '\nrvs_setting=' + rvs_setting + '\nrvs_ranking=' + rvs_ranking + '\nrvs_float=' + rvs_float + '\nrvs_stFloat=' + rvs_stFloat + '\nrvs_leftstr=' + rvs_leftstr + '\nrvs_style=' + rvs_style);

    var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/saveNetQueryFieldSetting';  //(string fieldSetting_cmd, int rvs_rvsm_num, int rvs_num, int rvs_target, int rvs_job_num, string rvs_setting, string rvs_ranking, string rvs_float, string rvs_stFloat, string rvs_leftstr, string rvs_style)';
    new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: { 'fieldSetting_cmd': fieldSetting_cmd, 'rvs_rvsm_num': rvs_rvsm_num, 'rvs_num': rvs_num, 'rvs_target': rvs_target, 'rvs_job_num': rvs_job_num, 'rvs_setting': rvs_setting, 'rvs_ranking': rvs_ranking, 'rvs_float': rvs_float, 'rvs_stFloat': rvs_stFloat, 'rvs_leftstr': rvs_leftstr, 'rvs_style': rvs_style }
                 , timeout: 10000
                 , onComplete: function(data) {
                     errBack(dv, btn);
                     if (data == "" || data == null) { } else {
                         alert(data);
                         $(eleTBL.parentNode.parentNode).css("display", "none");
                     }
                 }
                 , onError: function(httpStatus, message) { errBack(dv, btn); if (jsfun_Debug) { alert(message); } }
                 , onTimeout: function() { errBack(dv, btn); if (jsfun_Debug) { alert('Timeout'); } }
    }
         );

    Trade_AddStd_countTotal();Trade_AddStd_initFloat();
}


/// 首頁圖檔

function setLoginPic_setDefault(intElnum) {

    if (isNaN(intElnum)) return;

    var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/setLoginPicDefault';
    new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: { 'intElnum': intElnum }
                 , timeout: 10000
                 , onComplete: function(data) {
                     if (data == "" || data == null) {
                         alert('OK');
                     } else {
                         alert(data);
                     }
                 }
                 , onError: function(httpStatus, message) { if (jsfun_Debug) { alert(message); } }
                 , onTimeout: function() { if (jsfun_Debug) { alert('Timeout'); } }
    }
         );
}

function setLoginPic_Delete(intElnum) {

    if (isNaN(intElnum)) return;
    if (!confirm('確定刪除 ?')) return;

    var serviceURI = '/w3erpNet/WebSrvc/WS_Sys.asmx/delLoginPic';
    new Ajax().callCSharpServiceRtnObj(serviceURI, { parameters: { 'intElnum': intElnum }
                 , timeout: 10000
                 , onComplete: function(data) {
                     if (data == "" || data == null) {
                         alert('OK');
                         location.href = '/w3erpNet/Sys/setLoginPic.aspx';
                     } else {
                         alert(data);
                     }
                 }
                 , onError: function(httpStatus, message) { if (jsfun_Debug) { alert(message); } }
                 , onTimeout: function() { if (jsfun_Debug) { alert('Timeout'); } }
    }
         );
}
