/// Copyright 2002 - 2010 (c) InfiniteSports LLC.  All rights reserved.
///
var g_errorNoEmail = "You must specify an email address.";var g_errorNoName = "You must fill in a name.";var g_errorNoCity = "You must fill in the city.";var g_errorNoState = "You must fill in the state / province.";var g_errorNot13 = "You must be at least 13 years old to use this site.";var g_passwordSent = "Your password has been sent.";var g_invalidPassword = "This email address doesn't look good to us.";var g_enterYourCity = "Find Games in Your City";

/// Copyright 2002 - 2010 (c) InfiniteSports LLC.  All rights reserved.
///
var fbPublishStreamPermission = "publish_stream";var fbEmailPermission = "email";var baseUri = document.getElementsByTagName("base")[0].href;var preferencesUri = baseUri + "preferences";var gamesUri = baseUri + "games";var inboxUri = baseUri + "inbox";var searchUri = baseUri + "search?q=";var outUri = baseUri + "out.ashx?url=";var mySpaceUri = baseUri + "myspaceid.aspx";var twitterUri = baseUri + "twitter.aspx";var gameFrequencyOnlyOnce = 2;var gameRestrictionTypeByCount = 2;var searchBox;var locationBox;var Json = {};var Common = {};var realTimeRequest = new RealTimeRequest();var refQueryParam = null;var menuCache = [];var registrationDialog = new RegistrationDialog();var logOnDialog = new LogOnDialog();var roster = new Roster();var facebookConnect = new FacebookConnect();var twitter = new Twitter();var registry = new BlockRegistry();window.onload = function(){searchBox = new SearchBox("searchBox", Common.navigateSearch);searchBox.defaultText = g_enterYourCity;window.setTimeout(realTimeRequest.send, 2000);};function $(id){return window.document.getElementById(id);}/* Common */Common.onLoad = function(fn){if (typeof(window.addEventListener) != "undefined"){window.addEventListener("load", fn, false);}else if (typeof(window.attachEvent) != "undefined"){window.attachEvent("onload", fn);}else {if (window.onload != null){var oldOnload = window.onload;window.onload = function(e) {oldOnload(e);fn();};}else {window.onload = fn;}}};Common.onHashChange = function(fn){if (typeof (window.onhashchange) == "undefined"){window.setInterval(fn, 250);return;}if (typeof (window.addEventListener) != "undefined"){window.addEventListener("hashchange", fn, false);}else if (typeof (window.attachEvent) != "undefined"){window.attachEvent("onhashchange", fn);}else {if (window.onhashchange != null){var oldOnHashchange = window.onhashchange;window.onhashchange = function(e){oldOnHashchange(e);fn();};}else {window.onhashchange = fn;}}};Common.updateContentId = function(id, blockIds){$(Common.getContentId(blockIds)).id = id;};Common.getContentId = function(blockIds){for (var id in blockIds){if ($(blockIds[id]) != null)return blockIds[id];}alert("getContentId returned null");};Common.hideAdvertising = function(){PlayerHandler.HideAdvertising(Common.updateBlocks);};Common.focus = function(id){var o = $(id);if (o)o.focus();};Common.isUndefined = function(o){return (typeof(o) == "undefined");};Common.isValidName = function(id, blockId){if (Common.isNullOrEmpty(Common.getVal(id).trim())){Common.showBlockError(g_errorNoName, blockId);Common.focus(id);return false;}return true;};Common.isValidLocation = function(blockId){if (Common.isNullOrEmpty(Common.getVal("txtCity"))){Common.showBlockError(g_errorNoCity, blockId);Common.focus("txtCity");return false;}if (Common.isNullOrEmpty(Common.getVal("txtState"))){Common.showBlockError(g_errorNoState, blockId);Common.focus("txtState");return false;}return true;};Common.deserialize = function(s){if (Common.isNullOrEmpty(s))return null;return eval("(" + s + ")");};Common.navigateSearch = function(){var uri = searchUri + encodeURIComponent(searchBox.getText());var geocodeKey = searchBox.getValue();if (!Common.isNullOrEmpty(geocodeKey))uri += "&gk=" + encodeURIComponent(geocodeKey);Common.navigate(uri);};Common.alertResponse = function(request){alert(request.responseText);};Common.navigateResponse = function(request){Common.navigate(request.responseText);};Common.htmlEncode = function(s){return String(s).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");};Common.isIE = function(){return navigator.userAgent.indexOf("MSIE") > -1;};Common.navigate = function(href){document.location.href = href;};Common.navigateHash = function(hash){document.location.hash = Common.isUndefined(hash) ? "" : hash;};Common.locationReload = function(){document.location.reload(true);};Common.openWindow = function(url, width, height){var left = parseInt((screen.width - width) / 2);var top = parseInt((screen.height - height) / 4);window.open(url, null, "top=" + top + ",left=" + left + ",width=" + width + ",height=" + height +",status=no,toolbar=no,menubar=no,location=no");};Common.isNullOrEmpty = function(s){return (s == null) || (s.length == 0);};Common.navigateToDefault = function(){document.location.href = baseUri;};Common.navigateToGames = function(){if (Common.isNullOrEmpty(refQueryParam))document.location.href = gamesUri;else document.location.href = gamesUri + "?ref=" + refQueryParam;};Common.navigateToPreferences = function(){document.location.href = preferencesUri;};Common.navigateToInbox = function(){document.location.href = inboxUri;};Common.getVal = function(o){if (typeof (o) == "string")o = $(o);return o.value;};Common.getBoolVal = function(id){return $(id).checked;};Common.getIntVal = function(id){return parseInt(Common.getVal(id));};Common.getFloatVal = function(id){return parseFloat(Common.getVal(id));};Common.innerText = function(id, text){if (Common.isIE())$(id).innerText = text;else $(id).textContent = text;};Common.disableElement = function(id){$(id).disabled = true;};Common.enableElement = function(id){$(id).disabled = false;};Common.showElement = function(id){Common.hideShowElement(id, true);};Common.hideElement = function(id){Common.hideShowElement(id, false);};Common.hideShowElements = function(rg, isVisible){for (var i = 0; i < rg.length; i++)Common.hideShowElement(rg[i], isVisible);};Common.hideShowElement = function(id, isVisible){$(id).style.display = isVisible ? "" : "none";};Common.serializeDate = function(date){return (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear()};Common.removeNode = function(o){o.parentNode.removeChild(o);};Common.cancelEvent = function(e){if (!e)e = window.event;e.cancelBubble = true;};Common.showBlockError = function(v, id){id += "Error";if (typeof (v) == "object")Common.innerText(id, v.responseText);else Common.innerText(id, v);Common.showElement(id);};Common.hideBlockError = function(id){Common.hideElement(id + "Error");};Common.updateBlocks = function(request){Common.updateBlockSet(Common.deserialize(request.responseText));};Common.updateBlockSet = function(blockSet){if (blockSet == null)return;for (var i = 0; i < blockSet.length; i++){var block = blockSet[i];var element = $(Common.isUndefined(block.contentId) ? block.id : block.contentId);if (element == null)continue;element.outerHTML = block.content;registry.add(block);}};/* RealTimeRequest */function RealTimeRequest(){var self = this;self.requestCount = 0;self.send = function(){if (!isRealTimeEnabled)return;if (self.requestCount++ > 720)return;var request = new XMLHttpRequest();request.open("POST", "realtimeservice.ashx", true);request.onreadystatechange = function() { self.onSendComplete(request); };request.setRequestHeader("Accept", "application/json");request.send(registry.serialize());};self.onSendComplete = function(request){if (request.readyState != 4)return;if ((request.status < 200) || (request.status >= 300))return;Common.updateBlocks(request);request == null;self.send();};}/* Json */Json.stringify = function (obj){var t = typeof (obj);if (t != "object" || obj === null){if (t == "string")obj = '"' + obj + '"';return String(obj);}else {var n, v, json = [], arr = (obj && obj.constructor == Array);for (n in obj){v = obj[n];t = typeof(v);if (t == "string")v = '"' + v + '"';else if (t == "object" && v !== null)v = Json.stringify(v);json.push((arr ? "" : '"' + n + '":') + String(v));}return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");}};Json.parse = function (s){if (s === "")s = '""';eval("var p=" + s + ";");return p;};/* String */String.prototype.reverse = function(){var s = "";for (var i = this.length - 1; i >= 0; i--)s += this.charAt(i);return s;};String.prototype.trim = function(){return(this.replace(/^\s*|\s*$/g, ""));};/* Yahoo */if (typeof(YAHOO) != "undefined"){YAHOO.namespace("example.calendar");var g_calendars = YAHOO.example.calendar;}/* HTMLElement */if (typeof(HTMLElement) != "undefined"){var g_emptyTags = {"IMG":   true,"BR":    true,"INPUT": true,"META":  true,"LINK":  true,"PARAM": true,"HR":    true};HTMLElement.prototype.__defineGetter__("outerHTML", function () {var attrs = this.attributes;var s = "&lt;" + this.tagName;for (var i = 0; i < attrs.length; i++)s += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";if (g_emptyTags[this.tagName])return s + "&gt;";return s + "&gt;" + this.innerHTML + "&lt;/" + this.tagName + "&gt;";});HTMLElement.prototype.__defineSetter__("outerHTML", function (html) {var r = this.ownerDocument.createRange();r.setStartBefore(this);var df = r.createContextualFragment(html);this.parentNode.replaceChild(df, this);});}/* Search box */function SearchBox(textBoxId, onSelect){var self = this;self.defaultText = null;self.value = "";self.textBox = $(textBoxId);self.onSelect = onSelect;self.searchMenuTimeout = 0;self.searchMenu = new SearchMenu(self, textBoxId, onSelect);self.requestCount = 0;self.focus = function(){self.textBox.focus();};self.getText = function(){return self.textBox.value;};self.getValue = function(){return self.value;};self.onSearchBoxFocus = function(){if (self.defaultText == null)return;self.textBox.value = "";};self.onSearchBoxBlur = function(e){if (!Common.isNullOrEmpty(self.textBox.value.trim()))return;if (self.defaultText == null)return;self.textBox.value = self.defaultText;};self.onSearchBoxKeyDown = function(e){window.clearTimeout(self.searchMenuTimeout);switch (e.keyCode){case 13:if (self.searchMenu.selectedIndex > -1){self.textBox.value = self.searchMenu.getSelectedText();self.value = self.searchMenu.getSelectedValue();}else {self.value = null;}if (self.onSelect)self.onSelect();self.searchMenu.hide();return false;case 40:self.searchMenu.selectDown();return true;case 38:self.searchMenu.selectUp();return true;case 27:case 9:self.searchMenu.hide();return true;}var text;text = self.textBox.value.trim();if ((text.length == 0) || ((text.length == 1) && (e.keyCode == 8))){self.searchMenu.hide();return true;}self.searchMenuTimeout = window.setTimeout(self.getSearchSuggestions, 400);return true;};self.getSearchSuggestions = function(){var searchKey = self.textBox.value.trim();if (searchKey.length == 0)return;var menuData = menuCache[searchKey.toUpperCase()];if (menuData == null){self.requestCount++;var searchContext = {};searchContext.searchKey = searchKey;searchContext.requestCount = self.requestCount;SearchHandler.GetSearchSuggestions(searchKey, self.onGetSearchSuggestions, null, searchContext);}else self.searchMenu.show(menuData);};self.onGetSearchSuggestions = function(request, searchContext){if (self.requestCount > searchContext.requestCount)return;var menuData = eval(request.responseText);if (menuData == null)return;menuCache[searchContext.searchKey.toUpperCase()] = menuData;self.searchMenu.show(menuData);};}/* Search menu */function SearchMenu(parentSearchBox, textBoxId, onSelect){var self = this;self.selectedIndex = -1;self.parentSearchBox = parentSearchBox;self.textBox = $(textBoxId);self.onSelect = onSelect;self.selectUp = function(){if (self.selectedIndex < 0)return;self.removeSelectedStyle(self.getSelectedLink());self.selectedIndex--;if (self.selectedIndex > -1)self.setSelectedStyle(self.getSelectedLink());};self.selectDown =  function(){var links = self.getLinks();if (links.length == 0)return;if (self.selectedIndex >= links.length - 1)return;if (self.selectedIndex > -1)self.removeSelectedStyle(self.getSelectedLink());self.selectedIndex++;self.setSelectedStyle(self.getSelectedLink());};self.show = function(menuData){self.selectedIndex = -1;if (menuData.length == 0)return;var menu;menu = $("searchMenu");if (menu == null){menu = document.createElement("div");menu.id = "searchMenu";}self.textBox.parentNode.appendChild(menu);menu.onclick = self.clickMenuItem;menu.innerHTML = self.getMenuHtml(menuData);menu.onmousedown = Common.cancelEvent;menu.onmouseover = self.mouseOverMenuItem;document.body.onmousedown = self.hide;Common.showElement("searchMenu");};self.getMenuHtml = function(menuData){var html = "<ul>";for (var i = 0; i < menuData.length; i++){html += "<li><a href=\"javascript:void(0);\" _value=\"" +menuData[i].value + "\">" + menuData[i].key + "</a></li>";}html += "</ul>";return html;};self.hide = function(){self.selectedIndex = -1;var menu;menu = $("searchMenu");if (menu == null)return;Common.hideElement("searchMenu");document.body.onmousedown = null;};self.mouseOverMenuItem = function(e){if (!e)e = window.event;self.removeAllStyles();var o = e.srcElement || e.target;if (o.tagName != "A")return;self.setSelectedStyle(o);self.selectedIndex = self.getSelectedIndex(o);};self.getSelectedIndex = function(o){var i = 0;var li = o.parentNode;while (li.previousSibling){i++;li = li.previousSibling;}return i;};self.setSelectedStyle = function(o){o.style.color = "#fff";o.style.backgroundColor = "#212121";};self.removeSelectedStyle = function(o){o.style.color = "";o.style.backgroundColor = "";};self.removeAllStyles = function(){var links = self.getLinks();for (var i = 0; i < links.length; i++){self.removeSelectedStyle(links[i]);}};self.clickMenuItem = function(e){if (!e)e = window.event;var o = e.srcElement || e.target;if (o.tagName == "A"){self.textBox.value = o.innerText || o.textContent;self.parentSearchBox.value = self.getSelectedValue();}self.hide();if (self.onSelect)self.onSelect();};self.getLinks = function(){if (!$("searchMenu"))return [];return $("searchMenu").getElementsByTagName("A");};self.getSelectedLink = function(){if (self.selectedIndex < 0)return null;var links = self.getLinks();if (links.length == 0)return null;return links[self.selectedIndex];};self.getSelectedText = function(){var link = self.getSelectedLink();if (link == null)return null;return link.innerText || link.textContent;};self.getSelectedValue = function(){var link = self.getSelectedLink();if (link == null)return null;return link.getAttribute("_value");};self.getSelectedUri = function(){var link = self.getSelectedLink();if (link == null)return null;return link.href;};}/* Invitations */function sendInvite(teamId){var inviteTo = $("inviteTo");var to = Common.getVal(inviteTo).trim();if (to.length == 0){Common.showBlockError(g_errorNoEmail, "invitePlayersBlock");inviteTo.focus();return;}Common.disableElement("sendMessageButton");Common.hideBlockError("invitePlayersBlock");TeamHandler.InvitePlayers(teamId,to,Common.getVal("inviteMessage"),showInviteSuccessBox,onInvitePlayersError,"invitePlayersBlock");}function onInvitePlayersError(request, id){Common.enableElement("sendMessageButton");Common.showBlockError(request, id);}function showInvitePlayersBox(teamId){PlayerHandler.RenderInvitePlayersBlock(teamId, showInviteBox);}function showInviteBox(request){var dialog = new DialogBox(request.responseText);dialog.show(500);var inviteTo = $("inviteTo");inviteTo.focus();}function showInviteSuccessBox(request){var dialog = new DialogBox(request.responseText);dialog.show(400, true);}function acceptInvitation(invitationId){var email;email = Common.getVal("txtInvitationEmail").trim();if (Common.isNullOrEmpty(email)){Common.focus("txtInvitationEmail");return;}PlayerHandler.AcceptInvitation(invitationId,email,Common.getVal("txtInvitationPassword"),Common.navigateToDefault,Common.showBlockError,"invitationBlock");}/* Dialogs */Common.hideDialogBox = function(){var box = $("dialogBox");if (box)Common.removeNode(box);document.body.onkeypress = null;};Common.keyPressDialogBox = function(e){if (!e)e = event;if (e.keyCode != 27)return;Common.hideDialogBox();};/* Registration dialog */function RegistrationDialog(){var self = this;self.dialogHtml = null;self.show = function(){if (self.dialogHtml == null)GameHandler.RenderRegistrationBlock(self.onRenderRegistrationBlock);else self.showDialog();};self.onRenderRegistrationBlock = function(request){self.dialogHtml = request.responseText;self.showDialog(request);};self.showDialog = function(){var dialog = new DialogBox(self.dialogHtml);dialog.show();Common.focus("registrationEmail");FB.XFBML.Host.parseDomTree();};self.register = function(){var self = this;var email = Common.getVal("registrationEmail").trim();var registrationConfirmAge;if (Common.isNullOrEmpty(email)){Common.showBlockError(g_errorNoEmail, "registrationBlock");Common.focus("registrationEmail");return;}registrationConfirmAge = $("chkConfirmAge");if (!registrationConfirmAge.checked){Common.showBlockError(g_errorNot13, "registrationBlock");registrationConfirmAge.focus();return;}PlayerHandler.Register(email,Common.getVal("registrationPassword"),self.onRegistrationSuccess,self.onRegistrationError,"registrationBlock");};self.onRegistrationSuccess = function(request){PlayerHandler.RenderPostRegistrationBlock(self.onRenderPostRegistrationBox,Common.showBlockError,"registrationBlock");};self.onRegistrationError = function(request, id){if (request.status == 402){Common.locationReload();return;}Common.showBlockError(request, id);};self.renderPostRegistrationBlock = function(){PlayerHandler.RenderPostRegistrationBlock(self.onRenderPostRegistrationBox, Common.showBlockError, "registrationBlock");};self.onRenderPostRegistrationBox = function(request){var dialog = new DialogBox(request.responseText);dialog.show(400, true);locationBox = new SearchBox("txtLocation");};self.addRegistrationProfile = function(){if (!Common.isValidName("txtName", "postRegistrationBlock"))return;PlayerHandler.CreateRegistrationProfile(Common.getVal("txtName"),Common.getIntVal("selSex"),Common.getIntVal("selAge"),locationBox.getText(),locationBox.getValue(),Common.navigateToGames,Common.showBlockError,"postRegistrationBlock");};}/* Log on dialog */function LogOnDialog(){var self = this;self.dialogHtml = null;self.show = function(){if (self.dialogHtml == null)GameHandler.RenderLogOnBlock(self.onShowLogOnDialog);else self.showDialog();};self.onShowLogOnDialog = function(request){self.dialogHtml = request.responseText;self.showDialog();};self.showDialog = function(){var dialog = new DialogBox(self.dialogHtml);dialog.show();Common.focus("logOnEmail");FB.XFBML.Host.parseDomTree();};self.showLogOnControls = function(){Common.showElement("logOnControls");Common.showElement("thirdPartyLogOnControls");Common.hideElement("remindControls");Common.hideBlockError("logOnBlock");Common.focus("logOnEmail");};self.showRemindControls = function(){Common.hideElement("logOnControls");Common.hideElement("thirdPartyLogOnControls");Common.showElement("remindControls");Common.hideBlockError("logOnBlock");Common.focus("logOnRemindEmail");};self.sendPassword = function(){var email = Common.getVal("logOnRemindEmail").trim();if (Common.isNullOrEmpty(email)){Common.showBlockError(g_invalidPassword, "logOnBlock");Common.focus("logOnRemindEmail");return;}PlayerHandler.RemindPassword(email, self.onSendPasswordSuccess, Common.showBlockError, "logOnBlock");};self.onSendPasswordSuccess = function(){alert(g_passwordSent);self.showLogOnControls();};self.logOn = function(){var email;email = Common.getVal("logOnEmail").trim();if (Common.isNullOrEmpty(email)){Common.showBlockError(g_invalidPassword, "logOnBlock");Common.focus("logOnEmail");return;}PlayerHandler.LogOn(email, Common.getVal("logOnPassword"), self.onLogOnSuccess, self.onLogOnError, "logOnBlock");};self.onLogOnSuccess = function(request){var queryString = QueryString();if (!Common.isUndefined(queryString.returnurl)){Common.navigate(queryString.returnurl);return;}Common.navigateToGames();};self.onLogOnError = function(request, id){var o = $("logOnPassword");o.value = "";Common.showBlockError(request, id);o.focus();};}/* Query string */function QueryString(){var o = {};var search = document.location.search.substring(1, document.location.search.length);var rg = search.split("&");for (var i = 0; i < rg.length; i++){var rg2 = rg[i].split("=");o[decodeURIComponent(rg2[0]).toLowerCase()] = decodeURIComponent(rg2[1]);}return o;}/* Maps */function initializeMap(){var o = $("googleMapContainer");if (!o)return;if (!GBrowserIsCompatible())return;var map = new GMap2(o);var point = new GLatLng(g_point.lat, g_point.long);map.setCenter(point, g_zoomLevel);map.addOverlay(new GMarker(point));}/* Messages */function leaveMessage(){var txtMessage = $("txtMessage");if ($("liNoMessages"))Common.hideElement("liNoMessages");Common.hideElement("divLeaveMessage");Common.showElement("divMessageControls");txtMessage.value = "";txtMessage.focus();etxtMessage.minHeight = txtMessage.clientHeight;}function hideCommentBox(){if ($("liNoMessages"))Common.showElement("liNoMessages");Common.showElement("divLeaveMessage");Common.hideElement("divMessageControls");Common.hideBlockError("teamMessagesBlock");}function renderTeamMessages(teamId, trashTalkSort){TeamHandler.RenderTeamMessages(teamId, trashTalkSort, onRenderTeamMessages, Common.showBlockError);}function addTeamMessage(teamId){var messageTextBox = $("txtMessage");var message = messageTextBox.value.trim();if (message.length == 0){messageTextBox.value = "";messageTextBox.focus();return;}Common.disableElement("sendTeamMessageButton");TeamHandler.CreateMessage(teamId, message, onAddTeamMessageSuccess, onAddTeamMessageError);}function onAddTeamMessageSuccess(request){if (isRealTimeEnabled){Common.enableElement("sendTeamMessageButton");hideCommentBox();return;}Common.updateBlocks(request);etxtMessage = new ExpandableTextBox("txtMessage");}function onAddTeamMessageError(request){Common.enableElement("sendTeamMessageButton");Common.showBlockError(request, "teamMessagesBlock");}function deleteTeamMessage(messageId){if (!confirm(g_confirmCommentDelete))return;TeamHandler.DeleteMessage(messageId, null, Common.showBlockError, "teamMessagesBlock");}function onRenderTeamMessages(request, id){Common.updateBlocks(request);etxtMessage = new ExpandableTextBox("txtMessage");}/* Roster */function Roster(){var self = this;self.blockIds = ["gameDetailsBlock", "myGamesBlock"];self.updatePlayerStatusIn = function(gameId, isSingleGame, prompt){self.updatePlayerStatus(gameId, 2, isSingleGame, prompt);};self.updatePlayerStatusOut = function(gameId, isSingleGame, prompt){self.updatePlayerStatus(gameId, 1, isSingleGame, prompt);};self.updatePlayerStatusUndecided = function(gameId, isSingleGame, prompt){self.updatePlayerStatus(gameId, 3, isSingleGame, prompt);};self.updatePlayerStatus = function(gameId, status, isSingleGame, prompt){GameHandler.UpdatePlayerStatus(gameId,status,isSingleGame,self.onUpdatePlayerStatusSuccess,self.onUpdatePlayerStatusError,{"gameId": gameId,"status": status,"prompt": prompt});};self.onUpdatePlayerStatusSuccess = function(request, o){Common.updateBlocks(request);if (o.prompt)self.showShareOnDialogForStatus(o.gameId, o.status);};self.onUpdatePlayerStatusError = function(request){Common.showBlockError(request, Common.getContentId(self.blockIds));};self.showShareOnDialogForStatus = function(gameId, status){PlayerHandler.RenderShareOnFacebookBlockForStatus(gameId,status,self.onShowShareOnDialogForStatus,Common.showBlockError,"shareOnFacebookBlock");};self.onShowShareOnDialogForStatus = function(request){var dialog = new DialogBox(request.responseText);dialog.show(455);Common.focus("shareOnFacebookTextBox");};self.cancel = function(){if (Common.getBoolVal("chkRememberMyChoice"))PlayerHandler.UpdatePublishPlayerStatusPreferenceToNever();Common.hideDialogBox();};self.publishPlayerStatusWithPermission = function(gameId){FB.Facebook.apiClient.users_hasAppPermission(fbPublishStreamPermission,function(hasAppPermission){self.onPublishPlayerStatus(hasAppPermission, gameId, Common.getBoolVal("chkRememberMyChoice"));});};self.onPublishPlayerStatus = function(hasAppPermission, gameId, alwaysPublish){if (hasAppPermission == 1){self.publishPlayerStatus(gameId, alwaysPublish);}else {FB.Connect.showPermissionDialog(fbPublishStreamPermission,function(permission) { self.onShowPermissionDialog(permission, gameId, alwaysPublish); });}};self.onShowPermissionDialog = function(permission, gameId, alwaysPublish){if (Common.isNullOrEmpty(permission) || (permission.indexOf(fbPublishStreamPermission) == -1)){Common.hideDialogBox();return;}self.publishPlayerStatus(gameId, alwaysPublish);};self.publishPlayerStatus = function(gameId, alwaysPublish){PlayerHandler.PublishPlayerStatusToStream(gameId, Common.getVal("shareOnFacebookTextBox"), alwaysPublish);Common.hideDialogBox();};}/* Dialogs */function DialogBox(html){var self = this;self.html = html;self.show = function(width, isModal){if (Common.isUndefined(width))width = 400;isModal = !!isModal;var box = $("dialogBox");if (box)Common.removeNode(box);box = document.createElement("div");var boxStyle = box.style;document.body.appendChild(box);box.id = "dialogBox";boxStyle.width = width + "px";box.innerHTML = self.html;self.positionDialogBox(box);document.body.onkeypress = Common.keyPressDialogBox;if (isModal)document.body.onmousedown = null;else document.body.onmousedown = Common.hideDialogBox;box.onmousedown = Common.cancelEvent;};self.positionDialogBox = function(box){var boxStyle = box.style;boxStyle.left = ((document.body.clientWidth - box.offsetWidth) / 2) + "px";boxStyle.top = ((document.documentElement.clientHeight - box.offsetHeight) / 4) +document.documentElement.scrollTop + "px";};}/* Web services */if (!window.XMLHttpRequest){window.XMLHttpRequest = function(){var oR;var e;try{oR = new ActiveXObject("Msxml2.XMLHTTP.4.0");}catch (e){try{oR = new ActiveXObject("MSXML2.XMLHTTP");}catch (e){try{oR = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){}}}return oR;}}function HttpRequest(){var self = this;self.send = send;self.response = response;function send(){var rgA = arguments;var body = "<is><c>" + Common.htmlEncode(rgA[0]) + "</c><m>" + Common.htmlEncode(rgA[1]) + "</m>";var i;if (rgA.length > 2){for (i = 2; i < rgA.length - 3; i++){if (rgA[i] == null)continue;if (typeof(rgA[i]) == "object"){if (rgA[i].length){for (var j = 0; j < rgA[i].length; j++)body += "<p" + (i - 2) + ">" + Common.htmlEncode(rgA[i][j]) + "</p" + (i - 2) + ">";}else {var dt = Date.parse(rgA[i]);body += "<p" + (i - 2) + ">" + Common.htmlEncode(dt) + "</p" + (i - 2) + ">";}}else {body += "<p" + (i - 2) + ">" + Common.htmlEncode(rgA[i]) + "</p" + (i - 2) + ">";}}}body += "</is>";var oR = new XMLHttpRequest();oR.open("POST", "webservice.ashx", 1);oR.onreadystatechange = self.response;self.response.oR = oR;self.response.fnS = rgA[rgA.length - 3];self.response.fnE = rgA[rgA.length - 2];self.response.oC = rgA[rgA.length - 1];oR.send(body);}function response(){var oR = response.oR;var oC = response.oC;if (oR.readyState != 4)return;if (oR.status == 200){if (response.fnS)response.fnS(oR, oC);}else {if (response.fnE)response.fnE(oR, oC);}}}/* Facebook */function FacebookConnect(){var self = this;self.logOn = function(){PlayerHandler.FacebookLogOn(self.onRenderPostRegistrationBox, Common.showBlockError, "logOnBlock");};self.register = function(){PlayerHandler.FacebookLogOn(self.onRenderPostRegistrationBox, Common.showBlockError, "registrationBlock");};self.onRenderPostRegistrationBox = function(request){if (Common.isNullOrEmpty(request.responseText)){Common.navigateToGames();return;}var dialog = new DialogBox(request.responseText);dialog.show(400, true);locationBox = new SearchBox("txtLocation");refQueryParam = "facebook";};self.linkAccount = function(){PlayerHandler.FacebookLinkAccount($("useFacebookImage").checked,Common.updateBlocks,Common.showBlockError,"facebookPreferencesBlock");};self.showShareOnDialogForRegistration = function(){PlayerHandler.RenderShareOnFacebookBlockForRegistration(self.onShowShareOnDialogForRegistrationSuccess,self.onShowShareOnDialogForRegistrationError);};self.onShowShareOnDialogForRegistrationSuccess = function(request){var dialog = new DialogBox(request.responseText);dialog.show();Common.focus("shareOnFacebookTextBox");};self.onShowShareOnDialogForRegistrationError = function(request){Common.showBlockError(request, "shareOnFacebookBlock");};self.publishRegistrationWithPermission = function(){FB.Facebook.apiClient.users_hasAppPermission(fbPublishStreamPermission,self.onPublishRegistrationWithPermission);};self.onPublishRegistrationWithPermission = function(hasAppPermission){if (hasAppPermission == 1)self.publishRegistration();else FB.Connect.showPermissionDialog(fbPublishStreamPermission, self.publishRegistration);};self.onShowPermissionDialog = function(permission){if (Common.isNullOrEmpty(permission) || (permission.indexOf(fbPublishStreamPermission) == -1)){Common.hideDialogBox();return;}self.publishRegistration();};self.publishRegistration = function(){PlayerHandler.PublishRegistrationToStream(Common.getVal("shareOnFacebookTextBox"),self.onUpdateStatus,Common.showBlockError,"shareOnFacebookBlock");};self.onUpdateStatus = function(request){var dialog = new DialogBox(request.responseText);dialog.show(400, true);Common.focus("shareOnFacebookTextBox");};}var mySpaceId = {logOn: function(authorizationUrl){Common.openWindow(mySpaceUri, 600, 460);}};/* Twitter */function Twitter(){var self = this;self.logOn = function(authorizationUrl){Common.openWindow(twitterUri, 800, 410);};self.showShareOnDialog = function(){PlayerHandler.RenderShareOnTwitterBlock(self.onShowShareOnDialog, Common.showBlockError, "shareOnTwitterBlock");};self.onShowShareOnDialog = function(request){var dialog = new DialogBox(request.responseText);dialog.show();Common.focus("shareOnTwitterTextBox");};self.updateStatus = function(status){PlayerHandler.UpdateTwitterStatus(status, self.onUpdateStatus, Common.showBlockError, "shareOnTwitterBlock");};self.onUpdateStatus = function(request){var dialog = new DialogBox(request.responseText);dialog.show(400, true);};};/* BlockRegistry */function BlockRegistry(){var self = this;self.registry = {};self.add = function(block){var entry = {};for (var key in block){if ((key == "content") || (key == "contentId"))continue;entry[key] = block[key];}self.registry[entry.id] = entry;};self.serialize = function(){var entries = [];var i = 0;for (var entry in self.registry){entries[i++] = self.registry[entry];}return Json.stringify(entries);};}function ExpandableTextBox(id){var self = this;self.extraHeight = 20;self.textBox = document.getElementById(id);self.minHeight = self.textBox.clientHeight;self.cloneBox = self.textBox.cloneNode(true);self.cloneBox.removeAttribute("id");self.cloneBox.removeAttribute("name");self.cloneBox.tabIndex = -1;var cloneBoxStyle = self.cloneBox.style;cloneBoxStyle.position = "absolute";cloneBoxStyle.left = "-9999px";cloneBoxStyle.top = "0px";self.textBox.parentNode.insertBefore(self.cloneBox, self.textBox);self.updateSize = function(){self.cloneBox.style.height = 0;self.cloneBox.value = self.textBox.value;self.cloneBox.scrollTop = 10000;var scrollTop = self.cloneBox.scrollTop;if (scrollTop > self.minHeight){self.textBox.style.height = (scrollTop + self.extraHeight) + "px";}else {var computedStyle;if (Common.isUndefined(self.textBox.currentStyle))computedStyle = window.getComputedStyle(self.textBox, "");else computedStyle = self.textBox.currentStyle;self.textBox.style.height = (self.minHeight - parseInt(computedStyle.paddingTop) - parseInt(computedStyle.paddingBottom)) + "px";}};self.textBox.onkeydown = self.updateSize;self.textBox.onkeyup = self.updateSize;self.textBox.onchange = self.updateSize;}

