﻿
var loc = document.location + ""
var jsNothing = "javascript://"
var sliding = 0
var months = ",January,February,March,April,May,June,July,August,September,October,November,December".split(",")

$(document).ready(function() { init() })



//main event initilization
function init() {

	//remove line from last drop-down item
	$('.nav ul ul li').eq($('.nav ul ul li').length - 1).find('a').addClass('noLine')
	$('.nav ul  li').eq($('.nav ul li').length - 1).find('a').css('margin-right', '0')

	initMenu()
	initSlideshow()
	initScrollPanels()
	initVideoThumbs()
	initPhotoGallery()
	initCalendars()
	$('.mainTop img').css('position','relative')

}



// calendar functions

function initCalendars() {
	if ($('#calendars').length) {
		now = new Date()

		var thisYear = parseInt(now.getFullYear())
		var thisMonth = parseInt(now.getMonth())

		var prevDate = Date.today().add({ months: 1 });
		var prevYear = parseInt(prevDate.getFullYear())
		var prevMonth = parseInt(prevDate.getMonth())

		var nextDate = Date.today().add({ months: 2 });
		var nextYear = parseInt(nextDate.getFullYear())
		var nextMonth = parseInt(nextDate.getMonth())

		drawCal($('#cal2'), now, prevMonth, prevYear)
		drawCal($('#cal1'), now, thisMonth, thisYear)
		drawCal($('#cal3'), now, nextMonth, nextYear)
		//showEvents(thisMonth + 1, thisYear)
		loadCalData()
	}


}


function drawCal(element, curDate, mo, yr) {

	//this populates the calendar grid
	//clear grid
	$(element).find('td').each(function(element) {
		if ($(element).html() != '&gt;') {
			$(element).html("")
		}
	})
	//fill in grid
	var thisCal = "#" + element.attr('id') + "_"
	var dy = 1
	//var mo = 1
	//var yr = 2010
	var wk = 1

	var startCal = new Date(yr, mo, 1)

	var days = Date.getDaysInMonth(yr, mo)

	//find start day of week
	if (startCal.is().sunday()) {
		dy = 1
	}
	if (startCal.is().monday()) {
		dy = 2
	}
	if (startCal.is().tuesday()) {
		dy = 3
	}
	if (startCal.is().wednesday()) {
		dy = 4
	}
	if (startCal.is().thursday()) {
		dy = 5
	}
	if (startCal.is().friday()) {
		dy = 6
	}
	if (startCal.is().saturday()) {
		dy = 7
	}
	var curYear = parseInt(curDate.getFullYear())
	var curMonth = parseInt(curDate.getMonth())
	var curDay = parseInt(curDate.getDate())

	//add label to calendar
	$(thisCal + "label").html("<div class='calTitle'>" + months[mo + 1] + " " + yr + "</div>")

	//$(thisCal + "label").observe('click',clickDate)
	$('#calendars td').click(function() {clickDate($(this)) })

	$(element).addClass("calReady")
	$(element).addClass("calR_" + parseInt(mo + 1) + "_" + yr)
	var displayWeek = (startCal.getWeek())
	for(var x=0;x<7;x++) {
		$(thisCal + 'w' + x + "_d0").html("<div class='calMonth'>" + (displayWeek+x) + "</div>")
	}
	
	for (var x = 1; x < days + 1; x++) {	
		if (x == curDay && yr == curYear && mo == curMonth) {
			//highlight selected day
			$(thisCal + 'w' + wk + "_d" + dy).html("<div class='calDate today'>" + x + "</div>")
		}
		else {
			$(thisCal + 'w' + wk + "_d" + dy).html("<div class='calDate'>" + x + "</div>")
		}

		dy++
		if (dy == 8) {
			dy = 1
			wk++

		}
	}
}


Date.prototype.getWeek = function() {
	var onejan = new Date(this.getFullYear(), 0, 1);
	return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
} 

