var lastClickWasToExpand = "";
var pendingQuestionWaitingForZipcode = false;
var pendingQuestionCrowdId = 0;
var pendingQuestionComment = "";
var pendingQuestionSource = false;
var facebookLoginCallback = "";
var zipCodeCallback = "";
var userZipCode = 0;
var zipCodeCancelCallback;
function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}
var pingInProgress = false;
var pingCount = 1;
var latestPingReceived = 0;
var orderingMode = 1;
function ping(isForced)
{
	
	if (pingPauseState)
	{
		return;
	}
	
	if (pingInProgress && isForced != true)
	{
		return;
	}
	
	pingInProgress = true;
	
	var displayType = pingDisplayType;
	var xmlHttp = getXMLHttp();
	var thisPingCount = pingCount;
	pingCount++;
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			if (thisPingCount < latestPingReceived)
			{
				//alert("overrun");
				return;
			}
				
			if (pingPauseState)
			{
				//alert("skipping");
				pingInProgress = false;
				return;
			}
			
			latestPingReceived = thisPingCount;
			
			
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{
					if (response == 'loggedOut')
					{
						redirect('/login');
					}
					if (response == 'logout')
					{
						redirect('/logout');
					}
					
					var weHaveAnUpdate = false;
					//$('cityChoices').innerHTML = response;
					//alert(response);
					var temp = new Array(); 
					temp = response.split('%^$');
					var id = 0;
					var dirtyBit = -1;
					//var newIds = "";
					//var newDates = "";
					for (var i = 0; i < temp.length; i++)
					{					
						//if (temp[i] != "" && null != temp[i] )
						//{
							/*if (i == temp.length-2)
							{
								newIds = temp[i];
								//alert(newIds);
							}
							else if (i == temp.length-1)
							{
								newDates = temp[i];
								//alert(newDates);
							}
							else
							{*/
								//alert(temp[i]);
								if (id == 0)
									id = temp[i];
								else if(dirtyBit == -1)
									dirtyBit = temp[i];
								else
								{
									//alert(temp[i]);
									if (temp[i] != "")
									{
										if (temp[i] == "delete")
										{
											if (document.getElementById("parent" + id))
											{
												document.getElementById("parent" + id).style.display="none";
												document.getElementById('searchResults').removeChild(document.getElementById("parent" + id));
											}
											removeDirtyBit(id);
										}
										else
										{
											weHaveAnUpdate = true;
											if (document.getElementById("parent" + id))
											{
												if (orderingMode == 2)
												{
													document.getElementById("parent" + id).innerHTML = temp[i];
													document.getElementById('searchResults').insertBefore(document.getElementById("parent" + id), document.getElementById('searchResults').firstChild);
												}
												else
												{
													document.getElementById("parent" + id).innerHTML = temp[i];
												}	
												updateLastDate(id, dirtyBit);
											}
											else
											{
												//its a new element
												document.getElementById('searchResults').innerHTML = temp[i] + document.getElementById('searchResults').innerHTML;
												addDirtyBit(id, dirtyBit);
											}
										}
										
									}
									id = 0;
									dirtyBit = -1;
								}
							//}
						//}
					}
					//ids = newIds;
					//lastDates = newDates;
					//document.getElementById('pingCount').innerHTML = document.getElementById('pingCount').innerHTML + ".";
					
					if (weHaveAnUpdate)
					{
						updateFacebookPics();
					}
				}
			}
			//call ping again.
			pingInProgress = false;
			ping();
		}
	}
	var topId = 0;
	if (document.getElementById('searchResults'))
	{
		try
		{
			topId = document.getElementById('searchResults').firstChild.id.substring(6);
		}
		catch(e)
		{
			topId = 0;
		}
	}
		
		
 	xmlHttp.open("GET", "/ajax_receiver_ping.php?" + "type=ping" + "&ids=" + encodeURIComponent(ids) + "&lastDates=" + encodeURIComponent(lastDates) + "&displayType=" + encodeURIComponent(displayType) + "&feedType=" + encodeURIComponent(feedType) + "&extraInput1=" + encodeURIComponent(extraInput1) + "&orderingMode=" + encodeURIComponent(orderingMode) + "&topId=" + encodeURIComponent(topId)  + "&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);
}

/*function showCityChoices()
{
	var stateList = "";
	for (var i=0; i < document.locationForm.state.length; i++)
   {
		if (document.locationForm.state[i].checked)
		{
			stateList = stateList + document.locationForm.state[i].value + ",";
		}
	}
	alert(stateList);
		
	//$('showLoading').style.display='block';
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{
					$('cityChoices').innerHTML = response;
				}
			}
		}
	}

 	xmlHttp.open("GET", "/ajax_receiver.php?" + "type=showCityChoices" + "&stateList=" + encodeURIComponent(stateList) + "&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);
}*/

function changeSilhouette(num)
{		

	

	if (num == "")
	{
		alert("You must select a silhouette!");
		return;
	}
	
	document.getElementById('popupSilhouette').style.display = 'none';
	promptLogin('popupSaving');

	
		
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (response == "error")
			{
				alert('There was an error in your request, please try again in a moment.');
				document.getElementById('popupSaving').style.display = 'none';
				grayOut(false);
				return;
			}
			window.location.reload();			
			/*if (null != response && response != '')
			{	  
				if (!isError(response))
				{					
					
				}
			}*/
		}
	}

 	
	var params = "type=changeSilhouette" + "&num=" + encodeURIComponent(num);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function changeDefaultCommentCount(num)
{		

	

	if (!num || num == "" || num < 0)
	{		
		return;
	}
	
	gebi('defaultCommentCountSaving').innerHTML = "<span style='color:red;'>Saving...</span>";		
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (response == "error")
			{
				alert('There was an error in your request, please try again in a moment.');
				gebi('defaultCommentCountSaving').innerHTML = "<span style='color:red;'>ERROR - Please refresh and try again.</span>";		
				return;
			}
			gebi('defaultCommentCountSaving').innerHTML = "<span style='color:green;'>Saved.</span>";
		}
	}

 	
	var params = "type=changeDefaultCommentCount" + "&num=" + encodeURIComponent(num);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}
