	var editing = false;
	var allowsave = false;
	function startedit(who) {
		allowsave=false;
		if (!editing)
		{
			document.getElementById(who).innerHTML = "<textarea id=\"" + who + "text\" class=\"bubbletalk\" onKeyPress=\"return(this.value.length < 160 );\" onChange=\"allowsaves();\" onFocus=\"select()\" onblur=\"endedit('" + who + "');\">" + document.getElementById(who).innerHTML + "</textarea>";
			document.getElementById(who + "text").focus();
			editing = true;
		}
	}
	function endedit(editwho) {
		var whathesaid = document.getElementById(editwho + "text").value;
		document.getElementById(editwho).innerHTML = whathesaid;
		editing = false;
		if (allowsave)
		{
			var parameters = "what=" + escape(encodeURI( whathesaid )) + "&who=" + escape(encodeURI( editwho ));
			makePOSTRequest('post.php', parameters, editwho);
		}
	}
	function allowsaves() {
		allowsave = true;
	}


	var http_request = false;
	var whosbeingedited = "";
	function makePOSTRequest(url, parameters, editwho) {
		whosbeingedited = editwho;
	  http_request = false;
	  if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 http_request = new XMLHttpRequest();
		 if (http_request.overrideMimeType) {
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		 }
	  } else if (window.ActiveXObject) { // IE
		 try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
			try {
			   http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		 }
	  }
	  if (!http_request) {
		 alert('Cannot create XMLHTTP instance');
		 return false;
	  }
	  
	  http_request.onreadystatechange = alertContents;
	  http_request.open('POST', url, true);
	  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  http_request.setRequestHeader("Content-length", parameters.length);
	  http_request.setRequestHeader("Connection", "close");
	  http_request.send(parameters);
	}

	function alertContents() {
		if (http_request.readyState == 4) {
		 if (http_request.status == 200) {
			//alert(http_request.responseText);
			result = http_request.responseText;
			document.getElementById(whosbeingedited).innerHTML = result;            
		 } else {
			alert('There was a problem with the request.\nRefresh your browser and try again.');
		 }
	  }
	}
