1 2 //require <jquery.packed.js> 3 jQuery(document).ready(function($){ 4 5 var formDiv = $('.forgot-password-form'); 6 7 function getUsername(){ 8 if ( $('#reset-password-by', formDiv).val() != 'username' ) return null; 9 else return $('#email-or-username', formDiv).val(); 10 } 11 12 function getEmail(){ 13 if ( $('#reset-password-by', formDiv).val() != 'email' ) return null; 14 else return $('#email-or-username', formDiv).val(); 15 } 16 17 function submitFormByEmail(callback){ 18 var email = getEmail(); 19 if ( !email ) throw "Please enter a valid email address."; 20 21 var p= { 22 '--email': email, 23 '-action': 'forgot_password', 24 '--format': 'json' 25 }; 26 27 $.post(DATAFACE_SITE_HREF, p, callback); 28 } 29 30 function submitFormByUsername(callback){ 31 var username = getUsername(); 32 if ( !username) throw "Please enter a valid username"; 33 34 var p = { 35 '--username': username, 36 '-action': 'forgot_password', 37 '--format': 'json' 38 }; 39 40 $.post(DATAFACE_SITE_HREF, p, callback); 41 } 42 43 function setStatus(msg){ 44 $('.status-message', formDiv).text(msg); 45 $('.status-message').css('display',''); 46 } 47 48 function serverCallback(response){ 49 try { 50 if ( typeof(response) == 'string' ){ 51 eval('response = '+response+';'); 52 } 53 54 if ( !response.code ) throw "Unknown server error."; 55 if ( response.code == 200 ){ 56 setStatus(response.message); 57 } else { 58 throw response.message; 59 } 60 } catch (e){ 61 setStatus(e); 62 } 63 } 64 65 66 $('#submit-button', formDiv).click(function(){ 67 if ( getUsername() ){ 68 submitFormByUsername(serverCallback); 69 } else if ( getEmail() ){ 70 submitFormByEmail(serverCallback); 71 } else { 72 alert('Please enter a username or email address.'); 73 } 74 }); 75 76 });