/* rcc.js		File containing general scripts for Redbridge CC
	Created by Questronics Computing Service
*/

var ns4 = document.layers
var ie4 = document.all
var ns6 = document.getElementById && !document.all
var isOpera = (navigator.userAgent.indexOf("Opera") != -1)
var isNav = ((ns4 || ns6) && !isOpera)
var isIE = (!isNav && !isOpera)
var isWeb = (document.location.href.toLowerCase().indexOf("http") != -1) 
var BrowserName, Browser, BrowserVersion, BrowserFullVersion, ClientPlatform
with (navigator) {
	BrowserName = appName
	Browser = appVersion
	ClientPlatform = platform
	BrowserCode = appCodeName
	BrowserAgent = userAgent
}

var ie5 = false
if (isIE) {
	BrowserFullVersion = parseFloat(BrowserAgent.substr(BrowserAgent.indexOf('MSIE') + 5))
	ie5 = (BrowserFullVersion >= 5)
	BrowserFullVersion = BrowserFullVersion.toString(10)
} else { BrowserFullVersion = BrowserAgent.substr(BrowserAgent.indexOf('Netscape') + 8) }
var is40 = (BrowserFullVersion.indexOf("4.0") != -1)
var just = (ie5 || ns6)
//just=false
var screen800 = (screen.availWidth <= 800)

var i = 0
var host = document.location.href.toLowerCase() 
//alert(host)
//if (host.indexOf("www") != -1) {
if (isWeb) {
	i = host.indexOf("fsnet.co.uk") 
	if (i != -1) {
//alert("http://www.RedbridgeCC.org.uk" + host.substr(i+11))
		self.document.location.href = "http://www.RedbridgeCC.org.uk" + host.substr(i+11)
	}
	i = host.indexOf("supanettrial.com") 
	if (i != -1) {
		self.document.location.href = "http://www.RedbridgeCC.org.uk" + host.substr(i+16)
	}
	i = host.indexOf("questronics.co.uk") 
	if (i != -1) {
		self.document.location.href = "http://www.RedbridgeCC.org.uk" + host.substr(i+17)
	}
}

// EMAIL ADDRESSES //

var Emails = new Array()

var i = 0
Emails[i++] = new Data ("President", "President", "Vic Carroll", "viccarroll100@yahoo.co.uk", "01992 561214" )
Emails[i++] = new Data ("Vice-President", "Vice-President", "Thomas Moore", "twmoore@btinternet.com", "01708 767254" )
Emails[i++] = new Data ("Chairman", "Chairman", "George Mulliner", "g.mulliner@ntlworld.com", "01992 523535" )
Emails[i++] = new Data ("GenSec", "General Secretary", "Alan M. Osborne", "osborne41@talktalk.net", "020 8599 0455", "020 8599 0291" )
Emails[i++] = new Data ("ClubTTSec", "Weekend Club Events Co-Ordinator", "Trevor Benson", "trevor.benson@btinternet.com", "01708 723897" )
Emails[i++] = new Data ("ClubEVSec", "Club Time Trial Secretary (Evening Series)", "Roger Smith", "rogersmith166@hotmail.com", "01992 524631" )
Emails[i++] = new Data ("OpenTTSec", "Open Time Trial Secretary", "Trevor Benson", "trevor.benson@btinternet.com", "01708 723897" )
Emails[i++] = new Data ("PressSec", "Press Secretary", "Paul O'Kelly", "paulokelly@btopenworld.com", "01277 356000" )
Emails[i++] = new Data ("MagEditor", "Magazine Editor", "Stewart Fung", "stewartfung@hotmail.com", "01371 823043" )
Emails[i++] = new Data ("SocialSec", "Social Secretary", "Wendy Benson", "wendy.june@btinternet.com", "01708 723897" )
Emails[i++] = new Data ("Treasurer", "Treasurer", "Ed Pheby", "edpheby@tiscali.co.uk", "01992 572635" )
Emails[i++] = new Data ("MemberSec", "Membership Secretary", "Roger Smith", "rogersmith166@hotmail.com", "01992 524631", "", "166 High Road, North Weald, Epping, Essex, CM16 6BZ" )
Emails[i++] = new Data ("RunsSec", "Sunday Runs Secretary", "Steve Smith", "steve@smith7061.freeserve.co.uk", "020 8500 6657" )
Emails[i++] = new Data ("RunsSecSat", "Saturday Runs Secretary", "George Mulliner", "g.mulliner@ntlworld.com", "01992 523535" )
Emails[i++] = new Data ("RRSec", "Road Race Secretary", "Brad Pearman", "bradp759@aol.com", "01371 821893" )
Emails[i++] = new Data ("WebMaster", "Webmaster", "Alan Osborne", "WebMaster@RedbridgeCC.org.uk", "020 8599 0455", "020 8599 0291" )
Emails[i++] = new Data ("WebConsultant", "WebConsultant", "Keith West", "west@questronics.co.uk", "", "" )
Emails[i++] = new Data ("Eric Angell", "Eric Angell", "Eric Angell", "EricJohnAngell@aol.com", "01702 711384")
Emails[i++] = new Data ("Alan Flutter", "Alan Flutter", "Alan Flutter", "", "020 8505 8104")

