/**
*	@fileoverview		Multiple User Presence Widget
*	@author	Steven G. Chipman - AOL - http://developer.aim.com
*	@filename multipresence.js
*	@copyright Copyright (c) 2007 AOL LLC. All rights reserved
*	@version	1.1
*	@revision	09.20.2007
*/ 

AIM.params.callbacks.getPresenceInfo = ["presenceBoxWidget.displayPresence"];
var presenceBoxWidget = {
	init: function() {
		AIM.params.DEBUG = false;
		AIM.transactions.getPresenceInfo();
		AIM.util.createStyleSheet("http://o.aolcdn.com/aim/web-aim/presenceWidget/multipresence.css");
	},
	
	displayPresence: function(json) {
		if(json.response.statusCode==200) {
			var i = json.response.data.users.length;
			while(i-->0) {
				var oData = json.response.data.users[i];
				var oContainer = AIM.util.getElementsByClassName(document.getElementsByTagName("body")[0],"div",oData.aimId)[0];
				if(oData.state == "offline") {
					oContainer.appendChild(document.createTextNode(oData.displayId + " is not online right now."));
					continue;
				}
				createAndAppend(oContainer,"img",null,{"class":"icon","src":oData.buddyIcon});
				var oDiv = createAndAppend(oContainer,"div",null,{"class":"info"});
				createAndAppend(oDiv,"h3",oData.displayId,{"class":"userName " + oData.state});
				var oDL = createAndAppend(oDiv,"dl",null,{});
				var oSpan = createAndAppend(oDL,"span",null,{});
				createAndAppend(oSpan,"dt","Status: ",{});
				createAndAppend(oSpan,"dd",oData.state,{});
		
				if(oData.state == "mobile") {
					var onlineTime = "";
				} else {
					var oSpan = createAndAppend(oDL,"span",null,{});
					createAndAppend(oSpan,"dt","Online for: ",{});
					createAndAppend(oSpan,"dd",AIM.util.elapsedFromSeconds(oData.onlineTime),{});
				}
			
				if(oData.idleTime) {
					if(oData.idleTime > 60) {
						var iTime = Math.floor(oData.idleTime/60) + " hours.";
					} else {
					 	var iTime =oData.idleTime + " minutes.";
					}
					var oSpan = createAndAppend(oDL,"span",null,{});
					createAndAppend(oSpan,"dt","Idle Time: ",{});
					createAndAppend(oSpan,"dd",iTime,{});
				}
				if(oData.state == "away") {
					createAndAppend(oDL,"hr",null,{});
					var oSpan = createAndAppend(oDL,"span",null,{});
					createAndAppend(oSpan,"dt","Away Message: ", {});
					createAndAppend(oSpan,"dd",oData.awayMsg,{});
					var oSpan = createAndAppend(oDL,"span",null,{});
					createAndAppend(oSpan,"dt","Away For: ",null,{});
					createAndAppend(oSpan,"dd", AIM.util.elapsedFromSeconds(oData.awayTime),{});
				}
				if(oData.profileMsg) {
					createAndAppend(oDiv,"hr",null,{});
					createAndAppend(oDiv,"p",oData.profileMsg,{});
				}
				createAndAppend(oContainer,"br",null,{"class":"clearMe"});
			}
		}
		
		function createAndAppend(pNode,cNodeType,tNodeValue,attrList) {
			var x = document.createElement(cNodeType);
			if(tNodeValue){
				try{ x.innerHTML = tNodeValue; } catch(err) { }	
			}
			for(var i in attrList) {
				if(i == "class") {
					x.className = attrList[i];
				} else {
					x.setAttribute(i,attrList[i]);
				}
			}
			pNode.appendChild(x);
			return x;
		}
	}
}
window.addEventListener?window.addEventListener("load",presenceBoxWidget.init,false):window.attachEvent("onload",presenceBoxWidget.init);
