/*to view questions, do the same thing as invite but change to HAS_APP 
Call back to report abuse 

/*********************************************************************************************************************************
//***																									VARIABLE DECLARATIONS
**********************************************************************************************************************************/

var DEBUG = false;
var PAGE = {HOME:1, ASK:2, ANSWER:3, RANDOM:4, RANK:5, FRIENDS:6, INVITE:7, HELP:8};
var FRIEND_INVITE = new Array();
var FRIEND_PAGE;
var CURRENT_POSITION = 1;
var INIT = false;
var INSTALLED_FRIENDS;
var OWNER = {ID:0, IMAGE:"", NAME:"", SEX:"", AGE:0};
var INSTALLED_FRIENDS_COUNT = 0;
var ALL_CATEGORIES;
var MAIN_CATEGORIES = new Array();
var FIND_QUESTION = 0;
var INDEX = 0;
var CURRENT_PROFILE;
var CURRENT_QUESTION;
window.osContainer = opensocial.Container.get();

/*********************************************************************************************************************************
//***																									INIT
**********************************************************************************************************************************/
function init()
{
	if(gadgets.views.getParams().installState == 0)
	{
		document.getElementById("main").innerHTML = '<img src="http://gnsxtyaa.joyent.us/myspace/answers/img/uninstalled.jpg" style="position:absolute; top:0px; left:0px;"/>';
	}
	else
	{
		debug("Init() called");
		if(!DEBUG)
		{
			document.getElementById('debug').style.display = "none";
		}
		var req = opensocial.newDataRequest();
		var params = {};
		params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.HAS_APP;
		params[opensocial.DataRequest.PeopleRequestFields.FIRST] = 1;
		params[opensocial.DataRequest.PeopleRequestFields.MAX] = 40;
		req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
		req.send(installedFriends);
	}
}//end init

/*********************************************************************************************************************************
//***																									DEBUG
**********************************************************************************************************************************/
function debug(debug_text)
{
	if(DEBUG)
	{
		var debug_div = document.getElementById('debug');
		debug_div.innerHTML += debug_text + "<br />";
		debug_div.scrollTop = debug_div.scrollHeight;
	}	
}//end debug

/*********************************************************************************************************************************
//***																									FUNCTION: renderPage
**********************************************************************************************************************************/
//Name: renderPage
//Parameters: (PAGE object, optional parameter)
//Definition: Renders a page based on the object passed in
function renderPage(page, param)
{	
	switch(page)
	{			
		case PAGE.HOME:						
			var data = {action: "getProfileInfo", user: -1};
			CURRENT_PROFILE = -1;
			secureRequest(data, showProfile);
			break;
		
		case PAGE.PROFILE:
			var data = {action: "getProfileInfo", user: param};
			CURRENT_PROFILE = param;
			secureRequest(data, showProfile);
			break;
			
		case PAGE.ASK:	
			var data = {action: "canAsk"};
			secureRequest(data, askQuestion);
			break;
			
		case PAGE.ANSWER:		
			answer();
			break;
		
		case PAGE.RANDOM:
			var data = {action: "findRandom"};
			secureRequest(data, recievedRandom);
			break;
		
		case PAGE.RANK:
			var data = {action: "rankUsers", page: param};
			secureRequest(data, showRank);
			break
			
		case PAGE.FRIENDS:
			FRIEND_PAGE = param;
			FRIEND_INVITE.length = 0;
			var req = opensocial.newDataRequest();
			var params = {};
			params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.HAS_APP;//ALL = Get All Friends HAS_APP = Get Friends With App
			params[opensocial.DataRequest.PeopleRequestFields.FIRST] = ((param - 1) * 10);
			params[opensocial.DataRequest.PeopleRequestFields.MAX] = 10;
			req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
			req.send(showFriendsInstalled);
			break;
		
		case PAGE.INVITE:
			FRIEND_PAGE = param;
			FRIEND_INVITE.length = 0;
			var req = opensocial.newDataRequest();
			var params = {};
			params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.ALL;//ALL = Get All Friends HAS_APP = Get Friends With App
			params[opensocial.DataRequest.PeopleRequestFields.FIRST] = ((param - 1) * 10);
			params[opensocial.DataRequest.PeopleRequestFields.MAX] = 10;
			req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
			req.send(showFriendsAllInvite);
			break;
			
			
		case PAGE.HELP:
			showHelp();
			break;
	}
	//document.location.hash = '#appTop';
}//end render page

function selectAllFriends()
{
	var req = opensocial.newDataRequest();
	var params = {};
	params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.ALL;
	req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
	req.send(insertAllFriends);
}
function insertAllFriends(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	var friendsSize = friendsData.getTotalSize();
	
	//add all friend ids to FRIEND INVITE
	FRIEND_INVITE.length = 0;
	i = 0;
	friendsData.each(
		function(friendData)
		{
			var friendId = friendData.getField(opensocial.Person.Field.ID);
			FRIEND_INVITE[i] = friendId;
			i++;
			
		}
	);
	sendInvitationsTwo();
}

function showFriendsAllInvite(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	var friendsSize = friendsData.getTotalSize();
	
	var htmlCode; 
	var mainBody = document.getElementById("mainBody");
	
	//Code for left column
	htmlCode = "<div id='leftcolumn' style='float:left;'>";			
	
	//Code for rank box
	htmlCode += "\<div id='friendboxmainDiv' style='background-color:#f04f4d; width:768px; _width:705px; padding:2px; padding-top:5px; font-size:20px;'><center>Friends";
	htmlCode += "\<center><div id='friendboxinnerDiv' style='background-color:#f59998; height:600px; width:766px; _width:700; margin-top:5px; font-size:15px; text-align:left; overflow:hidden; padding-top:10px;'><div id='friends' style='height:300px;'>";
	
	//---------------------------------------------------------//
	//---------------Code For Select All Button----------------//
	//---Enable only if someone asks then immediatly disable---//
	//---------------------------------------------------------//
	//htmlCode += "<center><input type='button' id='selectAll' value='Invite All' onclick='selectAllFriends();' style='font-size:20px; margin-top:25px;'></center>";
	
		var count = 0;
		friendsData.each(
			function(friendData)
			{
				var friendId = friendData.getField(opensocial.Person.Field.ID);
				var friendName = friendData.getField(opensocial.Person.Field.NAME);
				var friendPic = friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);
				
				for(i = 0; i < FRIEND_INVITE.length; i ++)
				{
					if(FRIEND_INVITE[i] == friendId)
					{
						var checked = true;
						break;
					}
					else
						var checked = false;
				}
				
				var backgroundColor;
				if(backgroundColor == '#f59998')
					backgroundColor = '#fa8b8a';
				else
					backgroundColor = '#f59998';
				
				htmlCode += "<div id='userinfo' style='padding:5px; float:left; font-size:15px; overflow:hidden; width:143px; _width:140px; height:200px; overflow:hidden; background-color:" + backgroundColor + ";'><center>";
				htmlCode += "<input type='checkbox' onClick='checkInvite(" + friendId + "); this.blur();' id='" + friendId + "_check'";
				if(checked)
					htmlCode += "checked";
				htmlCode += "/><div id='image' style='height:100px; overflow:hidden;'><img src='" + friendPic + "'/></div>";
				htmlCode += friendName + "</div>";				
			}
		);
		
		htmlCode += "</div><center><br clear='all'/>";
		var last = Math.ceil(friendsSize / 10);
	var page = FRIEND_PAGE;
	var pagination = '<div style="font-size:14px;">Displaying ' + ((page-1)*10+1) + " - " + Math.min(((page-1)*10+10),friendsSize) + " of " + friendsSize + " friends</div><center>";
	if(last <= 6)
	{
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="renderPage(PAGE.INVITE, '+i+');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="renderPage(PAGE.INVITE, 1);" title="Friends page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="renderPage(PAGE.INVITE, '+i+');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="renderPage(PAGE.INVITE, '+last+');" title="Friends page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}	
	htmlCode += pagination;
	
	htmlCode += "<br/><input type='button' id='askFriendsButton' value='Invite Friends' onclick='sendInvitationsTwo();' style='font-size:20px; margin-top:25px;'><br/>";
	htmlCode += "</center></div></div></div>";
	
	//code for the right column
	htmlCode += "<div id='rightcolumn' style='float:left; padding-left:30px;'>";
		//Code for right add
		htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
	htmlCode += "</div>";
	
	mainBody.innerHTML = htmlCode;
	
	if(navigator.appName != "Microsoft Internet Explorer")
	{
		Nifty("div#friendboxmainDiv", "top big");
	}
}

