From e44a7e37b6c7b5961adaffc62b9042b8d442938e Mon Sep 17 00:00:00 2001 From: mensonge Date: Thu, 13 Nov 2008 09:49:11 +0000 Subject: 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 --- includes/js/dojox/validate/isbn.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 includes/js/dojox/validate/isbn.js (limited to 'includes/js/dojox/validate/isbn.js') 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; + } +} + +} -- cgit v1.2.3