function changeDisplayIconOrPhoto(num)
{		

	

	if (!num || num == "" || (num != 0 && num != 1 && num !=2))
	{		
		return;
	}
	
	gebi('iconOrPhotoSaving').innerHTML = "<span style='color:red;'>Saving...</span>";		
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (response == "error")
			{
				alert('There was an error in your request, please try again in a moment.');
				gebi('iconOrPhotoSaving').innerHTML = "<span style='color:red;'>ERROR - Please refresh and try again.</span>";		
				return;
			}
			gebi('iconOrPhotoSaving').innerHTML = "<span style='color:green;'>Saved.</span>";
		}
	}

 	
	var params = "type=changeDisplayIconOrPhoto" + "&num=" + encodeURIComponent(num);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}
function getConversationAlertSetting(conversationId)
{
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					//it worked!
					
					var newSettingArray = document.conversationAlertForm.conversation;
					newSettingArray[0].disabled = false;
					newSettingArray[1].disabled = false;
					newSettingArray[2].disabled = false;
					newSettingArray[3].disabled = false;
					
					if (response >= 0 && response <= 3)
						newSettingArray[response].checked = true;
					
					document.getElementById('loadingSettings').style.display='none';
					
	
				}else
				{
					alert("There was an error in your request. Try again later");
					hideChangeConversationAlertSettings();
				}
			}else
			{
				alert("There was a problem retrieving your settings. Please refresh and try again.");
				hideChangeConversationAlertSettings();
			}
			//btn.disabled=false;
			//btn.value="Update Settings";
			//hideChangeConversationAlertSettings();			
		}
	}
	
 	xmlHttp.open("GET", "/ajax_receiver.php?" + "type=getConversationAlertSetting" + "&conversationId=" + encodeURIComponent(conversationId)+"&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);	
}

