// Updated to support MOZILLA browsers
//  BUT checking page content is inhibited for non IE always assume just a english content page present
// Modified just to show language layer, not slide it on as CC
//
// This script is used by KSSDEANERY, SEMMED, CC to name a few
		
		CSInit = new Array;
		function CSScriptInit() {
			if(typeof(skipPage) != "undefined") { if(skipPage) return; }
			idxArray = new Array;
			for(var i=0;i<CSInit.length;i++)
				idxArray[i] = i;
			CSAction2(CSInit, idxArray);
		}
		function newImage(arg) {
			if (document.images) {
				rslt = new Image();
				rslt.src = arg;
				return rslt;
			}
		}
		userAgent = window.navigator.userAgent;
		browserVers = parseInt(userAgent.charAt(userAgent.indexOf("/")+1),10);
		mustInitImg = true;

		function initImgID() {
			alert("function initImgID");
			di = document.images;
			if (mustInitImg && di) { 
				for (var i=0; i<di.length; i++) {
					if (!di[i].id) di[i].id=di[i].name; 
				}
				mustInitImg = false;
			}
		}
		
		function findElement(n,ly) {
			d = document;
			if (browserVers < 4)		return d[n];
			if ((browserVers >= 6) && (d.getElementById)) {initImgID; return(d.getElementById(n))}; 
			var cd = ly ? ly.document : d;
			var elem = cd[n];
			if (!elem) {
				for (var i=0;i<cd.layers.length;i++) {
					elem = findElement(n,cd.layers[i]);
					if (elem) return elem;
				}
			}
			return elem;
		}
		function changeImages() {
			d = document;
			if (d.images) {
				var img;
				for (var i=0; i<changeImages.arguments.length; i+=2) {
					img = null;
					if (d.layers) {img = findElement(changeImages.arguments[i],0);}
					else {img = d.images[changeImages.arguments[i]];}
					if (img) {img.src = changeImages.arguments[i+1];}
				}
			}
		}
		CSStopExecution=false;
		function CSAction(array) {
			return CSAction2(CSAct, array);
		}
		
		function CSAction2(fct, array) { 
			var result;
			for (var i=0;i<array.length;i++) {
				if(CSStopExecution) return false; 
				var aa = fct[array[i]];
				if (aa == null) return false;
				var ta = new Array;
				for(var j=1;j<aa.length;j++) {
					if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){
						if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1]];}
						else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));}
						else ta[j]=aa[j];}
					} else ta[j]=aa[j];
				}			
				result=aa[0](ta);
			}
			return result;
		}
		CSAct = new Object;
		// Version 1.1. A Michael Ahgren action.
		function CSRemoveIEbox(){
		if (document.images&&navigator.userAgent.indexOf("MSIE")!=-1){
			for(i=0;i<document.links.length;i++){
				target=eval("document.links[i]")
				target.onfocus=blurHandler
				}
			}
		}

		function blurHandler(){
			obj=window.event.srcElement
			if(obj.tagName == "A"||obj.tagName=="AREA") obj.blur()
		}

		CSAg = window.navigator.userAgent; CSBVers = parseInt(CSAg.charAt(CSAg.indexOf("/")+1),10);
		CSIsW3CDOM = ((document.getElementById) && !(IsIE()&&CSBVers<6)) ? true : false;
		
		function IsIE() { 
			return CSAg.indexOf("MSIE") > 0;
		}
		
		function CSIEStyl(s) {
			//alert("stylea "+s);
			if (typeof(s) == 'object'){
				alert("Problem");
				var s2="";
				for (p in s){
					s2 +="\n"+p+"="+s[p];
				}
				alert(s2);
			}
			return document.all.tags("div")[s].style;
		}
		
		function CSNSStyl(s) {
			//alert("styleb "+s);
			if (CSIsW3CDOM) return document.getElementById(s).style; else return CSFindElement(s,0);  
		}
		
		CSIImg=false;
		function CSInitImgID() {
			if (!CSIImg && document.images) { 
				for (var i=0; i<document.images.length; i++) {
					if (!document.images[i].id) document.images[i].id=document.images[i].name; 
				}
				CSIImg = true;
			}
		}
		
		function CSFindElement(n,ly) { if (CSBVers<4) return document[n];
			if (CSIsW3CDOM) {CSInitImgID();return(document.getElementById(n));}
			var curDoc = ly?ly.document:document; var elem = curDoc[n];
			if (!elem) {for (var i=0;i<curDoc.layers.length;i++) {elem=CSFindElement(n,curDoc.layers[i]); if (elem) return elem; }}
			return elem;
		}
		
		function CSGetImage(n) {
			if(document.images) {
				return ((!IsIE()&&CSBVers<5)?CSFindElement(n,0):document.images[n]);
			} else {
				return null;
			}
		}
		
		CSDInit=false;
		function CSIDOM() { 
			if (CSDInit)return; 
			CSDInit=true;
			if(document.getElementsByTagName) {
				var n = document.getElementsByTagName('DIV');
				for (var i=0;i<n.length;i++) {
					CSICSS2Prop(n[i].id);
				}
			}
		}
		
		function CSICSS2Prop(id) {
			var n = document.getElementsByTagName('STYLE');
			for (var i=0;i<n.length;i++) {
				var cn = n[i].childNodes;
				for (var j=0;j<cn.length;j++) {
					CSSetCSS2Props(CSFetchStyle(cn[j].data, id),id);
				}
			}
		}
		
		function CSFetchStyle(sc, id) {
			var s=sc; while(s.indexOf("#")!=-1) { s=s.substring(s.indexOf("#")+1,sc.length); if (s.substring(0,s.indexOf("{")).toUpperCase().indexOf(id.toUpperCase())!=-1) return(s.substring(s.indexOf("{")+1,s.indexOf("}")));}
			return "";
		}
		
		function CSGetStyleAttrValue (si, id) {
			var s=si.toUpperCase();
			var myID=id.toUpperCase()+":";
			var id1=s.indexOf(myID);
			if (id1==-1) return "";
			s=s.substring(id1+myID.length+1,si.length);
			var id2=s.indexOf(";");
			return ((id2==-1)?s:s.substring(0,id2));
		}
		
		function CSSetCSS2Props(si, id) {
			var el=document.getElementById(id);
			if (el==null) return;
			var style=document.getElementById(id).style;
			if (style) {
				if (style.left=="") style.left=CSGetStyleAttrValue(si,"left");
				if (style.top=="") style.top=CSGetStyleAttrValue(si,"top");
				if (style.width=="") style.width=CSGetStyleAttrValue(si,"width");
				if (style.height=="") style.height=CSGetStyleAttrValue(si,"height");
				if (style.visibility=="") style.visibility=CSGetStyleAttrValue(si,"visibility");
				if (style.zIndex=="") style.zIndex=CSGetStyleAttrValue(si,"z-index");
			}
		}
		
		function CSSetStylePos(s,d,p) {
			if (d==0) return;//KILL any left positioning
			//alert("stylec "+s);
			if (CSIsW3CDOM)d==0?document.getElementById(s).style.left=p+"px":document.getElementById(s).style.top=p+"px";
			else if(IsIE())(d==0)?CSIEStyl(s).posLeft=p:CSIEStyl(s).posTop=p;
			else (d==0)?CSNSStyl(s).left=p:CSNSStyl(s).top=p;
		}
		
		function CSGetStylePos(s,d) {
			//alert("styled "+s);
			if (CSIsW3CDOM){CSIDOM();return parseInt((d==0)?document.getElementById(s).style.left:document.getElementById(s).style.top);}
			else if (IsIE()) {CSIEWinInit();return(d==0)?CSIEStyl(s).posLeft:CSIEStyl(s).posTop;}
			else {return (d==0)?CSNSStyl(s).left:CSNSStyl(s).top;}
		}
		CSIEWInit=false;
		function CSIEWinInit() { if(CSIEWInit==true) return; else CSIEWInit=true; if (IsIE()&&(CSAg.indexOf("Win")!=-1)&&CSBVers==4) { var i=0; var lyr=document.all.tags("div")[i++]; while(lyr) {lyr.style.posLeft=lyr.offsetLeft; lyr.style.posTop=lyr.offsetTop; lyr=document.all.tags("div")[i++];}}}
		CSLoopIsRunning = false; CSFctArray = new Array; CSTimeoutID = null;
		function CSLoop() {	
			CSLoopIsRunning = false;
			for (i=0;i<CSFctArray.length;i++) {
				var curFct = CSFctArray[i];
				if (curFct)	{
					if (curFct.DoFunction(curFct)) { CSLoopIsRunning = true; curFct.counter++; }
					else CSFctArray[i] = 0;
				}
			}
			if (CSLoopIsRunning) CSTimeoutID = setTimeout("CSLoop()", 1);
		}
		function CSStartFunction(fct,data) {
			if (!CSLoopIsRunning) { CSFctArray = 0; CSFctArray = new Array; }
			var fctInfo = new Object;
			fctInfo.DoFunction = fct; fctInfo.counter = 0; fctInfo.data = data;
			CSFctArray[CSFctArray.length] = fctInfo; 
			if (!CSLoopIsRunning) CSLoop();
		}
		function CSStopFunction(sceneName) {
			var i;
			for (i=0;i<CSFctArray.length;i++) {
				var curFct = CSFctArray[i];
				if (curFct){ if (curFct.data.name == sceneName){ CSFctArray[i] = 0; return; } }
			}
		}
		function CSStopComplete() {
			if (CSTimeoutID == null) return;
			clearTimeout (CSTimeoutID); CSLoopIsRunning = false; CSTimeoutID = null;
		}
		function CSMoveLoop(fInf) {
			var ticks = 60 * (((new Date()).getTime()) - fInf.data.startTime)/1000;
			var f = ticks/fInf.data.ticks;
			if (f < 1) { CSSetStylePos(fInf.data.layer,0,fInf.data.start[0] * (1-f) + fInf.data.end[0] * f);
				CSSetStylePos(fInf.data.layer,1,fInf.data.start[1] * (1-f) + fInf.data.end[1] * f); return true; }
			else { CSSetStylePos(fInf.data.layer,0,fInf.data.end[0]);
				CSSetStylePos(fInf.data.layer,1,fInf.data.end[1]); }
			return false;
		}
		function CSSlideObj (layer,start,end,ticks,startTime) {
			this.layer=layer;this.start=start;this.end=end;this.ticks=ticks;this.startTime=startTime;
		}
		function CSSlideLayer(l,pos,anim,ticks) {
			var x = pos[0]; var y = pos[1];
			if (l == '') return;
			if (!anim) { CSSetStylePos(l,0,x); CSSetStylePos(l,1,y); }
			else {  var fctData = new CSSlideObj(l,new Array(CSGetStylePos(l,0),CSGetStylePos(l,1)),new Array(x,y),ticks,(new Date()).getTime()); CSStartFunction(CSMoveLoop,fctData); }
		}
		function CSMoveTo(action) { CSSlideLayer(action[1],action[2],action[3],action[4]); }
		function CSSetStyleVis(s,v) {
			if (CSIsW3CDOM){CSIDOM();document.getElementById(s).style.visibility=(v==0)?"hidden":"visible";}
			else if(IsIE())CSIEStyl(s).visibility=(v==0)?"hidden":"visible";
			else CSNSStyl(s).visibility=(v==0)?'hide':'show';
		}
		function CSGetStyleVis(s) {
			if (CSIsW3CDOM) {CSIDOM();return(document.getElementById(s).style.visibility=="hidden")?0:1;}
			else if(IsIE())return(CSIEStyl(s).visibility=="hidden")?0:1;
			else return(CSNSStyl(s).visibility=='hide')?0:1;
		}
		function CSShowHide(action) {
			if (action[1] == '') return;
			var type=action[2];
			if(type==0) CSSetStyleVis(action[1],0);
			else if(type==1) CSSetStyleVis(action[1],1);
			else if(type==2) { 
				if (CSGetStyleVis(action[1]) == 0) CSSetStyleVis(action[1],1);
				else CSSetStyleVis(action[1],0);
			}
		}

