function getElementsByClassName(className, tag, elm) {
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}	
	}
	return returnElements;
}

function hideMost() {

	var tr = document.getElementsByTagName('TR');			// we have to iterate through every TR b/c we can't get to the Intenet Links otherwise

	for(i = 0; i < tr.length; i++) {						// for every TR in the document

		var x=tr[i].getElementsByTagName('TH');				// get the TH
		var y=tr[i].getElementsByTagName('TD');				// get the TD

		if (x.length == 1 && x[0].innerHTML == 'Location:') {	// if the row has 2 columns and the first one has the text of Location: and the second one has the generic e location text

			x[0].innerHTML = '';
			y[0].innerHTML = '';
		}
		
		else if (x.length == 1 && x[0].innerHTML == '___') {	// if the row has 2 columns and the first one has the text of ___ and the second one has the Where Is This Location? link

			x[0].innerHTML = '';
			y[0].innerHTML = '';
		}
		
		else if (x.length == 1 && x[0].innerHTML == 'Catalog:') {	// if the row has 2 columns and the first one has the text of Catalog: and the second one has the catalog text

			x[0].innerHTML = '';
			y[0].innerHTML = '';
		}
		
		else if (x.length == 1 && x[0].innerHTML == 'Call Number:') {	// if the row has 2 columns and the first one has the text of <a href="/help/mcallnou.htm" title="What Is This?">Call Number</a> and the second one has a message in the call number field

			x[0].innerHTML = '';
			y[0].innerHTML = '';
		}
		
		else if (x.length == 1 && x[0].innerHTML == '____') {	// if the row has 2 columns and the first one has the text of ____ and the second one has the location code

			x[0].innerHTML = '';
			y[0].innerHTML = '';
		}
	}
}
	
function hideLocationCode() {

	var tr = document.getElementsByTagName('TR');			// we have to iterate through every TR b/c we can't get to the Intenet Links otherwise
	
	for(i = 0; i < tr.length; i++) {						// for every TR in the document

		var x=tr[i].getElementsByTagName('TH');				// get the TH
		var y=tr[i].getElementsByTagName('TD');				// get the TD

		if (x.length == 1 && x[0].innerHTML == '___') {	// if the row has 2 columns and the first one has the text of ___ and the second one has the Where Is This Location? link

			x[0].innerHTML = ''; // Hides just the label, not the data.
		}
		else if (x.length == 1 && x[0].innerHTML == '____') {	// if the row has 2 columns and the first one has the text of ____ and the second one has the location code

			x[0].innerHTML = '';
			y[0].innerHTML = '';
		}
	}
}
	