function newConvAccount(btn)
{
	btn.disabled=true;
	btn.value="Creating...";
	
	//var message = "";//document.getElementById("message").value;
	var name = document.getElementById("nameInput").value;		
	var email = document.getElementById("emailInput").value;	
	var zip = document.getElementById("zipInput").value;
	var message = document.getElementById("questionBiz").value;
	
	var crowdId = newConvCrowdId;
	if (crowdId <= 0 )
	{
		alert("You must select a crowd first!");
		btn.disabled=false;
		btn.value="OK";
		return;
	}
	if (isBlank(message) || message == "Type your question...")
	{
		alert("Please enter your message to this business crowd first!");
		btn.disabled=false;
		btn.value="OK";
		return;
	}	
	
	if (isBlank(name))
	{
		alert('Please enter your name!');
		btn.disabled=false;
		btn.value="OK";
		return;
	}
	var splitName = name.split(" ");				
	/*if (splitName.length == 1)
	{
		alert('Please enter both your first and last name!');
		btn.disabled=false;
		btn.value="OK";
		return;
	}*/
				
	if (isBlank(email))
	{
		alert('You must enter your email address so we can verify that you are not a spammer.');
		btn.disabled=false;
		btn.value="OK";
		return;
	}
	var regexp_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/;
    if (!regexp_email.test(email))
	{
		alert('Please enter a valid email address.  You will have to verify it before your question is posted.');
		btn.disabled=false;
		btn.value="OK";
		return;
	}
	
	if (isBlank(zip))
	{
		alert("You must enter your zip code!");
		btn.disabled=false;
		btn.value="OK";
		return;
	}
	if (!isValidZip(zip))
	{
		alert("You must enter a valid zip code!");
		btn.disabled=false;
		btn.value="OK";
		return;
	}	

	
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					if (response == 'NotValid')
					{
						alert("You entered an invalid zip code. Please enter a valid zip code so we can connect you with local businesses.");
						btn.disabled=false;
						btn.value="OK";
						return;
					}
					else
					{
						//it worked!
						redirect('/?checkEmail=true&goal=newAccount');
					}
				}else
				{
					alert("There was an error in your request. Try again later");
					btn.disabled=false;
					btn.value="OK";
					return;
				}
			}else
			{
				alert("There was an error in your request. Try again later");
				btn.disabled=false;
				btn.value="OK";
				return;
			}
		}
	}
	
 	
	var params = "type=newConvAccount" +"&name="+encodeURIComponent(name)+"&email="+encodeURIComponent(email)+"&zip="+encodeURIComponent(zip)+"&crowdId="+encodeURIComponent(crowdId)+"&message="+encodeURIComponent(message);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function newCrowd(btn, defaultTextCrowdName, defaultTextEmails)
{

	btn.disabled=true;
	btn.value="Creating...";
	
	//var message = "";//document.getElementById("message").value;
	var crowdName = document.getElementById("crowdName").value;		
	var userEmail = document.getElementById("userEmail").value;	
	var emailsString = document.getElementById("emailsToAdd").value;
	
	if (isBlank(crowdName) || crowdName == defaultTextCrowdName)
	{
		alert('You must enter a name for the crowd.');
		btn.disabled=false;
		btn.value="Create Crowd";
		return;
	}
	if (isBlank(userEmail))
	{
		alert('You must enter your email address.');
		btn.disabled=false;
		btn.value="Create Crowd";
		return;
	}
	var regexp_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/;
    if (!regexp_email.test(userEmail))
	{
		alert('Please enter a valid email address.  You will have to verify it before the crowd is created.');
		btn.disabled=false;
		btn.value="Create Crowd";
		return;
	}
	
	if (emailsString == defaultTextEmails)
		emailsString = "";
		
	
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					//it worked!
					redirect('/?checkEmail=true');
				}else
				{
					alert("There was an error in your request. Try again later");
					btn.disabled=false;
					btn.value="Create Crowd";
					return;
				}
			}else
			{
				alert("There was a problem saving your settings. Please refresh and try again.");
				btn.disabled=false;
				btn.value="Create Crowd";
				return;
			}
			//btn.disabled=false;
			//btn.value="Update Settings";	
		}
	}
	
 		
	var params = "type=newCrowd" +"&crowdName="+encodeURIComponent(crowdName)+"&userEmail="+encodeURIComponent(userEmail)+"&emailsString="+encodeURIComponent(emailsString);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
	
}
function newCrowdSimple(btn, defaultTextCrowdName, defaultTextEmails)
{

	btn.disabled=true;
	btn.value="Saving...";
	
	var crowdName = document.getElementById("crowdName").value;	
	//var description = document.getElementById("description").value;	
	var emailsString = document.getElementById("emailsToAdd").value;
	
	if (isBlank(crowdName) || crowdName == defaultTextCrowdName)
	{
		alert('You must enter a name for the crowd.');
		btn.disabled=false;
		btn.value="Create Crowd";
		return;
	}
	/*if (isBlank(description))
	{
		alert('You must enter a description for this crowd.');
		btn.disabled=false;
		btn.value="Create Crowd";
		return;
	}*/
	
	if (emailsString == defaultTextEmails)
		emailsString = "";
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					//it worked!
					redirect('/crowd.php?id=' + response);
				}else
					alert("There was an error in your request. Try again later");
			}else
				alert("There was a problem saving your settings. Please refresh and try again.");
			//btn.disabled=false;
			//btn.value="Update Settings";		
		}
	}
	
 		
	var params = "type=newCrowdSimple" + "&emailsString=" + encodeURIComponent(emailsString)+"&crowdName="+encodeURIComponent(crowdName);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
	
}
function updateCrowdAlertSettings(btn, crowdId)
{

	btn.disabled=true;
	btn.value="Saving...";
	
	var newSettingArray = document.crowdAlertForm.crowd;
	var isDefault = -1;	
	if (newSettingArray[0].checked)
		isDefault = 1;
	else if (newSettingArray[1].checked)
		isDefault = 0;
	
	var custom1 =  document.crowdAlertForm.custom1.checked;
	if (custom1)
		custom1 = 1;
	else
		custom1 = 0;
	
	var custom2 =  document.crowdAlertForm.custom2.checked;
	if (custom2)
		custom2 = 1;
	else
		custom2 = 0;
		
	var custom3 =  document.crowdAlertForm.custom3.checked;
	if (custom3)
		custom3 = 1;
	else
		custom3 = 0;
		
	var custom4 =  document.crowdAlertForm.custom4.checked;
		if (custom4)
		custom4 = 1;
	else
		custom4 = 0;
	


	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					//it worked!
					
				}else
					alert("There was an error in your request. Try again later");
			}else
				alert("There was a problem saving your settings. Please refresh and try again.");
			btn.disabled=false;
			btn.value="Update Settings";
			hideChangeCrowdAlertSettings();			
		}
	}
	
	
	var params = "type=updateCrowdAlertSettings" + "&crowdId=" + encodeURIComponent(crowdId)+"&isDefault="+encodeURIComponent(isDefault)+"&custom1="+encodeURIComponent(custom1)+"&custom2="+encodeURIComponent(custom2)+"&custom3="+encodeURIComponent(custom3)+"&custom4="+encodeURIComponent(custom4);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
	
}
function updateConversationAlertSettings(btn)
{
	conversationId = currentConversationId;
	btn.disabled=true;
	btn.value="Saving...";
	
	var newSettingArray = document.conversationAlertForm.conversation;
	var newSetting = -1;	
	if (newSettingArray[0].checked)
		newSetting = 0;
	else if (newSettingArray[1].checked)
		newSetting = 1;
	else if (newSettingArray[2].checked)
		newSetting = 2;
	else if (newSettingArray[3].checked)
		newSetting = 3;


	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					//it worked!
					
				}else
					alert("There was an error in your request. Try again later");
			}else
				alert("There was a problem saving your settings. Please refresh and try again.");
			btn.disabled=false;
			btn.value="Update Settings";
			hideChangeConversationAlertSettings();			
		}
	}
	
	
	var params = "type=updateConversationAlertSettings" + "&conversationId=" + encodeURIComponent(conversationId)+"&newSetting="+encodeURIComponent(newSetting);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
	
}
function removeFromCrowd(crowdId)
{
	var message = "Are you sure you want to remove yourself from this crowd? You will no longer be able to participate in any new or existing conversations from this crowd.\n\nIf you rather be removed from a specific conversation, click 'Alerts' under that conversation to not receive any more emails about it.";
	var return_value = confirm(message);

	if(return_value==true){
	
		var xmlHttp = getXMLHttp();
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				var response = xmlHttp.responseText;
				
				if (null != response && response != '')
				{	  
					if (!isError(response))
					{	
						//it worked!
						alert("You have been removed from this crowd.");
						redirect('/');
					}else
						alert("There was an error in your request. Try again later");
				}else
					alert("There was a problem with your request. Please refresh and try again.");
							
			}
		}
		
		
		
		var params = "type=removeFromCrowd" + "&crowdId=" + encodeURIComponent(crowdId);
		xmlHttp.open("POST", "/ajax_receiver.php", true); 
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
	
}