//--------------------------------------------------------------------------------------

//	var CALENDAR_PRIVATE_SCRIPT_URL = "/cgi-bin/calendar_private/bnh_cal.pl";
	var CALENDAR_PUBLIC_SCRIPT_URL = "/cgi-bin/calendar05/bnh_cal.pl";
	var NEWS_LATEST_SCRIPT = "/cgi-bin/widgets05/firstnews.pl";  
	function OpenWindow(action) {
		//alert(action[1]);
		var wf = "";
		wf = wf + "top=10,left=10";
		wf = wf + ",width=" + action[3];
		wf = wf + ",height=" + action[4];
		wf = wf + ",resizable=" + (action[5] ? "yes" : "no");
		wf = wf + ",scrollbars=" + (action[6] ? "yes" : "no");
		wf = wf + ",menubar=" + (action[7] ? "yes" : "no");
		wf = wf + ",toolbar=" + (action[8] ? "yes" : "no");
		wf = wf + ",directories=" + (action[9] ? "yes" : "no");
		wf = wf + ",location=" + (action[10] ? "yes" : "no");
		wf = wf + ",status=" + (action[11] ? "yes" : "no");
		return window.open(action[1],action[2],wf);
	}

	function OpenWindowModal(action,def) {
		var wf = "";
		wf = wf + "";
		wf = wf + "dialogWidth:" + action[3] + "px";
		wf = wf + ";dialogHeight:" + action[4] + "px";
		wf = wf + ";resizable:" + (action[5] ? "yes" : "no");
		wf = wf + ";scroll:" + (action[6] ? "yes" : "no");
		wf = wf + ";menubar:" + (action[7] ? "yes" : "no");
		wf = wf + ";toolbar:" + (action[8] ? "yes" : "no");
		wf = wf + ";directories:" + (action[9] ? "yes" : "no");
		wf = wf + ";location:" + (action[10] ? "yes" : "no");
		wf = wf + ";status:" + (action[11] ? "yes" : "no");
		// make path different each time to stop browser cache giving old page
		var pg = action[1];
		if (pg.indexOf('?')==-1){
			pg += "?xyz="+escape(new Date());
		}else{
			pg += "&xyz="+escape(new Date());
		}
		return showModalDialog(pg,def,wf);
	}


	// CC special
	function calendar_private_window(){
	//	OpenWindow(new Array(0,CALENDAR_PRIVATE_SCRIPT_URL,'wincal',440,600,1,1,1,0,0,0,0));
	}
	function calendar_public_window(){
		OpenWindow(new Array(0,CALENDAR_PUBLIC_SCRIPT_URL,'wincal',440,600,1,1,1,0,0,0,0));
	}
	function current_newsletter_window(){
		OpenWindow(new Array(0,NEWS_LATEST_SCRIPT+"?folder=/dyn/_pages/_news_or_press",'newsletter',730,640,1,1,1,0,0,0,0));
	}
	function current_news_release_window(){
	//	OpenWindow(new Array(0,NEWS_LATEST_SCRIPT+"?folder=/dyn/_newsreleases",'newsrelease',730,640,1,1,1,0,0,0,0));
	}

	// not really generic but used on KSSDEANERY
	function the_team(){
		parent.content.location.href="/cgi-bin/theteam/theteam.pl"
	}
	
	// These are not really generic, they are used on SEMMED ,
	function semmed_discussion_window(){
		OpenWindow(new Array(0,'/cgi-bin/discuss/discuss.pl?action=sendframeset','discuss',270,160,0,0,0,0,0,0,0));
	}

	function semmed_factfinder_window(){
		OpenWindow(new Array(0,'/cgi-bin/factfinder/client.pl','factfinder',800,600,0,0,0,0,0,0,0));
	}
	// Made window Sizeable and scrollable 5/12/2005 BC
	function semmed_application_window(){
		OpenWindow(new Array(0,'/cgi-bin/application_system/bnh_oaf.pl','applic',800,600,1,1,0,0,0,0,0));
	}