function askFriends(param)
{
	FRIEND_PAGE = param;
	var req = opensocial.newDataRequest();
	var params = {};
	params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.ALL;//ALL = Get All Friends HAS_APP = Get Friends With App
	params[opensocial.DataRequest.PeopleRequestFields.FIRST] = ((param - 1) * 10);
	params[opensocial.DataRequest.PeopleRequestFields.MAX] = 10;
	req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
	req.send(showFriendsAll);
}

function checkInvite(id)
{
	if(document.getElementById(id + "_check").checked == true)
	{
		FRIEND_INVITE.push(id);		
	}
	if(document.getElementById(id + "_check").checked == false)
	{
		removeInvite(id);		
	}
}

function removeInvite(id)
{
	for(i = 0; i < FRIEND_INVITE.length; i ++)
	{
		if(FRIEND_INVITE[i] == id)
		{
			FRIEND_INVITE.splice(i, 1);
			break;
		}
	}
}

function sendInvite(id)
{	
	message = opensocial.newMessage("[sender] has asked you a question in [app]. Click Add [app] to answer the question!");

	opensocial.requestShareApp(id, message, function(){
    	sendInvitations();
    }
   );
}

function sendInvitations()
{	
	if(FRIEND_INVITE.length > 0)
	{
		var friend = FRIEND_INVITE.shift();
		while(friend == false && FRIEND_INVITE.length > 0)
			friend = FRIEND_INVITE.shift();
		if(friend)
			sendInvite(friend);
	}
	//renderPage(PAGE.HOME);
}


function sendInviteTwo(id)
{	
	message = opensocial.newMessage("[sender] has challenged you to prove your intelligence in [app]. Click Add [app] to show him up!!!");

	opensocial.requestShareApp(id, message, function(){
    	sendInvitationsTwo();
    }
   );
}

function sendInvitationsTwo()
{	
	if(FRIEND_INVITE.length > 0)
	{
		var friend = FRIEND_INVITE.shift();
		while(friend == false && FRIEND_INVITE.length > 0)
			friend = FRIEND_INVITE.shift();
		if(friend)
			sendInviteTwo(friend);
	}
	renderPage(PAGE.HOME);
}

function showFriendsAll(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	var friendsSize = friendsData.getTotalSize();
	
	var htmlCode; 
	var mainBody = document.getElementById("mainBody");
	
	//Code for left column
	htmlCode = "<div id='leftcolumn' style='float:left;'>";			
	
	//Code for rank box
	htmlCode += "\<div id='friendboxmainDiv' style='background-color:#f04f4d; width:768px; _width:705px; padding:2px; padding-top:5px; font-size:20px;'><center>Friends";
	htmlCode += "\<center><div id='friendboxinnerDiv' style='background-color:#f59998; height:600px; width:766px; _width:700; margin-top:5px; font-size:15px; text-align:left; overflow:hidden; padding-top:25px;'><div id='friends' style='height:300px;'>";
		var count = 0;
		friendsData.each(
			function(friendData)
			{
				var friendId = friendData.getField(opensocial.Person.Field.ID);
				var friendName = friendData.getField(opensocial.Person.Field.NAME);
				var friendPic = friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);
				
				for(i = 0; i < FRIEND_INVITE.length; i ++)
				{
					if(FRIEND_INVITE[i] == friendId)
					{
						var checked = true;
						break;
					}
					else
						var checked = false;
				}
				
				var backgroundColor;
				if(backgroundColor == '#f59998')
					backgroundColor = '#fa8b8a';
				else
					backgroundColor = '#f59998';
				
				htmlCode += "<div id='userinfo' style='padding:5px; float:left; font-size:15px; overflow:hidden; width:143px; _width:140px; height:200px; overflow:hidden; background-color:" + backgroundColor + ";'><center>";
				htmlCode += "<input type='checkbox' onClick='checkInvite(" + friendId + "); this.blur();' id='" + friendId + "_check'";
				if(checked)
					htmlCode += "checked";
				htmlCode += "/><div id='image' style='height:100px; overflow:hidden;'><img src='" + friendPic + "'/></div>";
				htmlCode += friendName + "</div>";				
			}
		);
		
		htmlCode += "</div><center><br clear='all'/>";
		var last = Math.ceil(friendsSize / 10);
	var page = FRIEND_PAGE;
	var pagination = '<div style="font-size:14px;">Displaying ' + ((page-1)*10+1) + " - " + Math.min(((page-1)*10+10),friendsSize) + " of " + friendsSize + " friends</div><center>";
	if(last <= 6)
	{
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="askFriends('+i+');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="askFriends(1);" title="Friends page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="askFriends('+i+');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="askFriends('+last+');" title="Friends page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}	
	htmlCode += pagination;
	
	htmlCode += "<br/><input type='button' id='askFriendsButton' value='Ask Friends' onclick='sendInvitations();' style='font-size:20px; margin-top:25px;'>"; 
	htmlCode += "</center></div></div></div>";
	
	//code for the right column
	htmlCode += "<div id='rightcolumn' style='float:left; padding-left:30px;'>";
		//Code for right add
		htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
	htmlCode += "</div>";
	
	mainBody.innerHTML = htmlCode;
	
	if(navigator.appName != "Microsoft Internet Explorer")
	{
		Nifty("div#friendboxmainDiv", "top big");
	}
}




function showHelp()
{
	var mainBody = document.getElementById("mainBody");
	var htmlCode;
	
	htmlCode = "<div id='leftcolumn' style='float:left;'>";	
	htmlCode += "<div id='helpboxmainDiv' style='background-color:#f04f4d; width:768px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'><center>Help</center>";
	htmlCode += "<div id='helpboxinnerDiv' style='background-color:#f59998; width:758px; _width:764; font-size:10px; margin-top:5px; font-size:15px; padding:5px; padding-top:10px;'>";
	
	htmlCode += "<div id='overviewTitle' style='font-size:18px;'>Overview:</div>";
	htmlCode += "<div id='overviewText' style='padding:10px; font-size:13px; width:600px;'>Questions and Answers allows you to get answers to all of your questions along with proving your intellegence. Start by asking any question you might, no matter what the subject. Then, answer other users questions to aquire new ranks.</div><br/>";
	
	htmlCode += "<div id='questionTitle' style='font-size:18px;'>Question Points:</div>";
	htmlCode += "<div id='questionText' style='padding:10px; font-size:13px; width:600px;'>In order to ask questions, you need question points. When you add the application you automatically recieve five question points. Whenever you answer a question you recieve one question point. You can only recieve points one time for each question.</div><br/>";
	
	htmlCode += "<div id='rankTitle' style='font-size:18px;'>Rank Points:</div>";
	htmlCode += "<div id='questionText' style='padding:10px; font-size:13px; width:600px;'>Rank points allows you to move up levels. You recieve one rank point for every question you ask and two rank points for every question you answer. You can only recieve points one time for each question.</div><br/>";
	
	htmlCode += '<div id="comments" style="font-size:12px;">Have any questions, comments, or suggestions about "Questions and Answers,"<br/> please message us.</div>';
	
	
	//end inner box
	htmlCode += "</div>";	
	//end main box
	htmlCode += "</div>";
	//end left colomn
	htmlCode += "</div>";
	
	//code for the right column
	htmlCode += "<div id='rightcolumn' style='float:left; padding-left:30px;'>";
		//Code for right add
		htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
	htmlCode += "</div>";
	
	mainBody.innerHTML = htmlCode;
	
	if(navigator.appName != "Microsoft Internet Explorer")
	{
		Nifty("div#helpboxmainDiv", "top big");
	}
}

