$(function() {
	        
	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();
		
	$('.clearOnFocus').defaultVal('Enter Keywords');
		
    init_gallery();
});

window.onload = function() {
    if(document.getElementById('HomeFlash'))
        init_Flash_Home();

}

function init_Flash_Home() {
    var flashURL = document.getElementById('HomeFlash').getElementsByTagName('span')[0].innerHTML;
    renderFlash_Home(flashURL);
}

// Search

function search(loc, term) {
    if (loc != null && term != null)
    {
        var folder = document.getElementById(loc).value;
        var searchString = document.getElementById(term).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
    }
}


// Submit on Enter Key (c2library)
// onkeypress="return enterKey(event,'objectID')"
function enterKey(e,id) {
	if(document.getElementById(id)) {
		var key = getKey(e);
		if (key && key == 13) {
			//eval(code);
			var object = document.getElementById(id);
			if(object.tagName == 'A') {
				var href = object.href.replace(window.location,"");
				if(href.length > 1) {
					eval(unescape(object.href.replace(/^javascript:/i,"")));
				}
				else {
					object.onclick();
				}
				return false;
			}
			else if(object.tagName == 'INPUT' || object.tagName == 'BUTTON') {
			    object.click();
				return false;
			}
		}
	}
	return true;
}

function getKey(e){
    if(!e) e = window.event;
	var key = e.which;
	if(!key) key = e.keyCode;
	return key;
}

// Email Form Popup
function emailWindow(location) {
    var newWindow;
    if(location) {
        newWindow = window.open('/edu_emailPage.aspx?page='+escape(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()', 350);
	   // 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";
        }
    }
}


function init_gallery() {
    var gallerys = $('a[href^="#gallery"]').click(function(e) {
        e.preventDefault();
        $('#overlay').show();
        var scrolltop = $(window).scrollTop();
        $('#photoModal').show().css('margin-top',scrolltop + 55 + 'px');
        var id = $(this).attr('href').substring(8);
        renderFlash_Gallery('/edu_flash.ashx?id='+id+'&refresh=');
    }).length;
    if(gallerys > 0) {
        $('body').append('<div id="overlay"></div><div id="photoModal"><div class="body"><a href="#" title="Close" class="pmClose" id="pmClose"></a><div id="GalleryFlash"></div></div></div>');
        $('#pmClose').click(function(e) {
            e.preventDefault();
            $('#overlay').hide();
            $('#photoModal').hide();
            $('#GalleryFlash').html('');
        });
    }
}


/* Gallery 
function gallery_open(containerId, xmlFile){
    renderFlash_Gallery(xmlFile);
}
function gallery_close(containerId){
    $('#GalleryFlash').html('');
}*/
/* Calendar */
function calendar_next(tid){
    //var tid = $('#calendar' + '_hdn_t').attr('value');
    var m = $('#calendar' + '_hdn_next_m').attr('value');
    var y = $('#calendar' + '_hdn_next_y').attr('value');
    return calendar_get(tid, y, m);
}
function calendar_prev(tid){
    //var tid = $('#calendar' + '_hdn_t').attr('value');
    var m = $('#calendar' + '_hdn_prev_m').attr('value');
    var y = $('#calendar' + '_hdn_prev_y').attr('value');
    return calendar_get(tid, y, m);
}
function calendar_get(tid, y, m)
{
    var calReq = {};
    calReq.TaxonomyId = tid;
    calReq.Month = m;
    calReq.Year = y;
    
    var DTO = { 'request' : calReq };

    doJson(
        '/webservices/edu_ne.asmx/LoadCalendar',
        JSON.stringify(DTO),
        function(result, textStatus){
            $('#calendarContainer').html(result.Html);
        },
        function(request, status, err){
             if (request.readyState == 4) {
                switch (request.status) {
                // Page-not-found error
                case 404:
                    alert('Error: Not Found. The requested URL could not be found.');
                    break;
                // Internal server error
                case 500:
                    if (request.responseText.Message) {
                        alert(request.responseText.Message);
                    }
                    else {
                        alert(request.responseText);
                    }
                    break;
                default:
                    break;
                }
            }
        },
        function(XMLHttpRequest, textStatus){
        });
        
    return false;
}

// jquery plug in to clear input/textareas on focus
// supports text inputs and textareas (not passwords)
// just call $('.clearOnFocus').clearOnFocus(); when DOM ready
//(function($){
//	$.fn.extend({
//		clearOnFocus: function(){
//			return this.each(function(){
//				var obj = $(this);
//				if(obj.attr('type') == 'text'){
//					obj.focusin(
//						function(){
//							if(this.value == this.defaultValue){
//								this.value = '';
//							}
//						}
//					);
//					obj.focusout(function(){
//							if(this.value == '' || $.trim(this.value) == ''){
//								this.value = this.defaultValue;
//							}
//						}
//					);
//				}
//				if(obj[0].tagName == 'TEXTAREA'){
//					var tempVal = obj.val();
//					obj.focusin(
//						function(){
//							if(obj.val() == tempVal){
//								obj.val('');
//							}
//						}
//					);
//					obj.focusout(
//						function(){
//							if(obj.val() == '' || $.trim(obj.val()) == ''){
//								obj.val(tempVal);
//							}
//						}
//					);
//				}
//			});
//		}
//	});
//})(jQuery);

(function($) {

$.fn.defaultVal = function(defaultValue) {
	return this.each(function() {
		var val = this.defaultValue;
		if(defaultValue) { val = defaultValue; }
		var $this = $(this);
		$this.focus(function() {
			if(val == this.value) {
				this.value = "";
			}
			$this.removeClass('defaultValue').addClass('userValue');
		});
		$this.blur(function() {
			if(this.value.replace(/\s/g,"").length < 1) {
				this.value = val;
				$this.addClass('defaultValue').removeClass('userValue');
			}
		});
		$this.next('input.button').click(function(e) {
		    if(!$this.hasClass('userValue')) {
		        $this.val('');
		    }
		});
		if(val != this.value) {
		    $this.removeClass('defaultValue').addClass('userValue');
		}
	});
};

})(jQuery);
