/*****
*  Web AIM API Sample
*  This sample shows how to log into AIM
*  and have a chat window embeded on a web
*  page for sending and receiving IMs
*****/
function dummy(){};

var d = document;
var sample = {
	remoteUser:null,
	init : function()
	{
		sample.ui.createUI();
		AIM.params.callbacks.listener.im = ["sample.com.acceptIncomingText"];
		AIM.params.callbacks.sendTextIM = ["sample.com.acceptTextIM"];
		AIM.params.callbacks.listener.buddylist = ["dummy"];
		
		AIM.params.wimKey = "gr1QS1QkDXKFlzhh";
		AIM.core.subscriptions = "buddylist,im";
		AIM.transactions.getToken(AIM.core.subscriptions);		
	},
	com : {
		acceptTextIM: function(json) {
			switch(json.response.statusCode) {
				case 200:
				  break;
				case 602:
					alert("That user is not currently online.");
					break;				
				case 401:
				case 450:
					AIM.core.createAuthWindow(json.response.data.redirectURL + "?k=" + AIM.params.wimKey);
					AIM.core.pendingTransaction = {
						msg:AIM.core.AIMData[json.response.requestId].objData.data,
						to:AIM.core.AIMData[json.response.requestId].objData.to,
						type:"sendTextIM"
					}
					break;
				default:
					alert("Something unexpected occured. Error code is " + json.response.statusCode);
					break;
			}
		},		
		acceptIncomingText: function(json) {
			var to = d.getElementById("chatTo");
			if (to.value.length == 0) {
				to.value = json.source.displayId;
			}
			var cContainer = d.getElementById("chatWindow");
			var str = "<b style=\"color:blue;\">" + json.source.displayId + "</b>: " + json.message + "<br />";
			cContainer.innerHTML += str;
			cContainer.scrollTop = cContainer.scrollHeight;
		}
	},
	
	ui : {		
		prepWork: function() {
			d.getElementById("chatTo").style.display = "block";
			d.getElementById("chatWindow").style.display = "block";
			d.getElementById("chatInput").style.display = "block";
			d.getElementById("msgBox").style.display = "none";
		},
		
		createUI:function() {	
			var str = "<b> Send Message To:</b><br>"
			d.getElementById("mContainer").innerHTML += str;
			var oChatTo = d.createElement("input");
			oChatTo.setAttribute("id","chatTo");
			oChatTo.setAttribute("type","text");
			d.getElementById("mContainer").appendChild(oChatTo);
					
			var oChatWindow = d.createElement("div");
			oChatWindow.setAttribute("id","chatWindow");
			d.getElementById("mContainer").appendChild(oChatWindow);
			
			var oChatInput = d.createElement("input");
			oChatInput.setAttribute("id","chatInput");
			oChatInput.setAttribute("type","text");
			oChatInput.onkeyup = function(e) {
				var keyCode = window.event?event.keyCode:e.keyCode;
				if(keyCode == 13) {
					var cContainer = d.getElementById("chatWindow");
					var to = d.getElementById("chatTo");
					cContainer.innerHTML += "<b style=\"color:red;\">" + AIM.params.user + "</b>: " + this.value + "<br />";
					cContainer.scrollTop = cContainer.scrollHeight;
					AIM.transactions.sendTextIM(to.value, this.value);
					this.value = "";	
				}
			}
			d.getElementById("mContainer").appendChild(oChatInput);
		}		
	}				
}

window.onload = sample.init;
window.onunload = function() {
		AIM.transactions.sendTextIM(sample.remoteUser,"bye");
		AIM.transactions.endSession();
}