function addEmailsToCrowd(crowdId)
{	
	var adder=document.getElementById("emailAdder");
	adder.disabled=true;
	adder.value="Adding...";
	
	var emailsString = document.getElementById("emailsToAdd").value;

	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '')
			{	  
				if (response == "reached_limit")
				{
					alert("You have reached the limit of accounts for your business!");
					location.reload(true);
				}
				else if (!isError(response))
				{	
					var all = response.split("\n");
					var inT=document.getElementById("inT");
					var outT=document.getElementById("outT");
					var each, contactId, aname, name, inContacts, inFriends, newTr, nameTd;
					for(var i=0;i<all.length;i++){
						each=all[i].split(" ");
						contactId=each[0];
						aname=each[1];
						name=userLinkFromName(contactId,aname);
						
						inContacts=document.getElementById("out"+contactId);
						if(inContacts)
							outT.removeChild(inContacts);
						inFriends=document.getElementById("in"+contactId);
						if(!inFriends){
							//if(inCount==0){
							//	inT.removeChild(document.getElementById("inBad"));
							//}
							newTr=inT.insertRow(inT.rows.length);
							newTr.id="in"+contactId;
							nameTd=newTr.insertCell(0);
							nameTd.id="name"+contactId;
							nameTd.innerHTML=name;
							newTr.insertCell(1).innerHTML="<img src='/images/delete_ph.png' alt='DELETE' onclick='deleteFromCrowd("+contactId+", "+crowdId+");' style='cursor:pointer;' />";
							inCount++;
						}
					}
					document.getElementById("emailsToAdd").value="";
					
				}else
					alert("There was an error in your request. Try again later");
			}else
				alert("Couldn't find any email addresses to add");
			adder.disabled=false;
			adder.value="Add Emails to Crowd";	
		}
	}
		
	var params = "type=addEmailsToCrowd" + "&crowdId=" + encodeURIComponent(crowdId)+"&string="+encodeURIComponent(emailsString);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);

	
}
function addContactToCrowd(contactId, crowdId){
	var test=document.getElementById("out"+contactId);
	var name=document.getElementById("name"+contactId).innerHTML;
	test.deleteCell(0);
	test.deleteCell(0);
	test.insertCell(0).innerHTML="Adding...";
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{			
					if (response == "reached_limit")
					{
						alert("You have reached the limit of accounts for your business!");
						location.reload(true);
					}
					else if(response=="true"){
						var outT=document.getElementById("outT");
						var inT=document.getElementById("inT");
						outT.removeChild(test);
						outCount--;
						if(outCount==0){
							var newRow=outT.insertRow(0);
							newRow.id="outBad";
							newRow.insertCell(0).innerHTML="All your contacts are already in this crowd!";
							
						}
						//if(inCount==0){
						//	inT.removeChild(document.getElementById("inBad"));
						//}
						var newTr=inT.insertRow(inT.rows.length);
						newTr.id="in"+contactId;
						var nameTd=newTr.insertCell(0);
						nameTd.id="name"+contactId;
						nameTd.innerHTML=name;
						newTr.insertCell(1).innerHTML="<img src='/images/delete_ph.png' alt='DELETE' onclick='deleteFromCrowd("+contactId+", "+crowdId+");' style='cursor:pointer;' />";
						inCount++;
					}
					else if (response == "false")
					{
						alert('This person has removed themself from the crowd. You cannot add them back in.');
						var outT=document.getElementById("outT");					
						outT.removeChild(test);
						outCount--;
						if(outCount==0){
							var newRow=outT.insertRow(0);
							newRow.id="outBad";
							newRow.insertCell(0).innerHTML="All your contacts are already in this crowd!";
							
						}
					}
				}
			}
		}
	}
	
	var params = "type=addContactToCrowd" + "&crowdId=" + encodeURIComponent(crowdId)+"&contactId="+encodeURIComponent(contactId);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
}
function deleteFromCrowd(contactId, crowdId){
	var test=document.getElementById("in"+contactId);
	var name=document.getElementById("name"+contactId).innerHTML;
	test.deleteCell(0);
	test.deleteCell(0);
	test.insertCell(0).innerHTML="Deleting...";
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{	
					if(response=="true"){
						var outT=document.getElementById("outT");
						var inT=document.getElementById("inT");
						inT.removeChild(test);
						inCount--;
						//if(inCount==0){
						//	var newRow=inT.insertRow(0);
						//	newRow.id="inBad";
						//	newRow.insertCell(0).innerHTML="You are the only one in the crowd!";
						//}
						if(outCount==0){
							outT.removeChild(document.getElementById("outBad"));
						}
						var newTr=outT.insertRow(outT.rows.length);
						newTr.id="out"+contactId;
						var nameTd=newTr.insertCell(0);
						nameTd.id="name"+contactId;
						nameTd.innerHTML=name;
						newTr.insertCell(1).innerHTML="<img src='/images/add_ph.png' alt='ADD' onclick='addContactToCrowd("+contactId+", "+crowdId+");' style='cursor:pointer;' />";
						
						outCount++;
					}
				}
			}
		}
	}

	var params = "type=deleteFromCrowd" + "&crowdId=" + encodeURIComponent(crowdId)+"&contactId="+encodeURIComponent(contactId);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function changeName(repeat)
{		
	if (!repeat)
		repeat = false;
	var name = document.getElementById('nameInput').value;

	if (name == "")
	{
		alert("You must enter your name so that if you comment, people know who you are!");
		return;
	}
	
	//var setAsDefault = document.getElementById('setAsDefault').value;
	
	document.getElementById('popupName').style.display = 'none';
	promptLogin('popupSaving');
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			
			document.getElementById('popupSaving').style.display='none';
	
			if (null != response && response != '')
			{	  
				
				if (response == "NotValid" || isError(response))
				{
					alert("The name you entered is not valid! Please enter your real name.");
					if (repeat)
						promptLogin('popupName');
					return;
				}
			
								
				grayOut(false);
					
			}
		}
	}

 		
	var params = "type=changeName" + "&name=" + encodeURIComponent(name);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}
