diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
commit | e44a7e37b6c7b5961adaffc62b9042b8d442938e (patch) | |
tree | 95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/validate/isbn.js | |
parent | a62b9742ee5e28bcec6872d88f50f25b820914f6 (diff) | |
download | semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.bz2 |
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/validate/isbn.js')
-rw-r--r-- | includes/js/dojox/validate/isbn.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/includes/js/dojox/validate/isbn.js b/includes/js/dojox/validate/isbn.js new file mode 100644 index 0000000..030c7cf --- /dev/null +++ b/includes/js/dojox/validate/isbn.js @@ -0,0 +1,37 @@ +if(!dojo._hasResource["dojox.validate.isbn"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.validate.isbn"] = true; +dojo.provide("dojox.validate.isbn"); + +dojox.validate.isValidIsbn = function(/* String */value) { + // summary: Vadlidate ISBN-10 or ISBN-13 based on the length of value + // returns: Boolean + var len, sum, weight; + if(typeof value!='string'){ + value = String(value); + } + value = value.replace(/[- ]/g,''); //ignore dashes and whitespaces + len = value.length; + sum = 0; + if(len == 10){ + weight = 10; + // ISBN-10 validation algorithm + for(var i = 0; i< 9; i++){ + sum += parseInt(value.charAt(i)) * weight; + weight --; + } + var t = value.charAt(9).toUpperCase(); + sum += t == 'X' ? 10 : parseInt(t); + return sum % 11 == 0; + }else if(len == 13) { + weight = -1; + for(var i=0; i< len; i++){ + sum += parseInt(value.charAt(i)) * (2 + weight); + weight *= -1; + } + return sum % 10 == 0; + }else{ + return false; + } +} + +} |