
window.onload = function() {
    if(document.getElementById('HomeFlash'))
        init_Flash_Home();
        
	if(document.getElementById('ChannelMenu'))
		init_menuTheme();
		
	if(document.getElementById('PrimaryMenu'))
		init_mainMenu();
		
	if(document.getElementById('Slider'))
		init_slider();
		
	if(document.getElementById('NewsEvents'))
		init_newsEvents();
		
	if(document.getElementById('NewsPreview'))
		init_newsPreview();
		
	if(document.getElementById('eventSlider'))
		init_eventSlide();
		
	if(document.getElementById('archiveSlider'))
		init_archiveSlide();
}

function init_Flash_Home() {
    var flashURL = document.getElementById('HomeFlash').getElementsByTagName('span')[0].innerHTML;
    renderFlash_Home(flashURL);
}

// Search
function search() {
    var folder = document.getElementById('ctl00_SearchBar_ddlSearchLocations').value;
    var searchString = document.getElementById('ctl00_SearchBar_txtSearchTerms').value;
    var searchValue = searchString.replace(/[^A-Za-z0-9_ "'\.,+-]/gi,"");
    
    if (searchValue.length > 0)
    {
        location.href = "/edu_search.aspx?term="+searchValue+"&folder="+folder;
    }
}
function search_keypress(e) {
    var characterCode;
    if(e && e.which){ //if which property of event object is supported (NN4)
        e = e;
        characterCode = e.which; //character code is contained in NN4's which property
    }
    else{
        e = window.event;
        characterCode = e.keyCode; //character code is contained in IE's keyCode property
    }

    if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
        search(); //submit the form
    }
}

// Email Form Popup
function emailWindow(location) {
    var newWindow;
    if(location) {
        newWindow = window.open('/edu_emailPage.aspx?page='+location, 'popForm', 'toolbar=0,sizable=1,width=280,height=330');
    }
    else {
        newWindow = window.open('/edu_emailPage.aspx', 'popForm', 'toolbar=0,sizable=1,width=280,height=330');
    }
    newWindow.focus();
}


// Page Top Expander
var expState = "closed";
var expTime;
var expStatus = "stopped";

function toggleTab(tab) {
	if(expStatus == "stopped") {
	expStatus = "going";
	if(tab.id != expState) {
		if(expState != "closed") {
			document.getElementById(expState).className = "utilityTab";
			document.getElementById('exp_'+expState).className = "exp_hide";
		}
		tab.className = "utilityTabSel";
		document.getElementById('exp_'+tab.id).className = "exp_show";
		if(expState == "closed") {
				expTime = setInterval('expand()', 10);
		}
		else {
			expStatus = "stopped";
		}
		expState = tab.id;
	}
	else {
		expTime = setInterval('unexpand()', 10);
	}
	}
}

function expand() {
	var page = document.getElementById('page');
	var object = document.getElementById('exp_page');
	if(object.clientHeight < 120) {
		var dis = (120 - object.clientHeight) / 8 + 1;
		object.style.height = object.clientHeight + dis + "px";
		if(page.className == "evenCount")
			page.className = "oddCount";
		else
			page.className = "evenCount";
	}
	else {
		clearInterval(expTime);
		expStatus = "stopped";
		object.style.height = "120px";
		if(page.className == "evenCount")
			page.className = "oddCount";
		else
			page.className = "evenCount";
	}
}

function unexpand() {
	var page = document.getElementById('page');
	var object = document.getElementById('exp_page');
	if(object.clientHeight > 3) {
		var dis = object.clientHeight / 8 + 1;
		object.style.height = object.clientHeight - dis + "px";
		if(page.className == "evenCount")
			page.className = "oddCount";
		else
			page.className = "evenCount";
	}
	else {
		clearInterval(expTime);
		expStatus = "stopped";
		object.style.height = "0px";
		document.getElementById(expState).className = "utilityTab";
		document.getElementById('exp_'+expState).className = "exp_hide";
		expState = "closed";
		if(page.className == "evenCount")
			page.className = "oddCount";
		else
			page.className = "evenCount";
	}
}


// Utility Search Expand Feature
var stime;
var utilitySearch = false;

function toggleSearch() {
	if(utilitySearch) {
		stime = setInterval('openUtilitySearch()',10);
	}
	else {
		stime = setInterval('closeUtilitySearch()',10);
	}
}

function openUtilitySearch() {
	var object = document.getElementById('usbWrapper');
	if(object.clientWidth > 2) {
		var dis = object.clientWidth / 8 + 1;
		object.style.width = object.clientWidth - dis + "px";
	}
	else {
		clearInterval(stime);
		object.style.width = "2px";
		utilitySearch = false;
	}
}

function closeUtilitySearch() {
	var object = document.getElementById('usbWrapper');
	var size = document.getElementById('usbSize');

	if(object.clientWidth <= size.clientWidth) {
		var dis = (size.clientWidth - object.clientWidth) / 8 + 1;
		object.style.width = object.clientWidth + dis + "px";
	}
	else {
		clearInterval(stime);
		utilitySearch = true;
	}
}


// Primary Nav Hover
var navHoverTheme;
var navTheme = "off";
var navTime;
var navOnload = false;
function init_menuTheme() {
	var header = document.getElementById('header');
	header.onmouseover = function() { menuTheme('off'); }
	navOnload = true;
}
function menuTheme(theme) {
    if(theme != navTheme && navOnload) {
	    navHoverTheme = theme;
	    if(navTheme != "off" && navHoverTheme != "off")
		    navTime = setTimeout('stickTheme()', 250);
	    else
		    stickTheme();
	}
}
function jumpTheme(theme) {
    if(theme != navTheme) {
	    navHoverTheme = theme;
	    stickThemeFromFlash();
	}
}
function stickTheme() {
	if(navTheme != "off")
		document.getElementById('a_'+navTheme).className = "";

	navTheme = navHoverTheme;
	
	if(navTheme != "off")
		document.getElementById('a_'+navTheme).className = "hover";

	object = document.getElementById('PrimaryNav');
	object.className = navTheme;
	
	 // Determine Flash ChannelID based on theme
	 switch(navTheme)
	 {
	     case "undergrad":
	         changeChannelById(0);
	         break;
	     case "graduate":
	         changeChannelById(1);
	         break;
	     case "adultpro":
	         changeChannelById(3);
	         break;
	     case "online":
	         changeChannelById(4);
	         break;
	     default:
	         changeChannelById(2);
	         break;
	 }
}
function stickThemeFromFlash() {
	if(navTheme != "off")
		document.getElementById('a_'+navTheme).className = "";

	navTheme = navHoverTheme;
	
	if(navTheme != "off")
		document.getElementById('a_'+navTheme).className = "hover";

	object = document.getElementById('PrimaryNav');
	object.className = navTheme;
}
function clearMenuTheme() {
	clearTimeout(navTime);
}


// Dropd Menu Hover
var dropdDivID;
var dropdObject;
var dropdTime;
function dropdOpen(object, divID) {
	if(dropdObject && dropdObject.className == "dropdSel") {
		clearTimeout(dropdTime);
		dropdCloseNow();
	}
	object.className = "dropdSel";
	var div = document.getElementById(divID);
	var page = document.getElementById('page');
	var target = findElementPos(object);
	var offset = findElementPos(page);
	div.style.top = (target[1] - offset[1]) + 29 + "px";
	div.style.left = (target[0] - offset[0]) - 4 + "px";
	div.style.display = "block";
	dropdObject = object;
	dropdDivID = divID;
}
function dropdClose() {
	dropdTime = setTimeout('dropdCloseNow()', 10);
}
function dropdCloseNow() {
	dropdObject.className = "dropd";
	var div = document.getElementById(dropdDivID);
	div.style.display = "none";
}
function dropdSave() {
	clearTimeout(dropdTime);
}

// Main Menu Hover
var MenuDivID;
var MenuObject;
var MenuTime;
function init_mainMenu() {
	var primary = document.getElementById('PrimaryNav').getElementsByTagName('div');
	for (var x = 0; x < primary.length; x++) {
		if(primary[x].className == "mainMenu") {
			var top = document.createElement("div");
			top.className = "mainMenuTop";
			primary[x].insertBefore(top, primary[x].getElementsByTagName('ul')[0]);
			var bottom = document.createElement("div");
			bottom.className = "mainMenuBottom";
			primary[x].appendChild(bottom);
		}
	}
}
function menuOpen(object, divID) {
	if(MenuObject && MenuObject.className == "on") {
		clearTimeout(MenuTime);
		menuCloseNow();
	}
	object.className = "on";
	if(document.getElementById(divID)) {
		var div = document.getElementById(divID);
		var page = document.getElementById('page');
		var target = findElementPos(object);
		var offset = findElementPos(page);
		div.style.top = (target[1] - offset[1]) + 23 + "px";
		//div.style.left = (target[0] - offset[0]) - 4 + "px";
		var Left = (target[0] - offset[0]) - 4;
		if(Left > 741)
			Left = Left + object.clientWidth - 209;
		//	Left = 741;
		div.style.left = Left + "px";
		div.style.display = "block";
	}
	MenuObject = object;
	MenuDivID = divID;
}
function menuClose() {
	MenuTime = setTimeout('menuCloseNow()', 10);
}
function menuCloseNow() {
	MenuObject.className = "";
	if(document.getElementById(MenuDivID)) {
		document.getElementById(MenuDivID).style.display = "none";
	}
}
function menuSave() {
	clearTimeout(MenuTime);
}

// Methods
function findElementPos(elemFind)
{
	var elemX = 0;
	var elemY = 0;
	do {
		elemX += elemFind.offsetLeft;
		elemY += elemFind.offsetTop;
	} while ( elemFind = elemFind.offsetParent )

	//console.log("Found element "+elemFind+" at "+elemY+"/"+elemX);

	return Array(elemX, elemY);
}

function sineInOut(t, b, c, d)
{
	return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
}

function LoadUrl(url)
{
    if (url != null && url != "")
    {
        window.location=url;
    }
}


// Grey Box Hovers
var BoxOverride = "";
function boxOn(object) {
	object.className = "box";
}
function boxOff(object) {
	if(!object.id || BoxOverride != object.id)
		object.className = "gbox";
}
function boxOverrideOn(id) {
	BoxOverride = id;
}
function boxOverrideOff() {
	document.getElementById(BoxOverride).className = "gbox";
	BoxOverride = "";
}



//var currentDisplay = 1;
//var slideDisplayCount = 0;
//var slideOffset;

function init_slider() {
	//slideDisplayCount = document.getElementById("Slider").getElementsByTagName("div").length;
	var slideOffset = (document.body.offsetWidth - 1200) / 2;
	document.getElementById('Slider').style.left = slideOffset + "px";
	window.onresize = positionSlider;
	ScrollDisplay(1);
}

var positionSlider = function() {
	var slideOffset = (document.body.offsetWidth - 1200) / 2;
	document.getElementById('Slider').style.left = slideOffset + "px";
}

function ScrollDisplay(num)
{
	var DisplayImage = "slide" + num;
	theScroll = document.getElementById('Frame');
	position = findElementPos(document.getElementById(DisplayImage));
	offsetPos = findElementPos(document.getElementById('slide1'));
	position[0] = position[0] - offsetPos[0];
	scrollStart(theScroll, theScroll.scrollLeft, position[0]);
}

var scrollanim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null};

