//	WCMS JavaScript Functions
//	Common code - for TVIA website.
//	(c)	Andy Belcher	2008
//
var DHTML		= 1;	// 		'sa long story...
var domName		= 'tvia.org.uk';
//
function dw(dwStr) {document.write(dwStr);}
//
function br() {dw('<br />');}
//
function getObjectByAnyMeans(objId) {
	if(document.getElementById) {return document.getElementById(objId);}
	if(document.all)            {return eval("document.all." +objId);}
	if(document.layers)         {return eval("document.layers[" +objId+ "]");}
	DHTML = 0;
	return false;
	}
//
function getElementbyClass(classname) { 
	var inc=0;
	var alltags=document.all? document.all : document.getElementsByTagName("*"); 
	for (i=0; i<alltags.length; i++)
		{if(alltags[i].className==classname) {return alltags[i];}}
	}
//
function switchClass(lmtId,newClass)
	{getObjectByAnyMeans(lmtId).className = newClass;}
//
function switchText(lmtId,newText)
	{getObjectByAnyMeans(lmtId).innerHTML = newText;}
//
function aSMT(tN,tD,dA,sU) {
	var aS = "&#64;";if(!tN) {tN = "webmaster";}
	var mT = "ma"+"ilt"+"o:";if(!tD) {tD = domName;}
	var tA = tN+"@"+tD;if(!dA) {dA = tN+aS+tD;}
	if(sU) {sU = "?s"+"ub"+"ject="+sU;} else {sU = "";}
	dw("<a href=\""+mT+tA+sU+"\" title=\"Send ema"+"il...\">"+dA+"</a>");
	}
//
function lodeLink(su)	{
	if(su)
		{dw('<p><small><strong>Links to underground lodes:</strong> '
			+ '<a href="/pages/mining_lodes1_5.shtml">1-5</a>, '
			+ '<a href="/pages/mining_lodes6_10.shtml">6-10</a>, '
			+ '<a href="/pages/mining_lodes11_15.shtml">11-15</a>, '
			+ '<a href="/pages/mining_lodes16_20.shtml">16-20</a>, '
			+ '<a href="/pages/mining_lodes21_27.shtml">21-27</a>, '
			+ '<a href="/pages/mining_lodes28_30.shtml">28-30</a>, '
			+ '<a href="/pages/mining_lodes31_34.shtml">31-34</a>, '
			+ '<a href="/pages/mining_lodes35_36.shtml">35-36</a>, '
			+ '<a href="/pages/mining_lodes37_44.shtml">37-44</a>. '
			+ '</small></p>');
		}
	else
		{dw('<p><small><strong>Links to surface lodes:</strong> '
			+ '<a href="/pages/surfacemining_lodes1_5.shtml">1-5</a>, '
			+ '<a href="/pages/surfacemining_lodes6_10.shtml">6-10</a>, '
			+ '<a href="/pages/surfacemining_lodes11_14.shtml">11-14</a>, '
			+ '<a href="/pages/surfacemining_lodes15_20.shtml">15-20</a>, '
			+ '<a href="/pages/surfacemining_lodes21_25.shtml">21-25</a>, '
			+ '<a href="/pages/surfacemining_lodes26_30.shtml">26-30</a>, '
			+ '<a href="/pages/surfacemining_lodes31_35.shtml">31-35</a>, '
			+ '<a href="/pages/surfacemining_lodes36_43.shtml">36-43</a>. '
			+ '</small></p>');
		}
	}
