/*
Core slideshow related functions
NDM Aug 2008
*/

var BI_OS,BI_browser,BI_version;
function BrowserInfo()
{

var detect = navigator.userAgent.toLowerCase();
var total,thestring;



if (checkIt('konqueror'))
{
	BI_browser = "Konqueror";
	BI_OS = "Linux";
}
else if (checkIt('safari')) BI_browser = "Safari";
else if (checkIt('omniweb')) BI_browser = "OmniWeb";
else if (checkIt('opera')) BI_browser = "Opera";
else if (checkIt('webtv')) BI_browser = "WebTV";
else if (checkIt('icab')) BI_browser = "iCab";
else if (checkIt('firefox')) BI_browser = "Firefox";
else if (checkIt('msie')) BI_browser = "Internet Explorer";
else if (!checkIt('compatible'))
{
	BI_browser = "Netscape Navigator";
	BI_version = detect.charAt(8);
}
else BI_browser = "An unknown browser";

if (!BI_version) BI_version = detect.charAt(place + thestring.length);

if (!BI_OS)
{
	if (checkIt('linux')) BI_OS = "Linux";
	else if (checkIt('x11')) BI_OS = "Unix";
	else if (checkIt('mac')) BI_OS = "Mac";
	else if (checkIt('win')) BI_OS = "Windows";
	else BI_OS = "an unknown operating system";
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}


}//Browser info


/* initialise fader by hiding image object first
addEvent (window,'load',fadeInit)
 Added to cope with back
ScrollPos('artarticle',305);


/* 3rd party helper functions */

/* addEvent handler for IE and other browsers */
function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
 if (elm.addEventListener){
   elm.addEventListener(evType, fn, useCapture);
   return true;
 } else if (elm.attachEvent){
   var r = elm.attachEvent("on"+evType, fn);
   return r;
 }
}

///////////////////////////////////
function showImg(object,val) {
document.getElementById(object).style.visibility = val;
}
///////////////////////////////////


///////////////////////////////////
function HideImg(object) {
document.getElementById(object).style.visibility = 'hidden';
}
///////////////////////////////////
<!--
var message="Not to be copied without permission and credit.";

///////////////////////////////////
function clickIE4()
{
if (event.button==2)
	{
	alert(message);
	return false;
	}
}
//--------------------
function clickNS4(e)
{
if (document.layers||document.getElementById&&!document.all)
{
	if (e.which==2||e.which==3)
		{
		alert(message);
		return false;
		}
	}
}
//--------------------
if (document.layers)
	{
	document.captureEvents(Event.MOUSEDOWN);
	document.onmousedown=clickNS4;
	}
	else
	{
	if (document.all&&!document.getElementById)
		{
		document.onmousedown=clickIE4;
		}
	}

document.oncontextmenu=new Function("alert(message);return false")

function openWin(wName)
   {
	popWin = window.open('',wName,config='');
    return true;
   }
   
   var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else {  // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}

return true;
}

   var sIE = document.all?true:false;
if (!sIE) document.captureEvents(Event.MOUSEOVER)
document.onmouseover = getMouseMXY;
var mtempX = 0;
var mtempY = 0;
function getMouseMXY(e){
if (sIE) { // grab the x-y pos.s if browser is IE
mtempX = event.clientX + document.body.scrollLeft;
mtempY = event.clientY + document.body.scrollTop;
}
else {  // grab the x-y pos.s if browser is NS
mtempX = e.pageX;
mtempY = e.pageY;
}


}

function gCheck(someX)
{
   if (someX==tempX){alert('gotcha');}
}


function pausecomp(millis)
{
date = new Date();
var curDate = null;

do { var curDate = new Date(); }
while(curDate-date < millis);
}