function loadCalData() {
	//update calendars based on page data


	var curDate
	var curYear
	var curMonth
	var curDay
	var t = $('calendars').find('.eventStamp').toArray()


	//search event listings for dates
	$('#calendars').find('.eventStamp').each(function() {
		element = $(this)
		curDate = Date.parse($(element).html());
		curYear = parseInt(curDate.getFullYear())
		curMonth = parseInt(curDate.getMonth() + 1)
		curDay = parseInt(curDate.getDate())

		//does a calendar exist for this date?       
		if ($('#calendars').find(".calR_" + curMonth + "_" + curYear)) {
			var tmp = $('#calendars').find(".calR_" + curMonth + "_" + curYear).toArray()

			var thisCal = tmp[0]
			$(thisCal).find('.calDate:contains("' + curDay + '")').each(function(element) {
					$(this).parent().addClass('active')
			})
		}
	})
}

function clickDate(element) {
	//var element = Event.element(evt);

	var parentCal = element.parents('.calReady')

	var parentClass = parentCal.attr('class').split(",")
	for (var x = 0; x < parentClass.length; x++) {
		if (parentClass[x].indexOf('calR') > -1) {
			calStart = parentClass[x].split("_")
		}
	}
	var calMonth = calStart[1]
	var calYear = calStart[2]
	var calDay = element.innerHTML

	showEvents(element, calMonth, calYear)
}




function showEvents(element, mo, yr) {
	//hide events not this month and > 6
	var wrapper = $(element).parents('#calendars')
	$(wrapper).find('.cal.active').removeClass('active')
	$(element).parents('.cal').addClass('active')
	$(wrapper).find('.eventListing').hide()
	for (var x = 0; x < 4; x++) {
		if($(wrapper).find('.cal').eq(x).hasClass('active')) {
			$(wrapper).find('.eventListing').eq(x).show()
		}
		
	}
}


// end canedar //



// photo pallery //

function initPhotoGallery() {
	$('.gallery .thumbs a').click(function() {
		var wrapper = $(this).parents('.gallery')
		var target = wrapper.find('.info')
		var img = $(this).parents('.gallery').find('.large img')
		var src = $(this).next('.hidden')
		wrapper.find('.thumbs a').removeClass('active')
		$(this).addClass('active')
		target.html(src.html())
		$(img).attr('src', $(this).next('.hidden').find('.src').html())
		return false;
	})
	$('.gallery a.scrollLeft').click(function() {
		galleryScroll($(this),-1)
	})
	$('.gallery a.scrollRight').click(function() {
		galleryScroll($(this), 1)
	})	
}

function galleryScroll(element, dir) {
	var wrapper = $(element).parents('.gallery')
	var pos = 0
	var x = 0
	var imgCount = wrapper.find('.thumbs a').length-1
	wrapper.find('.thumbs a').each(function() {
		if ($(this).hasClass('active')) {
			pos = x
		}
		x++
	})

	if(pos==0&&dir==-1) {
		wrapper.find('.thumbs a').eq(imgCount).click()
		return;
	}
	if(pos == imgCount && dir == 1) {
		wrapper.find('.thumbs a').eq(0).click()
		return;
	}
	wrapper.find('.thumbs a').eq(pos+dir).click()
}

// end photo gallery //


function initVideoThumbs() {
	$('.player').parent().find('.thumbs a').click(function() {
		var player = $(this).parents('div').parent().find('.player')
		var fileName = $(this).attr('href')
		playVideo(player, fileName, 'on')
		return false;
	})
}




function initScrollPanels() {
	//initialize horizontal scroll panels

	var paneWidth
	var panelItems
	var panel
	var pAdjust
	$('.scrollPanel').each(function() {
		//duplicate the first n panels and put at the end
		pAdjust = 0
		var wrapper = $(this).parent()
		var showingClass = $(this).attr('class')
		if (showingClass.indexOf('showing_') < 0) {
			return
		}
		var showing = showingClass.split('showing_')
		var panelShowing = showing[1]
		//setScrollButtons(wrapper, panelShowing)
		panelWidth = $(this).find('ul li').eq(0).outerWidth(true)
		if (panelWidth < 140) {
			panelWidth = 140
			pAdjust = 1
		}
		panelItems = $(this).find('li').length + pAdjust
		$(this).find('ul').css('width', panelWidth * panelItems + 'px')
		var clickLeft = wrapper.find('.scrollLeft')
		var clickRight = wrapper.find('.scrollRight')
		wrapper.find('.scrollLeft').click(function() { slideScroll(clickLeft, 1) })
		wrapper.find('.scrollRight').click(function() { slideScroll(clickRight, -1) })
		clickLeft.addClass('hide')

		if (panelShowing == $(this).find('ul li').length) {
			clickRight.addClass('hide')
		}
	})
}



