$.validator.methods.min = function(value, element, param) { return (value>param); }; $.validator.addMethod("isValidFullName", function(value) { value = value.trim(); value = value.toUpperCase(); var len = value.length; if(value.indexOf(" ")<2 || value.indexOf("DFG")!=-1 || value.indexOf("FGH")!=-1 || len<5) return(false); if(/[^0-9]+$/i.test(value)==false) return(false); var tmp = value.match(/[AEIOUY]/g); var vowels = tmp ? tmp.length : 0; var tmp = value.match(/[BCDFGHJKLMNÑPQRSTVWXZ]/g); var consonants = tmp ? tmp.length : 0; if(vowels==0 || consonants==0 || (vowels/consonants*100)<5) return false; return(true); }, "O nome indicado não é válido; deve ser coerente, composto por nome e sobrenome."); $.validator.addMethod("isValidPassport", function(value) { value = value.trim(); value = value.toUpperCase(); return(true); }, "O número de documento apresentado não parece válido, por favor a verificar. Lembramos que somente os documentos reconhecidos pelas autoridades são aceitos."); var userMessage = "O número de documento apresentado não parece válido, por favor a verificar. Lembramos que somente os documentos reconhecidos pelas autoridades são aceitos."; var userMessageFunc = function() { return userMessage; }; $.validator.addMethod("isValidPassportNationality", function(passport, element) { nationality = $(element).closest('.form-table').find('.select-nationality').val(); resident = ($(element).closest('.form-table').find('.check-resident').prop('checked')) ? 1 : 0; passport = passport.trim(); passport = passport.toUpperCase(); passport = passport.replace(/ +/g, ''); passport = passport.replace(/\.+/g, ''); passport = passport.replace(/\-+/g, ''); if(nationality=='' || passport=='') return true; var numbers = (passport.match(/\d/g) || []).length; if(nationality!='DE' && nationality!='NL' && numbers<2) // L'Allemagne et la Hollande ne peuvent avoir que des lettres { userMessage = "O número de documento apresentado não parece válido, por favor a verificar. Lembramos que somente os documentos reconhecidos pelas autoridades são aceitos."; return false; } if(resident) { var preg = "^([0-9]{6,9}|[0-9]{4}\/[0-9]{2})$"; if(passport.match(preg)==null) { userMessage = "O número indicado não corresponde ao formato atual para residentes. Lembramos que se você indicar que é um Residente, deverá ter residência legal no Peru e um cartão de estrangeiro (CE) ou imigrante (CI)."; return false; } return true; } var fmt = []; fmt['IE'] = "[A-Z]{1,2}[0-9]{6,7}"; fmt['NO'] = "[0-9]{8}"; fmt['AR'] = "([A-Z]?[0-9]{7,9}[A-Z]?|[A-Z]{3}[0-9]{6})"; fmt['AU'] = "[A-Z]{1,2}[0-9]{7}"; fmt['AT'] = "[A-Z][0-9]{7,8}"; fmt['BE'] = "[A-Z][A-Z][0-9]{6,7}"; fmt['BR'] = "[A-Z]{0,2}[0-9]{6,12}[A-Z]?"; fmt['CA'] = "[A-Z]{2}[0-9]{6,7}"; fmt['CL'] = "[0-9]{7,10}[A-Z]?"; fmt['CN'] = "[A-Z]{0,2}[0-9]{6,9}"; fmt['CO'] = "[A-Z]{0,2}[0-9]{6,11}"; fmt['CR'] = "[0-9]{9}"; fmt['CZ'] = "[0-9]{8}"; fmt['DK'] = "[0-9]{9}"; fmt['DO'] = "[A-Z]{2}[0-9]{7}"; fmt['EC'] = "([A-Z]?[0-9]{9,10}|[A-Z0-9]*)"; fmt['FI'] = "[A-Z]{0,2}[0-9]{7,8}"; fmt['FR'] = "[0-9]{2}[A-Z]{2}[0-9]{5,6}[A-Z]?"; fmt['DE'] = "([A-Z0-9]*|[0-9]{9,10})"; fmt['GR'] = "[A-Z]{2}[0-9]{7}"; fmt['HK'] = "[A-Z]{1,2}[0-9]{7,8}"; fmt['HU'] = "[A-Z]{1,2}[0-9]{6,8}"; fmt['IS'] = "[A-Z][0-9]{7}"; fmt['IN'] = "[A-Z][0-9]{7,8}"; fmt['IL'] = "[0-9]{7,8}"; fmt['IT'] = "[A-Z]{0,2}[0-9]{6,8}[A-Z]?"; fmt['JP'] = "[A-Z]{2}[0-9]{7}"; fmt['KR'] = "[A-Z]?[A-Z]?[0-9]{7,8}"; fmt['MY'] = "[A-Z][0-9]{8}"; fmt['MX'] = "[A-Z]?[0-9]{8,12}"; fmt['NL'] = "[A-Z]{2}[A-Z0-9]{7}"; fmt['NZ'] = "[A-Z]{1,2}[0-9]{6}"; fmt['PA'] = "[A-Z]{0,2}[0-9]{7}"; fmt['PE'] = "(PC[0-9]{5}|[0-9]{7,8})"; fmt['PL'] = "[A-Z]{2}[0-9]{7}"; fmt['PT'] = "[A-Z]{1,2}[0-9]{6,7}"; fmt['PR'] = "[0-9]{7,9}"; fmt['RU'] = "[0-9]{2}[A-Z]?[0-9]{7}"; fmt['SG'] = "[A-Z][0-9]{7}[A-Z]"; fmt['ZA'] = "[A-Z]?[0-9]{8,9}[A-Z]?"; fmt['ES'] = "[A-Z]{0,3}[0-9]{6,10}[A-Z]?"; fmt['SE'] = "[A-Z]{0,2}[0-9]{7,8}"; fmt['CH'] = "[A-Z][0-9]{7}"; fmt['TW'] = "[0-9]{9}"; fmt['GB'] = "[0-9]{9}"; fmt['US'] = "[A-Z]{0,2}[0-9]{8,11}"; fmt['VE'] = "[A-Z]?[0-9]{7,9}"; if(fmt[nationality]==null) return true; preg = "^("+fmt[nationality]+")$"; if(passport.match(preg)==null) { userMessage = "O número do documento indicado não corresponde ao formato atual do país indicado. Por favor, verifique o número e a nacionalidade informados. Lembramos que somente documentos reconhecidos pelas Autoridades são aceitos."; return false; } return true; }, userMessageFunc); $.validator.addMethod("isValidPhone", function(phone_number, element) { phone_number = phone_number.replace(/(\.|\-|\ )/g, ''); return this.optional(element) || phone_number.length > 6 && phone_number.match(/^(\+?[0-9]{7,12})$/); }, "O número de telefone não é válido."); $.validator.addMethod("isValidID", function(id, element) { if(id=='' || this.optional(element)) return true; var retval = false; $.ajax({ url: '/general/scripts/check_valid_id.php?id='+id, async: false, dataType: 'text', success: function(data) { retval = (data=='1'); }, error: function(data) { retval = false; } }); return(retval); }, "O número de reserva / compra não corresponde a nenhum arquivo."); $.validator.addMethod("FullNameRequired", $.validator.methods.required, "Você não indicado o nome."); $.validator.addMethod("FullNameMinlength", $.validator.methods.minlength, "Você deve indicar o nome completo (nome e sobrenome)."); $.validator.addClassRules("FullNameCheck", { FullNameRequired: true, FullNameMinlength: 5, isValidFullName: true }); $.validator.addMethod("EmailRequired", $.validator.methods.required, "Você não indicou o email."); $.validator.addMethod("EmailValid", $.validator.methods.email, "O endereço do e-mail está incorreto."); $.validator.addClassRules("EmailCheck", { EmailRequired: true, EmailValid: true }); $.validator.addMethod("PassportRequired", $.validator.methods.required, "Você não indicou o número de documento."); $.validator.addMethod("PassportMinlength", $.validator.methods.minlength, "O número do documento indicado não é válido."); $.validator.addClassRules("PassportCheck", { PassportRequired: true, PassportMinlength: 6, isValidPassport: true }); $.validator.addClassRules("PassportNationalityCheck", { isValidPassportNationality: true }); $.validator.addMethod("BookNumberRequired", $.validator.methods.required, "Você não indicado o número."); $.validator.addMethod("BookNumberNumeric", $.validator.methods.number, "O número é incorreto."); $.validator.addMethod("BookNumberMinlength", $.validator.methods.minlength, "O número é incorreto."); $.validator.addClassRules("BookNumberCheck", { BookNumberRequired: true, BookNumberNumeric: true, BookNumberMinlength: 6 }); $.validator.addClassRules("IDCheck", { BookNumberNumeric: true, BookNumberMinlength: 6 , isValidID: true }); $.validator.addMethod("PhoneNumberRequired", $.validator.methods.required, "Você não indicou seu número de telefone."); $.validator.addClassRules("PhoneNumberCheck", { PhoneNumberRequired: true, isValidPhone: true }); $.validator.addMethod("AddressRequired", $.validator.methods.required, "Você não indicou seu endereço."); $.validator.addClassRules("AddressCheck", { AddressRequired: true }); $.validator.addMethod("CityRequired", $.validator.methods.required, "You haven't entered your residence city."); $.validator.addClassRules("CityCheck", { CityRequired: true });