summaryrefslogtreecommitdiff
path: root/js/dojo-1.6/dojox/validate/br.js
diff options
context:
space:
mode:
authorTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
committerTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
commitb62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch)
tree86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /js/dojo-1.6/dojox/validate/br.js
Initial commit of intern.ccwn.org contentsHEADmaster
Diffstat (limited to 'js/dojo-1.6/dojox/validate/br.js')
-rw-r--r--js/dojo-1.6/dojox/validate/br.js286
1 files changed, 286 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/validate/br.js b/js/dojo-1.6/dojox/validate/br.js
new file mode 100644
index 0000000..daf0b40
--- /dev/null
+++ b/js/dojo-1.6/dojox/validate/br.js
@@ -0,0 +1,286 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.validate.br"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.validate.br"] = true;
+dojo.provide("dojox.validate.br");
+dojo.require("dojox.validate._base");
+
+dojox.validate.br.isValidCnpj = function(/*String*/value){
+ // summary:
+ // Validates a CNPJ/CGC number
+ //
+ // value: String
+ // The CNPJ/CGC number in ##.###.###/####-##, ########/####-##,
+ // ############-## or ############## format
+ if(!dojo.isString(value)){
+ if(!value){
+ return false;
+ }
+ value = value + "";
+ while(value.length < 14){
+ value = "0" + value;
+ }
+ }
+ var flags = {
+ format: [
+ "##.###.###/####-##",
+ "########/####-##",
+ "############-##",
+ "##############"
+ ]
+ };
+ if(dojox.validate.isNumberFormat(value, flags)){
+ // Matched the initial test, so break this down into the
+ // parts to be validated.
+ value = value.replace("/", "").replace(/\./g, "").replace("-", "");
+ var cgc = [];
+ var dv = [];
+ var i, j, tmp;
+
+ // Check for obvious bad combos
+ // all 0s to all 9's.
+ for(i = 0; i < 10; i++){
+ tmp = "";
+ for(j = 0; j < value.length; j++){
+ tmp += "" + i;
+ }
+ if(value === tmp){
+ return false;
+ }
+ }
+
+ //Split out the DV from the main number.
+ for(i = 0; i < 12; i++){
+ cgc.push(parseInt(value.charAt(i), 10));
+ }
+ for(i = 12; i < 14; i++){
+ dv.push(parseInt(value.charAt(i), 10));
+ }
+
+ var base = [9,8,7,6,5,4,3,2,9,8,7,6].reverse();
+ var sum = 0;
+ for(i = 0; i < cgc.length; i++){
+ sum += cgc[i] * base[i];
+ }
+ var dv0 = sum % 11;
+ if(dv0 == dv[0]){
+ // Still seems valid, keep going.
+ sum = 0;
+ base = [9,8,7,6,5,4,3,2,9,8,7,6,5].reverse();
+ cgc.push(dv0);
+ for(i = 0; i < cgc.length; i++){
+ sum += cgc[i] * base[i];
+ }
+ var dv1 = sum % 11;
+ if(dv1 === dv[1]){
+ // Whew, looks valid.
+ return true;
+ }
+ }
+ }
+ return false;
+};
+
+dojox.validate.br.computeCnpjDv = function(/*String*/value){
+ // summary: Generate the DV code (checksum part) for a Cnpj number
+ //
+ // value: The CGC number in ##.###.###/#### or ############ format
+ if(!dojo.isString(value)){
+ if(!value){
+ return "";
+ }
+ value = value + "";
+ while(value.length < 12){
+ value = "0" + value;
+ }
+ }
+ var flags = {
+ format: [
+ "##.###.###/####",
+ "########/####",
+ "############"
+ ]
+ };
+ if(dojox.validate.isNumberFormat(value, flags)){
+ // Matched the initial test, so break this down into the
+ // parts to compute the DV.
+ value = value.replace("/", "").replace(/\./g, "");
+ var cgc = [];
+ var i, j, tmp;
+
+ // Check for obvious bad combos
+ // all 0s to all 9's.
+ for(i = 0; i < 10; i++){
+ tmp = "";
+ for(j = 0; j < value.length; j++){
+ tmp += "" + i;
+ }
+ if(value === tmp){
+ return "";
+ }
+ }
+
+ for(i = 0; i < value.length; i++){
+ cgc.push(parseInt(value.charAt(i), 10));
+ }
+ var base = [9,8,7,6,5,4,3,2,9,8,7,6].reverse();
+ var sum = 0;
+ for(i = 0; i < cgc.length; i++){
+ sum += cgc[i] * base[i];
+ }
+ var dv0 = sum % 11;
+ sum = 0;
+ base = [9,8,7,6,5,4,3,2,9,8,7,6,5].reverse();
+ cgc.push(dv0);
+ for(i = 0; i < cgc.length; i++){
+ sum += cgc[i] * base[i];
+ }
+ var dv1 = sum % 11;
+ return ("" + dv0) + dv1;
+ }
+ return "";
+};
+
+
+dojox.validate.br.isValidCpf = function(/*String*/value){
+ // summary:
+ // Validates a CPF number
+ //
+ // value: String
+ // The CPF number in #########-## or ###########,
+ // format
+ if(!dojo.isString(value)){
+ if(!value){
+ return false;
+ }
+ value = value + "";
+ while(value.length < 11){
+ value = "0" + value;
+ }
+ }
+ var flags = {
+ format: [
+ "###.###.###-##",
+ "#########-##",
+ "###########"
+ ]
+ };
+ if(dojox.validate.isNumberFormat(value, flags)){
+ // Matched the initial test, so break this down into the
+ // parts to be validated.
+ value = value.replace("-", "").replace(/\./g, "");
+ var cpf = [];
+ var dv = [];
+ var i, j, tmp;
+
+ // Check for obvious bad combos
+ // all 0s to all 9's.
+ for(i = 0; i < 10; i++){
+ tmp = "";
+ for(j = 0; j < value.length; j++){
+ tmp += "" + i;
+ }
+ if(value === tmp){
+ return false;
+ }
+ }
+
+ //Split out the DV from the main number.
+ for(i = 0; i < 9; i++){
+ cpf.push(parseInt(value.charAt(i), 10));
+ }
+ for(i = 9; i < 12; i++){
+ dv.push(parseInt(value.charAt(i), 10));
+ }
+
+ var base = [9,8,7,6,5,4,3,2,1].reverse();
+ var sum = 0;
+ for(i = 0; i < cpf.length; i++){
+ sum += cpf[i] * base[i];
+ }
+ var dv0 = sum % 11;
+ if(dv0 == dv[0]){
+ // Still seems valid, keep going.
+ sum = 0;
+ base = [9,8,7,6,5,4,3,2,1,0].reverse();
+ cpf.push(dv0);
+ for(i = 0; i < cpf.length; i++){
+ sum += cpf[i] * base[i];
+ }
+ var dv1 = sum % 11;
+ if(dv1 === dv[1]){
+ // Whew, looks valid.
+ return true;
+ }
+ }
+ }
+ return false;
+};
+
+dojox.validate.br.computeCpfDv = function(/*String*/value){
+ // summary:
+ // Generate the DV code (checksum part) for a CPF number
+ //
+ // value: String
+ // The CPF number in ######### format
+ if(!dojo.isString(value)){
+ if(!value){
+ return "";
+ }
+ value = value + "";
+ while(value.length < 9){
+ value = "0" + value;
+ }
+ }
+ var flags = {
+ format: [
+ "###.###.###",
+ "#########"
+ ]
+ };
+ if(dojox.validate.isNumberFormat(value, flags)){
+ // Matched the initial test, so break this down into the
+ // parts to compute the DV.
+ value = value.replace(/\./g, "");
+ var cpf = [];
+
+ // Check for obvious bad combos
+ // all 0s to all 9's.
+ for(i = 0; i < 10; i++){
+ tmp = "";
+ for(j = 0; j < value.length; j++){
+ tmp += "" + i;
+ }
+ if(value === tmp){
+ return "";
+ }
+ }
+
+ for(i = 0; i < value.length; i++){
+ cpf.push(parseInt(value.charAt(i), 10));
+ }
+ var base = [9,8,7,6,5,4,3,2,1].reverse();
+ var sum = 0;
+ for(i = 0; i < cpf.length; i++){
+ sum += cpf[i] * base[i];
+ }
+ var dv0 = sum % 11;
+ sum = 0;
+ base = [9,8,7,6,5,4,3,2,1,0].reverse();
+ cpf.push(dv0);
+ for(i = 0; i < cpf.length; i++){
+ sum += cpf[i] * base[i];
+ }
+ var dv1 = sum % 11;
+ return ("" + dv0) + dv1;
+ }
+ return "";
+};
+
+
+}