
//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++;
	}
}

// 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 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);
}

// 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;
}

// 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("calendarDisplay");
    if (calendar != null)
    {
        calendar.innerHTML = resultObj.renderedCalendar;
    }
    var todaysEvents = document.getElementById("eventList");
    if (todaysEvents != null)
    {
        todaysEvents.innerHTML = resultObj.renderedTodaysEvents;
    }
    var eventSlider = document.getElementById("eventSlider");
    if (eventSlider != null)
    {
        eventSlider.innerHTML = resultObj.renderedEvents;
    }
    var eventSliderTitle = document.getElementById("pageTitleDiv");
    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("pageTitleDiv");
    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();
}