function showFriendsInstalled(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	var friendsSize = friendsData.getTotalSize();
	
	var htmlCode; 
	var mainBody = document.getElementById("mainBody");
	
	//Code for left column
	htmlCode = "<div id='leftcolumn' style='float:left;'>";			
	
	//Code for rank box
	htmlCode += "\<div id='friendboxmainDiv' style='background-color:#f04f4d; width:768px; _width:705px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'><center>Friends";
	htmlCode += "\<center><div id='friendboxinnerDiv' style='background-color:#f59998; height:390px; width:766px; _width:700; margin-top:5px; font-size:15px; text-align:left;'><div id='friends' style='height:300px;'>";
		var count = 0;
		friendsData.each(
			function(friendData)
			{
				var friendId = friendData.getField(opensocial.Person.Field.ID);
				var friendName = friendData.getField(opensocial.Person.Field.NAME);
				var friendPic = friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);
				
				var backgroundColor;
				if(backgroundColor == '#f59998')
					backgroundColor = '#fa8b8a';
				else
					backgroundColor = '#f59998';
				
				htmlCode += "<div id='userinfo' style='padding:5px; float:left; font-size:15px; overflow:hidden; width:143px; _width:140px; background-color:" + backgroundColor + ";'><center>";
				htmlCode += "<div id='image' style='height:100px; overflow:hidden;'><img src='" + friendPic + "'/></div>";
				htmlCode += "<a href='#' onClick='renderPage(PAGE.PROFILE, " + friendId + ");'>" + friendName + "</a></center></div>";				
			}
		);
		
		htmlCode += "</div><center><br clear='all'/>";
		var last = Math.ceil(friendsSize / 10);
	var page = FRIEND_PAGE;
	var pagination = '<div style="font-size:14px;">Displaying ' + ((page-1)*10+1) + " - " + Math.min(((page-1)*10+10),friendsSize) + " of " + friendsSize + " friends</div><center>";
	if(last <= 6)
	{
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="renderPage(PAGE.FRIENDS, '+i+');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="renderPage(PAGE.FRIENDS, 1);" title="Friends page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="renderPage(PAGE.FRIENDS, '+i+');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="renderPage(PAGE.FRIENDS, '+last+');" title="Friends page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}
	pagination += "</center>";
	htmlCode += pagination;
	
	htmlCode += "</center></div></div></div>";
	
	//code for the right column
	htmlCode += "<div id='rightcolumn' style='float:left; padding-left:30px;'>";
		//Code for right add
		htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
	htmlCode += "</div>";
	
	mainBody.innerHTML = htmlCode;
	
	if(navigator.appName != "Microsoft Internet Explorer")
	{
		Nifty("div#friendboxmainDiv", "top big");
	}
}

function showRank(dataResponse)
{
	var data = dataResponse.text.evalJSON();
	var htmlCode; 
	var mainBody = document.getElementById("mainBody");
	
	var last = Math.ceil(data.people_total / 10);
	var page = data.page;
	var pagination = '<center><div style="font-size:15px;">Displaying ' + ((page-1)*10+1) + " - " + Math.min(((page-1)*10+10),data.people_total) + " of " + data.people_total + " users</div>";
	if(last <= 6)
	{
		var i;
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="renderPage(PAGE.RANK, ' + i + ');" title="Rank page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="renderPage(PAGE.RANK, 1);" title="Rank page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="renderPage(PAGE.RANK, ' + i + ');" title="Rank page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="renderPage(PAGE.RANK, ' + last + ');" title="Rank page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}
	pagination += "</center></div>";
	
	
	//Code for left column
	htmlCode = "<div id='leftcolumn' style='float:left;'>";			
	//Code for rank box
	htmlCode += "\<div id='rankboxmainDiv' style='background-color:#f04f4d; width:775px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'><center>Users Ordered By Rank";
	htmlCode += "\<center><div id='rankboxinnerDiv' style='background-color:#f59998; padding-bottom:10px; width:772px; _width:768; margin-top:5px; font-size:15px; text-align:left;'>";
	var index = 0;
	while(data.id[index])
	{
		var backgroundColor;
		if(backgroundColor == '#f59998')
			backgroundColor = '#fa8b8a';
		else
			backgroundColor = '#f59998';
		var rank = index + 1;	
		htmlCode += "<div id='userinfo' style='padding:5px; font-size:15px; width:761px; _width:767px; background-color:" + backgroundColor + ";'>";
			htmlCode += "<div id='rank_number' style='float:left; margin-top:20px; margin-right:5px;'>" + rank + ".</div>";
			htmlCode += "<div id='image' style='height:50px; overflow:hidden; float:left; padding:5px; margin-right:20px;'>" + data.image[index] + "</div>";
			htmlCode += "<a href='#' onClick='renderPage(PAGE.PROFILE, " + data.id[index] + ");'>" + data.name[index] + "</a><br/><br/>";
			htmlCode += "Rank Points:  " + data.rank_points[index] + "<br clear = 'all'/>";
			
		htmlCode += "</div>";
		index++;
	}
	htmlCode += pagination;
	htmlCode += "</center>";
	htmlCode += "</div>";
	mainBody.innerHTML = htmlCode;
	
	if(navigator.appName != "Microsoft Internet Explorer")
	{
		Nifty("div#rankboxmainDiv", "top big");
	}
	
}

function recievedRandom(dataResponse)
{
	if(!dataResponse.text)
		renderPage(PAGE.RANDOM);
	else
	{
		var data = dataResponse.text.evalJSON();
		FIND_QUESTION = data.id;
		renderPage(PAGE.ANSWER);
	}
}

