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 });