1var Login = function () { 2 var runLoginButtons = function () { 3 $('.forgot').bind('click', function () { 4 $('.box-login').hide(); 5 $('.box-forgot').show(); 6 }); 7 $('.register').bind('click', function () { 8 $('.box-login').hide(); 9 $('.box-register').show(); 10 }); 11 $('.go-back').click(function () { 12 $('.box-login').show(); 13 $('.box-forgot').hide(); 14 $('.box-register').hide(); 15 }); 16 }; 17 var runSetDefaultValidation = function () { 18 $.validator.setDefaults({ 19 errorElement: "span", // contain the error msg in a small tag 20 errorClass: 'help-block', 21 errorPlacement: function (error, element) { // render error placement for each input type 22 if (element.attr("type") == "radio" || element.attr("type") == "checkbox") { // for chosen elements, need to insert the error after the chosen container 23 error.insertAfter($(element).closest('.form-group').children('div').children().last()); 24 } else if (element.attr("name") == "card_expiry_mm" || element.attr("name") == "card_expiry_yyyy") { 25 error.appendTo($(element).closest('.form-group').children('div')); 26 } else { 27 error.insertAfter(element); 28 // for other inputs, just perform default behavior 29 } 30 }, 31 ignore: ':hidden', 32 highlight: function (element) { 33 $(element).closest('.help-block').removeClass('valid'); 34 // display OK icon 35 $(element).closest('.form-group').removeClass('has-success').addClass('has-error').find('.symbol').removeClass('ok').addClass('required'); 36 // add the Bootstrap error class to the control group 37 }, 38 unhighlight: function (element) { // revert the change done by hightlight 39 $(element).closest('.form-group').removeClass('has-error'); 40 // set error class to the control group 41 }, 42 success: function (label, element) { 43 label.addClass('help-block valid'); 44 // mark the current input as valid and display OK icon 45 $(element).closest('.form-group').removeClass('has-error'); 46 }, 47 highlight: function (element) { 48 $(element).closest('.help-block').removeClass('valid'); 49 // display OK icon 50 $(element).closest('.form-group').addClass('has-error'); 51 // add the Bootstrap error class to the control group 52 }, 53 unhighlight: function (element) { // revert the change done by hightlight 54 $(element).closest('.form-group').removeClass('has-error'); 55 // set error class to the control group 56 } 57 }); 58 }; 59 var runLoginValidator = function () { 60 var form = $('.form-login'); 61 var errorHandler = $('.errorHandler', form); 62 form.validate({ 63 rules: { 64 username: { 65 minlength: 2, 66 required: true 67 }, 68 password: { 69 minlength: 6, 70 required: true 71 } 72 }, 73 submitHandler: function (form) { 74 errorHandler.hide(); 75 form.submit(); 76 }, 77 invalidHandler: function (event, validator) { //display error alert on form submit 78 errorHandler.show(); 79 } 80 }); 81 }; 82 var runForgotValidator = function () { 83 var form2 = $('.form-forgot'); 84 var errorHandler2 = $('.errorHandler', form2); 85 form2.validate({ 86 rules: { 87 email: { 88 required: true 89 } 90 }, 91 submitHandler: function (form) { 92 errorHandler2.hide(); 93 form2.submit(); 94 }, 95 invalidHandler: function (event, validator) { //display error alert on form submit 96 errorHandler2.show(); 97 } 98 }); 99 }; 100 var runRegisterValidator = function () { 101 var form3 = $('.form-register'); 102 var errorHandler3 = $('.errorHandler', form3); 103 form3.validate({ 104 rules: { 105 full_name: { 106 minlength: 2, 107 required: true 108 }, 109 address: { 110 minlength: 2, 111 required: true 112 }, 113 city: { 114 minlength: 2, 115 required: true 116 }, 117 gender: { 118 required: true 119 }, 120 email: { 121 required: true 122 }, 123 password: { 124 minlength: 6, 125 required: true 126 }, 127 password_again: { 128 required: true, 129 minlength: 5, 130 equalTo: "#password" 131 }, 132 agree: { 133 minlength: 1, 134 required: true 135 } 136 }, 137 submitHandler: function (form) { 138 errorHandler3.hide(); 139 form3.submit(); 140 }, 141 invalidHandler: function (event, validator) { //display error alert on form submit 142 errorHandler3.show(); 143 } 144 }); 145 }; 146 return { 147 //main function to initiate template pages 148 init: function () { 149 runLoginButtons(); 150 runSetDefaultValidation(); 151 runLoginValidator(); 152 runForgotValidator(); 153 runRegisterValidator(); 154 } 155 }; 156}();
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.