//
function suLodeLnk(typ,ref,sub)	{
	if(!typ)		{return;}
	if(!ref)		{return;}
	if(isNaN(ref))	{return;}
	typ	= typ.toUpperCase();
	sub	= (sub) ? sub.toLowerCase() : '';
	var lnkBase	= '/pages/surfacemining_lodes';
	var lnkTit	= 'View the surface description for this lode...';
	var dgcName	= 'Surface description';
	var lnkDis	= 'Surface description for lode '+ref+sub+'...';
	if(typ == 'U')
		{dgcName	= 'Underground description';
		lnkBase		= '/pages/mining_lodes';
		lnkTit		= 'View the accompanying underground description...';
		lnkDis		= 'Underground description for lode '+ref+sub+'...';
		}
	if(sub)
		{switch (sub)
			{case 'maria':
				lnkDis	= dgcName+' for Wheal Maria...';
			break
			case 'fanny':
				lnkDis	= dgcName+' for Wheal Fanny...';
			break
			case 'annamaria':
				lnkDis	= dgcName+' for Wheal Anna Maria...';
			break
			case 'josiah':
				lnkDis	= dgcName+' for Wheal Josiah...';
			break
			case 'emma':
				lnkDis	= dgcName+' for Wheal Emma...';
			break
			}
		}
	var lnkArg	= '';
	if((ref >= 1) && (ref <= 5))	{lnkArg = '1_5';}
	if((ref >= 6) && (ref <= 10))	{lnkArg = '6_10';}
	if((ref >= 11) && (ref <= 15))	{lnkArg = '11_15';}
	if((ref >= 16) && (ref <= 20))	{lnkArg = '16_20';}
	if((ref >= 21) && (ref <= 25))	{lnkArg = '21_25';}
	if((ref >= 26) && (ref <= 30))	{lnkArg = '26_30';}
	if((ref >= 31) && (ref <= 35))	{lnkArg = '31_35';}
	if((ref >= 36) && (ref <= 44))	{lnkArg = '36_43';}
	if(typ == 'U')
		{if((ref >= 11) && (ref <= 14))	{lnkArg = '11_14';}
		if((ref >= 15) && (ref <= 20))	{lnkArg = '15_20';}
		if((ref >= 21) && (ref <= 27))	{lnkArg = '21_27';}
		if((ref >= 28) && (ref <= 30))	{lnkArg = '28_30';}
		if((ref >= 31) && (ref <= 34))	{lnkArg = '31_34';}
		if((ref >= 35) && (ref <= 36))	{lnkArg = '35_36';}
		if((ref >= 37) && (ref <= 44))	{lnkArg = '37_44';}
		//	Re-map lode numbers where there is no direct underground entry for a lode
		if((ref == 4) || (ref == 5) || (ref == 13)
		|| (ref == 18) || (ref == 22) || (ref == 27))	{return;}
		if(ref == 3)	{ref = 2;}
		if(ref == 7)	{ref = 6;}
		if(ref == 26)	{ref = 27;}
		if((ref == 10) && (!sub))		{sub = 'a';}
		if((ref == 20) || (ref == 21) || (ref == 29) || (ref == 34))	{sub = '';}
		if((ref == 33) && (sub) && (sub != 'a'))		{sub = '';}
		if((ref == 36) && (sub) && (sub == 'a'))		{sub = '';}
		}
	if(typ == 'S') {if(ref == 36) {sub = '';}}
	if(lnkArg)
		{dw('<small>&sect; <a href="'+lnkBase+lnkArg+'.shtml#lode'+ref+sub
			+ '" title="'+lnkTit+'">'+lnkDis+'</a></small>');
		}
	}
//
function returnHeader()	{
	return '<div id="header"><h1 id="top">Industrial Archaeology '
		+ 'of the Tamar Valley</h1><p>Research by Morwellham '
		+ 'Archaeological Group, 1991 to present</p></div><!--header-->'
		+ '<script type="text/javascript">browserUpgradeWarning();'
		+ '//</script>';
	}
//
function returnFooter()	{
	return '<div id="footer"><small>For best results view with your '
		+ 'browser maximised, text-size set to medium and your '
		+ 'resolution set at <code>1024x768</code> or better...'
		+ '<br />Website design &amp; coding: <script '
		+ 'type="text/javascript">aSMT(\'andy\',\'dandylife.org\''
		+ ',\'DandyWebDesign\',\'Tamar Valley Industrial '
		+ 'Archaeology: Website query...\');//</script> '
		+ '<strong>&copy;</strong> 2008</small></div><!--footer-->';
	}
//
function returnNavBar()	{
	return '<div id="navbar"><a href="/index.shtml" '
		+ 'title="Return to the homepage..."'
		+ '>Home</a> &#8212; '
		+ '<a href="/about.shtml" '
		+ 'title="About this website..."'
		+ '>About this website</a> &#8212; '
		+ '<a href="/content.shtml" '
		+ 'title="Links to all the website contents..."'
		+ '>Contents</a> &#8212; '
		+ '<a href="/join.shtml" '
		+ 'title="Join or contact the Morwellham Archaeological Group..."'
		+ '>Join MAG</a> &#8212; '
		+ '<a href="/links.shtml" '
		+ 'title="Links to external website sharing related interests..."'
		+ '>Links</a> &#8212; '
		+ '<a href="/cgi-bin/tviagal.pl" '
		+ 'title="TVIA gallery with all the pictures..."'
		+ '>Gallery</a> &#8212; '
		+ '<a href="/todo.shtml" '
		+ 'title="Website to-do list..."'
		+ '><strong style="font-size:8pt;color:#ff0000;"'
		+ '>To Do!</strong></a>'
		+ '</div><!--navbar-->';
	}
