var map = new Map("100%","100%")
var overviewMap = new OverviewMap(125,125,map,4);
map.disableClickPanning();

var layersManager = map.getLayersManager()
var layersCollection  = new LayersCollection()
layersManager.addLayer(layersCollection)

layerMyLocation = layersManager.createLocalVectorLayer("myLocation");
layerMyLocation.setClustering(LocalVectorLayer.CLUSTERING_NONE);
layerMyLocationFlag = false;

layerMyFriends = layersManager.createLocalVectorLayer("myFriends");
layerMyFriends.setClustering(LocalVectorLayer.CLUSTERING_NONE);
layerMyFriendsFlag = false;

layerMyCurrentGroup = layersManager.createLocalVectorLayer("myCurrentGroup");
layerMyCurrentGroup.setClustering(LocalVectorLayer.CLUSTERING_NONE);
layerMyCurrentGroupFlag = false;

layerMediaSearch = layersManager.createLocalVectorLayer("mediaSearch");
layerMediaSearch.setClustering(LocalVectorLayer.CLUSTERING_NONE);
layerMediaSearchFlag = false;

var personIcon = new ExternalIcon('http://www.cometogethr.com/Images/person.swf');
var femaleIcon = new ExternalIcon('http://www.cometogethr.com/Images/Female.swf');
var maleIcon = new ExternalIcon('http://www.cometogethr.com/Images/Male.swf');
var friendIcon = new ExternalIcon('http://www.cometogethr.com/Images/Friend.swf');
var meIcon = new ExternalIcon('http://www.cometogethr.com/Images/person.swf');
var mediaIcon = new ExternalIcon('http://www.cometogethr.com/Images/photo.swf');
var femaleIconGroup = new ExternalIcon('http://www.cometogethr.com/Images/FemaleGrayscale.swf');
var maleIconGroup = new ExternalIcon('http://www.cometogethr.com/Images/MaleGrayscale.swf');

map.loadWaitingMessage(Map.ALIGN_CENTER_CENTER,new ScreenPoint(130,60));
map.addAdvancedNavigationBar(new ScreenCoordinate(7,7));
map.addDragBar(new ScreenCoordinate(75,50));

map.addListener(Flash.EVENT_FLASH_INITIALIZE,onMapFlashInitialize,map);
map.addListener(Map.EVENT_MAP_DOUBLE_CLICK,onMapDoubleClick,map);

function onMapDoubleClick(map, coordinate) {
	map.setCenterPosition(coordinate,map.getZoomLevel()+4);
}

function onShapeClick(_object,_map,_layer,_shape) {
	temp = _shape.getId();
	if (temp!="myLocation") {
		var nameAndIdArr=temp.split("|");
		switch (nameAndIdArr[0]){
			case "mediaSearch":
				showMediaDetails(nameAndIdArr[1],mediaSearchDetailsArr[nameAndIdArr[1]][0],mediaSearchDetailsArr[nameAndIdArr[1]][1],mediaSearchDetailsArr[nameAndIdArr[1]][2],mediaSearchDetailsArr[nameAndIdArr[1]][3],mediaSearchDetailsArr[nameAndIdArr[1]][4],mediaSearchDetailsArr[nameAndIdArr[1]][5],mediaSearchDetailsArr[nameAndIdArr[1]][6],mediaSearchDetailsArr[nameAndIdArr[1]][7],mediaSearchDetailsArr[nameAndIdArr[1]][8],mediaSearchDetailsArr[nameAndIdArr[1]][9],false);
			break;
			case "myFriend":
				getFriend(nameAndIdArr[1]);
			break;
			case "GroupMember":
				getFriend(nameAndIdArr[1]);
			break;
		}
	}
}
map.layersManager.addListener(LayersManager.EVENT_SHAPE_CLICK,onShapeClick,map);

var SERVER_URL = "http://www.cometogethr.com/proxy.asp";
var ACCOUNT_KEY = "5tB3KJ9fs93Jdiq4";
var APP_ID = "Cm87BVGf64K9Zs9F";
var userSession;
var signinSuccess = false;
var keepLiveInterval;
var firstName = "";
var lastName = "";
var sex = "";
var country = "";
var email = "";
var phoneNumber = "";
var userId = "";
var currentStatus = "";
var nickname = "";
var personnalMessage = "";
var locationPermission = "";
var firstLoad = true;
var currentGroupCheckBoxObj;
var friendsInterval;
var currentGroupInterval;
var searchValue;
var myLocation = "";
var currentMediaSearchNum = "-1";
var nearMeMetters = 2000;

var uploadIconStatus = "0";
var	updateProfileStatus = "0";

var myFriendsIdArr = new Array();
var myGroupsIdArr = new Array();
var mediaSearchDetailsArr = new Array();
var groupMembersLayersList = new Array();

var currentView = Map.VIEW_RASTER;
var generalDefaultInnerHtml;
var beforeLoginInnerHtml = '<table border="0" cellpadding="0" cellspacing="0" dir="ltr" width="264" align="left" valign="top"><tr><td height="20"></td></tr><tr><td width="15"></td><td align="left" class="title">Welcome To ComeTogethr</td><td width="15"></td></tr><tr><td height="20"></td></tr><tr><td width="15"></td><td align="left"><table bgcolor="#DFEEF4" style="border:1px solid #66ABCC;" border="0" cellpadding="0" cellspacing="0" dir="ltr" width="234" align="left" valign="top"><tr><td height="5"></td></tr><tr><td class="titleBold">&nbsp;Existing user</td></tr><tr><td height="10"></td></tr><tr><td align="left">&nbsp;Please <a href="#" onclick="displayPopup(\'signInDiv\')">sign in</a></td></tr><tr><td height="5"></td></tr></table></td><td width="15"></td></tr><tr><td height="20"></td></tr><tr><td width="15"></td><td align="left"><table bgcolor="#DFEEF4" style="border:1px solid #66ABCC;" border="0" cellpadding="0" cellspacing="0" dir="ltr" width="234" align="left" valign="top"><tr><td height="5"></td></tr><tr><td class="titleBold">&nbsp;New user</td></tr><tr><td height="10"></td></tr><tr><td align="left">&nbsp;Don\'t have an account yet?</td></tr><tr><td height="5"></td></tr><tr><td align="left">&nbsp;Create your free account</td></tr><tr><td height="5"></td></tr><tr><td align="left">&nbsp;<a href="#" onclick="displayPopup(\'signUpDiv\')">Sign up</a></td></tr><tr><td height="5"></td></tr></table></td><td width="15"></td></tr><tr><td height="20"></td></tr><tr><td colspan="3" align="center"><img src="Images/download-v1.01.jpg" width="170" height="67" title="Use it on your mobile" alt="Use it on your mobile" onclick="displayMobileDownload()" style="cursor:pointer"></td></tr></table>';
var friendsTabInnerHtml = '<table border="0" cellpadding="0" cellspacing="0" dir="ltr" width="264" align="left" valign="top"><tr><td height="20"></td></tr><tr><td width="15"></td><td><table><tr><td colspan="2"><div style="overflow-x:hidden;overflow-y:hidden;width:100%;height:100%;" name="MyFriendsDiv" id="MyFriendsDiv"> </div></td></tr></table></td><td width="15"></td></tr><tr><td height="30"></td></tr></table>';
var groupsTabInnerHtml = '<table border="0" cellpadding="0" cellspacing="0" dir="ltr" width="264" align="left" valign="top"><tr><td height="20"></td></tr><tr><td width="15"></td><td><table><tr><td><img src="Images/Icons/add.png" width="16" height="16" title="Create Group" alt="Create Group" onclick="displayPopup(\'createGroupDiv\');document.getElementById(\'manageGroupTitleTD\').innerHTML=\'Create Group\';document.getElementById(\'manageGroupSubmitButton\').value=\'Create\';document.createGroupForm.flagCmd.value=0"></td><td width="7"></td><td><a href="#" onclick="displayPopup(\'createGroupDiv\');document.getElementById(\'manageGroupTitleTD\').innerHTML=\'Create Group\';document.getElementById(\'manageGroupSubmitButton\').value=\'Create\';document.createGroupForm.flagCmd.value=0">Create group!</a></td></tr></table></td><td width="15"></td></tr><tr><td height="15"></td></tr><tr><td width="15"></td><td><table><tr><td colspan="2"><div style="overflow-x:hidden;overflow-y:hidden;width:100%;height:100%;" name="MyGroupsDiv" id="MyGroupsDiv"> </div></td></tr></table></td><td width="15"></td></tr><tr><td height="30"></td></tr></table>';
var searchTabInnerHtml = '<table border="0" cellpadding="0" cellspacing="0" dir="ltr" width="264" align="left" valign="top"><tr><td height="20"></td></tr><tr><td width="15"></td><td><table><tr><td colspan="2"><div style="overflow-x:hidden;overflow-y:hidden;width:100%;height:100%;" name="searchResultsUsersDiv" id="searchResultsUsersDiv"> </div></td></tr></table></td><td width="15"></td></tr><tr><td height="10"></td></tr><tr><td width="15"></td><td><table><tr><td colspan="2"><div style="overflow-x:hidden;overflow-y:hidden;width:100%;height:100%;" name="searchResultsGroupsDiv" id="searchResultsGroupsDiv"> </div></td></tr></table></td><td width="15"></td></tr><tr><td height="10"></td></tr><tr><td width="15"></td><td><table><tr><td colspan="2"><div style="overflow-x:hidden;overflow-y:hidden;width:100%;height:100%;" name="searchResultsMediaDiv" id="searchResultsMediaDiv"> </div></td></tr></table></td><td width="15"></td></tr><tr><td height="30"></td></tr></table>';
var routeTabInnerHtml;
var numberOfNodes = 2;
var nodesIds = 3;
var firstAddressId = "address1TR";
var lastAddressId = "address2TR";
var addressesNodesIdsArr = new Array();
addressesNodesIdsArr.push('address1TR');
addressesNodesIdsArr.push('address2TR');
var startPos;
var endPos;
var startPosY;
var endPosY;		
var factor;
var interval;
var overviewOverlay;		
var LinkToTheMap;
var LayersOverlay;
var k=0.5;
var lastTargetPostion;
var lastGeocodeResult;
var isOverviewVisible = false;
var isLinkToMapVisible = false;
var fullAddressSTemp = "";	
var isRouteExists = false;
var isRouteChange = false;
var isRouteLocationChange = false;
var isMapSmall = true;
var isUpMenuOpen = true;
var mapInitialize = false;
var isBubbleShown = false;
var lastCity = "";
var lastStreet = "";
var lastHouseNumber = "";
var lastAddressParts = "";
var lastLatPoint = "";
var lastLongPoint = "";
var addressesArr = new Array();
var routeSettingsArr = new Array();
var layersSettingsArr = new Array();
var currentSideView = "1";
var updateLocationInterval;
var firstMapLoad = true;
var isStandardRoute = true;
var enableDisable = true;
var countryChange = false;
var fisrtClickOnInput = true;
// PushPins & targets
var pushpinsList = new Array();
layerTargets       = layersManager.createLocalVectorLayer("targets");
layerPushpins      = layersManager.createLocalVectorLayer("pushpins");
layerSourcePushpin = layersManager.createLocalVectorLayer("pushpinSource");
layerDestPushpin   = layersManager.createLocalVectorLayer("pushpinDest");

layerPushpins.setMinZoom(-10);
layerDestPushpin.setMinZoom(-10);
layerDestPushpin.setMinZoom(-10);

layerPushpins.setClustering(LocalVectorLayer.CLUSTERING_LOW);
layerTargets.setClustering(LocalVectorLayer.CLUSTERING_NONE);
var targetIcon   = new ExternalIcon("images/TargetIcon.swf");
layerTargetsFlag = false;

var pushpinSourceMarker = null;
var pushpinDestMarker   = null;
sourceGeocodeAddress = "";
destGeocodeAddress   = "";
////////////////////////////////////////////////////////////////////////////////
map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(200,25));
messageSucc = "Message successfully sent";
generalError = "General error";
atLeastOneEmail = "You must insert at least one email address";
emailError = "Email address is not valid";
nameMustBe = "Please insert your name";
emailMustBe = "Please insert email address";
error4 = "State error or not found";
error3 = "City name wrong or not found";
error2 = "Street name wrong or not found";
error1 = "House number not found";
error0 = "Address not found";
lang = "eng";
couldNotFound = "The system could find the address"
couldNotFoundRoute = "The system could find the route."
routeWrong = "The addresses in <font color='red'>red</font> are wrong or can not be found"
reason = "Reason:"
suggestions = "Suggestions:"
makeSure1 = "Make sure all words are spelled correctly."
makeSure2 = "Try less focused search."
makeSure3 = "<a href='#' onclick='displaySendToSystemPopup()'>Report us</a> about this problem."
makeSure4 = "Try to focus to a more accuracy point."
makeSure5 = "Try to search for this address."
makeSure6 = "Please make sure your route is in the choosen country"
overviewTitle = "Overview Map";
OpenSideMenu = "Images/border_left_en.png";
CloseSideMenu = "Images/border_right_en.png";
pageAlign = "left";
reverseAlign = "right";

MAPA = "Mapa"
MAPA_URL = "http://www.gisrael.co.il/eng/"
OFEK = "Ofek"
OFEK_URL = "http://www.ofek-air.com/about.asp?lang=2"
AtlasCT = "AtlasCT"
AtlasCTSite = "http://www.atlasct.com"
NAVTEQ = "NAVTEQ"
ACCUWEATHER = "AccuWeather"
NAVTEQ_URL = "http://www.navteq.com"
ACCUWEATHER_URL = "http://www.accuweather.com"
DECELL = '&nbsp©þ <a href="http://www.decell.com" id="lnkData" class="links" target="_blank">Decell</a>';

