/* Make kwicks fluid to browser width */
var kwickOut = 125;
var kwickOver = 185;
var kwickCollapsed = 105;
//var subh = {140, 280, 240, 240, 120, 300};
var sth = [0, 0, 0, 0, 0, 0];

// Initialize page
var init = function(){
	// Resize window for testing
	//window.resizeTo(1024, 800);
	
	// Add the slider back into the page
	$('slider').setStyle('display', 'block');
	
	initKwickSizes();
	
	if ($('slider'))
		buildSliders();
	
	// Initialize sub heights
	showSubs();
	initHeights();
	hideSubs();
	
	// Initialize kwick links
	initLinks();
	
	// Initialize slider effects
	initEffects();
}

// Calculate sizes for slider menu based on size of window
var initKwickSizes = function(){
	var sliderw = $('sliderul').getSize().size.x;	// Get slider's width
	kwickOut = sliderw / 6 - 26;
	kwickCollapsed = kwickOut - 20;
	//kwickOver = kwickOut + 60;
	kwickOver = (6*kwickOut) - 5*kwickCollapsed;
	
	var kwicks = $$('#slider .slider');
	kwicks.each(function(kwick){
		kwick.setStyle('width', kwickOut+'px');	// Init widths
	});
}

// Based off of mootools homepage menu
var buildSliders = function(){
	var kwicks = $$('#slider .slider');
	var fx = new Fx.Elements(kwicks, {wait: false, duration: 200, transition: Fx.Transitions.quadOut});
	kwicks.each(function(kwick, i){						 
		kwick.addEvent('mouseover', function(e){
			var obj = {};
			obj[i] = {
				'width': [kwick.getStyle('width').toInt(), kwickOver]
			};
			kwicks.each(function(other, j){
				if (other != kwick){
					var w = other.getStyle('width').toInt();
					if (w != kwickCollapsed) obj[j] = {'width': [w, kwickCollapsed]};
				}
			});
			fx.start(obj);
		});
	});
	
	$('slider').addEvent('mouseout', function(e){
		var obj = {};
		kwicks.each(function(other, j){
			obj[j] = {'width': [other.getStyle('width').toInt(), kwickOut]};
		});
		fx.start(obj);
	});
}

// Need to make sub-panels visible to calculate heights
var showSubs = function(){
	$$('.sub').each(function(obj){
		obj.setStyle('display','block');
	});
}

// Calculate height of each sub-panel
var initHeights = function(){
	for(var i=0; i<6; i++){
		var el = $('st'+(i+1));
		sth[i] = el.getStyle('height');
		sth[i] = sth[i].substring(0, sth[i].indexOf('px'))
		el.setStyle('height', sth[i] + 'px');
	}
	
}

// Build links within page
var initLinks = function(){
	// Uncomment to enable ajax page loading
	/*$$('a').each(function(obj){
		if(obj.rel == 'dyn'){
			obj.addEvent('click', function(e){
				var href = obj.href;
				//alert('loading '+href);
				new Ajax(href, {
					method: 'post',
					update: $('content')
				}).request();
				hideSubs();
				return false;
			});
		}
	});*/
	
	// Header slider links
	$('about').addEvent('click', function(){
		showSub($('subAbout'), sth[0]);
	});
	$('general').addEvent('click', function(){
		showSub($('subGeneral'), sth[1]);
	});
	$('planning').addEvent('click', function(){
		showSub($('subPlanning'), sth[2]);
	});
	$('programs').addEvent('click', function(){
		showSub($('subPrograms'), sth[3]);
	});
	$('prepro').addEvent('click', function(){
		//showSub($('subCerts'), 120);
		showSub($('subPrepro'), sth[4]);
	});
	$('courses').addEvent('click', function(){
		//showSub($('subCourses'), 300);
		showSub($('subCourses'), sth[5]);
	});
	
	// Set up close sub links
	$$('.hsub').each(function(obj){
		obj.addEvent('click', function(){
			hideSubs();
		});
	});
	
}

// Add effects objects to sub panels
var initEffects = function(){
	$$('.sub').each(function(obj){
		obj.slide = new Fx.Styles(obj, {duration: 500, transition: Fx.Transitions.sineOut});
	});
}

// Show the passed sub panel
var showSub = function(ssub, nh){
	hideSubs();
	
	//ssub.setStyle('display', 'block');
	ssub.setStyle('display', 'block');
	//ssub.slide.start(0, 300);
	
	//if(nh<60) nh=60;
	//alert("sliding to "+nh);
	
	ssub.slide.start({
		'height': [0, nh-0+70],	// Force to int conversion then add 70 for decorations
		'opacity': [0.0, 1.0]
	}).chain(function(){ initKwickSizes(); });	// Recalculate kwick sizes after sub is shown (in case scroll bar appeared)
}

// Method to hide all sub panels
var hideSubs = function(){
	$$('.sub').each(function(obj){
		obj.setStyle('display', 'none');
	});
}

// Window events
window.addEvent('load', init);
window.addEvent('resize', initKwickSizes);		// Re-calculate sizes on window resize
