//<!--© Joshua Lee Bauer 2007-08. All rights reserved.-->
var memberOps = {index:0, size:10, search:function () {
	var panel = dojo.widget.byId("memberSearchResultsPanel");
	var query = dojo.byId("memberSearchBox").value;
	if ((query == null) || (query.length < 1)) {
		return;
	}
	var url = "/components/search/members.jsp?uid=" + userOps.user.userId + "&q=" + query + "&s=" + memberOps.size + "&i=" + memberOps.index;
		//dojo.debug( 'searching ' + query + ' with url ' + url );
	//	var url = '/sandbox/MyJsp.jsp';
	panel.setUrl(url);
}, clear:function () {
	var panel = dojo.widget.byId("memberSearchResultsPanel");
	panel.domNode.innerHTML = "";
}};
var userOps = {isLoggedIn:false, profileInitialized:false, user:null, teams:null, leagues:null, friends:null, messages:null, events:null, trades:null, invitations:null, currentRecepient:0, interceptedEvent:null, activeDraft:null, currentMessage:0, init:function () {
	sessionManager.init();
	dojo.event.topic.subscribe("USER_LOGIN", userOps.handleLogin);
	dojo.event.topic.subscribe("USER_LOGOUT", userOps.handleLogout);
	/*
				var container = dojo.widget.byId(this.containerId);	// TODO: do this via topics?
			container.selectChild(page, false, this);
			*/
	var controller = dojo.widget.byId("mainTabController");
	dojo.debug("controller: " + controller);
	controller.onButtonClick = function (page) {
		dojo.debug("selected new main page: " + page.widgetId);
		if ((page.widgetId == "userHome_tab")) {
			if (!userOps.handleSecuredRequest(userOps.gotoHome)) {
				return;
			}
		}
		if ((page.widgetId == "join_tab")) {
			if (!userOps.handleSecuredRequest(userOps.gotoJoin)) {
				return;
			}
		}
		var controller = dojo.widget.byId("mainTabController");
		var container = dojo.widget.byId(controller.containerId);	// TODO: do this via topics?
		container.selectChild(page, false, controller);
	};
	setTimeout(function () {
		dojo.debug("verifying status...");
		userOps.verifyStatus();
	}, 1800000);
}, verifyStatus:function () {
	dojo.debug("verifying status...");
	userOps.checkSession();
	setTimeout(function () {
		userOps.verifyStatus();
	}, 1800000);
}, checkSession:function () {
	dojo.debug("checkSession " + new Date());
	var req = dojo.string.escape("html", "/servlet/LoginServlet?");
	var bindArgs = {url:req, load:function (type, data, evt) {
		sessionManager.sessionStatus = data.status;
		sessionManager.username = data.username;
		sessionManager.userId = data.userId;
		sessionManager.sessionid = data.session_id;
		var difference = data.lastCheck - sessionManager.lastCheck;
		difference = difference / 1000;
		dojo.debug("difference is " + difference);
		if (difference > 1750) {
			resetPage();
		}
		sessionManager.lastCheck = data.lastCheck;
		dojo.debug("check returned is " + sessionManager.toString());
		if (sessionManager.sessionStatus < 3) {
			resetPage();
		}
	}, error:function (type, error) {
		dojo.debug("ERROR in UPDATESESSIONSTATUS: " + type + " " + error.message);
		dojo.debug(sessionManager.toString());
	}, mimetype:"text/json", transport:"XMLHTTPTransport", content:{"type":"check", "time":new Date().getTime()}};
	dojo.io.bind(bindArgs);
}, handleTimeout:function () {
	logout();
	generateLoginDialog();
	loginDialog.show();
	setTimeout(function () {
		loginError("For security reasons, your session has timed out.  Please login to start a new session.");
	}, 2000);
}, invitee:0, inviteFriend:function (id, name) {
	userOps.invitee = id;
	showInviteMemberDialog();
	UserOps.getUser(id, function (data) {
		var img1 = dojo.byId("inviteMemberHeaderText");
		img1.source = (inviteMemberUrl + "Invite " + data.username + " to be your friend?");
		var img2 = dojo.byId("inviteMemberNameInfoNode1");
		img2.innerHTML = data.username;
		var img3 = dojo.byId("inviteMemberNameInfoNode2");
		img3.innerHTML = data.username;
		var sNode = dojo.byId("inviteMemberSex");
		var sex = data.gender;
		if (sex == "f") {
			sNode.innerHTML = "her";
		} else {
			sNode.innerHTML = "him";
		}
	});
}, homePageInit:false, verifyTabs:function () {
}, gotoHome:function () {
	var page = dojo.widget.byId("userHome_tab");
	var controller = dojo.widget.byId("mainTabController");
	controller.onButtonClick(page);
}, goHome:function () {
	setTimeout("window.top.scrollTo(0,248);", 0);
	var page = dojo.widget.byId("userHome_tab");
	var controller = dojo.widget.byId("mainTabController");
	controller.onButtonClick(page);
	controller2 = dojo.widget.byId("myHomeTabController");
	if (controller2 != null) {
		page = dojo.widget.byId("personal_tab");
		controller2.onButtonClick(page);
		dojo.debug("controller: " + controller2);
	} else {
		setTimeout(function () {
			var controller3 = dojo.widget.byId("myHomeTabController");
			var page2 = dojo.widget.byId("personal_tab");
			controller3.onButtonClick(page2);
			dojo.debug("controller: " + controller3);
		}, 0);
	}
}, reloadUserData:function () {
	UserOps.getUserProfile(userOps.user.userId, userOps.user.userId, function (data) {
		dojo.debug("reloadUserData");
		dojo.debug("OLD AVATAR WAS " + userOps.user.avatarId);
		userOps.updateUserData(data);
		dojo.debug("NEW AVATAR IS " + userOps.user.avatarId);
		if (userOps.profileInitialized == true) {
			userOps.loadUserProfile();
		}
		dojo.debug("reloading bio tab");
		pageTracker._trackPageview("/components/profile/profile.jsp?uid=" + userOps.user.userId + "&rid=" + userOps.user.userId);
		dojo.widget.byId("bio_tab").setUrl("/components/profile/profile.jsp?uid=" + userOps.user.userId + "&rid=" + userOps.user.userId);
	});
}, reloadUserHome:function () {
	dojo.debug("reloading user home");
	pageTracker._trackPageview("/components/user/userHome3.jsp?uid=" + userOps.user.userId + "&rid=" + userOps.user.userId + "&t=" + new Date().getTime());
	dojo.widget.byId("personal_tab").setUrl("/components/user/userHome3.jsp?uid=" + userOps.user.userId + "&rid=" + userOps.user.userId + "&t=" + new Date().getTime());
}, updateUserData:function (data) {
	userOps.user = data[0];
	userOps.teams = data[1];
	userOps.leagues = data[2];
	userOps.friends = data[3];
	userOps.messages = data[4];
	userOps.events = data[5];
	userOps.trades = data[6];
	userOps.invitations = data[7];
}, updateMessages:function () {
	UserOps.getMessages(userOps.user.userId, function (data) {
		userOps.messages = data[0];
		userOps.invitations = data[1];
		userOps.loadUserMessages();
	});
}, interceptedOp:null, handleSecuredRequest:function (command) {
	if (userOps.isLoggedIn == true) {
		return true;
	} else {
		userOps.handleLogout();
		showLoginDialog();
		setupLoginBar();
		userOps.interceptedOp = command;
		return false;
	}
}, handleLogin:function (e) {
	userOps.isLoggedIn = true;
}, initFriendTab:false, loadFriendTab:function () {
	if (userOps.initFriendTab != true) {
		userOps.initFriendTab = true;
	} else {
		return;
	}
	var mpFTable = dojo.byId("mainPageFriendList");
	var rowcount = mpFTable.rows.length;
	dojo.debug("there are " + rowcount + " rows");
	while (mpFTable.rows.length > 0) {
		dojo.debug("removing friend table row " + 0);
		mpFTable.deleteRow(0);
		rowcount = mpFTable.rows.length;
		dojo.debug("there are " + rowcount + " rows");
	}
	if (userOps.friends.length == 0) {
		var r0 = mpFTable.insertRow(0);
		var c0 = r0.insertCell(0);
		var c01 = r0.insertCell(1);
		c0.innerHTML = "<img src=\"http://www.celebrifantasy.com/images/images/celeb_emot_angry.gif\" width=25 height=25 >";
		c01.className = "fTableLink";
		c01.innerHTML = "<a  ><u>You have no friends...</u></a>";
	} else {
		for (var i = 0; i < userOps.friends.length; i += 1) {
			dojo.debug("adding friend " + userOps.friends[i].username + " to table friends ");
			var friend = userOps.friends[i];
			if (i < 5) {
				var r0 = mpFTable.insertRow(i);
				var c0 = r0.insertCell(0);
				var c01 = r0.insertCell(1);
				c0.innerHTML = "<img src=\"/servlet/AvatarServlet?id=" + friend.avatarId + "\" width=25 height=25 >";
				c01.className = "fTableLink";
				c01.innerHTML = "<a  onclick='javascript:userOps.loadFriendTabProfile(" + friend.userId + ");' style='cursor: pointer;'><u>" + friend.username + "</u></a>";
			} else {
				return;
			}
		}
	}
}, loadFriendTabProfile:function (uid) {
	if (userOps.handleSecuredRequest() == true) {
		defaultUserTab = "bio_tab";
		setTimeout("window.top.scrollTo(0,248);", 0);
		dojo.debug("loadFriendTabProfile... " + "userOps.profileInitialized: " + userOps.profileInitialized);
		var mcontroller = dojo.widget.byId("mainTabController");
		var page = dojo.widget.byId("userHome_tab");
		mcontroller.onButtonClick(page);
		var controller = dojo.widget.byId("myHomeTabController");
		if (controller == null) {
			setTimeout(function () {
				var controller2 = dojo.widget.byId("myHomeTabController");
				controller2.onButtonClick(dojo.widget.byId("bio_tab"));
				setTimeout("userOps.loadProfile(" + uid + ");", 400);
			}, 1800);
		} else {
			userOps.loadProfile(uid);
		}
	}
}, initProfile:function () {
	dojo.debug("userOps: init user profile");
	userOps.loadUserProfile();
}, handleLogout:function () {
	userOps.user = null;
	userOps.teams = null;
	userOps.leagues = null;
	userOps.trades = null;
	userOps.friends = null;
	userOps.messages = null;
	userOps.isLoggedIn = false;
	if ((room != null) && (room._username != null)) {
		room.leave();
	}
}, gotoMessages:function () {
	var controller = dojo.widget.byId("myHomeTabController");
	controller.onButtonClick(dojo.widget.byId("message_tab"));
},

resizeFriends: function()
{

		var fNode = dojo.byId("profileFriendList");
		if (fNode == null) {
			return;
		}
		var topNode = fNode.offsetParent;
		var index = 0;
		var totalOffset = fNode.scrollHeight + fNode.offsetTop;
		while ((topNode != document.body) && (topNode != null)) {
			dojo.debug("parent " + index + " is " + topNode);
			index += 1;
			if (index > 10) {
				break;
			}
			totalOffset = totalOffset + topNode.offsetTop;
			topNode = topNode.offsetParent;
		}
		fNode = dojo.byId("prime");
		if (totalOffset > fNode.scrollHeight) {
			if( totalOffset > 4000 )
			{
			fNode.style.height = totalOffset + 200 + "px";
			}
			else
			{
			fNode.style.height ="4000px";
			}
		}

},

 gotoFriends:function () {
	if (userOps.handleSecuredRequest() == true) {
		if (userOps.profileInitialized == false) {
			setTimeout("window.top.scrollTo(0,248);", 0);
			defaultUserTab = "friends_tab";
			var page = dojo.widget.byId("userHome_tab");
			var controller = dojo.widget.byId("mainTabController");
			controller.onButtonClick(page);
		} else {
			var controller = dojo.widget.byId("mainTabController");
			controller.onButtonClick(dojo.widget.byId("userHome_tab"));
			controller = dojo.widget.byId("myHomeTabController");
			controller.onButtonClick(dojo.widget.byId("friends_tab"));
			setTimeout("window.top.scrollTo(0,248);", 0);
		}
	}
}, gotoLeagues:function (id) {
	if (userOps.handleSecuredRequest() == true) {
		if (userOps.profileInitialized == false) {
			setTimeout("window.top.scrollTo(0,248);", 0);
			defaultUserTab = "league_tab";
			var page = dojo.widget.byId("userHome_tab");
			var controller = dojo.widget.byId("mainTabController");
			controller.onButtonClick(page);
			setTimeout(function () {
				dojo.debug("ATTEMPTING TO LOAD LEAGUE " + gameOps.currentLeague);
						//	var controller = dojo.widget.byId('myHomeTabController');
						//	controller.onButtonClick( dojo.widget.byId('league_tab') );
				var controller = dojo.widget.byId("myHomeTabController");
				controller.onButtonClick(dojo.widget.byId("league_tab"));
				
				var page = dojo.widget.byId("league_tab");
					page.domNode.innerHTML = '';
					
				if( gameOps.currentLeague == 0 )
				{
				page.setUrl("/components/league/noLeague.jsp");
					
				}
				else
				{
					page.setUrl("/components/league/leagueHome.jsp?uid=" + userOps.user.userId + "&lid=" + gameOps.currentLeague + "&t=" + new Date().getTime());
					pageTracker._trackPageview("/components/league/leagueHome.jsp?uid=" + userOps.user.userId + "&lid=" + gameOps.currentLeague + "&t=" + new Date().getTime());
				}
			}, 1000);
		} else {
			defaultUserTab = "league_tab";
			var controller = dojo.widget.byId("mainTabController");
			controller.onButtonClick(dojo.widget.byId("userHome_tab"));
			controller = dojo.widget.byId("myHomeTabController");
			controller.onButtonClick(dojo.widget.byId("league_tab"));
			page = dojo.widget.byId("league_tab");
				page.domNode.innerHTML = '';
			
				if( gameOps.currentLeague == 0 )
				{
				page.setUrl("/components/league/noLeague.jsp");
					
				}
				else
				{
					page.setUrl("/components/league/leagueHome.jsp?uid=" + userOps.user.userId + "&lid=" + gameOps.currentLeague + "&t=" + new Date().getTime());
					pageTracker._trackPageview("/components/league/leagueHome.jsp?uid=" + userOps.user.userId + "&lid=" + gameOps.currentLeague + "&t=" + new Date().getTime());
				}
		}
	}
}, gotoSearch:function () {
	defaultUserTab = "search_tab";
	if (userOps.handleSecuredRequest(userOps.gotoSearch) == true) {
		if (userOps.profileInitialized == false) {
			setTimeout("window.top.scrollTo(0,248);", 0);
			defaultUserTab = "search_tab";
			var page = dojo.widget.byId("userHome_tab");
			var controller = dojo.widget.byId("mainTabController");
			controller.onButtonClick(page);
		} else {
			var controller = dojo.widget.byId("mainTabController");
			controller.onButtonClick(dojo.widget.byId("userHome_tab"));
			controller = dojo.widget.byId("myHomeTabController");
			controller.onButtonClick(dojo.widget.byId("search_tab"));
			setTimeout("window.top.scrollTo(0,248);", 0);
		}
	}
}, gotoJoin:function () {
	var controller = dojo.widget.byId("mainTabController");
	controller.onButtonClick(dojo.widget.byId("join_tab"));
},
loadedDraftAlert: false,
 loadUserProfile:function () {
	dojo.debug("userOps: load user profile");
	var link = dojo.byId("userHomeMessageLink");
	if (link) {
		if (userOps.messages.length == 0) {
			link.innerHTML = "You have  <a   onclick='javascript:userOps.gotoMessages();'  " + "style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>zero messages</a>";
			if (userOps.invitations.length > 0) {
				var invCount = "";
				if (userOps.invitations.length == 1) {
					invCount = "friend request";
				} else {
					invCount = "friend requests";
				}
				link.innerHTML += " and <a   onclick='javascript:userOps.gotoMessages();' style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.invitations.length + " " + invCount + "</a>";
			}
			link.innerHTML += " in your inbox";
		} else {
			if (userOps.messages.length == 1) {
				link.innerHTML = "You have <a   onclick='javascript:userOps.gotoMessages();' " + " style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.messages.length + " message</a>";
				if (userOps.invitations.length > 0) {
					var invCount = "";
					if (userOps.invitations.length == 1) {
						invCount = "friend request";
					} else {
						invCount = "friend requests";
					}
					link.innerHTML += " and <a   onclick='javascript:userOps.gotoMessages();' style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.invitations.length + " " + invCount + "</a>";
				}
				link.innerHTML += " in your inbox";
			} else {
				link.innerHTML = "You have <a   onclick='javascript:userOps.gotoMessages();' " + " style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.messages.length + " messages</a> ";
				if (userOps.invitations.length > 0) {
					var invCount = "";
					if (userOps.invitations.length == 1) {
						invCount = "friend request";
					} else {
						invCount = "friend requests";
					}
					link.innerHTML += " and <a   onclick='javascript:userOps.gotoMessages();' style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.invitations.length + " " + invCount + "</a>";
				}
				link.innerHTML += " in your inbox";
			}
		}
	}
		//	dojo.widget.byId( 'message_tab' ).setLabel( 'INBOX (' +  userOps.messages.length + ');' );
	var standingsNode = dojo.byId("userStandingsNode");
	var hasPendingDraft = false;
	for (var i = 0; i < userOps.teams.length; i += 1) {
				//		dojo.debug( 'adding draft ' + i);
		if ((currentTime < startTime)) {
			var startTime = date.valueOf();
			var currentTime = new Date().valueOf();
			var offset = startTime - currentTime;
			var days = Math.floor(offset / (1000 * 60 * 60 * 24));
			offset -= Math.floor(days * (1000 * 60 * 60 * 24));
			var hours = Math.floor(offset / (1000 * 60 * 60));
			offset -= Math.floor(hours * (1000 * 60 * 60));
			var minutes = Math.floor(offset / (1000 * 60));
			offset = startTime - currentTime;
			dojo.debug("DRAFT OFFSET: " + days + " - " + hours + " - " + minutes + " | " + offset);
			if ((offset <= 0) && (userOps.teams[i].draftStatus == "live")) {
				hasPendingDraft = true;
			}
		}
	}
	var currentDate = new Date();
	for (var i = 0; i < userOps.teams.length; i += 1) {
		dojo.debug("adding league " + i);
		var draft = userOps.teams[i].draft;
		var difference = draft.valueOf() - currentDate.valueOf();
		var hourOffset = Math.floor(difference / (1000 * 60 * 60));
		var minOffset = difference - (hourOffset * 1000 * 60 * 60);
		minOffset = minOffset / (1000 * 60);
		var newHours = Math.floor(hourOffset);
		var newMinutes = Math.floor(minOffset);
		var minDiff = difference / (1000 * 60);
		var deltaT = Math.floor(minDiff);
		dojo.debug("new time is " + newHours + ":" + newMinutes + " away and status is " + userOps.teams[i].draftStatus);
		if ((userOps.teams[i].draftStatus == "live")) {
			draftOps.toggleJoinDraft(userOps.teams[i].leagueId, userOps.teams[i].leagueName);
			userOps.loadedDraftAlert = true;
		}
	}
	userOps.profileInitialized = true;
}, loadUserLeagueEvents:function () {
	dojo.debug("loading user league events");
	var events = userOps.events;
	var target = dojo.byId("userLeagueEventsNode");
	if (events.length > 0) {
		target.innerHTML = "";
	} else {
		target.innerHTML = "You have no recent league events.";
	}
	for (var i = 0; i < events.length; i += 1) {
		var li = document.createElement("li");
		li.innerHTML = events[i][1];
		target.appendChild(li);
	}
}, loadUserTrades:function () {
	var trades = userOps.trades;
	var target = dojo.byId("userTradesNode");
	target.innerHTML = "";
	if (trades.length <= 0) {
		target.innerHTML = "No trades are currently pending.";
	} else {
		for (var i = 0; i < trades.length; i += 1) {
			var li = document.createElement("li");
			var content = document.createElement("div");
			li.appendChild(content);
			var summary = trades[i][0].summary;
			var trade = summary[0];
			var league = summary[1];
			var cReq = summary[2];
			var cOff = summary[3];
			var tReq = summary[4];
			var tOff = summary[5];
			var status = trade[1];
			var time = trade[2];
			var tradeId = trade[0];
			li.id = "profile_trade_" + tradeId;
			if (status == "pending") {
				content.innerHTML = "<span>Received " + time.toString().substr(0, 11) + "</span><br>";
				var tradeDiv = document.createElement("div");
				tradeDiv.className = "userTradeRequestNode";
				content.appendChild(tradeDiv);
				var img = document.createElement("img");
				tradeDiv.appendChild(img);
				img.src = "http://www.celebrifantasy.com/images/images/celeb_emot_question.gif";
				tradeDiv.innerHTML += "<a  onclick=\"javascript:userOps.loadProfile(" + tOff[2] + ");\">" + tOff[3] + "</a> has requested to trade " + "<a  onclick=\"javascript:gameOps.loadCelebrity(" + cReq[0] + ");\">" + cReq[2] + "</a> on team <a  onclick=\"javascript:gameOps.loadTeam(" + tOff[0] + ");\">" + tOff[1] + "</a> for " + "<a  onclick=\"javascript:gameOps.loadCelebrity(" + cOff[0] + ");\">" + cOff[2] + "</a> on team <a onclick=\"javascript:gameOps.loadTeam(" + tReq[0] + ");\">" + tReq[1] + "</a> in the league <a  onclick=\"javascript:gameOps.loadLeague(" + league[0] + ");\">" + league[1] + "</a>.";
				if (cReq[2] == userOps.user.userId) {
					var buttons = document.createElement("div");
					tradeDiv.appendChild(buttons);
					buttons.className = "tradeButtons";
					buttons.innerHTML = "<input type='button'  value='Accept' onclick='javascript:tradeOps.acceptTrade(" + tradeId + ");' ><input type='button'    value='Reject' onclick='javascript:tradeOps.rejectTrade(" + tradeId + ");' >";
				}
				target.appendChild(li);
			} else {
				if (status == "accepted") {
					if (tReq[2] != userOps.user.userId) {
						content.innerHTML = "<span>Received " + time.toString().substr(0, 11) + "</span><br>";
						var tradeDiv = document.createElement("div");
						tradeDiv.className = "userTradeRequestNode";
						content.appendChild(tradeDiv);
						var img = document.createElement("img");
						tradeDiv.appendChild(img);
						img.src = "http://www.celebrifantasy.com/images/images/celeb_emot_laugh.gif";
						tradeDiv.innerHTML += "<a  onclick=\"javascript:userOps.loadProfile(" + tReq[2] + ");\">" + tReq[3] + "</a> has  <span class=\"acceptTradeNode\" >ACCEPTED</span> your request to trade " + "<a  onclick=\"javascript:gameOps.loadCelebrity(" + cReq[0] + ");\">" + cReq[2] + "</a> on team <a  onclick=\"javascript:gameOps.loadTeam(" + tReq[0] + ");\">" + tReq[1] + "</a> for " + "<a  onclick=\"javascript:gameOps.loadCelebrity(" + cOff[0] + ");\">" + cOff[2] + "</a> on team <a onclick=\"javascript:gameOps.loadTeam(" + tOff[0] + ");\">" + tOff[1] + "</a> in the league <a  onclick=\"javascript:gameOps.loadLeague(" + league[0] + ");\">" + league[1] + "</a>.";
						target.appendChild(li);
					}
				} else {
					if (status == "rejected") {
						if (tReq[2] != userOps.user.userId) {
							content.innerHTML = "<span>Received " + time.toString().substr(0, 11) + "</span><br>";
							var tradeDiv = document.createElement("div");
							tradeDiv.className = "userTradeRequestNode";
							content.appendChild(tradeDiv);
							var img = document.createElement("img");
							tradeDiv.appendChild(img);
							img.src = "http://www.celebrifantasy.com/images/images/celeb_emot_angry.gif";
							tradeDiv.innerHTML += "<a  onclick=\"javascript:userOps.loadProfile(" + tReq[2] + ");\">" + tReq[3] + "</a> has <span class=\"rejectTradeNode\" >REJECTED</span> your request to trade " + "<a  onclick=\"javascript:gameOps.loadCelebrity(" + cReq[0] + ");\">" + cReq[2] + "</a> on team <a  onclick=\"javascript:gameOps.loadTeam(" + tReq[0] + ");\">" + tReq[1] + "</a> for " + "<a  onclick=\"javascript:gameOps.loadCelebrity(" + cOff[0] + ");\">" + cOff[2] + "</a> on team <a onclick=\"javascript:gameOps.loadTeam(" + tOff[0] + ");\">" + tOff[1] + "</a> in the league <a  onclick=\"javascript:gameOps.loadLeague(" + league[0] + ");\">" + league[1] + "</a>.";
							target.appendChild(li);
						}
					}
				}
			}
		}
	}
}, activeProfileId:0, refreshActiveProfile:function () {
	if (userOps.activeProfileId != 0) {
		setTimeout("window.top.scrollTo(0,248);", 500);
		dojo.widget.byId("bio_tab").setUrl("/components/profile/profile.jsp?uid=" + userOps.activeProfileId + "&rid=" + userOps.user.userId);
	}
}, loadProfile:function (id) {
setTimeout("window.top.scrollTo(0,248);", 0);
	if (!userOps.handleSecuredRequest()) {
		return;
	}
	userOps.activeProfileId = id;
	if (profileOps.user != null) {
		if (profileOps.user.userId != id) {
			setTimeout("window.top.scrollTo(0,248);", 500);
		}
	}
	dojo.widget.byId("bio_tab").onLoad = function () {
		var fNode = dojo.byId("userProfileFriendsNode");
		if (fNode == null) {
			return;
		}
		var topNode = fNode.offsetParent;
		var index = 0;
		var totalOffset = fNode.scrollHeight + fNode.offsetTop;
		while ((topNode != document.body) && (topNode != null)) {
			dojo.debug("parent " + index + " is " + topNode);
			index += 1;
			if (index > 10) {
				break;
			}
			totalOffset = totalOffset + topNode.offsetTop;
			topNode = topNode.offsetParent;
		}
		fNode = dojo.byId("prime");
		if (totalOffset > fNode.scrollHeight) {
			if( totalOffset > 4000 )
			{
			fNode.style.height = totalOffset + 200 + "px";
			}
			else
			{
			fNode.style.height ="4000px";
			}
		}
	};
	dojo.widget.byId("bio_tab").setUrl("/components/profile/profile.jsp?uid=" + id + "&rid=" + userOps.user.userId);
	var controller = dojo.widget.byId("myHomeTabController");
	var page = dojo.widget.byId("bio_tab");
	controller.onButtonClick(page);
}, showMessageDialog:function () {
	dojo.widget.byId("personalMessageEntryContainerDialog").show();
	dojo.byId("personalMessageContent").value = "";
}, uploadProfileImage:function () {
	dojo.byId("imageUploadMessage").innerHTML = "";
	dojo.byId("imageUploadLoader").style.display = "block";
	var bindArgs = {mimetype:"text/html", multipart:true, formNode:document.getElementById("profileAvatarForm"), content:{fileFields:"file1"}, handler:function (type, data, evt) {
		var txtNode = data.getElementsByTagName("textarea")[0];
		dojo.debug(data);
		if (txtNode != null) {
			var txt = txtNode.value;
			dojo.debug(txt);
			var result = dojo.json.evalJson(txt);
			if (result.status == "error") {
				dojo.byId("imageUploadMessage").innerHTML = result.cause;
				dojo.byId("imageUploadLoader").style.display = "none";
			} else {
				var id = result.avatarId;
				dojo.byId("avatarImage").src = "/servlet/AvatarServlet?id=" + id;
				if (dojo.byId("userAvatarNode")) {
					dojo.byId("userAvatarNode").src = "/servlet/AvatarServlet?id=" + id;
				}
				dojo.byId("imageUploadLoader").style.display = "none";
			}
		}
	}};
	var requestObj = dojo.io.bind(bindArgs);
}, hideMessageDialog:function () {
	dojo.widget.byId("personalMessageEntryContainerDialog").hide();
}, confirmMessageDialog:function () {
	var content = dojo.byId("personalMessageContent").value;
	UserOps.sendMessage(userOps.user.userId, userOps.currentRecepient, content, 0);
	userOps.hideMessageDialog();
	userOps.previousMessage = 0;
}, generateFriendNode:function (friend) {
	var fList = dojo.byId("profileFriendList");
	var fNode = document.createElement("li");
	fList.appendChild(fNode);
	var dNode = document.createElement("div");
	dNode.innerHTML = "<p class='friendListNameNode' onclick='javascript:userOps.loadProfile(" + friend.userId + ");'>" + friend.username + "</p>";
	fNode.appendChild(dNode);
	dNode.className = "friendListNode";
	var fTable = document.createElement("table");
	dNode.appendChild(fTable);
	var r1 = fTable.insertRow(0);
	var c1 = r1.insertCell(0);
	var c2 = r1.insertCell(1);
	var c3 = r1.insertCell(2);
	c1.className = "friendListAvatarNode";
	c1.innerHTML = "<center><img src=\"/servlet/AvatarServlet?id=" + friend.avatarId + "\"></center>";
	c2.className = "friendListInfoNode";
	var about = friend.about;
	if ((about == "null") || (about == null) || (about == "")) {
		about = "";
	} else {
		if (about.length < 2) {
			about = "";
		}
	}
	c2.innerHTML = "<table><tr><td><p class='friendListNodeTitle'>About:</p></td>" + "<td><p class='friendAboutNode' >" + about + "</p></td></tr></table>";
	c3.className = "friendListButtonNode";
	var listA = document.createElement("ul");
	var msgNode = document.createElement("li");
	msgNode.className = "friendListButton";
	msgNode.innerHTML = "<input  type='button' value='Send Message' onclick='javascript:userOps.sendMessage(" + friend.userId + ",\"" + friend.username + "\");'>";
	var rmvNode = document.createElement("li");
	rmvNode.className = "friendListButton";
	rmvNode.innerHTML = "<input type='button' value='Remove Friend' onclick='userOps.removeFriend(" + friend.userId + ",\"" + friend.username + "\");'>";
	listA.appendChild(msgNode);
	listA.appendChild(rmvNode);
	c3.appendChild(listA);
	dojo.debug("loaded friend " + friend.username);
}, previousMessage:0, sendMessage:function (fid, fName, previous) {
	userOps.showMessageDialog();
	userOps.currentRecepient = fid;
	dojo.byId("messageReceipientName").innerHTML = fName;
	dojo.debug("would send message to " + fid + " : " + fName);
	if (previous != null) {
		userOps.previousMessage = previous;
	}
}, removingFriend:0, removeFriend:function (fid, fName) {
	showRemoveFriendDialog();
	userOps.removingFriend = fid;
	dojo.byId("removeFriendName").innerHTML = fName;
	dojo.debug("will disinvite  " + fid + " : " + fName);
}, confirmRemove:function () {
	dojo.debug("remove user friend confirmed");
	hideRemoveFriendDialog();
	UserOps.removeFriend(userOps.user.userId, userOps.removingFriend, function (data) {
		dojo.byId("removeFriendName").innerHTML = "";
		userOps.friends = data;
		userOps.loadUserFriends();
		userOps.initFriendTab = false;
		userOps.loadFriendTab();
	});
}, confirmDeleteMessage:function () {
	var content = dojo.byId("personalMessageContent").value;
	dojo.debug("to: " + userOps.currentRecepient + " txt: " + content);
	userOps.hideMessageDialog();
	dojo.byId("personalMessageContent").value = "";
	var id = "messageNode_" + userOps.currentMessage;
	var node = dojo.byId(id);
	dojo.dom.removeNode(node);
	dojo.widget.byId("messageConfirmDeleteDialog").hide();
	UserOps.deleteMessage(userOps.currentMessage, function () {
		userOps.updateMessages();
	});
}, deleteMessage:function (fid) {
		//userOps.showConfirmDeleteDialog();
	userOps.currentMessage = fid;
	dojo.debug("would delete message " + fid);
	dojo.widget.byId("messageConfirmDeleteDialog").show();
}, cancelMessageDeletion:function () {
	var content = dojo.byId("personalMessageContent").value;
	dojo.debug("to: " + userOps.currentRecepient + " txt: " + content);
	userOps.hideMessageDialog();
	dojo.byId("personalMessageContent").value = "";
}, showConfirmDeleteDialog:function () {
}, invitationNode:null, acceptInvitation:function (id, name) {
	var nodeId = "invitationNode_" + id;
	var node = dojo.byId(nodeId);
	userOps.invitationNode = node;
	UserOps.handleInvite(userOps.user.userId, id, 1, function (data) {
		userOps.updateMessages();
		var sidebar = dojo.byId("mainPageFriendList");
		var rowCount = sidebar.rows;
		dojo.debug("sidebar has " + rowCount + " friends inside");
		if (rowCount < 5) {
			dojo.debug("inserting friend at row  " + (1 + rowCount) + " name is " + data.username);
			var fRow = sidebar.insertRow(rowCount + 1);
			var c0 = fRow.insertCell(0);
			var c01 = fRow.insertCell(1);
			c0.innerHTML = "<img src=\"/servlet/AvatarServlet?id=" + data.avatarId + "\" width=25 height=25 >";
			c01.className = "fTableLink";
			
			
			c01.innerHTML = "<a  onclick='javascript:userOps.loadFriendTabProfile(" + data.userId + ");'><u>" + data.username + "</u></a>";
		}
		var friendUrl = "/components/friends/friends.jsp?uid=" + userOps.user.userId + "&rid=" + userOps.user.userId;
		dojo.debug("loading friends at url: " + friendUrl);
		dojo.widget.byId("friends_tab").domNode.innerHTML = '';
		dojo.widget.byId("friends_tab").setUrl(friendUrl);
	});
}, rejectInvitation:function (id) {
	var nodeId = "invitationNode_" + id;
	var node = dojo.byId(nodeId);
	userOps.invitationNode = node;
	UserOps.handleInvite(userOps.user.userId, id, 0, function (data) {
		userOps.updateMessages();
	});
}, activePage:null, inviteUser:function () {
	dojo.debug("sending friend invite to " + userOps.invitee + " from " + userOps.user.userId + " " + dojo.byId("inviteMemberMessageContent").value);
	UserOps.sendFriendInvite(userOps.user.userId, userOps.invitee, dojo.byId("inviteMemberMessageContent").value, function (data) {
		hideInviteMemberDialog();
		if (userOps.activePage == "search_tab") {
			memberOps.search();
		}
		userOps.refreshActiveProfile();
	});
}, inviteImageUrl:"/servlet/FontServlet?type=renderText&str=FRIEND%20REQUESTS&f=arial%20plain%2014&b1=000000&b2=000000&c1=e2027c&c2=e2027c&bw=1.0&xo=4&yo=0&b=0", messageImageUrl:"/servlet/FontServlet?type=renderText&str=MESSAGES&f=arial%20plain%2014&b1=000000&b2=000000&c1=e2027c&c2=e2027c&bw=1.0&xo=4&yo=0&b=0", loadUserMessages:function () {
	dojo.debug("loading user invitations " + userOps.invitations.length);
	var messageList = dojo.byId("messageList");
	messageList.innerHTML = "";
	if ((userOps.invitations.length == 0) && (userOps.messages.length == 0)) {
		messageList.innerHTML = "You have zero messages in your inbox.";
	}
	var link = dojo.byId("userHomeMessageLink");
	if (link) {
		if (userOps.messages.length == 0) {
			link.innerHTML = "You have  <a   onclick='javascript:userOps.gotoMessages();'  " + "style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>zero messages</a>";
			if (userOps.invitations.length > 0) {
				var invCount = "";
				if (userOps.invitations.length == 1) {
					invCount = "friend request";
				} else {
					invCount = "friend requests";
				}
				link.innerHTML += " and <a   onclick='javascript:userOps.gotoMessages();' style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.invitations.length + " " + invCount + "</a>";
			}
			link.innerHTML += " in your inbox";
		} else {
			if (userOps.messages.length == 1) {
				link.innerHTML = "You have <a   onclick='javascript:userOps.gotoMessages();' " + " style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.messages.length + " message</a>";
				if (userOps.invitations.length > 0) {
					var invCount = "";
					if (userOps.invitations.length == 1) {
						invCount = "friend request";
					} else {
						invCount = "friend requests";
					}
					link.innerHTML += " and <a   onclick='javascript:userOps.gotoMessages();' style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.invitations.length + " " + invCount + "</a>";
				}
				link.innerHTML += " in your inbox";
			} else {
				link.innerHTML = "You have <a   onclick='javascript:userOps.gotoMessages();' " + " style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.messages.length + " messages</a> ";
				if (userOps.invitations.length > 0) {
					var invCount = "";
					if (userOps.invitations.length == 1) {
						invCount = "friend request";
					} else {
						invCount = "friend requests";
					}
					link.innerHTML += " and <a   onclick='javascript:userOps.gotoMessages();' style='cursor: pointer;  color: #e4007b; text-decoration: underline;'>" + userOps.invitations.length + " " + invCount + "</a>";
				}
				link.innerHTML += " in your inbox";
			}
		}
	}
		//	dojo.widget.
	if (userOps.invitations.length > 0) {
		var invImg = document.createElement("img");
		var invImgLi = document.createElement("li");
		invImg.src = userOps.inviteImageUrl;
		invImgLi.appendChild(invImg);
		messageList.appendChild(invImgLi);
		invImgLi.style.border = "none";
	}
	for (var i = 0; i < userOps.invitations.length; i += 1) {
		dojo.debug("LOADING INVITATION " + i);
		var invitation = userOps.invitations[i];
		var mNode = document.createElement("li");
		mNode.id = "invitationNode_" + invitation.id;
		messageList.appendChild(mNode);
		mNode.className = "profileMessageNode";
		var mTable = document.createElement("table");
		mNode.appendChild(mTable);
		var r1 = mTable.insertRow(0);
		var r2 = mTable.insertRow(1);
		var c1 = r1.insertCell(0);
		var c2 = r1.insertCell(1);
		var c3 = r1.insertCell(2);
		var c4 = r2.insertCell(0);
		c1.className = "messageSenderNode";
		c1.innerHTML = "from: <a onclick='' >" + invitation.senderName + "</a>";
		c2.className = "messageDateNode";
		c2.innerHTML = "<span>" + invitation.simpleDate + "</span>";
		c3.innerHTML = "<table class='inboxMessageButtonContainer'>" + "<tr><td>" + "<div>" + "<a onclick='javascript: userOps.acceptInvitation(" + invitation.id + ", \" " + invitation.senderName + " \" );' style='cursor: pointer;'>" + "<img style='margin-top: 10px;'\tsrc='http://celebrifantasy.s3.amazonaws.com/images/text/accept.png'></a>" + "</div>" + "<div>" + "<a onclick='javascript: userOps.rejectInvitation(" + invitation.id + ");' style='cursor: pointer;'>" + "<img style='margin-top: 10px;'\tsrc='http://celebrifantasy.s3.amazonaws.com/images/text/reject.png'></a>" + "</div>" + "</td></tr></table>";
		c3.rowSpan = 2;
		c3.className = "messageButtonNode";
		c4.colSpan = 2;
		c4.className = "messageContentNode";
		c4.innerHTML = "<p><b>" + invitation.senderName + "</b> has sent you a friend request." + "</p>";
		if (invitation.message != null) {
			if (invitation.message.length > 0) {
				c4.innerHTML += "<p>" + invitation.message + "</p>";
			}
		}
	}
	if (((userOps.messages == null) || (userOps.messages.length < 1)) && (userOps.invitations.length <= 0)) {
		messageList.innerHTML = "<div class=\"messageSenderNode\" >You have zero messages in your inbox</div>";
		return;
	}
	if (userOps.messages.length > 0) {
		var invImg = document.createElement("img");
		var invImgLi = document.createElement("li");
		invImg.src = userOps.messageImageUrl;
		invImgLi.appendChild(invImg);
		messageList.appendChild(invImgLi);
		invImgLi.style.border = "none";
	}
	for (var i = 0; i < userOps.messages.length; i += 1) {
		var message = userOps.messages[i];
		var mNode = document.createElement("li");
		mNode.id = "messageNode_" + message.id;
		messageList.appendChild(mNode);
		mNode.className = "profileMessageNode";
		var mTable = document.createElement("table");
		mNode.appendChild(mTable);
		var r1 = mTable.insertRow(0);
		var r2 = mTable.insertRow(1);
		var c1 = r1.insertCell(0);
		var c2 = r1.insertCell(1);
		var c3 = r1.insertCell(2);
		var c4 = r2.insertCell(0);
		c1.className = "messageSenderNode";
		c1.innerHTML = "from: <a onclick='' >" + message.senderName + "</a>";
		c2.className = "messageDateNode";
		c2.innerHTML = "<span>" + message.simpleDate + "</span>";
		c3.innerHTML = "<table class='inboxMessageButtonContainer'>" + "<tr><td>" + "<div>" + "<a onclick='javascript: userOps.sendMessage(" + message.senderId + ", \" " + message.senderName + "\", \"" + message.id + "\" );' style='cursor: pointer;'>" + "<img style='margin-top: 10px;'\tsrc='http://celebrifantasy.s3.amazonaws.com/images/text/reply.png'></a>" + "</div>" + "<div>" + "<a onclick='javascript: userOps.deleteMessage(" + message.id + ");' style='cursor: pointer;'>" + "<img style='margin-top: 10px;'\tsrc='http://celebrifantasy.s3.amazonaws.com/images/text/delete.png'></a>" + "</div>" + "</td></tr></table>";
		c3.rowSpan = 2;
		c3.className = "messageButtonNode";
		c4.colSpan = 2;
		c4.className = "messageContentNode";
		var thread = dojo.json.evalJson(message.content);
		for (var j = 0; j < thread.length; j += 1) {
			if (j == 0) {
				c4.innerHTML += "<p id=\"messageContent_" + message.id + "\">" + thread[j].message + "</p>";
			}
		}
	}
}};

