var website = 1;
var season;
var juniors = false;
var schools = false;
var shortMonthList = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var longMonthList = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var daysOfWeekList = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var shortDaysOfWeekList = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];

// push for IE5 (from www.quirksmode.org)
function Array_push()
{
	var A_p = 0
	for (A_p = 0; A_p < arguments.length; A_p++)
	{
		this[this.length] = arguments[A_p]
	}
	return this.length;
}
// pop for IE5 
function Array_pop()
{
	lastElement = this[this.length-1];
	this.length = Math.max(this.length-1,0);
	return lastElement;
}

function showHide( id, flag )
{
	var obj = document.getElementById(id);
	if( obj != null )
		obj.style.display = flag?"":"none";
}

function parseSearchString( search )
{
	var commandList = {};
	var i, tokens, cmdList = search.split("&");
	if( cmdList && cmdList.length > 0 )
	{
		for( i=0; i<cmdList.length; i++ )
		{
			tokens = cmdList[i].split("=");
			if( tokens && tokens.length == 2 )
				commandList[tokens[0].toLowerCase()] = tokens[1].toLowerCase();
		}
	}
	return commandList;
}

function toDateTime(dateObj, dateOnly)
{
	var o = [];
	if( dateObj != null )
	{
		o.push( formatInt(dateObj.getDate(),2) );
		o.push( "/" );
		o.push( formatInt(dateObj.getMonth()+1,2) );
		o.push( "/" );
		o.push( dateObj.getFullYear() );
		if( dateOnly != true )
		{
			o.push( " " );
			o.push( formatInt(dateObj.getHours(),2) );
			o.push( ":" );
			o.push( formatInt(dateObj.getMinutes(),2) );
		}
	}
	return o.join("");
}

function getFrame( frameID )
{
	var obj = document.getElementById(frameID);
	if( obj == null )
		return null;
	return obj.contentWindow;
}

function GetTeamName( teamID )
{
	var teamList = parent.getTeamList();
	var teamObj = teamList[teamID];
	return teamObj == null ? "" : teamObj.clubName + " " + teamObj.teamName;
}

function GenerateMailHref(HrefObj, ref, Subject ){
	if( Subject == null ) {
		HrefObj.href="mail"+"to:" + em[ref] + "@" + ISP[ref];
	} else {
		HrefObj.href="mail"+"to:" + em[ref] + "@" + ISP[ref] + '?subject=' + Subject;
	}
}


// CODE FROM BROWSERDETECT.JS
// ==========================

// Card Status Flags
var CardNotEntered = 0;
var CardSubmittedFlag = 1;
var CardRejectedFlag = 2;
var CardReSubmittedFlag = 3;
var CardEnteredByAdminFlag = 4;
var CardConfirmedFlag = 5;

// Fixture Status Values
var FixtureNotSet = 0;
var FixtureCancelled = 1;
var FixtureSet = 2;
var ScoreOnlyEntered = 3;
var PartialCardEntered = 4;
var FullCardEntered = 5;
	
// Walkover State Values
var NoWalkover = 0;
var HomeWalkover = 1;
var AwayWalkover = 2;
var VoidMatch = 3;

// Competition Types
var ctMens = 1;
var ctLadies = 2;
var ctMixed = 3;
var ctMedley = 4;

// Team Player Flags
var TeamCaptainFlag = 1;
var NominatedPlayerFlag = 2;
var TeamPlayerActive = 4;

// System Setting Types
var SystemSettingTypeInt = 0;
var SystemSettingTypeFloat = 1;
var SystemSettingTypeText = 2;
var SystemSettingTypeDate = 3;
var SystemSettingTypeBit = 4;
var SystemSettingTypeMemo = 5;
var SystemSettingTypeFK = 6;
var SystemSettingTypePerm = 7;

	// Match Card Actions
var MatchCardActionEnterFixture = 1;
var MatchCardActionEditFixture = 2;
var MatchCardActionCancelFixture = 3;
var MatchCardActionEnterScore = 4;
var MatchCardActionEditScore = 5;
var MatchCardActionDeleteScore = 6;
var MatchCardActionEnterCard = 7;
var MatchCardActionEditCard = 8;
var MatchCardActionRejectCard = 9;
var MatchCardActionConfirmCard = 10;
var MatchCardActionDeleteCard = 11;
var MatchCardActionUnconfirmCard = 12;

// League Registration Status Values
var LeagueRegNone = 0;
var LeagueRegPending = 1;
var LeagueRegRejected = 2;
var LeagueRegConfirmed = 3;

var thestring;
var vBrowser;
var TRinline = "inline";
var TDinline = "inline";

function trimString( s )
{
	var endIndex = s.length-1;
	for( ; endIndex>0; endIndex-- )
	{
		if( s.charAt(endIndex) > ' ' )
		{
			endIndex++;
			break;
		}
	}
	var startIndex = 0;
	for( ; startIndex<endIndex; startIndex++ )
	{
		if( s.charAt(startIndex) > ' ' )
			break;
	}
	return s.substr(startIndex,endIndex-startIndex);
}

