var hamishMacEwanBot = false
var hamishChatWindowExpanded = false;

function initialiseHamish()
	{
	hamishMacEwanBot = getId("hamishMacEwanBot")
	hamishMacEwanBot.style.height = "1.2em";
	hamishMacEwanBot.style.border = "solid 1px #cccccc";
	var divTag = document.createElement("div")
	classAttribute = document.createAttribute("class")
	classAttribute.nodeValue = "hamish"
	divTag.setAttributeNode(classAttribute)
	divTag.id = "chatWindow"
	divTag.innerHTML = "<div id='hamishChatWindowTitle'><img src='window-close.gif' alt='' style='float:right'/><img src='window-maximise.gif' alt='' style='float:right'/> HamishMacEwanBot</div><div id='hamishChatHistory'></div><div id='hamishChatForm'><textarea id='hamishChatTextarea' onkeyup='hamishType(this)'></textarea></div>"
	hamishMacEwanBot.appendChild(divTag)
	var hamishChatWindowTitle = getId("hamishChatWindowTitle");
	if(hamishChatWindowTitle)
		{
		addEvent(hamishChatWindowTitle, "click", hamishToggleChatWindow);
		}
	else
		{
		alert("Can't find #hamishChatWindowTitle");
		}
	}

function hamishToggleChatWindow(event)
	{
	if(hamishChatWindowExpanded)
		{
		hamishMacEwanBot.style.height = "1.2em";
		hamishChatWindowExpanded = false;
		}
	else
		{
		hamishMacEwanBot.style.height = "260px";
		hamishChatWindowExpanded = true;
		}
	}

var hamishChatHistory = false;

var hamishMacEwanMessageTemplate = "<div class='message'><span class='chatName'>HBOT2000:</span> {body}<div class='chatSignature'>Hamish.<br />--<br /><a href=\"http://del.icio.us/Hamish.MacEwan\" style=\"font-size:6px\">http://del.icio.us/Hamish.MacEwan</a><br /><a href=\"http://urltea.com/3jm?GoogleSharedItems\" style=\"font-size:6px\">http://urltea.com/3jm?GoogleSharedItems</a></div></div>";

var hamishUserMessageTemplate = "<div class='message'><span class='chatName'>Me:</span> {body}</div>";

var hamishResponse = false;

var noRecentHamishDiscussionTimeout = false

function hamishType(sender)
	{
	if(sender.value.indexOf("\n") != -1)
		{
		hamishNewComment(sender.value);
		sender.value = "";
		}
	}

function hamishNewComment(comment)
	{
	comment = comment.replace(/^\s+|\s+$/g,"");
	if(comment == "")
		{
		return;
		}
	if(!hamishChatHistory)
		{
		hamishChatHistory = getId("hamishChatHistory")
		}
	comment = comment.replace("'","")

	hamishChatHistory.innerHTML += hamishUserMessageTemplate.replace("{body}", comment);
	hamishChatHistory.scrollTop = hamishChatHistory.innerHTML.length * 99;
	if(hamishResponse)
		{
		window.clearTimeout(hamishResponse)
		}
	hamishResponse = window.setTimeout("updateWithHamishIsWriting('" + comment + "')", 1000)

	if(noRecentHamishDiscussionTimeout)
		{
		window.clearTimeout(noRecentHamishDiscussionTimeout)
		}
	noRecentHamishDiscussionTimeout = window.setTimeout("addHamishIdleDatestamp()", 10000)
	}



function updateWithHamishIsWriting(comment)
	{
	if(hamishResponse)
		{
		window.clearTimeout(hamishResponse)
		}
	hamishResponse = window.setTimeout('postHamishResponseToComment("' + comment + '")', 1000)
	}

function postHamishResponseToComment(comment)
	{
	getUrl("/hamish-search.php?q=" + comment.replace(" ", "%20"), actuallyPostHamishResponseToComment)
	}

function actuallyPostHamishResponseToComment(callbackParams, request, url)
	{
	hamishChatHistory.innerHTML += hamishMacEwanMessageTemplate.replace("{body}", request.responseText);
	hamishChatHistory.scrollTop = hamishChatHistory.innerHTML.length * 99;
	if(noRecentHamishDiscussionTimeout)
		{
		window.clearTimeout(noRecentHamishDiscussionTimeout)
		}
	noRecentHamishDiscussionTimeout = window.setTimeout("addHamishIdleDatestamp()", 10000)
	}

function addHamishIdleDatestamp()
	{
	var myDate=new Date();
	var idleString = '<div class="idleDatestamp">Sent at ';
	if(myDate.getHours() >= 12)
		{
		var hours = myDate.getHours() - 12
		if(hours == 0)
			{
			idleString += "12";
			}
		else
			{
			idleString += hours;
			}
		}
	else
		{
		idleString += myDate.getHours();
		}
	idleString += ":";
	var theMinutes = myDate.getMinutes();
	if(theMinutes.toString().length == 1)
		{
		idleString += "0";
		}
	idleString += theMinutes;
	if(myDate.getHours() >= 12)
		{
		idleString += " PM on "
		}
	else
		{
		idleString += " AM on "
		}
	switch(myDate.getDay())
		{
		case 0:
			idleString += "Sunday";
			break;
		case 1:
			idleString += "Monday";
			break;
		case 2:
			idleString += "Tuesday";
			break;
		case 3:
			idleString += "Wednesday";
			break;
		case 4:
			idleString += "Thursday";
			break;
		case 5:
			idleString += "Friday";
			break;
		case 6:
			idleString += "Saturday";
			break;
		}
	idleString += "</div>";
	hamishChatHistory.innerHTML += idleString;
	hamishChatHistory.scrollTop = hamishChatHistory.innerHTML.length * 99;
	}



