1 sdump('D_TRACE',"Loading validate.js\n");
3 function textbox_checkdigit(ev) {
4 if ( check_checkdigit( ev.target.value ) ) {
5 sdump('D_VALIDATE', 'success\n');
8 sdump('D_VALIDATE', 'failure\n');
15 function check_checkdigit(barcode) {
17 var stripped_barcode = barcode.slice(0,-1);
18 var checkdigit = barcode.slice(-1);
20 sdump('D_VALIDATE', '\n\n=-=***=-=\n\ncheck_checkdigit: barcode = ' + barcode + ' barcode stripped = ' + stripped_barcode + ' checkdigit = ' + checkdigit + '\n');
22 var sum = 0; var mul = 2;
24 var b_array = string_to_array( stripped_barcode ).reverse();
25 sdump('D_VALIDATE', '\tb_array = ' + b_array + '\n');
27 for (var i in b_array) {
28 var digit = parseInt( b_array[i] );
29 sdump('D_VALIDATE', '\t\tdigit = ' + digit + '\n');
31 var product = digit * mul;
32 if (mul == 2) { mul = 1; } else { mul = 2; }
34 var p_array = string_to_array( product.toString() );
35 sdump('D_VALIDATE', '\t\tp_array = ' + p_array + '\n');
37 for (var j in p_array) {
38 var n = parseInt( p_array[j] );
39 sdump('D_VALIDATE', '\t\t\tn = ' + n + '\n');
44 sdump('D_VALIDATE', '\tsum = ' + sum + '\n');
46 var s_array = string_to_array( sum.toString() );
47 var calculated_checkdigit = s_array.pop();
48 if (calculated_checkdigit > 0) calculated_checkdigit = 10 - calculated_checkdigit;
49 sdump('D_VALIDATE', '\tcalculated checkdigit = ' + calculated_checkdigit + '\n\n=-=***=-=\n\n');
51 return ( calculated_checkdigit == checkdigit );