home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 1999 April / APC443.iso / features / grpware / coldfus / coldfusi.exe / data1.cab / Scripts / cfform.js < prev   
Encoding:
Text File  |  1998-10-08  |  12.8 KB  |  581 lines

  1.  
  2. LOAD_START
  3. var _CF_loaded=0;
  4.  
  5. function _CF_signalLoad()
  6. {
  7.     _CF_loaded = 1;
  8. }
  9. LOAD_END
  10.  
  11. CABOBJECT_START
  12.  
  13. <OBJECT 
  14.     CLASSID="clsid:D702FBF4-EE60-11d0-BD5B-00A0C91F4635"
  15.     CODEBASE="/CFIDE/classes/CFJava.cab#Version=4,0,0,0">
  16. </OBJECT>
  17.  
  18. CABOBJECT_END
  19.  
  20. GRID_START
  21. function _CF_getGrid(gridInstance)
  22.     {
  23.      return gridInstance.cf_getGridForm();
  24.     }
  25. GRID_END
  26.  
  27.  
  28. SLIDER_START
  29. function _CF_getSlider(sliderInstance)
  30.     {
  31.      return sliderInstance.cf_getSlider();
  32.     }
  33. SLIDER_END
  34.  
  35. TEXT_START
  36. function _CF_getText(textInstance)
  37.     {
  38.      return textInstance.cf_getText();
  39.     }
  40. TEXT_END
  41.  
  42. TREE_START
  43. function _CF_getTree(treeInstance)
  44.     {
  45.      return treeInstance.cf_getTreeForm();
  46.     }
  47. TREE_END
  48.  
  49. ONERROR_START
  50. function _CF_onError(form_object, input_object, object_value, error_message)
  51.     {
  52.     alert(error_message);
  53.            return false;    
  54.     }
  55. ONERROR_END
  56.  
  57. REQUIRED_START
  58. function _CF_hasValue(obj, obj_type)
  59.     {
  60.     if (obj_type == "TEXT" || obj_type == "PASSWORD")
  61.     {
  62.         if (obj.value.length == 0) 
  63.               return false;
  64.         else 
  65.               return true;
  66.         }
  67.     else if (obj_type == "SELECT")
  68.     {
  69.         for (i=0; i < obj.length; i++)
  70.             {
  71.         if (obj.options[i].selected)
  72.             return true;
  73.         }
  74.  
  75.            return false;    
  76.     }
  77.     else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX")
  78.     {
  79.  
  80.         if (obj.checked)
  81.             return true;
  82.         else
  83.                return false;    
  84.     }
  85.     else if (obj_type == "RADIO" || obj_type == "CHECKBOX")
  86.     {
  87.  
  88.         for (i=0; i < obj.length; i++)
  89.             {
  90.         if (obj[i].checked)
  91.             return true;
  92.         }
  93.  
  94.            return false;    
  95.     }
  96.     }
  97. REQUIRED_END
  98.  
  99. CHECKDATE_START
  100. function _CF_checkdate(object_value)
  101.     {
  102.     //Returns true if value is a date format or is NULL
  103.     //otherwise returns false    
  104.  
  105.     if (object_value.length == 0)
  106.         return true;
  107.  
  108.     //Returns true if value is a date in the mm/dd/yyyy format
  109.     isplit = object_value.indexOf('/');
  110.  
  111.     if (isplit == -1 || isplit == object_value.length)
  112.         return false;
  113.  
  114.     sMonth = object_value.substring(0, isplit);
  115.     isplit = object_value.indexOf('/', isplit + 1);
  116.  
  117.     if (isplit == -1 || (isplit + 1 ) == object_value.length)
  118.         return false;
  119.  
  120.     sDay = object_value.substring((sMonth.length + 1), isplit);
  121.  
  122.     sYear = object_value.substring(isplit + 1);
  123.  
  124.     if (!_CF_checkinteger(sMonth)) //check month
  125.         return false;
  126.     else
  127.     if (!_CF_checkrange(sMonth, 1, 12)) //check month
  128.         return false;
  129.     else
  130.     if (!_CF_checkinteger(sYear)) //check year
  131.         return false;
  132.     else
  133.     if (!_CF_checkrange(sYear, 0, 9999)) //check year
  134.         return false;
  135.     else
  136.     if (!_CF_checkinteger(sDay)) //check day
  137.         return false;
  138.     else
  139.     if (!_CF_checkday(sYear, sMonth, sDay)) // check day
  140.         return false;
  141.     else
  142.         return true;
  143.     }
  144. CHECKDATE_END
  145.  
  146. CHECKEURODATE_START
  147. function _CF_checkeurodate(object_value)
  148.     {
  149.     //Returns true if value is a eurodate format or is NULL
  150.     //otherwise returns false    
  151.  
  152.     if (object_value.length == 0)
  153.         return true;
  154.  
  155.     //Returns true if value is a date in the dd/mm/yyyy format
  156.     isplit = object_value.indexOf('/');
  157.  
  158.     if (isplit == -1 || isplit == object_value.length)
  159.         return false;
  160.  
  161.     sDay = object_value.substring(0, isplit);
  162.     isplit = object_value.indexOf('/', isplit + 1);
  163.  
  164.     if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
  165.         return false;
  166.  
  167.     sMonth = object_value.substring((sDay.length + 1), isplit);
  168.  
  169.     sYear = object_value.substring(isplit + 1);
  170.  
  171.     if (!_CF_checkinteger(sMonth)) //check month
  172.         return false;
  173.     else
  174.     if (!_CF_checkrange(sMonth, 1, 12)) // check month
  175.         return false;
  176.     else
  177.     if (!_CF_checkinteger(sYear)) //check year
  178.         return false;
  179.     else
  180.     if (!_CF_checkrange(sYear, 0, null)) //check year
  181.         return false;
  182.     else
  183.     if (!_CF_checkinteger(sDay)) //check day
  184.         return false;
  185.     else
  186.     if (!_CF_checkday(sYear, sMonth, sDay)) //check day
  187.         return false;
  188.     else
  189.         return true;
  190.     }
  191. CHECKEURODATE_END
  192.  
  193. CHECKDAY_START
  194. function _CF_checkday(checkYear, checkMonth, checkDay)
  195.     {
  196.  
  197.     maxDay = 31;
  198.  
  199.     if (checkMonth == 4 || checkMonth == 6 ||
  200.             checkMonth == 9 || checkMonth == 11)
  201.         maxDay = 30;
  202.     else
  203.     if (checkMonth == 2)
  204.     {
  205.         if (checkYear % 4 > 0)
  206.             maxDay =28;
  207.         else
  208.         if (checkYear % 100 == 0 && checkYear % 400 > 0)
  209.             maxDay = 28;
  210.         else
  211.             maxDay = 29;
  212.     }
  213.  
  214.     return _CF_checkrange(checkDay, 1, maxDay); //check day
  215.     }
  216. CHECKDAY_END
  217.  
  218.  
  219. CHECKINTEGER_START
  220. function _CF_checkinteger(object_value)
  221.     {
  222.     //Returns true if value is a number or is NULL
  223.     //otherwise returns false    
  224.  
  225.     if (object_value.length == 0)
  226.         return true;
  227.  
  228.     //Returns true if value is an integer defined as
  229.     //   having an optional leading + or -.
  230.     //   otherwise containing only the characters 0-9.
  231.     var decimal_format = ".";
  232.     var check_char;
  233.  
  234.     //The first character can be + -  blank or a digit.
  235.     check_char = object_value.indexOf(decimal_format)
  236.     //Was it a decimal?
  237.     if (check_char < 1)
  238.     return _CF_checknumber(object_value);
  239.     else
  240.     return false;
  241.     }
  242. CHECKINTEGER_END
  243.  
  244. CHECKNUMBERRANGE_START
  245. function _CF_numberrange(object_value, min_value, max_value)
  246.     {
  247.     // check minimum
  248.     if (min_value != null)
  249.     {
  250.         if (object_value < min_value)
  251.         return false;
  252.     }
  253.  
  254.     // check maximum
  255.     if (max_value != null)
  256.     {
  257.     if (object_value > max_value)
  258.         return false;
  259.     }
  260.     
  261.     //All tests passed, so...
  262.     return true;
  263.     }
  264. CHECKNUMBERRANGE_END
  265.  
  266. CHECKNUMBER_START
  267. function _CF_checknumber(object_value)
  268.     {
  269.     //Returns true if value is a number or is NULL
  270.     //otherwise returns false    
  271.  
  272.     if (object_value.length == 0)
  273.         return true;
  274.  
  275.     //Returns true if value is a number defined as
  276.     //   having an optional leading + or -.
  277.     //   having at most 1 decimal point.
  278.     //   otherwise containing only the characters 0-9.
  279.     var start_format = " .+-0123456789";
  280.     var number_format = " .0123456789";
  281.     var check_char;
  282.     var decimal = false;
  283.     var trailing_blank = false;
  284.     var digits = false;
  285.  
  286.     //The first character can be + - .  blank or a digit.
  287.     check_char = start_format.indexOf(object_value.charAt(0))
  288.     //Was it a decimal?
  289.     if (check_char == 1)
  290.         decimal = true;
  291.     else if (check_char < 1)
  292.         return false;
  293.         
  294.     //Remaining characters can be only . or a digit, but only one decimal.
  295.     for (var i = 1; i < object_value.length; i++)
  296.     {
  297.         check_char = number_format.indexOf(object_value.charAt(i))
  298.         if (check_char < 0)
  299.             return false;
  300.         else if (check_char == 1)
  301.         {
  302.             if (decimal)        // Second decimal.
  303.                 return false;
  304.             else
  305.                 decimal = true;
  306.         }
  307.         else if (check_char == 0)
  308.         {
  309.             if (decimal || digits)    
  310.                 trailing_blank = true;
  311.         // ignore leading blanks
  312.  
  313.         }
  314.             else if (trailing_blank)
  315.             return false;
  316.         else
  317.             digits = true;
  318.     }    
  319.     //All tests passed, so...
  320.     return true
  321.     }
  322. CHECKNUMBER_END
  323.  
  324. CHECKRANGE_START
  325. function _CF_checkrange(object_value, min_value, max_value)
  326.     {
  327.     //if value is in range then return true else return false
  328.  
  329.     if (object_value.length == 0)
  330.         return true;
  331.  
  332.  
  333.     if (!_CF_checknumber(object_value))
  334.     {
  335.     return false;
  336.     }
  337.     else
  338.     {
  339.     return (_CF_numberrange((eval(object_value)), min_value, max_value));
  340.     }
  341.     
  342.     //All tests passed, so...
  343.     return true;
  344.     }
  345. CHECKRANGE_END 
  346.  
  347. CHECKTIME_START
  348. function _CF_checktime(object_value)
  349.     {
  350.     //Returns true if value is in time format or is NULL
  351.     //otherwise returns false    
  352.  
  353.     if (object_value.length == 0)
  354.         return true;
  355.  
  356.     //Returns true if value is a date in the mm/dd/yyyy format
  357.     isplit = object_value.indexOf(':');
  358.  
  359.     if (isplit == -1 || isplit == object_value.length)
  360.         return false;
  361.  
  362.     sHour = object_value.substring(0, isplit);
  363.     iminute = object_value.indexOf(':', isplit + 1);
  364.  
  365.     if (iminute == -1 || iminute == object_value.length)
  366.         sMin = object_value.substring((sHour.length + 1));
  367.     else
  368.         sMin = object_value.substring((sHour.length + 1), iminute);
  369.  
  370.     if (!_CF_checkinteger(sHour)) //check hour
  371.         return false;
  372.     else
  373.     if (!_CF_checkrange(sHour, 0, 23)) //check hour
  374.         return false;
  375.  
  376.     if (!_CF_checkinteger(sMin)) //check minutes
  377.         return false;
  378.     else
  379.     if (!_CF_checkrange(sMin, 0, 59)) // check minutes
  380.         return false;
  381.  
  382.     // did they specify seconds
  383.     if (iminute != -1)
  384.     {
  385.         sSec = object_value.substring(iminute + 1);
  386.  
  387.         if (!_CF_checkinteger(sSec)) //check seconds
  388.             return false;
  389.         else
  390.         if (!_CF_checkrange(sSec, 0, 59)) //check seconds
  391.             return false;    
  392.     }
  393.     
  394.     return true;
  395.     }
  396.     CHECKTIME_END
  397.  
  398. CHECKPHONENUMBER_START
  399. function _CF_checkphone(object_value)
  400.     {
  401.     if (object_value.length == 0)
  402.         return true;
  403.         
  404.     if (object_value.length != 12)
  405.         return false;
  406.  
  407.     // check if first 3 characters represent a valid area code
  408.     if (!_CF_checknumber(object_value.substring(0,3)))
  409.         return false;
  410.     else
  411.     if (!_CF_numberrange((eval(object_value.substring(0,3))), 100, 1000))
  412.         return false;
  413.  
  414.     // check if area code/exchange separator is either a'-' or ' '
  415.     if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
  416.         return false
  417.  
  418.     // check if  characters 5 - 7 represent a valid exchange
  419.     if (!_CF_checknumber(object_value.substring(4,7)))
  420.         return false;
  421.     else
  422.     if (!_CF_numberrange((eval(object_value.substring(4,7))), 100, 1000))
  423.         return false;
  424.     
  425.     // check if exchange/number separator is either a'-' or ' '
  426.     if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ")
  427.         return false;
  428.  
  429.     // make sure last for digits are a valid integer
  430.     if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+")
  431.         return false;
  432.     else
  433.     {
  434.         return (_CF_checkinteger(object_value.substring(8,12)));
  435.     }
  436.     }
  437. CHECKPHONENUMBER_END 
  438.  
  439. CHECKZIPCODE_START
  440. function _CF_checkzip(object_value)
  441.     {
  442.     if (object_value.length == 0)
  443.         return true;
  444.         
  445.     if (object_value.length != 5 && object_value.length != 10)
  446.         return false;
  447.  
  448.     // make sure first 5 digits are a valid integer
  449.     if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
  450.         return false;
  451.  
  452.     if (!_CF_checkinteger(object_value.substring(0,5)))
  453.         return false;
  454.  
  455.     if (object_value.length == 5)
  456.         return true;
  457.     
  458.     // make sure
  459.  
  460.     // check if separator is either a'-' or ' '
  461.     if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
  462.         return false;
  463.  
  464.     // check if last 4 digits are a valid integer
  465.     if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
  466.         return false;
  467.  
  468.     return (_CF_checkinteger(object_value.substring(6,10)));
  469.     }
  470. CHECKZIPCODE_END 
  471.  
  472. CHECKCREDITCARD_START
  473. function _CF_checkcreditcard(object_value)
  474.     {
  475.     var white_space = " -";
  476.     var creditcard_string="";
  477.     var check_char;
  478.  
  479.  
  480.     if (object_value.length == 0)
  481.         return true;
  482.  
  483.     // squish out the white space
  484.     for (var i = 0; i < object_value.length; i++)
  485.     {
  486.         check_char = white_space.indexOf(object_value.charAt(i))
  487.         if (check_char < 0)
  488.             creditcard_string += object_value.substring(i, (i + 1));
  489.     }    
  490.  
  491.     // if all white space return error
  492.     if (creditcard_string.length == 0)
  493.         return false;
  494.      
  495.          
  496.     // make sure number is a valid integer
  497.     if (creditcard_string.charAt(0) == "+")
  498.         return false;
  499.  
  500.     if (!_CF_checkinteger(creditcard_string))
  501.         return false;
  502.  
  503.     // now check mod10
  504.  
  505.     var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
  506.     var checkdigit = 0;
  507.     var tempdigit;
  508.  
  509.     for (var i = 0; i < creditcard_string.length; i++)
  510.     {
  511.         tempdigit = eval(creditcard_string.charAt(i))
  512.  
  513.         if (doubledigit)
  514.         {
  515.             tempdigit *= 2;
  516.             checkdigit += (tempdigit % 10);
  517.  
  518.             if ((tempdigit / 10) >= 1.0)
  519.             {
  520.                 checkdigit++;
  521.             }
  522.  
  523.             doubledigit = false;
  524.         }
  525.         else
  526.         {
  527.             checkdigit += tempdigit;
  528.             doubledigit = true;
  529.         }
  530.     }    
  531.     return (checkdigit % 10) == 0 ? true : false;
  532.  
  533.     }
  534. CHECKCREDITCARD_END 
  535.  
  536.  
  537. CHECKSSC_START
  538. function _CF_checkssc(object_value)
  539.     {
  540.     var white_space = " -+.";
  541.     var ssc_string="";
  542.     var check_char;
  543.  
  544.  
  545.     if (object_value.length == 0)
  546.         return true;
  547.  
  548.     if (object_value.length != 11)
  549.         return false;
  550.  
  551.     // make sure white space is valid
  552.     if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
  553.         return false;
  554.  
  555.     if (object_value.charAt(6) != "-" && object_value.charAt(6) != " ")
  556.         return false;
  557.  
  558.      
  559.     // squish out the white space
  560.     for (var i = 0; i < object_value.length; i++)
  561.     {
  562.         check_char = white_space.indexOf(object_value.charAt(i))
  563.         if (check_char < 0)
  564.             ssc_string += object_value.substring(i, (i + 1));
  565.     }    
  566.  
  567.     // if all white space return error
  568.     if (ssc_string.length != 9)
  569.         return false;
  570.      
  571.          
  572.     // make sure number is a valid integer
  573.     if (!_CF_checkinteger(ssc_string))
  574.         return false;
  575.  
  576.     return true;
  577.  
  578.     }
  579. CHECKSSC_END 
  580.  
  581.