//---------------------------------------------------------------------------------------
var agt= navigator.userAgent.toLowerCase();
var erIE4 = (document.all&&!document.getElementById)?1:0;
var erIE5 = (document.all&&document.getElementById)?1:0;
var erMac = agt.indexOf("macintosh")?1:0;
var erNN60 = (agt.indexOf("netscape/6.0") >=-1)?1:0;

function MM_findObj(n, d) { //v4.0
  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=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}


function RDCenterNewWindow(action) {
	var CWvin,nytCWvindue,CWBredde,CWHojde,CWbred,CWhoj,CWdiv;
	CWbred = action[3];CWhoj = action[4];CWBredde=action[5];CWHojde=action[6];	
	if (action[9] || action[10] || action[11] || action[12]) CWdiv=2.4; else CWdiv=2;
	if (erIE4 && erMac){CWHojde += 40;CWhoj +=43;}
	else if (erIE5 && erMac){CWHojde = action[6];}
	if(erNN60){CWhoj=CWhoj+15;if(action[8]==true)CWbred=CWbred+15;}
	if(action[14]==1){CWBredde=screen.availWidth/2-CWbred/2; CWHojde =screen.availHeight/CWdiv-CWhoj/2;}
	if(action[14]==2){CWBredde=CWBredde;CWHojde=CWHojde;}
	CWvin =  ",width=" + CWbred;
	CWvin += ",height=" + CWhoj;
	CWvin += ",resizable=" + (action[7]?"1":"0");
	CWvin += ",scrollbars=" + (action[8]?"1":"0");
	CWvin += ",menubar=" + (action[9]?"1":"0");
	CWvin += ",toolbar=" + (action[10]?"1":"0");
	CWvin += ",directories=" + (action[11]?"1":"0");
	CWvin += ",location=" + (action[12]?"1":"0");
	CWvin += ",status=" + (action[13]?"1":"0");
	CWvin += ",left=" + CWBredde;
	CWvin += ",top=" + CWHojde;
	CWvin += ",ScreenX=" + CWBredde;
	CWvin += ",ScreenY=" + CWHojde;		
	nytCWvin = window.open(action[1],action[2],CWvin);
	if(window.focus){nytCWvin.focus()}
}