function getDim(el){
	for (var lx=0,ly=0;el!=null;
		lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
	return {x:lx,y:ly}
}

var gstillhere = false;
function overLoop(obj,loopCount,endFunc){

/*
if (loopCount>46){alert(obj.stillhere);}
*/
if (obj.stillhere==false)
{}
else if (loopCount>50)
{
  eval(unescape(endFunc));
}
else
{
 
	loopCount=loopCount+2;
	window.setTimeout("overLoop("+obj.id+","+loopCount+",\'"+endFunc+"\')", 10);
}
}
//  End -->

//////////////////////////////////////////////////////////////////

function Objfader(obj,opacity) {
	/* helper function to deal specifically with images and the cross-browser differences in opacity handling */
	//var obj=theObject;
	if (obj.style.MozOpacity!=null) {
		/* Mozilla's pre-CSS3 proprietary rule */
		obj.style.MozOpacity = (opacity/100) - .001;
	} else if (obj.style.opacity!=null) {
		/* CSS3 compatible */
		obj.style.opacity = (opacity/100) - .001;
	} else if (obj.style.filter!=null) {
		/* IE's proprietary filter */
		obj.style.filter = "alpha(opacity="+opacity+")";
	}
}

function FadeDownObj(theObjName,opacity,finalOpacity) {
		if (opacity > finalOpacity) {
			//alert(theObjName);
           objId=xDOM(theObjName,0);
			
			Objfader(objId,opacity); 
			opacity -= 3; /* was 10 */
			clearTimeout(theObjName.theT);
			theObjName.theT=window.setTimeout("FadeDownObj('"+theObjName+"',"+opacity+","+finalOpacity+");", 2);  /* wae 30 */
		} else {
				clearTimeout(theObjName.theT);
				/*hde*/
				setObjVis(theObjName,'hidden');
		}
		

}


var gZULoop=0;
var gZUDone=false;
var gZUTotalLoop=5;
var gZoomTimeOutInterval=5;
var gMapDone=false;
var	gZoomCase=false;

function DummyFunction(theBoj){
  if (document.getElementById(theBoj))
  {
    someStr=document.getElementById(theBoj).width;
  }
  else
  {
    alert('else');
  someStr=theBoj.width;
  }
  
  alert(someStr);
}

function ZoomUp(obj,zULoop,startSizeWidth,startSizeHeight,startPosLeft,startPosTop,endSizeWidth,endSizeHeight,endPosLeft,endPosTop,startFade,endFade,endLayer,holdingDiv,thePage,endFunc)
		{

             //window.status="zu "+obj+" hd "+holdingDiv;
			gZUDone=false;
			if (zULoop<1){moveObjLayer(holdingDiv,endLayer); showImg(holdingDiv,'visible'); };

			
			zULoop+=1;

		  if (zULoop <= gZUTotalLoop)
		  	{

            loopF=zULoop/gZUTotalLoop;
            oneMinus=(1-(loopF));

            //setObjVis(obj.id,'hidden');
              
  			posLeft=oneMinus*startPosLeft+loopF*endPosLeft;
			posHeight=oneMinus*startPosTop+loopF*endPosTop;

			moveObjTo(holdingDiv,posLeft,posHeight);
			
		
			//obj.width=oneMinus*startSizeWidth+loopF*endSizeWidth;
			//obj.height=oneMinus*startSizeHeight+loopF*endSizeHeight;
			
			if (obj.width)
			{
				obj.width=oneMinus*startSizeWidth+loopF*endSizeWidth;
				obj.height=oneMinus*startSizeHeight+loopF*endSizeHeight;
			    someObjId=obj.id;
	  		}
	  		else
			{
			  document.getElementById(obj).width=oneMinus*startSizeWidth+loopF*endSizeWidth;
			  document.getElementById(obj).height=oneMinus*startSizeHeight+loopF*endSizeHeight;
			  someObjId=obj;
			}

			
			//document.getElementById(obj.id).style.width =oneMinus*startSizeWidth+loopF*endSizeWidth;


			//setObjVis(obj.id,'visible');

			/*
			fadeVal=oneMinus*startFade+loopF*endFade;
			Objfader(obj,fadeVal);
			*/
			

			//DummyFunction("T"+obj.id+"T");
			//window.setTimeout("DummyFunction('"+someObjId+"');");
			//alert(document.getElementById(someObjId).id+","+holdingDiv);

			window.setTimeout("ZoomUp('"+someObjId+"',"+zULoop+","+startSizeWidth+","+startSizeHeight+","+startPosLeft+","+startPosTop+","+endSizeWidth+","+endSizeHeight+","+endPosLeft+","+endPosTop+","+startFade+","+endFade+","+endLayer+",'"+document.getElementById(holdingDiv).id+"','"+thePage+"','"+endFunc+"')",gZoomTimeOutInterval);
			

	  	    return false;
	  		}
		else
			{
	  		//clearTimeout(theTimer);

	  		zULoop=0;
	  		gZUDone=true;
	  		if (thePage!=""){window.location=thePage;}
	  		if (endFade<=1){showImg(holdingDiv,'hidden');}
			if (endFade>10){showImg(holdingDiv,'visible');}
			eval(endFunc);

			//moveObjLayer(holdingDiv,endLayer);
			
	  		return true;
			}

  		}
  		

//////////////////////////////////////////////////////////////////

function somebits(){
var lloop=0;

   if (j!=0){
     lastj=j-1;}
   else
   {lastj=p-1;}

   document.images.SlideShow1.src = galleryImages[lastj].src;
   //document.images.SlideShow1.title = galleryImages[lastj].title;
   document.images.SlideShow2.src = galleryImages[j].src;

   previousSlideShow=SlideShow1;
   currentSlideShow=SlideShow2;

   j = j + 1
   if (j > (p-1)) j=0
   t = setTimeout('runSlideShow()', slideShowSpeed);
}

//End Slide show

var gText1Left=125;
var gText1Top=120;

var gText2Left=395;
var gText2Top=120;

var gPicPane1Top=120;
var gPicPane1Left=395;

var gcloseCrossImgTop=120;
var gcloseCrossImgLeft=650;

var gmapImgTop=120;
var gmapImgLeft=395;

var gmapCloseCrossImgTop=120;
var gmapCloseCrossImgLeft=650;

var gCurrentCaseObj;
var gCurrentCaseDiv;
var gCurrentTextObj;
var gCurrentTextDiv;
//////////////////////////////////////////////////////////////////////////////////////

function CloseTheMap(thePage)
{
	ZoomUp(mapCloseCrossImg,0,12,12,gmapCloseCrossImgLeft,gmapCloseCrossImgTop,12,12,gmapCloseCrossImgLeft,gmapCloseCrossImgTop,0,0,501,'mapCloseCrossDiv','');
	showImg('mapCloseCrossDiv','hidden');
	ZoomUp(mapImg,0,255,325,gmapImgLeft,gmapImgTop,200,2,145,495,100,0,500,'mapDiv',thePage);
	gMapDone=false;
	
}



function OpenCase(){

var objs=gCurrentCaseObj;

/*if (objs){}
else
{objs = xDOM(gCurrentCaseObj,0);}*/


		showImg('textDiv1','hidden');
		//alert(gCurrentCaseObj.width);
		//window.status="1 "+gCurrentCaseObj+" d "+gCurrentCaseDiv;
		ZoomUp(objs,0,objs.width,objs.height,gCurrentStartCaseLeft,gCurrentCaseStartTop,255,325,gPicPane1Left,gPicPane1Top,100,100,200,gCurrentCaseDiv,'','');
		//window.status="2 "+gCurrentCaseObj;
		ZoomUp(closeCrossImg,0,12,12,gcloseCrossImgLeft,gcloseCrossImgTop,12,12,gcloseCrossImgLeft,gcloseCrossImgTop,0,100,200,'closeBoxDiv','','');
		//window.status="3 "+closeCrossImg;
		ZoomUp(gCurrentTextObj,0,255,325,gText1Left,gText1Top,255,325,gText1Left,gText1Top,0,100,200,gCurrentTextDiv,'','');
		//window.status="4 "+gCurrentTextObj;
		gZoomCase=true;
}

function CloseCase(){
			showImg('textDiv1','visible');
			ZoomUp(closeCrossImg,0,12,12,gcloseCrossImgLeft,gcloseCrossImgTop,12,12,gcloseCrossImgLeft,gcloseCrossImgTop,100,0,200,'closeBoxDiv','','');
			ZoomUp(gCurrentCaseObj,0,gCurrentCaseObj.width,gCurrentCaseObj.height,gPicPane1Left,gPicPane1Top,75,95,gCurrentStartCaseLeft,gCurrentCaseStartTop,100,100,200,gCurrentCaseDiv,'','showImg(holdingDiv,"hidden");');
			ZoomUp(gCurrentTextObj,0,255,325,gText1Left,gText1Top,255,325,gText1Left,gText1Top,100,0,20,gCurrentTextDiv,'','');
			gZoomCase=false;
   			}

function CloseCaseConstantSize(){
  			showImg('textDiv1','visible');
			ZoomUp(closeCrossImg,0,12,12,gcloseCrossImgLeft,gcloseCrossImgTop,12,12,gcloseCrossImgLeft,gcloseCrossImgTop,100,0,200,'closeBoxDiv','','');
			ZoomUp(gCurrentCaseObj,0,gCurrentCaseObj.width,gCurrentCaseObj.height,gPicPane1Left,gPicPane1Top,255,325,gPicPane1Left,gPicPane1Top,100,100,20,gCurrentCaseDiv,'','');
			ZoomUp(gCurrentTextObj,0,255,325,gText1Left,gText1Top,255,325,gText1Left,gText1Top,100,0,20,gCurrentTextDiv,'','');
			gZoomCase=false;
   			}

/////////////////////////////////////////////////////////////////////////////////////

var aDOM = 0, ieDOM = 0, nsDOM = 0
var stdDOM = document.getElementById;
if (stdDOM) aDOM = 1; else {
  ieDOM = document.all;
  if (ieDOM) aDOM = 1; else {
    var nsDOM = (
      (navigator.appName.indexOf('Netscape') != -1)
      && (parseInt(navigator.appVersion) ==4));
    if (nsDOM) aDOM = 1;
  }
  //if ((aDOM == 0) and (ieDOM == 0) and (nsDOM == 0)){alert('nope');}
}
function xDOM(objectId, withStyle) {
var st = ''; if (withStyle) st = '.style';
if (stdDOM)
  return (eval('document.getElementById(objectId)'+st));
if (ieDOM) return (eval('document.all[objectId]'+st));
if (nsDOM) return (document.layers[objectId]);
}

//if (document.getElementById || document.all || document.layers)
//if (document.getElementById && document.createElement)


function setObjVis(objectID,vis) {var objs = xDOM(objectID,1); objs.visibility = vis;}
function toggleObjVis(objectID) {var objs = xDOM(objectID,1); var vis = objs.visibility; objs.visibility = (vis == "visible" || vis == "show") ? 'hidden' : 'visible';}
function moveObjTo(objectID,x,y) {var objs = xDOM(objectID,1); objs.left = x; objs.top = y;}
function moveObjBy(objectID,x,y) {var obj = xDOM(objectID,0);var objs = xDOM(objectID,1); if (obj.offsetLeft != null) {var l = obj.offsetLeft; var t = obj.offsetTop; objs.left = l+x; objs.top = t+y;} else if (objs.pixelLeft != null) {objs.pixelLeft += x; objs.pixelTop += y;} else obj.moveBy(x,y);}
function moveObjLayer(objectID,z) {var objs = xDOM(objectID,1); objs.zIndex = z;}
function objInDivSwapSRC(objectID,srcvalue) { var obj = xDOM(objectID,0);  obj.getElementsByTagName('img').item(0).src=srcvalue; }
function objInDivSwap(objectID,objectID2) { var obj = xDOM(objectID,0);  var obj2 = xDOM(objectID2,0); theimagstr = obj2.src; theimagstrmain = theimagstr.replace('-63x76',''); obj.getElementsByTagName('img').item(0).src = theimagstrmain; }

function AllocObj(theObjName){
 objs=xDOM(theObjName,0);
 return objs;
}

function ScrollPos(id,val){if (document.getElementById(id))	{//alert('id');	document.getElementById(id).scrollTop=document.getElementById(id).scrollTop+val;	document.body.id.scrollTop=document.body.id.scrollTop+val;	}else if (document.body)	{	//alert('bd');	document.body.id.scrollTop=document.body.id.scrollTop+val;	}else	{	window.pageYOffset = window.pageYOffset+val;	}	}


/** This is high-level function. * It must react to delta being more/less than zero. */function handle(delta) {
		//alert('delta');        if (delta < 0)		ScrollPos('artarticle',40);        else		ScrollPos('artarticle',-40);}/** Event handler for mouse wheel event. */function wheel(event){        var delta = 0;
                if (!event) /* For IE. */                event = window.event;        if (event.wheelDelta) { /* IE/Opera. */                delta = event.wheelDelta/120;                /** In Opera 9, delta differs in sign as compared to IE.                 */                if (window.opera)                        delta = -delta;        } else if (event.detail) { /** Mozilla case. */                /** In Mozilla, sign of delta is different than in IE.                 * Also, delta is multiple of 3.                 */                delta = -event.detail/3;        }        /** If delta is nonzero, handle it.         * Basically, delta is now positive if wheel was scrolled up,         * and negative, if wheel was scrolled down.         */        if (delta)                handle(delta);        /** Prevent default actions caused by mouse wheel.         * That might be ugly, but we handle scrolls somehow         * anyway, so don't bother here..         */        if (event.preventDefault)                event.preventDefault();	event.returnValue = false;}