function scrollStart(elem, start, end, direction)
{
	if (scrollanim.timer != null) {
		clearInterval(scrollanim.timer);
		scrollanim.timer = null;
	}
	scrollanim.time = 0;
	scrollanim.begin = start;
	scrollanim.change = end - start;
	scrollanim.duration = 50;
	scrollanim.element = elem;
	scrollanim.timer = setInterval("scrollHorizAnim();", 15);

}
function scrollHorizAnim()
{
	if (scrollanim.time > scrollanim.duration) {
		clearInterval(scrollanim.timer);
		scrollanim.timer = null;
	}
	else {
		move = sineInOut(scrollanim.time, scrollanim.begin, scrollanim.change, scrollanim.duration);
		scrollanim.element.scrollLeft = move;
		scrollanim.time++;
	}
}


// Entity slide functions
var entitySlide = 1;
function selectSlide(num) {
	if(num != entitySlide)
	{
		ScrollDisplay(num);
		document.getElementById('slideDetails'+entitySlide).className = "off";
		document.getElementById('slideDetails'+num).className = "on";
		document.getElementById('Thumb'+entitySlide).className = "thumb";
		document.getElementById('Thumb'+num).className = "thumbSel";
		var page = document.getElementById('EntityBody');
		if(page.className == "evenCount")
			page.className = "oddCount";
		else
			page.className = "evenCount";
		entitySlide = num;
	}
}



// News and Events
var neOffSet = 0;
var neStatus = "stopped";
var neTimeHover;
var neAnim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null, end:0};

function init_newsEvents() {
	var object = document.getElementById('NewsEvents');
	
	var top = document.createElement("div");
	top.className = "neShadowTop";
	object.appendChild(top);
	top.innerHTML +="";
	
	var bottom = document.createElement("div");
	bottom.className = "neShadowBottom";
	object.appendChild(bottom);
	bottom.innerHTML +="";
	
	var left = document.createElement("div");
	left.className = "neShadowLeft";
	object.appendChild(left);
	left.innerHTML +="";
	left.style.height = object.clientHeight - 46 + "px";
	
	var right = document.createElement("div");
	right.className = "neShadowRight";
	object.appendChild(right);
	right.innerHTML +="";
	right.style.height = object.clientHeight - 46 + "px";
}

function showNews() {
	neTimeHover = setTimeout('showNewsNow()', 100);
}
function showNewsNow() {
	if(neStatus != "news") {
		neStatus = "news";
		var elem = document.getElementById('Screen');
		neStartScreen(elem, neOffSet, 0);
	}
}
function showEvents() {
	neTimeHover = setTimeout('showEventsNow()', 100);
}
function showEventsNow() {
	if(neStatus != "events") {
		neStatus = "events";
		var elem = document.getElementById('Screen');
		neStartScreen(elem, neOffSet, 500);
	}
}
function clearTimeHover() {
	clearTimeout(neTimeHover);
}
function neStartScreen(elem, start, end)
{
	if (neAnim.timer != null) {
		clearInterval(neAnim.timer);
		neAnim.timer = null;
	}
	neAnim.time = 0;
	neAnim.begin = start;
	neAnim.end = end;
	neAnim.change = end - start;
	neAnim.duration = 30;
	neAnim.element = elem;
	neAnim.timer = setInterval("neMoveScreen();", 15);
}
function neMoveScreen()
{
	if (neAnim.time > neAnim.duration) {
		clearInterval(neAnim.timer);
		neAnim.timer = null;
		neOffSet = neAnim.end;
		neStatus = "stopped";
	}
	else {
		neOffSet = sineInOut(neAnim.time, neAnim.begin, neAnim.change, neAnim.duration);
		neAnim.element.style.marginLeft = neOffSet * -1 + "px";
		neAnim.time++;
	}
}