Emails[i++] = new Data ("EccaGenSec", "General Secretary", "Peter Beresford", "", "020 8989 5551" )
Emails[i++] = new Data ("EccaPres", "President", "Val Hester", "", "01953 717556", "" )
Emails[i++] = new Data ("EccaChair", "Chairman", "Alan M. Osborne", "osborne41@talktalk.net", "020 8599 0455", "020 8599 0291" )
Emails[i++] = new Data ("EccaTreasurer", "Treasurer", "Daryl Leese", "leese@dmfl.fsnet.co.uk", "01277 230595" )
Emails[i++] = new Data ("EccaRRSec", "Road Records Secretary", "Peter Smith", "smithepping@hotmail.com", "01992 573591" )
Emails[i++] = new Data ("EccaTrackSec", "Track Secretary", "to be appointed", "", "" )
//Emails[i++] = new Data ("EccaTrackSec", "Track Secretary", "Andrew Ballentyne", "andrewb@eurobase-systems.com", "01277 221538" )
Emails[i++] = new Data ("EccaArchivist", "ECCA Archivist", "Diana Freeman", "diana@bazfree.freeserve.co.uk", "01379 668749" )
Emails[i++] = new Data ("FestivalOrg", "Festival Organiser", "Alan M. Osborne", "alan@osborne-41.freeserve.co.uk", "020 8599 0455", "020 8599 0291" )
Emails[i++] = new Data ("EccaViceChair", "Vice-Chairman", "Trevor Pedley", "", "01708 228677" )
Emails[i++] = new Data ("EccaAsstSec", "Asst. Gen. Secretary and Awards Secretary", "Peter Wermerling", "", "020 8500 3316" )
Emails[i++] = new Data ("EccaMarshalSec", "Marshalling Secretary", "Joan Potts", "Cyclingpotts@aol.com", "01245 354884" )
Emails[i++] = new Data ("EccaBARSec", "B.A.R. Secretary", "Michael Purvis", "", "01277 840120" )
Emails[i++] = new Data ("EccaSocialSec", "Social Secretary", "Trevor Pedley", "", "01708 228677" )
Emails[i++] = new Data ("EccaWebMaster", "Webmaster", "Alan M. Osborne", "WebMaster@RedbridgeCC.org.uk", "020 8599 0455", "020 8599 0291" )
Emails[i++] = new Data ("PhilWhitehorn", "Phil Whitehorn", "Phil Whitehorn", "phil@whitehorn.freeserve.co.uk")
Emails[i++] = new Data ("RichardParrotte", "Richard Parrotte", "Richard Parrotte", "richard.parrotte@instonehq.com", "01245 421088" )
Emails[i++] = new Data ("AlisonPuddle", "Alison Puddle", "Alison Puddle", "Alison.Puddle@redbridge.gov.uk", "020 8708 3087" )

var webSites = new Array()

i = 0
webSites[i] = new linkItem(i, 'bcf', "British Cycling", "http://www.britishcycling.org.uk", "British Cycling (ex-Federation)")
webSites[i].hint = " ~&nbsp;the co-ordinating body for U.K. based cycle sport"
webSites[i++].desc = "Official Website of British Cycling Federation. Includes Major Event Rankings and Category Rankings. "
	+ "Also details on WCPP and general matters."

webSites[i] = new linkItem(i, 'ctt', "C.T.T.", "http://www.cyclingtimetrials.org.uk", "Cycling Time Trials (ex-RTTC)")
webSites[i].hint = " ~&nbsp;the controlling body for time trialling in the U.K."
webSites[i++].desc ="Official Website of Cycling Time Trials. Includes Results of National Championships and British B.A.R. Competitions "
	+ "and latest Competition Records. Also archive information and details on general matters."

webSites[i] = new linkItem(i, 'ctc', "Cyclists\' Touring Club", "http://www.ctc.org.uk", 'C.T.C.')
webSites[i].hint = ""
webSites[i++].desc = "Official Website of the Cyclists\' Touring Club. A site full of information on Environmental issues as well as general club matters."

webSites[i] = new linkItem(i, 'ecca', "E.C.C.A.", "http://www.EasternCounties.org.uk", "<nobr>Eastern Counties <wbr>Cycling Association</nobr>")
webSites[i].hint = " ~&nbsp;provides East Anglian-based time trialling competitions, road racing and track events"
webSites[i++].desc ="Website for Eastern Counties Cycling Association"

webSites[i] = new linkItem(i, "Yahoo", "Yahoo", "http://uk.dir.yahoo.com/Recreation/Sport/Cycling/", "Yahoo's cycling pages")
webSites[i].hint = " ~&nbsp;a good place to start for general information about cycling"
webSites[i++].desc =""

