/* 
 | 
 * 备品借出申请 
 | 
 */ 
 | 
(function(win) { 
 | 
    //******************************************************************************************************* 
 | 
    // パラメータ 
 | 
    //******************************************************************************************************* 
 | 
    TEXT_AREA_ID = "00N10000003MspG"; 
 | 
    LOCAL_HREF = document.location.href; 
 | 
    SPLIT_ROW = "\n"; 
 | 
    SPLIT_COL1 = ","; 
 | 
    SPLIT_COL2 = "("; 
 | 
    SPLIT_COL3 = ")"; 
 | 
   
 | 
    //******************************************************************************************************* 
 | 
    // textareaをtableに変換 
 | 
    //******************************************************************************************************* 
 | 
    win._sfMakeTextAreaTable = function() { 
 | 
        var ins = document.getElementById(TEXT_AREA_ID); 
 | 
        var insVal = ins.value; 
 | 
        var tbl = document.createElement("table"); 
 | 
         
 | 
        // ヘッダ作成 
 | 
        var th1 = document.createElement("th");th1.style.width="150px"; 
 | 
        var th2 = document.createElement("th");th2.style.width="30px"; 
 | 
        var th3 = document.createElement("th");th3.style.width="150px"; 
 | 
        th1.innerHTML = "型式"; 
 | 
        th2.innerHTML = "数量"; 
 | 
        th3.innerHTML = "备注"; 
 | 
        tbl.appendChild(th1); 
 | 
        tbl.appendChild(th2); 
 | 
        tbl.appendChild(th3); 
 | 
         
 | 
        var tr; 
 | 
        var td; 
 | 
         
 | 
        if (insVal != "") { 
 | 
            var rows = insVal.split(SPLIT_ROW); 
 | 
            for (var i = 0; i < rows.length; i++) { 
 | 
                tr = document.createElement("tr"); 
 | 
  
 | 
                var idx1 = rows[i].indexOf(SPLIT_COL1); 
 | 
                if (idx1 > 0) { 
 | 
                    var col1 = rows[i].substring(0, idx1); 
 | 
                    var col2 = rows[i].substring(idx1 + 1); 
 | 
                     
 | 
                    td = document.createElement("td"); 
 | 
                    td.innerHTML = "<input type='text' style='width:95%;' value='" + col1 + "' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                    tr.appendChild(td); 
 | 
                     
 | 
                    var cols = col2.split(SPLIT_COL2); 
 | 
                    td = document.createElement("td"); 
 | 
                    td.innerHTML = "<input type='text' style='width:95%;' value='" + cols[0] + "' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                    tr.appendChild(td); 
 | 
                     
 | 
                    if (cols.length > 1) { 
 | 
                        td = document.createElement("td"); 
 | 
                        td.innerHTML = "<input type='text' style='width:95%;' value='" + cols[1].substring(0, cols[1].length - 1) + "' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                        tr.appendChild(td); 
 | 
                    } else { 
 | 
                        td = document.createElement("td"); 
 | 
                        td.innerHTML = "<input type='text' value='' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                        tr.appendChild(td); 
 | 
                    } 
 | 
                } else { 
 | 
                    td = document.createElement("td"); 
 | 
                    td.innerHTML = "<input type='text' value='" + rows[i] + "' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                    tr.appendChild(td); 
 | 
                     
 | 
                    td = document.createElement("td"); 
 | 
                    td.innerHTML = "<input type='text' value='' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                    tr.appendChild(td); 
 | 
                     
 | 
                    td = document.createElement("td"); 
 | 
                    td.innerHTML = "<input type='text' value='' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                    tr.appendChild(td); 
 | 
                } 
 | 
                 
 | 
                tbl.appendChild(tr); 
 | 
            } 
 | 
        } 
 | 
         
 | 
        // 後ろ常に五行追加 
 | 
        for (var i = 0; i < 5; i++) { 
 | 
            tr = document.createElement("tr"); 
 | 
            for (var j = 0; j < 3; j++) { 
 | 
                td = document.createElement("td"); 
 | 
                td.innerHTML = "<input type='text' style='width:95%;' value='' onchange='_sfMakeTextAreaStr();' />"; 
 | 
                tr.appendChild(td); 
 | 
            } 
 | 
            tbl.appendChild(tr); 
 | 
        } 
 | 
         
 | 
        tbl.id = ins.id+"_new"; 
 | 
        tbl.name = ins.name; 
 | 
        var insertedNode = ins.parentNode.insertBefore(tbl, ins); 
 | 
        ins.style.display="none"; 
 | 
         
 | 
        // インラインDialogの場合 
 | 
        var origEnter = sfdcPage.getDialogById('InlineEditDialog').enter; 
 | 
        var origCancel = sfdcPage.getDialogById('InlineEditDialog').cancel; 
 | 
        var inlineEnter = function() { 
 | 
            sfdcPage.getDialogById('InlineEditDialog').enter = origEnter; 
 | 
            sfdcPage.getDialogById('InlineEditDialog').cancel = origCancel; 
 | 
            _sfMakeTextAreaStr(); 
 | 
            if (sfdcPage.getInlineEditData().closeCurrentField()) { 
 | 
                sfdcPage.getDialogById("InlineEditDialog").hide(); 
 | 
            } 
 | 
            ins.style.display="block"; 
 | 
            ins.parentNode.removeChild(insertedNode); 
 | 
        } 
 | 
        var inlineCancel = function() { 
 | 
            sfdcPage.getDialogById('InlineEditDialog').enter = origEnter; 
 | 
            sfdcPage.getDialogById('InlineEditDialog').cancel = origCancel; 
 | 
            ins.value = insVal; 
 | 
            if (sfdcPage.getInlineEditData().closeCurrentField()) { 
 | 
                sfdcPage.getDialogById("InlineEditDialog").hide(); 
 | 
            } 
 | 
            ins.style.display="block"; 
 | 
            ins.parentNode.removeChild(insertedNode); 
 | 
        } 
 | 
        sfdcPage.getDialogById('InlineEditDialog').enter = inlineEnter; 
 | 
        sfdcPage.getDialogById('InlineEditDialog').cancel = inlineCancel; 
 | 
  
 | 
        // インラインDialogの場合、OKとキャンセルボタンがあります。 
 | 
        var e = document.getElementById("InlineEditDialog_buttons"); 
 | 
        if (e) { 
 | 
            if (e = e.firstChild) { 
 | 
                e.setAttribute("onclick", "sfdcPage.getDialogById('InlineEditDialog').enter();"); 
 | 
            } 
 | 
            if (e = e.nextSibling) { 
 | 
                e.setAttribute("onclick", "sfdcPage.getDialogById('InlineEditDialog').cancel();"); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    //******************************************************************************************************* 
 | 
    // tableの値をtextareaに書き戻す 
 | 
    //******************************************************************************************************* 
 | 
    win._sfMakeTextAreaStr = function() { 
 | 
        var tbl = document.getElementById(TEXT_AREA_ID + "_new"); 
 | 
        var trs = tbl.getElementsByTagName('tr'); 
 | 
        var finalStr = ""; 
 | 
        for (var i = 0; i < trs.length; i++) { 
 | 
            for (var j = 0; j < trs[i].cells.length; j++) { 
 | 
                var cell = trs[i].cells[j]; 
 | 
                var cellVal = cell.childNodes[0].value; 
 | 
                 
 | 
                if (j == 0) { 
 | 
                    if (cellVal == "") break;; 
 | 
                    finalStr += cellVal; 
 | 
                } 
 | 
                if (j == 1) { 
 | 
                    if (cellVal == "") cellVal = 0; 
 | 
                    finalStr += SPLIT_COL1 + cellVal; 
 | 
                } 
 | 
                if (j == 2) { 
 | 
                    if (cellVal == "") { 
 | 
                        finalStr += SPLIT_ROW; 
 | 
                    } else { 
 | 
                        finalStr += SPLIT_COL2 + cellVal + SPLIT_COL3 + SPLIT_ROW; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        // trim 
 | 
        finalStr = finalStr.replace(/(^\s+)|(\s+$)/g, ""); 
 | 
        // テキストエリア項目に書き戻す 
 | 
        document.getElementById(TEXT_AREA_ID).value = finalStr; 
 | 
    } 
 | 
     
 | 
    //******************************************************************************************************* 
 | 
    // 初期処理 
 | 
    //******************************************************************************************************* 
 | 
    var run = function() { 
 | 
        if (LOCAL_HREF.match(/\/e/)) { 
 | 
            _sfMakeTextAreaTable(); 
 | 
        } else { 
 | 
            // インライン編集の対応 
 | 
            var originalEvent = document.getElementById(TEXT_AREA_ID + "_ilecell"); 
 | 
            if (originalEvent) { 
 | 
                addEvent(originalEvent, "dblclick", function(elems) { 
 | 
                    return function(deepDataAndEvents) { 
 | 
                        if (win.sfdcPage) { 
 | 
                            if (win.sfdcPage.hasRun) { 
 | 
                                sfdcPage.dblClickField(deepDataAndEvents, elems); 
 | 
                                setTimeout("_sfMakeTextAreaTable()", 500); 
 | 
                            } 
 | 
                        } 
 | 
                    }; 
 | 
                }(originalEvent)); 
 | 
                addEvent(originalEvent, "keypress", function(elems) { 
 | 
                    return function(e) { 
 | 
                        if (win.sfdcPage) { 
 | 
                            if (win.sfdcPage.hasRun && (e && e.keyCode == KEY_ENTER)) { 
 | 
                                sfdcPage.dblClickField(e, elems); 
 | 
                                setTimeout("_sfMakeTextAreaTable()", 500); 
 | 
                            } 
 | 
                        } 
 | 
                    }; 
 | 
                }(originalEvent)); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    if (win.sfdcPage) { 
 | 
        sfdcPage.appendToOnloadQueue(function() { 
 | 
            if (LOCAL_HREF.match(/\/a0t/)) { 
 | 
                run(); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
})(window); 
 | 
   
 |