function slideScroll(ele, dir) {

	// slide the video list
	if (sliding) {
		return;
	}

	sliding = 1
	var moveTime = 480
	var curPos
	var wrapper = $(ele).parent()
	wrapper.find('.scrollLeft').removeClass('hide')
	wrapper.find('.scrollRight').removeClass('hide')
	var panel = wrapper.find('.scrollPanel')
	var showingClass = panel.attr('class')
	if (showingClass.indexOf('showing_') < 0) {
		return
	}
	var showing = showingClass.split('showing_')
	var panelShowing = showing[1]
	var target = wrapper.find('.scrollPanel ul')
	var panelWidth = target.outerWidth(true)
	//alert(target.width() + " " + target.outerWidth(true) + " " + target.parent().width())
	//fix for webkit
	if (target.outerWidth(true) == target.parent().width()) {
		panelWidth = target.width() - target.parent().width()
	}

	//target.css('border', '1px solid #ff0000')

	var panelCount = $(ele).find('li').length
	var moveWidth = dir * panelShowing * $(target).find('li:first').outerWidth(true)

	var movePos = curPos / moveWidth
	var maxMove = parseInt(panelCount / panelShowing)


	//move one group
	$(target).animate({
		marginLeft: '+=' + moveWidth
	}, 480, function() {
		sliding = 0
		curPos = parseInt($(target).css('margin-left').replace('px', ''))
		//alert((curPos + moveWidth) + ", " + panelWidth)
		if (Math.abs(curPos + moveWidth) >= panelWidth && dir == -1) {
			$(wrapper).parent().find('.scrollRight').addClass('hide')
			$(wrapper).parent().find('.scrollLeft').removeClass('hide')
		}
		if (curPos == 0) {
			$(wrapper).parent().find('.scrollRight').removeClass('hide')
			$(wrapper).parent().find('.scrollLeft').addClass('hide')
		}
	});


	return false

}





function initSlideshow() {
	if (!$('.slideshow').length) {
		return
	}
	var slideDelay = 5000
	var slides = $('.slideshow .slides').html().split(",")
	var links = $('.slideshow .links').html().split(",")
	var img = $('.slideshow img')
	var link = $('.slideshow a')
	var nextLink
	var step
	if(img.attr('id')=='') {
		step = 0
	}
	else {
		step = parseInt(img.attr('id').replace('step',''))
	}

	$('.slideshow').css('background-image','url(' + img.attr('src') + ')')
	img.hide()
	
	step++
	if(step>slides.length-1) {
		step = 0
	}
	if (links[step] == '') {
		nextLink = "javascript:// no link"
	}
	else {
		nextLink = links[step]
	}
	link.attr('href', nextLink)	
	img.attr('src',slides[step])
	img.attr('id', 'step' + step)
	img.fadeIn('slow')
    window.setTimeout(function() { initSlideshow() }, slideDelay)
}


function playVideo(container, fileName, autoPlay) {
	var vHeight = $(container).height()
	var vWidth = $(container).width()
	var fv = "<div style='width:" + vWidth + ";height:" + vHeight + "px'><object width='" + vWidth + "' height='" + vHeight + "' id='flvPlayer'>"
	fv = fv + "<param name='allowFullScreen' value='true'>"
	fv = fv + "<param name='wmode' value='opaque'>"
	fv = fv + "<param name='allowScriptAccess' value='always'>"
	fv = fv + "<param name='movie' value='/Flash/OSplayer.swf?movie=" + fileName + "&btncolor=0x333333&accentcolor=0x31b8e9&txtcolor=0xdddddd&volume=30&autoload=on&autoplay=" + autoPlay + "&vTitle=#T#&showTitle=yes'>"
	fv = fv + "<embed src='/Flash/OSplayer.swf?movie=" + fileName + "&btncolor=0x333333&accentcolor=0x31b8e9&txtcolor=0xdddddd&volume=30&autoload=on&autoplay=" + autoPlay + "&vTitle=#T#&showTitle=yes' width='" + vWidth + "' height='" + vHeight + "' allowFullScreen='true' wmode='opaque' type='application/x-shockwave-flash' allowScriptAccess='always'>"
	fv = fv + "</object></div>"
	$(container).html(fv)

}






