function onDOMReady(func){
	if(/webkit/i.test(navigator.userAgent)) {
		var timer = setInterval(function() {
			if(/loaded|complete/.test(document.readyState)) {
				clearInterval(timer);
				funcHasRun=true;
				func();
			}
		}, 10);
	}
	else if(document.addEventListener)
		document.addEventListener("DOMContentLoaded", function() {funcHasRun=true; func()}, false);
	else if(document.all) {
		document.write('<script type="text/javascript" id="jstag" defer="defer" src="javascript:void(0)"><\/script>');
		var jstag=$("jstag");
	  	jstag.onreadystatechange=function(){
	    	if (this.readyState=="complete"){
	      		funcHasRun=true;
	      		func();
	    	}
	  	}
	}
}

function scroll2(tid) {
	if(typeof( window.pageYOffset ) == 'number')
		window.scrollBy(0, $(tid).offsetTop - window.pageYOffset);
	else 
		window.scrollBy(0, $(tid).offsetTop - document.documentElement.scrollTop);
}

function getElementsByClass(cl) {
	var
		my_array = document.getElementsByTagName("*"),
		elems = new Array(),
		i,
		j;
		
	for (i=0,j=0; i<my_array.length; i++) {
		var classname = " " + my_array[i].className + " ";
		if (classname.indexOf(" " + cl + " ") != -1)
			elems[j++] = my_array[i];
	}
	return elems;
}

function Show(i) {
	var
		text = $('uTEXT' + i),
		remainingps = getElementsByClass('uREMAININGP-' + i);

	$('uOPENER-' + i).style.display = 'none';
	$('uCLOSER-' + i).style.display = 'block';
	$('uENDSPAN-' + i).style.display = 'inline';
	for(var i=0; i<remainingps.length; i++)
		remainingps[i].style.display = 'block';
}

function Hide(i) {
	var
		text = $('uTEXT' + i),
		currentH = text.offsetHeight,
		H,
		remainingps = getElementsByClass('uREMAININGP-' + i);
		
	$('uOPENER-' + i).style.display = 'inline';
	$('uCLOSER-' + i).style.display = 'none';	
	$('uENDSPAN-' + i).style.display = 'none';
	for(var i=0; i<remainingps.length; i++)
		remainingps[i].style.display = 'none';
	H =  text.offsetHeight;
	window.scrollBy(0, -(currentH - H));
}

function boldenYear() {
	var year = $Topics[$('uSELEXHIB').getAttribute('topic')][1];
	$(year).style.fontWeight = 'bold';	
}

function hideTextEnds() {
	var 
		LIMIT = 200,
		TEXTS = getElementsByClass('uTEXT'),
		TEXTINDEX,
		FOUND,
		COUNTER;

	function closerSpan() {
		var
			ucloser = document.createElement('div');
			
		ucloser.setAttribute('id', 'uCLOSER-' +  TEXTINDEX);
		ucloser.className = "uCLOSER";
		ucloser.style.display = 'none';
		ucloser.innerHTML = '<a href="#" onclick="Hide(' +  TEXTINDEX + '); return false;"><img src="' + _PathToSpaceGraphics  + 'hide.jpg" onmouseover="this.src=\'' + _PathToSpaceGraphics  + 'hide-hover.jpg\'" onmouseout="this.src=\'' + _PathToSpaceGraphics  + 'hide.jpg\'"></a>';
		return ucloser;			
	}

	function searchParag(p) {
		var
			level = 0,
			newp = document.createElement('p'),
			endspan = document.createElement('span');
		
		newp.style.display = 'block';
		endspan.setAttribute('id', 'uENDSPAN-' + TEXTINDEX);
		endspan.style.display = 'none';

		function openerSpan() {
			var
				uopener = document.createElement('span');
				
			uopener.setAttribute('id', 'uOPENER-' +  TEXTINDEX);
			uopener.className = "uOPENER";
			uopener.style.display = 'inline';
			uopener.innerHTML = '<a href="#" onclick="Show(' +  TEXTINDEX + '); return false;"><img src="' + _PathToSpaceGraphics  + 'show.jpg" onmouseover="this.src=\'' + _PathToSpaceGraphics  + 'show-hover.jpg\'" onmouseout="this.src=\'' + _PathToSpaceGraphics  + 'show.jpg\'"></a>';
			return uopener;
		}
		
		function traverse(elem) {
			var
				children = elem.childNodes;	

			for(var i=0; i<children.length; i++) {
				if (FOUND)
					endspan.appendChild(children[i].cloneNode(true));
				else {
					if(children[i].nodeType == 1) {	
						if(level == 0)
							newp.appendChild(children[i].cloneNode(true));
						level++;
						traverse(children[i]);
						level--;
					}
					else if (children[i].nodeType == 3) {
						if(level == 0) {
							if(COUNTER >= LIMIT) {
								FOUND = 1;
								newp.appendChild(openerSpan());
								endspan.appendChild(children[i].cloneNode(false));
								continue;
							}
							else if (COUNTER + children[i].nodeValue.length > LIMIT) {	
								var
									text = children[i].nodeValue,
									startLength = LIMIT - COUNTER,
									startstr = text.substr(0, startLength),
									endstr = text.substring(startLength, text.length);
	
								FOUND = 1; 
								newp.appendChild(document.createTextNode(startstr));
								newp.appendChild(openerSpan());
								endspan.appendChild(document.createTextNode(endstr));
							}
							else
								newp.appendChild(children[i].cloneNode(false));
						}
						if (! FOUND)
							COUNTER += children[i].nodeValue.length;
					}
				}
			}						
		}	
		traverse(p);
		if (FOUND) {
			newp.appendChild(endspan);
			p.parentNode.replaceChild(newp, p);
		}		
	}
	for(var i=0; i<TEXTS.length; i++) {
		var
			parags = TEXTS[i].childNodes;

		FOUND = 0;
		COUNTER = 0;
		TEXTINDEX = i;
		TEXTS[i].setAttribute('id', 'uTEXT' + i);
		
		for(var j=0; j<parags.length; j++)
			if (FOUND && parags[j].nodeType == 1) {
				parags[j].className = 'uREMAININGP-' + TEXTINDEX;
				parags[j].style.display = 'none';
			}
			else if(parags[j].tagName == 'P')
				searchParag(parags[j]);
		if (FOUND) {
			TEXTS[i].appendChild(closerSpan());
			TEXTS[i].style.borderBottom = '0';
		}
		TEXTS[i].style.display = 'block';
	}
}
