/* = CLEAR FIELD
-------------------------------------------------
	clears the value of any inpu field with the
	class name of clearDefault
-------------------------------------------------*/

function clickClear() {
	if(!document.getElementsByTagName) return false;
	
	var inputs = document.getElementsByTagName("INPUT");
	
	for ( var i = 0; i < inputs.length; i++)
	{
		if(inputs[i].className.match("clear-default"))
		{
			inputs[i].onclick = function() {
				if(this.value == this.defaultValue)
				{
					this.value = "";
				}
				return 0;
			};
			inputs[i].onfocus = function() {
				if(this.value == this.defaultValue)
				{
					this.value = "";
				}
				return 0;
			};
			inputs[i].onblur = function() {
				if(this.value == "")
				{
					this.value = this.defaultValue;
				}
				return 0;
			};
		}
	}
	return 0;
}

addLoadEvent(clickClear);

/* = GET ELEMENTS BY CLASS
-------------------------------------------------
	adds in some much needed functionality to the
	DOM. 
	
	searchClass: class name to search for
	node: (optional) node to search under
	tag: (optional) type of element to search for
-------------------------------------------------*/
function getElementsByClass(searchClass,node,tag) {
	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 hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
    	var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}

/* = ADD ON LOAD
-------------------------------------------------
	This adds functions to onload without
	stepping on each other.
-------------------------------------------------*/

function addLoadEvent(func) {
	var oldOnLoad = window.onload;
	if (typeof window.onload != 'function') 
	{
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldOnLoad();
			func();
		};
	}
}


// ===============================
// = Custom Javascript Funcitons =
// ===============================

function findFirstElement () {
	if ($('#content-main').length > 0) {
		$('#content-main > *:first-child').addClass('first');
	};
}

addLoadEvent(findFirstElement);

function changeCalendarPositioning () {
	if ($('#home .calendar tbody td').length > 0 || $('#content-sub .calendar tbody td').length > 0) {	
		$('.calendar tbody td').hover(function() {
			$(this).addClass('hover');
		}, function() {
			$(this).removeClass('hover');
		});
	};
}

addLoadEvent(changeCalendarPositioning);

function rotateImages () {	
	if ($('#feature-images').length > 0) {
		$('#feature-images').innerfade({
			speed: 'slow',
			timeout: '5000',
			containerheight: '389px'
		});
	};
}

addLoadEvent(rotateImages);

function menuHover () {
	$('#header #nav-main > li').hover(function() {
		$('#header #nav-main > li').removeClass('hover'); // Hides other menus if the hover still exists (which can happen)
		$(this).addClass('hover');
	}, function() {
		$(this).removeClass('hover');
	});
}

addLoadEvent(menuHover);

function changeCurrentVideo () {
	$('#alumni-interviews ul.video a').each(function(index) {
		$(this).click(function(event) {
			event.preventDefault();
			$('#alumni-interviews ul.video a').parent().removeClass();
			$(this).parent().addClass('active');
			$('#alumni-interviews ul.video-info li').removeClass().filter(':eq('+index+')').addClass('active');
		});
	});
	$('#stories dt a').each(function(index) {
		$(this).click(function(event) {
			event.preventDefault();
			$('#interviews li').hide().filter(':eq('+index+')').fadeIn('normal');
		});
	});
}
addLoadEvent(changeCurrentVideo);

function handleVideos () {
	var playerVariables = {
		plugins: {
			controls: {
				url: '/js/flowplayer.controls-3.1.0.swf',
			
				backgroundColor: 'transparent',
				backgroundGradient: 'none',
				buttonColor: '#114B67',
				buttonOverColor: '#7E361E',
			
				autoHide: 'always',
				volume: false,
				mute: false,
				stop: false,
				fullscreen: true,
				time: false
			}
		}
	};

	var playlistVariables = {
		loop: false,
		playOnClick: true,
		playingClass:'active',
		pausedClass:'active'
	};
	
	var playlistSelector = ($('#interviews').length > 0) ? "div#stories dt" : "ul.video li";
	
	if (($('#alumni-interviews .video').length > 0) || ($('#interviews').length > 0)) {
		$f("player", "/js/flowplayer-3.1.0.swf", playerVariables).playlist(playlistSelector, playlistVariables);
	} else if ($('#player').size() > 0) {
		$f("player", "/js/flowplayer-3.1.0.swf", playerVariables);
	};
	
}	
addLoadEvent(handleVideos);