function changeLocationCancel()
{
	logger("Canceled Zip Code");	
	document.getElementById("popupZipCode").style.display="none";
	if (pendingQuestionWaitingForZipcode)
	{
		grayOut(false);
	}
	else
	{
		grayOut(false);		
	}
	if (zipCodeCancelCallback)
		zipCodeCancelCallback();
}
function changeLocation(repeat)
{		
	if (!repeat)
		repeat = false;

		
	var zip = document.getElementById('zipInput').value;

	if (zip == "")
	{
		alert("You must enter your zip code!");
		return;
	}
	if (!isValidZip(zip))
	{
		alert("You must enter a valid zip code!");
		return;
	}
	
	if (document.getElementById('setAsDefault'))
	{
		var setAsDefault = document.getElementById('setAsDefault').checked;
		if (setAsDefault)
			setAsDefault = 1;
		else
			setAsDefault = 0;
	}
	else
		setAsDefault = 0;
		
	document.getElementById('popupZipCode').style.display = 'none';
	
	if (pendingQuestionWaitingForZipcode)
	{
		askCrowdQuestion(pendingQuestionCrowdId, pendingQuestionComment, zip, setAsDefault, pendingQuestionSource);
		return;
	}
	

	promptLogin('popupSaving');

	
		
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			
			document.getElementById('popupSaving').style.display='none';
	
		
			if (response == "NotValid" || isError(response) || response == null || response == '')
			{
				alert("The zip code you entered is not valid! Please enter a valid zip code.");
				if (repeat)
					promptLogin('popupZipCode');
				return;
			}
		
			var temp = new Array(); 
			temp = response.split(';');
			zip = temp[0];
			city = temp[1];
			
					
			if (document.getElementById('zip'))
				document.getElementById('zip').value = zip;
			if (document.getElementById('city'))
				document.getElementById('city').innerHTML = city;
			
			grayOut(false);
			
			if (zipCodeCallback)
			{
				zipCodeCallback(zip);
			}
				
		}
	}

	
	var params = "type=changeLocation" + "&zip=" + encodeURIComponent(zip)+ "&setAsDefault=" + encodeURIComponent(setAsDefault);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function askCrowdQuestion(crowdId, defaultText, zip, setAsDefault, fromQuestionBiz)
{ 	
	var question = "";
	if (fromQuestionBiz)
		question = $$('questionBiz');
	else
		question = $$('question');
		
			
	//updateFacebookPics();	
	var questionWithoutSpaces = question.split(' ').join('').split('\n').join('').split('\r').join('');

	if (question == "" || questionWithoutSpaces == "" || question == defaultText)
	{
		alert("Ask your question before choosing the crowd!");
		return;
	}
	
	if (!isLoggedIn)
	{
		facebookLoginCallback = partial(askCrowdQuestion, crowdId, defaultText, zip, setAsDefault, fromQuestionBiz);
		showNewConvAccount();
	}
	
	grayOut(true, 300);	
	if ($('showLoading'))
		$('showLoading').style.display='block';
		
	if (!setAsDefault)
		setAsDefault = 0;
	
	
	if (zip == 1)
	{
		pendingQuestionWaitingForZipcode = true;
		pendingQuestionCrowdId = crowdId;
		pendingQuestionComment = defaultText;
		pendingQuestionSource = fromQuestionBiz;
		promptLogin('popupZipCode', 350);
		return;
	}
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	
							
				if (response == 'need2Login')
				{
					promptLogin('popupLogin');
				}
				else if (response == 'limit')
				{
					alert('You reached the limit of questions that can be asked in a day.  Come back tomorrow if you want to ask more.');
					window.location.reload();
					return;
				}
				else if (response.indexOf('reload') >= 0)
				{
					window.location.reload();
				}			
				else if (response.indexOf('invalidZip') >= 0)
				{
					pendingQuestionWaitingForZipcode = true;
					pendingQuestionCrowdId = crowdId;
					pendingQuestionComment = defaultText;
					pendingQuestionSource = fromQuestionBiz;
					promptLogin('popupZipCode', 350);
					alert("The zip code you entered is not valid. Please enter a valid zip code.");
					return;
				}	
				else
				{
					window.location = '/';
				}
			}
			if ($('showLoading'))	
				$('showLoading').style.display='none';
		}
	}

	
	var params = "type=askCrowdQuestion" + "&question=" + encodeURIComponent(question) + "&crowdId=" + encodeURIComponent(crowdId)  + "&zip=" + encodeURIComponent(zip)+ "&setAsDefault=" + encodeURIComponent(setAsDefault);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function addResponse(objTextId, theButton, parentId, defaultText, isDM, refreshPage, zipCode)
{		
	
	var comment = document.getElementById(objTextId).value;
				
	var commentWithoutSpaces = comment.split(' ').join('').split('\n').join('').split('\r').join('');

	if (comment == "" || commentWithoutSpaces == "" || comment == defaultText)
	{
		alert("You must enter a comment first!");
		return;
	}
		
	if (!isDM)
		isDM = 0;
	//pingPause = true;
	

	//var theButton = document.getElementById(objBtn);
	if (theButton)
	{
		theButton.value = 'Adding...';
		theButton.disabled = true;
	}
	
	
	
	if (isDM == 4 && zipCode == 0)
	{
		logger("Asking for zip code. Comment =" + comment);
		zipCodeCancelCallback = function(){ theButton.value='Send Message'; theButton.disabled=false;};
		zipCodeCallback = partial(addResponse, objTextId, theButton, parentId, defaultText, isDM, true);
		promptLogin('popupZipCode', 350);
		return;
	}
	
		
	if (!isLoggedIn)
	{
		userZipCode = zipCode;
		facebookLoginCallback = partial(addResponse, objTextId, theButton, parentId, defaultText, isDM, true, zipCode);
		showNewConvAccount(parentId, theButton);
		return;
	}
	
	
	
	//cancels all pings which were scheduled already and might return with old info.
	//pingCount++;
	//latestPingReceived = pingCount;
		
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			//theButton.value = 'Add Comment';
			//theButton.disabled = false;
			
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{			
					if (response == "quota_reached")
					{
						alert('Response could not be sent! Your quota has been reached for the month. You can upgrade to a Premium account and get unlimited responses per month!');
						window.location='/account/premium';
						theButton.value = 'Quota Reached';
						theButton.disabled = true;
						pingResume();
					}
					else if (response == 'limit_reached')
					{
						alert('You reached the limit of questions that can be asked in a day.  Come back tomorrow if you want to ask more.');
						return;
					}
					else if (response == "error_self")
					{
						alert('You cannot message yourself!');
						document.getElementById(objTextId).value = '';
						theButton.value = 'Send Message';
						theButton.disabled = false;
					}
					else if (response == "error_cantDMThem")
					{
						alert('You cannot direct message this person!');
						document.getElementById(objTextId).value = '';
						theButton.value = 'Send Message';
						theButton.disabled = false;
					}
					else
					{
						if (isDM)
						{
							if (refreshPage)
							{
								//when posting after having just logged in
								//window.location.reload();
								window.location = window.location + "#questions";
								window.location.reload();
							}
							else
							{
								pingResume(force=true);
								document.getElementById(objTextId).value = '';
								theButton.value = 'Send Message';
								theButton.disabled = false;
								window.location = window.location + "#questions";
						
							}
						}
						else
						{
							var temp = new Array(); 
							temp = response.split('%^$');
							updateLastDate(temp[1], temp[2]);
							updateHtml("commentsFor" + parentId, temp[0]);
							if (orderingMode == 2)
							{
								document.getElementById('searchResults').insertBefore(document.getElementById("parent" + parentId), document.getElementById('searchResults').firstChild);
							}
												
							pingResume();
							
						}						
					}
					updateQuota();
				}
				else
				{				
					alert("There was an error in your request. Try again later");					
				}
			}
			else
			{				
				alert("There was an error in your request. Try again later");					
			}
		}
	}

	var params = "type=addResponse" + "&comment=" + encodeURIComponent(comment) + "&parentId=" + encodeURIComponent(parentId) + "&isDM=" + encodeURIComponent(isDM) + "&zip=" + encodeURIComponent(zipCode);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
}
function showHiddenComments(parentId)
{		

			
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			//theButton.value = 'Add Comment';
			//theButton.disabled = false;
			
			if (null != response && response != '' && !isError(response))
			{	  		
					document.getElementById('hiddenComments' + parentId).innerHTML = response;				
			}
			else
			{				
				alert("There was an error in your request. Refresh the page and try again.");	
				document.getElementById('hiddenComments' + parentId).innerHTML = "";
			}
		}
	}

	xmlHttp.open("GET", "/ajax_receiver.php?" + "type=showHiddenComments"  + "&parentId=" + encodeURIComponent(parentId) + "&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);	
	
	
}
function showChangeSilhouttePopup()
{
	grayOut(true);
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (!isError(response)&&response!="")
			{					
				var popups = document.getElementById("popups");
				popups.innerHTML = popups.innerHTML + response;
				promptLogin('popupSilhouette');
			}else{
				alert("There was an error in your request. Try again later");
				grayOut(false);
			}				
		}
	}

	xmlHttp.open("GET", "/ajax_receiver.php?" + "type=showChangeSilhouttePopup" + "&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);	
	
}	
function updateQuota()
{
	if (document.getElementById("quotaNum"))
	{
		var xmlHttp = getXMLHttp();
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				var response = xmlHttp.responseText;
				if (!isError(response)&&response!= "")
				{					
					var obj = document.getElementById("quotaNum");
					if (obj)
						obj.innerHTML = response;
				}else{
					//alert(response);
				}			
			}
		}

		xmlHttp.open("GET", "/ajax_receiver.php?" + "type=updateQuota" + "&random=" + escape(Math.random()), true); 
		xmlHttp.send(null);	
	}
	
}	
function deleteQuestion(count, id)
{

	var message = "Do you really want to delete this comment? You won't be able to see it any longer. If you simply don't want any more responses, click 'Close' instead.";
	var return_value = confirm(message);

	if(return_value==true){
		gebi('deleteParent' + id).innerHTML='Deleting...';
		var xmlHttp = getXMLHttp();
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				var response = xmlHttp.responseText;
				if (!isError(response)&&response=="done")
				{					
					var parent = document.getElementById("parent"+id);
					parent.style.display="none";
				}else{
					alert(response);
					gebi('deleteParent' + id).innerHTML='Delete Failed';
				}
				pingResume();
			}
		}

		
		var params = "type=deleteQuestion" + "&id=" + encodeURIComponent(id);
		xmlHttp.open("POST", "/ajax_receiver.php", true); 
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
}	
function closeQuestion(count, id, displayType)
{

	var message = "Are you sure you want to close this feed? No one new will be able to comment on it.";
	var return_value = confirm(message);

	if(return_value==true){
		gebi('closeQuestion' + id).innerHTML='Closing...';
		
		var xmlHttp = getXMLHttp();
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				var response = xmlHttp.responseText;
				
				if (null != response && response != '')
				{	  
					if (!isError(response))
					{		
						updateHtml("parent" + id, response);
						pingResume();
					}
					else
					{
						gebi('closeQuestion' + id).innerHTML='Closing Failed!';
					}
				}
			}
		}

		
		var params = "type=closeQuestion" + "&id=" + encodeURIComponent(id) + "&displayType=" + encodeURIComponent(displayType);
		xmlHttp.open("POST", "/ajax_receiver.php", true); 
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
}	
function deleteResponse(count, id)
{

	var message = "Do you really want to delete this comment?";
	var return_value = confirm(message);

	if(return_value==true){
		pingPause();
		gebi('deleteComment' + id).innerHTML='Deleting...';
				
		var xmlHttp = getXMLHttp();
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				var response = xmlHttp.responseText;
				if (!isError(response))
				{
					var temp = response.split(";");
					if (temp[0] == "done")
					{
						var parent = document.getElementById("commentParent"+count);
						parent.style.display="none";		
						updateLastDate(temp[1], temp[2]);			
					}
					else
					{
						alert(response);
						gebi('deleteComment' + id).innerHTML='Delete Failed!';
					}
				}else{
					alert(response);
				}
				pingResume();
			}
		}

				
		var params = "type=deleteResponse" + "&id=" + encodeURIComponent(id);
		xmlHttp.open("POST", "/ajax_receiver.php", true); 
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
}	