/// Copyright 2004 - 2010 (c) Tosh Meston. All rights reserved.
///
window.SearchHandler = new SearchHandler();function SearchHandler(){this.GetSearchSuggestions = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.SearchHandler", "GetSearchSuggestions", p0, fnS, fnE, oC); };}window.NewsItemHandler = new NewsItemHandler();function NewsItemHandler(){this.IncrementViewCount = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.NewsItemHandler", "IncrementViewCount", p0, fnS, fnE, oC); };this.CreateMessage = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.NewsItemHandler", "CreateMessage", p0, p1, fnS, fnE, oC); };}window.MessagingHandler = new MessagingHandler();function MessagingHandler(){this.CheckForNewMessages = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.MessagingHandler", "CheckForNewMessages", fnS, fnE, oC); };this.AppendToThread = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.MessagingHandler", "AppendToThread", p0, p1, fnS, fnE, oC); };this.DeleteThread = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.MessagingHandler", "DeleteThread", p0, fnS, fnE, oC); };this.SendMessageToTeam = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.MessagingHandler", "SendMessageToTeam", p0, p1, p2, fnS, fnE, oC); };this.SendMessageToPlayer = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.MessagingHandler", "SendMessageToPlayer", p0, p1, p2, fnS, fnE, oC); };}window.PlayerHandler = new PlayerHandler();function PlayerHandler(){this.CreateComment = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "CreateComment", p0, p1, fnS, fnE, oC); };this.HideAdvertising = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "HideAdvertising", fnS, fnE, oC); };this.AcceptInvitation = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "AcceptInvitation", p0, p1, p2, fnS, fnE, oC); };this.CreateProfile = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "CreateProfile", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, fnS, fnE, oC); };this.CreateRegistrationProfile = function(p0, p1, p2, p3, p4, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "CreateRegistrationProfile", p0, p1, p2, p3, p4, fnS, fnE, oC); };this.ChangePassword = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "ChangePassword", p0, p1, fnS, fnE, oC); };this.DeleteFacebookUser = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "DeleteFacebookUser", fnS, fnE, oC); };this.DeleteProfileImage = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "DeleteProfileImage", fnS, fnE, oC); };this.FacebookLinkAccount = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "FacebookLinkAccount", p0, fnS, fnE, oC); };this.FacebookLogOn = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "FacebookLogOn", fnS, fnE, oC); };this.IncrementViewCount = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "IncrementViewCount", p0, fnS, fnE, oC); };this.LogOn = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "LogOn", p0, p1, fnS, fnE, oC); };this.Register = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "Register", p0, p1, fnS, fnE, oC); };this.RemindPassword = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RemindPassword", p0, fnS, fnE, oC); };this.RenderEditPlayerDetailsBlock = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderEditPlayerDetailsBlock", fnS, fnE, oC); };this.RenderInvitePlayersBlock = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderInvitePlayersBlock", p0, fnS, fnE, oC); };this.RenderPlayerDetailsBlock = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderPlayerDetailsBlock", p0, fnS, fnE, oC); };this.RenderShareOnFacebookBlockForRegistration = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderShareOnFacebookBlockForRegistration", fnS, fnE, oC); };this.RenderShareOnFacebookBlockForStatus = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderShareOnFacebookBlockForStatus", p0, p1, fnS, fnE, oC); };this.RenderShareOnTwitterBlock = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderShareOnTwitterBlock", fnS, fnE, oC); };this.RenderUploadPlayerImageBlock = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderUploadPlayerImageBlock", fnS, fnE, oC); };this.UpdateEmailPreferences = function(p0, p1, p2, p3, p4, p5, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdateEmailPreferences", p0, p1, p2, p3, p4, p5, fnS, fnE, oC); };this.UpdatePublishPlayerStatusPreferenceToNever = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdatePublishPlayerStatusPreferenceToNever", fnS, fnE, oC); };this.UpdateFacebookPreferences = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdateFacebookPreferences", p0, fnS, fnE, oC); };this.UpdateDisplayPreferences = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdateDisplayPreferences", p0, p1, p2, fnS, fnE, oC); };this.RenderPostRegistrationBlock = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "RenderPostRegistrationBlock", fnS, fnE, oC); };this.UpdateProfile = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdateProfile", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, fnS, fnE, oC); };this.UpdateTimezoneOffset = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdateTimezoneOffset", p0, fnS, fnE, oC); };this.PublishRegistrationToStream = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "PublishRegistrationToStream", p0, fnS, fnE, oC); };this.PublishPlayerStatusToStream = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "PublishPlayerStatusToStream", p0, p1, p2, fnS, fnE, oC); };this.UpdateTwitterStatus = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.PlayerHandler", "UpdateTwitterStatus", p0, fnS, fnE, oC); };}window.TeamHandler = new TeamHandler();function TeamHandler(){this.CreateTeam = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "CreateTeam", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, fnS, fnE, oC); };this.CreateMessage = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "CreateMessage", p0, p1, fnS, fnE, oC); };this.DeleteMessage = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "DeleteMessage", p0, fnS, fnE, oC); };this.DeleteTeam = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "DeleteTeam", p0, fnS, fnE, oC); };this.GetSearchSuggestions = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "GetSearchSuggestions", p0, fnS, fnE, oC); };this.IncrementViewCount = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "IncrementViewCount", p0, fnS, fnE, oC); };this.InvitePlayers = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "InvitePlayers", p0, p1, p2, fnS, fnE, oC); };this.UpdateFacebookEmail = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "UpdateFacebookEmail", fnS, fnE, oC); };this.JoinTeamAndRender = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "JoinTeamAndRender", p0, fnS, fnE, oC); };this.JoinTeam = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "JoinTeam", p0, fnS, fnE, oC); };this.LeaveTeam = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "LeaveTeam", p0, fnS, fnE, oC); };this.RemovePlayerFromTeam = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "RemovePlayerFromTeam", p0, p1, fnS, fnE, oC); };this.RenderEditTeamDetailsBlock = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "RenderEditTeamDetailsBlock", p0, fnS, fnE, oC); };this.RenderTeamDetailsBlock = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "RenderTeamDetailsBlock", p0, fnS, fnE, oC); };this.RenderTeamMessages = function(p0, p1, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "RenderTeamMessages", p0, p1, fnS, fnE, oC); };this.UpdateTeam = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.TeamHandler", "UpdateTeam", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, fnS, fnE, oC); };}window.GameHandler = new GameHandler();function GameHandler(){this.CreateGame = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "CreateGame", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, fnS, fnE, oC); };this.CreateGameAndTeam = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "CreateGameAndTeam", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, fnS, fnE, oC); };this.CreateRecurringGameAndTeam = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "CreateRecurringGameAndTeam", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, fnS, fnE, oC); };this.CreateRecurringGame = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "CreateRecurringGame", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, fnS, fnE, oC); };this.DeleteGame = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "DeleteGame", p0, fnS, fnE, oC); };this.DeleteRecurringGame = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "DeleteRecurringGame", p0, fnS, fnE, oC); };this.IncrementViewCount = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "IncrementViewCount", p0, fnS, fnE, oC); };this.RenderChooseDeleteGameBlock = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderChooseDeleteGameBlock", p0, fnS, fnE, oC); };this.RenderChooseEditGameBlock = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderChooseEditGameBlock", p0, fnS, fnE, oC); };this.RenderEditGameDetails = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderEditGameDetails", p0, fnS, fnE, oC); };this.RenderEditRecurringGameDetails = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderEditRecurringGameDetails", p0, fnS, fnE, oC); };this.RenderGameDetails = function(p0, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderGameDetails", p0, fnS, fnE, oC); };this.RenderLogOnBlock = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderLogOnBlock", fnS, fnE, oC); };this.RenderRegistrationBlock = function(fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "RenderRegistrationBlock", fnS, fnE, oC); };this.UpdateGame = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "UpdateGame", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, fnS, fnE, oC); };this.UpdatePlayerStatus = function(p0, p1, p2, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "UpdatePlayerStatus", p0, p1, p2, fnS, fnE, oC); };this.UpdateRecurringGame = function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, fnS, fnE, oC) { var o = new HttpRequest(); o.send("InfiniteSports.UI.GameHandler", "UpdateRecurringGame", p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, fnS, fnE, oC); };}

