// constants
var ASYNC_TIME = 300000;	// time between async request for updates
var FORUM_URL_PART1 = "phpBB2/viewforum.php?f=";
var FORUM_URL_PART2 = "&amp;sid=96949e7a1cf1992a1272b8e366dcd994";
var SUMMARY_GRAPH_URL = "phpscripts/summarygraph.php?";
var LINE_GRAPH_URL = "phpscripts/linegraph.php?";
var SHOW_SICKNESS_POSTINGS_URL = "showSicknessPostingsList.php?";

// global variables
var currTagCloudSelection = '';
var mapSickness = null;
var localSearch = null;

var mapHeat = null;
var moveendListener = null;
var zoomendListener = null;

var getNodesCallbackTimeout = 0;
var tagCloudCallbackTimeout = 0;
var visitedQueryAssocArray = null;
var lastFormUpdate = 0;
var lastPersistedLocation = null;
var lastTagCloudData = '';

var geocoder = null;

var gCurrPostLocationLatitude = 0.000000;
var gCurrPostLocationLongitude = 0.000000;
var gCurrFilterLocationLatitude = 0.000000;
var gCurrFilterLocationLongitude = 0.000000;

var medicalprofessional_newloginformdlg;
var viewreportdlg;
var viewDemoScreenDlg;

var gShowDemoScreen = 1;	// by default show demo screen

var aboutUsDomNode = null;
var contactUsDomNode = null;

var aboutUsContainerDomNode = null;
var bottomSidebarDomNode = null;
var leftSidebarDomNode = null;
var rightSidebarDomNode = null;
var contentSidebarDomNode = null;

//elai added to have control of the actual google map portion
var mapSicknessDomNode = null;
//elai added to have control of postings component
var sicknessPostingsDomNode = null;
var singleSicknessPostingsDomNode = null;
var mapContainerDomNode = null;

var checkLoginCallbackTimeout = 0;
var moreSymptomsFormDialog = null;
var emailFriendsFormDialog = null;
var sicknessPostings = null;
var singleSicknessPostings = null;
var sicknessAlertFormDialog = null;
var medicalprofessionalDisplayUsernameDomNode = null;
var medicalprofessionalOldLoginUsernameDomNode = null;

// elai - comment text box dom nodes
//var commentTextFormContainerDomNode = null;
//var loginLinkContainerDomNode = null;

var initLoadData = true;
var numSessionPosts = 0;

var insideMapView = false;

function usePointFromPostcodeToPost(postcode) {
	
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				numSessionPosts = numSessionPosts + 1;

				//if ( (numSessionPosts >= 3) && (medicalprofessionalOldLoginUsernameDomNode.innerHTML == '') ) {
				if (numSessionPosts >= 6){
					alert('Post operation has been disabled since you have exceeded the number of posts permitted per user! We aggresively monitor multiple postings, and prevent spam!');
					return;
				}

				var moreSymptomsBits = pickMoreSymptoms();

				var latitude = localSearch.results[0].lat;
				var longitude = localSearch.results[0].lng;

				var someobj = dojo.widget.byId('postsickness').getValues();

				if ( getNodesCallbackTimeout != 0 )
					clearTimeout( getNodesCallbackTimeout );
				
				dojo.io.bind({
					url:	'phpscripts/insertintotable.php',
					useCache: false,
					preventCache: true,
					mimetype:	'text/json',
					//formNode: dojo.widget.byId('searchsickness'),
					content: {
							platitude: latitude,
							plongitude: longitude,
							//px:	pixel.x,
							//py: pixel.y,
							pgender: someobj['pgender'],
							page: someobj['page'],
							phowlong: someobj['phowlong'],
							pfever: someobj['pfever'],
							pcough: someobj['pcough'],
							prunnynose: someobj['prunnynose'],
							pheadache: someobj['pheadache'],
							pstomachache: someobj['pstomachache'],
							pbodyache: someobj['pbodyache'],
							pcomments: someobj['pcomments'],
							//pmedicalprofessional: loggedIn_medicalprofessional_id,
							pmedicalprofessional: medicalprofessionalOldLoginUsernameDomNode.innerHTML,
							pmoresymptoms: moreSymptomsBits
						},
					error:	function(type, errObj){
						getNodesCallbackTimeout = setTimeout("getNodes();",ASYNC_TIME);
					},
					load: function(type, data, evt){
						getNodesCallbackTimeout = setTimeout( RouteCaller( getNodesCallback, type, data, evt, "PostData" ), 50 );
					}
				});
			}else{
				alert("Invalid Address, failed to post");
			}
		});	
		
	localSearch.execute(postcode);
}


function usePointFromPostcode(postcode) {
	
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				//gCurrPostLocationLatitude = localSearch.results[0].lat;
				//gCurrPostLocationLongitude = localSearch.results[0].lng;
				//var point = new GLatLng(resultLat,resultLng);
				//callbackFunction(point);
				var mtc = dojo.widget.byId('mainTabContainer');
				var selectedTab = mtc.selectedChildWidget;
				if ("Post Sickness" == selectedTab.label) {
					gCurrPostLocationLatitude = localSearch.results[0].lat;
					gCurrPostLocationLongitude = localSearch.results[0].lng;
					var point = new GLatLng(gCurrPostLocationLatitude,gCurrPostLocationLongitude);
					mapSickness.setCenter(point, 10);
					dojo.io.cookie.set("sicknessMapLastLocationLatitude", gCurrPostLocationLatitude, 30);
					dojo.io.cookie.set("sicknessMapLastLocationLongitude", gCurrPostLocationLongitude, 30);
				} else {
					gCurrFilterLocationLatitude = localSearch.results[0].lat;
					gCurrFilterLocationLongitude = localSearch.results[0].lng;
					var point = new GLatLng(gCurrFilterLocationLatitude,gCurrFilterLocationLongitude);
					mapSickness.setCenter(point, 10);
					dojo.io.cookie.set("sicknessMapLastLocationLatitude", gCurrFilterLocationLatitude, 30);
					dojo.io.cookie.set("sicknessMapLastLocationLongitude", gCurrFilterLocationLongitude, 30);
				}

				// persist last POST or SEARCH location as cookie
				dojo.io.cookie.set("sicknessMapLastLocation", postcode, 30);
				dojo.io.cookie.set("sicknessMapLastLocationZoom", mapSickness.getZoom(), 30);
			}else{
				alert("Invalid Address!");
			}
		});	
		
	localSearch.execute(postcode);
}

function showSicknessAlertDialog()
{
	if (sicknessAlertFormDialog == null) sicknessAlertFormDialog = dojo.widget.byId("sicknessAlert_DialogContent");
	sicknessAlertFormDialog.show();
}

function sickness_alert_submit()
{
	var emailFriendsSelection = dojo.widget.byId('sickness_alert_form').getValues();
	
	if( typeof(emailFriendsSelection['alert_email_id']) =="undefined") {
		
		alert('Failed to signup for sickness alerts. Please verify and complete all details.');
		
		return;
	}
	
	sicknessAlertFormDialog.hide();

	dojo.io.bind({
		url:	'phpscripts/signupSicknessAlert.php',
		useCache: false,
		preventCache: true,
		mimetype: 'text/html',
		content: {
			your_email_id: emailFriendsSelection['alert_email_id']
		},
		error:	function(type, errObj){
			alert('Sorry, failed to signup for sickness alerts. Please verify email address again.');
		},
		load:	function(type, data, evt){
		}
	});	
}

function showEmailFriendsDialog()
{
	if (emailFriendsFormDialog == null) emailFriendsFormDialog = dojo.widget.byId("emailFriends_DialogContent");
	emailFriendsFormDialog.show();
}