webSites[i] = new linkItem(i, "Cyber", "Cyber", "http://www.cycling.org/", "Cyber Cyclery")
webSites[i].hint = " ~&nbsp;a good introduction to cycling resources on the web"
webSites[i++].desc =""

var wText = "Please note that the Hamilton Pine Rivers Wheelers' Website is temporarily off-line whilst the new Webmaster re-constructs and re-launches the Site. "
	+ "An announcement will be made on this page directly we are informed that it is on-line again."
webSites[i] = new linkItem(i, "Hamilton", "www.hamiltonwheelers.com", "http://www.hamiltonwheelers.com", "Hamilton Pine Rivers Wheelers", "images/hamilton_logo.gif", 120, 130)
//webSites[i].url = "javascript:alert(wText)"
webSites[i].hint = " ~&nbsp;our sister club in Australia"
webSites[i++].desc =""

/*
webSites[i] = new linkItem(i, "WorldMasters", "www.members.shaw.ca/worldtt/", "http://www.members.shaw.ca/worldtt/", "World Masters", "", 120, 130)
webSites[i].hint = " ~&nbsp;co-ordinators of the World Masters Time Trial Challenge"
webSites[i++].desc =""
*/

webSites[i] = new linkItem(i, "WorldMasters", "www.edmontonmasterscyclingclub.ca/worldtt/", "http://www.edmontonmasterscyclingclub.ca/worldtt/", "World Masters", "", 120, 130)
webSites[i].hint = " ~&nbsp;co-ordinators of the World Masters Time Trial Challenge"
webSites[i++].desc =""

webSites[i] = new linkItem(i, "Apibikes", "Apibikes.com", "http://www.apibikes.com", "Apibikes.com")
webSites[i].hint = ""
webSites[i++].desc =""

webSites[i] = new linkItem(i, "DeLaune", "De Laune CC", "http://www.delaunecc.org", "De Laune C.C.")
webSites[i].hint = ""
webSites[i++].desc =""

webSites[i] = new linkItem(i, "Glendene", "Glendene CC", "http://www.glendenecc.org.uk", "Glendene C.C.")
webSites[i].hint = ""
webSites[i++].desc =""

webSites[i] = new linkItem(i, "Shaftesbury", "Shaftesbury CC", "http://www.shaftesburycc.co.uk", "Shaftesbury C.C.")
webSites[i].hint = ""
webSites[i++].desc =""

webSites[i] = new linkItem(i, "ERRL", "Eastern Road Race League", "http://www.errl.org.uk", "E.R.R.L.")
webSites[i].hint = " ~&nbsp;details of Essex Road Race League events and results"
webSites[i++].desc =""

webSites[i] = new linkItem(i, "lcc", "LCC", "http://www.lcc.org.uk", "London Cycling Campaign")
webSites[i].hint = " ~&nbsp;campaigning to make London a cycling city"
webSites[i++].desc =""

var ns4 = document.layers
var ie4 = document.all
var ns6 = document.getElementById && !document.all
var isOpera = (navigator.userAgent.indexOf("Opera") != -1)
var isNav = ((ns4 || ns6) && !isOpera)
var isIE = (!isNav && !isOpera)

function Data(position, title, name, address, tel, fax, home) {
	this.position = position
	this.title = title
	this.name = name
	this.address = ((address == 'undefined') ? "" : address)
	this.tel = ((tel == 'undefined') ? "" : tel)
	this.fax = ((fax == 'undefined') ? "" : fax)
	this.home = ((home == 'undefined') ? "" : home)
}

function linkItem(no, id, title, url, name, src, width, height) {
	this.no = no
	this.name = name
	this.title = title
	this.alt = id
	this.id = id
	this.url = url
	this.src = ((src == null) || (src == "") || (src == "undefined")) ? "" : src
	this.width = ((width == null) || (width == "") || (width == "undefined")) ? 0 : width
	this.height = ((height == null) || (height == "") || (height == "undefined")) ? 0 : height
	this.desc = ''
	this.hint = ''
}

function writeEmail(posn,extra,doc,subject) {
	var i, titl='', cText = '<b>Email details not available</b>'
	var obj = eval(((doc == null) || (doc == "") || (doc == "undefined")) ? 'document' : 'doc.document')
	var subj = (((subject == null) || (subject == "") || (subject == "undefined")) ? 'Response from ' + obj.title : subject)
	var dek_exists = checkDek(obj)
	for (i = 0; i < Emails.length; i++) {
		if (Emails[i].position.toLowerCase() == posn.toLowerCase()) {
			titl=hardSpace(Emails[i].title)
			cText = '<a href="mailto:' + Emails[i].address + '?subject=' + subj + '"'
			if (dek_exists) { cText += ' onmouseover="popupMsg(\'Click to E-mail<br>' + titl + '\')" onmouseout="killMsg()" ' }
			else { cText += ' title="Click to E-mail ' + titl + '"' }
			cText += '>' + ((extra == 'name') ? Emails[i].name : ((extra == 'title') ? titl :  '<nobr>' + Emails[i].address)) + '</nobr>' + '</a>'
			if (Emails[i].address == '') { 
				switch (extra) {
					case 'name':
						cText = '<a name="' + posn + '">' + hardSpace(Emails[i].name) + '</a>'
						break
					case '-email':
						cText = titl
						break
					default:
						cText = ''
				}
			}
			break
		}
	}
	obj.write(" " + cText)
}

