home *** CD-ROM | disk | FTP | other *** search
/ Chip 2009 November / Chip_2009.11_CD.iso / Chip_WPI / WPIScripts / selecthandler.js < prev    next >
Encoding:
JavaScript  |  2006-05-24  |  13.1 KB  |  487 lines

  1. //
  2. // Date Last Modified: May 8, 2006
  3. //
  4. // Modified By: Mark Ritter (mritter)
  5. //
  6.  
  7.  
  8. function SelectAll(obj) 
  9. {
  10.     position="selecthandler.js";
  11.     whatfunc="SelectAll()";
  12.  
  13.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  14.     if (obj.tagName.toLowerCase() != "select")
  15.         return;
  16.     for (var i=0; i<obj.length; i++) 
  17.     {
  18.         obj[i].selected = true;
  19.     }
  20. }
  21.  
  22.  
  23. function SelectNone(obj) 
  24. {
  25.     position="selecthandler.js";
  26.     whatfunc="SelectNone()";
  27.  
  28.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  29.     if (obj.tagName.toLowerCase() != "select")
  30.         return;
  31.     for (var i=0; i<obj.length; i++) 
  32.     {
  33.         obj[i].selected = false;
  34.     }
  35. }
  36.  
  37.  
  38. function Swap(obj) 
  39. {
  40.     position="selecthandler.js";
  41.     whatfunc="Swap()";
  42.  
  43.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  44.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  45.         return false;
  46.  
  47.     var first_element = false;
  48.     var last_element = false;
  49.  
  50.     for (var i=0; i<obj.length; i++) 
  51.     {
  52.         if (obj[i].selected) 
  53.         {
  54.             if (first_element === false) 
  55.                 first_element = i;
  56.             else 
  57.                 last_element = i;
  58.         }
  59.     }
  60.  
  61.     if (first_element === false || last_element === false)
  62.         return false;
  63.  
  64.     var tmp = new Array((document.body.innerHTML ? obj[first_element].innerHTML : obj[first_element].text), obj[first_element].value, obj[first_element].style.color, obj[first_element].style.backgroundColor, obj[first_element].className, obj[first_element].id, obj[first_element].selected);
  65.  
  66.     if (document.body.innerHTML) 
  67.         obj[first_element].innerHTML = obj[last_element].innerHTML;
  68.     else 
  69.         obj[first_element].text = obj[last_element].text;
  70.     obj[first_element].value = obj[last_element].value;
  71.     obj[first_element].style.color = obj[last_element].style.color;
  72.     obj[first_element].style.backgroundColor = obj[last_element].style.backgroundColor;
  73.     obj[first_element].className = obj[last_element].className;
  74.     obj[first_element].id = obj[last_element].id;
  75.     obj[first_element].selected = obj[last_element].selected;
  76.     if (document.body.innerHTML) 
  77.         obj[last_element].innerHTML = tmp[0];
  78.     else 
  79.         obj[last_element].text = tmp[0];
  80.     obj[last_element].value = tmp[1];
  81.     obj[last_element].style.color = tmp[2];
  82.     obj[last_element].style.backgroundColor = tmp[3];
  83.     obj[last_element].className = tmp[4];
  84.     obj[last_element].id = tmp[5];
  85.     obj[last_element].selected = tmp[6];
  86. }
  87.  
  88.  
  89. function AddItem(obj, text, value, index, id, classname, color, bg, selected) 
  90. {
  91.     position="selecthandler.js";
  92.     whatfunc="AddItem()";
  93.  
  94.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  95.     if (obj.tagName.toLowerCase() != "select" || text == "")
  96.         return;
  97.     obj.length++;
  98.     if (typeof index == "number" && index < obj.length-1) 
  99.     {
  100.         var i = Number();
  101.  
  102.         for (i=obj.length-2; i>index-1; i--) 
  103.         {
  104.             if (document.body.innerHTML) 
  105.                 obj[i+1].innerHTML = obj[i].innerHTML;
  106.             else 
  107.                 obj[i+1].text = obj[i].text;
  108.             obj[i+1].value = obj[i].value;
  109.             obj[i+1].id = obj[i].id;
  110.             obj[i+1].className = obj[i].className;
  111.             obj[i+1].style.color = obj[i].style.color;
  112.             obj[i+1].style.backgroundColor = obj[i].style.backgroundColor;
  113.             obj[i+1].selected = obj[i].selected;
  114.         }
  115.     } 
  116.     else 
  117.         index = obj.length - 1;
  118.     obj = obj[index];
  119.     if (document.body.innerHTML) 
  120.         obj.innerHTML = text;
  121.     else 
  122.         obj.text = text;
  123.     obj.value = value;
  124.     obj.id = id ? id : '';
  125.     obj.className = classname ? classname : '';
  126.     obj.style.color = color ? color : '';
  127.     obj.style.backgroundColor = bg ? bg : '';
  128.     obj.selected = selected
  129. }
  130.  
  131.  
  132. function RemoveItem(obj, index) 
  133. {
  134.     position="selecthandler.js";
  135.     whatfunc="RemoveItem()";
  136.  
  137.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  138.     if (obj.tagName.toLowerCase() != "select" || obj.length == 0)
  139.         return;
  140.     if (index === true) 
  141.     {
  142.         for (index=obj.length-1; index>=0; index--) 
  143.         {
  144.             if (obj[index].selected) 
  145.                 obj[index] = null;
  146.         }
  147.     } 
  148.     else 
  149.         obj[((typeof index != "number") || index > (obj.length - 1) || index < 0 ? obj.length - 1 : index)] = null;
  150. }
  151.  
  152.  
  153. function MouseWheel(obj) 
  154. {
  155.     position="selecthandler.js";
  156.     whatfunc="MouseWheel()";
  157.  
  158.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  159.     if (obj.tagName.toLowerCase() != "select")
  160.         return;
  161.     if (obj.selectedIndex != -1) 
  162.     {
  163.         if (event.wheelDelta > 0) 
  164.             Up(obj);
  165.         else 
  166.             Down(obj);
  167.  
  168.         return false;
  169.     }
  170. }
  171.  
  172.  
  173. function Sort2D(arrayName, element, num, cs) 
  174. {
  175.     position="selecthandler.js";
  176.     whatfunc="Sort2D()";
  177.  
  178.     if (num) 
  179.     {
  180.         for (var i=0; i<(arrayName.length-1); i++) 
  181.         {
  182.             for (var j=i+1; j<arrayName.length; j++) 
  183.             {
  184.                 if (parseInt(arrayName[j][element],10) < parseInt(arrayName[i][element],10)) 
  185.                 {
  186.                     var dummy = arrayName[i];
  187.  
  188.                     arrayName[i] = arrayName[j];
  189.                     arrayName[j] = dummy;
  190.                 }
  191.             }
  192.         }
  193.     } 
  194.     else 
  195.     {
  196.         for (var i=0; i<(arrayName.length-1); i++) 
  197.         {
  198.             for (var j=i+1; j<arrayName.length; j++) 
  199.             {
  200.                 if (cs) 
  201.                 {
  202.                     if (arrayName[j][element].toLowerCase() < arrayName[i][element].toLowerCase()) 
  203.                     {
  204.                         var dummy = arrayName[i];
  205.  
  206.                         arrayName[i] = arrayName[j];
  207.                         arrayName[j] = dummy;
  208.                     }
  209.                 } 
  210.                 else 
  211.                 {
  212.                     if (arrayName[j][element] < arrayName[i][element]) 
  213.                     {
  214.                         var dummy = arrayName[i];
  215.  
  216.                         arrayName[i] = arrayName[j];
  217.                         arrayName[j] = dummy;
  218.                     }
  219.                 }
  220.             }
  221.         }
  222.     }
  223. }
  224.  
  225.  
  226. /* sort the list!
  227. by = 0 - order by text (default)
  228. by = 1 - order by value
  229. by = 2 - order by color
  230. by = 3 - order by background color
  231. by = 4 - order by class name
  232. by = 5 - order by id
  233. num = if true sorts numbers e.g. 2 before 10
  234. cs = casesensitive e.g. a before Z*/
  235. function ListSort(obj, by, num, cs) 
  236. {
  237.     position="selecthandler.js";
  238.     whatfunc="ListSort()";
  239.  
  240.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  241.     by = (parseInt("0" + by) > 5) ? 0 : parseInt("0" + by);
  242.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  243.         return false;
  244.     var elements = new Array();
  245.  
  246.     for (var i=0; i<obj.length; i++) 
  247.     {
  248.         elements[elements.length] = new Array((document.body.innerHTML ? obj[i].innerHTML : obj[i].text), obj[i].value, (obj[i].currentStyle ? obj[i].currentStyle.color : obj[i].style.color), (obj[i].currentStyle ? obj[i].currentStyle.backgroundColor : obj[i].style.backgroundColor), obj[i].className, obj[i].id, obj[i].selected);
  249.     }
  250.     Sort2D(elements, by, num, cs);
  251.     for (i=0; i<obj.length; i++) 
  252.     {
  253.         if (document.body.innerHTML) 
  254.             obj[i].innerHTML = elements[i][0];
  255.         else 
  256.             obj[i].text = elements[i][0];
  257.         obj[i].value = elements[i][1];
  258.         obj[i].style.color = elements[i][2];
  259.         obj[i].style.backgroundColor = elements[i][3];
  260.         obj[i].className = elements[i][4];
  261.         obj[i].id = elements[i][5];
  262.         obj[i].selected = elements[i][6];
  263.     }
  264. }
  265.  
  266.  
  267. function ViceVersa(obj, onlyselected) 
  268. {
  269.     position="selecthandler.js";
  270.     whatfunc="ViceVersa()";
  271.  
  272.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  273.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  274.         return false;
  275.  
  276.     var elements = new Array();
  277.  
  278.     for (var i=obj.length-1; i>-1; i--) 
  279.     {
  280.         if (obj[i].selected || !onlyselected) 
  281.             elements[elements.length] = new Array((document.body.innerHTML ? obj[i].innerHTML : obj[i].text), obj[i].value, obj[i].style.color, obj[i].style.backgroundColor, obj[i].className, obj[i].id, obj[i].selected);
  282.     }
  283.  
  284.     var a = 0;
  285.  
  286.     for (i=0; i<obj.length; i++) 
  287.     {
  288.         if (obj[i].selected || !onlyselected) 
  289.         {
  290.             if (document.body.innerHTML) 
  291.                 obj[i].innerHTML = elements[a][0];
  292.             else 
  293.                 obj[i].text = elements[a][0];
  294.             obj[i].value = elements[a][1];
  295.             obj[i].style.color = elements[a][2];
  296.             obj[i].style.backgroundColor = elements[a][3];
  297.             obj[i].className = elements[a][4];
  298.             obj[i].id = elements[a][5];
  299.             obj[i].selected = elements[a][6];
  300.             a++;
  301.         }
  302.     }
  303. }
  304.  
  305.  
  306. function Top(obj) 
  307. {
  308.     position="selecthandler.js";
  309.     whatfunc="Top()";
  310.  
  311.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  312.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  313.         return false;
  314.  
  315.     var elements = new Array();
  316.  
  317.     for (var i=0; i<obj.length; i++) 
  318.     {
  319.         if (obj[i].selected) 
  320.             elements[elements.length] = new Array((document.body.innerHTML ? obj[i].innerHTML : obj[i].text), obj[i].value, obj[i].style.color, obj[i].style.backgroundColor, obj[i].className, obj[i].id, obj[i].selected);
  321.     }
  322.     for (i=0; i<obj.length; i++) 
  323.     {
  324.         if (!obj[i].selected) 
  325.             elements[elements.length] = new Array((document.body.innerHTML ? obj[i].innerHTML : obj[i].text), obj[i].value, obj[i].style.color, obj[i].style.backgroundColor, obj[i].className, obj[i].id, obj[i].selected);
  326.     }
  327.     for (i=0; i<obj.length; i++) 
  328.     {
  329.         if (document.body.innerHTML) 
  330.             obj[i].innerHTML = elements[i][0];
  331.         else 
  332.             obj[i].text = elements[i][0];
  333.         obj[i].value = elements[i][1];
  334.         obj[i].style.color = elements[i][2];
  335.         obj[i].style.backgroundColor = elements[i][3];
  336.         obj[i].className = elements[i][4];
  337.         obj[i].id = elements[i][5];
  338.         obj[i].selected = elements[i][6];
  339.     }
  340. }
  341.  
  342.  
  343. function Bottom(obj) 
  344. {
  345.     position="selecthandler.js";
  346.     whatfunc="Bottom()";
  347.  
  348.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  349.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  350.         return false;
  351.  
  352.     var elements = new Array();
  353.  
  354.     for (var i=0; i<obj.length; i++) 
  355.     {
  356.         if (!obj[i].selected) 
  357.             elements[elements.length] = new Array((document.body.innerHTML ? obj[i].innerHTML : obj[i].text), obj[i].value, obj[i].style.color, obj[i].style.backgroundColor, obj[i].className, obj[i].id, obj[i].selected);
  358.     }
  359.     for (i=0; i<obj.length; i++) 
  360.     {
  361.         if (obj[i].selected) 
  362.             elements[elements.length] = new Array((document.body.innerHTML ? obj[i].innerHTML : obj[i].text), obj[i].value, obj[i].style.color, obj[i].style.backgroundColor, obj[i].className, obj[i].id, obj[i].selected);
  363.     }
  364.     for (i=obj.length-1; i>-1; i--) 
  365.     {
  366.         if (document.body.innerHTML) 
  367.             obj[i].innerHTML = elements[i][0];
  368.         else 
  369.             obj[i].text = elements[i][0];
  370.         obj[i].value = elements[i][1];
  371.         obj[i].style.color = elements[i][2];
  372.         obj[i].style.backgroundColor = elements[i][3];
  373.         obj[i].className = elements[i][4];
  374.         obj[i].id = elements[i][5];
  375.         obj[i].selected = elements[i][6];
  376.     }
  377. }
  378.  
  379.  
  380. function Up(obj) 
  381. {
  382.     position="selecthandler.js";
  383.     whatfunc="Up()";
  384.  
  385.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  386.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  387.         return false;
  388.  
  389.     var sel = new Array();
  390.  
  391.     for (var i=0; i<obj.length; i++) 
  392.     {
  393.         if (obj[i].selected == true) 
  394.             sel[sel.length] = i;
  395.     }
  396.     for (i in sel) 
  397.     {
  398.         if (sel[i] != 0 && !obj[sel[i]-1].selected) 
  399.         {
  400.             var tmp = new Array((document.body.innerHTML ? obj[sel[i]-1].innerHTML : obj[sel[i]-1].text), obj[sel[i]-1].value, obj[sel[i]-1].style.color, obj[sel[i]-1].style.backgroundColor, obj[sel[i]-1].className, obj[sel[i]-1].id);
  401.  
  402.             if (document.body.innerHTML) 
  403.                 obj[sel[i]-1].innerHTML = obj[sel[i]].innerHTML;
  404.             else 
  405.                 obj[sel[i]-1].text = obj[sel[i]].text;
  406.             obj[sel[i]-1].value = obj[sel[i]].value;
  407.             obj[sel[i]-1].style.color = obj[sel[i]].style.color;
  408.             obj[sel[i]-1].style.backgroundColor = obj[sel[i]].style.backgroundColor;
  409.             obj[sel[i]-1].className = obj[sel[i]].className;
  410.             obj[sel[i]-1].id = obj[sel[i]].id;
  411.             if (document.body.innerHTML) 
  412.                 obj[sel[i]].innerHTML = tmp[0];
  413.             else 
  414.                 obj[sel[i]].text = tmp[0];
  415.             obj[sel[i]].value = tmp[1];
  416.             obj[sel[i]].style.color = tmp[2];
  417.             obj[sel[i]].style.backgroundColor = tmp[3];
  418.             obj[sel[i]].className = tmp[4];
  419.             obj[sel[i]].id = tmp[5];
  420.             obj[sel[i]-1].selected = true;
  421.             obj[sel[i]].selected = false;
  422.         }
  423.     }
  424. }
  425.  
  426.  
  427. function Down(obj)
  428. {
  429.     position="selecthandler.js";
  430.     whatfunc="Down()";
  431.  
  432.     obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
  433.     if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
  434.         return false;
  435.  
  436.     var sel = new Array();
  437.  
  438.     for (var i=obj.length-1; i>-1; i--) 
  439.     {
  440.         if (obj[i].selected == true) 
  441.             sel[sel.length] = i;
  442.     }
  443.     for (i in sel) 
  444.     {
  445.         if (sel[i] != obj.length-1 && !obj[sel[i]+1].selected) 
  446.         {
  447.             var tmp = new Array((document.body.innerHTML ? obj[sel[i]+1].innerHTML : obj[sel[i]+1].text), obj[sel[i]+1].value, obj[sel[i]+1].style.color, obj[sel[i]+1].style.backgroundColor, obj[sel[i]+1].className, obj[sel[i]+1].id);
  448.  
  449.             if (document.body.innerHTML) 
  450.                 obj[sel[i]+1].innerHTML = obj[sel[i]].innerHTML;
  451.             else 
  452.                 obj[sel[i]+1].text = obj[sel[i]].text;
  453.             obj[sel[i]+1].value = obj[sel[i]].value;
  454.             obj[sel[i]+1].style.color = obj[sel[i]].style.color;
  455.             obj[sel[i]+1].style.backgroundColor = obj[sel[i]].style.backgroundColor;
  456.             obj[sel[i]+1].className = obj[sel[i]].className;
  457.             obj[sel[i]+1].id = obj[sel[i]].id;
  458.             if (document.body.innerHTML) 
  459.                 obj[sel[i]].innerHTML = tmp[0];
  460.             else 
  461.                 obj[sel[i]].text = tmp[0];
  462.             obj[sel[i]].value = tmp[1];
  463.             obj[sel[i]].style.color = tmp[2];
  464.             obj[sel[i]].style.backgroundColor = tmp[3];
  465.             obj[sel[i]].className = tmp[4];
  466.             obj[sel[i]].id = tmp[5];
  467.             obj[sel[i]+1].selected = true;
  468.             obj[sel[i]].selected = false;
  469.         }
  470.     }
  471. }
  472.  
  473.  
  474. function InArray(v,a) 
  475. {
  476.     position="selecthandler.js";
  477.     whatfunc="InArray()";
  478.  
  479.     for (var i in a) 
  480.     {
  481.         if (a[i] == v) 
  482.             return true;
  483.     }
  484.  
  485.     return false;
  486. }
  487.