function showSicknessPostings()
{	
	var currentTime = new Date();
	var seconds = currentTime.getSeconds();
	
	var onglet1 = dojo.widget.byId("sicknessPostings");
	onglet1.setUrl(getSicknessPostingURLString(getNodesNeLng,getNodesSwLng,getNodesNeLat,getNodesSwLat) + "&s=" + seconds); 
	if (sicknessPostings == null) sicknessPostings = dojo.widget.byId("sicknessPostings");
	sicknessPostings.show();
	dojo.html.replaceClass(aboutUsDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(contactUsDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(bottomSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(leftSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(rightSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(contentSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(mapSicknessDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(sicknessPostingsDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(singleSicknessPostingsDomNode, "hideContent", "showContent");			
	dojo.html.replaceClass(mapContainerDomNode, "postContainer", "mapContainer");

}

function showSingleSicknessPostings(pid)
{ 
	/*
	if (typeof afterPost == "undefined") {
    	afterPost = 0;
	}else{
		afterPost = 1;
  	}*/
	
	var currentTime = new Date();
	var seconds = currentTime.getSeconds();
	
	var onglet1 = dojo.widget.byId("singleSicknessPostings");
	
	onglet1.setUrl("showSingleSicknessPostingsList.php?pid=" + pid + "&s=" + seconds); 
	
	if (singleSicknessPostings == null) singleSicknessPostings = dojo.widget.byId("singleSicknessPostings");
	singleSicknessPostings.show();
	dojo.html.replaceClass(aboutUsDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(contactUsDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(bottomSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(leftSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(rightSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(contentSidebarDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(mapSicknessDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(sicknessPostingsDomNode, "hideContent", "showContent");
	dojo.html.replaceClass(singleSicknessPostingsDomNode, "showContent", "hideContent");
	dojo.html.replaceClass(mapContainerDomNode, "postContainer", "mapContainer");
}

function afterShowSingleSicknessPostings(pid)
{ 
	var currentTime = new Date();
	var seconds = currentTime.getSeconds();
	
	var onglet1 = dojo.widget.byId("singleSicknessPostings");
	
	onglet1.setUrl("showSingleSicknessPostingsList.php?pid=" + pid + "&s=" + seconds); 
	
	if (singleSicknessPostings == null) singleSicknessPostings = dojo.widget.byId("singleSicknessPostings");
	singleSicknessPostings.show();
	alert("Comment Posted!");

}

function flagThisPost(patient_id)
{
	dojo.io.bind({
		url:	'phpscripts/flagThisPost.php',
		useCache: false,
		preventCache: true,
		mimetype: 'text/html',
		content: {
			flag_id: patient_id
		},
		error:	function(type, errObj){
			alert('Sorry, failed to flag the posting as spam.');
		},
		load:	function(type, data, evt){
			alert('Thanks, we will review the posting.');
		}
	});	
}

function email_friends_submit()
{
	var emailFriendsSelection = dojo.widget.byId('email_friends_form').getValues();
	
	if( (typeof(emailFriendsSelection['your_name']) =="undefined") ||
		(typeof(emailFriendsSelection['your_email_id']) =="undefined") ||
		(typeof(emailFriendsSelection['your_friends_email_id']) =="undefined") ||
		(emailFriendsSelection['your_name'] == "") ||
		(emailFriendsSelection['your_email_id'] == "") ||
		(emailFriendsSelection['your_friends_email_id'] == "") ) {
		
		alert('Failed to send invite. Please verify and complete all details.');
		
		return;
	}
	
	emailFriendsFormDialog.hide();

	dojo.io.bind({
		url:	'phpscripts/sendEmailInvite.php',
		useCache: false,
		preventCache: true,
		mimetype: 'text/html',
		content: {
			your_friends_email_id: emailFriendsSelection['your_friends_email_id'],
			your_email_id: emailFriendsSelection['your_email_id'],
			your_name: emailFriendsSelection['your_name']
		},
		error:	function(type, errObj){
			alert('Sorry, failed to send invite(s). Please verify email addresses again.');
		},
		load:	function(type, data, evt){
		}
	});	
}

function showNewLoginForm()
{
	medicalprofessional_newloginformdlg.show();
}


function checkNewLoginSession()
{
	var logName = dojo.io.cookie.get("cookname");
	
	if (logName != null && logName != '') {
		medicalprofessionalDisplayUsernameDomNode.style.display='block';
		medicalprofessionalOldLoginUsernameDomNode.style.display='block';
		medicalprofessionalOldLoginUsernameDomNode.innerHTML = logName;
		
		//commentTextFormContainerDomNode.style.display='block';
		//loginLinkContainerDomNode.style.display='none';
	}
	else {
		medicalprofessionalDisplayUsernameDomNode.style.display='none';
		medicalprofessionalOldLoginUsernameDomNode.display = 'none';
		medicalprofessionalOldLoginUsernameDomNode.innerHTML ='';
		
		//commentTextFormContainerDomNode.style.display='none';
		//loginLinkContainerDomNode.style.display='block';
	}
	if ( checkLoginCallbackTimeout != 0 )
		clearTimeout( checkLoginCallbackTimeout );
	checkLoginCallbackTimeout = setTimeout("checkNewLoginSession();",2000);
}
/*
function checkCommentLoginSession()
{
	var logName = dojo.io.cookie.get("cookname");
	
	if (logName != null && logName != '') {
		commentTextFormContainerDomNode.style.display='block';
		loginLinkContainerDomNode.style.display='none';
	}
	else {
		commentTextFormContainerDomNode.style.display='none';
		loginLinkContainerDomNode.style.display='block';
	}
}
*/

function tabClicked(tabItem) {
}


function buildPersonalizedQueryString(symptoms, queryEngine)
{
	var sPersonalizedReportQuery = '';
	var nMatches = 0;
	
	if (symptoms & DEF_RUNNYNOSE) {
		sPersonalizedReportQuery += STRING_RUNNYNOSE;
		nMatches++;
	}
	if (symptoms & DEF_COUGH) {
		sPersonalizedReportQuery += STRING_COUGH;
		nMatches++;
	}
	if (symptoms & DEF_FEVER) {
		 sPersonalizedReportQuery += STRING_FEVER;
		nMatches++;
	}
	if (symptoms & DEF_HEADACHE) {
		 sPersonalizedReportQuery += STRING_HEADACHE;
		nMatches++;
	}
	if (symptoms & DEF_BODYACHE) {
		 sPersonalizedReportQuery += STRING_BODYACHE;
		nMatches++;
	}
	if (symptoms & DEF_STOMACHACHE) {
		 sPersonalizedReportQuery += STRING_STOMACHACHE;
		nMatches++;
	}

	if (symptoms & DEF_common_food_poisoning) {
		 sPersonalizedReportQuery += STRING_common_food_poisoning;
		nMatches++;
	}
	if (symptoms & DEF_common_chicken_pox) {
		 sPersonalizedReportQuery += STRING_common_chicken_pox;
		nMatches++;
	}

	if (symptoms & DEF_eyes_redness) {
		 sPersonalizedReportQuery += STRING_eyes_redness;
		nMatches++;
	}
	if (symptoms & DEF_eyes_blurred) {
		 sPersonalizedReportQuery += STRING_eyes_blurred;
		nMatches++;
	}
	if (symptoms & DEF_eyes_watery) {
		 sPersonalizedReportQuery += STRING_eyes_watery;
		nMatches++;
	}
	if (symptoms & DEF_eyes_sensitive_to_light) {
		 sPersonalizedReportQuery += STRING_eyes_sensitive_to_light;
		nMatches++;
	}
	if (symptoms & DEF_eyes_itchy) {
		 sPersonalizedReportQuery += STRING_eyes_itchy;
		nMatches++;
	}

	if (symptoms & DEF_nose_bleeding) {
		 sPersonalizedReportQuery += STRING_nose_bleeding;
		nMatches++;
	}

	if (symptoms & DEF_ear_buzzing) {
		 sPersonalizedReportQuery += STRING_ear_buzzing;
		nMatches++;
	}
	if (symptoms & DEF_ear_pain) {
		 sPersonalizedReportQuery += STRING_ear_pain;
		nMatches++;
	}
	if (symptoms & DEF_ear_hearing_loss) {
		 sPersonalizedReportQuery += STRING_ear_hearing_loss;
		nMatches++;
	}

	if (symptoms & DEF_mouth_sores) {
		 sPersonalizedReportQuery += STRING_mouth_sores;
		nMatches++;
	}
	if (symptoms & DEF_mouth_dry) {
		 sPersonalizedReportQuery += STRING_mouth_dry;
		nMatches++;
	}

	if (symptoms & DEF_throat_hoarse) {
		 sPersonalizedReportQuery += STRING_throat_hoarse;
		nMatches++;
	}
	if (symptoms & DEF_throat_difficulty_swallowing) {
		 sPersonalizedReportQuery += STRING_throat_difficulty_swallowing;
		nMatches++;
	}
	if (symptoms & DEF_throat_tonsils_swollen) {
		 sPersonalizedReportQuery += STRING_throat_tonsils_swollen;
		nMatches++;
	}

	if (symptoms & DEF_stomach_swelling) {
		 sPersonalizedReportQuery += STRING_stomach_swelling;
		nMatches++;
	}
	if (symptoms & DEF_stomach_loss_of_appetite) {
		 sPersonalizedReportQuery += STRING_stomach_loss_of_appetite;
		nMatches++;
	}

	if (symptoms & DEF_bowel_bloody_stool) {
		 sPersonalizedReportQuery += STRING_bowel_bloody_stool;
		nMatches++;
	}
	if (symptoms & DEF_bowel_constipation) {
		 sPersonalizedReportQuery += STRING_bowel_constipation;
		nMatches++;
	}
	if (symptoms & DEF_bowel_excessive_gas) {
		 sPersonalizedReportQuery += STRING_bowel_excessive_gas;
		nMatches++;
	}

	if (symptoms & DEF_chest_wheezing) {
		 sPersonalizedReportQuery += STRING_chest_wheezing;
		nMatches++;
	}
	if (symptoms & DEF_chest_racing_heartbeat) {
		 sPersonalizedReportQuery += STRING_chest_racing_heartbeat;
		nMatches++;
	}


	if (symptoms & DEF_skin_rash) {
		 sPersonalizedReportQuery += STRING_skin_rash;
		nMatches++;
	}
	if (symptoms & DEF_skin_sweating) {
		 sPersonalizedReportQuery += STRING_skin_sweating;
		nMatches++;
	}
	if (symptoms & DEF_skin_cold) {
		 sPersonalizedReportQuery += STRING_skin_cold;
		nMatches++;
	}

	if (queryEngine) {
		// for query engine
		if (nMatches > 3 || nMatches == 0)	// to avoid junk search results due to ambiguity of too many or no search terms
			sPersonalizedReportQuery = STRING_sickness;
	} else {
		// for info window
		//alert('BEFORE='+sPersonalizedReportQuery);
		sPersonalizedReportQuery = sPersonalizedReportQuery.replace(/\+\s+/g,",");
		sPersonalizedReportQuery = sPersonalizedReportQuery.replace(/\+/g," ");
		sPersonalizedReportQuery = sPersonalizedReportQuery.replace(/,$/,"");
		//alert('AFTER='+sPersonalizedReportQuery);
	}
		
	return sPersonalizedReportQuery;
}
var TAB_SEARCH = 0;
var TAB_POST = 1;

var DEF_RUNNYNOSE = 0x20;
var DEF_COUGH = 0x10;
var DEF_FEVER = 0x08;
var DEF_HEADACHE = 0x04;
var DEF_BODYACHE = 0x02;
var DEF_STOMACHACHE = 0x01;
var DEF_NOSYMPTOMS = 0x00;
var DEF_common_food_poisoning = 64;
var DEF_common_chicken_pox = 128;
var DEF_eyes_redness = 256;
var DEF_eyes_blurred = 512;
var DEF_eyes_watery = 1024;
var DEF_eyes_sensitive_to_light = 2048;
var DEF_eyes_itchy = 4096;
var DEF_nose_bleeding = 8192;
var DEF_ear_buzzing = 16384;
var DEF_ear_pain = 32768;
var DEF_ear_hearing_loss = 65536;
var DEF_mouth_sores = 131072;
var DEF_mouth_dry = 262144;
var DEF_throat_hoarse = 524288;
var DEF_throat_difficulty_swallowing = 1048576;
var DEF_throat_tonsils_swollen = 2097152;
//var DEF_muscle_cramping = 4194304;
var DEF_stomach_swelling = 4194304;
var DEF_stomach_loss_of_appetite = 8388608;
var DEF_bowel_bloody_stool = 16777216;
//var DEF_bowel_foul_smelling_urine = 67108864;
var DEF_bowel_constipation = 33554432;
var DEF_bowel_excessive_gas = 67108864;
var DEF_chest_wheezing = 134217728;
var DEF_chest_racing_heartbeat = 268435456;
//var DEF_joints_pain = 2147483648;
var DEF_skin_rash = 536870912;
var DEF_skin_sweating = 1073741824;
var DEF_skin_cold = 2147483648;
var DEF_sickness = 4294967295;		// all ones

var STRING_RUNNYNOSE ="Runny+nose +Stuffy+nose +Sneeze+ ";
var STRING_COUGH ="Cough+Sore+throat+";
var STRING_FEVER ="Fever+Chills+";
var STRING_HEADACHE ="Head+ache+Dizzy+";
var STRING_BODYACHE ="Muscle+ache+Body+ache+Tired+";
var STRING_STOMACHACHE ="Stomach+ache+Nausea+Vomit+Diarrhea+ ";

var STRING_common_food_poisoning ="Food+poisoning+";
var STRING_common_chicken_pox ="Chicken+pox+";

var STRING_eyes_redness ="Red+eye+ ";
var STRING_eyes_blurred ="blurred+vision+ ";
var STRING_eyes_watery ="eye+discharge+";
var STRING_eyes_sensitive_to_light ="eyes+Sensitive+light+";
var STRING_eyes_itchy ="itchy+burning+eyes+";

var STRING_nose_bleeding ="nose+bleeding+";

var STRING_ear_buzzing ="ear+ringing+";
var STRING_ear_pain ="ear+Pain+";
var STRING_ear_hearing_loss ="Hearing+loss+";

var STRING_mouth_sores ="mouth+Sores+ulcers+";
var STRING_mouth_dry ="mouth+Dry+";

var STRING_throat_hoarse ="throat+Hoarse+";
var STRING_throat_difficulty_swallowing ="Difficulty+swallowing+";
var STRING_throat_tonsils_swollen ="swollen+Tonsils+";

//var STRING_muscle_cramping ="muscle+Cramping+ ";

var STRING_stomach_swelling ="stomach+cramps+";
var STRING_stomach_loss_of_appetite ="stomach+Loss+of+appetite+";

var STRING_bowel_bloody_stool ="Bloody+stool+urine+";
//var STRING_bowel_foul_smelling_urine ="bowel+foul+smelling+urine+";
var STRING_bowel_constipation ="Constipation+";
var STRING_bowel_excessive_gas ="stomach+gas+";

var STRING_chest_wheezing ="Wheezing+";
var STRING_chest_racing_heartbeat ="Racing+heartbeat+";

//var STRING_joints_pain ="joints+Pain+";

var STRING_skin_rash ="skin+Rash+sores+";
var STRING_skin_sweating ="Excessive+sweating+";
var STRING_skin_cold ="skin+Cold+clammy+";
var STRING_sickness ="sickness+";


//var postingIcon_array = new Array();
//var postingMedIcon_array = new Array();
//var postingRedIcon_array = new Array();
//var postingMedRedIcon_array = new Array();
var forumStateIcon_array = new Array();
var clusterIcon = null;
var forumCityIcon = null;

//function loadIconImage(symptoms & 63,k[11],true) {
function loadMapMarkerIcon(symptoms, profileIndex, bOtherSymptoms) {
	var iconObj = new GIcon();

	if (profileIndex == -1) {
		if (!bOtherSymptoms) {
			// default symptoms icons
			iconObj.image = "images/icon_" + symptoms + ".png";
			iconObj.iconSize = new GSize(50, 50);
			iconObj.iconAnchor = new GPoint(0, 0);
			iconObj.infoWindowAnchor = new GPoint(25, 25);
		} else {
			// ordinary other symptom icons
			iconObj.image = "images/icon_red_" + symptoms + ".png";
			iconObj.iconSize = new GSize(50, 50);
			iconObj.iconAnchor = new GPoint(0, 0);
			iconObj.infoWindowAnchor = new GPoint(25, 25);
		}
	}
	else {
		// profile icons
		if (profileIndex == 1)
			iconObj.shadow = "images/school2.png";
		else if (profileIndex == 2)
			iconObj.shadow = "images/company2.png";
		else
			iconObj.shadow = "images/medical2.png";

		if (!bOtherSymptoms) {
			// default symptoms icons
			iconObj.shadowSize = new GSize(50, 50);
			iconObj.image = "images/icon_" + symptoms + ".png";
			iconObj.iconSize = new GSize(50, 50);
			iconObj.iconAnchor = new GPoint(0, 0);
			iconObj.infoWindowAnchor = new GPoint(25, 25);
		} else {
			// ordinary other symptom icons
			iconObj.shadowSize = new GSize(50, 50);
			iconObj.image = "images/icon_red_" + symptoms + ".png";
			iconObj.iconSize = new GSize(50, 50);
			iconObj.iconAnchor = new GPoint(0, 0);
			iconObj.infoWindowAnchor = new GPoint(25, 25);
		}
	}
	
	return iconObj;
}

function loadSicknessImages() {
	clusterIcon = new GIcon();
	clusterIcon.image = 'images/Pie_cluster_small.png';
	clusterIcon.iconSize = new GSize( 30, 30 );
	clusterIcon.iconAnchor = new GPoint( 10, 24 );
	clusterIcon.infoWindowAnchor = new GPoint( 13, 3 );
}

function loadForumIcons() {
	for (var icon_idx = 26; icon_idx < 76; icon_idx++) {
		var iconObj = new GIcon();

		iconObj.image = "images/States/" + icon_idx + ".gif";
		iconObj.iconSize = new GSize(20, 13);
		iconObj.iconAnchor = new GPoint(10, 7);
		iconObj.infoWindowAnchor = new GPoint(10, 7);

		forumStateIcon_array[forumStateIcon_array.length] = iconObj;

		iconObj = null;	// release reference count
	}
	forumCityIcon = new GIcon();
	forumCityIcon.image = "images/States/city.gif";
	//forumCityIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	forumCityIcon.iconSize = new GSize(15, 15);
	//forumCityIcon.shadowSize = new GSize(37, 34);
	forumCityIcon.iconAnchor = new GPoint(8, 8);
	forumCityIcon.infoWindowAnchor = new GPoint(8, 8);
	//forumCityIcon.infoShadowAnchor = new GPoint(18, 25);

	//forumCityIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	//forumCityIcon.shadowSize = new GSize(37, 34);

}

function getSicknessPostingURLString(neLng,swLng,neLat,swLat)
{
	var sURL = '';
	var someobj = dojo.widget.byId('searchsickness').getValues();
	var currZoomLevel = mapSickness.getZoom();

		sURL = SHOW_SICKNESS_POSTINGS_URL+
		"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng+
		"&sgenderm="+someobj['sgenderm']+
		"&sgenderf="+someobj['sgenderf']+
		"&sage_from="+dojo.byId('sage_from').innerHTML+
		"&sage_to="+dojo.byId('sage_to').innerHTML+
		"&spast_date="+dojo.byId('spast_date').innerHTML+
		"&sfever="+someobj['sfever']+
		"&scough="+someobj['scough']+
		"&srunnynose="+someobj['srunnynose']+
		"&sheadache="+someobj['sheadache']+
		"&sstomachache="+someobj['sstomachache']+
		"&sbodyache="+someobj['sbodyache']+
		"&sothersymptoms="+someobj['sothersymptoms']+
		"&scomments="+someobj['scomments']+
		"&spostedby="+someobj['spostedby']+
		"&currtagcloud="+currTagCloudSelection+
		"&szoomlevel="+currZoomLevel;
		
		return sURL;
}

function updateGraphs(neLng,swLng,neLat,swLat)
{
	var someobj = dojo.widget.byId('searchsickness').getValues();
	var currZoomLevel = mapSickness.getZoom();

	document.images['iframe_summarygraph'].src = SUMMARY_GRAPH_URL+
		"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng+
		"&sgenderm="+someobj['sgenderm']+
		"&sgenderf="+someobj['sgenderf']+
		"&sage_from="+dojo.byId('sage_from').innerHTML+
		"&sage_to="+dojo.byId('sage_to').innerHTML+
		"&spast_date="+dojo.byId('spast_date').innerHTML+
		"&sfever="+someobj['sfever']+
		"&scough="+someobj['scough']+
		"&srunnynose="+someobj['srunnynose']+
		"&sheadache="+someobj['sheadache']+
		"&sstomachache="+someobj['sstomachache']+
		"&sbodyache="+someobj['sbodyache']+
		"&sothersymptoms="+someobj['sothersymptoms']+
		"&scomments="+someobj['scomments']+
		"&spostedby="+someobj['spostedby']+
		"&currtagcloud="+currTagCloudSelection+
		"&szoomlevel="+currZoomLevel;
     /*											
	document.images['iframe_linegraph'].src = LINE_GRAPH_URL+
		"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng+
		"&sgenderm="+someobj['sgenderm']+
		"&sgenderf="+someobj['sgenderf']+
		"&sage_from="+dojo.byId('sage_from').innerHTML+
		"&sage_to="+dojo.byId('sage_to').innerHTML+
		"&spast_date="+dojo.byId('spast_date').innerHTML+
		"&sfever="+someobj['sfever']+
		"&scough="+someobj['scough']+
		"&srunnynose="+someobj['srunnynose']+
		"&sheadache="+someobj['sheadache']+
		"&sstomachache="+someobj['sstomachache']+
		"&sbodyache="+someobj['sbodyache']+
		"&sothersymptoms="+someobj['sothersymptoms']+
		"&scomments="+someobj['scomments']+
		"&spostedby="+someobj['spostedby']+
		"&currtagcloud="+currTagCloudSelection+
		"&szoomlevel="+currZoomLevel;
      */
}

function showTotalNumSickness(neLng,swLng,neLat,swLat)
{
	var someobj = dojo.widget.byId('searchsickness').getValues();
	var currZoomLevel = mapSickness.getZoom();

	dojo.io.bind({
		url:	'phpscripts/totalSicknessReport.php',
		useCache: false,
		preventCache: true,
		mimetype:	'text/html',
		content: {
			sgenderm: someobj['sgenderm'],
			sgenderf: someobj['sgenderf'],
			sage_from: dojo.byId('sage_from').innerHTML,
			sage_to: dojo.byId('sage_to').innerHTML,
			spast_date: dojo.byId('spast_date').innerHTML,
			sfever: someobj['sfever'],
			scough: someobj['scough'],
			srunnynose: someobj['srunnynose'],
			sheadache: someobj['sheadache'],
			sstomachache: someobj['sstomachache'],
			sbodyache: someobj['sbodyache'],
			sothersymptoms: someobj['sothersymptoms'],
			scomments: someobj['scomments'],
			spostedby: someobj['spostedby'],
			currtagcloud: currTagCloudSelection,
			sswLng: swLng,
			sneLng:	neLng,
			sswLat: swLat,
			sneLat:	neLat,
			szoomlevel: currZoomLevel
		},
		error:	function(type, errObj){
			document.getElementById("totalNumSickness").innerHTML = '0';
		},
		load:	function(type, data, evt){
			document.getElementById("totalNumSickness").innerHTML = data;
		}
	});
}


function more_symptoms_submit_close()
{
	moreSymptomsFormDialog.hide();
}

function showMoreSymptomsDialog()
{
	if (moreSymptomsFormDialog == null) moreSymptomsFormDialog = dojo.widget.byId("moresymptoms_DialogContent");
	moreSymptomsFormDialog.show();
}

function filterPageChange()
{
	if (!insideMapView) filterPageChangeVersion2();
}

function filterPageChangeVersion2()
{
	//showProcessing();
	initTagCloud();
	if ( getNodesCallbackTimeout != 0 )
		clearTimeout( getNodesCallbackTimeout );
	getNodesCallbackTimeout = setTimeout( RouteCaller( getNodes, null, null, null, "FilterData" ), 50 );
	
	var currZoomLevel = mapSickness.getZoom();
	
	if (currZoomLevel >= 9)
		document.getElementById("control").style.display = "none";
	else
		document.getElementById("control").style.display = "block";
}
//elai - posting comments
function PostCommentData()
{
	var someobj = dojo.widget.byId('postsicknesscomments').getValues();
	var logName = dojo.io.cookie.get("cookname");

	if (logName == null || logName == '') {
		alert("Error: You must be logged in to enter a comment");
	}
	else if (trim(someobj['user_comments']) == ""){
		alert("Error: You must enter comments to post.");
	}else{
			dojo.io.bind({
				url:	'phpscripts/insertCommentsIntoTable.php',
				useCache: false,
				preventCache: true,
				mimetype:	'text/json',
				content: {
				user_comments: someobj['user_comments'],
				pid: someobj['pid'],
				poster: someobj['poster'],
				username: logName
				}
			});

			dojo.io.bind({
				url:	'phpscripts/sendCommentNotification.php',
				useCache: false,
				preventCache: true,
				mimetype: 'text/html',
				content: {
					pid: someobj['pid']
				},		
				error:	function(type, errObj){
					alert('Sorry, failed to send comment notification via email. Please check with admin.  ' + errObj.message);
				},
				load:	function(type, data, evt){
				}
			});
	afterShowSingleSicknessPostings(someobj['pid']);
	}
}

function PostData()
{
	var someobj = dojo.widget.byId('postsickness').getValues();

	var anySymptom = checkIfAnySymptomForPost();
	if (anySymptom == 0) {
		alert('Invalid post, please choose at least one symptom!');
		return;
	}
	if (someobj['page'] == '') {
		alert('Invalid post, please enter your age!');
		return;
	}
	if (someobj['pzipcode'] == '') {
		alert('Invalid post, please enter a zip or territory code!');
		return;
	}	
	if ((someobj['pgender'] != 'F') && (someobj['pgender'] != 'M')){
		alert('Invalid post, please enter a gender');
		return;
	}	
	if (!(someobj['page'] >= 0 && someobj['page'] <= 100)) {
		alert('Invalid post, please enter realistic age!');
		return;
	}
	if (!(someobj['phowlong'] >= 0 && someobj['phowlong'] <= 60)) {
		alert('Invalid post, sickness must have occurred in the last 2 months!');
		return;
	}
	
	geocoder.getLatLng(
		  someobj['pzipcode'],
		  function(point) {

			if (!point) {
				var someobj = dojo.widget.byId('postsickness').getValues();
				//alert("Invalid Address, failed to post");
				usePointFromPostcodeToPost(someobj['pzipcode']);
				return;
			} else {
				if (point == null) {
					var someobj = dojo.widget.byId('postsickness').getValues();
					//alert("Invalid Address, failed to post");
					usePointFromPostcodeToPost(someobj['pzipcode']);
					return;
				}

				numSessionPosts = numSessionPosts + 1;

				if ( (numSessionPosts >= 5) && (medicalprofessionalOldLoginUsernameDomNode.innerHTML == '') ) {
					alert('Post operation has been disabled since you have exceeded the number of posts permitted per user! We aggresively monitor multiple postings, and prevent spam!');
					return;
				}

				var moreSymptomsBits = pickMoreSymptoms();

				var latitude = point.lat();
				var longitude = point.lng();
				//var someGeoObj = new GLatLng(latitude,longitude);
				//var pixel = proj.fromLatLngToPixel(someGeoObj,10);

				var someobj = dojo.widget.byId('postsickness').getValues();

				if ( getNodesCallbackTimeout != 0 )
					clearTimeout( getNodesCallbackTimeout );

				show('group1', dojo.byId('li1'));
				dojo.io.bind({
					url:	'phpscripts/insertintotable.php',
					useCache: false,
					preventCache: true,
					mimetype:	'text/json',
					//formNode: dojo.widget.byId('searchsickness'),
					content: {
							platitude: latitude,
							plongitude: longitude,
							//px:	pixel.x,
							//py: pixel.y,
							pgender: someobj['pgender'],
							page: someobj['page'],
							phowlong: someobj['phowlong'],
							pfever: someobj['pfever'],
							pcough: someobj['pcough'],
							prunnynose: someobj['prunnynose'],
							pheadache: someobj['pheadache'],
							pstomachache: someobj['pstomachache'],
							pbodyache: someobj['pbodyache'],
							pcomments: someobj['pcomments'],
							pzipcode: someobj['pzipcode'],
							//pmedicalprofessional: loggedIn_medicalprofessional_id,
							pmedicalprofessional: medicalprofessionalOldLoginUsernameDomNode.innerHTML,
							pmoresymptoms: moreSymptomsBits
						},
					error:	function(type, errObj){
						getNodesCallbackTimeout = setTimeout("getNodes();",ASYNC_TIME);
					},
					load: function(type, data, evt){
						getNodesCallbackTimeout = setTimeout( RouteCaller( getNodesCallback, type, data, evt, "PostData" ), 50 );
					}
				});
			}
		  }
		);
}


// This returns a function closure that calls the given routine with the
// specified arg.
RouteCaller = function ( func, arg1, arg2, arg3, arg4 )
{
	if (arg4 == "FilterData")
		return function () { func( ); };
	else
		return function () { func( arg1, arg2, arg3, arg4 ); };
}


function tabSearch_submit()
{
	var sz = document.getElementById('szipcode');
	if (sz.value != '') {
		showAddress(sz.value);
	}
}

function showAddress(address) {
	if (insideMapView) return;

	if (geocoder) {
		geocoder.getLatLng(
			  address,
			  function(point) {
				if (!point) {
				  //alert('INVALID ADDRESS='+address);
				  usePointFromPostcode(address);
				} else {

					var mtc = dojo.widget.byId('mainTabContainer');
					var selectedTab = mtc.selectedChildWidget;
					if ("Post Sickness" == selectedTab.label) {
						gCurrPostLocationLatitude = point.lat();
						gCurrPostLocationLongitude = point.lng();
						mapSickness.setCenter(point, 10);
						dojo.io.cookie.set("sicknessMapLastLocationLatitude", gCurrPostLocationLatitude, 30);
						dojo.io.cookie.set("sicknessMapLastLocationLongitude", gCurrPostLocationLongitude, 30);
					} else {
						gCurrFilterLocationLatitude = point.lat();
						gCurrFilterLocationLongitude = point.lng();
						mapSickness.setCenter(point, 10);
						dojo.io.cookie.set("sicknessMapLastLocationLatitude", gCurrFilterLocationLatitude, 30);
						dojo.io.cookie.set("sicknessMapLastLocationLongitude", gCurrFilterLocationLongitude, 30);
					}

					// persist last POST or SEARCH location as cookie
					dojo.io.cookie.set("sicknessMapLastLocation", address, 30);
					dojo.io.cookie.set("sicknessMapLastLocationZoom", mapSickness.getZoom(), 30);
				}
			  }
			);
	}
}


function enableMapEventListeners()
{
	zoomendListener = GEvent.addListener( mapSickness, 'zoomend', filterPageChange );
	moveendListener = GEvent.addListener( mapSickness, 'moveend', filterPageChange );
}

function disableMapEventListeners()
{
	GEvent.removeListener(zoomendListener);
	zoomendListener = null;
	GEvent.removeListener(moveendListener);
	moveendListener = null;
}

function getNodesCallback(type, data, evt, caller) {
	//var gmarkers = [];
	var mtc = dojo.widget.byId('mainTabContainer');
	var selectedTab = mtc.selectedChildWidget;

	// handle successful response here
	function createMarker(point,UIDDet,icon) {
		var marker = new GMarker(point,icon);
		if (UIDDet != "This is a cluster")
			// no info window for clusters currently
			GEvent.addListener(marker, "click", function() {
				// disable event listeners while opening info window
				// and re-enable after it is done otherwise
				// moveend listener interferes
				disableMapEventListeners();
				marker.openInfoWindowHtml(UIDDet);
				setTimeout("enableMapEventListeners();",1000);
	  		});
	  	
	  return marker;
	}

	if (data != false) {
		//alert(mapSickness.getZoom());

		//document.getElementById("right").innerHTML = document.getElementById("right").innerHTML+
		//									'getNodesCallbackData: data='+data+'<br>';
		//alert(data);

		var patient_id,age,gender,ts,post_ts,zipcode;
		var latitude,longitude,symptomIcon,comments,symptoms;
		var medicalprofessional_flag;

		var totStr = data.split("^");

		var point,newpoints=0;
		//var gmarlen=gmarkers.length;

		if (visitedQueryAssocArray.count == 0)
			mapSickness.clearOverlays();

		//for(var j = 0;j<gmarlen;j++)
		//	gmarkers.shift();

		var b = mapSickness.getBounds();
		var southWest = b.getSouthWest();
		var northEast = b.getNorthEast();

		var neLng = northEast.lng();
		var swLng = southWest.lng();
		var neLat = northEast.lat();
		var swLat = southWest.lat();

		var dx = neLng - swLng;
		var dy = neLat - swLat;
		dx *= 0.04;
		dy *= 0.04;

		neLng += dx;
		swLng -= dx;
		neLat += dy;
		swLat -= dy;

		var hash_val = 0;
		var someobj = null;
		var lastTimestamp = '';
		var oldLastTimestamp = '';
		var currZoomLevel = mapSickness.getZoom();
		
		//elai added for comment count section and username
		var comment_count = 0;
		var user_name = '';

		if ("Post Sickness" != selectedTab.label) {
			// Filter/Search

			if ('' != currTagCloudSelection) {
				hash_val = dojo.crypto.MD5.compute('filter'+
							currTagCloudSelection+
							swLng+neLng+swLat+neLat);
			} else {
				someobj = dojo.widget.byId('searchsickness').getValues();
				hash_val = dojo.crypto.MD5.compute('filter'+
							someobj['sgenderm']+
							someobj['sgenderf']+
							dojo.byId('sage_from').innerHTML+
							dojo.byId('sage_to').innerHTML+
							dojo.byId('spast_date').innerHTML+
							someobj['sfever']+
							someobj['scough']+
							someobj['srunnynose']+
							someobj['sheadache']+
							someobj['sstomachache']+
							someobj['sbodyache']+
							someobj['sothersymptoms']+
							someobj['scomments']+
							someobj['spostedby']+
							currZoomLevel+
							swLng+neLng+swLat+neLat);
				//alert("HASH_VAL_CALC_getNodesCallback=" + hash_val);
			}

			//var lastTimestamp = visitedQueryAssocArray[hash_val];
			if (visitedQueryAssocArray.containsKey(hash_val)) {
				lastTimestamp = visitedQueryAssocArray.item(hash_val);

				oldLastTimestamp = lastTimestamp;
			}
		} else {
			// Post
			hash_val = dojo.crypto.MD5.compute('post'+
						swLng+neLng+swLat+neLat);

			//var lastTimestamp = visitedQueryAssocArray[hash_val];
			if (visitedQueryAssocArray.containsKey(hash_val)) {
				lastTimestamp = visitedQueryAssocArray.item(hash_val);

				oldLastTimestamp = lastTimestamp;
			}
		}
		//currTagCloudSelection = '';	// reset tag cloud selection

		if (data != false) {
			//document.getElementById("right").innerHTML = document.getElementById("right").innerHTML+
			//									'getNodesCallback: HASH_VAL='+hash_val+
			//								',TIMESTAMP='+lastTimestamp+'<br>';

			for (var i=0; i < totStr.length; i++)
			{
				totStr[i] = totStr[i].replace(/"/g,"");
				var k = totStr[i].split("###");
/**********************
				if ("cluster" == k[0]) {
					// we are at cluster zoom level
					var centroidLat=k[1];
					var centroidLng=k[2];

					point = new GLatLng(centroidLat,centroidLng);
					var marker = createMarker(point, "This is a cluster", clusterIcon);

					mapSickness.addOverlay(marker);

					continue;
				}
***********************/				
				patient_id=parseInt(k[0]);
				age=parseInt(k[1]);
				gender=k[2];
				ts = k[3];
				latitude = k[4];
				longitude = k[5];
				comments = k[6];
				symptoms = k[7];
				medicalprofessional_flag = k[8];
				post_ts = k[9];
				
				comment_count = parseInt(k[10]);
				
				if (isNaN(comment_count)){
					comment_count = 0;
				}
				/*
				if (medicalprofessional_flag != 'anonymous_rd') {
					comment_count = parseInt(k[12]);
				}else{
					comment_count = parseInt(k[10]);
				}
				*/

				if (medicalprofessional_flag != 'anonymous_rd') {
					/*
					if (symptoms > 63 || symptoms < 0)
						symptomIcon = loadMapMarkerIcon(symptoms & 63,k[11],true);
						//symptomIcon = postingMedRedIcon_array[symptoms & 63];
					else
						symptomIcon = loadMapMarkerIcon(symptoms & 63,k[11],false);
						//symptomIcon = postingMedIcon_array[symptoms & 63];
					*/
					user_name = k[8];
					if (symptoms > 63 || symptoms < 0 )
						symptomIcon = loadMapMarkerIcon(symptoms & 63,-1,true);
						//symptomIcon = postingRedIcon_array[symptoms & 63];
					else
						symptomIcon = loadMapMarkerIcon(symptoms & 63,-1,false);
						//symptomIcon = postingIcon_array[symptoms & 63];					
				}
				else {
					user_name='Anonymous';
					if (symptoms > 63 || symptoms < 0 )
						symptomIcon = loadMapMarkerIcon(symptoms & 63,-1,true);
						//symptomIcon = postingRedIcon_array[symptoms & 63];
					else
						symptomIcon = loadMapMarkerIcon(symptoms & 63,-1,false);
						//symptomIcon = postingIcon_array[symptoms & 63];
				}
				
				point = new GLatLng(latitude,longitude);

				/////////////////////////////////////////////////
				// Now create Info Window text
				/////////////////////////////////////////////////
				var infoWindowText = '<form><div style="font-size: 11px; font-family:Arial, Verdana, sans-serif;width:200px;">';

				//http://www.google.com/custom?hl=en&client=google-coop&cof=S%3Ahttp%3A%2F%2Fwww.whoissick.com%3BCX%3AWho%2520Is%2520Sick%2520-%2520Health%2520Search%3BL%3Ahttp%3A%2F%2Fwww.transelectronics.com%2Fwhoissick%2FTitle.png%3BLH%3A72%3BLP%3A1%3B&q=fever+%22runny+nose%22&btnG=Search&cx=008650675282606854876%3Aeei2tgem2zg
				//var sPersonalizedReportQuery = "http://www.google.com/custom?hl=en&client=google-coop&cof=S%3Ahttp%3A%2F%2Fwww.whoissick.com%3BCX%3AWho%2520Is%2520Sick%2520-%2520Health%2520Search%3BL%3Ahttp%3A%2F%2Fwww.transelectronics.com%2Fwhoissick%2FTitle.png%3BLH%3A72%3BLP%3A1%3B&q=";

				//var sPersonalizedReportQuery = "http://www.google.com/search?hl=en&q=";
				//sPersonalizedReportQuery += buildPersonalizedQueryString(symptoms, true);
				
				//if (comments != '') {
				//	sPersonalizedReportQuery += comments;
				//	sPersonalizedReportQuery += "+";
				//}
				//sPersonalizedReportQuery += "&btnG=Search&cx=008650675282606854876%3Aeei2tgem2zg";
				//sPersonalizedReportQuery += "&btnG=Google+Search";

				//http://local.google.com/maps?f=q&hl=en&q=pharmacy+near+34.17247064346156,-118.64358901977539&ie=UTF8&z=13&om=1
				var sLocalSearchQuery = "http://local.google.com/maps?f=q&hl=en&q=pharmacy+near+"+latitude+","+longitude+"&ie=UTF8&z=13&om=1";
				
				/* elai - treating all non professionals and anonymous people alike
				if (medicalprofessional_flag != 'anonymous_rd') {
					// medical professional (display medical professional info
					var profileStr = k[10];
					if (profileStr != null && profileStr != '') {
						//alert(profileStr);
						profileStr = profileStr.replace(/^\s+|\s+$/g, "");
						profileStr = '<b style="font-size: 14px">' + profileStr;
						profileStr = profileStr.replace(/\n/,'</b>\n');
						//alert(profileStr);
						profileStr = profileStr.replace(/\n/g,'<br />');
						//alert(profileStr);
						
						infoWindowText = infoWindowText + "<span colspan=\"1\">"+profileStr+"</span><br>";
						infoWindowText = infoWindowText + "<hr>";
					}
				}
				*/

				// anonymous individual or medical professional
				if (user_name != ""){
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Posted By:&nbsp;</b>"+user_name+"</span><br>";					
				}
				else{
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Posted By:&nbsp;</b>Anonymous</span><br>";
				}

				
				if (age != null && age != "")
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Age:&nbsp;</b>"+age+"</span><br>";

				if (gender == 'M')
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Gender:&nbsp;</b>Male</span><br>";
				else if (gender == 'F')
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Gender:&nbsp;</b>Female</span><br>";

				if (ts != null && ts != "")
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Start date of sickness:&nbsp;</b>"+ts+"</span><br>";

				infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Symptoms:&nbsp;</b>"+buildPersonalizedQueryString(symptoms, false)+"</span><br>";

				if (comments != null && comments != "")
					infoWindowText = infoWindowText + "<span colspan=\"1\"><b>Comments:&nbsp;</b>"+comments+"</span><br>";

				infoWindowText = infoWindowText + '<br><i><a href = "#" onclick="showEmailFriendsDialog(); return false;" style="text-decoration: underline;">Tell a friend</a></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

				infoWindowText = infoWindowText + "<i><a href = \"#\" onclick=\"showSingleSicknessPostings(" +  patient_id  + "); return false;\" style=\"text-decoration: underline;\">" + comment_count + " Comment(s)</a></i>"

				infoWindowText = infoWindowText + '<br><br><i><a href = "#" onclick="flagThisPost(' + patient_id + '); return false;" style="text-decoration: underline; color: red;">Flag this post as spam</a></i>';	

				

				//infoWindowText = infoWindowText + "<br/>"+"<span colspan=\"1\"><a href=\"#\" onclick=\"mapSickness.closeInfoWindow();showPersonalizedReport('"+sPersonalizedReportQuery+"','"+sLocalSearchQuery+"'); return false;\">Click here for Personalized Report</a></span>";

				//infoWindowText = infoWindowText + "<span colspan=\"1\"><img src=\"images/Health_Report.png\" width=400 height=385/></span>";
				//infoWindowText = infoWindowText + "<span colspan=\"1\"><img src=\"images/Local_Report.png\" width=400 height=386/></span>";

				infoWindowText += "</div></form>";


				var marker = null;
				if (currZoomLevel >= 9)
					marker = createMarker(point, infoWindowText, symptomIcon);
				else
					marker = createMarker(point, "This is a cluster", clusterIcon);
				
				marker.patient_id = patient_id;

				//clusterer.AddMarker(marker,"just some text");
				mapSickness.addOverlay(marker);

				//document.getElementById("right").innerHTML = document.getElementById("right").innerHTML+
				//				"created marker";

				if (lastTimestamp == '' || lastTimestamp == null || post_ts > lastTimestamp) {
					//alert('NEW ENTRY='+lastTimestamp +','+post_ts);
					lastTimestamp = post_ts;
				}
			}

			totStr[0] = totStr[0].replace(/"/g,"");

			if (lastTimestamp != oldLastTimestamp) {
				// track last time stamp since we dont want re-fetch unless necessary
				//alert('UPDATE_HASH='+hash_val+','+lastTimestamp);
				visitedQueryAssocArray.add(hash_val,lastTimestamp);
			}


			//document.getElementById("right").innerHTML =
			//			document.getElementById("right").innerHTML+

			if ("PostData" == caller) {
				//mapSickness.setCenter(new GLatLng(gCurrPostLocationLatitude, gCurrPostLocationLongitude), 12);
				//alert(marker.inputForm);
				//mapSickness.openInfoWindowHtml(point,infoWindowText);
				// disable event listeners while opening info window
				// and re-enable after it is done otherwise
				// moveend listener interferes
				disableMapEventListeners();
				marker.openInfoWindowHtml(infoWindowText);
				setTimeout("enableMapEventListeners();",1000);
				setTimeout("updateSidebar();",3000);
			}
		}
	} else {
		// no sickness
		if ("Post Sickness" != selectedTab.label) {
			if (visitedQueryAssocArray.count == 0)
				mapSickness.clearOverlays();
		}		
	}
	
	if (initLoadData) {
		// only first time switch to tabPost
		initLoadData = false;
		//mtc.selectedChild = "tabPost";
		mtc.selectChild("tabPost", selectedTab);
	}
	
	if ( getNodesCallbackTimeout != 0 )
		clearTimeout( getNodesCallbackTimeout );
	getNodesCallbackTimeout = setTimeout("getNodes();",ASYNC_TIME);
}

function updateSidebar()
{
	var currZoomLevel = mapSickness.getZoom();

	// expand little bit to make smoother
	var b = mapSickness.getBounds();
	var southWest = b.getSouthWest();
	var northEast = b.getNorthEast();

	var neLng = northEast.lng();
	var swLng = southWest.lng();
	var neLat = northEast.lat();
	var swLat = southWest.lat();

	var dx = neLng - swLng;
	var dy = neLat - swLat;
	dx *= 0.04;
	dy *= 0.04;

	neLng += dx;
	swLng -= dx;
	neLat += dy;
	swLat -= dy;

	document.images['iframe_summarygraph'].src = SUMMARY_GRAPH_URL+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
	//document.images['iframe_linegraph'].src = LINE_GRAPH_URL+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
	//document.images['totalNumSickness'].src = "phpscripts/totalSicknessReport.php?"+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
	showTagCloud(neLng,swLng,neLat,swLat);
	showTotalNumSickness(neLng,swLng,neLat,swLat);
	updateGraphs(neLng,swLng,neLat,swLat);
}

var getNodesNeLng,getNodesSwLng,getNodesNeLat,getNodesSwLat;

function getNodes()
{
	var mtc = dojo.widget.byId('mainTabContainer');
	var selectedTab = mtc.selectedChildWidget;

	if (!selectedTab) {
		if ( getNodesCallbackTimeout != 0 )
			clearTimeout( getNodesCallbackTimeout );
		getNodesCallbackTimeout = setTimeout("getNodes();",ASYNC_TIME);
		return;
	}

	var currZoomLevel = mapSickness.getZoom();

	// expand little bit to make smoother
	var b = mapSickness.getBounds();
	var southWest = b.getSouthWest();
	var northEast = b.getNorthEast();

	var neLng = northEast.lng();
	var swLng = southWest.lng();
	var neLat = northEast.lat();
	var swLat = southWest.lat();


	var dx = neLng - swLng;
	var dy = neLat - swLat;
	dx *= 0.04;
	dy *= 0.04;

	neLng += dx;
	swLng -= dx;
	neLat += dy;
	swLat -= dy;

	//document.images['iframe_summarygraph'].src = SUMMARY_GRAPH_URL+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
	//document.images['iframe_linegraph'].src = LINE_GRAPH_URL+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
	//document.images['totalNumSickness'].src = "phpscripts/totalSicknessReport.php?"+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
	
	var localVarCurrTagCloudSelection = currTagCloudSelection;

	getNodesNeLng = neLng;
	getNodesSwLng = swLng;
	getNodesNeLat = neLat;
	getNodesSwLat = swLat;
	
	setTimeout("getNodesShowTagCloud();",4500);
	setTimeout("getNodesShowTotalNumSickness();",2500);
	setTimeout("getNodesUpdateGraphs();",3500);

	//setTimeout(showTagCloud(neLng,swLng,neLat,swLat),4500);
	//setTimeout(showTotalNumSickness(neLng,swLng,neLat,swLat),2500);
	//setTimeout(updateGraphs(neLng,swLng,neLat,swLat),3500);
	
/**********
	if ( window.frames['iframe_summarygraph'] ) {
		var newurl = "http://localhost/sickness/summarygraph.php?sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
		window.frames['iframe_summarygraph'].location.href = newurl;
	}
	if ( window.frames['iframe_linegraph'] ) {
		var newurl = LINE_GRAPH_URL+"sneLat="+neLat+"&sswLat="+swLat+"&sneLng="+neLng+"&sswLng="+swLng;
		window.frames['iframe_linegraph'].location.href = newurl;
	}
**********/

	if (!initLoadData && "Post Sickness" == selectedTab.label  && localVarCurrTagCloudSelection == "") {

		//var someobj = dojo.widget.byId('postsickness').getValues();

		var hash_val = dojo.crypto.MD5.compute('post'+
					swLng+neLng+swLat+neLat);
		var lastTimestamp = '';

		//alert('POST_LAST_FORM_UPDATE='+lastFormUpdate+',CURR_HASH_VAL='+hash_val);
		if (lastFormUpdate != hash_val || lastFormUpdate == 0) {
			// cleanup everything and restart since there was some filter
			//alert('POST:getNodes:cleanup');
			visitedQueryAssocArray.clear();

			//clusterer.RemoveAllMarkers();
			//mapSickness.clearOverlays();

			lastFormUpdate = hash_val;

		} else {
			if (visitedQueryAssocArray.containsKey(hash_val)) {
				lastTimestamp = visitedQueryAssocArray.item(hash_val);
				//alert('POST_FOUND_LAST_TIMESTAMP='+lastTimestamp);
				//alert('TS='+lastTimestamp+'\nswLat='+swLat+
				//			'\nswLng='+swLng+
				//			'\nneLat='+neLat+
				//			'\nneLng='+neLng);
			}
		}

		dojo.io.bind({
				url:	'phpscripts/searchFilterData.php',
				useCache: false,
				preventCache: true,
				mimetype:	'text/json',
				//formNode: dojo.byId('postsickness'),
				content: {
							slasttimestamp: lastTimestamp,
							sswLng: swLng,
							sneLng:	neLng,
							sswLat: swLat,
							sneLat:	neLat,
							szoomlevel: currZoomLevel
						},
				error:	function(type, errObj){
					if ( getNodesCallbackTimeout != 0 )
						clearTimeout( getNodesCallbackTimeout );
					getNodesCallbackTimeout = setTimeout("getNodes();",ASYNC_TIME);
				},
				load:	function(type, data, evt){
					getNodesCallback(type, data, evt, "PostFilter");
				}
			});
	} else {
		// filter
		
		var someobj = dojo.widget.byId('searchsickness').getValues();

		var hash_val = null;

		if ('' != localVarCurrTagCloudSelection) {
			hash_val = dojo.crypto.MD5.compute('filter'+
						localVarCurrTagCloudSelection+
						swLng+neLng+swLat+neLat);
		} else {
			hash_val = dojo.crypto.MD5.compute('filter'+
						someobj['sgenderm']+
						someobj['sgenderf']+
						dojo.byId('sage_from').innerHTML+
						dojo.byId('sage_to').innerHTML+
						dojo.byId('spast_date').innerHTML+
						someobj['sfever']+
						someobj['scough']+
						someobj['srunnynose']+
						someobj['sheadache']+
						someobj['sstomachache']+
						someobj['sbodyache']+
						someobj['sothersymptoms']+
						someobj['scomments']+
						someobj['spostedby']+
						currZoomLevel+
						swLng+neLng+swLat+neLat);

			//alert("HASH_VAL_CALC_getNodes=" + hash_val);
		}

		//document.getElementById("right").innerHTML =
		//			document.getElementById("right").innerHTML+
		//			'HASH:'+hash_val+'###last='+lastFormUpdate+'<br>';

		//alert('SEARCH_LAST_FORM_UPDATE='+lastFormUpdate+',CURR_HASH_VAL='+hash_val);
		if (lastFormUpdate != hash_val || lastFormUpdate == 0) {
			//alert('SEARCH:getNodes:cleanup');
			// cleanup everything and restart since there was some filter
			visitedQueryAssocArray.clear();

			//clusterer.RemoveAllMarkers();
			//mapSickness.clearOverlays();

			lastFormUpdate = hash_val;
		}

		var lastTimestamp = '';
		if (visitedQueryAssocArray.containsKey(hash_val)) {
			lastTimestamp = visitedQueryAssocArray.item(hash_val);
			//alert('FOUND_EXISTING_HASH='+hash_val+','+lastTimestamp);
		}

		dojo.io.bind({
				url:	'phpscripts/searchFilterData.php',
				useCache: false,
				preventCache: true,
				mimetype:	'text/json',
				//formNode: dojo.widget.byId('searchsickness'),
				content: {
						sgenderm: someobj['sgenderm'],
						sgenderf: someobj['sgenderf'],
						sage_from: dojo.byId('sage_from').innerHTML,
						sage_to: dojo.byId('sage_to').innerHTML,
						spast_date: dojo.byId('spast_date').innerHTML,
						sfever: someobj['sfever'],
						scough: someobj['scough'],
						srunnynose: someobj['srunnynose'],
						sheadache: someobj['sheadache'],
						sstomachache: someobj['sstomachache'],
						sbodyache: someobj['sbodyache'],
						sothersymptoms: someobj['sothersymptoms'],
						scomments: someobj['scomments'],
						spostedby: someobj['spostedby'],
						slasttimestamp: lastTimestamp,
						currtagcloud: localVarCurrTagCloudSelection,
						sswLng: swLng,
						sneLng:	neLng,
						sswLat: swLat,
						sneLat:	neLat,
						szoomlevel: currZoomLevel
					},

				error:	function(type, errObj){
					//mapSickness.clearOverlays();
					//for ( var ij = 0; ij < clusterer.markers.length; ++ij ) {
					//	clusterer.RemoveMarker(clusterer.markers[ij]);
					//}

					if ( getNodesCallbackTimeout != 0 )
						clearTimeout( getNodesCallbackTimeout );
					getNodesCallbackTimeout = setTimeout("getNodes();",ASYNC_TIME);
				},
				load:	function(type, data, evt){
					//dojo.debug(data);
					getNodesCallback(type, data, evt, "SearchFilter");
				}
			});
	}

}

// update symptom choice icon based on choices in the tab
function  checkIfAnySymptomForPost()
{
	var someobj = null;
	var symptomsCombo = DEF_NOSYMPTOMS;
	
	var mtc = dojo.widget.byId('mainTabContainer');
	var selectedTab = mtc.selectedChildWidget;

	someobj = dojo.widget.byId('postsickness').getValues();

	if( typeof(someobj['pfever']) !="undefined")
		symptomsCombo |= DEF_FEVER;
	if( typeof(someobj['pcough']) !="undefined")
		symptomsCombo |= DEF_COUGH;
	if( typeof(someobj['prunnynose']) !="undefined")
		symptomsCombo |= DEF_RUNNYNOSE;
	if(typeof(someobj['pheadache']) !="undefined")
		symptomsCombo |= DEF_HEADACHE;
	if(typeof(someobj['pstomachache']) !="undefined")
		symptomsCombo |= DEF_STOMACHACHE;
	if(typeof(someobj['pbodyache']) !="undefined")
		symptomsCombo |= DEF_BODYACHE;

	var moreSymptomBits = pickMoreSymptoms();
	
	if (moreSymptomBits == '') {
		if (symptomsCombo == 0)
			return 0;
	}
	
	return 1;
}

// update symptom choice icon based on choices in the tab
function  updateSymptomChoiceIcon()
{
	var someobj = null;
	var domObjSymptomChoiceIcon = null;
	var symptomsCombo = DEF_NOSYMPTOMS;
	
	var mtc = dojo.widget.byId('mainTabContainer');
	var selectedTab = mtc.selectedChildWidget;

	if ("Post Sickness" == selectedTab.label) {
		// post tab
		//alert('posttab');
		someobj = dojo.widget.byId('postsickness').getValues();
		domObjSymptomChoiceIcon = document.getElementById("psymptom_choice_icon");
	} else {
		// search tab
		someobj = dojo.widget.byId('searchsickness').getValues();
		domObjSymptomChoiceIcon = document.getElementById("ssymptom_choice_icon");
	}

	if( ("Post Sickness" == selectedTab.label && typeof(someobj['pfever']) !="undefined") ||
		 ("Search" == selectedTab.label && typeof(someobj['sfever']) !="undefined") ) {
		symptomsCombo |= DEF_FEVER;
	}
	if( ("Post Sickness" == selectedTab.label && typeof(someobj['pcough']) !="undefined") ||
		 ("Search" == selectedTab.label && typeof(someobj['scough']) !="undefined") ) {
		symptomsCombo |= DEF_COUGH;
	}
	if( ("Post Sickness" == selectedTab.label && typeof(someobj['prunnynose']) !="undefined") ||
		 ("Search" == selectedTab.label && typeof(someobj['srunnynose']) !="undefined") ) {
		symptomsCombo |= DEF_RUNNYNOSE;
	}
	if( ("Post Sickness" == selectedTab.label && typeof(someobj['pheadache']) !="undefined") ||
		 ("Search" == selectedTab.label && typeof(someobj['sheadache']) !="undefined") ) {
		symptomsCombo |= DEF_HEADACHE;
	}
	if( ("Post Sickness" == selectedTab.label && typeof(someobj['pstomachache']) !="undefined") ||
		 ("Search" == selectedTab.label && typeof(someobj['sstomachache']) !="undefined") ) {
		symptomsCombo |= DEF_STOMACHACHE;
	}
	if( ("Post Sickness" == selectedTab.label && typeof(someobj['pbodyache']) !="undefined") ||
		 ("Search" == selectedTab.label && typeof(someobj['sbodyache']) !="undefined") ) {
		symptomsCombo |= DEF_BODYACHE;
	}

	//alert(symptomsCombo);
	
	var moreSymptomBits = pickMoreSymptoms();
	if( ("Post Sickness" == selectedTab.label && moreSymptomBits  != '') ||
		 ("Search" == selectedTab.label && typeof(someobj['sothersymptoms']) !="undefined") )
		domObjSymptomChoiceIcon.setAttribute("src", "images/symptoms/tab_red_" + symptomsCombo + ".gif");
	else
		domObjSymptomChoiceIcon.setAttribute("src", "images/symptoms/tab_" + symptomsCombo + ".gif");
}

function pickMoreSymptoms()
{
	var moreSymptomsSelection = dojo.widget.byId('more_symptoms_form').getValues();

	var moreSymptomBits = '';
	
	if( typeof(moreSymptomsSelection[DEF_common_food_poisoning]) !="undefined") {
		moreSymptomBits += DEF_common_food_poisoning;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_common_chicken_pox]) !="undefined") {
		moreSymptomBits += DEF_common_chicken_pox;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_eyes_redness]) !="undefined") {
		moreSymptomBits += DEF_eyes_redness;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_eyes_blurred]) !="undefined") {
		moreSymptomBits += DEF_eyes_blurred;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_eyes_watery]) !="undefined") {
		moreSymptomBits += DEF_eyes_watery;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_eyes_sensitive_to_light]) !="undefined") {
		moreSymptomBits += DEF_eyes_sensitive_to_light;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_eyes_itchy]) !="undefined") {
		moreSymptomBits += DEF_eyes_itchy;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_nose_bleeding]) !="undefined") {
		moreSymptomBits += DEF_nose_bleeding;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_ear_buzzing]) !="undefined") {
		moreSymptomBits += DEF_ear_buzzing;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_ear_pain]) !="undefined") {
		moreSymptomBits += DEF_ear_pain;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_ear_hearing_loss]) !="undefined") {
		moreSymptomBits += DEF_ear_hearing_loss;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_mouth_sores]) !="undefined") {
		moreSymptomBits += DEF_mouth_sores;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_mouth_dry]) !="undefined") {
		moreSymptomBits += DEF_mouth_dry;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_throat_hoarse]) !="undefined") {
		moreSymptomBits += DEF_throat_hoarse;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_throat_difficulty_swallowing]) !="undefined") {
		moreSymptomBits += DEF_throat_difficulty_swallowing;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_throat_tonsils_swollen]) !="undefined") {
		moreSymptomBits += DEF_throat_tonsils_swollen;	moreSymptomBits += '#';
	}
	//if( typeof(moreSymptomsSelection[DEF_muscle_cramping]) !="undefined") {
	//	moreSymptomBits += DEF_muscle_cramping;	moreSymptomBits += '#';
	//}
	if( typeof(moreSymptomsSelection[DEF_stomach_swelling]) !="undefined") {
		moreSymptomBits += DEF_stomach_swelling;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_stomach_loss_of_appetite]) !="undefined") {
		moreSymptomBits += DEF_stomach_loss_of_appetite;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_bowel_bloody_stool]) !="undefined") {
		moreSymptomBits += DEF_bowel_bloody_stool;	moreSymptomBits += '#';
	}
	//if( typeof(moreSymptomsSelection[DEF_bowel_foul_smelling_urine]) !="undefined") {
	//	moreSymptomBits += DEF_bowel_foul_smelling_urine;	moreSymptomBits += '#';
	//}
	if( typeof(moreSymptomsSelection[DEF_bowel_constipation]) !="undefined") {
		moreSymptomBits += DEF_bowel_constipation;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_bowel_excessive_gas]) !="undefined") {
		moreSymptomBits += DEF_bowel_excessive_gas;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_chest_wheezing]) !="undefined") {
		moreSymptomBits += DEF_chest_wheezing;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_chest_racing_heartbeat]) !="undefined") {
		moreSymptomBits += DEF_chest_racing_heartbeat;	moreSymptomBits += '#';
	}
	//if( typeof(moreSymptomsSelection[DEF_joints_pain]) !="undefined") {
	//	moreSymptomBits += DEF_joints_pain;	moreSymptomBits += '#';
	//}
	if( typeof(moreSymptomsSelection[DEF_skin_rash]) !="undefined") {
		moreSymptomBits += DEF_skin_rash;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_skin_sweating]) !="undefined") {
		moreSymptomBits += DEF_skin_sweating;	moreSymptomBits += '#';
	}
	if( typeof(moreSymptomsSelection[DEF_skin_cold]) !="undefined") {
		moreSymptomBits += DEF_skin_cold;	moreSymptomBits += '#';
	}
	
	return moreSymptomBits;
}