function showProfile(dataResponse)
{
	debug("showing profile");
	if(!dataResponse.text)
	{
		renderPage(PAGE.HOME, CURRENT_PROFILE);
	}
	else
	{
		var data = dataResponse.text.evalJSON();
		var htmlCode;
		var mainBody = document.getElementById("mainBody");
	
		//Code for left colomn
		htmlCode = "<div id='leftcolumn' style='float:left; width:320px;'>";
		
			//Code for user info
			htmlCode += "<div id='userinfomainDiv' style='background-color:#f04f4d; width:320px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'>";
				htmlCode += "<center>" + data.name;
				htmlCode += "<div id='userinfoinnerDiv' style='background-color:#f59998; width:310px; _width:314px; margin-top:5px; font-size:15px; text-align:left; padding:5px; overflow:hidden;'>";
					htmlCode += "<div id='userPic' style='width:95px; margin-right:20px; float:left;'>" + data.image + "</div>";
					htmlCode += "<div id='user_info' style='float:left;'>";
						htmlCode += "<br/>Question Points:<br/>&nbsp;&nbsp;&nbsp;" + data.question_points + "<br/><br/>Rank Points:<br/>&nbsp;&nbsp;&nbsp;" + data.rank_points;
					htmlCode += "</div>";
				htmlCode += "</div>";
			htmlCode += "</center></div>";
		
			//Code for user rank info
			htmlCode += "<br><div id='userrankinfomainDiv' style='background-color:#f04f4d; width:320px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'>";
				htmlCode += "<center>" + data.possesive_name + " Rank";
				htmlCode += "<div id='userrankinfoinnerDiv' style='background-color:#F59990; width:310px; _width:314px; margin-top:5px; font-size:15px; text-align:left; padding:5px; overflow:hidden;'>";
				
					//Rank Pic
					htmlCode += "<div id='rankPic' style='width:105px; margin-right:25px; float:left;'>";
					htmlCode += "<img src=" + data.rank_pic_link + ">";
					htmlCode += "</div>";
				
					//Rank Info
					htmlCode += "<div id='rankInfo' style='float:right;'>";
						htmlCode += "Level: " + data.level + "</br/></br>" + data.rank_name + "<br/><br/>To the next rank:<br/>&nbsp;&nbsp;&nbsp;" + data.to_the_next + "<br/><br/>";
						htmlCode += "<div id='progressBar' style='width:177px; height:10px; background-color:#ffffff; border-width:1px; border-style:solid;'>";
							htmlCode += "<div id='progress' style='width:" + data.progress_width + "px; height:10px; overflow:hidden;'>";
								htmlCode += "<img src='http://gnsxtyaa.joyent.us/myspace/Answers/img/progress.gif'>";
							htmlCode += "</div>";
						htmlCode += "</div>";
					htmlCode += "</div>";
			
				htmlCode += "</div>";
			htmlCode += "</div>";
		
			//code for bottom right ad
			htmlCode += "<br>\<center>";
			htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='252' height='265'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=10&age=<>&gender=<>&maritalStatus=<>&adTBG=FF0101&adTColor=000000&adCntColor=010000&adBG=FFFDFD' ></iframe>";
			htmlCode += "</center>";
		
		htmlCode += "</div>";
		
		//Code for center column	
		htmlCode += "<div id='centercolumn' style='float:left; margin-left:32px;'>";
		
			//Code for feeds and questions box 
			htmlCode += "<div id='feedsmainDiv' style='background-color:#f04f4d; width:436px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'>";
				htmlCode += "<center><a href=# onClick='getUserFeeds(1);'>Mini Feed</a> / <a href=# onClick='getUserQuestions(1);'>Questions</a></center>";
				htmlCode += "<center><div id='feedsinnerDiv' style='background-color:#f59998; width:436px; margin-top:5px; text-align:left; _padding-bottom:5px;'>";
		
				htmlCode += "</div></center>";
			htmlCode += "</div>";
		htmlCode += "</div>";
		
		//code for the right column
		htmlCode += "<div id='rightcolumn' style='float:left; padding-left:30px;'>";
			//Code for right add
			htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
		htmlCode += "</div>";
			
		//Send html code to main window
		mainBody.innerHTML = htmlCode;
			
		//Apply niftty corners
		if(navigator.appName != "Microsoft Internet Explorer")
		{
			Nifty("div#userinfomainDiv", "top big");	
			Nifty("div#userrankinfomainDiv", "top big");	
			Nifty("div#feedsmainDiv", "top big");
		}
	
		getUserFeeds(1);
	}
}

function getUserFeeds(feedPage)
{
	var data = {action: 'getUserFeeds', myspace_id: CURRENT_PROFILE, page: feedPage};
	secureRequest(data, showFeeds);
}

function getUserQuestions(questionPage)
{
	var data = {action: 'getUserQuestions', myspace_id: CURRENT_PROFILE, page: questionPage};
	secureRequest(data, showQuestions);
}

function showFeeds(dataResponse)
{
	var data = dataResponse.text.evalJSON();
	
	var last = Math.ceil(data.feeds_total / 5);
	var page = data.page;
	var pagination = '<div style="font-size:10px;">&nbsp;&nbsp;&nbsp;Displaying ' + ((page-1)*5+1) + " - " + Math.min(((page-1)*5+5),data.feeds_total) + " of " + data.feeds_total + " feeds</div><center>";
	if(last <= 6)
	{
		var i;
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="getUserFeeds(' + i + ');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="getUserFeeds(1);" title="Friends page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="getUserFeeds(' + i + ');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="getUserFeeds(' + last + ');" title="Friends page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}
	pagination += "</center></div>";
	
	var backgroundColor = '#f59998';
	var index = 0;
	var htmlCode = '';
	while(data.feed_id1[index])
	{
		if(backgroundColor == '#f59998')
			backgroundColor = '#fa8b8a';
		else
			backgroundColor = '#f59998';
		
		var temp_name = data.feed_name1[index];
		var length = temp_name.length;
		if(length > 15)
		{
			temp_name = data.feed_name1[index].substring(0, 13); 
			temp_name += "...";
		}
		var temp = "<a href='#' onClick='renderPage(PAGE.PROFILE, " + data.feed_id1[index] + ");'>" + temp_name + "</a>";
		var thisFeed = data.feed_text[index].replace(/{id1}/, temp);
		if(data.feed_id2[index] != null)
		{
			temp_name = data.feed_name2[index];
			var length = temp_name.length;
			if(length > 15)
			{
				temp_name = data.feed_name2[index].substring(0, 13); 
				temp_name += "...";
			}
			temp = "<a href='#' onClick='renderPage(PAGE.PROFILE, " + data.feed_id2[index] + ");'>" + temp_name + "</a>";
			thisFeed = thisFeed.replace(/{id2}/, temp);
		}
		if(data.feed_question[index] != null)
		{
			temp = "<a href='#' onclick='findQuestion( " + data.feed_question[index] + ");'>question</a>";
			thisFeed = thisFeed.replace(/{question}/, temp);
		}
		
		htmlCode += "<div style='padding:5px; font-size:small; _font-size:13px; width:425px; _width:435px; height:45px; _height:56px; background-color:" + backgroundColor + ";'>" + thisFeed + "<br/><div id='timeago' style='font-size:10px; color:#7b7979;'>" + data.feed_time[index] + "</div></div>";
		index++;
	}
	document.getElementById("feedsinnerDiv").innerHTML = htmlCode + pagination;
}
function showQuestions(dataResponse)
{	
	var data = dataResponse.text.evalJSON();
	
	var last = Math.ceil(data.questions_total / 5);
	var page = data.page;
	var pagination = '<div style="font-size:10px; padding-top:20px; _padding-top:0px;">&nbsp;&nbsp;&nbsp;Displaying ' + ((page-1)*5+1) + " - " + Math.min(((page-1)*5+5),data.questions_total) + " of " + data.questions_total + " questions</div><center>";
	if(last <= 6)
	{
		var i;
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="getUserQuestions(' + i + ');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="getUserQuestions(1);" title="Friends page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="getUserQuestions(' + i + ');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="getUserQuestions(' + last + ');" title="Friends page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}
	pagination += "</center></div>";
	
	var backgroundColor = '#fa8b8a';
	var index = 0;
	var htmlCode = "";
	while(data.user_questions[index])
	{
		if(backgroundColor == '#f59998')
			backgroundColor = '#fa8b8a';
		else
			backgroundColor = '#f59998';
		
		var temp = data.user_questions[index];
		var text;
		var length = temp.length;
		if(length > 70)
		{
			text = temp.substring(0, 67);
			text += "...";
		}
		else
		{
			text = temp;
		}
		
		htmlCode += "<div style='padding:5px; font-size:small; _font-size:13px; width:425px; _width:435px; height:45px; _height:56px; background-color:" + backgroundColor + ";'><a href='#' onclick='findQuestion( " + data.questions_id[index] + ");'>" + text + "</a><div id='timeago' style='font-size:10px; color:#7b7979; float:left;'>" + data.question_time[index] + "</div><div id='numAns' style='font-size:10px; color:#7b7979; float:right;'>" + data.num_answers[index] + "&nbsp;Answers</div></div>";
		index++;
	}
	document.getElementById("feedsinnerDiv").innerHTML = htmlCode + pagination;
}

