| Line 406: | Line 406: | 
|  | | GCcollab |<nowiki> Twitter | Email</nowiki> |  | | GCcollab |<nowiki> Twitter | Email</nowiki> | 
|  | |} |  | |} | 
|  | + |  | 
|  | + |       <script> | 
|  | + |          function myFunction() { | 
|  | + |          var input, filter, table, tr, td, i; | 
|  | + |          input = document.getElementById("myInput"); | 
|  | + |          filter = input.value.toUpperCase(); | 
|  | + |          table = document.getElementById("myTable"); | 
|  | + |          tr = table.getElementsByTagName("tr"); | 
|  | + |          for (i = 0; i < tr.length; i++) { | 
|  | + |            td = tr[i].getElementsByTagName("td")[2]; | 
|  | + |            if (td) { | 
|  | + |              if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { | 
|  | + |                tr[i].style.display = ""; | 
|  | + |              } else { | 
|  | + |                tr[i].style.display = "none"; | 
|  | + |              } | 
|  | + |            }        | 
|  | + |          } | 
|  | + |          } | 
|  | + |           | 
|  | + |          function sortTable() { | 
|  | + |          var TableLastSortedColumn = -1; | 
|  | + |           | 
|  | + |          var sortColumn = parseInt(arguments[0]); | 
|  | + |          var type = arguments.length > 1 ? arguments[1] : 'T'; | 
|  | + |          var dateformat = arguments.length > 2 ? arguments[2] : ''; | 
|  | + |          var table = document.getElementById("myTable"); | 
|  | + |          var tbody = table.getElementsByTagName("tbody")[0]; | 
|  | + |          var rows = tbody.getElementsByTagName("tr"); | 
|  | + |          var arrayOfRows = new Array(); | 
|  | + |          type = type.toUpperCase(); | 
|  | + |          dateformat = dateformat.toLowerCase(); | 
|  | + |          for(var i=0, len=rows.length; i<len; i++) { | 
|  | + |          arrayOfRows[i] = new Object; | 
|  | + |          arrayOfRows[i].oldIndex = i; | 
|  | + |          var celltext = rows[i].getElementsByTagName("td")[sortColumn].innerHTML.replace(/<[^>]*>/g,""); | 
|  | + |          if( type=='D' ) { arrayOfRows[i].value = GetDateSortingKey(dateformat,celltext); } | 
|  | + |          else { | 
|  | + |          var re = type=="N" ? /[^\.\-\+\d]/g : /[^a-zA-Z0-9]/g; | 
|  | + |          arrayOfRows[i].value = celltext.replace(re,"").substr(0,25).toLowerCase(); | 
|  | + |          } | 
|  | + |          } | 
|  | + |          if (sortColumn == TableLastSortedColumn) { arrayOfRows.reverse(); } | 
|  | + |          else { | 
|  | + |          TableLastSortedColumn = sortColumn; | 
|  | + |          switch(type) { | 
|  | + |          case "N" : arrayOfRows.sort(CompareRowOfNumbers); break; | 
|  | + |          case "D" : arrayOfRows.sort(CompareRowOfNumbers); break; | 
|  | + |          default  : arrayOfRows.sort(CompareRowOfText); | 
|  | + |          } | 
|  | + |          } | 
|  | + |          var newTableBody = document.createElement("tbody"); | 
|  | + |          for(var i=0, len=arrayOfRows.length; i<len; i++) { | 
|  | + |          newTableBody.appendChild(rows[arrayOfRows[i].oldIndex].cloneNode(true)); | 
|  | + |          } | 
|  | + |          table.replaceChild(newTableBody,tbody); | 
|  | + |          } // function SortTable() | 
|  | + |           | 
|  | + |          function CompareRowOfText(a,b) { | 
|  | + |          var aval = a.value; | 
|  | + |          var bval = b.value; | 
|  | + |          return( aval == bval ? 0 : (aval > bval ? 1 : -1) ); | 
|  | + |          } // function CompareRowOfText() | 
|  | + |           | 
|  | + |          function CompareRowOfNumbers(a,b) { | 
|  | + |          var aval = /\d/.test(a.value) ? parseFloat(a.value) : 0; | 
|  | + |          var bval = /\d/.test(b.value) ? parseFloat(b.value) : 0; | 
|  | + |          return( aval == bval ? 0 : (aval > bval ? 1 : -1) ); | 
|  | + |          } // function CompareRowOfNumbers() | 
|  | + |           | 
|  | + |          function GetDateSortingKey(format,text) { | 
|  | + |          if( format.length < 1 ) { return ""; } | 
|  | + |          format = format.toLowerCase(); | 
|  | + |          text = text.toLowerCase(); | 
|  | + |          text = text.replace(/^[^a-z0-9]*/,""); | 
|  | + |          text = text.replace(/[^a-z0-9]*$/,""); | 
|  | + |          if( text.length < 1 ) { return ""; } | 
|  | + |          text = text.replace(/[^a-z0-9]+/g,","); | 
|  | + |          var date = text.split(","); | 
|  | + |          if( date.length < 3 ) { return ""; } | 
|  | + |          var d=0, m=0, y=0; | 
|  | + |          for( var i=0; i<3; i++ ) { | 
|  | + |          var ts = format.substr(i,1); | 
|  | + |          if( ts == "d" ) { d = date[i]; } | 
|  | + |          else if( ts == "m" ) { m = date[i]; } | 
|  | + |          else if( ts == "y" ) { y = date[i]; } | 
|  | + |          } | 
|  | + |          d = d.replace(/^0/,""); | 
|  | + |          if( d < 10 ) { d = "0" + d; } | 
|  | + |          if( /[a-z]/.test(m) ) { | 
|  | + |          m = m.substr(0,3); | 
|  | + |          switch(m) { | 
|  | + |          case "jan" : m = String(1); break; | 
|  | + |          case "feb" : m = String(2); break; | 
|  | + |          case "mar" : m = String(3); break; | 
|  | + |          case "apr" : m = String(4); break; | 
|  | + |          case "may" : m = String(5); break; | 
|  | + |          case "jun" : m = String(6); break; | 
|  | + |          case "jul" : m = String(7); break; | 
|  | + |          case "aug" : m = String(8); break; | 
|  | + |          case "sep" : m = String(9); break; | 
|  | + |          case "oct" : m = String(10); break; | 
|  | + |          case "nov" : m = String(11); break; | 
|  | + |          case "dec" : m = String(12); break; | 
|  | + |          default    : m = String(0); | 
|  | + |          } | 
|  | + |          } | 
|  | + |          m = m.replace(/^0/,""); | 
|  | + |          if( m < 10 ) { m = "0" + m; } | 
|  | + |          y = parseInt(y); | 
|  | + |          if( y < 100 ) { y = parseInt(y) + 2000; } | 
|  | + |          return "" + String(y) + "" + String(m) + "" + String(d) + ""; | 
|  | + |          } // function GetDateSortingKey() | 
|  | + |       </script> |