]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/validate/isbn.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / validate / isbn.js
diff --git a/static/dojo-release-1.1.1/dojox/validate/isbn.js b/static/dojo-release-1.1.1/dojox/validate/isbn.js
new file mode 100644 (file)
index 0000000..030c7cf
--- /dev/null
@@ -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;
+       }
+}
+
+}