Develop and Download Open Source Software

Browse Subversion Repository

Diff of /js/common.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 10 by berupon, Tue Dec 8 11:41:01 2009 UTC revision 14 by berupon, Tue Dec 22 15:50:45 2009 UTC
# Line 27  function clearFormElementsValues(form, i Line 27  function clearFormElementsValues(form, i
27                                  continue;                                  continue;
28                          }                          }
29                          if (ele.name.substring(0, idlen) == id) {                          if (ele.name.substring(0, idlen) == id) {
30                                  ele.value = '';                                  if (ele.nodeName == "INPUT" && ele.type == "checkbox") {
31                                            ele.checked = false;
32                                    }else {
33                                            ele.value = '';
34                                    }
35                          }                          }
36                  }                  }
37          }          }
# Line 51  function searchAncestor(elem, func) { Line 55  function searchAncestor(elem, func) {
55          return false;          return false;
56  }  }
57    
 function selectOptionByText(select, text)  
 {  
         var options = select.options;  
         for (var i=0; i<select.length; ++i) {  
                 if (options[i].text == text) {  
                         select.selectedIndex = i;  
                         break;  
                 }  
         }  
 }  
   
58  function zip2addr(relativePath, zipInput, prefInputName, addrInputName)  function zip2addr(relativePath, zipInput, prefInputName, addrInputName)
59  {  {
60          var zipCode = zipInput.value.strip();          var zipCode = zipInput.value.strip();
# Line 109  function addFigure(str) Line 102  function addFigure(str)
102          return num;          return num;
103  }  }
104    
105    // DOM operation is slow ...
106  function mergeRepeativeValueRows(table, rowRange, columnIndexs)  function mergeRepeativeValueRows(table, rowRange, columnIndexs)
107  {  {
108          columnIndexs.sort(function(a,b) {          columnIndexs.sort(function(a,b) {
# Line 119  function mergeRepeativeValueRows(table, Line 113  function mergeRepeativeValueRows(table,
113          if (endRowIndex == -1) {          if (endRowIndex == -1) {
114                  endRowIndex = table.rows.length;                  endRowIndex = table.rows.length;
115          }          }
116            
117          for (i=0; i<columnIndexs.length; ++i) {          for (i=0; i<columnIndexs.length; ++i) {
118                  var ci = columnIndexs[i];                  var ci = columnIndexs[i];
119                  // count                  // count
120                  var spanCounts = new Array();                  var spanCounts = [];
121                  var spanCount = 1;                  var spanCount = 1;
122                    var prevRow = table.rows[beginRowIndex];
123                    var prevRowCellsLength = prevRow.cells.length;
124                    if (ci < prevRowCellsLength) {
125                            var prevCell = prevRow.cells[ci];
126                            var prevCellTagName = prevCell.tagName;
127                            var prevCellInnerHTML = prevCell.innerHTML;
128                    }
129                  for (k=beginRowIndex+1; k<endRowIndex; ++k) {                  for (k=beginRowIndex+1; k<endRowIndex; ++k) {
                         var prevRow = table.rows[k-1];  
130                          var curRow = table.rows[k];                          var curRow = table.rows[k];
131                          if (1                          var bContinue = false;
132                                  && ci < prevRow.cells.length                          var curRowCellsLength = curRow.cells.length;
133                                  && ci < curRow.cells.length                          if (ci < curRowCellsLength) {
                         ) {  
                                 var prevCell = prevRow.cells[ci];  
134                                  var curCell = curRow.cells[ci];                                  var curCell = curRow.cells[ci];
135                                  if (prevCell.tagName == "TD" && curCell.tagName == "TD") {                                  var curCellTagName = curCell.tagName;
136                                          var prevVal = prevCell.innerHTML;                                  var curCellInnerHTML = curCell.innerHTML;
137                                          var curVal = curCell.innerHTML;                                  if (ci < prevRowCellsLength) {
138                                          if (prevVal == curVal) {                                          if (prevCellTagName == curCellTagName && prevCellInnerHTML == curCellInnerHTML) {
139                                                  ++spanCount;                                                  ++spanCount;
140                                                  continue;                                                  bContinue = true;
141                                          }                                          }
142                                  }                                  }
143                                    prevCellTagName = curCellTagName;
144                                    prevCellInnerHTML = curCellInnerHTML;
145                            }
146                            prevRowCellsLength = curRowCellsLength;
147                            if (bContinue) {
148                                    continue;
149                          }                          }
150                          spanCounts.push(spanCount);                          spanCounts.push(spanCount);
151                          spanCount = 1;                          spanCount = 1;
# Line 320  function relocateSelectedOptions(select, Line 325  function relocateSelectedOptions(select,
325    
326  }  }
327    
328    function getSelectedOptionValue(select)
329    {
330            var selValue = null;
331            if (select.selectedIndex != -1) {
332                    selValue = select.options[select.selectedIndex].value;
333            }
334            return selValue;
335    }
336    
337    function selectOptionByText(select, text)
338    {
339            var options = select.options;
340            for (var i=0; i<select.length; ++i) {
341                    if (options[i].text == text) {
342                            select.selectedIndex = i;
343                            break;
344                    }
345            }
346    }
347    
348    function createSelectOptionTags(arr, selectedKey)
349    {
350            var str = '';
351            str += "<option value=''></option>";
352            for (var i in arr) {
353                    var selected = '';
354                    if (i == selectedKey) {
355                            selected = 'selected';
356                    }
357                    var value = arr[i];
358                    str += "<option value='" + i + "' " + selected + ">" + value + "</option>";
359            }
360            return str;
361    }
362    
363    function setSelectOptions(select, arr)
364    {
365            var selValue = getSelectedOptionValue(select);
366            var options = select.options;
367            options.length = 0;
368            options[options.length] = new Option();
369            for (var i in arr) {
370                    var value = arr[i]
371                    var option = new Option(value, i);
372                    option.selected = (value == selValue);
373                    options[options.length] = option;
374            }
375    }
376    
377    function createCheckboxTag(name, value, label, checked)
378    {
379            var str = "<label><input type='checkbox' name='" + name + "' value='" + value + "'";
380            if (checked) {
381                    str += " checked";
382            }
383            str += ">" + label + "</label>";
384            return str;
385    }
386    
387    function createCheckboxTags(name, arr, selectedKeys, separator)
388    {
389            str = '';
390            
391            if (separator == undefined) {
392                    separator = "\n";
393            }
394            
395            for (var i in arr) {
396                    checked = '';
397                    if (Object.isArray(selectedKeys)) {
398                            if (selectedKeys.indexOf(i) != -1) {
399                                    checked = 'checked';
400                            }
401                    }
402                    str += "<label><input type='checkbox' name='" + name + "[]' value='" + i + "' " + checked + ">" + arr[i] + "</label>";
403                    str += separator;
404            }
405            return str;
406    }
407    
408  function toggleVisibility(elem)  function toggleVisibility(elem)
409  {  {
410          if (elem.style.visibility == 'hidden') {          if (elem.style.visibility == 'hidden') {
# Line 435  function modifyTemplate(src, data) { Line 520  function modifyTemplate(src, data) {
520          return pieces.join("");          return pieces.join("");
521  }  }
522    
523    syncLoad = (function() {
524            
525            var cache = {};
526            
527            return function (url, useCache) {
528                    if (useCache && url in cache) {
529                            return cache[url];
530                    }
531                    
532                    var ret = false;
533                    new Ajax.Request(
534                            url,
535                            {
536                                    "method" : "get",
537                                    "parameters" : {},
538                                    "onSuccess": function(transport) {
539                                            ret = transport.responseText;
540                                            cache[url] = ret;
541                                    },
542                                    "onFailure": function () {
543                                            ret = false;
544                                    },
545                                    "asynchronous" : false
546                            }
547                    );
548                    return ret;
549            }
550    })();
551    
552    function recordsToArray(recs, keyName, valueName) {
553            var ret = {};
554            for (var i=0; i<recs.length; ++i) {
555                    var rec = recs[i];
556                    var key = rec[keyName];
557                    var value = rec[valueName];
558                    ret[key] = value;
559            }
560            return ret;
561    }
562    
563    // maybe re-inventing wheel?
564    function searchDOM(elem, func) {
565            var elems = elem.childNodes;
566            for (var i=0,len=elems.length; i<len; ++i) {
567                    var e = elems[i];
568                    if (func(e)) {
569                            return e;
570                    }
571                    var ret = searchDOM(e, func);
572                    if (ret) {
573                            return ret;
574                    }
575            }
576            return null;
577    }
578    
579    // 属性をnodeのkeyにしてobject treeを構築。
580    function distributeElements(elements, keys) {
581            var arr = {};
582            for (var i=0; i<elements.length; ++i) {
583                    var e = elements[i];
584                    var tmp = arr;
585                    for (var j=0; j<keys.length-1; ++j) {
586                            var key = e.getAttribute(keys[j]);
587                            if (!(key in tmp)) {
588                                    tmp[key] = {};
589                            }
590                            tmp = tmp[key];
591                    }
592                    var key = e.getAttribute(keys[keys.length-1]);
593                    tmp[key] = e;
594            }
595            return arr;
596    }
597    

Legend:
Removed from v.10  
changed lines
  Added in v.14

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26