summaryrefslogtreecommitdiff
path: root/includes/js/dojox/validate/isbn.js
diff options
context:
space:
mode:
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>2008-11-13 09:49:11 +0000
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>2008-11-13 09:49:11 +0000
commite44a7e37b6c7b5961adaffc62b9042b8d442938e (patch)
tree95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/validate/isbn.js
parenta62b9742ee5e28bcec6872d88f50f25b820914f6 (diff)
downloadsemanticscuttle-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.js37
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;
+ }
+}
+
+}