function writeWebsite(id, extra, doc, nHint) {
	var i, x, cText = 'Website Address details not available', wText, linkID
	var shoHint = (((nHint == null) || (nHint == "") || (nHint == "undefined") || (typeof nHint != "number")) ? 0 : nHint)
//// nHint = 0 - don't show hint; 1 - show hint; -1 - show hint but load into top document
	var cTarget = ((nHint == -1) ? ' target="_top" ' : ' target="new" ')
	var obj = eval(((doc == null) || (doc == "") || (doc == "undefined")) ? 'document' : 'doc.document')
	var dek_exists = checkDek(obj)
	for (i = 0; i < webSites.length; i++) {
		linkID = webSites[i].id.toUpperCase()
		if (linkID == id.toUpperCase()) {
			wText = ((extra == '-id') ? linkID : webSites[i].title) + " Website"
			x = wText.indexOf("'")
			if (x > 0) { wText = wText.substring(0, x) + "\\" + wText.substr(x) }
			while ((x = wText.indexOf(" ")) >= 0) {
				wText=wText.substring(0,x)+'&nbsp;'+wText.substr(x+1)
			}
			wText = "Click to open " + wText
			cText = '<a href="' + webSites[i].url + '"' + ((webSites[i].url.toLowerCase().indexOf("javascript") == -1) ? cTarget : "")
			if (dek_exists) { cText += ' onmouseover="popupMsg(\'' + wText + '\')" onmouseout="killMsg()"' }
			else { cText += ' title="' + wText + '"' }
			cText +='>'
			switch (extra) {
				case "id":
					cText += linkID
					break
				case "title":
					cText += webSites[i].title
					break
				case "url":
					cText += webSites[i].url
					break
				case "img":
					cText += '<img src="' + getDir("redbridge") + webSites[i].src + '" width=' + webSites[i].width + ' height=' + webSites[i].height +'>' 
					break
				default:
					cText += webSites[i].name
			}
			cText += '</a>' + ((shoHint == 0) ? "" : webSites[i].hint)
			break
		}
	}
//if (shoHint == -1) alert(cText)
	obj.write(cText)
}

function hardSpace(text) {
	do { text = text.replace(' ', '&nbsp;') } while (text.indexOf(" ") != -1)
	return text
}

function writeDetails(posn, extra, doc, space) {
	var i, text, cText = '<b>Details not available</b>'
	var obj = eval(((doc == null) || (doc == "") || (doc == "undefined")) ? 'document' : 'doc.document')
	var space1 = ''
	if ((space == null) || (space == 'undefined')) { space1 = '' }
	else if ((typeof space == 'string') && (space == '-')) { space1 = ' - ' }
	else if (typeof space != 'boolean') { space1 = '' }
	else { space1 = '&nbsp;&nbsp;' }
	var dek_exists = checkDek(obj)
	for (i = 0; i < Emails.length; i++) {
		if (Emails[i].position.toLowerCase() == posn.toLowerCase()) {
			if	(extra.toLowerCase() == "email") {
				text = 'Email:&nbsp;'
				cText = Emails[i].address
				if ((cText != "") && (cText != null) && (cText != "undefined")) { 
					titl=hardSpace(Emails[i].title)
					cText = '<i>' + text + '</i><a href="mailto:' + Emails[i].address + '"'
					if (dek_exists) { cText += ' onmouseover="popupMsg(\'Click to E-mail<br>' + titl + '\')" onmouseout="killMsg()" ' }
					else { cText += ' title="Click to E-mail ' + titl + '"' }
					cText += '><nobr>' + Emails[i].address + '</nobr>' + '</a>' + space1
				}
				else { cText = "" }
			} else {
				switch (extra.toLowerCase()) {
					case "name":
						text = ''
						cText = Emails[i].name
						if ((space1 == ' - ') && (Emails[i].address == '') && (Emails[i].tel == '')) { space1 = '' }
						break
					case "tel":
						text = 'Tel:&nbsp;'
						cText = Emails[i].tel
						break
					case "fax":
						cText = ''
//						break	//		THIS DISABLES FAX NO'S
						text = 'Fax:&nbsp;'
						cText = Emails[i].fax + '<br>'
						break
					case "home":
						cText = ''
						text = '&nbsp;'
						cText = Emails[i].home
						break
				}
				if ((cText != "") && (cText != null) && (cText != "undefined")) { cText = "<i>" + text + "</i>" + hardSpace(cText) + space1 }
				else { cText = "" }
			}
		}
	}
//alert('[*'+cText+'*]')
	obj.write(cText)
}