function suppressSomeHoldingsInfo() {

	aTags = getElementsByClassName("location-code", "a", document);
	
	for(i = 0; i < aTags.length; i++) {	
		if (aTags.length == 1 && ((aTags[i].innerHTML =='cic,artfl') || (aTags[i].innerHTML =='cic,net') || (aTags[i].innerHTML =='cimc,inet') || (aTags[i].innerHTML =='cimc,net') || (aTags[i].innerHTML =='e,19cusnp') || (aTags[i].innerHTML =='e,abiinfo') || (aTags[i].innerHTML =='e,aclshist') || (aTags[i].innerHTML =='e,acmconf') || (aTags[i].innerHTML =='e,acmper') || (aTags[i].innerHTML =='e,aipconf') || (aTags[i].innerHTML =='e,amchemso') || (aTags[i].innerHTML =='e,amwest') || (aTags[i].innerHTML =='e,aristote') || (aTags[i].innerHTML =='e,atlas') || (aTags[i].innerHTML =='e,biomedce') || (aTags[i].innerHTML =='e,biwomlet') || (aTags[i].innerHTML =='e,blkdrama') || (aTags[i].innerHTML =='e,caliber') || (aTags[i].innerHTML =='e,cambridg') || (aTags[i].innerHTML =='e,ceeol') || (aTags[i].innerHTML =='e,cmlib') || (aTags[i].innerHTML =='e,defgen') || (aTags[i].innerHTML =='e,dcg') || (aTags[i].innerHTML =='e,earlyenc') || (aTags[i].innerHTML =='e,eastsocs') || (aTags[i].innerHTML =='e,eaststat') || (aTags[i].innerHTML =='e,eastview') || (aTags[i].innerHTML =='e,ebscohea') || (aTags[i].innerHTML =='e,ebscomas') || (aTags[i].innerHTML =='e,ebscorbn') || (aTags[i].innerHTML =='e,ecco') || (aTags[i].innerHTML =='e,eebo') || (aTags[i].innerHTML =='e,eevl') || (aTags[i].innerHTML =='e,elwa') || (aTags[i].innerHTML =='e,emerald') || (aTags[i].innerHTML =='e,engnet') || (aTags[i].innerHTML =='e,enviro') || (aTags[i].innerHTML =='e,ethnic') || (aTags[i].innerHTML =='e,gender') || (aTags[i].innerHTML =='e,hein') || (aTags[i].innerHTML =='e,helrfctr') || (aTags[i].innerHTML =='e,highwire') || (aTags[i].innerHTML =='e,ieeeconf') || (aTags[i].innerHTML =='e,ieeeper') || (aTags[i].innerHTML =='e,ieeestd') || (aTags[i].innerHTML =='e,iibp') || (aTags[i].innerHTML =='e,iimp') || (aTags[i].innerHTML =='e,iop') || (aTags[i].innerHTML =='e,jstor') || (aTags[i].innerHTML =='e,kluwer') || (aTags[i].innerHTML =='e,knovel') || (aTags[i].innerHTML =='e,lexnex') || (aTags[i].innerHTML =='e,lgbt') || (aTags[i].innerHTML =='e,llmc') || (aTags[i].innerHTML =='e,mathnet') || (aTags[i].innerHTML =='e,mdconslt') || (aTags[i].innerHTML =='e,mitcogne') || (aTags[i].innerHTML =='e,mitprjo') || (aTags[i].innerHTML =='e,moml') || (aTags[i].innerHTML =='e,muse') || (aTags[i].innerHTML =='e,naimlet') || (aTags[i].innerHTML =='e,nawomlet') || (aTags[i].innerHTML =='e,netlib') || (aTags[i].innerHTML =='e,openurl') || (aTags[i].innerHTML =='e,ovid') || (aTags[i].innerHTML =='e,pastmast') || (aTags[i].innerHTML =='e,proqnews') || (aTags[i].innerHTML =='e,proqnurs') || (aTags[i].innerHTML =='e,psycart') || (aTags[i].innerHTML =='e,rsc') || (aTags[i].innerHTML =='e,sage') || (aTags[i].innerHTML =='e,scidirec') || (aTags[i].innerHTML =='e,sixties') || (aTags[i].innerHTML =='e,statsnet') || (aTags[i].innerHTML =='e,synergy') || (aTags[i].innerHTML =='e,synthesi') || (aTags[i].innerHTML =='e,wilbioag') || (aTags[i].innerHTML =='e,wilbusn') || (aTags[i].innerHTML =='e,wileduc') || (aTags[i].innerHTML =='e,wiley') || (aTags[i].innerHTML =='e,wilgensc') || (aTags[i].innerHTML =='e,wilhuman') || (aTags[i].innerHTML =='e,willibra') || (aTags[i].innerHTML =='e,wilread') || (aTags[i].innerHTML =='e,wilsosc') || (aTags[i].innerHTML =='e,womeniss') || (aTags[i].innerHTML =='e,womsocmv') || (aTags[i].innerHTML =='e,wright') || (aTags[i].innerHTML =='e,xrefer') || (aTags[i].innerHTML =='gpo,inet') || (aTags[i].innerHTML =='heh,inet')|| (aTags[i].innerHTML =='heh,net') || (aTags[i].innerHTML =='his,inet')|| (aTags[i].innerHTML =='his,net') || (aTags[i].innerHTML =='jour,net') || (aTags[i].innerHTML =='law,inet') || (aTags[i].innerHTML =='law,net') || (aTags[i].innerHTML =='m,net') || (aTags[i].innerHTML =='m,inet') || (aTags[i].innerHTML =='m,inet2') || (aTags[i].innerHTML =='m,net2') || (aTags[i].innerHTML =='pri,inet') || (aTags[i].innerHTML =='pri,net') || (aTags[i].innerHTML =='slis,net') || (aTags[i].innerHTML =='slis,inet') || (aTags[i].innerHTML =='stee,inet') || (aTags[i].innerHTML =='stee,net') || (aTags[i].innerHTML =='wendt,net') || (aTags[i].innerHTML =='wendt,inet') || (aTags[i].innerHTML =='wendt,refn') || (aTags[i].innerHTML =='wis,inet'))) {
			//alert("Single holding record.  Location code is " + aTags[i].innerHTML);
			HTMLstring = hideMost();
		}
		
		else {
			//alert("Multiple holdings records.  First location code is " + aTags[i].innerHTML);
			HTMLstring = hideLocationCode();
		}
	}
}