//
//	STREETMAP FUNCTION FROM NGR
//
function addStreetMapLink(ref,reqscale,reqsize,reqstr) {
	var fail	= 0;
	var scale	= 1;
	var size	= 0;
	ref			= ref.toUpperCase();
	ref			= ref.replace(/ /g,'');
	if(reqscale) {reqscale = reqscale.toUpperCase();
		if(reqscale == "S") {scale = 0;}
		if(reqscale == "L") {scale = 2;}
		}
	if(reqsize) {reqsize = reqsize.toUpperCase();
		if((reqsize == "L") || (reqsize == "B")) {size = 1;}
		}
	if(scale == 1) {scale = 0;}
	var zarg	= eval (1 + (2 * scale) + size);
	
	zarg		= 4;
	
	var keyrefA	= ref.substring(0,1);
	var keyrefB	= ref.substring(1,2);
	var coords	= ref.substring(2);
	var lcoords = coords.length;
	keyrefA		= keyrefA.toUpperCase();
	keyrefB		= keyrefB.toUpperCase();
	var refA	= new Array('S','T','N','O','H','J');
	var refB	= new Array('V','W','X','Y','Z','Q','R','S','T','U','L',
				'M','N','O','P','F','G','H','J','K','A','B','C','D','E');
	var tmpA = -1;
	var tmpB = -1;
	var easting		= 0;
	var northing	= 0;
	var measting	= 0;
	var mnorthing	= 0;
	for(i=0;i<=5;i++) {if(refA[i] == keyrefA) {tmpA = i;}}
	if(tmpA == -1) {fail = 1;}
	else {for(i=0;i<=24;i++) {if(refB[i] == keyrefB) {tmpB = i;}}
		if(tmpB == -1) {fail = 2;}
		else {if(isNaN(coords)) {fail = 3;}
			else {switch(lcoords)
					{case 4:
					easting		= coords.substring(0,2);
					northing	= coords.substring(2);
					break
					case 6:
					easting		= coords.substring(0,3);
					northing	= coords.substring(3);
					break
					case 8:
					easting		= coords.substring(0,4);
					northing	= coords.substring(4);
					break
					case 10:
					easting		= coords.substring(0,5);
					northing	= coords.substring(5);
					break
					default:
					fail = 4;
					}
				}
			}
		}
	var linkStr = "NGR " + ref;
	if(reqstr) {linkStr = reqstr;}
	if(fail) {document.write("<span class=\"ngr\">"+linkStr+"</span> fail = "+fail);}
	else {while(easting.length < 5)	{easting	= easting+"0";}
		while(northing.length < 5)	{northing	= northing+"0";}
		tmpstr = "TOJ";if(tmpstr.indexOf(keyrefA) != -1) {measting = 5;}
		tmpstr = "NO"; if(tmpstr.indexOf(keyrefA) != -1) {mnorthing = 5;}
		tmpstr = "HJ"; if(tmpstr.indexOf(keyrefA) != -1) {mnorthing = 10;}
		var divtmpB = Math.round(eval((tmpB/5)-0.5));
		var modtmpB = eval(((tmpB/5)-divtmpB)*5);
		mnorthing	+= divtmpB;measting	+= modtmpB;
		mnorthing	= Math.round(mnorthing,0);
		measting	= Math.round(measting,0);
		document.write(" <a href=\"http://www.streetmap.co.uk/newmap.srf?x="
			+ measting + easting + "&y=" + mnorthing + northing + "&z="
			+ zarg + "\" target=\"_blank\" title=\"Use StreetMap.co.uk to "
			+ "see the location map for this NGR...\"><span class=\"ngr\">"
			+ linkStr + "</span></a> ");
		}
	}
function browserUpgradeWarning() {
	document.write("<div id=\"upgrade\" style=\"border:1px solid #000000;border-right: "
		+ "2px solid #000000;border-bottom:2px solid #000000;background:#fff0f0; "
		+ "padding:10px;font-weight:bold;font-size:smaller;\"> "
		+ "<p>Sorry, but your browser is either very old or not working properly, "
		+ "we shall assume the former! "
		+ "<br />Some of the styling features within this site will not render "
		+ "correctly on your <strong>obsolete</strong> browser. You will still be "
		+ "able to use the site but it won't look as good. "
		+ "In the meantime you are strongly advised to upgrade your browser to "
		+ "at least <strong>Internet Explorer 6+</strong> or <strong>FireFox</strong>, "
		+ "these are fully compliant and will work correctly.</p></div>");
	}
