var oDisableUI = false;
var bSpawnsEnabled = true;
var bHeaderLoaded = false;
var loginTimeout;
var bShowFunds = true;

function loginUser() {
	if (oDisableUI) {
		return false;
	}
	if (!parent.frames.bCanTrade) {
		alert(sBrowserIncom);
		return false;
	}
	if (document.forms["loginUserForm"].username.value == "" || document.forms["loginUserForm"].password.value == "") {
		alert(sNoUserName);
		return false;
	}
	else {
		document.getElementById("loginModule").style.display = "none";
		document.getElementById("loginProcessing").style.display = "";
		loginTimeout = setTimeout("cancelLoginAttempt()", 60000);
		return true;
	}
}

function cancelLoginAttempt() {
	clearTimeout(loginTimeout);
	parent.frames["userManager"].location = "about:blank";
	document.location = setLoginTimeOutParam(document.location.href);
}

function checkLoginTimeOut() {
	if (!interfaces_getUserState(oUser)) {
		alert(sLoginTimeout);
	}
}

function setUpUserPrefs(bIsLoggedIn, isSuspended, oNewUserObject, bRefresh) {
 	oNewUser = new cloneObject(oNewUserObject);
	clearTimeout(loginTimeout);
	if (!bIsLoggedIn) {
		document.getElementById("loginProcessing").style.display = "none";
		document.getElementById("logedInModule").style.display = "none";
		document.getElementById("logedInNameModule").style.display = "none";
		document.forms["loginUserForm"].reset();
		document.getElementById("loginModule").style.display = "";
		return alert(isSuspended);
	}
	else {
		if (isSuspended) {
			alert(isSuspended);
		}
		if (bRefresh!="" && !bRefresh) {
			compareUserProfiles(oUser, oNewUser);
		}
 		oUser = new cloneObject(oNewUser);
		if (interfaces_getUserState(oUser)) {
			if (parent.frames['menu'] && parent.frames['menu'].initialiseMyMarkets && !parent.frames['menu'].bCustomMarketsLoaded) {
				parent.frames['menu'].initialiseMyMarkets();
			}
			if (parent.frames['main']) {
				if (parent.frames['main'].frames['exchangePokerMovie']) {
					if (parent.frames['main'].frames['exchangePokerMovie'].XPokerTimerWrapper) {
						parent.frames['main'].frames['exchangePokerMovie'].document.getElementById('XPokerTimerWrapper').style.visibility = "visible";
					}
				}
			}
		}
		document.getElementById("logedInModuleUserName").childNodes.item(0).nodeValue = interfaces_getUserName(oUser);
		setUpdatedBalance(interfaces_getUserAccountBalance(oUser));
		setShowAvailableFunds(oUser);
		document.getElementById("enabledMyAccount").style.display = "";
		document.getElementById("disabledMyAccount").style.display = "none";
		document.getElementById("loginProcessing").style.display = "none";
		document.getElementById("logedInModule").style.display = "";
		document.getElementById("logedInNameModule").style.display = "";
		document.getElementById("loginModule").style.display = "none";
	}
}

function compareUserProfiles(oCurrentUser, oNewUser){
	var oRegex = new RegExp("\\?.*&brand", "gi");
	var sMainURLRewrite = parent.frames['main'].location.href.replace(oRegex,"?timeZone=" + interfaces_getUserTimeZone(oNewUser) + "&region=" + interfaces_getUserRegion(oNewUser) + "&locale=" + interfaces_getUserLocale(oNewUser) + "&brand");
	var oRegex = new RegExp("&currency.*", "gi");
	sMainURLRewrite = sMainURLRewrite.replace(oRegex,"&currency=" + interfaces_getUserCurrency(oNewUser));
	var oRegex = new RegExp("\\?.*&brand", "gi");
	var sMenuURLRewrite = parent.frames['menu'].location.href.replace(oRegex,"?timeZone=" + interfaces_getUserTimeZone(oNewUser) + "&region=" + interfaces_getUserRegion(oNewUser) + "&locale=" + interfaces_getUserLocale(oNewUser) + "&brand");
	var uiController = false
	try{
		uiController = parent.frames['main'].interface_getUIController()
	}catch(x){
		uiController = false
	}
	if((interfaces_getUserLocale(oNewUser) != interfaces_getUserLocale(oCurrentUser)) || (interfaces_getUserRegion(oNewUser) != interfaces_getUserRegion(oCurrentUser)) || (interfaces_getUserTimeZone(oNewUser) != interfaces_getUserTimeZone(oCurrentUser))){
		if(uiController){
			if(parent.frames['main'].interface_getUIControllerMarket() instanceof parent.frames['main'].interface_getCouponModel()) parent.frames['main'].location = "/betting/MarketView.do?ci="+parent.frames['main'].interface_getUIControllerMarketId()+""
			else parent.frames['main'].location = "/betting/MarketView.do?mi="+parent.frames['main'].interface_getUIControllerMarketId()+""
		}
		else{
			parent.frames['main'].location.replace(sMainURLRewrite);
		}
		parent.frames['menu'].location.replace(sMenuURLRewrite);
		parent.frames['header'].location.reload();
	}
	else if (interfaces_getUserCurrency(oNewUser) != interfaces_getUserCurrency(oCurrentUser)) {
		parent.frames['main'].location.replace(sMainURLRewrite);
		parent.frames['header'].location.reload();
	}
	else {
		if (parent.frames['main']) {
			if (uiController) {
				parent.frames['main'].interface_setUserPreferences(oNewUser);
			}
			else {
				parent.frames['main'].location.replace(sMainURLRewrite);
			}
		}
	}
}

