Using Modulus 11 Self-Check Digits PHP module.
http://www.eclectica.ca/howto/modulus-11-self-check.php
function GenMOD11( $base_val )
{
$result = "";
$weight = array( 2, 3, 4, 5, 6, 7,
2, 3, 4, 5, 6, 7,
2, 3, 4, 5, 6, 7,
2, 3, 4, 5, 6, 7 );
$reversed_base_val = strrev( $base_val );
for ( $i = 0, $sum = 0; $i < strlen( $reversed_base_val ); $i++ )
{
$sum += substr( $reversed_base_val, $i, 1 ) * $weight[ $i ];
}
$remainder = $sum % 11;
switch ( $remainder )
{
case 0:
$result = $base_val . 0;
break;
case 1:
$result = "n/a";
break;
default:
$check_digit = 11 - $remainder;
$result = $base_val . $check_digit;
break;
}
return $result;
}
Tying convert php code to JavaScript. This is my code , but it not give correct result:
<script type='text/javascript'>
jQuery(document).ready(function($) {
function GenMOD11F( base_val )
{
var result = "";
var weight = [ 2, 3, 4, 5, 6, 7,
2, 3, 4, 5, 6, 7,
2, 3, 4, 5, 6, 7,
2, 3, 4, 5, 6, 7 ];
var reversed_base_val = parseInt(base_val.toString().split('').reverse().join(''));
var i, sum;
for ( i = 0, sum = 0; i < reversed_base_val.length; i++ )
{
sum += reversed_base_val.substring(i, 1) * weight[i];
}
var remainder = sum % 11;
switch ( remainder)
{
case 0:
result = base_val+0;
break;
case 1:
result = "n/a";
break;
default:
var check_digit = 11 - remainder;
result = base_val.check_digit;
break;
}
return result;
}
});
</script>
For ex. When using php function
GenMOD11(123240657) it gives 1232406573
Using JavaScript GenMOD11(123240657) it gives 123240657