function findQuestion(id)
{
	FIND_QUESTION = id;
	renderPage(PAGE.ANSWER);
}

/*********************************************************************************************************************************
//***																									FUNCTION: secureRequest
**********************************************************************************************************************************/
//Name: secureRequest
//Parameters: (Object array with post parameters)
//Definition: Makes an authorized request to the server and passes the parameters as post variables
function secureRequest(data, callbackFunction)
{
	debug("calling php script");
	var d = new Date();
	var os_params = {};
	os_params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
	os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	var encoded = gadgets.io.encodeValues(data);
	debug("Sending request: " + encoded);
	os_params[gadgets.io.RequestParameters.POST_DATA] = encoded;
	os_params[gadgets.io.RequestParameters.CONTENT_LENGTH] = encoded.length;
	gadgets.io.makeRequest('http://gnsxtyaa.joyent.us/myspace/Answers/answers.php?nocache=' + d.getSeconds(), callbackFunction, os_params);
}//end secureRequest

/*********************************************************************************************************************************
//***																									FUNCTION: installedFriends
**********************************************************************************************************************************/
//Name: installedFriends
//Parameters: (DataResponse object)
//Definition: retrieves users installed friends and stores them to an array
function installedFriends(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	var ids = '';
	friendsData.each(
		function(friendData)
		{
			var friendId = friendData.getField(opensocial.Person.Field.ID);
			if(CURRENT_POSITION != 1)
				INSTALLED_FRIENDS += ',';
			INSTALLED_FRIENDS += friendId;
			CURRENT_POSITION += 1;
		}
	);
	if(CURRENT_POSITION >= friendsData.getTotalSize() || CURRENT_POSITION >= 500)
	{
		var data = {action: "updateFriends", friendsList: INSTALLED_FRIENDS};
		secureRequest(data, friendsUpdated);
	}
	else
	{
		var req = opensocial.newDataRequest();
		var params = {};
		params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.HAS_APP;
		params[opensocial.DataRequest.PeopleRequestFields.FIRST] = CURRENT_POSITION;
		params[opensocial.DataRequest.PeopleRequestFields.MAX] = 40;
		req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
		req.send(installedFriends);
	}
}//end installed friends

function friendsUpdated(dataResponse)
{
	debug("Request returned: " + dataResponse.text);
	var data = dataResponse.text.evalJSON();
	
	if(data.banned == 'true')
	{
		document.getElementById("main").innerHTML = '<div style="border:solid 1px #FF6C6C; padding:10px; background:#FFDDDE; width:700px; margin-left:123px; margin-top:25px; font-size:18px; font-weight:bold;">You have been debarred from using this application. More information has been included in the message below:<br/><br/>' + data.message + '</div>';	
	}
	else
	{
		var container = opensocial.Container.get();
		var dataRequest = container.newDataRequest();
		
		var param = {};
		param[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = 
				[opensocial.Person.Field.AGE,
				MyOpenSpace.Person.Field.GENDER];
	
		var personRequest = dataRequest.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER, param);
	   
		dataRequest.add(personRequest);
	
		dataRequest.send(informationReceived);
	}
}
function informationReceived(data)
{
	var owner = data.get(opensocial.DataRequest.PersonId.OWNER).getData();
	OWNER.ID = owner.getField(opensocial.Person.Field.ID);
	OWNER.IMAGE = owner.getField(opensocial.Person.Field.THUMBNAIL_URL);
	OWNER.NAME = owner.getField(opensocial.Person.Field.NAME);
	OWNER.SEX = owner.getField(opensocial.Person.Field.GENDER);
	OWNER.AGE = owner.getField(opensocial.Person.Field.AGE);
	
	var req = opensocial.newDataRequest();
	var params = {};
	params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.ALL;
	params[opensocial.DataRequest.PeopleRequestFields.FIRST] = CURRENT_POSITION;
	params[opensocial.DataRequest.PeopleRequestFields.MAX] = 20;
	req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params));
	req.send(allFriends);
}
function allFriends(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	FRIEND_COUNT = friendsData.getTotalSize();
	
	var main = document.getElementById("main");
	main.innerHTML = '<a name="appTop"></a><div id="banner">\
						  	<img src="http://gnsxtyaa.joyent.us/myspace/Answers/img/Banner.jpg">\
						  </div>\
						  <br clear="all"/>\
						  <div id="tabsK">\
						  	<ul>\
								<li><a href="#" onClick="renderPage(PAGE.HOME);" title="Home"><span>Home</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.ASK);" title="Ask"><span>Ask</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.ANSWER);" title="Answer"><span>Answer</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.RANDOM);" title="Random"><span>Find A Random Question</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.RANK, 1);" title="Rank"><span>Rank</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.FRIENDS, 1);" title="Friends"><span>Friends Questions</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.INVITE, 1);" title="Invite"><span>Invite</span></a></li>\
								<li><a href="#" onClick="renderPage(PAGE.HELP);" title="Help"><span>Help</span></a></li>\
							</ul>\
						   </div>\
						   <br clear="all"/>\
						   <br clear="all"/>\
						   <div id="mainBody" style="padding-left:5px; padding-right:5px; width:950px;">\
						   </div>';
	var data = {action: 'getCategories'};
	secureRequest(data, recievedCategories);
}

function recievedCategories(dataResponse)
{
	//info passed back through dataResponse
	var data = dataResponse.text.evalJSON();
	ALL_CATEGORIES = data;
	
	//create array and store main categories
	MAIN_CATEGORIES.clear();
	var cat;
	for(cat in ALL_CATEGORIES)
	{
		if(!(cat == 'Other'))
		{
			MAIN_CATEGORIES[INDEX] = cat;
			INDEX++;
		}
	}
	MAIN_CATEGORIES.sort();
	MAIN_CATEGORIES[INDEX] = 'Other';	 
	renderPage(PAGE.HOME);
}

