1 sdump('D_TRACE',"Loading validate.js\n");
3 function valid_year_month_day(year,month,day) {
4 var date = new Date(year,month-1,day);
6 (date.getFullYear() == year) &&
7 (date.getMonth()+1 == month) &&
8 (date.getDate() == day)
12 function textbox_checkdigit(ev) {
13 if ( check_checkdigit( ev.target.value ) ) {
14 sdump('D_VALIDATE', 'success\n');
17 sdump('D_VALIDATE', 'failure\n');
24 function check_checkdigit(barcode) {
26 var stripped_barcode = barcode.slice(0,-1);
27 var checkdigit = barcode.slice(-1);
29 sdump('D_VALIDATE', '\n\n=-=***=-=\n\ncheck_checkdigit: barcode = ' + barcode + ' barcode stripped = ' + stripped_barcode + ' checkdigit = ' + checkdigit + '\n');
31 var sum = 0; var mul = 2;
33 var b_array = string_to_array( stripped_barcode ).reverse();
34 sdump('D_VALIDATE', '\tb_array = ' + b_array + '\n');
36 for (var i in b_array) {
37 var digit = parseInt( b_array[i] );
38 sdump('D_VALIDATE', '\t\tdigit = ' + digit + '\n');
40 var product = digit * mul;
41 if (mul == 2) { mul = 1; } else { mul = 2; }
43 var p_array = string_to_array( product.toString() );
44 sdump('D_VALIDATE', '\t\tp_array = ' + p_array + '\n');
46 for (var j in p_array) {
47 var n = parseInt( p_array[j] );
48 sdump('D_VALIDATE', '\t\t\tn = ' + n + '\n');
53 sdump('D_VALIDATE', '\tsum = ' + sum + '\n');
55 var s_array = string_to_array( sum.toString() );
56 var calculated_checkdigit = s_array.pop();
57 if (calculated_checkdigit > 0) calculated_checkdigit = 10 - calculated_checkdigit;
58 sdump('D_VALIDATE', '\tcalculated checkdigit = ' + calculated_checkdigit + '\n\n=-=***=-=\n\n');
60 return ( calculated_checkdigit == checkdigit );