	var speed=50;
	var scrollMove;
	var loop, timer;
	var initialised;
	var intSliderTrackHeight, intScrollerUpperBound;
	var blnGalleryLoaded, blnImageLargeVisible, intImageDisplayed, strImageLargeSrc;
	var blnGalleryLoaded = false;
	blnImageLargeVisible = false;
	var dd_obj=0, dd_mobj=0;
	strImageLargeSrc = '';

	function ShowImageLarge(ImgNo) {
		objImageFull = new ConstructObject('ImageFull');

		if (!blnGalleryLoaded) LoadGallery();
		if (blnImageLargeVisible && intImageDisplayed==ImgNo) {
			objImageFull.css.visibility="hidden";
			blnImageLargeVisible = false;
		} else {
			objImageFull.css.visibility="visible";

			objImage = new ConstructObject('ImageContent' + ImgNo);
			objImage.el.style.visibility = "inherit";

			if (intImageDisplayed!=null && ImgNo != intImageDisplayed) {
				objImage = new ConstructObject('ImageContent' + intImageDisplayed);
				objImage.el.style.visibility = "hidden";
			}

			blnImageLargeVisible = true;
			intImageDisplayed = ImgNo;
		}
	}

	function HideImageLarge() {
		objImageFull = new ConstructObject('ImageFull');
		blnImageLargeVisible = false;
		objImageFull.css.visibility="hidden"; 
	}

	function ConstructObject(obj,nest) {
		nest = (!nest) ? '':'document.'+nest+'.'
		this.el = bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
		this.css = bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
		this.wref = bw.ns4?this.el.document:this.el;
		this.scrollHeight = bw.ns4?this.css.document.height:this.el.offsetHeight
		this.scrollWidth = bw.ns4?this.css.document.width:this.el.offsetWidth
		this.clipHeight = bw.ns4?this.css.clip.height:this.el.offsetHeight
		this.clipWidth = bw.ns4?this.css.clip.width:this.el.offsetWidth
		this.up = MoveAreaUp;
		this.down = MoveAreaDown;
		this.left = MoveAreaLeft;
		this.right = MoveAreaRight;
		this.MoveArea = MoveArea;
		this.evnt = bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;
		this.ref = bw.dom||bw.ie4?document:this.css.document;
		this.x = parseInt(this.css.left)||this.css.pixelLeft||this.evnt.offsetLeft||0;
		this.y = parseInt(this.css.top)||this.css.pixelTop||this.evnt.offsetTop||0
		this.w = this.evnt.offsetWidth||this.css.clip.width||this.ref.width||this.css.pixelWidth||0;
		this.h = this.evnt.offsetHeight||this.css.clip.height||this.ref.height||this.css.pixelHeight||0
		this.c = 0 //Clip values
		if((bw.dom || bw.ie4) && this.css.clip) {
			this.c=this.css.clip; this.c=this.c.slice(5,this.c.length-1);
			this.c=this.c.split(' ');
			for(var i=0;i<4;i++){this.c[i]=parseInt(this.c[i])}
		}
		this.ct = this.css.clip.top||this.c[0]||0;
		this.cr = this.css.clip.right||this.c[1]||this.w||0;
		this.cb = this.css.clip.bottom||this.c[2]||this.h||0;
		this.cl = this.css.clip.left||this.c[3]||0;
		this.obj = obj + "Object";
		eval(this.obj + "=this");
		return this;
	}

	function MoveArea(x,y) {
		this.x=x;
		this.y=y;
		this.css.left=this.x;
		this.css.top=this.y;
	}

	function MoveAreaDown(move) {
		if((this.y - move) > objContainer.clipHeight - this.scrollHeight) {
			this.MoveArea(0, this.y - move)
			objSlider.MoveArea(0, objSlider.y + scrollMove)
			if(loop) setTimeout(this.obj+".down("+move+")",speed)
		}else{
			objSlider.MoveArea(0, objDownControl.y - (parseInt(objSlider.css.height) + 5))
			objScroller.MoveArea("", intScrollerUpperBound);
		}
	}

	function MoveAreaUp(move) {
		if(this.y - move <0) {
			this.MoveArea(0,this.y-move)
			objSlider.MoveArea(0,objSlider.y-scrollMove)
			if(loop) setTimeout(this.obj+".up("+move+")",speed)
		}else{
			objScroller.MoveArea("", intScrollerLowerBound);
			objSlider.MoveArea(0, 15)
		}
	}

	function MoveAreaRight(move) {
		//alert("this.x=" + this.x + ", this.scrollWidth=" + this.scrollWidth + ", objGallery.clipWidth=" + objGallery.clipWidth)
		if(this.x > galleryWidth-this.scrollWidth-20) {
			this.MoveArea(this.x-move,0)
			if(loop) setTimeout(this.obj+".right("+move+")",speed)
		}
	}

	function MoveAreaLeft(move) {
		if(this.x<0) {
			this.MoveArea(this.x-move,0)
			if(loop) setTimeout(this.obj+".left("+move+")",speed)
		}
	}

	function PerformScroll(speed) {
		if(initialised) {
			loop=true;
			if(speed>0) {
				objScroller.down(speed)
			} else {
				objScroller.up(speed)
			}
		}
	}

	function PerformPan(speed) {
		if(initialised) {
			loop=true;
			if(speed>0) {
				objPanner.right(speed)
			} else {
				objPanner.left(speed)
			}
		}
	}

	function CeaseScroll() {
		loop = false
		if(timer) clearTimeout(timer)
	}

	function CeasePan() {
		loop = false
		if(timer) clearTimeout(timer)
	}

	function InitialiseScrollableArea() {
		objContainer = new ConstructObject('divContainer')
		objScroller = new ConstructObject('divContent','divContainer')
		objScrollbar = new ConstructObject('divSlider','divContainerMargins')
		objSlider = new ConstructObject('divSlider','divContainerMargins')
		objGallery = new ConstructObject('divGallery')
		objPanner = new ConstructObject('divPictures','divGallery')
		objPictures = new ConstructObject('tblPictures')
		objDownControl = new ConstructObject('divDownControl')
		objScrollBar = new ConstructObject('divScrollbar')
		objLeftControl = new ConstructObject('divLeftControl')
		objRightControl = new ConstructObject('divRightControl')
		objScroller.MoveArea(0, 0)

		objScrollbar.drag();

		if (objPanner.scrollWidth > 0) {
//		alert("Make the text area smaller | " + divDownControl.style.x)
			scrollerHeight = scrollerHeightDefault - galleryHeight - 10;
			objDownControl.css.top = scrollerHeight - 10;
			objDownControl.y = scrollerHeight - 10;
			objContainer.css.height = scrollerHeight;
			objContainer.clipHeight = scrollerHeight
			objGallery.css.visibility="inherit";
		}

		if (objContainer.clipHeight / objScroller.scrollHeight > 1 || objScroller.scrollHeight < 0 ) {
			objSlider.css.height = scrollerHeight - 30;
			objScrollBar.css.visibility="hidden";
		} else {
			objSlider.css.height = (objContainer.clipHeight / objScroller.scrollHeight) * (scrollerHeight - 30);
			objScrollBar.css.visibility="inherit";
		}

		objSlider.MoveArea(0, 15)
		scrollMove = (scrollerHeight - 30) / ((objScroller.scrollHeight) / 7)
		objPanner.MoveArea(0, 0)
		//alert(objGallery.clipWidth + " / " + objPanner.scrollWidth + " = " + (objGallery.clipWidth / objPanner.scrollWidth))

		objPanner.scrollWidth = objPictures.scrollWidth;
		if (objGallery.clipWidth / objPanner.scrollWidth < 1) {
			objGallery.css.left = '30px';
			galleryWidth = galleryWidthDefault - 20;
			objGallery.css.clip = 'rect(0px ' + (galleryWidth - 20) + 'px ' + galleryHeight + 'px 0px)';
			objLeftControl.css.visibility = "inherit";
			objRightControl.css.visibility = "inherit";
		}

		intScrollerLowerBound = 0;
		intScrollerUpperBound = objContainer.clipHeight - objScroller.scrollHeight;
		intSliderTrackHeight = objDownControl.y - 20;
		initialised = true;
	}

	function displayStatusMsg(msgStr) {
		status=msgStr;
		document.returnValue = true;
	}

	function swapImgRestore() {
		var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}

	function findObj(n, d) {
		var p,i,x;
		if (!d) d=document;
		if ((p=n.indexOf("?"))>0&&parent.frames.length) {
			d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
		}
		if (!(x=d[n])&&d.all) x=d.all[n];
		for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
		return x;
	}

	function swapImage() {
		var i,j=0,x,a=swapImage.arguments; document.sr = new Array; for(i=0;i<(a.length-2);i+=3)
		 if ((x=findObj(a[i]))!=null) {document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}

	function slideContent(intSCLeft,intSCChange) {
		objContainerMargins = new ConstructObject('divContainerMargins');
		objContainerBackground = new ConstructObject('divContainerBackground');
		if (((intSCChange < 0) && (intSCLeft >= scrollerPosLeft)) || ((intSCChange > 0) && (intSCLeft <= 780))) {
			objContainerMargins.css.left = intSCLeft;
			objContainerBackground.css.clip='rect(' + scrollTopClip + 'px ' + (scrollerWidth + intSCLeft - scrollerPosLeft + scrollHorizClip) + 'px ' + scrollBottomClip + 'px ' + (intSCLeft - scrollerPosLeft + scrollHorizClip) + 'px)';
			//alert('intSCLeft='+intSCLeft+'; scrollerPosLeft='+scrollerPosLeft+'; scrollerWidth='+scrollerWidth+'; rect(10px ' + (scrollerWidth + intSCLeft - scrollerPosLeft) + 'px 435px ' + (intSCLeft - scrollerPosLeft) + 'px)');
			setTimeout('slideContent(' + (intSCLeft+intSCChange) + ',' + intSCChange + ');', 5);
		} else {
			if (intSCLeft >= 780){
				objContainerBackground.css.visibility="hidden";
				objContainerMargins.css.visibility="hidden";
			}
		}
	}

	function ShowScrollingArea(src) {
		objContainerBackground.css.visibility="visible";
		objContainerMargins.css.visibility="visible";
		objOpener = new ConstructObject('divOpenControl');
		objOpener.css.visibility = 'hidden';
		document.cookie = "FNAcookie=ScrollAreaVis:visible";
		slideContent(780,-10);
	}

	function HideScrollingArea() {
		objOpener = new ConstructObject('divOpenControl');
		objOpener.css.visibility = 'visible';
		document.cookie = "FNAcookie=ScrollAreaVis:hidden";
		slideContent(scrollerPosLeft,10);
	}

	function ShowAdvancedSearch(src) {
		objAdvancedSearch = new ConstructObject('divAdvancedSearch');
		if (objAdvancedSearch.css.visibility == 'visible') {
			objAdvancedSearch.css.visibility = 'hidden'
			document.cookie = "FNAcookie=AdvancedSearch:hidden";
		} else {
			objAdvancedSearch.css.visibility = 'visible'
			document.cookie = "FNAcookie=AdvancedSearch:visible";
		}
	}

	function readTheCookie(name) {
		if (document.cookie == '') {
			return false;
		} else {
			var firstChar, lastChar;
			var theBigCookie = document.cookie;
			firstChar = theBigCookie.indexOf(name);
			// find the start of 'name'
			if (firstChar != -1) {
				firstChar += name.length + 1; 
				// skip 'name' and '='
				lastChar = theBigCookie.indexOf(';', firstChar);
				// Find the end of the value string (i.e. the next ';').
				if(lastChar == -1) lastChar = theBigCookie.length;
				return unescape(theBigCookie.substring(firstChar, lastChar));
			} else {
				return false;
			}
 	}
	}

	function reloadPage(init) {	//reloads the window if Nav4 resized
		if (init==true) with (navigator) {
			if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
				document.pgW=innerWidth;
				document.pgH=innerHeight;
				onresize=reloadPage;
			}
		} else if (innerWidth!=document.pgW || innerHeight!=document.pgH)
		location.reload();
	}

	ConstructObject.prototype.drag = function(obj){
	 if(bw.ns4){
	 document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP)
	 }
	 document.onmousemove=DragAreaMove;
	 document.onmousedown=lib_dd_down
	 document.onmouseup=lib_dd_up

	 this.evnt.onmouseover = new Function("lib_dd_over("+this.obj+")")
	 this.evnt.onmouseout = new Function("dd_mobj=0")
	 if(obj) this.ddobj=obj
	}

	function DragAreaMove(e,y,rresize){
		var ScrollerMove;

	 x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
	 y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
	 if(dd_obj){
			ny=y-dd_obj.clY;
			ScrollerMove = -((ny - 15)) * objScroller.scrollHeight / (intSliderTrackHeight);

			if(ny < 15) {
				ny = 15;
				ScrollerMove = intScrollerLowerBound;
			}

			if( (parseInt(objSlider.css.height) + ny) >= objDownControl.y - 5) {
				ny = objDownControl.y - (parseInt(objSlider.css.height) + 5);
				ScrollerMove = intScrollerUpperBound;
			}

			if(objScroller.y <= intScrollerLowerBound && objScroller.y >= intScrollerUpperBound) {
				objScroller.MoveArea("", ScrollerMove);
	 	if(dd_obj.ddobj) dd_obj.ddobj.MoveArea("",ny)
	 	else dd_obj.MoveArea("",ny)
			}
	 }
	 if(!bw.ns4) return false
	}

	function lib_dd(){
	 if(bw.ns4){
	 document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP)
	 }
	 document.onmousemove=lib_dd_move;
	 document.onmousedown=lib_dd_down
	 document.onmouseup=lib_dd_up
	}

	ConstructObject.prototype.dragdrop = function(obj){
		lib_dd()
	 this.evnt.onmouseover = new Function("lib_dd_over("+this.obj+")")
	 this.evnt.onmouseout = new Function("dd_mobj=0")
	 if(obj) this.ddobj=obj
	}

	//Drag drop event functions
	function lib_dd_over(obj){dd_mobj=obj}
	function lib_dd_up(e){dd_obj=0; if(bw.ns4) routeEvent(e)}
	function lib_dd_down(e){ //Mousedown
	 if(dd_mobj){
	 x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
	 y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
	 dd_obj=dd_mobj
	 dd_obj.clX=x-dd_obj.x; 
	 dd_obj.clY=y-dd_obj.y
	 }
	 if(bw.ns4) routeEvent(e)
	}

	function lib_dd_move(e,y,rresize){ //Mousemove
	 x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
	 y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
	 if(dd_obj){
	 nx=x-dd_obj.clX; ny=y-dd_obj.clY
	 if(dd_obj.ddobj) dd_obj.ddobj.MoveArea("",ny)
	 else dd_obj.MoveArea("",ny)
	 }
	 if(!bw.ns4) return false 
	}

	reloadPage(true);