function askQuestion(dataResponse)
{	
	var data = dataResponse.text.evalJSON();
	var htmlCode;
	var mainBody = document.getElementById("mainBody");
	
	//Code for left column
	htmlCode = "<div id='leftcolumn' style='float:left;'>";
			
	//Code for ask box
	htmlCode += "\<div id='askboxmainDiv' style='background-color:#f04f4d; width:775px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;'><center>Ask Your Question";
						//Code for inner ask box
						htmlCode += "\<div id='askboxinnerDiv' style='background-color:#f59998; height: 410px; width:762px; _width:768px; margin-top:5px; font-size:15px; text-align:left; padding:5px;'>";
							if(data.canAsk)
							{
								htmlCode += "\<form name='ask'>";								
								
								htmlCode += "\Ask your Question:<br>";
								
									htmlCode += "\<textarea id='question' rows='2' cols='61' onkeyup='removeOneQuestion();' onkeydown='removeOneQuestion();' style='font-size:20px;' tabindex=1>";
									htmlCode += "\</textarea><br>";
									htmlCode += "\<div ALIGN=RIGHT style='font-size:10px;'>Characters Left:&nbsp;<input type=text id='limitQ' size=4 style='width:30px;' readonly value=100>&nbsp;&nbsp;</div><br>";	
									htmlCode += "<div style='height:inherit; width:508px; float:left;'>"; //Start left column
									htmlCode += "Give some more detail (optional):<br>";
									htmlCode += "\<textarea id='description' rows='5' cols='61' onkeyup'removeOneDescription();' onkeydown='removeOneDescription();' tabindex=2>";
									htmlCode += "\</textarea><br/>";
									htmlCode += "\<div style='width:518px;'><div ALIGN=RIGHT style='font-size:10px;'>Characters Left:&nbsp;<input type=text id='limitD' size=4 style='width:30px;' readonly value=300>&nbsp;&nbsp;</div></div><br>";	
								
									htmlCode += "<div style='height:30px; margin-bottom:5px;'><div id='cat' style='margin-right:25px; float:left;'>";
										htmlCode += "\Select Category:<br>";
										htmlCode += "\<select id='main_cat' onchange='activateSub(document.ask.main_cat.options[document.ask.main_cat.selectedIndex].value);' tabindex=3>";
											htmlCode += "\<option value='' selected></option>";
											var i;
											for(i = 0; i < MAIN_CATEGORIES.length; i++)
											{
												htmlCode += "\<option value='" + MAIN_CATEGORIES[i] + "'>" + MAIN_CATEGORIES[i] + "</option>";
											}
										htmlCode += "\</select>";
									htmlCode += "</div>";
								
									htmlCode += "\<div id='sub_cat' style='display:none;'>";
										htmlCode += "\Select Sub-Category:<br>";
										htmlCode += "\<select id='sub_category' disabled='true' tabindex=4>";
											htmlCode += "\<option value='' selected>---Select Category---</option>";
										htmlCode += "\</select>";								
									htmlCode += "\</div></div>";
									htmlCode += "\<br clear = 'all' />";
									
									htmlCode += "<div>";
									htmlCode += "\Ask Anonymously?&nbsp;&nbsp;&nbsp;<br/>";
									htmlCode += "<input type='radio' id='anonYes' name='anonymous' value=1 tabindex=5>Yes";
									htmlCode += "<input type='radio' id='anonNo' name='anonymous' value=0 tabindex=6 checked>No";
									htmlCode += "</div>";
									
									
								
									htmlCode += "\</div style='float:left;'>";//end left column
								
									htmlCode += "\<div>";//start right column
									htmlCode += "\<br/>";
								
									//Do not use button tag, use a link
									htmlCode += "<center><input id='AskButton' type='button' value='Ask Question' onclick='addQuestion();' style='font-size:20px; margin-left:10px; width:200px; height:200px; font-weight:bold; background-color:#f56e6d;' disabled=true></center>";
								
									htmlCode += "\</div>";//end right column
								
								htmlCode += "\</form>";
							}
							else
							{
								htmlCode += "You do not have any question points<br/><br/>To obtain more points to ask another question you must:<br/>&nbsp;&nbsp;1. Wait until tomorrow to recieve more points<br/>&nbsp;&nbsp;2. Answer other questions";
							}
							htmlCode += "\</div></center></div>";
						//End left column
						htmlCode += "\</div><br/>";
					
			//Code for right column
			htmlCode += "\<div id='rightcolumn' style='float:left; padding-left:32px;'>";
				//Code for Ad
				htmlCode += "<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
			//End right column
			htmlCode += "\</div>";
			
			mainBody.innerHTML = htmlCode;
			
			if(navigator.appName != "Microsoft Internet Explorer")
			{
				Nifty("div#askboxmainDiv", "top big");
			}
			

}//end ask question

function postBulletin()
{
	var os_token = MyOpenSpace.MySpaceContainer.OSToken;
	var message = opensocial.newMessage('Add <a href="http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=123210">Questions and Answers</a> to see my question');
	message.setField(opensocial.Message.Field.TITLE, 'Can you answer my question???');
	message.setField(opensocial.Message.Field.TYPE, MyOpenSpace.PostTo.Targets.BULLETINS);
	
	osContainer.postTo(os_token, message, null);
	debug("Posted bulletin");
}//end postBulletin

function checkButtonAppear()
{
	var text = document.getElementById("question").value;
	var length = text.length;
	
	if(length == 0 || document.getElementById("main_cat").selectedIndex == 0)
	{
		document.getElementById("AskButton").disabled = true;
		//add scriptaculous
	}
	else
	{
		document.getElementById("AskButton").disabled = false;
		//add scriptaculous
	}
}

function removeOneQuestion()
{	
	var text = document.getElementById("question").value;
	var length = text.length;
	if(length > 100)
	{
		document.getElementById("question").value = text.substring(0, 100);
		return false;
	}
	checkButtonAppear();
	document.getElementById("limitQ").value = 100 - length;	
}

function removeOneDescription()
{	
	var text = document.getElementById("description").value;
	var length = text.length;
	if(length >= 300)
	{
		document.getElementById("description").value = text.substring(0, 300);
		return false;
	}
	document.getElementById("limitD").value = 300 - length;
}

function activateSub(chosen)
{
	var sub_select = document.getElementById("sub_category"); 
	sub_select.disabled = false;
	
	sub_select.options.length = 0;
	if(chosen == "")
	{
		sub_select.options[sub_select.options.length] = new Option('---Select Category---', '');		
		sub_select.disabled = true;
		document.getElementById("AskButton").disabled = true;
		new Effect.Fade("sub_cat");
	}
	else
	{
		//store an array of sub categories
		//store an array of sub categories ids (must be same index as sub categories names)
		var cat;
		var id;
		var sub_cats_names = new Array();
		for(cat in ALL_CATEGORIES)
		{
			if(cat == chosen)
			{
				for(id in ALL_CATEGORIES[cat])
				{
					sub_select.options[sub_select.options.length] = new Option(ALL_CATEGORIES[cat][id], id);
				}
			
			}
		//break?
		}
		new Effect.Appear("sub_cat");
		checkButtonAppear();
		//check if button should appear
	}
}//end activateSub

function addQuestion()
{
	document.getElementById("AskButton").disabled = true;
	var quest = document.getElementById("question").value;
	var desc = document.getElementById("description").value;
	var cat = document.getElementById("sub_category").value;	
	var main_c = document.getElementById("main_cat").value;
	var anon;
	
	if(document.getElementById("anonYes").checked == true)
		anon = 1;
	else
		anon = 0;

	var data = {action: "add_question", question: quest, description: desc, category: cat, main_category: main_c, anonymous: anon};
	secureRequest(data, askSuccess);
}



function askSuccess(dataResponse)
{
	renderPage(PAGE.HOME);
}

function fillFriendsForInvite(dataResponse)
{
	var friendsDataGroup = dataResponse.get(opensocial.DataRequest.Group.VIEWER_FRIENDS);
	var friendsData = friendsDataGroup.getData();
	var friendsSize = friendsData.getTotalSize();;
	var friends = '<a name="inviteTop"></a><table cellspacing="10" cellpadding="0" style="text-align:center; width:300px;"><tr>';
	var count = 0;
	friendsData.each(
		function(friendData)
		{
			var friendId = friendData.getField(opensocial.Person.Field.ID);
			var friendName = friendData.getField(opensocial.Person.Field.NAME);
			var friendPic = friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);
			friends += '<td style="border:solid 1px #CCCCCC; padding:10px; background:#FFFFFF; vertical-align:top; width:85px; overflow:hidden;" id="' + friendId + '_td"><div style="width:85px; height:100px; overflow:hidden; position:relative;"><div style="position:absolute; top:0px; right:0px;"><input type="checkbox" onClick="checkInvite(\'' + friendId + '\'); this.blur();" id="' + friendId + '_check"/></div><a href="#" onClick="clickInvite(\'' + friendId + '\');" title="' + friendName + '"><img src="' + friendPic + '" width="85" border="0" title="' + friendName + '"/></a></div><div style="font-size:10px; width:85px; overflow:hidden;">' + friendName + '</div></td>';
			if(count % 6 == 5)
				friends += '</tr><tr>';
			count ++;
		}
	);
	friends += '</tr></table>';
	
	var last = Math.ceil(friendsSize / 40);
	var page = FRIEND_PAGE;
	var pagination = '<div style="font-size:14px;">Displaying ' + ((page-1)*40+1) + " - " + Math.min(((page-1)*40+40),friendsSize) + " of " + friendsSize + " friends</div><center>";
	if(last <= 6)
	{
		for(i = 1; i <= last; i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="invitePage(' + i + ');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
	}
	else
	{
		if(page != 1)
			pagination += '<a href="#" onClick="invitePage(1);" title="Friends page 1" style="font-weight:bold; font-size:14px;">1</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">1</span> ';
		if(page > 5)
			pagination += ' ... ';
		for(i = Math.max(2, page-3); i <= Math.min(last-1, page+3); i ++)
		{
			if(i != page)
				pagination += '<a href="#" onClick="invitePage(' + i + ');" title="Friends page ' + i + '" style="font-weight:bold; font-size:14px;">' + i + '</a> ';
			else
				pagination += '<span style="font-weight:bold; font-size:14px;">' + i + '</span> ';
		}
		if(page < last-4)
			pagination += '... ';
		if(page != last)
			pagination += '<a href="#" onClick="invitePage(' + last + ');" title="Friends page ' + last + '" style="font-weight:bold; font-size:14px;">' + last + '</a> ';
		else
			pagination += '<span style="font-weight:bold; font-size:14px;">' + last + '</span> ';
	}
	pagination += "</center>";
	friends += pagination;
		
	document.getElementById("askboxinnerDiv").innerHTML += friends;
}