function publishToFacebook(count, longId, isTopicAnswer)
{


	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{
					eval(response);
				}
			}
		}
	}

	
	var params = "type=publishToFacebook" + "&longId=" + encodeURIComponent(longId) +  "&isTopicAnswer=" + encodeURIComponent(isTopicAnswer);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
}	

function showBoxes(pageItsFor, pageNumber, extraInput1, extraInput2, newSearch)
{
	var displayType = pingDisplayType;
 pageItsForLast = pageItsFor;
 extraInput1Last = extraInput1;
	if (typeof extraInput2 == 'undefined') extraInput2 = '';
	if (typeof newSearch == 'undefined') newSearch = false;
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (!isError(response))
			{
				var temp = new Array(); 
				temp = response.split('%^$');
					
				if (pageNumber > 1)
				{
					updateHtml("moreResults" + pageNumber, temp[0]);
					
					updateFacebookPics();
					//shortenPosts(false, (pageNumber-1)*3+1);	
					//shortenPosts();						
				}
				else
				{				
					updateHtml("searchResults", temp[0]);					
					updateFacebookPics();					
					//shortenPosts();						
					if ($('showLoading'))
						$('showLoading').style.display='none';					
				}
				addDirtyBit(temp[1], temp[2]);
				pingResume();
			}
		}
	}
	if (pageNumber == 1)
	{
		//updateHtml("searchResults", "<img src='./images/loading.gif' />");		
	}
	
	if (newSearch)
		$('showLoading').style.display = 'block'; //promptLogin('showLoading');// updateHtml("searchResults", "<div style='text-align:center;font-size:20px;'>Loading...</div>");
	else	
		updateHtml("moreResults"+pageNumber, "<div style='text-align:center;font-size:20px;'>Loading...</div>");
	
	var numberOnPageAlready;
	if (ids)
		numberOnPageAlready = ids.split(",").length;
	else
		numberOnPageAlready = 0;
		
 	xmlHttp.open("GET", "/ajax_receiver.php?" + "type=showBoxes" + "&pageItsFor=" + encodeURIComponent(pageItsFor) + "&pageNumber=" + encodeURIComponent(pageNumber) + "&extraInput1=" + encodeURIComponent(extraInput1) + "&extraInput2=" + encodeURIComponent(extraInput2)+ "&orderingMode=" + encodeURIComponent(orderingMode) + "&numberOnPageAlready=" + encodeURIComponent(numberOnPageAlready) + "&displayType=" + encodeURIComponent(displayType)  + "&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);	
	
	
}


