window.addEvent('domready', function(){
	var updatesContent = $$('.updatescontent');
	var updatesContentTitles = $$('.updatestitle');
	var navList=new Array($('Standard_(Hi-Res_Capability)'), $('High_Resolution'),$('Standard'), $('Long_Range'), $('legend'), $('admin'),$('Group'),$('login'));
	var navListTitles=new Array($('Standard_(Hi-Res_Capability)_Title'), $('High_Resolution_Title'),$('Standard_Title'), $('Long_Range_Title'), $('legendTitle'), $('adminTitle'),$('Group_Title'),$('loginTitle'));

	if(navList.length != navListTitles.length || updatesContent.length != updatesContentTitles.length) {
		alert("Something is dreadfully wrong: the number of togglers does not equal the number of togglees.");
	}

	for(var i=0; i<navList.length; i++) {
		slido(navListTitles[i],navList[i]);
	}
	for(var i=0; i<updatesContent.length; i++) {
		sliderarray.push(slido(updatesContentTitles[i],updatesContent[i]));

	}

	if (document.getElementById('sliderbox')) sliderEnable();
	if (document.getElementById('collapseall')) $('collapseall').addEvent('click', function(){collapseAll();});
	if (document.getElementById('expandall'))$('expandall').addEvent('click', function(){expandAll();});
});


sliderarray = new Array();

function slido(toggler,whatHides) { //Takes two elements, toggler will have a background arrow that reflects toggle-state.
	if( toggler ){
		var slider = new Fx.Slide(whatHides, {duration: 100});
		toggler.addEvent('click', function(){menuToggle(toggler, slider);});
		return(slider);
	}
}

function menuToggle(toggler,slider) {
	menuTogglerToggle(toggler)
	slider.toggle();
}

function menuTogglerToggle(toggler) {
	if (toggler.hasClass('closed')) {
		toggler.removeClass('closed').addClass('opened');
		toggler.style.background='url(img/column/expanded.gif) left no-repeat';
	}
	else {
		toggler.removeClass('opened').addClass('closed');
		toggler.style.background='url(img/column/collapsed.gif) left no-repeat';
	}
}

function expandAll() {
	$('expandall').effect('width', {duration: 200}).start(65,0);
	$('collapseall').effect('width', {duration: 200}).start(0,65);
	var updatesContentTitles = $$('.updatestitle');
	for (var i = 0; i < sliderarray.length; i++) {
		sliderarray[i].slideIn();
		if(updatesContentTitles[i].hasClass('closed')) {menuTogglerToggle(updatesContentTitles[i]);}
	}
}

function collapseAll() {
	$('collapseall').effect('width', {duration: 200}).start(65,0);
	$('expandall').effect('width', {duration: 200}).start(0,65);
	var updatesContentTitles = $$('.updatestitle');
	for (var i = 0; i < sliderarray.length; i++) {
		sliderarray[i].slideOut();
		if(updatesContentTitles[i].hasClass('opened')) {menuTogglerToggle(updatesContentTitles[i]);}
	}
}