/*
*	Find the html element by it's id.  Set it to whatever the user's preference is saved as.
*/
function setShowAvailableFunds(oUser) {
	var showAvailableFunds = getShowAvailableFundsCookie(oUser);
	document.getElementById("showHideFunds").checked = showAvailableFunds;
	document.getElementById("logedInModuleAvailableFunds").childNodes.item(0).style.display = (showAvailableFunds)?"inline":"none";
}

/*
*	utility function
*/
function setShowAvailableFundsCookie(oUser, value) {
	SetCookie(interfaces_getUserAccountID(oUser), "UserPreferencesShowAvailableFunds", value);
}

/*
*	If the cookie value has not yet been set then default to true and return the value
*/
function getShowAvailableFundsCookie(oUser) {
	if(GetCookie("UserPreferencesShowAvailableFunds", interfaces_getUserAccountID(oUser)) == "") {
		setShowAvailableFundsCookie(oUser, true);
	}
	return GetCookie("UserPreferencesShowAvailableFunds", interfaces_getUserAccountID(oUser)) == "true" ? true : false;
}

function setUpdatedBalance(iFunds) {
	document.getElementById("logedInModuleAvailableFunds").childNodes.item(0).innerHTML = iFunds;
}

function getQueryStringInfo() {
	var queryStringInfo = 
				"?timeZone=" +
				GetCookie("betexTimeZoneSessionCookie", "") +
				"&region=" +
				GetCookie("betexRegionSessionCookie", "") +
				"&locale=" +
				GetCookie("betexLocaleSessionCookie", "") +
				"&brand=" +
				GetCookie("betexBrand", "") + 
				"&currency=" +
				GetCookie("betexCurrencySessionCookie", "");
	return queryStringInfo;			
}

function logoutUser(oDefaultUser, canIgnoreRedraw) {
	adjustLoginUI();
	if (parent.frames['main'].frames['exchangePokerMovie']) {
		if (parent.frames['main'].frames['exchangePokerMovie'].XPokerTimerWrapper) {
			parent.frames['main'].frames['exchangePokerMovie'].document.getElementById('XPokerTimerWrapper').style.visibility = "hidden";
		}
	}
	document.forms["loginUserForm"].reset();
	oUser = new cloneObject(oDefaultUser);
	var uiController = false;
	try{
		uiController = parent.frames['main'].interface_getUIController();
	}catch(x){
		uiController = false;
	}
	if(!canIgnoreRedraw){
		parent.frames['main'].document.location = sMainAction + getQueryStringInfo();
	}else{
		if(parent.frames['main'] && uiController){
			parent.frames['main'].interface_sessionTimeout(oUser);
		}
	}
	if(interfaces_getUserLocale(oUser) != interfaces_getUserLocale(oDefaultUser) || interfaces_getUserRegion(oUser) != interfaces_getUserRegion(oDefaultUser)){
		parent.frames['menu'].location.reload();
	}
	if (parent.frames['menu']) {
		if (parent.frames['menu'].mySkeletonString) {
			parent.frames['menu'].mySkeletonString = "";
			parent.frames['menu'].myMarketsString = "";
		}
	}
}

function cloneObject(what) {
    for (i in what) {
        if (typeof what[i] == 'object') {
            this[i] = new cloneObject(what[i]);
        }
        else
            this[i] = what[i];
    }
}

function sessionTimeOut(sMsg, oDefaultUser) {
	alert(sMsg);
	logoutUser(oDefaultUser, true)
}

function adjustLoginUI() {
	bUserIsLogedIn = false;
	document.getElementById("loginModule").style.display = "";
	document.getElementById("logedInModule").style.display = "none";
	document.getElementById("logedInNameModule").style.display = "none";
	document.getElementById("enabledMyAccount").style.display = "none";
	document.getElementById("disabledMyAccount").style.display = "";
	if (parent.frames['menu']) {
		parent.frames['menu'].bCustomMarketsLoaded = false;
		if (parent.frames['menu'].switchTab) {
			parent.frames['menu'].switchTab(1);
		}
	}
}

