
// Member util




		// these functions expect an array of user objects

		function userAlphabetical(a, b) {
			var A = trim(a.username).toLowerCase();
			var B = trim(b.username).toLowerCase();
			if (A < B) return -1;
			if (A > B) return 1;
			return 0;
		}

		function userSortOnline(a, b) {
			var A = (a.nln ? 0 : 1); // reverse
			var B = (b.nln ? 0 : 1); // reverse
			if (A < B) return -1;
			if (A > B) return 1;
			return 0;
		}
	
		function userSortLastLogin(a, b) {
			var A = trim(b.lastlogin).toLowerCase();
			var B = trim(b.lastlogin).toLowerCase();
			if (A < B) return 1;	// reverse
			if (A > B) return -1;	// reverse
			return 0;
		}
	
		// find a user in the list object by field.
		//  Eg: foundUser = findUserBy("id", "391", onlineUsers, true);
		function findUserBy(field, match, userListObj, returnObj) {
			i = 0;
			for(user in userListObj) {
				if (trim(userListObj[user][field]) == trim(match)) { return (returnObj ? userListObj[user] : i); }
				i++;
			}
			return undefined;
		}
	
	
	
	
	
	
	
	
	
	
	
	
	
	// fetch user infos from the db - this is synchroneous
	function getUserInfo(id) {
	    var xml = new JKL.ParseXML("v2/api/users.php?cmd=getUserInfo&id="+id);
	    var data = xml.parse();
	    tmp_str = "";
	    if (data.nCube.userlist.response != "ERROR") {
			if (data.nCube.userlist.response != "No Match") {
				if (data.nCube.userlist.response) {
				    return data.nCube.userlist.response.user;
				} else { return "No Match"; }
			} else { return "No Match"; }
	    } else { return "ERROR"; }
	}
	
	// asynchroneous version of the above function
	function getUserInfoAsync(id, callback) {
	    var xml = new JKL.ParseXML("v2/api/users.php?cmd=getUserInfo&id="+id);
		
		var aFunc = function(data) {
			
			tmp_str = "";
			if (data.nCube.userlist.response != "ERROR") {
				if (data.nCube.userlist.response != "No Match") {
					if (data.nCube.userlist.response) {
						callback(data.nCube.userlist.response.user);
					} else { callback("No Match"); }
				} else { callback("No Match"); }
			} else { callback("ERROR"); }
			
		};
		xml.async(aFunc);
	    xml.parse();
	}
	
	
	
	
	
	
	
	
	
	
		// user infos ----------------------------------------
	
		function getDefPic(uname, upic, gender, frisky) {
			if (frisky) {
				return "file=default_frisky.jpg";
				//if (gender == 1) { return "file=frs_default_male.jpg"; }
				//else if (gender == 2) { return "file=frs_default_female.jpg"; }
				//else if (gender == 3) { return "file=frs_default_couple.jpg"; }
				//else if (gender == 4) { return "file=frs_default_female_couple.jpg"; }
				//else { return "file=unknown.jpg"; }
			} else if (upic == undefined) {
				if (gender == 1) { return "file=default_male.jpg"; }
				else if (gender == 2) { return "file=default_female.jpg"; }
				else if (gender == 3) { return "file=default_couple.jpg"; }
				else if (gender == 4) { return "file=default_female_couple.jpg"; }
				else { return "file=unknown.jpg"; }
			} else { return "user="+uname+"&file="+upic; }
		}
	
	
	
		function getGender(val) {
			switch(parseInt(val)) {
				case 1 :	return "Homme"; break;
				case 2 :	return "Femme"; break;
				case 3 :	return "Couple d'Hommes"; break;
				case 4 :	return "Couple de Femmes"; break;
				case 5 :	return "Travesti / Transexuel"; break;
				case 6 :	return "Transexuel"; break;
				default: 	return "Non Mentionné"; break;
			}
		}




	