Guest User

reg form js

a guest
Apr 4th, 2016
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1. //Education Info Constructor
  2. function EducationInfo() {
  3. this.educationLevel = ko.observable();
  4. this.schoolName = ko.observable();
  5. this.completed = ko.observable();
  6. this.startDate = ko.observable();
  7. this.endDate = ko.observable();
  8. };
  9.  
  10. function LangTesting() {
  11. this.langTest1 = ko.observable(false);
  12. this.langTest2 = ko.observable(false);
  13. this.langTest3 = ko.observable(false);
  14. };
  15.  
  16. function WorkTesting() {
  17. this.jobOffer = ko.observable(false);
  18. this.collegeOfTrades = ko.observable();
  19. this.canadaApprenticeProcess = ko.observable();
  20.  
  21. this.choice1 = ko.observable();
  22. this.choice2 = ko.observable();
  23. this.choice3 = ko.observable();
  24. this.choice4 = ko.observable();
  25. };
  26.  
  27. //Work Info Constructor
  28. function WorkInfo() {
  29. this.workTitle = ko.observable();
  30. this.workName = ko.observable();
  31. this.typeOfWork = ko.observableArray([]);
  32. this.yearsExp = ko.observable();
  33. this.countryOfEmployment = ko.observable();
  34. this.jobOffer = ko.observable();
  35.  
  36. };
  37.  
  38. //User Constructor
  39. function User() {
  40. this.firstName = ko.observable();
  41. this.lastName = ko.observable();
  42. this.email = ko.observable();
  43. this.skype = ko.observable();
  44. this.birthday = ko.observable();
  45. this.preferredLanguage = ko.observable();
  46. this.tradeInterest = ko.observable();
  47. this.consentRegistration = ko.observable();
  48. this.approvedImmigrate = ko.observable();
  49. this.originCountry = ko.observable();
  50. this.immigrateOntario = ko.observable();
  51. this.livingOutsideCanada = ko.observable();
  52. this.tradesKnowledge = ko.observable();
  53. this.referal = ko.observable();
  54. this.username = ko.observable();
  55. this.password = ko.observable();
  56. this.uciNumber = ko.observable();
  57. this.gender = ko.observable();
  58. this.immigrationStatus = ko.observable();
  59. this.consentResearch = ko.observable();
  60. this.driversLicense = ko.observable();
  61. this.englishTesting = ko.observable(new LangTesting());
  62. this.frenchTesting = ko.observable(new LangTesting());
  63. this.workTesting = ko.observable(new WorkTesting());
  64.  
  65. this.id = ko.observable();
  66. this.guid = ko.observable();
  67.  
  68. this.workHistory = ko.observableArray([]);
  69. this.educationHistory = ko.observableArray([]);
  70.  
  71. this.displayStep1 = ko.observable(true);
  72. this.displayStep2 = ko.observable(false);
  73. this.displayStep3 = ko.observable(false);
  74. this.displayStep4 = ko.observable(false);
  75. this.displayStep5 = ko.observable(false);
  76. this.displayStep6 = ko.observable(false);
  77. };
  78.  
  79. //Main Knockout View Model
  80. var AppViewModel = function () {
  81. var self = this;
  82. //Push original objects to history arrays
  83. self.user = ko.observable(new User());
  84. self.save = function () {
  85. console.log(ko.toJSON(self));
  86. };
  87.  
  88. self.addEducationHistory = function () {
  89. self.user().educationHistory.push(new EducationInfo());
  90. };
  91.  
  92. self.addWorkHistory = function () {
  93. self.user().workHistory.push(new WorkInfo());
  94. };
  95.  
  96. self.removeEducationHistory = function () {
  97. self.user().educationHistory.pop();
  98. };
  99.  
  100. self.removeWorkHistory = function () {
  101. self.user().workHistory.pop();
  102. };
  103.  
  104.  
  105. self.active = ko.observable(1);
  106.  
  107. self.checkDate = function (date) {
  108. var reg =
  109. /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/g;
  110. if (reg.test(date)) {
  111. return true;
  112. } else {
  113. return false;
  114. }
  115. }
  116.  
  117. // Set the step status
  118. //self.complete = ko.observableArray([]);
  119. //self.active = ko.observable(1);
  120. //self.disabled = ko.observable([]);
  121.  
  122. /*
  123. self.setStatus = function(step) {
  124. if (self.active() == step) {
  125. return 'active';
  126. } else if (self.complete.indexOf(step) >= 0) {
  127. return 'complete';
  128. } else if (self.disabled.indexOf(step) >= 0) {
  129. return 'disabled';
  130. }
  131. return "";
  132. }
  133. */
  134.  
  135. self.checkStep1 = function () {
  136. if (self.user().consentRegistration() !== true || self.user().tradeInterest() == 'Select a trade') {
  137. alert('Error');
  138. return false;
  139. } else {
  140. alert('Success1!');
  141. alert('test:'+ self.active());
  142.  
  143. self.user().displayStep1(false);
  144. self.user().displayStep2(true);
  145.  
  146. //self.complete([1]);
  147. //self.active(2);
  148. //self.disabled([3, 4, 5, 6]);
  149.  
  150. $('.step1').removeClass('active');
  151. $('.step1').addClass('complete');
  152. $('.step2').addClass('active');
  153.  
  154. }
  155. }
  156.  
  157. self.checkStep2 = function () {
  158. if (self.user().approvedImmigrate() !== 'true' || self.user().immigrateOntario() !== 'true' || self.user().livingOutsideCanada() !== 'true' || String(self.user().originCountry()) === 'Other' || String(self.user().originCountry()) === 'Select a country') {
  159. alert('Error');
  160. return false;
  161. } else {
  162. alert('Success2!');
  163. alert('test:');
  164.  
  165. self.user().displayStep2(false);
  166. self.user().displayStep3(true);
  167.  
  168. $('.step2').addClass('complete');
  169. $('.step3').addClass('active');
  170. }
  171. }
  172.  
  173. self.checkStep3 = function () {
  174. if (self.user().tradesKnowledge() == undefined || self.user().referal() == 'Select an answer') {
  175. alert("Error")
  176. return false;
  177. } else {
  178. alert('Success3!');
  179. self.user().displayStep3(false);
  180. self.user().displayStep4(true);
  181.  
  182. $('.step3').addClass('complete');
  183. $('.step4').addClass('active');
  184. }
  185. }
  186.  
  187. self.checkStep4 = function () {
  188. if (self.user().username() == undefined || self.user().password() == undefined || self.user().firstName() == undefined || self.user().lastName() == undefined || self.user().uciNumber() == undefined || self.user().gender() == undefined || self.user().email() == undefined || self.user().preferredLanguage() == undefined || self.user().immigrationStatus() == undefined || self.user().consentResearch() == undefined) {
  189. alert("Error")
  190. return false;
  191. } else if (self.checkDate(self.user().birthday()) == false) {
  192. alert("Error")
  193. return false;
  194. } else {
  195. alert('Success4!');
  196. self.user().displayStep4(false);
  197. self.user().displayStep5(true);
  198.  
  199. $('.step4').addClass('complete');
  200. $('.step5').addClass('active');
  201. }
  202. }
  203.  
  204. self.checkStep5 = function () {
  205. //RegEx for Start/Finished dates in the Education section (must fit MM/DD/YYYY format)
  206. var allEducationDates = document.querySelectorAll('.educationDates1');
  207. $.each(allEducationDates, function (index, value) {
  208. var currentVal = $(this).val();
  209. if (self.checkDate(currentVal)) {
  210. alert('Success5!');
  211. self.user().displayStep5(false);
  212. self.user().displayStep6(true);
  213.  
  214. $('.step5').addClass('complete');
  215. $('.step6').addClass('active');
  216.  
  217. } else {
  218. alert('Error');
  219. return false;
  220. }
  221. });
  222. }
  223.  
  224. self.checkStep6 = function () {
  225.  
  226. }
  227.  
  228. self.goBackStep1 = function () {
  229. self.user().displayStep2(false);
  230. self.user().displayStep1(true);
  231.  
  232. $('.step2').removeClass('active');
  233. $('.step1').removeClass('complete');
  234. $('.step1').addClass('active');
  235. }
  236.  
  237. self.goBackStep2 = function () {
  238. self.user().displayStep3(false);
  239. self.user().displayStep2(true);
  240.  
  241. $('.step3').removeClass('active');
  242. $('.step2').removeClass('complete');
  243. $('.step2').addClass('active');
  244. }
  245.  
  246. self.goBackStep3 = function () {
  247. self.user().displayStep4(false);
  248. self.user().displayStep3(true);
  249.  
  250. $('.step4').removeClass('active');
  251. $('.step3').removeClass('complete');
  252. $('.step3').addClass('active');
  253. }
  254.  
  255. self.goBackStep4 = function () {
  256. self.user().displayStep5(false);
  257. self.user().displayStep4(true);
  258.  
  259. $('.step5').removeClass('active');
  260. $('.step4').removeClass('complete');
  261. $('.step4').addClass('active');
  262. }
  263.  
  264. self.goBackStep5 = function () {
  265. self.user().displayStep6(false);
  266. self.user().displayStep5(true);
  267.  
  268. $('.step6').removeClass('active');
  269. $('.step5').removeClass('complete');
  270. $('.step5').addClass('active');
  271.  
  272. }
  273.  
  274. self.addEducationHistory();
  275. self.addWorkHistory();
  276. $('.step1').addClass('active');
  277.  
  278. };
  279. ko.applyBindings(new AppViewModel());
  280.  
  281. //Check all education level inputs
  282. //If it's value is not 'Select an education level' make start/end dates required
Add Comment
Please, Sign In to add comment