WelcomeToABmaps = "Welcome To ABmaps"
SetDefaultLocation = "Set current location as default"
multiAddressFound = "Your search has returned the following results, please select one:"
addressNotExactFound = "<b>Did you mean: </b>"
routeDescription = "Driving directions"

addressTitle = "Address:"
closeTitle = "Close"

alert1 = "Please insert an address";
alert2 = "Please insert source address";
alert3 = "Please insert destination address";

addDestination = "Add Destination";
options = "Route Options";
fastTitle = "Fast";
shortTitle = "Short";
pedestrianTitle = "Pedestrian";
throughKvish6Title = "Allow toll roads";
sourcePoint = "ð÷åãú îåöà";
destinationPoint = "ð÷åãú éòã";
middlePoint = "Middle Point";

findRouteTitle = "Find Route";
showMilestones = "Show Milestones";
showTrafficDirections = "Show Traffic Directions";
clearRouteTitle = "Clear Route";

currentURL = "http://www.cometogethr.com/main.asp";
currentURLEncode = "http%3A%2F%2Fwww.cometogethr.com%2Fmain.asp";
/////////////////////////////////////////////
function isEmailValid(emailStr) {
	var check=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (check.test(emailStr)) return true
		 else return false      
}
/////////////////////////////////////////////
function isFieldEmpty(str) {
	return (str=="")
}
/////////////////////////////////////////////
function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}
/////////////////////////////////////////////
function ajaxpage(url,params,method,ajaxNumber){ // Ajax function.
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
		return false
	page_request.onreadystatechange=function(){
		afterAjax(page_request,ajaxNumber)
	}
	page_request.open(method, url, true);
	if (method=="POST") {
		page_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
		page_request.setRequestHeader("Content-length", params.length);
		page_request.setRequestHeader("Connection", "close");
		page_request.send(params);
	}
	else if (method=="GET") {
		page_request.send(null)
	}
}
/////////////////////////////////////////////
function afterAjax(page_request,ajaxNumber){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
		switch (ajaxNumber){
			case "1":
				switch (page_request.responseText){
					case "1": 
						document.getElementById("sendToFriendInfo").innerHTML = messageSucc;
					break;
					case "2": 
						document.getElementById("sendToFriendInfo").innerHTML = generalError;
					break;
					case "3": 
						document.getElementById("sendToFriendInfo").innerHTML = generalError;
					break;
				}
				setTimeout("clearSendToFriendDiv()",1500);
			break;
			case "2":
				switch (page_request.responseText){
					case "1": 
						document.getElementById("sendToSystemInfo").innerHTML = messageSucc;
					break;
					case "2": 
						document.getElementById("sendToSystemInfo").innerHTML = generalError;
					break;
					case "3": 
						document.getElementById("sendToSystemInfo").innerHTML = generalError;
					break;
				}
				setTimeout("clearSendToSysetmDiv()",1500);
			break;
			case "3":
				location.replace("main.asp");
				//location.reload(true);
			break;
			case "5":
				
			break;
			case "6":
				document.getElementById("contentDiv").innerHTML=page_request.responseText;
			break;
			case "7":
				document.getElementById("tipSpan").innerHTML=page_request.responseText;
				document.getElementById("tipsTable").style.display = "";
			break;
		}
	}
}
/////////////////////////////////////////////
function addToFavorites() {
	if (BrowserDetect.browser.toLowerCase()=="firefox") { // Mozilla Firefox Bookmark
		window.sidebar.addPanel('AtlasCT Map', 'http://www.abmaps.co.il/BETA',"");	} 
	else if(BrowserDetect.browser.toLowerCase()=="explorer") { // IE Favorite
		window.external.addFavorite('http://www.abmaps.co.il/BETA','AtlasCT Map'); }
}
/////////////////////////////////////////////
function printMap() {
	window.print();
}
/////////////////////////////////////////////
function clearSendToFriendDiv() {
	hideLayer('shadow','sendToFriendDiv');
	document.getElementById("sendToFriendInfo").innerHTML = "";
}
/////////////////////////////////////////////
function clearSendToSysetmDiv() {
	hideLayer('shadow','sendToSystemDiv');
	document.getElementById("sendToSystemInfo").innerHTML = "";
}
/////////////////////////////////////////////
function clearPopup(name) {
	hideLayer('shadow',name);
}
/////////////////////////////////////////////
function displayPopup(name) {
	showLayer('shadow',name);
}
/////////////////////////////////////////////
function displaySendToAFriendPopup() {
	showLayer('shadow','sendToFriendDiv');
}
/////////////////////////////////////////////
function displaySendToSystemPopup() {
	showLayer('shadow','sendToSystemDiv');
}
/////////////////////////////////////////////
function sendEmail(frm,lang) {
	sentToArr = frm.sentTo.value.split(",");
	if (isFieldEmpty(frm.sentTo.value)) {
		alert(atLeastOneEmail);
		frm.sentTo.focus();
		return false;
	}
	for (i = 0; i < sentToArr.length; i++) {
		if (!isEmailValid(trim(sentToArr[i]))) {
			alert(emailError);
			frm.sentTo.focus();
			frm.sentTo.select();
			return false;
		}
	}
	if (isFieldEmpty(frm.sentFrom.value)) {
		alert(emailMustBe);
		frm.sentFrom.focus();
		return false;
	}
	if (!isEmailValid(frm.sentFrom.value)) {
		alert(emailError);
		frm.sentFrom.focus();
		frm.sentFrom.select();
		return false;
	}
	params = "type=1"+"&lat=" + map.getCenterPosition().getLat() + "&long=" + map.getCenterPosition().getLong() + "&zoomLevel=" + map.getZoomLevel() + "&lang=" + encodeURI("heb")+"&sentTo=" + encodeURI(document.getElementById("sentTo").value)+"&sentFrom=" + encodeURI(document.getElementById("sentFrom").value)+"&sentToDescription=" + encodeURI(document.getElementById("sentToDescription").value)+"&sentToMe=" + encodeURI(document.getElementById("sentToMe").checked);
	ajaxpage("http://www.cometogethr.com/Inc/sendEmail.asp",params,"POST","1");
}
/////////////////////////////////////////////
function sendEmailToSystem(frm,lang) {
	if (isFieldEmpty(frm.name.value)) {
		alert(nameMustBe);
		frm.name.focus();
		return false;
	}
	
	if (isFieldEmpty(frm.sentFrom2.value)) {
		alert(emailMustBe);
		frm.sentFrom2.focus();
		return false;
	}
	if (!isEmailValid(frm.sentFrom2.value)) {
		alert(emailError);
		frm.sentFrom2.focus();
		frm.sentFrom2.select();
		return false;
	}
	params = "type=2"+"&lang=" + encodeURI("heb")+"&sentFrom=" + encodeURI(document.getElementById("sentFrom2").value)+"&name=" + encodeURI(document.getElementById("name").value)+"&sentToDescription=" + encodeURI(document.getElementById("sentToDescription2").value);
	ajaxpage("http://www.cometogethr.com/Inc/sendEmail.asp",params,"POST","2");
}
/////////////////////////////////////////////
function showHideOverview() {
	if (isOverviewVisible) {
		document.getElementById("OverviewButton").src = "Images/OpenOverviewMap.png";
		startPos = 127;
		endPos   = 0;
		startPosY = 126;
		endPosY = 0;
		if (dir=="rtl")
			map.setScaleBarPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(30,15));
		else
			map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(90,25));
	} else {
		document.getElementById("OverviewButton").src = "Images/CloseOverviewMap.png";
		startPos = 0;
		endPos   = 127;	
		startPosY = 0;
		endPosY = 126;
		if (dir=="rtl")
			map.setScaleBarPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(135,15));
		else
			map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(200,25));
	}
	factor = 0;
	isOverviewVisible = !isOverviewVisible
	interval = window.setInterval("positionInterval("+startPos+","+endPos+","+startPosY+","+endPosY+",'overview')",1)
}
/////////////////////////////////////////////
function positionInterval(startPos,endPos,startPosY,endPosY,overlayName) {
  factor = (k*factor+1)/(k+1)
  var newPos = Math.round(startPos + (endPos-startPos) * factor)
  var newPosY = Math.round(startPosY + (endPosY-startPosY) * factor)
  switch (overlayName){
	case "overview": 
		map.setOverlayScreenCoordinate(overviewOverlay,Map.ALIGN_BOTTOM_RIGHT, new ScreenCoordinate(newPos,newPosY));
	break;
	case "linkToTheMap": 
		map.setOverlayScreenCoordinate(LinkToTheMap,Map.ALIGN_BOTTOM_RIGHT, new ScreenCoordinate(501,newPosY));
	break;
	case "layers": 
		map.setOverlayScreenCoordinate(LayersOverlay,Map.ALIGN_TOP_RIGHT, new ScreenCoordinate(newPos,70));
	break;
	default : 	alert(generalError);
  }
  if (factor<0.999) {
  } else {
	 window.clearInterval(interval);	 
  }
}
/////////////////////////////////////////////
function onMapFlashInitialize(map,size) {
	mapInitialize = true;
	
	// Side Menu
	SideMenuDivOverlay = new Overlay("SideMenuDivOverlay");
	var SideMenuDiv = document.getElementById("SideMenuDiv");
	SideMenuDivOverlay.setDomElement(SideMenuDiv);
	if (dir=="rtl")
		map.addOverlayToScreen(SideMenuDivOverlay,Map.ALIGN_TOP_RIGHT, new ScreenCoordinate(10,0))
	else
		map.addOverlayToScreen(SideMenuDivOverlay,Map.ALIGN_TOP_LEFT, new ScreenCoordinate(0,0))

	// Up Menu
	UpMenuDivOverlay = new Overlay("UpMenuDivOverlay");
	var UpMenuDiv = document.getElementById("UpMenuDiv");
	UpMenuDivOverlay.setDomElement(UpMenuDiv);
	map.addOverlayToScreen(UpMenuDivOverlay,Map.ALIGN_TOP, new ScreenCoordinate(0,0))

	// Overview.
	overviewOverlay = new Overlay("overviewOverlay");
	var overviewFormDiv = document.getElementById("overviewMapDiv")
	overviewOverlay.setDomElement(overviewFormDiv)
	map.addOverlayToScreen(overviewOverlay,Map.ALIGN_BOTTOM_RIGHT, new ScreenCoordinate(0,0))		
	
	// Close Overview.
	var div1 = document.createElement("div1");
	div1.style.width="22px";
	div1.style.height="22px";
	div1.style.backgroundColor="transparent";
	div1.innerHTML = "<img id='OverviewButton' src='Images/OpenOverviewMap.png' width='22' height='22' onclick='javascript:showHideOverview()' style='z-index:3;cursor:pointer' alt='"+overviewTitle+"' title='"+overviewTitle+"'>";
	var overlay = new Overlay("ScreenOverlay");
	overlay.setDomElement(div1);
	overlay.setOffsetPosition(new ScreenCoordinate(0,0));
	map.addOverlayToScreen(overlay,Map.ALIGN_BOTTOM_RIGHT, new ScreenCoordinate(20,19));
}
/////////////////////////////////////////////
function changeMapSize(dir) {
	if (dir=="ltr") {
		if (isOverviewVisible)
			setTimeout("map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(200,25))",500);
		else
			setTimeout("map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(90,25))",500);
	}
	if (isMapSmall) { // Large the map and disappear the sideMenu.
		document.getElementById("sideMenu").style.display = "none";
		document.getElementById("borderSide").src = OpenSideMenu;
		isMapSmall = false;
	}
	else {
		document.getElementById("sideMenu").style.display = "";
		document.getElementById("borderSide").src = CloseSideMenu;
		isMapSmall = true;
	}
}
/////////////////////////////////////////////
function closeOpenUpMenu(dir) {
	if (dir=="ltr") {
		if (isOverviewVisible)
			setTimeout("map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(200,25))",500);
		else
			setTimeout("map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(90,25))",500);
	}
	if (isUpMenuOpen) {
		document.getElementById("upMenu").style.display = "none";
		document.getElementById("borderUp").src = "Images/border_down.png";
		isUpMenuOpen = false;
		setHeightOfInfoDiv(true);
	}
	else {
		document.getElementById("upMenu").style.display = "";
		document.getElementById("borderUp").src = "Images/border_up.png";
		isUpMenuOpen = true;
		setHeightOfInfoDiv(false);
	}
}
/////////////////////////////////////////////
function convertToInputId(nodeId) {
	theId = nodeId.replace("TR","");
	return theId;
}
/////////////////////////////////////////////
function changeInputView() {
	if (fisrtClickOnInput) {
		document.getElementById("sourceAddress").value = "";
		document.getElementById("sourceAddress").className = "InputBox";
		fisrtClickOnInput = false;
	}
}
/////////////////////////////////////////////
function hideAllPushpins() {
	layerSourcePushpin.hide();
	layerDestPushpin.hide();
}
/////////////////////////////////////////////
function findPos(obj) { // Find the position of the obj.
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
/////////////////////////////////////////////
function setDivPosition(nearById,sourceDivId) { // Set the position of the div near to the nearById div.
	var temp;
	temp = findPos(document.getElementById(nearById));
	leftPos = temp[0];
	topPos = temp[1];
	document.getElementById(sourceDivId).style.left = leftPos+"px";
	document.getElementById(sourceDivId).style.top = topPos+"px";
	document.getElementById(sourceDivId).style.display = "";
}
/////////////////////////////////////////////
function disappearDiv(sourceDivId) { // Disappear the div.
	document.getElementById(sourceDivId).style.display = "none";
}
/////////////////////////////////////////////
function getBrowserHeight() {
	var intH = 0;
	var intW = 0;
	if(typeof window.innerWidth  == 'number' ) {
	   intH = window.innerHeight;
	   intW = window.innerWidth;
	} 
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		intH = document.documentElement.clientHeight;
		intW = document.documentElement.clientWidth;
	}
	else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
		intH = document.body.clientHeight;
		intW = document.body.clientWidth;
	}
	return { width: parseInt(intW), height: parseInt(intH) };
}
/////////////////////////////////////////////
function setLayerPosition(shadowId, popUpId) {
	var shadow = document.getElementById(shadowId);
	var question = document.getElementById(popUpId);
	var bws = getBrowserHeight();
	shadow.style.width = bws.width + "px";
	shadow.style.height = bws.height + "px";
	question.style.left = parseInt((bws.width - 350) / 2);
	question.style.top = parseInt((bws.height - 320) / 2);
	shadow = null;
	question = null;
}
/////////////////////////////////////////////
function showLayer(shadowId, popUpId) {
	setLayerPosition(shadowId, popUpId);
	var shadow = document.getElementById(shadowId);
	var question = document.getElementById(popUpId);
	shadow.style.display = "block"; 
	question.style.display = "block";
	shadow = null;
	question = null;             
}
/////////////////////////////////////////////
function hideLayer(shadowId, popUpId) {
	var shadow = document.getElementById(shadowId);
	var question = document.getElementById(popUpId);
	shadow.style.display = "none"; 
	question.style.display = "none";
	shadow = null;
	question = null; 
}
/////////////////////////////////////////////
function setHeightOfInfoDiv(flag) {
	if (flag)
		extra = 47;
	else
		extra = 11;
	if (window.ActiveXObject) // if IE
		document.getElementById("infoDiv").style.height = document.body.clientHeight - 149 + extra;
	else
		document.getElementById("infoDiv").style.height = document.body.clientHeight - 147 + extra;
}
/////////////////////////////////////////////
function setLayerPositionCommands() {
	setLayerPosition('shadow','sendToFriendDiv');
	if (dir=="ltr") {
		if (isOverviewVisible)
			setTimeout("map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(200,25))",500);
		else
			setTimeout("map.setAtlasCTLogoPosition(Map.ALIGN_BOTTOM_RIGHT,new ScreenPoint(90,25))",500);
	}
	setHeightOfInfoDiv(false);
	if (screen.width==800)
		document.getElementById("indexCitiesTD").style.display = "none";
}
window.onresize = setLayerPositionCommands;
/////////////////////////////////////////////
function getGeneralDefaultInnerHtml() {
	return generalDefaultInnerHtml;
}
/////////////////////////////////////////////
function isIE() {
	if (document.all) {
		return true;
	} else {
		return false;
	}
}
/////////////////////////////////////////////
function hideBubble() {
	if (isBubbleShown) {
		isBubbleShown = false;
		map.removeOverlay('BubbleOverlay');
	}
}
/////////////////////////////////////////////
function addBubble(overlayHTML,bubbleTitle,latPoint,longPoint,_dir) {
	if (isBubbleShown)
		hideBubble();
	isBubbleShown = true;
	
   innerHTMLBubble = ""
	if (isIE()) {
		innerHTMLBubble += '<Div style=\'width:294px;height:212px;background-image: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( src="images/OverlayBG.png", sizingMethod="scale")\'>'
	} else {
		innerHTMLBubble += '<Div style=\'width:294px;height:212px;background-image:url("images/OverlayBG.png")\'>';
	}
   innerHTMLBubble += '<Div style=\'position:relative;width:294px;height:212px;\' align="center">';
   innerHTMLBubble +=	'<Table Width="235" Height="137" CellPadding="0" CellSpacing="0" align="center" dir="'+dir+'">';
   innerHTMLBubble +=		'<tr><td></td><td style="padding-top:8px">&nbsp;&nbsp;&nbsp;&nbsp;<b>'+bubbleTitle+'</b></td><TD Height="20" valign="Top" Align="'+reverseAlign+'" style="padding-top:7px;padding-right:4px;"><a href="#" onclick="javascript:hideBubble();return false;"><img src="Images/CloseButton.png" width="19" height="19" border="0" alt="'+closeTitle+'" title="'+closeTitle+'"></a></TD></TR>';
   innerHTMLBubble +=		'<tr><td></td><td style="padding-left:8px" valign="top">'+overlayHTML+'</td><td></td>';

   innerHTMLBubble +=	'</Table>';
   innerHTMLBubble += '</Div>';

   var theDiv = document.createElement("div");
   var overlay = new Overlay("BubbleOverlay");
   theDiv.innerHTML = innerHTMLBubble;
   overlay.setDomElement(theDiv);
   overlay.setOffsetPosition(new ScreenCoordinate(-94,-185));
   map.addOverlayToMap(overlay, new LatLong(latPoint,longPoint),false);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function setSideView(num,flag) {
	switch (num){
		case "1":
			if (currentSideView!="1") {
				document.getElementById("contentDiv").innerHTML = getGeneralDefaultInnerHtml();
				getMyInvitation();
				getMyAdminInvitation();
				getMyMessages();
				
				currentSideView = "1";
				document.getElementById("tdSideView1").className = "menuLinksDisabled";
				document.getElementById("tdSideView2").className = "menuLinks";
				document.getElementById("tdSideView3").className = "menuLinks";
				document.getElementById("tdSideView4").className = "menuLinksInvisible";
				
				if (layerMyCurrentGroupFlag)
					layerMyCurrentGroup.removeAll();
				layerMyCurrentGroupFlag = false;
				
				if (layerMediaSearchFlag)
					layerMediaSearch.removeAll();
				layerMediaSearchFlag = false;
			}
		break;
		case "2": 
			if (currentSideView!="2") {
				document.getElementById("contentDiv").innerHTML = friendsTabInnerHtml;
				getMyFriends();
				
				currentSideView = "2";
				document.getElementById("tdSideView1").className = "menuLinks";
				document.getElementById("tdSideView2").className = "menuLinksDisabled";
				document.getElementById("tdSideView3").className = "menuLinks";
				document.getElementById("tdSideView4").className = "menuLinksInvisible";
				
				if (layerMyCurrentGroupFlag)
					layerMyCurrentGroup.removeAll();
				layerMyCurrentGroupFlag = false;
				
				if (layerMediaSearchFlag)
					layerMediaSearch.removeAll();
				layerMediaSearchFlag = false;
			}
		break;
		case "3": 
			if (currentSideView!="3") {
				document.getElementById("contentDiv").innerHTML = groupsTabInnerHtml;
				getMyGroups();
				
				currentSideView = "3";
				document.getElementById("tdSideView1").className = "menuLinks";
				document.getElementById("tdSideView2").className = "menuLinks";
				document.getElementById("tdSideView3").className = "menuLinksDisabled";
				document.getElementById("tdSideView4").className = "menuLinksInvisible";
				
				if (layerMediaSearchFlag)
					layerMediaSearch.removeAll();
				layerMediaSearchFlag = false;
			}
		break;
		case "4": 
			if (currentSideView!="4") {
				document.getElementById("contentDiv").innerHTML = searchTabInnerHtml;
				
				currentSideView = "4";
				document.getElementById("tdSideView1").className = "menuLinks";
				document.getElementById("tdSideView2").className = "menuLinks";
				document.getElementById("tdSideView3").className = "menuLinks";
				document.getElementById("tdSideView4").className = "menuLinksDisabled";
				
				if (layerMyCurrentGroupFlag)
					layerMyCurrentGroup.removeAll();
				layerMyCurrentGroupFlag = false;
			}
		break;
	}
}
/////////////////////////////////////////////
function epochToHuman(theValue) {
	theValue = theValue * 1;
	var datum = new Date(theValue);
	return datum.toGMTString();
}
/////////////////////////////////////////////
function clearAddressesNodesIdsArr(arrObject) {
	for (i = 0; i < arrObject.length; i++)
		arrObject.pop();
	if (arrObject[0]!=undefined)
		arrObject.pop();
}
/////////////////////////////////////////////
Array.prototype.exists = function(search){
  for (var i=0; i<this.length; i++)
    if (this[i] == search) return true;
		
  return false;
} 
/////////////////////////////////////////////
Array.prototype.removeItems = function(itemsToRemove) {
	var j;
	for (var i = 0; i < itemsToRemove.length; i++) {
		j = 0;
		while (j < this.length) {
			if (this[j] == itemsToRemove[i]) {
				this.splice(j, 1);
			} else {
				j++;
			}
		}
	}
}
/////////////////////////////////////////////
function reduceText(theText,charsNumber) {
	reducedText = theText.substr(0,charsNumber);
	if (reducedText==theText)
		return theText;
	else
		return trim(reducedText) + "...";
}
/////////////////////////////////////////////
function replaceAll(str,pcFrom, pcTo) {
	var i = str.indexOf(pcFrom);
	var c = str;
	while (i > -1){
		c = c.replace(pcFrom, pcTo);
		i = c.indexOf(pcFrom);
	}
	return c;
}
/////////////////////////////////////////////
function onSignInKeyUp(e) {
	var unicode=e.keyCode? e.keyCode : e.charCode;
	if(unicode == 13) { // Enter Key
		signIn();
	}
}
/////////////////////////////////////////////
function statusToIndexNumber(statusName) {
	switch (statusName){
		case "Appear Offline":
			return 0;
		break;
		case "Away":
			return 1;
		break;
		case "Busy":
			return 2;
		break;
		case "Online":
			return 3;
		break;
	}
}
/////////////////////////////////////////////
function signIn() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			if (signinSuccess) {
				userSession = json.session[0].Text;
				if (currentSideView=="1") {
					getMyInvitation();
					getMyAdminInvitation();
					getMyMessages();
				}
			}
			else {
				document.getElementById("searchButton").disabled = false;
				document.getElementById("searchValue").disabled = false;
				signinSuccess = true;
				userSession = json.session[0].Text;

				var user = json.user[0];
				
				firstName  = user.firstname[0].Text
				lastName  = user.lastname[0].Text
				userId = user.id;
				sex = user.gender[0].Text;
				country = user.country[0].Text;
				email = user.email[0].Text;
				phoneNumber = user.phone_number[0].Text;
				currentStatus = user.presence[0].status[0].Text;
				nickname = user.presence[0].nickname[0].Text;
				personnalMessage = user.presence[0].personnal_message[0].Text;
				locationPermission = user.presence[0].location_permission;
				
				if (layerMyLocationFlag)
					layerMyLocation.removeAll();
				layerMyLocationFlag = false;
				
				if (user.presence[0].location!=undefined) {
					myLocation = new LatLong(user.presence[0].location[0].latitude,user.presence[0].location[0].longitude);
					
					var locatorMarker = new Marker('myLocation',myLocation,meIcon,'Me','Last update: '+epochToHuman(user.presence[0].location[0].local_time),true,true);
					layerMyLocation.addShape(locatorMarker);
					layerMyLocationFlag = true;
					layerMyLocation.redraw();
				}
				
				document.getElementById("status").selectedIndex = statusToIndexNumber(currentStatus);
			
				document.getElementById("signInInfo").innerHTML = "Successfully sign in!";
				document.getElementById("signInInfo").className = "Notice";
				document.getElementById("helloUserTd").innerHTML = "Hello <b>" + firstName + "</b>";
				document.getElementById("signOutLink").style.display = "";
				document.getElementById("statusSpan").style.display = "";

				document.getElementById("contentDiv").innerHTML = getGeneralDefaultInnerHtml();
				document.getElementById("menuDiv").style.display = "";
				
				setTimeout("clearPopup('signInDiv')",1500);
				
				getMyInvitation();
				getMyAdminInvitation();
				getMyMessages();
				getMyFriends();
				getMyGroups();
			}
		} else {
			document.getElementById("signInInfo").innerHTML = "Invalid User name or password";
			document.getElementById("signInInfo").className = "NoticeRed";
		}
	}
	if (!checkField("0",document.signInDivFrm.userName,"Please enter your user name.",'','')) return false;
	if (!checkField("0",document.signInDivFrm.password,"Please enter your password.",'','')) return false;

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SIGN_IN", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"userName", document.signInDivFrm.userName.value,
							"password", document.signInDivFrm.password.value],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("signInInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function forgotPassword() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("signInInfo").innerHTML = "Your password have been sent to your email address.";
			document.getElementById("signInInfo").className = "Notice";
			
			setTimeout("clearPopup('signInDiv')",2500);
			setTimeout("document.getElementById('signInInfo').innerHTML = '';",2500);
		} else {
			document.getElementById("signInInfo").innerHTML = "Invalid User name";
			document.getElementById("signInInfo").className = "NoticeRed";
		}
	}
	if (!checkField("0",document.signInDivFrm.userName,"In order to get your password, please enter your user name.",'','')) return false;

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "FORGOT_USER_PASSWORD", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"userName", document.signInDivFrm.userName.value],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("signInInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function signOut() {
	location.reload();
}
/////////////////////////////////////////////
function signUp() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("searchButton").disabled = false;
			document.getElementById("searchValue").disabled = false;
			signinSuccess = true;
			userSession = json.session[0].Text;
			var user = json.user[0];
			firstName  = user.firstname[0].Text;
			lastName  = user.lastname[0].Text;
			
			firstName  = user.firstname[0].Text
			lastName  = user.lastname[0].Text
			userId = user.id;
			sex = user.gender[0].Text;
			country = user.country[0].Text;
			email = user.email[0].Text;
			phoneNumber = user.phone_number[0].Text;
			currentStatus = user.presence[0].status[0].Text;
			nickname = user.presence[0].nickname[0].Text;
			personnalMessage = user.presence[0].personnal_message[0].Text;
			locationPermission = user.presence[0].location_permission;
			
			document.getElementById("helloUserTd").innerHTML = "Hello <b>" + firstName + "</b>";
			document.getElementById("signOutLink").style.display = "";
			document.getElementById("statusSpan").style.display = "";

			document.getElementById("signUpSpan").style.display = "none";
			document.getElementById("signUpSuccess").style.display = "";
			document.getElementById("signUpInfo").innerHTML = "";
			
			document.getElementById("contentDiv").innerHTML = getGeneralDefaultInnerHtml();
			document.getElementById("menuDiv").style.display = "";
			
			getMyInvitation();
			getMyAdminInvitation();
			getMyMessages();
		} else {
			document.getElementById("signUpInfo").className = "NoticeRed";
			document.getElementById("signUpInfo").innerHTML = "Error";
			alert("The user name you have selected is not available or the mobile number is incorrect");
		}
	}
	var form = document.getElementById("signUpForm");
	if (!checkField("3",form.userNameSU,"User name must be six characters or more.",6,'')) return false;
	if (!checkField("13",form.userNameSU,"User name must be 15 characters or less.",15,'')) return false;
	if (!checkField("0",form.passwordSU,"Please choose a password.",'','')) return false; 
	if (!checkField("3",form.passwordSU,"Password must be six characters or more.",6,'')) return false;
	if (!checkField("13",form.passwordSU,"Password must be 12 characters or less.",12,'')) return false;
	if (!checkField("0",form.firstName,"Please enter your first name.",'','')) return false;  	
	if (!checkField("0",form.lastName,"Please enter your last name.",'','')) return false;
	
	if (form.sex.value=="...") {
		alert("Please choose your sex.");
		form.sex.focus();
		return false;
	}
	if (form.country.options[form.country.selectedIndex].text=="...") {
		alert("Please choose your country.");
		form.country.focus();
		return false;
	}
	if (!checkField("0",form.email,"Please enter your email.",'','')) return false;   
	if (!checkField("1",form.email,"Please enter a valid email.",'','')) return false;
	if (!checkField("0",form.phoneNumber,"Please enter your phone number.",'','')) return false;
	if (!checkField("3",form.phoneNumber,"Please enter a valid phone number.",11,'')) return false;
	if (!checkField("8",form.phoneNumber,"Please enter a valid phone number.",'','')) return false;
	if (form.phoneNumber.value.indexOf("0")==0){
		alert("Please enter a valid phone number.");
		return false;
	}
	form.phoneNumber.value = replaceAll(form.phoneNumber.value,"+","");

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "ADD_USER", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"userName", form.userNameSU.value,
							"password", form.passwordSU.value,
							"email", form.email.value,
							"firstName", form.firstName.value,
							"lastName", form.lastName.value,
							"gender", form.sex.value,
							"country", form.country.options[form.country.selectedIndex].text,
							"phoneNumber", form.phoneNumber.value],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("signUpInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function setStatus() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("statusInfo").innerHTML = '<img src="Images/apply.png" width="13" height="13" valign="center">';
			setTimeout('document.getElementById("statusInfo").innerHTML = "";',1000);
		} else {
			document.getElementById("").innerHTML = '';
			alert("Could not change your status. Please try again latter.");
		}
	}

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SET_USER_PRESENCE_STATUS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"sessionId", userSession,
							"status", document.getElementById("status").value],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("statusInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function getMyInvitation() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			noFriendsInvitation = false;
			noGroupsInvitation = false;
			MyInvitationsDivInnerHTML = "";
			
			if(json.group_invitation==undefined) {
				noGroupsInvitation = true;
			}
			else {
				for (i = 0; i < json.group_invitation.length; i++) {
					group = json.group_invitation[i].group[0];
					user = json.group_invitation[i].invitor[0].user[0];
					
					ownerFirstName = "";
					ownerLastName = "";
					ownerId = "";
					if(group.owner!=undefined) {
						ownerFirstName = group.owner[0].user[0].firstname[0].Text
						ownerLastName = group.owner[0].user[0].lastname[0].Text
						ownerId = group.owner[0].user[0].id
					}
					
					MyInvitationsDivInnerHTML+= '<img src="Images/Icons/rules_16.png" width="16" height="16" title="Group Invitation" alt="Group Invitation">&nbsp;';
					MyInvitationsDivInnerHTML+= '<a href="#" title="'+group.description[0].Text+'" onclick="showFriendDetails(\''+user.firstname[0].Text+'\',\''+user.lastname[0].Text+'\',\''+user.username[0].Text+'\',\'\',\'\',\''+user.country[0].Text+'\',\''+user.gender[0].Text+'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\''+user.id+'\',false)">'+user.firstname[0].Text+' '+user.lastname[0].Text+'</a> invite you to join <a href="#" title="'+group.description[0].Text+'" onclick="showGroupDetails(\'2\',\''+group.name[0].Text+'\',\''+group.description[0].Text+'\',\''+group.icon_url+'\',\''+ownerFirstName+'\',\''+ownerLastName+'\',\''+ownerId+'\',\''+group.id+'\',\'\',\'\')">'+group.name[0].Text+'</a> group.';
					MyInvitationsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Approve Invitation" alt="Approve Invitation" style="cursor:pointer" onclick="replyInvitation(0,\'APPROVE\',\''+user.id+'\',\''+group.id+'\',\''+json.group_invitation[i].id+'\')">&nbsp;<img src="Images/Icons/delete_8.png" width="8" height="8" title="Reject Invitation" alt="Reject Invitation" style="cursor:pointer" onclick="replyInvitation(0,\'REJECT\',\''+user.id+'\',\''+group.id+'\',\''+json.group_invitation[i].id+'\')"></br>';
				}
			}
			
			if(json.friend_invitation==undefined) {
				noFriendsInvitation = true;
			}
			else {
				for (i = 0; i < json.friend_invitation.length; i++) {
					user = json.friend_invitation[i].invitor[0].user[0];
					
					MyInvitationsDivInnerHTML+= '<img src="Images/Icons/regions_16.png" width="16" height="16" title="Friend Invitation" alt="Friend Invitation">&nbsp;';
					MyInvitationsDivInnerHTML+= '<a href="#" title="'+user.firstname[0].Text+' '+user.lastname[0].Text+'" onclick="showFriendDetails(\''+user.firstname[0].Text+'\',\''+user.lastname[0].Text+'\',\''+user.username[0].Text+'\',\'\',\'\',\''+user.country[0].Text+'\',\''+user.gender[0].Text+'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\''+user.id+'\',false)">'+user.firstname[0].Text+' '+user.lastname[0].Text+'</a> wants to be your friends.';
					MyInvitationsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Approve Invitation" alt="Approve Invitation" style="cursor:pointer" onclick="replyInvitation(1,\'APPROVE\',\''+user.id+'\',\'\',\''+json.friend_invitation[i].id+'\')">&nbsp;<img src="Images/Icons/delete_8.png" width="8" height="8" title="Reject Invitation" alt="Reject Invitation" style="cursor:pointer" onclick="replyInvitation(1,\'REJECT\',\''+user.id+'\',\'\',\''+json.friend_invitation[i].id+'\')"></br>';
				}
			}
			
			if ((noFriendsInvitation) && (noGroupsInvitation))
				document.getElementById("MyInvitationDiv").innerHTML = "<table class='Tips'><tr><td width='10''></td><td>There are no invitations.</td></tr></table>"
			else
				document.getElementById("MyInvitationDiv").innerHTML = MyInvitationsDivInnerHTML;
		} else {
			alert("Could not get your invitation list. Please try again latter.");
		}
	}
	document.getElementById("MyInvitationDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_OPEN_INVITATIONS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function getMyAdminInvitation() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			noAdminInvitation = false;
			MyAdminInvitationsDivInnerHTML = "";
			
			if(json.join_group_request==undefined) {
				noAdminInvitation = true;
			}
			else {
				for (i = 0; i < json.join_group_request.length; i++) {
					request_time = json.join_group_request[i].request_time;
					request_id = json.join_group_request[i].id;
					group = json.join_group_request[i].group[0];
					user = json.join_group_request[i].user[0];
					
					/*
					alert(group.id);
					alert(group.name[0].Text);
					alert(group.icon_url);
					alert(group.description[0].Text);
					
					alert(user.id);
					alert(user.firstname[0].Text+' '+user.lastname[0].Text);
					alert(user.lastname[0].Text);
					*/
					
					MyAdminInvitationsDivInnerHTML+= '<img src="Images/Icons/rules_16.png" width="16" height="16" title="Group Invitation Request" alt="Group Invitation Request">&nbsp;';
					MyAdminInvitationsDivInnerHTML+= '<a href="#" title="'+user.firstname[0].Text+' '+user.lastname[0].Text+'" onclick="showFriendDetails(\''+user.firstname[0].Text+'\',\''+user.lastname[0].Text+'\',\''+user.username[0].Text+'\',\'\',\'\',\''+user.country[0].Text+'\',\''+user.gender[0].Text+'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\''+user.id+'\',false)">'+user.firstname[0].Text+' '+user.lastname[0].Text+'</a> wants to join <a href="#" title="'+group.description[0].Text+'" onclick="showGroupDetails(\'2\',\''+group.name[0].Text+'\',\''+group.description[0].Text+'\',\''+group.icon_url+'\',\''+firstName+'\',\''+lastName+'\',\''+userId+'\',\''+group.id+'\',\'\',\'\')">'+group.name[0].Text+'</a> group.';
					MyAdminInvitationsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Approve Request" alt="Approve Request" style="cursor:pointer" onclick="replyAdminInvitation(\'APPROVE\',\''+user.id+'\',\''+group.id+'\',\''+request_id+'\')">&nbsp;<img src="Images/Icons/delete_8.png" width="8" height="8" title="Reject Request" alt="Reject Request" style="cursor:pointer" onclick="replyAdminInvitation(\'REJECT\',\''+user.id+'\',\''+group.id+'\',\''+request_id+'\')"></br>';
				}
			}
			if (noAdminInvitation)
				document.getElementById("MyAdminInvitationDiv").innerHTML = "<table class='Tips'><tr><td width='10''></td><td>There are no requests to join your groups.</td></tr></table>"
			else
				document.getElementById("MyAdminInvitationDiv").innerHTML = MyAdminInvitationsDivInnerHTML;
		} else {
			alert("Could not get your admin invitation list. Please try again latter.");
		}
	}
	document.getElementById("MyAdminInvitationDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_OPEN_JOIN_GROUP_REQUESTS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function getMyMessages() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			noMessages = false;
			MyMessagesDivInnerHTML = "";
			
			if(json.message==undefined) {
				noMessages = true;
			}
			else {
				for (i = 0; i < json.message.length; i++) {
					message_time = json.message[i].date_sent;
					message_marked_as_read = json.message[i].marked_as_read;
					message_id = json.message[i].id;
					message_title = json.message[i].title[0].Text;
					message_text = json.message[i].text[0].Text;
					
					sender_id = json.message[i].sender[0].user[0].id;
					sender_first_name = json.message[i].sender[0].user[0].firstname[0].Text;
					sender_last_name = json.message[i].sender[0].user[0].lastname[0].Text;
					
					MyMessagesDivInnerHTML+= '<img src="Images/Icons/rules_16.png" width="16" height="16" title="'+message_title+'" alt="'+message_title+'">&nbsp;';
					
					message_text = replaceAll(message_text,"\n","</br>");
					
					if (message_marked_as_read=="false")
						MyMessagesDivInnerHTML+= '<a href="#" title="'+message_title+'" onclick="showMessageDetails(\'true\',\''+message_title+'\',\''+message_text+'\',\''+sender_first_name+' '+sender_last_name+'\',\''+message_id+'\',\''+message_time+'\',\''+sender_id+'\')"><b>'+message_title+'</b></a> from '+sender_first_name+' '+sender_last_name;
					else
						MyMessagesDivInnerHTML+= '<a href="#" title="'+message_title+'" onclick="showMessageDetails(\'false\',\''+message_title+'\',\''+message_text+'\',\''+sender_first_name+' '+sender_last_name+'\',\''+message_id+'\',\''+message_time+'\',\''+sender_id+'\')">'+message_title+'</a> from '+sender_first_name+' '+sender_last_name;
					MyMessagesDivInnerHTML+= '</br>';
				}
			}
			if (noMessages)
				document.getElementById("MyMessagesDiv").innerHTML = "<table class='Tips'><tr><td width='10''></td><td>There are no new messages.</td></tr></table>"
			else
				document.getElementById("MyMessagesDiv").innerHTML = MyMessagesDivInnerHTML;
		} else {
			alert("Could not get your messages list. Please try again latter.");
		}
	}
	document.getElementById("MyMessagesDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_MESSAGES", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"fetchLimit", "20",
							//"unreadOnly", "true",
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function getStatusImage(statusText) {
	switch (statusText){
		case "Offline":
			return "<img src='Images/Icons/Offline.png' width='16' height='16' alt='Offline' title='Offline'>";
		break;
		case "Appear Offline":
			return "<img src='Images/Icons/Offline.png' width='16' height='16' alt='Offline' title='Offline'>";
		break;
		case "Away":
			return "<img src='Images/Icons/Away.png' width='16' height='16' alt='Away' title='Away'>";
		break;
		case "Busy":
			return "<img src='Images/Icons/Busy.png' width='16' height='16' alt='Busy' title='Busy'>";
		break;
		case "Online":
			return "<img src='Images/Icons/Online.png' width='16' height='16' alt='Online' title='Online'>";
		break;
	}
}
/////////////////////////////////////////////
function getFriend(friendId) {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			user = json.user[0];

			latitude = "";
			longitude = "";
			time = "";
			local_time = "";

			if (user.presence[0].location!=undefined) {
				latitude = user.presence[0].location[0].latitude;
				longitude = user.presence[0].location[0].longitude;
				time = user.presence[0].location[0].time;
				local_time = user.presence[0].location[0].local_time;
			}

			showFriendDetails(user.firstname[0].Text,user.lastname[0].Text,user.username[0].Text,user.email[0].Text,user.phone_number[0].Text,user.country[0].Text,user.gender[0].Text,user.presence[0].status[0].Text,user.presence[0].personnal_message[0].Text,user.presence[0].nickname[0].Text,latitude,longitude,time,local_time,user.id,false);
		} else {
			alert("Could not get your friend details. Please try again latter.");
		}
	}

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_SOCIAL_MEMBER_DETAILS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"memberId", friendId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function getMyFriends() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			MyFriendsDivInnerHTML = "";
			clearAddressesNodesIdsArr(myFriendsIdArr);
			
			if(json.user==undefined) {
				if (document.getElementById("MyFriendsDiv")!=undefined)
					document.getElementById("MyFriendsDiv").innerHTML = "<table class='devices'><tr><td width='10''></td><td><b>You have no friends yet.</b></td></tr></table>";
			}
			else {
				if (layerMyFriendsFlag)
					layerMyFriends.removeAll();
				layerMyFriendsFlag = false;
				
				for (i = 0; i < json.user.length; i++) {
					user = json.user[i];
					
					myFriendsIdArr.push(user.id);
					/*
					alert(user.id);
					alert(user.firstname[0].Text);
					alert(user.lastname[0].Text);
					alert(user.username[0].Text);
					alert(user.email[0].Text);
					alert(user.phone_number[0].Text);
					alert(user.country[0].Text);
					alert(user.gender[0].Text);
					alert(user.presence[0].status[0].Text);
					alert(user.presence[0].nickname[0].Text);
					alert(user.presence[0].personnal_message[0].Text);
					alert(user.presence[0].location[0].latitude);
					alert(user.presence[0].location[0].longitude);
					alert(user.presence[0].location[0].time);
					alert(user.presence[0].location[0].local_time);
					*/
					latitude = "";
					longitude = "";
					time = "";
					local_time = "";
					distanceView = "";
					nearMeIcon = "";
					if (user.presence[0].location!=undefined) {
						latitude = user.presence[0].location[0].latitude;
						longitude = user.presence[0].location[0].longitude;
						time = user.presence[0].location[0].time;
						local_time = user.presence[0].location[0].local_time;
						
						friendLocation = new LatLong(latitude,longitude);
						
						distanceFromFriend = getDistanceFromMe(friendLocation);
						if (distanceFromFriend!="N/A") {
							distanceView = rawDistanceToView(distanceFromFriend);
							if (distanceFromFriend<=nearMeMetters)
								nearMeIcon = "&nbsp;<img src='Images/Icons/nearme16.png' width='16' height='16' title='"+distanceView+"' alt='"+distanceView+"'>";
						}
						
						friendViewName = user.firstname[0].Text+' '+user.lastname[0].Text;
						if (user.presence[0].nickname[0].Text!="")
							friendViewName = user.presence[0].nickname[0].Text;
						
						if (user.gender[0].Text=="F")
							var locatorMarker = new Marker('myFriend|'+user.id,friendLocation,femaleIcon,friendViewName,'Last update: '+epochToHuman(local_time),true,true);
						else
							var locatorMarker = new Marker('myFriend|'+user.id,friendLocation,maleIcon,friendViewName,'Last update: '+epochToHuman(local_time),true,true);
						layerMyFriends.addShape(locatorMarker);
						layerMyFriendsFlag = true;
					}
					if (user.gender[0].Text=="F")
						MyFriendsDivInnerHTML+= '<img src="Images/Icons/Female.png" width="18" height="20" title="'+user.firstname[0].Text+' ' +user.lastname[0].Text+'" alt="'+user.firstname[0].Text+' ' +user.lastname[0].Text+'">&nbsp;';
					else
						MyFriendsDivInnerHTML+= '<img src="Images/Icons/Male.png" width="18" height="20" title="'+user.firstname[0].Text+' ' +user.lastname[0].Text+'" alt="'+user.firstname[0].Text+' ' +user.lastname[0].Text+'">&nbsp;';
					
					MyFriendsDivInnerHTML+= getStatusImage(user.presence[0].status[0].Text)+'&nbsp;';
					MyFriendsDivInnerHTML+= '<a href="#" title="'+distanceView+'" onclick="showFriendDetails(\''+user.firstname[0].Text+'\',\''+user.lastname[0].Text+'\',\''+user.username[0].Text+'\',\''+user.email[0].Text+'\',\''+user.phone_number[0].Text+'\',\''+user.country[0].Text+'\',\''+user.gender[0].Text+'\',\''+user.presence[0].status[0].Text+'\',\''+user.presence[0].personnal_message[0].Text+'\',\''+user.presence[0].nickname[0].Text+'\',\''+latitude+'\',\''+longitude+'\',\''+time+'\',\''+local_time+'\',\''+user.id+'\',true)">'+user.firstname[0].Text+' '+user.lastname[0].Text+'</a>';
					MyFriendsDivInnerHTML+= nearMeIcon;
					
					MyFriendsDivInnerHTML+= '&nbsp;<img src="Images/Icons/delete_8.png" width="8" height="8" title="Leave Friend" alt="Leave Friend" style="cursor:pointer" onclick="leaveFriend(\''+user.id+'\')"></br>';
				}
				layerMyFriends.redraw();
				if (document.getElementById("MyFriendsDiv")!=undefined)
					document.getElementById("MyFriendsDiv").innerHTML = MyFriendsDivInnerHTML;
			}
		} else {
			alert("Could not get your friends list. Please try again latter.");
		}
	}
	if (document.getElementById("MyFriendsDiv")!=undefined) {
		if (currentSideView!="2")
			document.getElementById("MyFriendsDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	}
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_FRIENDS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
// Intervals:
function keepLiveIntervalFunction() {
	if (signinSuccess)
		signIn();
}
function getMyFriendsIntervalFunction() {
	if (signinSuccess)
		getMyFriends();
}
function getCurrentGroupIntervalFunction() {
	if (layerMyCurrentGroupFlag)
		showHideGroupMembers(currentGroupCheckBoxObj,false);
}
keepLiveInterval = setInterval(keepLiveIntervalFunction,1000 * 60 * 15); //Sign in  every 15 minutes.
friendsInterval = setInterval(getMyFriendsIntervalFunction,1000 * 60); //Update location of my friends every 1 minutes.
currentGroupInterval = setInterval(getCurrentGroupIntervalFunction,1000 * 60); //Update location of current group every 1 minutes.
/////////////////////////////////////////////
function getMyGroups() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			MyGroupsDivInnerHTML = "";
			clearAddressesNodesIdsArr(myGroupsIdArr);
			
			if(json.group==undefined) {
				if (document.getElementById("MyGroupsDiv")!=undefined)
					document.getElementById("MyGroupsDiv").innerHTML = "<table class='devices'><tr><td width='10''></td><td><b>You have no groups yet.</b></td></tr></table>";
			}
			else {
				for (i = 0; i < json.group.length; i++) {
					group = json.group[i];
					myGroupsIdArr.push(group.id);
					/*
					alert(group.id);
					alert(group.name[0].Text);
					alert(group.icon_url);
					alert(group.description[0].Text);
					alert(group.owner[0].user[0].id);
					alert(group.owner[0].user[0].firstname[0].Text);
					alert(group.owner[0].user[0].lastname[0].Text);
					*/

					MyGroupsDivInnerHTML+= '<img src="Images/Icons/everybody_16.png" width="16" height="16" title="'+group.description[0].Text+'" alt="'+group.description[0].Text+'">&nbsp;';
					MyGroupsDivInnerHTML+= '<input type="radio" name="groupMembers" id="group'+group.id+'" value="'+group.id+'" onclick="showHideGroupMembers(this,true);">&nbsp;';
					MyGroupsDivInnerHTML+= '<a href="#" title="'+group.name[0].Text+'" onclick="showGroupDetails(\'1\',\''+group.name[0].Text+'\',\''+group.description[0].Text+'\',\''+group.icon_url+'\',\''+group.owner[0].user[0].firstname[0].Text+'\',\''+group.owner[0].user[0].lastname[0].Text+'\',\''+group.owner[0].user[0].id+'\',\''+group.id+'\',\''+group.access_type+'\',\''+group.invitation_type+'\')">'+group.name[0].Text+''+'</a>&nbsp;';
					
					editOK = false;
					//if (group.invitation_type=="MEMBER")
					//	editOK = true;
					//else {
						if (group.owner[0].user[0].id==userId)
							editOK = true;
					//}
					if (editOK)
						MyGroupsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Edit Group Details" alt="Edit Group Details" style="cursor:pointer" onclick="insertValuesToEditGroup(\''+group.id+'\',\''+group.name[0].Text+'\',\''+group.description[0].Text+'\',\''+group.access_type+'\',\''+group.invitation_type+'\');displayPopup(\'createGroupDiv\');document.getElementById(\'manageGroupTitleTD\').innerHTML=\'Edit Group\';document.getElementById(\'manageGroupSubmitButton\').value=\'Edit\';document.createGroupForm.groupId.value='+group.id+';document.createGroupForm.flagCmd.value=1">';
					else
						MyGroupsDivInnerHTML+= '<img src="Images/Icons/delete_8.png" width="8" height="8" title="Leave Group" alt="Leave Group" style="cursor:pointer" onclick="joinLeaveGroup(\'1\',\'LEAVE_GROUP\',\''+group.id+'\')">';
					MyGroupsDivInnerHTML+= '</br>';
				}
				if (document.getElementById("MyGroupsDiv")!=undefined)
					document.getElementById("MyGroupsDiv").innerHTML = MyGroupsDivInnerHTML;
			}
		} else {
			alert("Could not get your group list. Please try again latter.");
		}
	}
	if (document.getElementById("MyGroupsDiv")!=undefined)
		document.getElementById("MyGroupsDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_MEMBER_GROUPS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function replyInvitation(flag,reply,userId,groupId,invitationId) {
	if (reply=="REJECT") {
		var areYouSure = confirm("Are you sure you want to reject this invitation?")
		if (!areYouSure) {
			return false;
		}
	}
	
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			getMyInvitation();
		} else {
			alert("Could not reply invitaion. Please try again latter.");
		}
	}
	
	if (flag=="0") {
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "GROUP_INVITATION_REPLY",
								"key", ACCOUNT_KEY,
								"groupId", groupId,
								"invitationId", invitationId,
								"reply", reply,
								"appId", APP_ID,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
	}
	else {
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "FRIEND_INVITATION_REPLY",
								"key", ACCOUNT_KEY,
								"friendIds", userId,
								"invitationIds", invitationId,
								"reply", reply,
								"appId", APP_ID,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
	}
	
	Ajax.load(request)
}
/////////////////////////////////////////////
function replyAdminInvitation(reply,memberId,groupId,invitationId) {
	if (reply=="REJECT") {
		var areYouSure = confirm("Are you sure you want to reject this request?")
		if (!areYouSure) {
			return false;
		}
	}
	
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			getMyAdminInvitation();
		} else {
			alert("Could not reply request. Please try again latter.");
		}
	}
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "JOIN_GROUP_REPLY",
							"key", ACCOUNT_KEY,
							"groupId", groupId,
							"memberId", memberId,
							"joinGroupRequestId", invitationId,
							"reply", reply,
							"appId", APP_ID,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	
	Ajax.load(request)
}
/////////////////////////////////////////////
function sendInvitation(flag,userId) {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			alert("Invitation have been sent.");
		} else {
			alert("Could not send invitaion. Please try again latter.");
		}
	}
	
	if (flag=="0") {
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "INVITE_NEW_FRIENDS",
								"key", ACCOUNT_KEY,
								"friendIds", userId,
								"appId", APP_ID,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
	}
	else {
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "JOIN_GROUP_INVITATION",
								"key", ACCOUNT_KEY,
								"groupId", groupId,
								"invitedUserIds", invitedUserIds,
								"appId", APP_ID,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
	}
	
	Ajax.load(request);
}
/////////////////////////////////////////////
function editMyAccount() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			var user = json.user[0];
			firstName  = user.firstname[0].Text;
			lastName  = user.lastname[0].Text;
			
			sex = user.gender[0].Text;
			country = user.country[0].Text;
			email = user.email[0].Text;
			phoneNumber = user.phone_number[0].Text;
			
			document.getElementById("editAccountInfo").innerHTML = "Successfull!";
			document.getElementById("editAccountInfo").className = "Notice";
			document.getElementById("helloUserTd").innerHTML = "Hello <b>" + firstName + "</b>";
			
			setTimeout("clearPopup('editAccountDiv')",1500);
			
		} else {
			document.getElementById("editAccountInfo").className = "NoticeRed";
			document.getElementById("editAccountInfo").innerHTML = "Error";
			alert("Could not update your account details. Try again latter.");
		}
		setTimeout("document.getElementById('editAccountInfo').innerHTML = ''",1500);
	}
	var form = document.getElementById("editAccountForm");
	if (!checkField("0",form.firstNameNew,"Please enter your first name.",'','')) return false;  	
	if (!checkField("0",form.lastNameNew,"Please enter your last name.",'','')) return false;
	
	if (form.sexNew.value=="...") {
		alert("Please choose your sex.");
		form.sexNew.focus();
		return false;
	}
	if (form.countryNew.options[form.countryNew.selectedIndex].text=="...") {
		alert("Please choose your country.");
		form.countryNew.focus();
		return false;
	}
	if (!checkField("0",form.emailNew,"Please enter your email.",'','')) return false;   
	if (!checkField("1",form.emailNew,"Please enter a valid email.",'','')) return false;
	if (!checkField("0",form.phoneNumberNew,"Please enter your phone number.",'','')) return false;
	if (!checkField("3",form.phoneNumberNew,"Please enter a valid phone number.",11,'')) return false;
	if (!checkField("8",form.phoneNumberNew,"Please enter a valid phone number.",'','')) return false;
	if (form.phoneNumberNew.value.indexOf("0")==0){
		alert("Please enter a valid phone number.");
		return false;
	}
	form.phoneNumberNew.value = replaceAll(form.phoneNumberNew.value,"+","");
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "UPDATE_USER", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"email", form.emailNew.value,
							"firstName", form.firstNameNew.value,
							"lastName", form.lastNameNew.value,
							"gender", form.sexNew.value,
							"country", form.countryNew.options[form.countryNew.selectedIndex].text,
							"phoneNumber", form.phoneNumberNew.value,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("editAccountInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function insertValuesToEditAccount() {
	var form = document.getElementById("editAccountForm");
	form.firstNameNew.value = firstName;
	form.lastNameNew.value = lastName;
	if (sex=="F")
		form.sexNew.selectedIndex=1;
	else
		form.sexNew.selectedIndex=2;
	form.countryNew.selectedIndex = 0;
	form.countryNew.value = country;
	form.emailNew.value = email;
	form.phoneNumberNew.value = phoneNumber;
}
/////////////////////////////////////////////
function insertValuesToEditProfile() {
	var form = document.getElementById("editProfileForm");
	form.nickname.value = nickname;
	form.personnalMessage.value = personnalMessage;
	if (locationPermission=="0")
		form.locationPermission.selectedIndex=0;
	else
		form.locationPermission.selectedIndex=1;
}
/////////////////////////////////////////////
function editMyProfile() {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			var user = json.user[0];
			nickname = user.presence[0].nickname[0].Text;
			personnalMessage = user.presence[0].personnal_message[0].Text;
			locationPermission = user.presence[0].location_permission;
			
			if (uploadIconStatus=="1") {
				document.getElementById("editProfileInfo").innerHTML = "Successfull!";
				document.getElementById("editProfileInfo").className = "Notice";
				setTimeout("clearPopup('editProfileDiv')",1500);
			}
			updateProfileStatus = "1";
		} else {
			if (uploadIconStatus=="1") {
				document.getElementById("editProfileInfo").className = "NoticeRed";
				document.getElementById("editProfileInfo").innerHTML = "Error";
			}
			updateProfileStatus = "2";
			alert("Could not update your profile. Try again latter.");
		}
		if (uploadIconStatus=="1")
			setTimeout("document.getElementById('editProfileInfo').innerHTML = ''",1500);
	}
	
	var form = document.getElementById("editProfileForm");
	if (!checkField("0",form.nickname,"Please enter your nickname.",'','')) return false;
	if (form.iconFile.value!="") {
		if (!checkField("5",form.iconFile,"Please choose valid file type(JPG, PNG).",'','')) return false;
	}
	else
		uploadIconStatus = "1";

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SET_USER_PRESENCE_DETAILS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"locationPermission", form.locationPermission.value,
							"nickName", form.nickname.value,
							"personnalMessage", form.personnalMessage.value,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("editProfileInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request);
	
	if (form.iconFile.value!="") {
		var form = document.editProfileForm;
		form.cmd.value = "SET_USER_PRESENCE_ICON";
		form.key.value = ACCOUNT_KEY;
		form.appId.value = APP_ID;
		form.sessionId.value = userSession;
		form.submit();
	}
}
/////////////////////////////////////////////
function onSignUpUploadIframeLoaded() {
	if (firstLoad) {
		firstLoad = false;
		return true;
	}
	
//	var D=document.getElementById('signUpUploadIframe').contentWindow.document;
//	alert(D.documentElement.innerHTML);
//	alert(D.body.innerHTML);
	//frameBody = window.frames["signUpUploadIframe"].document.getElementsByTagName("body")[0].innerHTML;
	//frameBody = document.getElementById("signUpUploadIframe").document.getElementsByTagName("body")[0].innerHTML;
	//alert(frameBody);

	uploadSuccess = true;
	if (uploadSuccess) {
		uploadIconStatus = "1";
		if (updateProfileStatus=="1") {
			document.getElementById("editProfileInfo").innerHTML = "Successfull!";
			document.getElementById("editProfileInfo").className = "Notice";
			setTimeout("clearPopup('editProfileDiv')",1500);
		}
	} else {
		uploadIconStatus = "2";
		if (updateProfileStatus=="1") {
			document.getElementById("editProfileInfo").className = "NoticeRed";
			document.getElementById("editProfileInfo").innerHTML = "Error";
		}
		alert("Could not upload icon. Try again latter.");
	}
	if (updateProfileStatus=="1")
		setTimeout("document.getElementById('editProfileInfo').innerHTML = ''",1500);
}
/////////////////////////////////////////////
function clearGroupFormValues() {
	var form = document.getElementById("createGroupForm");
	form.groupName.value = "";
	form.groupDescription.value = "";
	document.getElementById("createGroupInfo").innerHTML = "";
}
/////////////////////////////////////////////
function insertValuesToEditGroup(groupId,groupName,groupDescription,accessType,invitationType) {
	var form = document.getElementById("createGroupForm");
	form.flagCmd.value = "1";
	form.groupId.value = groupId;
	form.groupName.value = groupName;
	form.groupDescription.value = groupDescription;
	form.accessType.value = accessType;
	form.invitationType.value = invitationType;
}
/////////////////////////////////////////////
function manageGroup() {
	var form = document.getElementById("createGroupForm");
	groupId = form.groupId.value;
	flag = form.flagCmd.value;
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("createGroupInfo").innerHTML = "Successfull!";
			document.getElementById("createGroupInfo").className = "Notice";
			
			getMyGroups();
			setTimeout("clearPopup('createGroupDiv')",1500);
			setTimeout("clearGroupFormValues()",1500);
			
		} else {
			document.getElementById("createGroupInfo").className = "NoticeRed";
			document.getElementById("createGroupInfo").innerHTML = "Error";
			if (flag=="0")
				alert("Could not create group. Try again latter.");
			else
				alert("Could not edit group. Try again latter.");
		}
	}

	if (!checkField("0",form.groupName,"Please enter group name.",'','')) return false;
	if (!checkField("0",form.groupDescription,"Please enter group description.",'','')) return false;
	
	if (flag=="0") {
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "ADD_NEW_GROUP",
								"key", ACCOUNT_KEY,
								"appId", APP_ID,
								"accessType", form.accessType.value,
								"groupDescription", form.groupDescription.value,
								"groupName", form.groupName.value,
								"invitationType", form.invitationType.value,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
	}
	else {
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "UPDATE_GROUP_DETAILS",
								"key", ACCOUNT_KEY,
								"appId", APP_ID,
								"accessType", form.accessType.value,
								"groupDescription", form.groupDescription.value,
								"groupName", form.groupName.value,
								"invitationType", form.invitationType.value,
								"groupId", groupId,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
	}
	document.getElementById("createGroupInfo").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request);
}
/////////////////////////////////////////////
function joinLeaveGroup(flag,cmd,groupId) {
	if (cmd=="LEAVE_GROUP") {
		var areYouSure = confirm("Are you sure you want to leave this group?")
		if (!areYouSure) {
			return false;
		}
	}
	
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			if (cmd=="JOIN_GROUP") {
				if (json.join_group_result[0].Text=="JOIN_REQUEST_SENT")
					alert("A request to join this group have been sent!");
				else if (json.join_group_result[0].Text=="OK") {
					alert("Successful join group!");
					myGroupsIdArr.push(groupId);
				}
			}
			else if (cmd=="LEAVE_GROUP") {
				myGroupsIdArr.removeItems([groupId]);
				alert("You have just left this group!");
			}
			if (flag=="0")
				searchGroups(searchValue);
			else if (flag=="1")
				getMyGroups();
		} else {
			alert("Could not join group. Try again latter.");
		}
	}

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", cmd,
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"groupId", groupId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request);
}
/////////////////////////////////////////////
function leaveFriend(friendId) {
	var areYouSure = confirm("Are you sure you want to leave this friend?")
	if (!areYouSure) {
		return false;
	}
	
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			alert("You have just left this friend!");
			
			getMyFriends();
		} else {
			alert("Could not leave friend. Try again latter.");
		}
	}

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "REMOVE_FRIENDS",
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"friendIds", friendId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request);
}
/////////////////////////////////////////////
var currentGroupToInvite;
function setCurrentGroupToInvite(obj) {
	currentGroupToInvite = obj.value;
}
/////////////////////////////////////////////
function sendGroupInvitation(userCurrentId) {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			alert("Invitation have been sent.");
		} else {
			alert("Could not send invitation. Try again latter.");
		}
	}

	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "JOIN_GROUP_INVITATION",
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"groupId", currentGroupToInvite,
							"invitedUserIds", userCurrentId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request);
}
/////////////////////////////////////////////
function showInviteToMyGroup(obj,userCurrentId) {
	if ((obj.innerHTML!="Invite To My Groups") && (obj.innerHTML!="<u>Invite To My Groups</u>"))
		return false;
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			if(json.group==undefined) {
				alert("You have no groups to invite to or the user already in your groups.");
			}
			else {
				MyGroupsToInvite = "<select onchange='setCurrentGroupToInvite(this)'>";
				for (i = 0; i < json.group.length; i++) {
					group = json.group[i];
					/*
					alert(group.id);
					alert(group.name[0].Text);
					alert(group.icon_url);
					alert(group.description[0].Text);
					alert(group.owner[0].user[0].id);
					alert(group.owner[0].user[0].firstname[0].Text);
					alert(group.owner[0].user[0].lastname[0].Text);
					*/
					if (i==0) // Set the first one...
						currentGroupToInvite = group.id;
					MyGroupsToInvite += "<option value='"+group.id+"'>"+group.name[0].Text+"</option>";
				}
				MyGroupsToInvite += "</select>&nbsp;<span onclick='sendGroupInvitation(\""+userCurrentId+"\");' style='cursor:pointer;color:blue;'>Invite!</span>";
				if (obj!=undefined)
					obj.innerHTML = MyGroupsToInvite;
			}
		} else {
			alert("Could not invite to your groups. Try again latter.");
		}
	}
	if (obj!=undefined)
		obj.innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "GET_GROUPS_FOR_INVITATION",
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"invitedUserId", userCurrentId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request);
}
/////////////////////////////////////////////
function showFriendDetails(firstName,lastName,userName,email,phoneNumber,country,gender,status,personnalMessage,nickname,latitude,longitude,time,localTime,userCurrentId,centerToZoomlevel) {
	hideBubble();
	if (latitude=="") { 
		displayPopup('friendInfoDiv');
		document.getElementById('friendInfoTitleTD').innerHTML = firstName+' '+lastName+' Details';
		document.getElementById('friendInfoName').innerHTML = firstName+' '+lastName;
		//document.getElementById('friendInfoUsername').innerHTML=userName;
		if (nickname=="")
			document.getElementById('friendInfoNickname').innerHTML = "N/A";
		else
			document.getElementById('friendInfoNickname').innerHTML = nickname;
		if (email=="")
			document.getElementById('friendInfoEmail').innerHTML = "N/A";
		else
			document.getElementById('friendInfoEmail').innerHTML = "<a href='mailto:"+email+"'>"+email+"</a>";
		if (phoneNumber=="")
			document.getElementById('friendInfoPhoneNumber').innerHTML = "N/A";
		else
			document.getElementById('friendInfoPhoneNumber').innerHTML = phoneNumber;
		document.getElementById('friendInfoCountry').innerHTML=country;
		
		if (gender!="") {
			if (gender=="F")
				document.getElementById('friendInfoGender').innerHTML = '<img src="Images/Icons/Female.png" width="18" height="20" title="'+firstName+' '+lastName+'" alt="'+firstName+' '+lastName+'">&nbsp;';
			else
				document.getElementById('friendInfoGender').innerHTML = '<img src="Images/Icons/Male.png" width="18" height="20" title="'+firstName+' '+lastName+'" alt="'+firstName+' '+lastName+'">&nbsp;';
		}
		
		if (status=="")
			document.getElementById('friendInfoStatus').innerHTML = "N/A";
		else
			document.getElementById('friendInfoStatus').innerHTML = getStatusImage(status);
		
		if (personnalMessage=="")
			document.getElementById('friendInfoPersonalMessage').innerHTML = "N/A";
		else
			document.getElementById('friendInfoPersonalMessage').innerHTML = personnalMessage;
		
		if (!myFriendsIdArr.exists(userCurrentId)) { // not my friend
			document.getElementById('friendCommands').innerHTML = '<a href="#" onclick="sendInvitation(0,\''+userCurrentId+'\');">Invite Friend</a>&nbsp;&nbsp;';
		}
		else
			document.getElementById('friendCommands').innerHTML = '';
		
		document.getElementById('friendCommands').innerHTML += '<span onclick="showInviteToMyGroup(this,\''+userCurrentId+'\');" style="cursor:pointer;color:blue;"><u>Invite To My Groups</u></span>&nbsp;';
		document.getElementById('friendCommands').innerHTML += '<span onclick="showSendMessageWindow(\''+firstName+' '+lastName+'\',\''+userCurrentId+'\');" style="cursor:pointer;color:blue;"><u>Send Message</u></span>';
	}
	else {
		bubbleHtml = '<div class="infoValue">';
		if (nickname!="")
			bubbleHtml += 'Nickname: '+nickname+'</br>';
		if (email!="")
			bubbleHtml += 'Email: <a href="mailto:'+email+'">'+email+'</a></br>';
		if (phoneNumber!="")
			bubbleHtml += 'Phone Number: '+phoneNumber+'</br>';
		bubbleHtml += 'Country: '+country+'</br>';
		if (personnalMessage!="")
			bubbleHtml += 'Personnal Message: '+reduceText(personnalMessage,50)+"&nbsp;";
		bubbleHtml += '<span onclick="showInviteToMyGroup(this,\''+userCurrentId+'\');" style="cursor:pointer;color:blue;">Invite To My Groups</span>';
		bubbleHtml += '</div>';

		if (gender=="F")
			bubbleTitle= '<img src="Images/Icons/Female.png" width="18" height="20" title="'+firstName+' '+lastName+'" alt="'+firstName+' '+lastName+'">&nbsp;';
		else
			bubbleTitle= '<img src="Images/Icons/Male.png" width="18" height="20" title="'+firstName+' '+lastName+'" alt="'+firstName+' '+lastName+'">&nbsp;';
		if (status!="")
			bubbleTitle += getStatusImage(status)+'&nbsp;';
		bubbleTitle += '<span onclick="hideBubble();showSendMessageWindow(\''+firstName+' '+lastName+'\',\''+userCurrentId+'\');" style="cursor:pointer;"><img src="Images/Email.png" width="16" height="15" alt="Send Message" title="Send Message"></span>&nbsp;';
		bubbleTitle += firstName+' '+lastName;
		
		addBubble(bubbleHtml,bubbleTitle,latitude,longitude,"ltr");
		if (centerToZoomlevel==true)
			map.setCenterPosition(new LatLong(latitude,longitude),-6);
		else
			map.setCenterPosition(new LatLong(latitude,longitude));
	}
}
/////////////////////////////////////////////
function showGroupDetails(flag,groupName,groupDescription,iconUrl,ownerFirstName,ownerLastName,ownerId,groupId,accessType,invitationType) {
	displayPopup('groupInfoDiv');
	document.getElementById('groupInfoTitleTD').innerHTML=groupName+' details';
	document.getElementById('GroupInfoName').innerHTML=groupName;
	document.getElementById('groupInfoDescription').innerHTML=groupDescription;
	if (ownerId==userId)
		document.getElementById('groupInfoOwner').innerHTML="You are!";
	else
		document.getElementById('groupInfoOwner').innerHTML=ownerFirstName+' '+ownerLastName;
	
	document.getElementById('groupCommands').innerHTML = '';
	
	if (ownerId==userId) // I'm the owner
		document.getElementById('groupCommands').innerHTML = '<a href="#" onclick="hideLayer(\'shadow\',\'groupInfoDiv\');insertValuesToEditGroup(\''+groupId+'\',\''+groupName+'\',\''+groupDescription+'\',\''+accessType+'\',\''+invitationType+'\');displayPopup(\'createGroupDiv\');document.getElementById(\'manageGroupTitleTD\').innerHTML=\'Edit Group\';document.getElementById(\'manageGroupSubmitButton\').value=\'Edit\';document.createGroupForm.groupId.value='+groupId+';document.createGroupForm.flagCmd.value=1">Edit Group</a>&nbsp;&nbsp;';
	if ((myGroupsIdArr.exists(groupId)) && (ownerId!=userId)) // In my group already
		document.getElementById('groupCommands').innerHTML += '<a href="#" onclick="joinLeaveGroup(\''+flag+'\',\'LEAVE_GROUP\',\''+groupId+'\')">Leave Group</a>&nbsp;&nbsp;';
}
/////////////////////////////////////////////
function showMessageDetails(flag,messageTitle,messageText,sender,messageId,messageTime,senderId) {
	displayPopup('messageInfoDiv');
	document.getElementById('messageInfoTitleTD').innerHTML=messageTitle;
	document.getElementById('messageSenderNameAndDate').innerHTML="Sender: "+sender+", sent: "+epochToHuman(messageTime);
	document.getElementById('messageDescription').innerHTML=messageText;
	
	document.getElementById('currentMessageId').value = messageId;
	document.getElementById('currentSenderId').value = senderId;
	document.getElementById('currentSenderName').value = sender;
	document.getElementById('currentMessageReadUnRead').value = flag;
	document.getElementById('messageCommands').innerHTML = '';
}
/////////////////////////////////////////////
function deleteMessage(messageId) {
	var areYouSure = confirm("Are you sure you want to delete this message?")
	if (!areYouSure) {
		return false;
	}
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("messageCommands").innerHTML = "";
			getMyMessages();
			hideLayer('shadow','messageInfoDiv');
		} else {
			alert("Could not delete message. Please try again latter.");
		}
	}
	document.getElementById("messageCommands").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "DELETE_MESSAGES", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"messageIds", messageId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function showReplyWindow() {
	hideLayer('shadow','messageInfoDiv');
	showLayer('shadow','sendMessageInfoDiv');
	document.getElementById('sendMessageToUsers').innerHTML = document.getElementById('currentSenderName').value;
	document.getElementById('sendToUserId').value = document.getElementById('currentSenderId').value;
	markMessage(2,document.getElementById('currentMessageId').value);
}
/////////////////////////////////////////////
function showSendMessageWindow(sendToUserName,sendToUserId) {
	hideLayer('shadow','friendInfoDiv');
	showLayer('shadow','sendMessageInfoDiv');
	document.getElementById('sendMessageToUsers').innerHTML = sendToUserName;
	document.getElementById('sendToUserId').value = sendToUserId;
}
/////////////////////////////////////////////
function markMessage(flag,messageId) {
	if ((flag=="0") || (flag=="2")) {
		cmd = "MARK_MESSAGES_AS_READ";
		if ((document.getElementById('currentMessageReadUnRead').value=="false") && (flag=="0")) {
			hideLayer('shadow','messageInfoDiv');
			return false;
		}
	}
	else {
		cmd = "MARK_MESSAGES_AS_UNREAD";
		if (document.getElementById('currentMessageReadUnRead').value=="true") {
			hideLayer('shadow','messageInfoDiv');
			return false;
		}
	}
	
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("messageCommands").innerHTML = "";
			getMyMessages();
			if (flag!="2")
				hideLayer('shadow','messageInfoDiv');
		} else {
			alert("Could not update message status. Please try again latter.");
		}
	}
	document.getElementById("messageCommands").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", cmd, 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"messageIds", messageId,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function sendMessage() {
	if (!checkField("0",document.getElementById('sendMessageSubject'),"Please enter subject.",'','')) return false;   
	if (!checkField("0",document.getElementById('sendMessageDescription'),"Please enter body message.",'','')) return false;   
	
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			document.getElementById("sendMessageCommands").innerHTML = "";
			hideLayer('shadow','sendMessageInfoDiv');
			document.getElementById("sendToUserId").value = "";
			document.getElementById("sendMessageSubject").value = "";
			document.getElementById("sendMessageDescription").value = "";
			alert("Message have been sent.");
		} else {
			alert("Could not send message. Please try again latter.");
		}
	}
	document.getElementById("sendMessageCommands").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	
	message_text = replaceAll(document.getElementById("sendMessageDescription").value,"\n","</br>");
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SEND_MESSAGE", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"recipientIds", document.getElementById("sendToUserId").value,
							"messageTitle", document.getElementById("sendMessageSubject").value,
							"messageText", message_text,
							"mediaPath", "",
							"mediaThumbnailPath", "",
							"poiId", "",
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	Ajax.load(request)
}
/////////////////////////////////////////////
function showMediaDetails(num,titleText,description,mediaTime,mediaLocalTime,url,thumbUrl,latitude,longitude,locationTime,locationLocalTime,centerToZoomlevel) {
	currentMediaSearchNum = num;
	if (latitude=="") { 
		displayPopup('mediaInfoDiv');
		document.getElementById('mediaInfoTitleTD').innerHTML=titleText;
		document.getElementById('mediaInfoDescTD').innerHTML=description;
		document.getElementById('mediaInfoImg').src=url;
		document.getElementById('mediaInfoTimeTD').innerHTML=epochToHuman(mediaLocalTime);
	}
	else {
		bubbleTitle = titleText;
		bubbleHtml = '<span class="smallestTitle">'+description+'</span></br>';
		bubbleHtml += '<img src="'+thumbUrl+'"></br>';
		bubbleHtml += '<span class="infoDark">'+epochToHuman(mediaLocalTime)+'</span></br>';
		bubbleHtml += '<a href="#" onclick="javascript:hideBubble();currentMediaSearchNum--;loadNextImage();">Enlarge image</a></br>';
		
		addBubble(bubbleHtml,bubbleTitle,latitude,longitude,"ltr");
		if (centerToZoomlevel==true)
			map.setCenterPosition(new LatLong(latitude,longitude),-6);
		else
			map.setCenterPosition(new LatLong(latitude,longitude));
	}
}
/////////////////////////////////////////////
function loadNextImage() {
	if (mediaSearchDetailsArr.length-1<=currentMediaSearchNum) // Go to first image.
		currentMediaSearchNum = 0;
	else
		currentMediaSearchNum++;
	document.getElementById('mediaInfoImg').src = "Images/Icons/ajax-loader.gif";
	showMediaDetails(currentMediaSearchNum,mediaSearchDetailsArr[currentMediaSearchNum][0],mediaSearchDetailsArr[currentMediaSearchNum][1],mediaSearchDetailsArr[currentMediaSearchNum][2],mediaSearchDetailsArr[currentMediaSearchNum][3],mediaSearchDetailsArr[currentMediaSearchNum][4],mediaSearchDetailsArr[currentMediaSearchNum][5],"","",mediaSearchDetailsArr[currentMediaSearchNum][8],mediaSearchDetailsArr[currentMediaSearchNum][9],false);
	
}
/////////////////////////////////////////////
function downloadImage() {
	window.open("http://www.cometogethr.com/downloadImage.asp?url="+mediaSearchDetailsArr[currentMediaSearchNum][4]+"&fn="+mediaSearchDetailsArr[currentMediaSearchNum][0]);
}
/////////////////////////////////////////////
function printImage() {
	window.open("http://www.cometogethr.com/printImage.asp?url="+mediaSearchDetailsArr[currentMediaSearchNum][4]+"&title="+mediaSearchDetailsArr[currentMediaSearchNum][0]+"&description="+mediaSearchDetailsArr[currentMediaSearchNum][1]+"&mediaTime="+mediaSearchDetailsArr[currentMediaSearchNum][2]+"&mediaLocalTime="+mediaSearchDetailsArr[currentMediaSearchNum][3]+"&latitude="+mediaSearchDetailsArr[currentMediaSearchNum][6]+"&longitude="+mediaSearchDetailsArr[currentMediaSearchNum][7]);
}
/////////////////////////////////////////////
function onSearchKeyUp(e) {
	var unicode=e.keyCode? e.keyCode : e.charCode;
	if(unicode == 13) { // Enter Key
		search();
	}
}
/////////////////////////////////////////////
function search() {
	if (!checkField("0",document.getElementById('searchValue'),"Please enter your search value.",'','')) return false;   
	setSideView("4","");
	searchValue = document.getElementById('searchValue').value;
	searchUsers(searchValue);
	searchGroups(searchValue);
	searchMedia(searchValue);
}
/////////////////////////////////////////////
function searchUsers(searchValue) {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			searchUsersResultsDivInnerHTML = "";
			if(json.user==undefined) { // No results.
				document.getElementById("searchResultsUsersDiv").innerHTML = "<table class='Tips'><tr><td width='10''></td><td>No results for users.</td></tr></table>";
			}
			else {
				searchUsersResultsDivInnerHTML+="<table class='smallestTitle'><tr><td width='10''></td><td><b>Users...</b></td></tr></table>";
				for (i = 0; i < json.user.length; i++) {
					var user = json.user[i];
					//alert(user.id);
					//alert(user.firstname[0].Text);
					//alert(user.lastname[0].Text);
					//alert(user.country[0].Text);
					//alert(user.gender[0].Text);
					
					firstLastName = user.firstname[0].Text+' '+user.lastname[0].Text;
					
					if (user.gender[0].Text=="F")
						searchUsersResultsDivInnerHTML+= '<img src="Images/Icons/Female.png" width="18" height="20" title="'+firstLastName+'" alt="'+firstLastName+'">&nbsp;';
					else
						searchUsersResultsDivInnerHTML+= '<img src="Images/Icons/Male.png" width="18" height="20" title="'+firstLastName+'" alt="'+firstLastName+'">&nbsp;';
					if (user.id!=userId) {
						searchUsersResultsDivInnerHTML+= '<a href="#" title="'+firstLastName+'"  onclick="showFriendDetails(\''+user.firstname[0].Text+'\',\''+user.lastname[0].Text+'\',\''+user.username[0].Text+'\',\'\',\'\',\''+user.country[0].Text+'\',\''+user.gender[0].Text+'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\''+user.id+'\',true)">'+firstLastName+'</a> ('+user.country[0].Text+')';
						if (!myFriendsIdArr.exists(user.id))
							searchUsersResultsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Invite Friend" alt="Invite Friend" style="cursor:pointer" onclick="sendInvitation(0,\''+user.id+'\')">';
					}
					else
						searchUsersResultsDivInnerHTML+= '<span title="That\'s me!" style="cursor:default;color:#FF1111">'+firstLastName+'('+user.country[0].Text+')</span>';
					
					searchUsersResultsDivInnerHTML+='</br>';
				}
				document.getElementById("searchResultsUsersDiv").innerHTML = searchUsersResultsDivInnerHTML;
			}
		} else {
			alert("Could not search for users. Try again latter.");
		}
	}
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SEARCH_USERS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"searchText", searchValue,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("searchResultsUsersDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function searchGroups(searchValue) {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			searchGroupsResultsDivInnerHTML = "";
			if(json.group==undefined) { // No results.
				document.getElementById("searchResultsGroupsDiv").innerHTML = "<table class='Tips'><tr><td width='10''></td><td>No results for groups.</td></tr></table>"
			}
			else {
				searchGroupsResultsDivInnerHTML+="<table class='smallestTitle'><tr><td width='10''></td><td><b>Groups...</b></td></tr></table>";
				for (i = 0; i < json.group.length; i++) {
					var group = json.group[i];
					/*
					alert(group.id);
					alert(group.name[0].Text);
					alert(group.icon_url);
					alert(group.access_type);
					alert(group.invitation_type);
					alert(group.description[0].Text);
					
					alert(group.owner[0].user[0].id);
					alert(group.owner[0].user[0].firstname[0].Text);
					alert(group.owner[0].user[0].lastname[0].Text);
					alert(group.owner[0].user[0].username[0].Text);
					alert(group.owner[0].user[0].country[0].Text);
					alert(group.owner[0].user[0].gender[0].Text);
					*/
					
					searchGroupsResultsDivInnerHTML+= '<img src="Images/Icons/groups16.png" width="16" height="16" title="'+group.description[0].Text+'" alt="'+group.description[0].Text+'">&nbsp;';
						
					searchGroupsResultsDivInnerHTML+= '<a href="#" title="'+group.description[0].Text+'" onclick="showGroupDetails(\'0\',\''+group.name[0].Text+'\',\''+group.description[0].Text+'\',\''+group.icon_url+'\',\''+group.owner[0].user[0].firstname[0].Text+'\',\''+group.owner[0].user[0].lastname[0].Text+'\',\''+group.owner[0].user[0].id+'\',\''+group.id+'\',\''+group.access_type+'\',\''+group.invitation_type+'\')">'+group.name[0].Text+'</a>';
					//searchGroupsResultsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Approve Invitation" alt="Approve Invitation" style="cursor:pointer" onclick="replyInvitation(0,\'APPROVE\',\''+user.id+'\',\''+group.id+'\',\''+json.group_invitation[i].id+'\')">&nbsp;<img src="Images/Icons/delete_8.png" width="8" height="8" title="Reject Invitation" alt="Reject Invitation" style="cursor:pointer" onclick="replyInvitation(0,\'REJECT\',\''+user.id+'\',\''+group.id+'\',\''+json.group_invitation[i].id+'\')"></br>';
					
					if (group.owner[0].user[0].id!=userId) { // Not my group
						if (myGroupsIdArr.exists(group.id)) // Already in this group
							searchGroupsResultsDivInnerHTML+= '<img src="Images/Icons/delete_8.png" width="8" height="8" title="Leave Group" alt="Leave Group" style="cursor:pointer" onclick="joinLeaveGroup(\'0\',\'LEAVE_GROUP\',\''+group.id+'\')">';
						else // Not in this group
							searchGroupsResultsDivInnerHTML+= '<img src="Images/Icons/apply.png" width="13" height="13" title="Join Group" alt="Join Group" style="cursor:pointer" onclick="joinLeaveGroup(\'0\',\'JOIN_GROUP\',\''+group.id+'\')">';
					}
					else {
						searchGroupsResultsDivInnerHTML+= "(Your group)";
					}
					
					
					searchGroupsResultsDivInnerHTML+='</br>';
				}
				document.getElementById("searchResultsGroupsDiv").innerHTML = searchGroupsResultsDivInnerHTML;
			}
		} else {
			alert("Could not search for users. Try again latter.");
		}
	}
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SEARCH_GROUPS", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"searchTexts", searchValue,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("searchResultsGroupsDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function searchMedia(searchValue) {
	var onLoad = function(json) {
		if (json.response_status[0].text[0].Text=="OK") {
			searchMediaResultsDivInnerHTML = "";
			if(json.media==undefined) { // No results.
				document.getElementById("searchResultsMediaDiv").innerHTML = "<table class='Tips'><tr><td width='10''></td><td>No results for media.</td></tr></table>"
			}
			else {
				clearAddressesNodesIdsArr(mediaSearchDetailsArr);
				if (layerMediaSearchFlag)
					layerMediaSearch.removeAll();
				layerMediaSearchFlag = false;
				
				searchMediaResultsDivInnerHTML+="<table class='smallestTitle'><tr><td width='10''></td><td><b>Media...</b></td></tr></table>";
				
				if (json.media.length==1)
					document.getElementById("nextImageButton").disabled = true;
				else
					document.getElementById("nextImageButton").disabled = false;
				
				for (i = 0; i < json.media.length; i++) {
					var media = json.media[i];
					
					/*
					alert(media.id);
					alert(media.time);
					alert(media.local_time);
					alert(media.url);
					alert(media.thumb_url);
					alert(media.content[0].title[0].Text);
					alert(media.content[0].description[0].Text);
					alert(media.location[0].id);
					alert(media.location[0].latitude);
					alert(media.location[0].longitude);
					alert(media.location[0].time);
					alert(media.location[0].local_time);
					*/

					latitude = "";
					longitude = "";
					time = "";
					local_time = "";
					if (media.location!=undefined) {
						latitude = media.location[0].latitude;
						longitude = media.location[0].longitude;
						time = media.time;
						local_time = media.local_time;
						
						mediaLocation = new LatLong(latitude,longitude);
						
						var locatorMarker = new Marker('mediaSearch|'+i,mediaLocation,mediaIcon,media.content[0].title[0].Text,'Last update: '+epochToHuman(local_time),true,true);
						layerMediaSearch.addShape(locatorMarker);
						layerMediaSearchFlag = true;
					}

					mediaSearchDetailsArr.push(new Array(media.content[0].title[0].Text,media.content[0].description[0].Text,media.time,media.local_time,media.url,media.thumb_url,latitude,longitude,time,local_time));
					
					searchMediaResultsDivInnerHTML+= '<img src="Images/Icons/photo16.png" width="16" height="16" title="'+media.content[0].description[0].Text+'" alt="'+media.content[0].description[0].Text+'">&nbsp;';
					if (media.location!=undefined)
						searchMediaResultsDivInnerHTML+= '<a href="#" title="'+media.content[0].description[0].Text+'" onclick="showMediaDetails(\''+i+'\',\''+media.content[0].title[0].Text+'\',\''+media.content[0].description[0].Text+'\',\''+media.time+'\',\''+media.local_time+'\',\''+media.url+'\',\''+media.thumb_url+'\',\''+media.location[0].latitude+'\',\''+media.location[0].longitude+'\',\''+media.location[0].time+'\',\''+media.location[0].local_time+'\',true)">'+media.content[0].title[0].Text+'</a>';
					else // No location
						searchMediaResultsDivInnerHTML+= '<a href="#" title="'+media.content[0].description[0].Text+'" onclick="showMediaDetails(\''+i+'\',\''+media.content[0].title[0].Text+'\',\''+media.content[0].description[0].Text+'\',\''+media.time+'\',\''+media.local_time+'\',\''+media.url+'\',\''+media.thumb_url+'\',\'\',\'\',\'\',\'\',true)">'+media.content[0].title[0].Text+'</a>';
					
					searchMediaResultsDivInnerHTML+='</br>';
				}
				layerMediaSearch.redraw();
				document.getElementById("searchResultsMediaDiv").innerHTML = searchMediaResultsDivInnerHTML;
			}
		} else {
			alert("Could not search for users. Try again latter.");
		}
	}
	
	var request = {
			url          : SERVER_URL,
			method		 : Ajax.METHOD_POST,
			params		 : ["cmd", "SEARCH_MEDIA", 
							"key", ACCOUNT_KEY,
							"appId", APP_ID,
							"width", 50,
							"height", 50,
							"searchText", searchValue,
							"sessionId", userSession],
			returnJSON   : true,
			responseType : Ajax.RESPONSE_TYPE_XML,
			callback     : onLoad
	}
	document.getElementById("searchResultsMediaDiv").innerHTML = '<img src="Images/Icons/ajax-loader.gif" width="16" height="16" title="Loading..." alt="Loading...">';
	Ajax.load(request)
}
/////////////////////////////////////////////
function getDistanceFromMe(userPoint) {
	//distance = Math.sqrt(Math.pow(userPoint.getLong()-userPoint.getLat(),2)+Math.pow(myLocation.getLong()-myLocation.getLat(),2)); // ITM Distance.
	if (myLocation!="")
		return Math.round(LTLGDistance(userPoint.getLat(), userPoint.getLong(), myLocation.getLat(), myLocation.getLong()));
	else
		return "N/A";
}
/////////////////////////////////////////////
function rawDistanceToView(distance) {
	if (distance<2000)
		return distance + " meters";
	else {
		KM = distance/1000;
		Meters = KM % Math.round(KM);
		KM = Math.round(KM);
		if ((Meters==0) || (Meters<0.1))
			distance = KM;
		else {
			temp = Math.round(distance/100);
			distance = temp/10;
		}
		return distance + " km";
	}
}
/////////////////////////////////////////////
function LTLGDistance(LatO, LongO, LatD, LongD) {
	var WorldRadius = 6378137;
	var RAD_PER_DEG = Math.PI/180
	
	LatO   = LatO  * RAD_PER_DEG
	LongO  = LongO * RAD_PER_DEG
	LatD   = LatD  * RAD_PER_DEG
	LongD  = LongD * RAD_PER_DEG
	var Result = Math.sin(LatO) * Math.sin(LatD) + Math.cos(LatO) * Math.cos(LatD) * Math.cos(LongO-LongD)
	Result = Math.acos(Result)
	return Result * WorldRadius;
}
/////////////////////////////////////////////
/*
function addLayer(name, icon){
	var layer = layersCollection.createRemoteVectorLayer(name)
	layer.setServerLayerId(name);
	layer.setDefaultIcon(new ExternalIcon(icon));
	
	layer.setURL("xml/LayersHeb.asp");
	
	layer.hide();
	groupMembersLayersList.push(layer);
}
addLayer("SYM_4_Police_station"	    , "Images/LayersIcon/POI/SWF/Police.swf");
addLayer("SYM_8_Youth_hostel"	    , "Images/LayersIcon/POI/SWF/Hostels.swf");
/////////////////////////////////////////////
*/
function showHideGroupMembers(checkBox,fitFlag) {
	if (checkBox.checked) { // Load the layer
		var onLoad = function(json) {
			if (json.response_status[0].text[0].Text=="OK") {
				if (layerMyCurrentGroupFlag)
					layerMyCurrentGroup.removeAll();
				layerMyCurrentGroupFlag = false;
				currentGroupCheckBoxObj = checkBox;
				
				for (i = 0; i < json.group[0].members[0].user.length; i++) {
					user = json.group[0].members[0].user[i];
					
					latitude = "";
					longitude = "";
					time = "";
					local_time = "";
					if (user.presence[0].location!=undefined) {
						latitude = user.presence[0].location[0].latitude;
						longitude = user.presence[0].location[0].longitude;
						time = user.presence[0].location[0].time;
						local_time = user.presence[0].location[0].local_time;
						
						groupMemberLocation = new LatLong(latitude,longitude);
						
						groupMemberViewName = user.firstname[0].Text+' '+user.lastname[0].Text;
						if (user.presence[0].nickname[0].Text!="")
							groupMemberViewName = user.presence[0].nickname[0].Text;
						
						if (user.gender[0].Text=="F")
							var locatorMarker = new Marker('GroupMember|'+user.id,groupMemberLocation,femaleIconGroup,groupMemberViewName,'Last update: '+epochToHuman(local_time),true,true);
						else
							var locatorMarker = new Marker('GroupMember|'+user.id,groupMemberLocation,maleIconGroup,groupMemberViewName,'Last update: '+epochToHuman(local_time),true,true);
						
						layerMyCurrentGroup.addShape(locatorMarker);
						layerMyCurrentGroupFlag = true;
					}
				}
				layerMyCurrentGroup.redraw();
				if ((layerMyCurrentGroupFlag) && (fitFlag))
					map.fitMap(layerMyCurrentGroup);
				else if (fitFlag)
					alert("There are no members with location in this group");
			} else {
				alert("Could not get members group. Please try again latter.");
			}
		}
		
		var request = {
				url          : SERVER_URL,
				method		 : Ajax.METHOD_POST,
				params		 : ["cmd", "GET_GROUP_MEMBERS", 
								"key", ACCOUNT_KEY,
								"appId", APP_ID,
								"groupId", checkBox.value,
								"sessionId", userSession],
				returnJSON   : true,
				responseType : Ajax.RESPONSE_TYPE_XML,
				callback     : onLoad
		}
		Ajax.load(request);
	} else {
		if (layerMyCurrentGroupFlag)
			layerMyCurrentGroup.removeAll();
		layerMyCurrentGroupFlag = false;
	}
}