/*##### Manage Rotating Banner #####*/
/*  */

var rotating_count = 2;
var rotating_ads =	[	"<a href='http://www.KlamathFallsCasa.org/Events/Cycling' target='_blank'><img src='http://assets.bicyclepaper.com/ads/rotating_banners/2010/2010 CASA Ride Rotating Banner.jpg' /></a>",
						"<a href='http://www.thepeoplescoastclassic.org' target='_blank'><img src='http://assets.bicyclepaper.com/ads/rotating_banners/2010/Rotating Banner.jpg' /></a>",
						"<a href='http://www.wenzelcoaching.com/Earl%20Zimmermann.htm' target='_blank'><img src='http://assets.bicyclepaper.com/ads/rotating_banners/2010/Banner-Ad-Earl.png' /></a>"];
function manage_rotating_banner ()
{
	setTimeout('rotate_this()', 4000);
}
function rotate_this ()
{
	document.getElementById('RotatingBanner').innerHTML = rotating_ads[rotating_count];
	rotating_count++;
	if (rotating_count >= rotating_ads.length) rotating_count = 0;
	setTimeout('rotate_this()', 4000);
}

/*##### Manage Calendar #####*/
function manage_calendar ()
{	

	if (!document.getElementById('MonthTable')) return false;
	var month_table = document.getElementById('MonthTable');
	var month_title = month_table.getAttribute('title');
	
	var current_year = new Number(month_title.match(/^\d{4}/));
	var current_month = new Number(month_title.match(/\d{2}$/));
	var calendar_filter = month_table.getElementsByTagName("caption")[0].getAttribute('class');
		
	if (current_month == 12)
	{
		var previous_year = current_year;
		var previous_month = current_month - 1;
		var following_year = current_year + 1;
		var following_month = 1;
	}
	else if (current_month == 1)
	{
		var previous_year = current_year - 1;
		var previous_month = 12;
		var following_year = current_year;
		var following_month = current_month + 1;
	}
	else
	{
		var previous_year = current_year;
		var previous_month = current_month - 1;
		var following_year = current_year;
		var following_month = current_month + 1;
	}
	if (previous_month < 10) previous_month = '0' + previous_month;
	if (following_month < 10) following_month = '0' + following_month;

	var previous_month_link = document.createElement('a');
	previous_month_link.appendChild(document.createTextNode('<<'));
	previous_month_link.setAttribute('title', previous_year+'-'+previous_month);
	previous_month_link.setAttribute('class', calendar_filter);
	previous_month_link.onclick = load_month;

	var following_month_link = document.createElement('a');
	following_month_link.appendChild(document.createTextNode('>>'));
	following_month_link.setAttribute('title', following_year+'-'+following_month);
	following_month_link.setAttribute('class', calendar_filter);
	following_month_link.onclick = load_month;
	
	month_table.getElementsByTagName('caption')[0].insertBefore(previous_month_link, month_table.getElementsByTagName('caption')[0].firstChild);
	month_table.getElementsByTagName('caption')[0].appendChild(following_month_link);
}
function load_month ()
{	
	var this_year = this.getAttribute('title').match(/^\d{4}/); //first four digits
	var this_month = this.getAttribute('title').match(/\d{2}$/); //last two digits
	var calendar_filter = this.getAttribute('class');
	var request = getHTTPObject();
	if (request)
	{
		request.onreadystatechange = function() { parseCalendarResponse(request); };
		request.open('GET', '/content/secondary/month_table.php?current_date='+this_year+'-'+this_month+'-01&calendar_filter='+calendar_filter, true);
		request.send(null);
	}
}
function parseCalendarResponse(request)
{
	if (request.readyState == 4)
	{
		if (request.status == 200 || request.status == 304)
		{
			var calendar_container = document.getElementById("calendar_container");
			calendar_container.innerHTML = request.responseText;
			manage_calendar();
		}
	}
}

/*##### Manage vEvents #####*/
function manage_vevents ()
{
	if (!document.getElementById('vcalendar')) return false;
	
	var vevents = getElementsByClass('vevent', document.getElementById('vcalendar'), 'li');
	for (var i = 0; i < vevents.length; i++)
	{
		vevents[i].getElementsByTagName('h3')[0].getElementsByTagName('a')[0].onclick = expand_this;
	}
}
function expand_this ()
{
	this.onclick = collapse_this;
		
	var old_class = this.parentNode.parentNode.className;
	this.parentNode.parentNode.className = old_class + ' expanded';
	
	return false;
}
function collapse_this ()
{
	this.onclick = expand_this;
		
	var old_class = this.parentNode.parentNode.className;
	this.parentNode.parentNode.className = old_class.replace(' expanded', '');
	
	return false;
}

/*##### Manage Classifieds #####
DISABLED FOR NOW --Ryan
function manage_classifieds ()
{
	if (!document.getElementById('classifieds_list')) return false;
	
	var classifieds = document.getElementById('classifieds_list').getElementsByTagName('li');
	for (var i = 0; i < classifieds.length; i++)
	{
		classifieds[i].getElementsByTagName('h3')[0].getElementsByTagName('a')[0].onclick = expand_this;
	}
}*/

/*##### Supporting Functions #####*/
function getElementsByClass(searchClass,node,tag)
{
	//Taken from http://www.dustindiaz.com/getelementsbyclass/
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
function takeYear(theDate)
{
	//Taken from http://www.quirksmode.org/js/introdate.html
	//to address problem with browsers other than IE thinking the year is 107 vs 2007
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}
function getHTTPObject()
{
	//Taken from Jeremy Keith's Bulletproof Ajax. Example can be found at http://bulletproofajax.com/code/chapter05/people/ajax.js
	var xhr = false;
	if (window.XMLHttpRequest)
	{
		xhr = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		try
		{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				xhr = false;
			}
		}
	}
	return xhr;
}
function addLoadEvent (func)
{
	//Taken from Jeremy Keith's DOM Scripting.
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function ()
		{
			oldonload ();
			func ();
		}
	}
}

addLoadEvent (manage_rotating_banner);
addLoadEvent (manage_calendar);
addLoadEvent (manage_vevents);
//addLoadEvent (manage_classifieds);
//addLoadEvent (setupZoom);

/*#### FancyBox function ####*/
jQuery(document).ready(function(){
	jQuery(".zoom").fancybox({"scrolling": "no", "autoDimensions": "true"});	
});

/*#### Calendar Submit Character Count ####*/
function updateCharactersLeft(){
	
	if(jQuery("#event_description").val().length>150)
		jQuery("#event_description").val(jQuery("#event_description").val().substr(0,150));
		
	jQuery("#charactersLeft").html(150-jQuery("#event_description").val().length);
	
}