function showTab(num) {
	if(num == 1) {
		document.getElementById('tab1').className = "tabOn";
		document.getElementById('tab2').className = "tabOff";
		document.getElementById('tab1Content').className = "show";
		document.getElementById('tab2Content').className = "hide";
	}
	else {
		document.getElementById('tab1').className = "tabOff";
		document.getElementById('tab2').className = "tabOn";
		document.getElementById('tab1Content').className = "hide";
		document.getElementById('tab2Content').className = "show";
	}
}


// News Preview
var nePreviewCurrentID = "nePreview1";
var nePreviewObjectID = "";
var nePreviewTime;
var nePreviewStatus = "stopped";
var nePreviewIteration = 0;
var nePreviewHover;
var nePreviewMouse = null;
function init_newsPreview() {
	var object = document.getElementById('NewsPreview');
	object.style.height = object.clientHeight + "px";
}
function nePreview(object) {
	nePreviewMouse = object.id;
	if(nePreviewStatus == "stopped") {
		nePreviewObjectID = nePreviewMouse;
		nePreviewHover = setTimeout('nePreviewNow()', 150);
	}
}
function nePreviewClear() {
	nePreviewMouse = null;
	clearTimeout(nePreviewHover);
}
function nePreviewNow() {
	if(nePreviewStatus == "stopped" && nePreviewObjectID != nePreviewCurrentID) {
		nePreviewStatus = "going";
		var object = document.getElementById(nePreviewObjectID);
		object.style.height = "35px";
		object.getElementsByTagName('div')[0].style.paddingTop = "0px";
		object.getElementsByTagName('div')[2].style.marginTop = "-98px";
		object.style.opacity = ".25";
		object.style.filter = "alpha(Opacity=25)";
		object.className = "window";
		nePreviewTime = setInterval('nePreviewTransition()', 15);
	}
}
function nePreviewTransition() {
	var close = document.getElementById(nePreviewCurrentID);
	var open = document.getElementById(nePreviewObjectID);
	if(nePreviewIteration < 191) {
		nePreviewIteration = nePreviewIteration + ((191 - nePreviewIteration) / 8 + 1);
		close.style.height = 191 - nePreviewIteration + 35 + "px";
		open.style.height = nePreviewIteration + 35 + "px";
		open.getElementsByTagName('div')[0].style.paddingTop = (nePreviewIteration / 191) * 25 + "px";
		close.getElementsByTagName('div')[0].style.paddingTop = 25 - ((nePreviewIteration / 191) * 25) + "px";
		close.getElementsByTagName('div')[2].style.marginTop = (nePreviewIteration / 191) * -98 + "px";
		open.getElementsByTagName('div')[2].style.marginTop = -98 - ((nePreviewIteration / 191) * -98) + "px";
		close.style.opacity = (100 - ((nePreviewIteration / 191) * 75)) * .01;
		open.style.opacity = (25 + ((nePreviewIteration / 191) * 75)) * .01;
		close.style.filter = 'alpha(Opacity=' + (100 - ((nePreviewIteration / 191) * 75)) + ')';
		open.style.filter = 'alpha(Opacity=' + (25 + ((nePreviewIteration / 191) * 75)) + ')';

	}
	else {
		nePreviewIteration = 0;
		close.style.height = "35px";
		open.style.height = "226px";
		close.getElementsByTagName('div')[2].style.marginTop = "-98px";
		open.getElementsByTagName('div')[2].style.marginTop = "0px";
		close.style.opacity = .25;
		open.style.opacity = 1;
		close.style.filter = 'alpha(Opacity=25)';
		open.style.filter = 'alpha(Opacity=100)';
		document.getElementById(nePreviewCurrentID).className = "windowClosed";
		document.getElementById(nePreviewObjectID).className = "window";
		nePreviewCurrentID = nePreviewObjectID;
		nePreviewStatus = "stopped";
		clearInterval(nePreviewTime);
		if(nePreviewMouse) {
			nePreviewObjectID = nePreviewMouse;
			nePreviewNow();
		}
	}
}


// Event Slider
var eventNum = 1;
var eventMouse;
function init_eventSlide() {
	document.getElementById('eventView').scrollTop = "0px";
	
	var object = document.getElementById('eventView');
	if (object.addEventListener) {
        /** DOMMouseScroll is for mozilla. */
        object.addEventListener('DOMMouseScroll', slideEventWheel, false);
	}
	/** IE/Opera. */
	object.onmousewheel = slideEventWheel;
}
function slideEventUp() {
	if(eventNum > 1) {
		eventNum--;
		slideEvent(eventNum);
	}
	eventMouse = setInterval('slideEventUpMouse()', 200);
}
function slideEventDown() {
	var id = "Event" + (1 + eventNum);
	if(document.getElementById(id)) {
		eventNum++;
		slideEvent(eventNum);
	}
	eventMouse = setInterval('slideEventDownMouse()', 200);
}
function slideEventUpMouse() {
	if(eventNum > 1) {
		eventNum--;
		slideEvent(eventNum);
	}
}
function slideEventDownMouse() {
	var id = "Event" + (1 + eventNum);
	if(document.getElementById(id)) {
		eventNum++;
		slideEvent(eventNum);
	}
}
function slideEventClear() {
	clearInterval(eventMouse);
}
function slideEvent(num)
{
    eventNum = num;
	var displayEvent = "Event" + num;
	var theScroll = document.getElementById('eventView');
	var position = findElementPos(document.getElementById(displayEvent));
	var offsetPos = findElementPos(document.getElementById('Event1'));
	position[1] = position[1] - offsetPos[1];
	slideEventStart(theScroll, theScroll.scrollTop, position[1]);
}

var eventAnim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null};

function slideEventStart(elem, start, end, direction)
{
	if (eventAnim.timer != null) {
		clearInterval(eventAnim.timer);
		eventAnim.timer = null;
	}
	eventAnim.time = 0;
	eventAnim.begin = start;
	eventAnim.change = end - start;
	eventAnim.duration = 50;
	eventAnim.element = elem;
	eventAnim.timer = setInterval("scrollVertAnim();", 15);
}
function scrollVertAnim()
{
	if (eventAnim.time > eventAnim.duration) {
		clearInterval(eventAnim.timer);
		eventAnim.timer = null;
		if(eventNum > 1) {
            document.getElementById('eventUp').style.visibility = "visible";
        }
        else {
            slideEventClear();
            document.getElementById('eventUp').style.visibility = "hidden";
        }
	}
	else {
		move = sineInOut(eventAnim.time, eventAnim.begin, eventAnim.change, eventAnim.duration);
		eventAnim.element.scrollTop = move;
		eventAnim.time++;
	}
}

function slideEventWheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
        } else if (event.detail) { /** Mozilla case. */
                delta = -event.detail/3;
        }
        if (delta) {
			if(delta < 0) {
				slideEventDownMouse();
			}
			else {
				slideEventUpMouse();
			}
		}
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}



// Archive Slider
var archiveNum = 1;
var archiveMouse;
function init_archiveSlide() {
	document.getElementById('archiveView').scrollTop = "0px";
	
	var object = document.getElementById('archiveView');
	if (object.addEventListener) {
        /** DOMMouseScroll is for mozilla. */
        object.addEventListener('DOMMouseScroll', slideArchiveWheel, false);
	}
	/** IE/Opera. */
	object.onmousewheel = slideArchiveWheel;
}
function slideArchiveUp() {
	if(archiveNum > 1) {
		archiveNum--;
		slideArchive(archiveNum);
	}
	archiveMouse = setInterval('slideArchiveUpMouse()', 200);
}
function slideArchiveDown() {
	var id = "Archive" + (1 + archiveNum);
	if(document.getElementById(id)) {
		archiveNum++;
		slideArchive(archiveNum);
	}
	archiveMouse = setInterval('slideArchiveDownMouse()', 200);
}
function slideArchiveUpMouse() {
	if(archiveNum > 1) {
		archiveNum--;
		slideArchive(archiveNum);
	}
}
function slideArchiveDownMouse() {
	var id = "Archive" + (1 + archiveNum);
	if(document.getElementById(id)) {
		archiveNum++;
		slideArchive(archiveNum);
	}
}
function slideArchiveClear() {
	clearInterval(archiveMouse);
}
function slideArchive(num)
{
    archiveNum = num;
	var displayArchive = "Archive" + num;
	var theScroll = document.getElementById('archiveView');
	var position = findElementPos(document.getElementById(displayArchive));
	var offsetPos = findElementPos(document.getElementById('Archive1'));
	position[1] = position[1] - offsetPos[1];
	slideArchiveStart(theScroll, theScroll.scrollTop, position[1]);
}

var archiveAnim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null};

function slideArchiveStart(elem, start, end, direction)
{
	if (archiveAnim.timer != null) {
		clearInterval(archiveAnim.timer);
		archiveAnim.timer = null;
	}
	archiveAnim.time = 0;
	archiveAnim.begin = start;
	archiveAnim.change = end - start;
	archiveAnim.duration = 50;
	archiveAnim.element = elem;
	archiveAnim.timer = setInterval("scrollArchiveAnim();", 15);
}
function scrollArchiveAnim()
{
	if (archiveAnim.time > archiveAnim.duration) {
		clearInterval(archiveAnim.timer);
		archiveAnim.timer = null;
		if(archiveNum > 1) {
            document.getElementById('archiveUp').style.visibility = "visible";
        }
        else {
            slideArchiveClear();
            document.getElementById('archiveUp').style.visibility = "hidden";
        }
	}
	else {
		move = sineInOut(archiveAnim.time, archiveAnim.begin, archiveAnim.change, archiveAnim.duration);
		archiveAnim.element.scrollTop = move;
		archiveAnim.time++;
	}
}

function slideArchiveWheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
        } else if (event.detail) { /** Mozilla case. */
                delta = -event.detail/3;
        }
        if (delta) {
			if(delta < 0) {
				slideArchiveDownMouse();
			}
			else {
				slideArchiveUpMouse();
			}
		}
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}

// Asynchronous Event Functions
function LoadCalendarSucceeded(result, context)
{
    var resultObj = Sys.Serialization.JavaScriptSerializer.deserialize(result);
    var nr = Sys.Serialization.JavaScriptSerializer.deserialize(nextRequest);
    nr.StartDate = resultObj.nextStartDate;
    nr.EventsTaxonomy = resultObj.EventsTaxonomy;
    nextRequest = Sys.Serialization.JavaScriptSerializer.serialize(nr);
    var pr = Sys.Serialization.JavaScriptSerializer.deserialize(prevRequest);
    pr.StartDate = resultObj.prevStartDate;
    pr.EventsTaxonomy = resultObj.EventsTaxonomy;
    prevRequest = Sys.Serialization.JavaScriptSerializer.serialize(pr);
    var cr = Sys.Serialization.JavaScriptSerializer.deserialize(currentRequest);
    cr.StartDate = resultObj.currentStartDate;
    cr.EventsTaxonomy = resultObj.EventsTaxonomy;
    currentRequest = Sys.Serialization.JavaScriptSerializer.serialize(cr);
    var hlRssHref = document.getElementById("hlEventsRss");
    if (hlRssHref != null)
    {
        if (resultObj.RssHref != null && resultObj.RssHref != '')
        {
            hlRssHref.style.display = "inline";
            hlRssHref.href = resultObj.RssHref;
        }
        else
        {
            hlRssHref.style.display = "none";
        }
    }
    var calendar = document.getElementById("eventCalendarText");
    if (calendar != null)
    {
        calendar.innerHTML = resultObj.renderedCalendar;
    }
    var todaysEvents = document.getElementById("todaysEventsText");
    if (todaysEvents != null)
    {
        todaysEvents.innerHTML = resultObj.renderedTodaysEvents;
    }
    var eventSlider = document.getElementById("eventSlider");
    if (eventSlider != null)
    {
        eventSlider.innerHTML = resultObj.renderedEvents;
    }
    var eventSliderTitle = document.getElementById("sliderTitleText");
    if (eventSliderTitle != null)
    {
        eventSliderTitle.innerHTML = resultObj.sliderTitle;
    }
    if (resultObj.EventCount > 0)
    {
        slideEvent(1);
    }
}

function LoadCalendarFailed(result)
{
    var eventSlider = document.getElementById("eventSlider");
    if (eventSlider != null)
    {
        eventSlider.innerHTML = "<div class='event'><div class='desc'><p>Unable to load events.<br />" + result + "</p></div></div>";
    }
}
function LoadEventsSucceeded(result, context)
{
    var resultObj = Sys.Serialization.JavaScriptSerializer.deserialize(result);
    var eventSlider = document.getElementById("eventSlider");
    if (eventSlider != null)
    {
        eventSlider.innerHTML = resultObj.renderedEvents;
    }
    var eventSliderTitle = document.getElementById("sliderTitleText");
    if (eventSliderTitle != null)
    {
        eventSliderTitle.innerHTML = resultObj.sliderTitle;
    }
    slideEvent(1);
}

function LoadEventsFailed(result)
{
    var eventSlider = document.getElementById("eventSlider");
    if (eventSlider != null)
    {
        eventSlider.innerHTML = "<div class='event'><div class='desc'><p>Unable to load events.<br />" + result + "</p></div></div>";
    }
}

function ChangeTaxonomy(taxId)
{
    var cr = Sys.Serialization.JavaScriptSerializer.deserialize(currentRequest);
    cr.EventsTaxonomy = taxId;
    currentRequest = Sys.Serialization.JavaScriptSerializer.serialize(cr);
    currentMonth();
}


/* FAQ Functions */
function toggleFaq(id) {
	var question = document.getElementById('faqQ_'+id);
	var answer = document.getElementById('faqA_'+id);
	
	if(answer.className == "hide") {
		answer.className = "show";
		question.className = "selected";
	}
	else {
		answer.className = "hide";
		question.className = "";
	}
}

/* From SAU */
function swap(targetId){

  if (document.getElementById)
        {
        target = document.getElementById(targetId);
        
            if (target.style.display == "none")
                {
                target.style.display = "block";
                } 
            
            else 
                {
                target.style.display = "none";
                }

        }
}