function sliderEnable() {
	var sliderlength = getElementsByClassName("slideritem").length;
	var slidofx = new Fx.Styles('slidercontent', {duration: 200});
	var slidermax = new Fx.Styles('slider', {duration: 200});
	var scrollo = new Fx.Scroll(window,{duration:400, transition:Fx.Transitions.Sine.easeOut});
	
	var sliderItems = [];
	sliderItems = getElementsByClassName("slideritem");
	var currentSliderItem;
	var maxmin = document.getElementById('maxmin');
	var currentcount = document.getElementById('currentcount');

	/*
	 * If the number of sliderItems is less than or equal to 1
	 * hide the up/down arrows and max/min buttons
	 */
	if (sliderItems.length <= 1){
		maxmin.style.display="none";
		document.getElementById('uparrow').style.display="none";
		document.getElementById('downarrow').style.display="none";
	}
	else {
		maxmin.style.display="block";
		document.getElementById('uparrow').style.display="block";
		document.getElementById('downarrow').style.display="block";
	}	
	
	/* Figure out which slideritem is the current one */
	if (maxmin.alt == "maximize"){
		for( var i=0; i<sliderItems.length; i++ ){
			if( sliderItems[i].style.display == "block" ){
				currentSliderItem = i;
				break;
			}
		}
	}

	$('uparrow').addEvent('click', function(){

		if (currentSliderItem - 1 < 0) {
			currentSliderItem = sliderItems.length - 1;
		}
		else {
			currentSliderItem--;
		}
		
		/* display block/none the slideritem */
		for (var i=0; i<sliderItems.length; i++){
			if (i==currentSliderItem){
				sliderItems[i].style.display = "block";
			}
			else {
				sliderItems[i].style.display = "none";
			}	
		}
		
		/* change current count */
		currentcount.innerHTML = ((currentSliderItem * 3) + 1) + "&ndash;";
		if (getElementsByClassName('media').length < (currentSliderItem * 3) + 3){
			currentcount.innerHTML = currentcount.innerHTML + getElementsByClassName('media').length;
		}
		else {
			currentcount.innerHTML = currentcount.innerHTML + ((currentSliderItem * 3) + 3);
		}
	});

	$('downarrow').addEvent('click', function(){

		if (currentSliderItem + 1 > sliderItems.length - 1) {
			currentSliderItem = 0;
		}
		else {
			currentSliderItem++;
		}
		
		/* display block/none the slideritem */
		for (var i=0; i<sliderItems.length; i++){
			if (i==currentSliderItem){
				sliderItems[i].style.display = "block";
			}
			else {
				sliderItems[i].style.display = "none";
			}	
		}
		
		/* change current count */
		currentcount.innerHTML = ((currentSliderItem * 3) + 1) + "&ndash;";
		if (getElementsByClassName('media').length < (currentSliderItem * 3) + 3){
			currentcount.innerHTML = currentcount.innerHTML + getElementsByClassName('media').length;
		}
		else {
			currentcount.innerHTML = currentcount.innerHTML + ((currentSliderItem * 3) + 3);
		}
	});

	$('maxmin').addEvent('click', function() {
		
		if( maxmin.alt == "maximize" ){
			/* Go through all the slideritems and display:block */
			for( var i=0; i<sliderItems.length; i++ ){
				sliderItems[i].style.display="block";
			}
			/* display none uparrow downarrow count*/
			document.getElementById('uparrow').style.display="none";
			document.getElementById('downarrow').style.display="none";
			document.getElementById('count').style.display="none";
			
			maxmin.alt = "minimize";	
		}
		else {
			/* display block the first slideritem and display none the rest */
			for( var i=0; i<sliderItems.length; i++ ){
				if (i==0){
					sliderItems[i].style.display="block";
				}
				else {
					sliderItems[i].style.display="none";
				}
			}
			
			/* display block uparrow downarrow count */
			document.getElementById('uparrow').style.display="block";
			document.getElementById('downarrow').style.display="block";
			document.getElementById('count').style.display="block";
			document.getElementById('currentcount').innerHTML = "1&ndash;3";
			maxmin.alt = "maximize";
		}
		
	/*
		if (parseInt($('slider').style.height)==176) {
			slidermax.start({'height':sliderlength*183});
			slidofx.start({'top': 0});
			$('uparrow').effect('height', {duration: 200}).start(0);
			$('count').effect('height', {duration: 200}).start(0);
			$('downarrow').effect('height', {duration: 200}).start(0);
			scrollo.toElement('slider');
		}
		else {
			var newrowitem = (parseInt($('slidercontent').style.top)/-184*3)+1;
			$('currentcount').innerHTML= newrowitem + "&ndash;" + ((newrowitem+2>getElementsByClassName('media').length) ? getElementsByClassName('media').length : newrowitem+2);
			slidermax.start({'height':176});
			$('uparrow').effect('height', {duration: 200}).start(14);
			$('count').effect('height', {duration: 200}).start(30);
			$('downarrow').effect('height', {duration: 200}).start(14);
		}
		*/
	});
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}