function writeInfo(posn, doc, override) {
	if ((override == null) || (override == 'undefined')) { override = false }
	var obj = ((parent.banner) ? parent.banner : self)
	with (obj) {
		writeDetails(posn, "tel", doc, true)
		if (override) { writeDetails(posn, "fax", doc, true) }
		writeDetails(posn, "email", doc, true)
	}
}

function displayTitle(colour, image, year) {
	var diry = ((isNav) ? getDir("redbridge") : '')
	diry = ""		// added 22/05/08 to stop diry being made "/"
//alert(parent.banner.document.images.title.src)
//alert(diry)
	var titl = diry + "t_" + colour + "/" + image
//alert(titl)
	if (parent.banner && parent.banner.document.images.title) { 
		parent.banner.document.images.title.src=titl
//alert(parent.banner.document.images.title.src)
//alert(parent.banner.document.images.title.width)
	}
	if ((year != null) && (year != 'undefined') && (typeof year == 'number')) {
		if (parent.banner && parent.banner.document.images.title2) { 
			titl = diry + "t_" + colour + "/" + parseInt(year) + ".gif"
			parent.banner.document.images.title2.src=titl
		}
//alert(parent.banner.document.images.title2.src)
//alert(parent.banner.document.images.title.width)
	}
/*
with(parent.banner.getObj("title1").style) {
	alert('t='+top+'  l='+left+'  v='+visibility+'  z='+zIndex+'  w='+width+'  h='+height)
}
*/
}

function displayVisitors(site) {
	var siteName, siteDate
	var vis="hidden"
	var countColor="ff00ff"
	if (parent.main && (parent.main.document.location.href.indexOf("ecrra") != -1) && (site.toUpperCase() == "ECCA")) { site="ecrra" }
	switch (site.toUpperCase()) {
		case "REDBRIDGE":
			siteName="RedbridgeCyclingClub"
			siteDate="September 2001"
			countColor="ff0000"
			vis="visible"
			break
		case "ECCA":
			siteName="ECCA"
			siteDate="March 2002"
			vis="visible"
			break
		case "ECRRA":
			siteName="ECRRA"
			siteDate="March 2002"
			break
	}
	var cText='<img align=right id=counter src="http://counter.digits.com/wc/-d/4/-c/2/-f/' + countColor +'/-b/ffffff/' + siteName + '" width=60 height=20 '
		+ 'title="Number of Visitors since ' + siteDate + '">'
//alert(cText)
//	if (document.location.href.toLowerCase().indexOf("www") != -1) { vis="hidden" }
//	if (document.location.href.toLowerCase().indexOf("www") != -1) { 
		if (parent.banner) {
			obj=eval('parent.banner.document.' + ((ns6) ? 'getElementById' : 'all') + '("visitorNo")')
			if (obj) { 
				obj.style.visibility = vis; 
				if (isWeb) { obj.innerHTML=cText; }
			}
			obj=eval('parent.banner.document.' + ((ns6) ? 'getElementById' : 'all') + '("visitor")')
			if (obj) { obj.style.visibility = vis; obj.innerHTML=((vis == "hidden") ? "" : "Visitor") }
			obj=eval('parent.banner.document.' + ((ns6) ? 'getElementById' : 'all') + '("webcounter")')
			if (obj) { obj.style.visibility = vis }
		}
//	}
}

function showFooter(colour, doc, bg) {
	var obj = eval(((doc == null) || (doc == "") || (doc == "undefined")) ? 'document' : 'doc.document')
	var background = (((bg == null) || (bg == "") || (bg == "undefined")) ? "white" : bg)
	var cText, color2
	switch (colour.toLowerCase()) {
		case "yellow":
			color2 = "#fff000"
			break
		case "green":
			color2 = "#00ff00"
			break
		case "white":
			color2 = "black"
			break
		case "mauve":
			color2 = "#ff00ff"
			break
		default:
			color2 = colour
	}

/*  superimposed images - for animated gifs */
	var diry = getDir("redbridge")
	var image2 = diry + "images/cycling for all.gif"
	var image1 = diry + "images/Redbridge Footer.gif"
	cText = '<table width=100% cellpadding=0 cellspacing=0 bgcolor=' + background + '><tr><td width=100%>'
		+ '<hr style="background-color:' + color2 + '" color="' + color2 + '" width=100% size=3>' 
		+ '<div align=center><img src="' + image1 + '">'
		+ '<div style="position:relative; top:-38px; text-align:center; z-index:75;"><img src="' + image2 + '"></div>'
		+ '</div><p></td></tr></table>'
//alert(cText)
	obj.write(cText)
}

function showResult(raceName, year, srch) {
	var race = raceName.toLowerCase()
	var isFunction = false
	var skipYear = ((typeof year == 'number') && (year == -1))
	if (race.substring(0,1) == '*') {
		isFunction = true
		race = race.substr(1)
	}
	if ((year == null) || (year == 'undefined') || ((typeof year == 'string') && (year == "")) || ((typeof year == 'number') && (year <= 0))) {
		var now = new Date()
		year = now.getFullYear()
	} else { year = unescape(year) }
	if ((srch == null) || (srch == 'undefined') || (srch == "") || (typeof srch != 'string')) { srch = "" }
	else { srch = "?" + unescape(srch) }
	var cText = getDir("redbridge") + "competitive/" + (skipYear ? "" : year + "/") + race + "_frame.html" + srch
	if (isFunction) { return unescape(cText) }
	parent.document.location=unescape(cText)
}

