function callBackResult() {

	var xmlDoc = ajaxreq.responseXML.documentElement;
	
	var mode = xmlDoc.getElementsByTagName('request')[0].getAttribute('mode');
	var table = xmlDoc.getElementsByTagName('request')[0].getAttribute('table');
	var result = xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue;
	
	switch ( mode ) {
		case 'login' :
			if ( result == "OK" ) {
				// set the coockies, expiration = today + 1 year.
				var logitem = xmlDoc.getElementsByTagName('request')[0].getAttribute('email');
				var logpwd = xmlDoc.getElementsByTagName('request')[0].getAttribute('pswd');
				var id = xmlDoc.getElementsByTagName('id')[0].firstChild.nodeValue;
				setCookie("email", logitem, 365);
				setCookie("pswd", logpwd, 365);
				setCookie("id", id, 365);
				
				// print user's name.. and whatever else is needed...
				var fname = xmlDoc.getElementsByTagName('fname')[0].firstChild.nodeValue;
				var lname = xmlDoc.getElementsByTagName('lname')[0].firstChild.nodeValue;
				var lastlogin = xmlDoc.getElementsByTagName('lastlogin')[0].firstChild.nodeValue;
				var discipline = xmlDoc.getElementsByTagName('discipline')[0].firstChild.nodeValue;
				var mtype = xmlDoc.getElementsByTagName('member')[0].getAttribute('type');
				var mlevl = xmlDoc.getElementsByTagName('member')[0].getAttribute('level');

				document.getElementById('userinfo').innerHTML = "Hi "+fname+". Welcome!";
				document.getElementById('userinfo').style.display="inline";

				// clean up the display
				currentLocale = 'all';
				document.getElementById('loginWait').style.display='none';
				document.getElementById('login').style.display='none';
				document.getElementById('overlay').style.display='none';
				
				document.getElementById('logged-out').style.display = "none";
				document.getElementById('logged-in').style.display = "block";
				//window.location.reload();
				window.location=discipline;//+xmlDoc.getElementsByTagName('email')[0].firstChild.nodeValue;
			} else {
				// clean up the display and set error...
				document.getElementById('loginWait').style.display='none';
				document.getElementById('loginError').style.display='block';
				//setTimeout('document.getElementById("loginError").style.display = "none";', 2000);
			}
			break;
		case 'logout' :
			// switch off wait message and reset the childeren
			document.getElementById('loginWait').style.display='none';
			document.getElementById('login').style.display='none';
			document.getElementById('overlay').style.display='none';
			// remove login info display
			document.getElementById('userinfo').innerHTML = "";
			document.getElementById('loggedin').style.display='none';
			// reset nav menu
			document.getElementById('loginNav').style.display='inline';
			document.getElementById('registerNav').style.display='inline';
			document.getElementById('profileNav').style.display='none';
			document.getElementById('username').style.display='none';
			// make sure we're front page.
			// already done pre-server stuff...gotoLocale();
			break;
		case 'search' :
			var targetDiv = document.getElementById('searchResults');
			var outString = "<p style=\"float:right;\" onclick=\"document.getElementById('searchResults').style.display='none';\">X</p><br /><br />";
			switch ( table ) {
				default :
				case 'coach' :
					var linker = 'coach.php?id=';
					break;
				case 'team' :
					var linker = 'team.php?id=';
					break;
				case 'event' :
					var linker = 'event.php?id=';
					break;
			}
			if ( result == "OK" ) {
				for ( var i=0; i<xmlDoc.getElementsByTagName('name').length; i++ ) {
					outString += "<p>";
					outString += "<a href=\"" + linker + xmlDoc.getElementsByTagName('id')[i].firstChild.nodeValue + "\">";
					outString += xmlDoc.getElementsByTagName('name')[i].firstChild.nodeValue;
					outString += "</a>&nbsp;";
					outString += xmlDoc.getElementsByTagName('city')[i].firstChild.nodeValue;
					outString += "</p>";
				}
				targetDiv.innerHTML = outString;
				targetDiv.style.display="block";
			} else {
				outString += "<p>No matches found</p>";
				targetDiv.innerHTML = outString;
				targetDiv.style.display="block";
			}
			break;

		case 'checkEmailExists' :
			var semaphore = document.getElementById('emailonfile');
			if ( result == "FOUND" ) {
				//alert('found');
				document.getElementById('dupemail').innerHTML = xmlDoc.getElementsByTagName('email')[0].firstChild.nodeValue;
				document.getElementById('emailExists').style.display='block';
				semaphore.value = 1;
				document.getElementById('email').value='';
				document.getElementById('verify_email').value='';
				
				document.getElementById('email').focus();
				//alert('found');
			} else {
				//alert('not found');
				document.getElementById('emailExists').style.display='none';
				semaphore.value = 0;
			}
			
			break;
			
		case 'checkTeamExists' :
			var semaphore = document.getElementById('teamonfile');
			if ( result == "FOUND" ) {
				if(confirm('Team already with this name is existed in the system, Press ok to "Update Existed team Information" or Press Cancel to "Add a new team"')) {
					document.getElementById('team_id').value = xmlDoc.getElementsByTagName('teamid')[0].firstChild.nodeValue;  
				}
				//alert('found');
				//document.getElementById('dupemail').innerHTML = xmlDoc.getElementsByTagName('email')[0].firstChild.nodeValue;
				//document.getElementById('emailExists').style.display='block';
				//semaphore.value = 1;
				//document.getElementById('email').value='';
				//document.getElementById('verify_email').value='';
				
				//document.getElementById('email').focus();
				//alert('found');
			} else {
				//alert('not found');
				//document.getElementById('emailExists').style.display='none';
				//semaphore.value = 0;
			}
			
			break;
			
		case 'transfer' :
			
			if ( result == "TRANSFERED" ) {
				alert('successfully changed to coach.');
				window.location = '/index.php';
			} 
			
			break;
			
			
		case 'getZipcodeData' :
			if ( result == "OK" ) {
				var city = xmlDoc.getElementsByTagName('city')[0].firstChild.nodeValue;
				var state = xmlDoc.getElementsByTagName('state')[0].firstChild.nodeValue;
				document.getElementById('city').value = city;
				var state_selection = document.getElementById('state');
				var state_options = state_selection.options;
				for ( var i=0; i < state_options.length; i++ ) {
					if ( state_options[i].value == state ) {
						state_options[i].selected = true;
					} else {
						state_options[i].selected = false;
					}
				}
			}
			break;
		case 'getCoachesWithinRange' :
			document.getElementById('ajaxWait').style.display="none";
			var coachesSelect = document.getElementById('coaches');
			// Push the return values into a new option list - if none create a 'none found'
			if ( result == "OK" ) {
				var coaches = xmlDoc.getElementsByTagName('coach');
				//var coaches_found = coaches.length;
				for ( var i=0; i < coaches.length; i++ ) {
					var option = document.createElement('option');
					var name = coaches[i].firstChild.nodeValue; 
					var id = coaches[i].getAttribute('id');
					option.setAttribute('value',id);
					option.appendChild(document.createTextNode(name));
					coachesSelect.appendChild(option);
				}
			} else {
				var option = document.createElement('option');
				option.setAttribute('value',0);
				option.appendChild(document.createTextNode('None Found'));
				coachesSelect.appendChild(option);
			}
			break;
		case 'forgotPassword' :
			if (document.getElementById("loginheader") != null)
				document.getElementById('loginheader').id = 'forgotpassword';
			document.getElementById('loginTitle').innerHTML = "Forgot Password?";
			document.getElementById('mainLogin').style.display = 'none';
			document.getElementById('resetPWD').style.display='block';
			if ( result == "OK" ) {
				document.getElementById('resetPWD').innerHTML = '<p class="pwdsuccess">Please check your email for your new password.</p><p style="text-align: center;"><a href="javascript:hideforgotpwd();">Login</a></p>';
			} else {
				document.getElementById('resetPWD').innerHTML = '<p class="pwdfailure">That email is not in our database.</p> \
					<p style="text-align: center;"><a href="javascript:hideforgotpwd();">Go back and enter a different email</a></p>';
			}
			//var tT = setTimeout("document.getElementById('resetPWD').style.display='none'; document.getElementById('mainLogin').style.display = 'block'; document.getElementById('forgotpassword').id = 'loginheader';", 2500);
			break;
		case 'addRecommendation' :
			switch ( result ) {
				case 'SELF' :
					alert("You can not recommend yourself.\n(needs styling/pop-up)");
					break;
				case 'UPDATE' :
					alert("Your recommendation has been updated.\nIt will be displayed after approval.\n(needs styling/pop-up)");
					break;
				case 'OK' :
					alert("Your recommendation has been received.\nIt will be displayed after approval.\n(needs styling/pop-up)");
					break;
			}
			 
			break;
		case 'changeDiscipline' :
			var discipline = xmlDoc.getElementsByTagName('discipline')[0].firstChild.nodeValue.toLowerCase();
			// insert trigger here like:
			if ( discipline == "walking/running" )	discipline = "running";
			if ( discipline == "biking" )	discipline = "cycling";
			location.href=discipline;
			break;
	}
}
