Advertisement
ulivegenov

EGNGenerator2

Feb 24th, 2019
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 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 = yearValidate(year.value);
  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.querySelectorAll('#exercise table tbody tr td input[name="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 weights = [2, 4, 8, 5, 10, 9, 7, 3, 6];
  38. let productSum = 0;
  39.  
  40. for(let i = 0; i < weights.length; i++){
  41. productSum += Number(numToCheck[i])*Number(weights[i]);
  42. }
  43.  
  44. let reminder = productSum % 11;
  45.  
  46. if(Number(reminder) === 10){
  47. reminder = 0;
  48. }
  49.  
  50. return reminder;
  51.  
  52. }
  53.  
  54. function regionNumConstruct(region){
  55. if(Number(region) >= 43 && Number(region) <= 999){
  56. if(Number(region) < 100){
  57. return `${region}`;
  58. } else{
  59. return `${String(region).substring(0,2)}`;
  60. }
  61. }
  62. }
  63.  
  64. function getGenderNum(gender){
  65. if(String(gender) === 'Male'){
  66. return '2';
  67. } else{
  68. return '1';
  69. }
  70. }
  71.  
  72. function getSelectedGender(genders){
  73.  
  74. for(let i = 0; i < genders.length; i++){
  75. if(genders[i].checked){
  76. return genders[i].value;
  77. }
  78. }
  79. }
  80.  
  81. function getDateNums(date){
  82. if(Number(date) < 10){
  83. return `0${date}`;
  84. } else{
  85. return `${date}`;
  86. }
  87. }
  88.  
  89. function getMonthNums(monthName){
  90.  
  91. let montNums = {'January': '01',
  92. 'February' : '02',
  93. 'March' : '03',
  94. 'April' : '04',
  95. 'May' : '05',
  96. 'June' : '06',
  97. 'July' : '07',
  98. 'August' : '08',
  99. 'September' : '09',
  100. 'October' : '10',
  101. 'November' : '11',
  102. 'December' : '12'
  103. };
  104.  
  105. return montNums[String(monthName)];
  106. }
  107.  
  108. function yearValidate(year){
  109. if(Number(year) >= 1900 && Number(year) <= 2100){
  110. return `${String(year).substring(2)}`;
  111. }
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement