var display;
var page;

function popup(url) {
	remote = open(url, "remote", "resizable,scrollbars,width=600,height=600");
}

function mediapop(url) {
	mediawin = window.open(url, "mediawin", "width=550,height=600,scrollbars=yes,toolbar=no,location=no,directories=no,status=yes,menubar=yes,resizable=yes,copyhistory=no");
}


function setotherpos() {
	divel = document.getElementById('othersites');

	linkel = getpos('otherlink');
	linkeltop = linkel[0];
	linkelheight = linkel[1];
	linkelleft = linkel[2];
	linkelwidth = linkel[3];

	divel.style.top = (linkeltop + linkelheight) + "px";
	divel.style.left = (linkelleft + linkelwidth) - divel.offsetWidth + "px";
	//divel.style.right = "0px";
}


var thisviewtext;


// --------------------- Show/Hide floating layer text code -----------------------------------------

function initpage() {
	thenav = document.getElementById("mainnav");
	thelogo = document.getElementById("bardlogo");
	thebody = document.getElementById("bodyshell");
	
	if (popup != true) {
		if (thenav.addEventListener) {
			thenav.addEventListener("mouseover", hideall, true);
		}
		else if (thenav.attachEvent) {
			thenav.attachEvent("onmouseover", hideall);
		}
		if (thelogo.addEventListener) {
			thelogo.addEventListener("mouseover", hideall, true);
		}
		else if (thelogo.attachEvent) {
			thelogo.attachEvent("onmouseover", hideall);
		}
		if (thebody.addEventListener) {
			thebody.addEventListener("mouseover", hideall, true);
		}
		else if (thebody.attachEvent) {
			thebody.attachEvent("onmouseover", hideall);
		}
	}
}

function hideall() {
	showhide(null);
}

showhide_links = new Array('otherlink');
showhide_divs = new Array('othersites');

function showhide(thisel,thislink) {
	for (e=0; e<showhide_divs.length; e++) {
		theel = document.getElementById(showhide_divs[e]);
		if (showhide_divs[e] == thisel) {
			if ((theel.style.display == "none" || theel.style.visibility == "hidden") /*&& (theel.style.opacity == 0 || theel.style.filter == "alpha(opacity=0)")*/){
				theel.style.display = "block";
				theel.style.visibility = "visible";
				fade(showhide_divs[e],0,100,.2);
			}
		}
		else {
			if (theel) {
				theel.style.display = "none";
				theel.style.visibility = "hidden";
				setopacity(showhide_divs[e],0);
			}
		}
	}

	for (l=0; l<showhide_links.length; l++) {
		if (showhide_links[l] == thislink) {
			if (document.getElementById(thislink)) {
				document.getElementById(thislink).className = "selected";
			}
		}
		else {
			if (document.getElementById(showhide_links[l])) {
				document.getElementById(showhide_links[l]).className = "default";
			}
		}
	}
}


// --------------------- Show/Hide text code -----------------------------------------

function viewtext(id,type) {
	thisel = document.getElementById(id);
	if (type == 1) { // open and close blocks independently
		if (thisel.style.display == "none") {
			thisel.style.display = "block";
			thisviewtext = id;
		}
		else {
			thisel.style.display = "none";
			thisviewtext = "";
		}
	}
	else if (type == 2) { // replace closed text with opened
		openel = document.getElementById(thisviewtext);
		if (openel) {
			openel.style.display = "none";
		}
		thisel.style.display = "block";
		thisviewtext = id;
	}
}





// --------------------- Scroller code -----------------------------------------

var setmove = null;
var setmovestep = null;

// set the delay speed at which the scroller moves to the new position (1 = no delay; larger numbers = more delay)
	divMove = 4;

var divrepos = 243;



var posfix = 0;
var count = 0;
var fixcount = 0;


function scrollNav(move,step) {
	if (thisviewtext) {
		return;
	}

	if (move == 'stop') {
		if (setmove != null) clearTimeout(setmove);
		if (setmovestep != null) clearTimeout(setmovestep);
		return;
	}

	scrollmove(move,step);
	count++;
	//fixcount++;
}

function scrollmove(move,step) {
	scrolldiv = document.getElementById ? document.getElementById('scrollsubshell2') : document.all('scrollsubshell2');
	//divrepos = 180;
	scrollw = divrepos * (scroll_arr.length);
	divpos = scrolldiv.offsetLeft;
	scrollend = divpos + scrollw;
	divStep = null;

	if (divMove < 1) {
		divMove = 1;
	}

	if (step != null) {
		//divStep = step;
		divStep = divMove;
	}
	else {
		divStep = divMove;
	}

	if ((divrepos/divMove) != parseInt(divrepos/divMove)) {
		if (count == divStep) {
			posfix = 1;
			count = 0;
		}
	}

	if (move == 'back' && divpos < -3) {
		divpos = divpos + Math.round(divrepos/divStep) - posfix;
	}
	else if (move == 'fwd' && (scrollend > ((divrepos * 3) /*+ fixcount*/))) {
		divpos = divpos - Math.round(divrepos/divStep) + posfix;
	}

	posfix = 0;

	scrolldiv.style.left = divpos + "px";
	if (step != null) {
		for (i=1; i<divMove; i++) {
			setmovestep = setTimeout("scrollNav('"+move+"')", (100*i));
		}
		setTimeout("scrollNav('stop')", (100*divMove));
	}
	else if (setmovestep == null) {
		setmove = setTimeout("scrollNav('"+move+"')", 100);
	}
}


function scrollinit() {
	scrolldiv = document.getElementById ? document.getElementById('scrollsubshell2') : document.all('scrollsubshell2');

	if (scrolldiv) {
		scrollheight = scrolldiv.offsetHeight;

		var item = scrolldiv.getElementsByTagName("div");
		for(var i=0;i<item.length;i++) {
			if (item[i].className == "scrollitem") {
				for(t=0; t<item[i].childNodes.length; t++) {
					if (item[i].childNodes[t].className == "scrolltext") {
						if (item[i].childNodes[t].offsetHeight > scrollheight) {
							for (c=0; c<item[i].childNodes.length; c++){
								if (item[i].childNodes[c].className == "openlink") {
									item[i].childNodes[c].style.visibility = "visible";
								}
							}
						}
					}
				}
			}
		}
	}
}



// --------------------- Gallery Slideshow code -----------------------------------------

function createRequest() {
	var request = null;
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return request;
	if (request == null) {
		alert("Browser does not support HTTP Request.");
	}
}

var curssurl;


function startss(id,gid,row) {
	ssimages(id,gid,row);
}

function ssimages(id,gid,row) {
	ssimgshell = document.getElementById('ssimageshell');
	ssimg = document.getElementById('ssimage');
	ssct = document.getElementById('sscount');
	sstn = document.getElementById('ssthumbs');
	sscap = document.getElementById('sscaption');
	thistn = document.getElementById('tn'+id);
	tnimage_style = "tnimage";
	tnimage_selected_style = "tnimage selected";

	if (!curssurl) {
		curssurl = ssimg.style.backgroundImage;
	}

	re = /url\(|\)/gi;
	curssurl = curssurl.replace(re,'');
	curssbase = "http://www.bard.edu/iwt/lib/db_slideshow.php";
	curssid = id;
	curssgid = gid;

	if (row) {
		newssurl = curssbase + "?id=" + curssid + "&row=" + row + "&gid=" + curssgid;
		newimg(newssurl,'thumbs',id,gid);
	}
	else {
		newssurl = curssbase + "?id=" + curssid + "&gid=" + curssgid;
		newimg(newssurl,'img');
	}
}


function newimg(url,func,id,gid) {
	thisid = id;
	thisgid = gid;
	request = createRequest();
	request.open("GET", url, true);
	request.setRequestHeader('Content-Type', 'text/xml');
	if (func == 'img') {
		request.onreadystatechange = swapimg;
	}
	else if (func == 'thumbs') {
		request.onreadystatechange = swapthumbs;
	}
	request.send(null);
	if (func == 'thumbs') {
	}
}