/*
function BC_enlargeImage(src,orient){
	var url = "http://www.chichestercathedral.co.uk/cgi-bin/gallery/gallery.pl?orient="+orient+"&picpath="+src;
	var ac;
	if (orient=='P')
		ac = new Array(RDCenterNewWindow,url,'Pgal',300,400,0,0,false,false,false,false,false,false,false,1);
	else
		ac = new Array(RDCenterNewWindow,url,'Lgal',420,280,0,0,false,false,false,false,false,false,false,1);
	return ac[0](ac);
}
*/

//------------------------------------------------------------------------------------------------
var preloadFlag = false;
function BCpreloadImages() {
	if (document.images) {
		over_england = newImage('graphics/flags/english-on.gif');
		over_france = newImage('graphics/flags/french-on.gif');
		over_dutch = newImage('graphics/flags/dutch-on.gif');
		over_italy = newImage('graphics/flags/italian-on.gif');
		over_germany = newImage('graphics/flags/german-on.gif');
		preloadFlag = true;
	}
}

function BCshowlang(nm){
	/* slide in layer as used by CC
	if (curlang != '') 	CSSlideLayer(curlang,new Array(210,-langsh[curlang]),true,20);// slide off current
	curlang=nm;
	CSSlideLayer(nm,new Array(210,16),true,20);// slide in new one;
	*/
	alert("BCshowlang()");
	if (curlang != '') 	CSSetStylePos(curlang,210,-langsh[curlang]);// hide current
	curlang=nm;
	CSSetStylePos(curlang,210,16);// show new one;

}

