home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 June / ENTER.ISO / files / xampp-win32-1.4.5-installer.exe / xampp / tbl_change.js < prev    next >
Encoding:
JavaScript  |  2003-12-04  |  3.2 KB  |  113 lines

  1. /* $Id: tbl_change.js,v 2.1 2003/12/04 17:25:37 garvinhicking Exp $ */
  2.  
  3.  
  4. /**
  5.  * Modify from controls when the "NULL" checkbox is selected
  6.  *
  7.  * @param   string   the MySQL field type
  8.  * @param   string   the urlencoded field name
  9.  * @param   string   the md5 hashed field name
  10.  *
  11.  * @return  boolean  always true
  12.  */
  13. function nullify(theType, urlField, md5Field, multi_edit)
  14. {
  15.     var rowForm = document.forms['insertForm'];
  16.  
  17.     if (typeof(rowForm.elements['funcs' + multi_edit + '[' + urlField + ']']) != 'undefined') {
  18.         rowForm.elements['funcs' + multi_edit + '[' + urlField + ']'].selectedIndex = -1;
  19.     }
  20.  
  21.     // "SET" field , "ENUM" field with more than 20 characters
  22.     // or foreign key field
  23.     if (theType == 1 || theType == 3 || theType == 4) {
  24.         rowForm.elements['field_' + md5Field + multi_edit + '[]'].selectedIndex = -1;
  25.     }
  26.     // Other "ENUM" field
  27.     else if (theType == 2) {
  28.         var elts     = rowForm.elements['field_' + md5Field + multi_edit + '[]'];
  29.         // when there is just one option in ENUM:
  30.         if (elts.checked) {
  31.             elts.checked = false;
  32.         } else {
  33.             var elts_cnt = elts.length;
  34.             for (var i = 0; i < elts_cnt; i++ ) {
  35.                 elts[i].checked = false;
  36.             } // end for
  37.  
  38.         } // end if
  39.     }
  40.     // Other field types
  41.     else /*if (theType == 5)*/ {
  42.         rowForm.elements['fields' + multi_edit + '[' + urlField + ']'].value = '';
  43.     } // end if... else if... else
  44.  
  45.     return true;
  46. } // end of the 'nullify()' function
  47.  
  48.  
  49. /**
  50.  * Unchecks the "NULL" control when a function has been selected or a value
  51.  * entered
  52.  *
  53.  * @param   string   the urlencoded field name
  54.  *
  55.  * @return  boolean  always true
  56.  */
  57. function unNullify(urlField, multi_edit)
  58. {
  59.     var rowForm = document.forms['insertForm'];
  60.  
  61.     if (typeof(rowForm.elements['fields_null' + multi_edit + '[' + urlField + ']']) != 'undefined') {
  62.         rowForm.elements['fields_null' + multi_edit + '[' + urlField + ']'].checked = false
  63.     } // end if
  64.  
  65.     return true;
  66. } // end of the 'unNullify()' function
  67.  
  68. /**
  69.   * Allows moving around inputs/select by Ctrl+arrows
  70.   *
  71.   * @param   object   event data   
  72.   */
  73. function onKeyDownArrowsHandler(e) {
  74.     e = e||window.event;
  75.     var o = (e.srcElement||e.target);
  76.     if (!o) return;
  77.     if (o.tagName != "TEXTAREA" && o.tagName != "INPUT" && o.tagName != "SELECT") return;
  78.     if (!e.ctrlKey) return;
  79.     if (!o.id) return;
  80.  
  81.     var pos = o.id.split("_");
  82.     if (pos[0] != "field" || typeof pos[2] == "undefined") return;
  83.  
  84.     var x = pos[2], y=pos[1];
  85.     
  86.     // skip non existent fields
  87.     for (i=0; i<10; i++)
  88.     {
  89.         switch(e.keyCode) {
  90.             case 38: y--; break; // up
  91.             case 40: y++; break; // down
  92.             case 37: x--; break; // left
  93.             case 39: x++; break; // right
  94.             default: return;
  95.         }
  96.  
  97.         var id = "field_" + y + "_" + x;
  98.         var nO = document.getElementById(id);
  99.         if (!nO) {
  100.             var id = "field_" + y + "_" + x + "_0";
  101.             var nO = document.getElementById(id);
  102.         }
  103.         if (nO) break;
  104.     }
  105.     
  106.     if (!nO) return;
  107.     nO.focus();
  108.     if (nO.tagName != 'SELECT') {
  109.         nO.select();
  110.     }
  111.     e.returnValue = false;
  112. }
  113.