PageSourceSearch

https://ki-trainingszentrum.com/wp-content/plugins/paid-member-sub…/js/pms-tax-vat-validation.js?ver=1.1.7

js ki-trainingszentrum.com collected 2026-10-04 18:43:28 UTC 2,664 bytes, 92 lines download raw bytes

1window.PMSTaxVatValidation = ( function( $, window ) {
2
3    function normalizeVatNumber( country, vatNumber ) {
4        vatNumber = String( vatNumber || '' ).trim().toUpperCase();
5
6        if( country && vatNumber.indexOf( country ) === 0 )
7            vatNumber = vatNumber.substring( country.length );
8
9        return vatNumber;
10    }
11
12    function getMinimumLength( country, minimumCharacters ) {
13        minimumCharacters = minimumCharacters || {};
14
15        if( country && minimumCharacters[country] )
16            return minimumCharacters[country];
17
18        return minimumCharacters.default || 8;
19    }
20
21    function validate( args ) {
22        var deferred = $.Deferred();
23        var country = args.country || '';
24        var vatNumber = normalizeVatNumber( country, args.vatNumber );
25        var minimumLength = getMinimumLength( country, args.minimumCharacters );
26
27        if( !country || !vatNumber ) {
28            deferred.resolve({
29                status: 'empty',
30                country: country,
31                vatNumber: vatNumber
32            });
33
34            return deferred.promise();
35        }
36
37        if( vatNumber.length < minimumLength ) {
38            deferred.resolve({
39                status: 'too_short',
40                country: country,
41                vatNumber: vatNumber
42            });
43
44            return deferred.promise();
45        }
46
47        $.post( args.ajaxUrl, {
48            action: 'pms_tax_validate_vat',
49            pms_nonce: args.nonce || '',
50            vatNumber: vatNumber,
51            vatCountry: country
52        }, function( response ) {
53            if( !response ) {
54                deferred.resolve({
55                    status: 'invalid',
56                    country: country,
57                    vatNumber: vatNumber
58                });
59
60                return;
61            }
62
63            try {
64                response = typeof response === 'string' ? JSON.parse( response ) : response;
65            } catch( error ) {
66                response = { status: 'invalid' };
67            }
68
69            deferred.resolve({
70                status: response.status === 'valid' ? 'valid' : 'invalid',
71                country: country,
72                vatNumber: vatNumber,
73                response: response
74            });
75        }).fail( function() {
76            deferred.resolve({
77                status: 'invalid',
78                country: country,
79                vatNumber: vatNumber
80            });
81        });
82
83        return deferred.promise();
84    }
85
86    return {
87        normalizeVatNumber: normalizeVatNumber,
88        getMinimumLength: getMinimumLength,
89        validate: validate
90    };
91
92})( jQuery, window );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.