function swapimg() {
	if (request.readyState == 4) {
		response = request.responseXML.documentElement;
		newssurl = response.getElementsByTagName("url")[0].firstChild.nodeValue;
		cursscaption = response.getElementsByTagName('caption')[0].firstChild.nodeValue;
		cursswidth = response.getElementsByTagName('width')[0].firstChild.nodeValue;
		curssheight = response.getElementsByTagName('height')[0].firstChild.nodeValue;
		cursscount = response.getElementsByTagName('count')[0].firstChild.nodeValue;
		ssimg.src = newssurl;
		curssurl = newssurl;
		ssimg.style.width = cursswidth + "px";
		ssimg.style.height = curssheight + "px";
		if (curssheight < imgheight) {
			ssimgshell.style.textAlign = "left";
			ssimg.style.position = "absolute";
		}
		else {
			ssimgshell.style.textAlign = "center";
			ssimg.style.position = "relative";
		}
		sscap.innerHTML = cursscaption;
		ssct.innerHTML = cursscount;
		
		var e=document.getElementsByTagName("img");
		for(var i=0;i<e.length;i++) {
			if (e[i].className == tnimage_selected_style) {
				//e[i].style.borderWidth = "0px 0px 0px 0px";
				//e[i].style.padding = "1px 1px 1px 1px";
				e[i].className = tnimage_style;
			};
		}
		//thistn.style.borderWidth = "1px 1px 1px 1px";
		//thistn.style.padding = "0px 0px 0px 0px";
		thistn.className = tnimage_selected_style;
	}
}

function swapthumbs() {
	if (request.readyState == 4) {
		response = request.responseText;
		sstn.innerHTML = response;
		ssimages(thisid,thisgid);
	}
}







// --------------------- Get Position code -----------------------------------------

function getpos(id) {
	thediv = document.getElementById(id);

	divtop = thediv.offsetTop;
	divleft = thediv.offsetLeft;

	if (thediv.offsetHeight) {
		divheight = thediv.offsetHeight;
	}
	else {
		divheight = 0;
	}

	if (thediv.offsetWidth) {
		divwidth = thediv.offsetWidth;
	}
	else {
		divwidth = 0;
	}

	divtop = 0;
	if (thediv.offsetParent) {
		while (thediv.offsetParent) {
			divtop += thediv.offsetTop
			thediv = thediv.offsetParent;
		}
	}
	else if (thediv.y) {
		divtop += thediv.y;
	}

	thediv = document.getElementById(id);

	divleft = 0;
	if (thediv.offsetParent) {
		while (thediv.offsetParent) {
			divleft += thediv.offsetLeft
			thediv = thediv.offsetParent;
		}
	}
	else if (thediv.x) {
		divleft += thediv.x;
	}

	divpos = new Array();
	divpos[0] = divtop;
	divpos[1] = divheight;
	divpos[2] = divleft;
	divpos[3] = divwidth;

	return divpos;
}




// --------------------- Layer Fade code -----------------------------------------


timers = new Array();

function resettimers() {
	timers = new Array();
}

function setopacity(thisdiv,percent,ignore) {
	thefadediv = document.getElementById(thisdiv);
	if (thefadediv) {
		thefadediv.style.opacity = (percent/101);
		thefadediv.style.MozOpacity = (percent/101);
		thefadediv.style.KhtmlOpacity = (percent/100);
		if (ignore != 'ignore_ie') thefadediv.style.filter = "alpha(opacity=" + percent + ")";
	}
}

function fade(thisdiv,start,end,dur,fps,ignore) {
	if (!fps) {
		fps = 15;
	}

	if (!ignore) {
		ignore = null;
	}

	if (!dur && fade_duration != null) {
		dur = fade_duration;
	}

	var fadesteps = (dur * fps);
	var fadestepdur = Math.round((dur * 1000) / fadesteps);

	fadeopac = start;
	if (start < end) {
		var opacstep = ((end - start) / fadesteps);
		for(i=0; i<=fadesteps; i++) {
			window['fade' + i] = setTimeout("setopacity('" + thisdiv + "'," + fadeopac + ",'" + ignore + "')",(i * fadestepdur));
			timers.push(window['fade' + i]);
			fadeopac = (i==(fadesteps-1)) ? end : (fadeopac + opacstep);
		}
	}
	else if (start > end) {
		var opacstep = ((start - end) / fadesteps);
		for(i=0; i<=fadesteps; i++) {
			window['fade' + i] = setTimeout("setopacity('" + thisdiv + "'," + fadeopac + ",'" + ignore + "')",(i * fadestepdur));
			timers.push(window['fade' + i]);
			fadeopac = (i==(fadesteps-1)) ? end : (fadeopac - opacstep);
		}
	}
}





// --------------------- OnLoad code -----------------------------------------

window.onload=function() {
	if(display != "print" && display != "popup") {
		self.name = "mainwin";
		//if (self.focus) {self.focus()}

		setotherpos();

		initpage();

		if(page != "home") {
			scrollinit();
		}
	}
}
