// Wharton global.js
// ISITE Design

$(document).ready(function() {
	if(document.all) {
		setTimeout(function(){
			$(".home #newsandevents").innerfade();
		}, 1);	  	
	} else {
		$(".home #newsandevents").innerfade();
	}
	$(".updates div.more").css({ bottom: "1px" });
	$("#subnav .CS_LinkList_Button").remove();

	/* dropdowns for <IE7 */
	if (document.all&&document.getElementById) {
		
		navRoot = document.getElementById("nav");
		if(navRoot){
			for (i=0; i<navRoot.childNodes.length; i++) {
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					node.onmouseover=function() {
						this.className+=" iehover";
					}
					node.onmouseout=function() {
						this.className=this.className.replace(" iehover", "");
					}
				}
			}
		}
	}
	
	// calendar tabs are special
	setTimeout("showTabInit()",1);
	
	// general content tabs
	if(document.getElementById("CS_Element_tabs")) {
		var as = document.getElementById("CS_Element_tabs").getElementsByTagName("ul")[0].getElementsByTagName("a");
		var lis = document.getElementById("CS_Element_tabs").getElementsByTagName("ul")[0].getElementsByTagName("li");
		var divs = getElementsByClass("CS_Element_Schedule",document.getElementById("CS_Element_tabs"),"div");
		
		for(i=1;i<divs.length;i++) {
			divs[i].className = divs[i].className + " off";
		}
		
		for(i=0;i<as.length;i++) {
			as[i].onclick = function () { showTab(this,lis,divs); return false; }
		}	
		as[0].parentNode.className = "on";
	}
	
	// popup <a> tags with class pop
	$("#wrapper a.pop").click(function () { popUp(this); return false; });
	$("#nav > li > a").each(function(){
		var cleanedHref = (this.href.match(".cfm"))?this.href.substring(0, this.href.lastIndexOf("/")):this.href;

		if(window.location.href.match(cleanedHref)) 
		{
			$(this).parent("li").addClass("on");
		}
	});
	
	// Site-wide use class pageselector to make a select drop down change location to option value
	$(".pageselector").change(
		function (){
			window.location = $(this).attr('value');
		}
	);
});

function showTabInit() {
	
	// calendar tabs are special
	if($("#calendarselector").length > 0 ) {
		var as = document.getElementById("calendarselector").getElementsByTagName("a");
		var lis = document.getElementById("calendarselector").getElementsByTagName("li");
		var divs = document.getElementById("upcomingprograms").getElementsByTagName("div");

		for(i=0;i<as.length;i++) {
			as[i].onclick = function () { showTab(this,lis,divs); return false; }			
		}
		/*****************THIS CONTROLS THE COLOR TAB ON THE CALENDAR*********/
		showTab(as[0],lis,divs);
		
	}
}

function showTab(obj,list,containers) {
	
	for(i=0;i<list.length;i++) {
		list[i].className = "";
	}
	obj.parentNode.className = "on";
	
	for(i=0;i<containers.length;i++) {
		containers[i].className = containers[i].className + " off";
	}	
			
	var active = obj.href.split("#");
	
	if(obj.parentNode.parentNode.parentNode.parentNode.id == "CS_Element_tabs") {
		var toshow = "CS_Element_tab"+active[1];
		document.getElementById(toshow).className = document.getElementById(toshow).className.split(" ")[0];
	} else {
		document.getElementById(active[1]).className = "";
	}
}

function popUp(a) {
	window.open(a.href,'content','width=456,height=480,titlebar=0,resizable=yes,top=10,left=10,screenX=10,screenY=10,scrollbars=1');
}

// what happened to getElementsByClass?
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;
}


/* =========================================================

// jquery.innerfade.js

// Datum: 2007-01-29
// Firma: Medienfreunde Hofmann & Baldes GbR
// Autor: Torsten Baldes
// Mail: t.baldes@medienfreunde.com
// Web: http://medienfreunde.com

// based on the work of Matt Oakes http://portfolio.gizone.co.uk/applications/slideshow/

// ========================================================= */

(function($) {

$.fn.innerfade = function(options) {

	this.each(function(){ 	
		
		var settings = {
			animationtype: 'fade',
			speed: 750,
			timeout: 10000,
			type: 'sequence',
			containerheight: '11em',
			runningclass: 'innerfade'
		};
		
		if(options)
			$.extend(settings, options);
		
		var elements = $(this).children().not("strong");
	
		if (elements.length > 1) {
		
			$(this).css('position', 'relative');
	
			$(this).css('height', settings.containerheight);
			$(this).addClass(settings.runningclass);
			
			for ( var i = 0; i < elements.length; i++ ) {
				$(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute');
				$(elements[i]).hide();
			};
		
			if ( settings.type == 'sequence' ) {
				setTimeout(function(){
					$.innerfade.next(elements, settings, 1, 0);
				}, settings.timeout);
				$(elements[0]).show();
			} else if ( settings.type == 'random' ) {
				setTimeout(function(){
					do { current = Math.floor ( Math.random ( ) * ( elements.length ) ); } while ( current == 0 )
					$.innerfade.next(elements, settings, current, 0);
				}, settings.timeout);
				$(elements[0]).show();
			}	else {
				alert('type must either be \'sequence\' or \'random\'');
			}
			
		}
		
	});
};


$.innerfade = function() {}
$.innerfade.next = function (elements, settings, current, last) {

	if ( settings.animationtype == 'slide' ) {
		$(elements[last]).slideUp(settings.speed, $(elements[current]).slideDown(settings.speed));
	} else if ( settings.animationtype == 'fade' ) {
		$(elements[last]).fadeOut(settings.speed);
		$(elements[current]).fadeIn(settings.speed);
	} else {
		alert('animationtype must either be \'slide\' or \'fade\'');
	};
	
	if ( settings.type == 'sequence' ) {
		if ( ( current + 1 ) < elements.length ) {
			current = current + 1;
			last = current - 1;
		} else {
			current = 0;
			last = elements.length - 1;
		};
	}	else if ( settings.type == 'random' ) {
		last = current;
		while (	current == last ) {
			current = Math.floor ( Math.random ( ) * ( elements.length ) );
		};
	}	else {
		alert('type must either be \'sequence\' or \'random\'');
	};
	setTimeout((function(){$.innerfade.next(elements, settings, current, last);}), settings.timeout);
};
})(jQuery);
