/*
360 Instant Messaging and Friend List AJAX Module
Controller Script
Written By: Ken Colton <kcolton@360hubs.com>
*/

//Global Variables
var updateLoader;
var listLoader;
var friendLoader;

var searchCleared = false;

function IM360UpdateOnline(setOnline)
{
	updateLoader =  new net.ContentLoader(rootURL + 'modules/im360/ajax/im360updateonline.php', IM360UpdateOnlineCallback, null, 'POST', 'online='+setOnline);
}

function IM360UpdateOnlineCallback()
{
	var updateObject = eval("("+updateLoader.req.responseText+")");

	if(updateObject.error)
	{
		//alert("Update Online Failed:" + updateObject.error);
		listWindow360.closeWindow(true);
	}
	else
	{
		IM360UpdateStatus(updateObject.online);
		IM360UpdateMemberList();
	}
}

function IM360UpdateMemberList()
{
	listLoader =  new net.ContentLoader(rootURL + 'modules/im360/ajax/im360updatelist.php', IM360UpdateMemberListCallback, null, 'POST', 'friend=0');
}

function IM360UpdateMemberListCallback()
{
	var listObject = eval("("+listLoader.req.responseText+")");

	if(listLoader.error)
	{
		//alert("Update Member List Failed:" + listObject.error);
		listWindow360.closeWindow(true);
	}
	else
	{
		IM360UpdateMemberListView(listObject);
		setTimeout(IM360UpdateMemberList, 20000);
	}
}

function IM360GetFriendRequests()
{
	friendLoader =  new net.ContentLoader(rootURL + 'modules/im360/ajax/im360friends.php', IM360GetFriendRequestsCallback, null, 'POST', 'action=getreqs');
}

function IM360GetFriendRequestsCallback()
{
	var reqObject = eval("("+friendLoader.req.responseText+")");
	
	if(reqObject.error)
	{
		//alert("Get friend requests failed: " + reqObject.error);
		listWindow360.closeWindow(true);
	}
	else
	{
		if(reqObject.requests.length > 0)
		{
			IM360ShowFriendRequestWindow(reqObject);
		}
		else
		{
			setTimeout(IM360GetFriendRequests, 30000);
		}
	}
}

function IM360HandleFriendRequests()
{

	var formElement = document.getElementById('reqform');
	
	var postData = "action=submit&";
	
	//Grab our post data from the forms elements
	for(var i = 0; i < formElement.length; i++)
	{
		if(formElement.elements[i].type == "checkbox" && formElement.elements[i].checked)
		{
			postData += formElement.elements[i].name + "=" + formElement.elements[i].value + "&";
		}
	}
	
	formElement.submitbutton.value = "Submitting...";
	
	//Submit the data
	friendLoader =  new net.ContentLoader(rootURL + 'modules/im360/ajax/im360friends.php', IM360HandleFriendRequestsCallback, null, 'POST', postData);
}

function IM360HandleFriendRequestsCallback()
{
	var friendObject = eval("(" + friendLoader.req.responseText + ")");
	
	if(friendObject.error)
	{
		//alert("Friend request submission failed: " + friendObject.req.error);
		listWindow360.closeWindow(true);
	}
	else
	{
		reqWindow.closeWindow();
	}
}

function IM360InitEventHandlers()
{
	document.getElementById('govisible').onclick = IM360GoVisible;
	document.getElementById('goinvisible').onclick = IM360GoInvisible;
	
	document.getElementById('communitySearch').onclick = IM360ClearCommunitySearch;
	document.getElementById('communitySearchButton').onclick = IM360CommunitySearch;
	
	document.getElementById('friendsHide').onclick = IM360ToggleFriends;
	document.getElementById('membersHide').onclick = IM360ToggleMembers;
	
	document.getElementById('showAll').onclick = IM360ShowAll;
	document.getElementById('showOnline').onclick = IM360ShowOnline;
}


function IM360ClearCommunitySearch()
{
	if(!searchCleared)
	{
		this.value = "";
		searchCleared = true;
	}
}

function IM360CommunitySearch()
{
	var searchValue = document.getElementById('communitySearch').value;
	
	window.open(baseURL + 'findmembers.php?search=' + searchValue, 'searchwindow');
}

function IM360ToggleFriends()
{
	var allFriends = document.getElementById('allfriends');
	
	if(allFriends.style.display == "none")
	{
		allFriends.style.display = "block";
		
		this.src = baseURL + "modules/im360/images/downarrow.gif";
	}
	else
	{
		allFriends.style.display = "none";
		
		this.src = baseURL + "modules/im360/images/rightarrow.gif";
	}
}

function IM360ToggleMembers()
{

	var membersList = document.getElementById('memberlist');
	
	
	if(membersList.style.display == "none")
	{
		membersList.style.display = "block";
		this.src = baseURL + "modules/im360/images/downarrow.gif";
	}
	else
	{
		membersList.style.display = "none";
		this.src = baseURL + "modules/im360/images/rightarrow.gif";
	}
	
}

function IM360ShowAll()
{
	var friendsNotOnlineList = document.getElementById('friendnotonlinelist');


	friendsNotOnlineList.style.display = "block";
	document.getElementById('showAll').className = "showActive";
	document.getElementById('showOnline').className = "showLink";
}

function IM360ShowOnline()
{
	var friendsNotOnlineList = document.getElementById('friendnotonlinelist');


	friendsNotOnlineList.style.display = "none";
	document.getElementById('showAll').className = "showLink";
	document.getElementById('showOnline').className = "showActive";
}