function resetPostForm()
{
	//var resetObj={phowlong: "1",page: "",pcomments:"",pgender:""};
	//dojo.widget.byId('postsickness').setValues(resetObj);

	var formNode = dojo.byId("postsickness");

	for(var i = 0; i < formNode.elements.length; i++){ 
		var elm = formNode.elements[i];

		if (elm.type=="checkbox") { 
			var ck = dojo.widget.byId(elm.name);

			ck.checked = false;
			ck._setInfo();
		}  
		else if (elm.type=="radio") { 
			elm.checked =false;
		}  
		else if (elm.type=="text" || elm.type == "textarea") {
			if (elm.name == "phowlong") elm.value = "1";
			else if (elm.name=="page") elm.value = "";
			else if (elm.name=="pcomments") elm.value="";
		}
	} 
	formNode = dojo.byId("more_symptoms_form");

	for(var j = 0; j < formNode.elements.length; j++){ 

		var elm = formNode.elements[j]; 

		if (elm.type=="checkbox") { 
			var ck = dojo.widget.byId(elm.name);
			ck.checked = false;
			ck._setInfo();
		} 
	} 
	
	var domObjSymptomChoiceIcon = document.getElementById("psymptom_choice_icon");
	domObjSymptomChoiceIcon.setAttribute("src", "images/symptoms/tab_0.gif");
}	
function initTagCloud()
{
	currTagCloudSelection = '';
	/*
	lastTagCloudData = '<hr><a href="#" style="text-decoration: underline;font-size: 12px;" onclick="' + 
	'filterByTagCloudEmpty(); return false;'+
	'"><b>Click any symptom to filter</b></a><br>' + data;
	*/							
	document.getElementById("tag_cloud_div").innerHTML = '<hr><span style="font-size: 12px;"><b>Click any symptom to filter</b></span><br>' + lastTagCloudData;
}