function showEcca(pageName) {
	var page = pageName.toLowerCase()
	parent.document.location=getDir("redbridge") + "ecca/ecca_" + page + "_frame.html"
}

function getDir(web) {
	var pName = self.document.location.href.toLowerCase()
	var cDir = '', pName2
	var x = -1, y = -1
	if ((web != null) && (web != "") && (web != "undefined")) { x = pName.indexOf(web.substr(0,5).toLowerCase()) }
	if (x < 0) { return cDir }
	pName = pName.substr(x) 
	if ((pName.indexOf('/') == -1) && (pName.indexOf('\\') == -1)) { return cDir }
	for (x=1; x<pName.length; x++) {
		if ((pName.substr(x,1) == "/") || (pName.substr(x,1) == "\\")) {
			y++
			if (y>0) { cDir += '../' }
		}
	}
//alert(cDir)
	return cDir
}

function checkDek(obj) {
	var dek_exists
	var obj = ((obj == null) || (obj == "") || (obj == "undefined")) ? eval('document') : obj
	if (ns4) { dek_exists = obj.dek }
	else if (ns6) { dek_exists = obj.getElementById("dek") }
	else if (ie4) { dek_exists = obj.all.dek }
//alert(dek_exists)
	return dek_exists
}

function getObj(name, doc) {
	return eval('document.' + ((ns6 || isOpera) ? 'getElementById' : 'all') + '("' + name +'")')
}

function documentSize(typ) {
	var xbody = ((isIE) ? document.body.clientWidth : self.innerWidth)
	if (isIE) {
		xbody = document.body.clientWidth
		ybody = document.body.clientHeight
	} else {
		xbody = self.innerWidth
		ybody = self.innerHeight
	}
alert(xbody)
	return ((typ == 'w') ? xbody : ybody)
}

function AddSuffix(val) {
	var num = val, suff='th'
	if ((isNaN(num)) || (typeof num == 'string')) { num = parseInt(num) }
	var n = num % 100
	if ((n < 11) || (n > 13)) {
		switch (num % 10) {
			case 1:
				suff = 'st'
				break
			case 2:
				suff = 'nd'
				break
			case 3:
				suff = 'rd'
				break
		}
	}
	return num.toString(10) + suff
}

function newWindow(file, typ) {
	if ((file == null) || (file == '')) { return }
	var isFunction = false
	if (file.substring(0,1) == '*') {
		isFunction = true
		file = file.substr(1)
	}
	if (file.toUpperCase().indexOf('.HTM') == -1) { file += '.html' }
	var cText, nheight = 650, nwidth = 800
	nheight += 30
	if (screen.availWidth <= 850) {
		nheight = 500
		nwidth = screen.availWidth - 80
	}
	if ((typ == null) || (typ == "undefined")) { typ = " " }
	switch (typ.toLowerCase()) {
		case "w":
			cText = 'screenX=40,screenY=50,titlebar,alwaysRaised=1,scrollbars,status,resizable'
			break
		case "tt":
			cText = 'width=750,height=650,screenX=40,screenY=40,titlebar,alwaysRaised=1,scrollbars,status,resizable'
			break
		case "ew":
			cText = 'width=850,height=685,screenX=40,screenY=40,titlebar,alwaysRaised=1,scrollbars,status,resizable'
			break
		default:
			cText = 'width=' + nwidth + ',height=' + nheight + ',screenX=40,screenY=50,titlebar,alwaysRaised=1,scrollbars,status,resizable,menubar'
			break
	}
//alert(file)
//	if (isFunction) { return unescape(cText) }
//	parent.document.location=unescape(cText)

	formPopup = window.open(file,'Report',cText)
	if (formPopup) { formPopup.focus() }
}

function repositionReport(typ) {
	if (parent.document.frames.length == 0) {
	var wWidth, wHeight, leftSS, topSS = 10
	var frameWidth = (isIE) ? document.body.clientWidth : self.innerWidth
	var frameHeight = (isIE) ? document.body.clientHeight : self.innerHeight
	wHeight =((frameHeight > (screen.availHeight -20)) ? (screen.availHeight -20) : frameHeight + 52)
	wHeight =screen.availHeight -20
	wWidth = ((frameWidth > screen.availWidth) ? screen.availWidth : frameWidth + 25)
	leftSS = Math.max(0, ((screen.availWidth - wWidth) / 2))
	window.moveTo(leftSS, topSS)
//	if ((typ == null) || (typ == 'undefined') || (typ != 'ew')) { window.resizeTo(wWidth, wHeight) }
	window.resizeTo(wWidth, wHeight)
	}
}

