-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathisbnSuite.1.0.min.js
8 lines (8 loc) · 2.17 KB
/
isbnSuite.1.0.min.js
1
2
3
4
5
6
7
8
/*
* Suite de herramientas para trabajar con ISBN10 e ISBN13
* Autor: [email protected]
* Fecha: 7-2-2014
*
*
* */
var isbnTools=function(){function t(){this.ISBN10digit=function(e){var t=0;for(charPos=0;charPos<=8;charPos++)t=t+(charPos+1)*parseInt(e.substring(charPos,charPos+1));var n=t-parseInt(t/11)*11;return String(n==10?"X":n)};this.ISBN13digit=function(e){var t=0;for(charPos=e.length-1;charPos>=0;charPos--){if(charPos/2==parseInt(charPos/2))t=t+parseInt(e.substring(charPos,charPos+1));else t=t+3*parseInt(e.substring(charPos,charPos+1))}var n=t-parseInt(t/10)*10;return n==0?"0":String(10-n)}}function n(){this.isbn10=function(e){};this.isbn13=function(e){}}function r(){this.isbn10=function(e){return e.length==10};this.isbn13=function(e){return e.length==13};this.validISBN10=function(t){var n=e.getDigit(t);t=e.getISBNwithoutDigit(t);return n==e.calculate.ISBN10digit(t)};this.validISBN13=function(t){var n=e.getDigit(t);t=e.getISBNwithoutDigit(t);return n==e.calculate.ISBN13digit(t)}}function i(t){this.byGuess=function(t){if(e.loadISBN(t)){if(e.is.isbn10(t)){if(!e.is.validISBN10(t))return e.error(2,"El isbn10 ingresado no es correcto");return e.convert.isbn10to13(t)}else if(e.is.isbn13(t)){if(!e.is.validISBN13(t))return e.error(3,"El isbn13 ingresado no es correcto");return e.convert.isbn13to10(t)}}else return false};this.isbn10to13=function(t){isbn12="978"+e.getISBNwithoutDigit(t);return isbn12+e.calculate.ISBN13digit(isbn12)};this.isbn13to10=function(t){var n=e.getISBNwithoutDigit(t);var r=n.substr(3,9);return r+e.calculate.ISBN10digit(r)}}function s(){this.removeDigit=function(e){};this.cleanIsbn=function(e){return e.replace(/[^\dX]/gi,"")}}var e=this;this.errorcode=0;this.errormsg=null;this.getDigit=function(e){return e.substr(e.length-1,1)};this.getISBNwithoutDigit=function(e){return e.substr(0,e.length-1)};this.loadISBN=function(t){t=e.parse.cleanIsbn(t);if(t.length!=10&&t.length!=13)return e.error(1,"El isbn no es correcto en su longitud.");return true};this.error=function(t,n){e.errorcode=t;e.errormsg=n;try{console.debug(n)}catch(r){}return false};this.calculate=new t;this.check=new n;this.is=new r;this.convert=new i;this.parse=new s};var isbnTools=new isbnTools