function decodeUserAgent()
{
	var data = {browser:"",version:"",os:""};
	var detect = replaceAll( navigator.userAgent, "(", ";" );
	detect = replaceAll( detect, ")", ";" );
	var tokens = detect.split( ";" );
	data.engine = tokens[0];
	var token;
	for( var x=0; x<tokens.length; x++ )
	{
		token = new String(tokens[x]);
		token = trimString( token );

		if( token.toLowerCase().substr(0,5) == "gecko" )
		{
			var toks = token.split(" ");
			for( var i=1; i<toks.length; i++ )
				tokens.push( toks[i] );
		}

		if( token.toLowerCase().substr(0,4) == "msie" )
		{
			data.browser = "Internet Explorer";
			data.version = token.substr(5);
		}
		if( token.toLowerCase().substr(0,6) == "safari" && data.browser == "" )
		{
			data.browser = "Safari";
		}
		if( token.toLowerCase().substr(0,5) == "opera" )
		{
			data.browser = "Opera";
		}
		if( token.toLowerCase().substr(0,5) == "avant" )
		{
			data.browser = "Avant";
		}
		if( token.toLowerCase().substr(0,12) == "greenbrowser" )
		{
			data.browser = "GreenBrowser";
		}
		if( token.toLowerCase().substr(0,7) == "deepnet" )
		{
			data.browser = "Deepnet Explorer";
			data.version = token.substr(17);
		}
		if( token.toLowerCase().substr(0,7) == "version" )
		{
			data.version = token.substr(8);
		}
		if( token.toLowerCase().substr(0,7) == "firefox" )
		{
			data.browser = "Firefox";
			data.version = token.substr(8);
		}
		if( token.toLowerCase().substr(0,5) == "flock" )
		{
			data.browser = "Flock";
			data.version = token.substr(6);
		}
		if( token.toLowerCase().substr(0,6) == "chrome" )
		{
			data.browser = "Chrome";
			data.version = token.substr(7);
		}
		if( token.toLowerCase().substr(0,9) == "navigator" )
		{
			data.browser = "Netscape";
			data.version = token.substr(9);
		}
		if( token.toLowerCase().substr(0,8) == "sleipnir" )
		{
			data.browser = "Sleipnir";
			data.version = token.substr(9);
		}
		if( token.toLowerCase().substr(0,8) == "k-meleon" )
		{
			data.browser = "K-Meleon";
			data.version = token.substr(9);
		}
		if( token.toLowerCase().substr(0,7) == "maxthon" )
		{
			data.browser = "Maxthon";
			data.version = token.substr(8);
		}
		if( token.toLowerCase() == "konqueror" )
		{
			data.browser = "Konqueror";
		}
		if( token.toLowerCase().substr(0,7) == "windows" )
		{
			data.os = "Windows";
			if( token.toLowerCase().substr(0,14) == "windows nt 5.1" )
				data.os = "Windows XP";
			if( token.toLowerCase().substr(0,14) == "windows nt 5.2" )
				data.os = "Windows 2003 Server";
			if( token.toLowerCase().substr(0,14) == "windows nt 6.0" )
				data.os = "Windows Vista";
			if( token.toLowerCase().substr(0,14) == "windows nt 6.1" )
				data.os = "Windows 7";
		}
		if( token.toLowerCase().substr(0,5) == "linux" )
			data.os = token;
		if( token.toLowerCase() == "x11" )
			data.os = "Unix";
		if( token.toLowerCase().substr(0,9) == "macintosh" )
			data.os = "Macintosh";
	}
	if( data.browser == "" )
		data.browser = "An unknown browser ["+navigator.userAgent+"]";
	if( data.os == "" )
		data.os = "an unknown operating system";
	return data;
}

function BrowserDetect(Display)
{
	browser = decodeUserAgent();

	if( browser.browser == "Safari" && parseFloat( browser.version ) < 5.0 )
	{
		location.href = "Live/NoSafari.htm";
	}

	return browser;
}

//	SOME OLD ROLLOVER.JS CODE
//	=========================

//  Turn off image
function turnOff(ImageName)
{
	var obj = document.getElementById(ImageName);
	if( obj )
		obj.className = "MenuOff";
}

// On mouse over, turn image on
function turnOver(ImageName)
{
	var obj = document.getElementById(ImageName);
	if( obj )
		obj.className = "MenuOn";
}

function initCommon()
{
	// Initialisation code
	if (typeof Array.prototype.push == "undefined")
	{
		Array.prototype.push = Array_push
	}
	if (typeof Array.prototype.pop == "undefined")
	{
		Array.prototype.pop = Array_pop;
	}
	vBrowser = BrowserDetect();
	if( vBrowser.browser == "Internet Explorer" )
	{
		TRinline = "inline";
		TDinline = "inline";
	}
	else
	{
		TRinline = "table-row";
		TDinline = "table-cell";
	}
	if( typeof(document.getElementById) == "undefined" )
	{
		document.getElementById = function(id) {return document.all[id];}
	}
}