function nmemonic(old) {
	var x, c, news=""
	for (x = 0; x < old.length; x++) {
		c = old.charCodeAt(x) - 128
		if (c < 0) { c += 128 }
		news += String.fromCharCode(c)
	} 
	return news
}

function decode(oldString, type) {
	var x, c, newstring=""
	if (typeof type != "string") { type='e' }
	for (x = 0; x < oldString.length; x++) {
		c = oldString.charCodeAt(x)
		if (type=="e") { c += 128 }
		if (type=="d") {
			c += -128
			if (c < 0) { c += 128 }
		}
		newstring += String.fromCharCode(c)
	} 
	return newstring
}

function loadImage(id, locn) {
	id=nmemonic(id)
	getObj(id).src=nmemonic(locn) + id + ".jpg"
}

function loadPlainImage(id, locn) {
	getObj(id).src=locn + id + ".jpg"
}

function getPhotoPath(number) {
	var cPath = ''
	var num = (((number != null) && (number != "") && (number != undefined) && !isNaN(number)) ? number : "")
	var host = document.location.hostname.toLowerCase()
//alert(host)
	if (isWeb) {
		if (host.indexOf("questronics") != -1) { 
			cPath = "http://" + host + '/RccPhotos/gallery' 
				+ (((number == "") || isNaN(number) || (number == undefined) || (number == "undefined")) ? '' : number) + '/' 
		} else {
			if ((number == "") || isNaN(number) || (number == undefined) || (number == "undefined")) { 
				cPath = 'http://www.RccPhotos.fsnet.co.uk/gallery/'
			} else { 
				cPath = 'http://www.RccPhotos-' + number + '.fsnet.co.uk/gallery' + number + '/' 
			}
		}
//alert('['+number+']  '+cPath)
		return cPath
	}
	var pName = document.location.href
	var pName2 = pName.toLowerCase()
//alert(pName2)
	var x = pName2.indexOf('redbridge')
	var webPhotos = false
	if (x <= 0) {
		x = pName2.indexOf('rccphotos')
		if (x >= 0) { webPhotos = true }
	}
	var pRoot = pName
	if (x > 0) { 
		pRoot = pName.substring(0, x)
		pName = pName.substr(x) 
	}
	cPath = pRoot + "RccPhotos/gallery" + (isNaN(num) ? "" : num) + "/"
//alert(cPath)
	return cPath
}

function getPhoto(locn, titl, wdth, algn, styl) {
	var x, hght="", cPath, cText, num = ""
	if ((locn == null) || (locn == "") || (locn == "undefined")) { return }
	if ((titl == null) || (titl == "") || (titl == "undefined")) { titl = "" }
	if ((wdth == null) || (wdth == "") || (wdth == "undefined")) { wdth="" }
	if (wdth != "") {
		x = wdth.toLowerCase().indexOf("h")
		if (x != -1) { 
			hght = parseInt(wdth.substr(x+1)) 
			wdth = wdth.substring(0,x)
		}
		x = wdth.toLowerCase().indexOf("w")
		if (x != -1) { wdth = parseInt(wdth.substr(x+1)) }
	}
	if ((algn == null) || (algn == "") || (algn == "undefined")) { algn = "" }
	if ((styl == null) || (styl == "") || (styl == "undefined")) { styl = "" }
	x = locn.indexOf("/")
	if ((x>0) && (!isNaN(locn.substr(x-1,1)))) { num = locn.substr(x-1,1) }
	cPath = getPhotoPath(num) + locn.substr(x+1) 
	cText = '<img src="' + cPath + '"' 
		+ ((titl == "") ? "" : ' title="' + titl + '"')
		+ ((wdth == "") ? "" : ' width="' + wdth + '"') 
		+ ((hght == "") ? "" : ' height="' + hght + '"') 
		+ ((algn == "") ? "" : ' align="' + algn + '"') 
		+ ((styl == "") ? "" : ' style="' + styl + '"')
		+ '>'
//alert(cText)
	document.write(cText)
}

function modalWindow(message,type,mwidth,mheight){
	if (ie5) {
		while (message.indexOf('\n\n') != -1) { message = message.replace('\n\n','<p>') }
		while (message.indexOf('\n') != -1) { message = message.replace('\n','<br>') }
		var cText = 'help:0;status:0;resizable:0;scrollbars:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px;center:yes'
//alert(getDir('eastern')+"alert.html")
		ans = window.showModalDialog(getDir('redbridge')+"alert.html",message+';'+type,cText)
	} else {
		while (message.indexOf('<p>') != -1) { message = message.replace('<p>','\n\n') }
		while (message.indexOf('<br>') != -1) { message = message.replace('<br>','\n') }
		switch(type) {
			case 'alert':
				alert(message)
				ans = 1
				break
			case 'confirm':
			case 'yes/no':
				ans = confirm(message,'Yes')
				break
		}
	}
	return ans
}

//Pop up information box II (Mike McGrath (mike_mcgrath@lineone.net,  http://website.lineone.net/~mike_mcgrath))
//Permission granted to Dynamicdrive.com to include script in archive
//For this and 100's more DHTML scripts, visit http://dynamicdrive.com