/// Copyright 2002 - 2010 (c) InfiniteSports LLC.  All rights reserved.
///
var profileLocationBox;var page = new ViewPlayerPage();Common.onLoad(page.load);Common.onHashChange(page.hashChange);function ViewPlayerPage(){var self = this;self.playerId = 0;self.profileId = 0;self.blockIds = ["playerDetailsBlock", "editPlayerDetailsBlock", "uploadPlayerImageBlock"];self.currentHash = "";self.websitesTextBox = null;self.commentTextBox = null;self.load = function(){if (self.profileId == 0)return;if (!Common.isNullOrEmpty(document.location.hash))self.hashChange();self.commentTextBox = new ExpandableTextBox("commentTextBox");PlayerHandler.IncrementViewCount(self.profileId);};self.hashChange = function(){if (self.currentHash == document.location.hash)return;switch (document.location.hash){case "#edit":self.renderEditPlayerDetailsBlock();break;case "#upload":self.renderUploadPlayerImageBlock();break;default:self.renderPlayerDetailsBlock();break;}self.currentHash = document.location.hash;};self.createComment = function(){var text = $("commentTextBox").value.trim();if (Common.isNullOrEmpty(text)){Common.focus("commentTextBox");return;}Common.disableElement("commentButton");PlayerHandler.CreateComment(self.playerId,text,self.onCreateCommentSuccess,self.onCreateCommentError);};self.onCreateCommentSuccess = function(request){Common.enableElement("commentButton");$("commentTextBox").value = "";Common.updateBlocks(request);};self.onCreateCommentError = function(request){Common.enableElement("commentButton");Common.showBlockError(request, Common.getContentId(self.blockIds));};self.createProfile = function(){if (!Common.isValidName("txtPlayerName", "playerDetailsBlock"))return;Common.disableElement("saveProfileButton");PlayerHandler.CreateProfile(Common.getVal("txtPlayerName"),Common.getIntVal("selAge"),Common.getVal("txtAliases"),Common.getVal("txtFavoritePlayers"),Common.getVal("txtFavoriteTeams"),profileLocationBox.getText(),profileLocationBox.getValue(),Common.getVal("txtOccupation"),Common.getIntVal("selSex"),Common.getVal("txtWebsites"),Common.navigateResponse,self.onCreateProfileError);};self.onCreateProfileError = function(request){Common.enableElement("saveProfileButton");Common.showBlockError(request, Common.getContentId(self.blockIds));};self.updateProfile = function(){if (!Common.isValidName("txtPlayerName", "playerDetailsBlock"))return;Common.disableElement("saveProfileButton");PlayerHandler.UpdateProfile(Common.getVal("txtPlayerName"),Common.getIntVal("selAge"),Common.getVal("txtAliases"),Common.getVal("txtFavoritePlayers"),Common.getVal("txtFavoriteTeams"),profileLocationBox.getText(),profileLocationBox.getValue(),Common.getVal("txtOccupation"),Common.getIntVal("selSex"),Common.getVal("txtWebsites"),self.onBlockSuccess,self.onCreateProfileError);};self.uploadProfileImage = function(){window.frames["uploadFrame"].document.getElementById("form1").submit();};self.deleteProfileImage = function(){PlayerHandler.DeleteProfileImage(self.onBlockSuccess, self.onBlockError);};self.renderPlayerDetailsBlock = function(){PlayerHandler.RenderPlayerDetailsBlock(self.playerId, self.onBlockSuccess, self.onBlockError);};self.renderEditPlayerDetailsBlock = function(){PlayerHandler.RenderEditPlayerDetailsBlock(self.onRenderEditPlayerDetailsBlockSuccess, self.onBlockError);};self.onRenderEditPlayerDetailsBlockSuccess = function(request){Common.updateContentId("editPlayerDetailsBlock", self.blockIds);Common.updateBlocks(request, Common.getContentId(self.blockIds));self.websitesTextBox = new ExpandableTextBox("txtWebsites");profileLocationBox = new SearchBox("txtProfileLocation");};self.renderUploadPlayerImageBlock = function(){PlayerHandler.RenderUploadPlayerImageBlock(self.onRenderUploadPlayerImageBlockSuccess, self.onBlockError);};self.onRenderUploadPlayerImageBlockSuccess = function(request){Common.updateContentId("uploadPlayerImageBlock", self.blockIds);Common.updateBlocks(request, Common.getContentId(self.blockIds));};self.onBlockSuccess = function(request){Common.updateContentId("playerDetailsBlock", self.blockIds);Common.updateBlocks(request);};self.onBlockError = function(request){Common.showBlockError(request, Common.getContentId(self.blockIds));};}