function updateInfo(longId)
{
	var contactFullName = document.getElementById("contactFullName").value;
	var numberRegular = document.getElementById("numberRegular").value;
	var numberCell = document.getElementById("numberCell").value;
	var emailAddress = document.getElementById("emailAddress").value;
	var address1 = document.getElementById("address1").value;
	var address2 = document.getElementById("address2").value;
	var city = document.getElementById("city").value;
	var state = document.getElementById("state").value;
	var zip = document.getElementById("zip").value;
	var website = document.getElementById("website").value;
	
	if ($("changeableImage"))
	{
		if(selectedImage)
			var image=document.getElementById("changeableImage").src;
		else
			var image="";
	}
	else
		var image="";
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{
					var c=document.getElementById('changeableImage');
					var p=document.getElementById('profile_image');
					if (c && p)
					{
						p.src=c.src;
						p.height=c.height;
						p.width=c.width;
					}
					updateHtml("showContactInfo", response);
				}
				
			}
		}
	}

 	xmlHttp.open("GET", "/ajax_receiver.php?" + "type=updateInfo" + "&longId=" + encodeURIComponent(longId) + "&contactFullName=" + encodeURIComponent(contactFullName) + "&numberRegular=" + encodeURIComponent(numberRegular) + "&numberCell=" + encodeURIComponent(numberCell) + "&emailAddress=" + encodeURIComponent(emailAddress) + "&address1=" + encodeURIComponent(address1) + "&address2=" + encodeURIComponent(address2) + "&city=" + encodeURIComponent(city) + "&state=" + encodeURIComponent(state) + "&zip=" + encodeURIComponent(zip) + "&website=" + encodeURIComponent(website)+"&image=" + encodeURIComponent(image)+ "&random=" + escape(Math.random()), true); 
	xmlHttp.send(null);	
	
	hideEditContactInfo();
	updateHtml("showContactInfo", '<span class="pleaseWaitText">Updating...</span>');
	if ($('chooseImage'))
	{
		$('chooseImage').disabled=false;
		$('chooseImage').value="Choose Image";
		$('chooseImage').style.display="";
		$('undoChoice').disabled=false;
		$('undoChoice').style.display="none";
		$('imageMenu').innerHTML="";
		$('imageRange').style.display="none";
		$('menuText').style.display="none";
	}
}		

