YAHOO.namespace("csu900.container");

YAHOO.csu900.container.contacts = [];

function init() {
	// Initialize the temporary Panel to display while waiting for 
	// external content to load
	YAHOO.csu900.container.wait = new YAHOO.widget.Panel("wait",  
			{ width:"240px", 
				fixedcenter:true, 
				close:false, 
				draggable:false, 
				modal:true,
				visible:false,
				effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 
			} );

	YAHOO.csu900.container.wait.setHeader("Loading, please wait...");
	YAHOO.csu900.container.wait.setBody('<img src="http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif" />');
	YAHOO.csu900.container.wait.render(document.body);

	var content = document.getElementById("load_mask");

	var callback = {
		success : function(o) {
			YAHOO.csu900.container.contacts =	eval('(' + o.responseText + ')');	
			setTimeout("populate_list()", 1000);
		},
		failure : function(o) {
			content.innerHTML = o.responseText;
			content.style.visibility = "visible";
			content.innerHTML = "CONNECTION FAILED!";
			YAHOO.csu900.container.wait.hide();
		}
	}

	// Show the Panel
	YAHOO.csu900.container.wait.show();

	// Connect to our data source and load the data
	var conn = YAHOO.util.Connect.asyncRequest("GET", "Contacts", callback);
}

function heartbeat() 
{
	var callback = {
		success : function(o) {
			scheduleHearbeat();
		},
		failure : function(o) {
			scheduleHearbeat();
		}
	}

	// Connect to our data source and load the data
	var conn = YAHOO.util.Connect.asyncRequest("GET", 
		"Index?op=heartbeat", callback);
}

function scheduleHearbeat() {
	setTimeout("heartbeat();", 5000, "JavaScript");
}

YAHOO.util.Event.addListener(window, "load", init);
YAHOO.util.Event.addListener(window, "load", scheduleHearbeat);

/***************/

var imFormatter = 
	function (elCell, oRecord, oColumn, oData) {
		elCell.innerHTML = oData;
		var elem = document.createElement('div');
		elem.appendChild(document.createTextNode(oRecord["UID"]));
		elem.style.display = "none";
		elCell.appendChild(elem);
		
	};

function populate_list () {
	var myColumnHeaders = [
		{key:"Name",className:"col1",formatter:imFormatter}
	];
	var myColumnSet = new YAHOO.widget.ColumnSet(myColumnHeaders);

	var myDataSource = new YAHOO.util.DataSource(
			YAHOO.csu900.container.contacts);

	myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
	myDataSource.responseSchema = {
			resultsList: ["list"],
			fields: ["Name", "UID"]
	};

	var myDataTable = new YAHOO.widget.DataTable("contact_list",
				myColumnSet,myDataSource,
				{scrollable:true, 
					caption:YAHOO.csu900.container.contacts.count + " users"});

	myDataTable.subscribe("cellClickEvent",myDataTable.onEventSelectRow); 
	myDataTable.subscribe("cellClickEvent",openIM); 

	YAHOO.csu900.container.wait.hide();
	document.bgColor = "#FFFFFF";
	var content = document.getElementById("load_mask");
	content.style.visibility = "visible";
}

function openIM (obj1) {
	var to = obj1.target.childNodes[1].innerHTML;
	var who = obj1.target.childNodes[0];
	window.open("Index?op=chat&to="+to, "Chat with "+who, 
							"status=0,toolbar=0,menubar=0,height=450,width=350");
}