//
function nextTopLink(url,tit,top)	{
	var topLnk = '<a href="#top">^Top...</a> ';
	if(!top) {topLnk = '';}
	dw('<p class="clr"><small>'+topLnk+'<strong>&gt;&gt;Next&gt;&gt;</strong> <a href="'+url+'">'+tit+'</a></small></p>');
	}
//
function showHideIndex(swt)	{
	var inp	= "hide";
	var shi	= '<a href="#" onclick="showHideIndex(1);">Show index links...</a>';
	if(swt)
		{inp	= "show";
		shi		= '<a href="#" onclick="return showHideIndex(0);">Hide index links...</a>';
		}
	switchClass("inpage",inp);
	switchText("showind",shi);
	return false;
	}
//
function trickUL(ref,cls,dis)	{
	var scls	= cls;
	var hcls	= cls+'x';
	var aref	= ref+'a';
	var bref	= ref+'b';
	var acls	= scls;
	var bcls	= hcls;
	if(dis)
		{acls	= hcls;
		bcls	= scls;
		}
	dw('<ul id="'+aref+'" class="'+acls+'"><li class="trickul"><a href="#" '
		+ 'onclick="switchClass(\''+aref+'\',\''+hcls+'\'\);'
			+ 'switchClass(\''+bref+'\',\''+scls+'\'\);return false;"'
		+ '>+ <small>Expand...</small></a></li></ul>'
		+ '<ul id="'+bref+'" class="'+bcls+'"><li class="trickul"><a href="#" '
		+ 'onclick="switchClass(\''+bref+'\',\''+hcls+'\'\);'
			+ 'switchClass(\''+aref+'\',\''+scls+'\'\);return false;"'
		+ '>- <small>Collapse...</small></a></li>');
	}
//
var tviaPage	= new Array();
//
function tviaPageObj(url,dis)	{
	this.url	= url;
	this.dis	= dis;
	}
//
function makeTviaPage(url,dis)	{
	tviaPage[pageRefNo]	= new tviaPageObj(url,dis);
	pageRefNo++;
	}
//
var IDCTR	= 0;
//
function nextBackLink(top)	{
	var thisPage	= location.href;
	var urlArray	= new Array();urlArray	= thisPage.split('/');
	var nuA			= urlArray.length;
	var relUrl		= '';
	for(var i=3;i<nuA;i++) {relUrl	+= '/'+urlArray[i];}
	var tmp	= relUrl.split('#');relUrl	= tmp[0];
	//	Look up page object to find next and last
	var pageId	= 0;
//	for(var i=1;i<=tviaPage.length;i++) {if(relUrl == tviaPage[i].url) {pageId = i;break;}}
	for(var i=1;i<tviaPage.length;i++) {if(relUrl == tviaPage[i].url) {pageId = i;break;}}
	var lastpage	= pageId - 1;
	var nextpage	= eval(pageId+1);
	if(lastpage	< 1) {lastpage = 0;}
	if(nextpage >=  tviaPage.length)	{nextpage = 0;}
	var topLnk = '<a href="#top">^Top...</a> ';
	if(!top) {topLnk = '';}	
	var backLnk	= '';
	var nextLnk	= '';
	var disId	= 'lnk'+IDCTR;IDCTR++;
	if(lastpage)
		{backLnk = '<a href="'+tviaPage[lastpage].url+'" '
			+ 'onmouseover="showbacklnk(\''+disId+'\','+lastpage+');" '
			+ 'onmouseout="shownextlnk(\''+disId+'\','+nextpage+');" '
			+ '>&lt;&lt;-Back</a> - ';
		}
	if(nextpage)
		{nextLnk = '<a href="'+tviaPage[nextpage].url+'">Next-&gt;&gt;</a>';
		}
	dw('<p class="clr"><small>'+topLnk+backLnk+nextLnk+' '
		+ '<span id="'+disId+'"><a href="'+tviaPage[nextpage].url+'">&gt;&gt; '
		+ tviaPage[nextpage].dis+'</a></span></small></p>');
	}
//
function shownextlnk(id,ref)	{
	switchText(id,'<a href="'+tviaPage[ref].url+'">&gt;&gt; '+tviaPage[ref].dis+'</a>');
	}
//
function showbacklnk(id,ref)	{
	switchText(id,'<a href="'+tviaPage[ref].url+'">&lt;&lt; '+tviaPage[ref].dis+'</a>');
	}
//
//	EOF
//