function answer()
{
	var htmlCode;
	var mainBody = document.getElementById("mainBody");
	
	//Code to create seach div
	htmlCode = '<div id="searchareaDiv" style="padding-left:32px; padding-top:5px; padding-bottom:5px; background-color:#f04f4d; font-size:17px; line-height:22px;">Seach for a question:&nbsp;&nbsp;&nbsp;';
		htmlCode += '<input type="text" size="70" id="searchBox"></textarea>&nbsp;&nbsp;&nbsp;';
		htmlCode += '<input type="submit" value="Search Questions" onClick="searchQuestions();">';
	htmlCode += '</div><br />';
			
	//Code for left column
	htmlCode += '\<div id="leftcolumn" style="float:left;">';			
		//Code for category box
		htmlCode += '\<div id="categoryboxmainDiv" style="background-color:#f04f4d; width:155px; padding:2px; padding-top:5px; font-size:20px; line-height:22px;"><center>Categories<br /></center>';
			htmlCode += '\<div id="categoryboxinnerDiv" style="background-color:#f59998; width:151px; font-size:11px; margin-top:6px; padding:2px; line-height:17px;">';							
				var i;
				for(i = 0; i <= INDEX; i++)
				{						
					htmlCode += '<a href="#" onClick="showSubs('+i+');" title='+MAIN_CATEGORIES[i]+'>'+MAIN_CATEGORIES[i]+'</a><br/>';
					htmlCode += '<div id="'+MAIN_CATEGORIES[i]+'" style="display:none;">';
					htmlCode += '<ul class="bullet">';
						for(cat in ALL_CATEGORIES)
						{
							if(cat == MAIN_CATEGORIES[i])
							for(id in ALL_CATEGORIES[cat])
							{
								htmlCode += "<li><a href='#' onClick='getQuestionsSub("+id+");'>" + ALL_CATEGORIES[cat][id] + "</a></li>";
							}
						}
					htmlCode += '</ul>';
					htmlCode += '</div>';
				}
				
			htmlCode += '\</div>'; 
		//End category box
		htmlCode += '</div>';
	//End left column
	htmlCode += '\</div>';
			
	//Code for center column
	htmlCode += '\<div id="centercolumn" style="float:left; padding-left:32px;">';
		//Code for question box
		htmlCode += '\<div id="questionboxmainDiv" style="background-color:#f04f4d; width:598px; padding:2px; font-size:20px; line-height:22px;"><div id="questionTitle" style="padding:5px; font-size:18px;">Select a Category</div>';
			//Code for inner question box
			htmlCode += '\<center><div id="questionboxinnerDiv" style="background-color:#f59998; width:598px; _width:594px; margin-top:5px; text-align:left; height:410px; _height:455px; overflow-x:hidden; overflow-y:scroll;">';
				//htmlCode += '<font size="3"><center><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>Select Category</center></font>';
			htmlCode += '\</div></center>';			
		//End question box
		htmlCode += '\</div>';
	//End Center Column
	htmlCode += '\</div>';
			
	//Code for right column
	htmlCode += '\<div id="rightcolumn" style="float:left; padding-left:32px;">';
		htmlCode += "\<iframe frameborder='0' scrolling='no' marginheight='0' marginwidth='0' width='122' height='615'  id='AdParlorAd' name='AdParlorAd' src='http://adparlor.com/serveIFrameAd.aspx?appId=5340945&adtype=9&age=<>&gender=<>&maritalStatus=<>&adTBG=FFFDFD&adTColor=010101&adCntColor=000000&adBG=FF4A4A' ></iframe>";
	//End right column
	htmlCode += '\</div>';
			
	mainBody.innerHTML = htmlCode;
	if(navigator.appName != "Microsoft Internet Explorer")
	{
		Nifty("div#searchareaDiv", "big");
		Nifty("div#categoryboxmainDiv", "top big");
		Nifty("div#questionboxmainDiv", "top big");
	}
	
	if(!FIND_QUESTION==0)
	{
		getQuestion(FIND_QUESTION);
	}
	
}//end answer

function searchQuestions()
{
	document.getElementById("questionTitle").innerHTML = "Search Results";
	var searchText = document.getElementById("searchBox").value;
	FIND_QUESTION = 0;
	var data = {action: "search_question", text: searchText};
	secureRequest(data, retrieveSuccess);
}

function hideSubs(index)
{
	new Effect.SlideUp(MAIN_CATEGORIES[index]);
	return false;
}
function showSubs(index)
{
	if(document.getElementById(MAIN_CATEGORIES[index]).style.display == 'none')
	{	
		new Effect.SlideDown(MAIN_CATEGORIES[index]);		
	}
	else
	{
		new Effect.SlideUp(MAIN_CATEGORIES[index]);
	}
	debug("getting questions from other main categories");
	getQuestionsMain(index);
}//end showSubs

function getQuestionsMain(index)
{
	document.getElementById("questionTitle").innerHTML = MAIN_CATEGORIES[index];
	var data = {action: "retrieve_quest_main_cat", category: MAIN_CATEGORIES[index]};
	secureRequest(data, retrieveSuccess);
}

function getQuestionsSub(id)
{
	for(cat in ALL_CATEGORIES)
	{
		for(sub_ids in ALL_CATEGORIES[cat])
		{
			if(sub_ids == id)
			{
				document.getElementById("questionTitle").innerHTML = cat + " > " + ALL_CATEGORIES[cat][sub_ids];
				break;
			}
		}
	}
	var data = {action: "retrieve_quest_sub_cat", category: id};
	secureRequest(data, retrieveSuccess);
}


function retrieveSuccess(dataResponse)
{
	debug("questions retrieved");
	
	var data = dataResponse.text.evalJSON();
	
	var htmlCode = '';
	var backgroundColor = '#f59998';
	for(id in data)
	{
		htmlCode += "<div style='padding:5px; font-size:15px; width:576px; background-color:" + backgroundColor + ";'><a href='#' onClick='getQuestion("+id+");'>" + data[id] + "</a></div>"; 
		
		if(backgroundColor == '#f59998')
			backgroundColor = '#fa8b8a';
		else
			backgroundColor = '#f59998';
	}
	document.getElementById("questionboxinnerDiv").innerHTML = htmlCode;
	
}

function getQuestion(id)
{
	FIND_QUESTION = 0;
	var data = {action: "retrieve_question", quest_id: id};
	secureRequest(data, displayQuestion);
}