function logger(desc)
{	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{
					//document.getElementById('descript').innerHTML=response;
					//hideEditCrowdInfo();
					oldDescription=document.getElementById("description").value;
					document.getElementById("submit").disabled = true;
					document.getElementById("submit").value = "Saved";
				}else
					alert(response);
			}
		}
	}
	
	
	var params = "type=logger" + "&desc=" + encodeURIComponent(desc);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);

	
}	

function saveCrowdDescription(crowdId, toDescript)
{	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response))
				{
					//document.getElementById('descript').innerHTML=response;
					//hideEditCrowdInfo();
					oldDescription=document.getElementById("description").value;
					document.getElementById("submit").disabled = true;
					document.getElementById("submit").value = "Saved";
				}else
					alert(response);
			}
		}
	}
	
	
	var params = "type=saveCrowdDescription" + "&crowdId=" + encodeURIComponent(crowdId)+"&toDescript="+encodeURIComponent(toDescript);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);

	
}	
function updateWidget()
{	
	var defaultText = $('defaultText').value;
	var buttonText = $('buttonText').value;
	var backgroundColor = $('backgroundColor').value;
	var widgetWidth = $('widgetWidth').value;
	var defaultTextColor = $('defaultTextColor').value;
	var defaultTextFontSize = $('defaultTextFontSize').value;
	var textColor = $('textColor').value;
	var textFontSize = $('textFontSize').value;
	var buttonFontColor = $('buttonFontColor').value;
	var buttonFontSize = $('buttonFontSize').value;
	
		
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			if (null != response && response != '')
			{	  
				if (!isError(response)&&response=="done_refresh")
				{
					window.location.reload();
				}
				else if (!isError(response)&&response=="done")
				{
					document.getElementById('4CrowdWidget').contentDocument.location.reload(true);
				}
				else
					alert(response);
			}
		}
	}
	
	
	var params = "type=updateWidget" + "&defaultText=" + encodeURIComponent(defaultText)+"&buttonText="+encodeURIComponent(buttonText)+"&backgroundColor="+encodeURIComponent(backgroundColor) +"&widgetWidth="+encodeURIComponent(widgetWidth) +"&textColor="+encodeURIComponent(textColor) +"&textFontSize="+encodeURIComponent(textFontSize) +"&defaultTextColor="+encodeURIComponent(defaultTextColor) +"&defaultTextFontSize="+encodeURIComponent(defaultTextFontSize) +"&buttonFontColor="+encodeURIComponent(buttonFontColor) +"&buttonFontSize="+encodeURIComponent(buttonFontSize);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);

	
}	

function loginToFacebook()
{
	gebi('loggingIn').style.display='block';
	gebi("facebookDiv").style.display='none';
			
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;	
			
			if (null != response && response != '' && !isError(response) && response == 'done')
			{	  
				//Post New Question
				isLoggedIn = true;
				facebookLoginCallback();
			}else
			{
				alert("There was an error in your request. Try again later");
				gebi('loggingIn').style.display='none';
				gebi("facebookDiv").style.display='block';
				return;
			}
		}
	}
	
 
	var params = "newConv=true";
	xmlHttp.open("POST", "/facebook/", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}
function updateLastDate(id, date)
{
	var idsArray = ids.split(",");
	var L=idsArray.length;
	for(var i = 0; i < L; i++){ 
		if (idsArray[i] == id)
		{
			index = i;
			break;
		}
	}

	if (index > -1)
	{		
		var lastDatesArray = lastDates.split(",");
		lastDatesArray[index] = date;		
		lastDates = lastDatesArray.join(",");
	}
}

function removeDirtyBit(id)
{
	var idsArray = ids.split(",");
	var L=idsArray.length;
	for(var i = 0; i < L; i++){ 
		if (idsArray[i] == id)
		{
			index = i;
			break;
		}
	}
	if (index > -1)
	{	
		var lastDatesArray = lastDates.split(",");		
		lastDatesArray.splice(index, 1);
		lastDates = lastDatesArray.join(",");
		idsArray.splice(index, 1);
		ids = idsArray.join(",");
	}
}

function addDirtyBit(id, dirtyBit)
{
	if (ids == "")
	{
		ids = id;
		lastDates = dirtyBit;
	}
	else
	{
		ids = ids + "," + id;
		lastDates = lastDates + "," + dirtyBit;
	}
	
}

							
function isError(response)
{
	errorIndex1 = response.indexOf("Fatal error");
	errorIndex2 = response.indexOf("Parse error");
	errorIndex3 = response.indexOf("Warning");
	if ((errorIndex1 >=0) || (errorIndex2 >= 0) || (errorIndex3 >= 0))
	{
		return true;
	}
	else
	{
		return false;
	}
}