var uneek=1;
function BC_langSelectHTML(lang){
	if (usedlangs.length == 1) return '';
	uneek++;
	var s="Translate:<br>";
	s += "			<table width=\"152\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
	s += "				<tr height=\"24\">\n";
	for (var i=usedlangs.length-1; i>=0 ; i--){
		var lng = usedlangs[i];
		if (lng != lang){
			s += "						<td valign=\"bottom\" width=\"38\" height=\"24\">\n";
			s += "						<div style=\"cursor:hand\" onclick=\"BCshowlang('"+lng+"')\" \n";
			s += "							onmouseover=\"changeImages( '"+lng+""+uneek+"','graphics/flags/"+lng+"-on.gif');return true\" onmouseout=\"changeImages( '"+lng+""+uneek+"','graphics/flags/"+lng+".gif');return true\" >\n";
			s += "							<img src=\"graphics/flags/"+lng+".gif\" alt=\""+lng+"\" name=\""+lng+""+uneek+"\" height=\"20\" width=\"30\" border=\"0\">\n";
			s += "						</div></td>\n";
		}
	}
	s += "				<td>&nbsp;</td></tr>\n";
	s += "			</table>\n";
	//alert(s);
	return s;
}


var langs=new Array('english','french','dutch','italian','german');// possible languages
var usedlangs = new Array();// language layers actually present
var curlang="";
var langsh=new Array();// height of each language layer

