ulivegenov

EGNGenerator

Feb 24th, 2019
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.13 KB | None | 0 0
  1. function validate() {
  2.  
  3. let button = document.getElementsByTagName('button')[0];
  4. button.addEventListener('click', getMyEGN);
  5.  
  6. function getMyEGN(){
  7. let year = document.getElementById('year');
  8. let yearNum = String(year.value).substring(2);
  9. let month = document.getElementById('month');
  10. let monthNum = getMonthNums(month.value);
  11. let date = document.getElementById('date');
  12. let dateNum = getDateNums(date.value);
  13. let genders = document.getElementsByName('gender');
  14. let gender = getSelectedGender(genders);
  15. let region = document.getElementById('region');
  16. let regionNum = regionNumConstruct(region.value);
  17. let genderNum = getGenderNum(gender);
  18.  
  19. let numToCheck = yearNum + monthNum + dateNum + regionNum + genderNum;
  20.  
  21. let egnNumber = numToCheck + numValidate(numToCheck);
  22.  
  23. let egnResult = document.getElementById('egn');
  24. egnResult.innerHTML = "Your EGN is: " + egnNumber;
  25.  
  26. year.value = '';
  27. month.selectedIndex = 0;
  28. date.value = '';
  29. genders.forEach((e) =>{
  30. e.checked = false;
  31. })
  32. region.value = '';
  33. }
  34.  
  35. function numValidate(numToCheck){
  36.  
  37. let lengthValidation = false;
  38.  
  39. if(Number(numToCheck.length) === 9){
  40. lengthValidation = true;
  41. }
  42.  
  43. if(lengthValidation){
  44.  
  45. let weights = [2, 4, 8, 5, 10, 9, 7, 3, 6];
  46. let productSum = 0;
  47.  
  48. for(let i = 0; i < weights.length; i++){
  49. productSum += Number(numToCheck[i])*Number(weights[i]);
  50. }
  51.  
  52. let reminder = productSum % 11;
  53.  
  54. if(reminder === 10){
  55. reminder = 0;
  56. }
  57.  
  58. return reminder;
  59. }
  60. }
  61.  
  62. function regionNumConstruct(region){
  63. if(Number(region) < 100){
  64. return `${region}`;
  65. } else{
  66. return `${String(region).substring(0,2)}`;
  67. }
  68. }
  69.  
  70. function getGenderNum(gender){
  71. if(String(gender) === male){
  72. return '1';
  73. } else{
  74. return '2';
  75. }
  76. }
  77.  
  78. function getSelectedGender(genders){
  79.  
  80. for(let i = 0; i < genders.length; i++){
  81. if(genders[i].checked){
  82. return genders[i];
  83. }
  84. }
  85. }
  86.  
  87. function getDateNums(date){
  88. if(Number(date) < 10){
  89. return `0${date}`;
  90. } else{
  91. return `${date}`;
  92. }
  93. }
  94.  
  95. function getMonthNums(monthName){
  96.  
  97. let montNums = {'January': '01',
  98. 'February' : '02',
  99. 'March' : '03',
  100. 'April' : '04',
  101. 'May' : '05',
  102. 'June' : '06',
  103. 'July' : '07',
  104. 'August' : '08',
  105. 'September' : '09',
  106. 'October' : '10',
  107. 'November' : '11',
  108. 'December' : '12'};
  109.  
  110. return montNums[String(monthName)];
  111. }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment