
//_____[ misc ]_____\\

function openWin(URL,name,w,h,t,l)
{
	aWindow=window.open(URL,name,'toolbar=no,width='+w+',height='+h+',top='+t+',left='+l+',status=yes,scrollbars=yes,resizable=yes,menubar=yes,toolbar=yes');
}

function openTranscript(URL)
{
	openTranscript = window.open(URL,"transcript","width=800,height=550,top=50,left=200,menubar=yes,scrollbars=yes,resizable=yes");
}

function openWindow(URL)
{
	window.open(URL,"","width=800,height=600,top=20,left=150,menubar=yes,scrollbars=yes,resizable=yes");
}

function openwindow(URL)
{
	window.open(URL,"","width=800,height=600,top=20,left=150,menubar=yes,scrollbars=yes,resizable=yes");
}

function backWindow(URL)
{
	opener.location.href = URL;
	window.close();
}

//_____[ DIGITAL COLLECTIONS : new windows ]_____\\

var opens = 
{
	windows: [],
	transcripts: [],
	
	assignElements: function()
	{
		opens.windows = document.getElementsByClassName('window');
		opens.transcripts = document.getElementsByClassName('transcript');
	},
	
	applyListeners: function()
	{
		for(var i = 0; i < opens.windows.length; i++)
		{
			var w = opens.windows[i];
			w.onclick = function()
			{
				openWindow(this.getAttribute('href'));
				return false;
			};
		}
		for(var j = 0; j < opens.transcripts.length; j++)
		{
			var t = opens.transcripts[j];
			t.onclick = function()
			{
				openWindow(this.getAttribute('href'));
				return false;
			};
		}
	},
	
	init: function()
	{
		opens.assignElements();
		opens.applyListeners();
	}
}
addLoadEvent(opens.init)

//_____[ DIGITAL COLLECTIONS : sidebar ]_____\\

var dc =
{
	collection: null,
	getCollection: function()
	{
		if(!document.title) return false;
		var t = document.title;
		if(t.indexOf("Dolmen") != -1) { dc.collection = "dolmen"; }
		if(t.indexOf("Biebigheiser") != -1) { dc.collection = "biebigheiser"; }
		if(t.indexOf("University Lectures") != -1) { dc.collection = "usl"; }
	},
	
	changeClass: function(a,e,c,o)
	{
		switch (a)
		{
			case "swap": e.className = !dc.changeClass("check",e,c) ? e.className.replace(o,c) : e.className.replace(c,o); break;
			case "add": if(!dc.changeClass("check",e,c)) { e.className += e.className ? " " + c : c; } break;
			case "remove": var rep = e.className.match(" " + c) ? " " + c : c; e.className = e.className.replace(rep,""); break;
			case "clear": e.className = ""; break;
			case "check": return e.className.indexOf(c) != -1 ? true : false; break;
		}
	},

	toggle: function()
	{
		if(!document.getElementById || !document.getElementById("sidebar")) return false;
		var s = document.getElementById("sidebar");
		var heads = s.getElementsByTagName("h3");
		for(var i=0; i<heads.length; i++)
		{
			var h = heads[i];
			var e = h.nextSibling;
			while(e.nodeType != 1) { e = e.nextSibling; }
			h.e = e;
			h.number = i;
			var dbc = cookie.get(dc.collection + h.number);
			if(h.number == dbc)
			{
				dc.changeClass("add",h,"open");
				dc.changeClass("add",h.e,"show");
			}
			else
			{
				dc.changeClass("add",h,"trigger");
				dc.changeClass("add",h.e,"hide");
			}
			h.onmouseover = function() { dc.changeClass("add",this,"hover"); };
			h.onmouseout = function() { dc.changeClass("remove",this,"hover"); };
			h.onclick = function()
			{
				if(dc.changeClass("check",this.e,"hide"))
				{
					dc.changeClass("swap",this,"trigger","open");			
					dc.changeClass("swap",this.e,"hide","show");
					cookie.create(dc.collection + this.number,this.number,1);
				}
				else
				{
					dc.changeClass("swap",this,"open","trigger");			
					dc.changeClass("swap",this.e,"show","hide");	
					cookie.erase(dc.collection + this.number);
				}
			};
		}
	},
	
	checkSearchbox: function()
	{
		if(!document.getElementById || !document.getElementById("dc_searchform")) return false;
		var sf = document.getElementById("dc_searchform");
		sf.onsubmit = function()
		{
			if(this.elements[1].value == "")
			{
				alert("Please enter a search term.");
				this.elements[1].focus();
				return false;
			}
		};
	},
	
	init: function()
	{
		dc.getCollection();
		if(dc.collection && (dc.collection == 'dolmen' || dc.collection == 'biebigheiser' || dc.collection == 'usl'))
		{
			dc.toggle();
		}
		dc.checkSearchbox();
	}
}
// requires zsr.js
// cookie functions
addLoadEvent(dc.init);

//_____[ DIGITAL COLLECTIONS : thumbnail page gallery ]_____\\

var dcp = 
{
	sidebar: null,
	pages: null,
	page_container: null,
	page: null,
	current: null,
	details: null,
	title: null,
	collection: null,
	
	assignElements: function()
	{
		dcp.sidebar = document.getElementById('sidebar');
		if(dcp.sidebar)
		{
			dcp.pages = dcp.sidebar.getElementsByTagName('a');
		}
		dcp.page_container = document.getElementById('page_container');
		dcp.page = document.getElementById('page');
	},
	
	getCollection: function()
	{
		if(!document.title) return false;
		var t = document.title;
		if(t.indexOf('Ira W. Thomas') != -1) { dcp.collection = 'iwt'; }
		if(t.indexOf('John Wesley Clay') != -1) { dcp.collection = 'jwc'; }
	},
	
	getPageSrc: function(t)
	{
		var thumbnail = t.firstChild;
		while(thumbnail.nodeType != 1) { thumbnail = thumbnail.nextSibling; }
		var src = thumbnail.getAttribute('src');
		src = src.replace(/-th/,'');
		return src;
	},
	
	makeImg: function(src,alt)
	{
		var img = document.createElement('img');
		img.setAttribute('src',src);
		img.setAttribute('alt',alt);
		img.setAttribute('id','page');
		return img;
	},
	
	makeDetailsLink: function(href,title)
	{
		var a = document.createElement('a');
		a.setAttribute('href',href);
		a.setAttribute('title','See details for: ' + title);
		a.setAttribute('id','page_details');
		var txt = document.createTextNode('Details');
		a.appendChild(txt);
		a.onclick = function()
		{
			openWindow(this);
			return false;
		}
		return a;
	},
	
	makePageTitle: function(href,title)
	{
		var h3 = document.createElement('h3');
		h3.setAttribute('id','page_title');
		var txt = document.createTextNode(title);
		h3.appendChild(txt);
		var txt1 = document.createTextNode(' [');
		h3.appendChild(txt1);
		var metadata = dcp.makeDetailsLink(href,title);
		h3.appendChild(metadata);
		var txt2 = document.createTextNode(']');
		h3.appendChild(txt2);
		return h3;
	},
	
	loadPage: function(t)
	{
		var href = t.getAttribute('href');
		var title = t.getAttribute('title');
		var page_title = dcp.makePageTitle(href,title);
		var src = dcp.getPageSrc(t);
		var img = dcp.makeImg(src,title);
		if(dcp.page)
		{
			dcp.page.parentNode.removeChild(dcp.page);
		}
		dcp.page = img;
		if(dcp.title)
		{
			dcp.title.parentNode.removeChild(dcp.title);
		}
		dcp.title = page_title;
		dcp.page_container.appendChild(page_title);
		dcp.page_container.appendChild(img);
		if(dcp.current)
		{
			dcp.current.className = 'page_thumbnail';
			dcp.current = null;
		}
		dcp.current = t;
		dcp.current.className = 'page_thumbnail current';
	},
	
	browse: function()
	{
		if(dcp.pages)
		{
			for(var i = 0; i < dcp.pages.length; i++)
			{
				var p = dcp.pages[i];
				p.onclick = function()
				{
					dcp.loadPage(this);
					this.blur();
					return false;
				}
			}
		}
	},
	
	setDefault: function()
	{
		if(!dcp.current)
		{
			if(dcp.pages && dcp.pages[0])
			{
				dcp.loadPage(dcp.pages[0]);
			}
		}
	},
	
	init: function()
	{
		dcp.getCollection();
		if(dcp.collection && (dcp.collection == 'iwt' || dcp.collection == 'jwc'))
		{
			dcp.assignElements();
			dcp.browse();
			dcp.setDefault();
		}
	}
}
addLoadEvent(dcp.init);

//_____[ ETC ]_____\\

document.getElementsByClassName = function(name)
{
	var results = new Array();
	var a = document.getElementsByTagName("*");
	for(var i=0; i<a.length; i++)
	{
		if(a[i].className.indexOf(name) != -1)
		{
			results[results.length] = a[i];
		}
	}
	return results;
};

