/** * register.js * * supporting js for register.php * * mainly the form validation */ ! function($, undefined) { window.fInitValidation = function($elem) { window.validator = $elem.validate( { rules : { sRegisterFN : { required : true }, sRegisterLN : { required : true }, sRegisterTel : { required: true }, sRegisterEmail : { required : true, email : true }, sRegisterPassword : { required : true }, sRegisterConfPassword : { required : true, equalTo : "#sRegisterPassword" }, sRegisterBillingAddr1 : { required: true }, sRegisterBillingTown : { required: true }, sRegisterBillingPostcode : { required: true }, sRegisterDeliveryAddr1 : { required: { depends: function(element) { return ( ! $('#sRegisterSameAsBilling').is(':checked') ); } } }, sRegisterDeliveryTown : { required: { depends: function(element) { return ( ! $('#sRegisterSameAsBilling').is(':checked') ); } } }, sRegisterDeliveryPostcode : { required: { depends: function(element) { return ( ! $('#sRegisterSameAsBilling').is(':checked') ); } } }, bRegister_PrivacyPolicy : { required: true } }, messages : { } }); }; // expose the fValidate function to global js scope window.fValidate = function($elem) { fInitValidation($elem); var $context = $elem; var $valid = true; var $bMoved = false; $(':input', $context).each(function(index, element) { $valid = validator.element(element) && $valid; if(!$valid && !$bMoved) { $bMoved = true; $("html, body").animate({ scrollTop: $(element).offset().top }, 1000); } }); if ( ! $valid ) { return false; } return true; }; $(document).on('submit', 'form', function(e){ var $bGoogleTicked = false; var response = grecaptcha.getResponse(); $(".google-tick-warning").hide(); if (response.length > 0) { $bGoogleTicked = true; } else { $(".google-tick-warning").show(); $bGoogleTicked = false; } if(fValidate( $(this) )&&fCheckRegister()) { if($bGoogleTicked) return true; else return false; } else { return false; } }); }(jQuery);