/*
function chkContent(obj){
	for (var x=0 ; x < obj.all.length; x++ ){
		t = obj.all[x];
		if (!t.tagName) continue;
		if (t.tagName.indexOf('BC')==0){
			//alert("found BC tag "+t.lang);
			return obj.innerText.length;
		}
	}
	return 0;
}
*/

function chkContent(obj){
	return obj.innerText.length;
}

function langsetup(){
	BCpreloadImages();
	//alert("langsetup");
	for (var i=0;i<langs.length;i++){
		var lng = langs[i];
		if (MM_findObj(lng)){
			//alert("found layer "+lng);
			if (document.all){ // good IE browser
				if (chkContent(MM_findObj(lng))){
					//alert("found layer content "+lng);
					if (curlang == '') curlang = lng;//pick up first as current probably english
					usedlangs[usedlangs.length] = lng;
				}
			}else{
				if (lng=="english"){
					if (curlang == '') curlang = lng;//pick up first as current probably english
					usedlangs[usedlangs.length] = lng;
				}
			}
		}
	}
	//alert("curlang="+curlang);
	if (usedlangs.length < 2){
		MM_findObj(curlang).style.top = 16;
	}else{
		//alert("curlang="+curlang);
		for (var i=0;i<usedlangs.length;i++){
			var lng = usedlangs[i];
			MM_findObj("ls_"+lng).innerHTML = BC_langSelectHTML(lng);
			var langlyrobj=MM_findObj(lng);
			var tableobj=langlyrobj.getElementsByTagName("table");
			h=tableobj[0].clientHeight;
			//alert("set top of "+lng);
			MM_findObj(lng).style.top = (curlang ==lng) ? 16:-h ;
			langsh[lng]=h;
		}
	}
}
//alert("loaded pagesupport.js");

// Image gallery stuff
function  BCchangepic(t){
	MM_findObj('changer').src = pics[n].pfile;
	MM_findObj('frntlayertxt').innerText = pics[n].ptitle;
	MM_findObj('backlayertxt').innerText = pics[n].ptitle;
	n = (n+1) % pics.length;
	setTimeout("BCchangepic("+t+")",t);	// time in ms for all pictures
}