msg_Xoffset = 0;    // modify these values to ...
msg_Yoffset = 20;    // change the popup position.

var msg_skn
var msg_yyy = -1000;
var dek_exists

function msgPopup() {
	if (ns4) { dek_exists = document.dek }
	else if (ns6) { dek_exists = document.getElementById("dek") }
	else if (ie4) { dek_exists = document.all.dek }
	if (dek_exists) {
		if (ns4) { msg_skn = document.dek }
		else if (ns6) { msg_skn = document.getElementById("dek").style }
		else if (ie4) { msg_skn = document.all.dek.style }
		if (ns6) { document.captureEvents(Event.MOUSEMOVE) }
		if (ns4) { document.captureEvents(Event.MOUSEMOVE) }
		else {
			msg_skn.visibility = "visible"
			msg_skn.display = "none"
			msg_skn.contents = ""
		}
		document.onmousemove=track;
	}
}

var kill

function popupMsg(msg, bak) {
	if (ns4) { dek_exists = document.dek }
	else if (ns6) { dek_exists = document.getElementById("dek") }
	else if (ie4) { dek_exists = document.all.dek }
	if (!dek_exists) { return }
	if ((bak == null) || (bak == '') || (bak == 'undefined')) { bak = "lightgreen" }
	var content="<table width=150 border=1 bordercolor=black cellpadding=3 cellspacing=0 bgcolor=" + bak
		+ "><tr><td class=dek><font size=2>" + msg + "</font></td></tr></table>"
	msg_yyy = msg_Yoffset
	msg_skn.contents = msg
	 if (ns4) { 
		msg_skn.document.write(content)
		msg_skn.document.close()
		msg_skn.visibility = "visible"
	}
 	if (ns6 || ie4) {
		getObj("dek").innerHTML = content
		msg_skn.display = ''
	}
	kill = window.setTimeout("killMsg()", 3500)
//alert(msg_skn.left+' : '+msg_skn.top+' : '+msg_skn.contents.length+' : '+ (1 + Math.ceil(msg_skn.contents.length / 20)) * 25)
}

function killMsg() {
	window.clearTimeout(kill)
	if (!dek_exists) { return }
	msg_yyy = -1000
	if (ns4) { msg_skn.visibility = "hidden" }
	else if (ns6 || ie4) { msg_skn.display = "none" }
}

var scrollOK = false

function trackMouse() {
	scrollOK = true
	if (ns4) { document.captureEvents(Event.MOUSEMOVE) }
	document.onmousemove=track;
}

var xmouse = 0							// mouse x-coord within element
var ymouse = 0							// mouse y-coord within element
var xscreen = 0							// mouse x-coord within screen
var yscreen = 0							// mouse y-coord within screen
var xbody = 0
var ybody = 0
var xoffset	 = 0							// mouse x offset from left of firing element (eg image)
var yoffset = 0								// mouse y offset from top of firing element (eg image) 
var xclient = 0								// mouse x position relative to frame
var yclient = 0								// mouse y position relative to frame

function track(evt) {
	var y, xm, ym, ypos
	if (isIE) {
		xmouse = event.x
		ymouse = event.y
		xscreen = event.screenX
		yscreen = event.screenY
		xbody = document.body.clientWidth
		ybody = document.body.clientHeight
		xoffset = event.offsetX
		yoffset = event.offsetY
		xclient = event.clientX	
		yclient = event.clientY
		y = ymouse
		xm =document.body.scrollLeft + xclient
		ym = ymouse + document.body.scrollTop
		xpos = xbody - 155
		ypos = ybody + document.body.scrollTop
	} else {
		xmouse = evt.pageX
		ymouse = evt.pageY
		xscreen = evt.screenX
		yscreen = evt.screenY
		xclient = self.pageXOffset
		yclient = self.pageYOffset
		xbody = self.innerWidth
		ybody = self.innerHeight
		y = ymouse - yclient
		xm = xmouse
		ym = ymouse
		xpos = xbody - 165
		ypos = ybody + yclient
	}
	if (msg_skn) {
		var offset = 20 + (1 + Math.ceil(msg_skn.contents.length / 20)) * 25
		msg_skn.left = xm + msg_Xoffset - ((xm > xpos) ? 150 : 0)
		msg_skn.top = ym + msg_yyy - ((ym > (ypos - offset + 20)) ? offset : 0)
//		msg_skn.top = ym + msg_yyy - ((ym > ypos) ? offset : 0)
	}
/*
	parent.window.contacts.document.f.txt.value = 
		'  mX='+xmouse+'    mY='+ymouse+'  cX='+xclient+'  cY='+yclient+' bX='+xbody+' bY='+ybody+'   sX='+xscreen+'   sY='+yscreen
*/
	var gap = 10		//	used to be 25
	if (scrollOK) {
		if (y < gap) { window.scrollBy(0, -10) }
		else if ((ybody - y) < gap) { window.scrollBy(0, 10) }
	}
}