function filterByTagCloudEmpty()
{
	document.getElementById("tag_cloud_div").innerHTML = '<hr><span style="font-size: 12px;"><b>Click any symptom to filter</b></span><br>' + lastTagCloudData;

	filterByTagCloud("","");
}

function filterByTagCloud(tagIdx,tag)
{
	currTagCloudSelection = tagIdx;
	
	if (tag != '')
		document.getElementById("tag_cloud_div").innerHTML = 
					'<hr><span style="font-size: 12px;"><b>Current filter:&nbsp;</b>' + tag + '&nbsp;&nbsp;&nbsp;</span><a href="#" style="text-decoration: underline;font-size: 12px;" onclick="' + 
					'filterByTagCloudEmpty(); return false;'+
					'"><i>Clear filter' +'</i></a><br>' + lastTagCloudData;
	
	if ( getNodesCallbackTimeout != 0 )
		clearTimeout( getNodesCallbackTimeout );
	getNodesCallbackTimeout = setTimeout( RouteCaller( getNodes, null, null, null, "FilterData" ), 50 );
}

function showTagCloud(neLng,swLng,neLat,swLat)
{
	dojo.io.bind({
		url:	'phpscripts/TagCloudFromDatabase.php',
		useCache: false,
		preventCache: true,
		mimetype:	'text/html',
		content: {
			sswLng: swLng,
			sneLng:	neLng,
			sswLat: swLat,
			sneLat:	neLat
		},
		error:	function(type, errObj){
			//if ( tagCloudCallbackTimeout != 0 )
			//	clearTimeout( tagCloudCallbackTimeout );
			//tagCloudCallbackTimeout = setTimeout("showTagCloud();",ASYNC_TIME);
			//lastTagCloudData = '';
		},
		load:	function(type, data, evt){
			if (data != lastTagCloudData) {
				lastTagCloudData = data;
				initTagCloud();
			}
			//if ( tagCloudCallbackTimeout != 0 )
			//	clearTimeout( tagCloudCallbackTimeout );
			//tagCloudCallbackTimeout = setTimeout("showTagCloud();",ASYNC_TIME);
		}
	});
}

function getNodesShowTagCloud() {
	showTagCloud(getNodesNeLng,getNodesSwLng,getNodesNeLat,getNodesSwLat);
}

function getNodesShowTotalNumSickness() {
	showTotalNumSickness(getNodesNeLng,getNodesSwLng,getNodesNeLat,getNodesSwLat);
}

function getNodesUpdateGraphs() {
	updateGraphs(getNodesNeLng,getNodesSwLng,getNodesNeLat,getNodesSwLat);
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