function GetVenue( teamID, venueList, teamList )
{
	var clubID = teamList[teamID].clubId;
	return venueList[clubID];
}

function addFilterObj( filterList, homeTeamID, awayTeamID, venueList, teamList, divID )
{
	var obj = filterList[homeTeamID];
	if( !obj )
		filterList[homeTeamID] = {};
	var venuePtr = null;
	if( venueList != null )
		venuePtr = GetVenue( homeTeamID, venueList, teamList );
	if( filterList[homeTeamID][awayTeamID] == null )
		filterList[homeTeamID][awayTeamID] = {homeTeamID:homeTeamID,awayTeamID:awayTeamID,fixture:null,venuePtr:venuePtr,index:-1,divID:divID};
}

function AddFixtureFiltersForDivision( filterList, div, venueList, teamList )
{
	for( var i=0; i<div.teams.length; i++ )
		for( var j=i+1; j<div.teams.length; j++ )
		{
			addFilterObj( filterList, div.teams[i], div.teams[j], venueList, teamList, div.divID );
			addFilterObj( filterList, div.teams[j], div.teams[i], venueList, teamList, div.divID );
		}
}

function AddFixtureFiltersForTeam( filterList, teamObj, venueList, teamList )
{
	if( teamObj )
	{
		var div = divisionList[teamObj.divID];
		for( var i=0; i<div.teams.length; i++ )
		{
			if( div.teams[i] != teamObj.teamID )
			{
				addFilterObj( filterList, teamObj.teamID, div.teams[i], venueList, teamList, teamObj.divID );
				addFilterObj( filterList, div.teams[i], teamObj.teamID, venueList, teamList, teamObj.divID );
			}
		}
	}
}

function getRoot()
{
	var topFrame = null;
	try
	{
		var root = this;
		if( root.ImTheDaddy == true )
			topFrame = root;
		while( root.parent != root )
		{
			if( root.ImTheDaddy == true )
			{
				topFrame = root;
				break;
			}
			root = root.parent;
		}
		if( root.ImTheDaddy == true )
			topFrame = root;
	}
	catch(e)
	{
		topFrame = null;
	}
	return topFrame;
}

function formatMoney( num, showPound )
{
	var n = num.toFixed(2);
	if( showPound )
		return "£" + n;
	return n;
}

function formatDbItem( itemType, fieldValue, nullValue, displayFormat )
{
	var text;
	var output = [];
	if( fieldValue == null )
		output.push( nullValue==null ? "null" : nullValue );
	else
	{
		switch( itemType )
		{
			case "Text":
			case "Memo":
			case "text":
			case "string":
				if( !displayFormat )
					output.push( '"' );
				text = replaceAll(fieldValue,'"','\\"');
				text = replaceAll(text,'\n','\\n');
				text = replaceAll(text,'\r','\\r');
				output.push( text );
				if( !displayFormat )
					output.push( '"' );
				break;
			case "date":
			case "DateTime":
				if( !displayFormat )
					output.push( 'new Date("' );
				output.push( toDateTime(fieldValue) );
				if( !displayFormat )
					output.push( '")' );
				break;
			case "Single":
			case "single":
				output.push( fieldValue.toFixed(2) );
				break;
			default:
				output.push( fieldValue );
				break;
		}
	}
	return output.join("");
}

function mouseMove(ev)
{
	var obj = ev.srcElement;
	if( obj == null ) obj = ev.target;
	if( obj && getRoot )
	{
		var topFrame = getRoot();
		if( topFrame != null && topFrame.move )
			topFrame.move(ev);
	}
}

function onPageFocus( data )
{
	if( (this.editing != true && this.pageDataDirty == true && this.forcePopupFocus != true) || (data != null && data.login == true) )
	{
		window.location.reload( true );
	}
	else
	{
		if( this.onPopupFocus != null )
			this.onPopupFocus( data );
	}
	getRoot().setPageOptions( website, season, juniors, schools );
}

function pageInit( assertPageName )
{
	if( assertPageName != null )
		getRoot().assertMenu( assertPageName );
	if( this.init != null )
		this.init();
}

function urlEncode( str )
{
	var s = replaceAll( str, " ", "&nbsp;" );
	s = replaceAll( s, "&", "&amp;" );
	s = replaceAll( s, "£", "&pound;" );
	s = replaceAll( s, "½", "&frac12;" );
	s = replaceAll( s, "¼", "&frac14;" );
	s = replaceAll( s, "¾", "&frac34;" );
	return s;
}

function urlDecode( str )
{
	var s = replaceAll( str, "&nbsp;", " " );
	s = replaceAll( s, "&amp;", "&" );
	s = replaceAll( s, "&pound;", "£" );
	s = replaceAll( s, "&frac12;", "½" );
	s = replaceAll( s, "&frac14;", "¼" );
	s = replaceAll( s, "&frac34;", "¾" );
	return s;
}

function getActualSeason( season )
{
	switch( season )
	{
		case 0:	return latestSeason==null?2009:latestSeason;
		case 1:	return nextSeason;
		default: break;
	}
	return season;
}

initCommon();