function displayQuestion(dataResponse)
{
	debug("question recieved");
	
	if(!dataResponse.text)
		renderPage(PAGE.ANSWER);
	else
	{
		var data = dataResponse.text.evalJSON();	
	
		var questionBox = document.getElementById("questionboxinnerDiv");
		document.getElementById("questionTitle").innerHTML = data.main_cateogry + " > " + data.category;
	
		var htmlCode = "<div id='pic' style='height:122px; width:100px; margin:25px; overflow:hidden; float:left; font-size:12px;'><center>" + data.name + "<br>" + data.image + "</center></div>";
		htmlCode += "<br/><br/><div id='question' style='font-size:17px; margin-right:25px; _margin-right:3px;'>" + data.question;
		htmlCode += "<br/><br/><div id='timeago' style='font-size:10px; color:#7b7979; float:right; margin-right:25px;'>" + data.date_created + "</div>"; 
		htmlCode += "</div><br clear='all'/>";
		htmlCode += "<div id='description' style='font-size:13px; margin:25px;'>" + data.detail + "</div><br clear='all'/>";
		htmlCode += "<div id='reportAbuse'>";
		if(data.allow_answer)
			htmlCode += "<input id='reportAbuseButton' type='button' style='margin-bottom:5px; float:right; margin-right:26px;' onclick='reportAbuse("+data.quest_id+", 0);' value='Mark as Offensive'></div><br/>";
		else
		{
			htmlCode += "<input id='postBulletin' type='button' onclick='postBulletin();' style='margin-bottom:5px; float:right; margin-right:26px;' value='Post Bulletin'><br/></br>";
			htmlCode += "<input id='askFriends' type='button' onclick='askFriends(1);' style='float:right; margin-top:-13px; margin-right:26px;' value='Ask Friends'></div><br/>";
			CURRENT_QUESTION = data.quest_id;
			FRIEND_INVITE.length = 0;
		}
		htmlCode += "<br clear='all'/>";
	
		var index = 0;
		//if there is a best answer show it
		if(data.best_answer)
		{
			while(data.answers[index])
			{
				if(data.answers_id[index] == data.best_answer)
				{
					htmlCode += "<center><hr width=540 size=1></center>";
					htmlCode += "<center><div id='best' style='color:#FFE87C;'>BEST ANSWER!!!<br/></div></center>";
					htmlCode += "<div id='pic' style='height:120px; width:95px; margin-right:15px; margin-left:15px; margin-bottom:25px; overflow:hidden; float:left; font-size:10px;'><center>" + data.answers_creators_name[index] + "<br/>" + data.answers_creators_image[index] + "</center></div>"; 
						htmlCode += "<div style='margin-top:20px; margin-right:25px; font-size:13px; _float:left;'>" + data.answers[index];
					htmlCode += "<br/><div id='timeagoAns' style='font-size:10px; color:#7b7979; float:right;'>" + data.answers_dates[index] + "</div><br/><br/>";
					htmlCode += "<div id='reportAbuse' style='float:right;'><input id='reportAbuseButton' type='button' onclick='reportAbuse("+data.answers_id[index]+", 1);' value='Mark as Offensive'></div></div><br/>";
					htmlCode += "<br clear='all'/>";
				}
				index++;
			}
		}
		//Show answers
	
		index = 0;
		while(data.answers[index])
		{
			if(!(data.answers_id[index] == data.best_answer))
			{
				htmlCode += "<center><hr width=540 size=1></center>";
				htmlCode += "<div id='pic' style='height:120px; width:95px; margin-left:15px; margin-right:15px; margin-bottom:25px; overflow:hidden; float:left; font-size:10px;'><center>" + data.answers_creators_name[index] + "<br/>" + data.answers_creators_image[index] + "</center></div>"; 
			
				htmlCode += "<div style='margin-top:20px; margin-right:25px; font-size:13px; _float:left;'>" + data.answers[index];
				htmlCode += "<br/><div id='timeagoAns' style='font-size:10px; color:#7b7979; float:right;'>" + data.answers_dates[index] + "</div><br/><br/>";
				htmlCode += "<div id='reportAbuse' style='float:right;'><input id='reportAbuseButton' type='button' onclick='reportAbuse("+data.answers_id[index]+", 1);' value='Mark as Offensive'></div>";
			
				htmlCode += "<br/>";
				if(data.is_users_quest && !data.best_answer)
				{
					htmlCode += "<br/><div id='bestAnswer' style='float:right; margin-top:-13px;'><input id='buttonBestAnswer' type='button' value='Best Answer' onclick='markBest("+data.quest_id+", "+data.answers_id[index]+", "+data.answers_creators[index]+", "+data.creator+");'></div>";
				}
			
				htmlCode += "</div>";
				htmlCode += "<br clear='all'/>";
			}
			index++;
		}
	
		if(data.allow_answer)
		{
			htmlCode += "<center><hr width=540 size=1></center>";
			htmlCode += "<div id='title' style='margin-left:20px; font-size:15px;'>Answer this question:</div>";
			htmlCode += "<form id='ans' style='_margin-top:-1;'><center><textarea id='answer' rows='5' cols='65' onkeyup='removeOneAnswer();' onkeydown='removeOneAnswer();' tabindex=1>";
			htmlCode += "\</textarea><br/><br/>";
			htmlCode += "<input id='buttonAnswer' type='button' value='Answer' onclick='answerQuestion("+data.quest_id+");' style='float:left; margin-left:19px;' disabled=true>";
			htmlCode += "<div ALIGN=RIGHT style='margin-right:11px; font-size:10px;'>Characters Left:&nbsp;<input type=text id='limitA' size=4 style='width:30px;' readonly value=500>&nbsp;&nbsp;</div>";	
			htmlCode += "</form>";
		}
	
		htmlCode += "<br/><br/><br/>";
	
		questionBox.innerHTML = htmlCode;
	}
}

function reportAbuse(id, type)
{
	debug("Report: " + id + " Type: " + type);
	if(type) //call php for answers
	{
		var data = {action: "reportAnswer", answer_id: id};
		secureRequest(data, abuseReported);
	}
	else // call php for questions
	{
		var data = {action: "reportQuestion", question_id: id};
		secureRequest(data, abuseReported);
	}
}

function abuseReported(dataResponse)
{
	debug("Request returned from report abuse: " + dataResponse.text);
	renderPage(PAGE.HOME);
}

function markBest(quest, ans, ans_creat, quest_creat)
{
	debug("Mark Best: Question:" + quest + " Answer:" + ans);
	var data = {action: "mark_best", answer_id: ans, question_id: quest, ans_creator: ans_creat};
	secureRequest(data, markBestSuccess);
}

function markBestSuccess(dataResponse)
{
	debug("Request returned from best answer" + dataResponse.text);
	renderPage(PAGE.HOME);
}

function answerQuestion(id)
{
	FIND_QUESTION = id;
	var ans = document.getElementById("answer").value;
	var data = {action: "add_answer", answer: ans, question_id: id};
	secureRequest(data, answerSuccess);
}

function answerSuccess(dataResponse)
{
	debug("answer success");
	debug("Request returned: " + dataResponse.text);
	renderPage(PAGE.ANSWER);
}

function removeOneAnswer()
{	
	var text = document.getElementById("answer").value;
	var length = text.length;
	if(length > 500)
	{
		document.getElementById("answer").value = text.substring(0, 500);
		checkAnswerButton(length);
		return false;
	}
	document.getElementById("limitA").value = 500 - length;
	checkAnswerButton(length);
}

function checkAnswerButton(length)
{
	if(length)
		document.getElementById("buttonAnswer").disabled = false;
	else
		document.getElementById("buttonAnswer").disabled = true;
}