function showHideAvailableFunds(oUser) {
	if(oDisableUI) return
	if (document.forms[0].showHideFunds.checked) {
		bShowFunds = true;
	}
	else {
		bShowFunds = false;
	}
	document.getElementById("logedInModuleAvailableFunds").childNodes.item(0).style.display = (bShowFunds)?"inline":"none";
	document.getElementById("refreshBalanceLink").childNodes.item(0).style.display = (bShowFunds)? "inline" : "none";
	setShowAvailableFundsCookie(oUser, bShowFunds);
	bShowFunds = (bShowFunds)?false:true;
}

function exitCheck() {
	if (parent.frames['userManager']) {
		parent.frames['userManager'].location.href="/account/login/ExitSpawns.do";
	}
}

//gets called when there ARE unmatched bets
function confirmMyAccountSpawn() {
	if(confirm(sAccountSpawnConfirmation)) {
		launchMyAccount(6, true);
	} 
	else {
		closeMyAccountSpawn();
		if(parent.frames['userManager']) {
			parent.frames['userManager'].location.href = '/account/login/Logout.do';
		}
	}
}

//close the myAccount window or it will be left dangling after user log out.
function closeMyAccountSpawn() {
	closeSpawn('joinNow');	
	closeSpawn('myAccount');
	closeSpawn('myAccountFromRegistration');
}

function launchMyAccount(iTabID, bLogOutOption) {
	var sArgument2 = " ";
	var sArgument3 = " ";
	if (iTabID && iTabID!=null && iTabID!="") {
		sArgument2 = "?tabID="+iTabID;
	}
	if (bLogOutOption && bLogOutOption!=null && bLogOutOption!="") {
		sArgument3 = "&logout="+bLogOutOption;
		spawn('myAccount', sMyAcountSSL, sArgument2, sArgument3);
	}
	else if (spawn('myAccount', sMyAcountSSL, sArgument2, sArgument3)) {
		try {
			spawn('myAccount', sMyAcountSSL, sArgument2, sArgument3).switchTabs(iTabID);
		}catch(x){
		
		}
	}
}

function getHelp(sKey, sAnchor) {
	spawn('help', sKey, sAnchor);
}

function refreshBalance() {
	if(oDisableUI) return
	if (parent.frames['userManager']) {
		parent.frames['userManager'].location.href="/account/RefreshExposureAction.do";
	}
}

function initialiseMenuMyMarkets() {
	if (parent.frames['menu']) {
		if (parent.frames['menu'].bMenuLoaded) {
			if (parent.frames['menu'].initialiseMyMarkets) {
				parent.frames['menu'].initialiseMyMarkets();
			}
		}
	}
}

function newTermsAndConditions() {
	clearTimeout(loginTimeout);
	top.location.href = "/account/termsandconditions/NotifyOfChanges.do";
}

function changeLanguage() {
	if(oDisableUI) return

	var sValue = document.forms[0].languageSelector.options[document.forms[0].languageSelector.selectedIndex].value;
	var sLocale = sValue.split(",")[0];
	var sRegion;
	if (sValue.indexOf(",") != -1) {
		var sRegion = sValue.split(",")[1];
	}
	if (!sRegion) {
		top.location.href= "/?pi.localeId=" + sLocale;
	}
	else {
		top.location.href= "/?pi.localeId=" + sLocale + "&pi.regionId=" + sRegion;
	}
}

function showLoginMessages() {
	clearTimeout(loginTimeout);
	top.location.href = "/account/login/LoginMessagesContainer.do";
}

function noTermsAndConditionsUpgrade() {
	document.getElementById("loginProcessing").style.display = "none";
	document.getElementById("logedInModule").style.display = "none";
	document.getElementById("logedInNameModule").style.display = "none";
	document.forms["loginUserForm"].reset();
	document.getElementById("loginModule").style.display = "";
}

function goHome() {
	if(oDisableUI) return
	if (parent.frames['main']) {
		parent.frames['main'].location.href = sMainAction + getQueryStringInfo();
	}
}

function checkMessagesStatus() {
	if (oDisableUI) {
		document.getElementById("loginModule").style.display = "none";
		document.getElementById("logedInModule").style.display = "";
		document.getElementById("logedInNameModule").style.display = "";
	}
}

function setPokerLinkVisibility() {
 	var pokerVisible = false;
 	pokerVisible = (GetCookie("betexPtk").indexOf("AUS_NZL") == -1) ? true : false;
 	pokerVisible = GetCookie("betexPtkSess").indexOf("ritz") == -1 ? pokerVisible : false;
 	if (pokerVisible) {
		document.getElementById("pokerLink").style.visibility = "visible";
	}
	else {
		document.getElementById("pokerLink").style.visibility = "hidden";
	}
}

try{
	interface_registerJSResource("frontpageHeader");
}catch(x){
	
}// JavaScript Document