/*
*		Controls the sliding bars of the matrix and of the accordeon (Boulderdatabase)
*/		
		
function mtx(collapsible,counter,show)	{
	var ref_collapsible = collapsible+counter;
	var div = $(ref_collapsible);
	var heading = div.getElementsByTagName('div')[0];
	var contents = div.getElementsByTagName('div')[1];

	heading.innerHTML = '<a href="#" class="'+collapsible+'head_link">' + heading.innerHTML + '</a>';
	heading.getElementsByTagName('a')[0].onclick = mtxgo(div, heading, contents, show);
}

function mtxgo(div, heading, contents, show) {
	if (!show) {
		contents.style.display = 'none';
		div.addClass('closed');
	}
	var slide_effect;
	return function() {
		if (!$defined(slide_effect)) {
			slide_effect = new Fx.Slide(contents,{duration: 500,transition: Fx.Transitions.Pow.easeOut});
			if (div.hasClass('closed')) {
				contents.style.display = '';				
				slide_effect.hide();
			}
		}
		if (div.hasClass('closed')) {
			slide_effect.toggle();
			Element.removeClass(div,'closed');
		} else {
			slide_effect.toggle();
			Element.addClass(div,'closed');
		}		
		return false;
	};
}


/*
*	Controls the login and the searchform at the metanav
*/
	
var delayedSlide = function delayedHide (slide) {
	var myVerticalSlide = new Fx.Slide(slide,{duration: 500,transition: Fx.Transitions.Pow.easeOut});
	myVerticalSlide.slideIn();
	return false;	
}
	
function  show(slide) {
		var actionBefore = '';
		var myVerticalSlide = new Fx.Slide(slide,{duration: 500,transition: Fx.Transitions.Pow.easeOut});
		if ($(slide).retrieve('hide') == 1) {
    	  var myVerticalSlide = new Fx.Slide(slide,{duration: 500,transition: Fx.Transitions.Pow.easeOut});
		  $(slide).store('hide','');
		  $(slide).store('open','');
		  myVerticalSlide.slideOut();
		} else {
		  var nav = $(document.body).getElements('a.alogin');
		  for (i=0; i < nav.length; i++) {
    	    var myVerticalSlide = new Fx.Slide($('topnav'+i).id,{duration: 500,transition: Fx.Transitions.Pow.easeOut});
			//alert($('topnav'+i).id);
			//if (slide != nav[i]) {
			if (slide != $('topnav'+i).id) {
				//if ($(nav[i]).retrieve('open') == '1' ) {
				if ($('topnav'+i).retrieve('open') == '1' ) {
					actionBefore = '1';
					$('topnav'+i).store('open','');
				}
				$('topnav'+i).store('hide','');
				myVerticalSlide.slideOut();
			}
		  }
    	  var myVerticalSlide = new Fx.Slide(slide,{duration: 500,transition: Fx.Transitions.Pow.easeOut});
		  $(slide).store('hide',1);
		  $(slide).style.display = '';
		  $(slide).removeClass('hide');
		  myVerticalSlide.hide();	
		  if (actionBefore == '') {
		  	myVerticalSlide.slideIn();
			$(slide).store('open',1);
		  } else {
			  delayedSlide.delay(500,slide,slide); 	
			  $(slide).store('open',1);
		  }
		}
		return false;
}

/*
*	Controls the different tabs at the Boulderdatabase
*/

function showTab(tab) {
		//var div = $('tabhead');
		//var tabcontents = div.getElementsByTagName('div');
		var tabcontents = $('tabhead').getChildren('div');
		
		for (i=0; i < tabcontents.length; i++) {
			if (i != tab) {
				//document.getElementById('tabcontent'+i).style.display = 'none';
				$('tabcontent'+i).style.display = 'none';
				$('tabcontent'+i).removeClass('show');
				var a = $(tabcontents[i]).getChildren('a');
				$(a[0]).removeClass('open');
			} else {
				//document.getElementById('tabcontent'+i).style.display = 'block';
				$('tabcontent'+i).style.display = 'block';
				$('tabcontent'+i).addClass('show');
				var a = $(tabcontents[i]).getChildren('a');
				$(a[0]).addClass('open');
			}
		}
		
	//We can use one Request object many times.
	/*var req = new Request.HTML({url:'ajax'+tab+'.html', 
		onSuccess: function(html) {
			//Clear the text currently inside the results div.
			$('tabcontent'+tab).set('text', '');
			//Inject the new DOM elements into the results div.
			$('tabcontent'+tab).adopt(html);
			return false;
		},
		//Our request will most likely succeed, but just in case, we'll add an
		//onFailure method which will let the user know what happened.
		onFailure: function() {
			$('tabcontent'+tab).set('text', 'The request failed.');
			return false;
		}
	});
	
	req.send();*/
	return false;		
}


/*
*	Initializes the imgs' for tip functionality
*	Conditions: Each img needs a unique id, a class called .tips and an alt-Tag like this: Title :: Decsription (Both get splitted by " :: ")
*/

function svTips () {			
	var myTips = new Tips('.tips',{
		showDelay: 0,
		hideDelay: 0,
		className: 'tipc',
		fixed: true,
		offsets: { 'x': 0,'y':30 }
	});
	
	var title = '';
	var text = '';
	var splitTitle = '';	
	var img = $(document.body).getElements('img.tips');
	
	for (i=0; i < img.length; i++) {
		title = img[i].alt;
		$(img[i].id).setProperty('alt','');
		splitTitle = title.split(" :: ");
		title = splitTitle[0];
		text = splitTitle[1];
		splitTitle = '';
		$(img[i].id).store('tip:title', title);
		$(img[i].id).store('tip:text', text);
	}
}

function svTipsh () {			
	var myTips = new Tips('.tipsh',{
		showDelay: 0,
		hideDelay: 0,
		className: 'tipc',
		fixed: true,
		offsets: { 'x': 0,'y':71 }
	});
	
	var title = '';
	var text = '';
	var splitTitle = '';	
	var img = $(document.body).getElements('img.tipsh');
	
	for (i=0; i < img.length; i++) {
		title = img[i].alt;
		$(img[i].id).setProperty('alt','');
		splitTitle = title.split(" :: ");
		title = splitTitle[0];
		text = splitTitle[1];
		splitTitle = '';
		$(img[i].id).store('tip:title', title);
		$(img[i].id).store('tip:text', text);
	}
}
/*
*	Nav Stuff
*/

function hideNav(id) {
	var ul = $(id).getElement('ul');
	ul.style.visibility = 'hidden';
	a = $(id).getElement('a');
	a.removeClass('active');
}

function hideAllUls(li) {
	var uls = '';
	var lis = $(document.body).getElements('li.lis');
	
	for (i=0; i < lis.length; i++) {
		a = lis[i].getElement('a');
		a.removeClass('active');

		if (lis[i].id != li) {
			uls =  lis[i].getElement('ul');
			if (uls != null) {
				uls.style.visibility = 'hidden';
			}
		}
	}	
}


function initNav() {
	var lis = $(document.body).getElements('li.lis');	
	var mylis = '';
	var nextul = '';
	var nav = '';
	var a = '';
	
	for (i=0; i < lis.length; i++) {
		mylis = $(lis[i]);
		mylis.setProperty('id','lis'+i);
		eval("var timeout"+mylis.id+" = false;");
		nextul =  mylis.getElement('ul');
		if (nextul != null) {
			nextul.addEvents({
				'mouseover': function(){
					var li = this.getParent('li');
					a = li.getElement('a');
					eval("if (timeout"+li.id+" != false) {window.clearTimeout(timeout"+li.id+");}");
					//if (!Browser.Engine.trident4) {
						a.addClass('active');
					//}
				},
				'mouseout': function(){
    				var li = this.getParent('li');
					eval("timeout"+li.id+" = window.setTimeout('hideNav(\""+li.id+"\")',0);");				
				}
			});
			a = mylis.getElement('a');
			a.addEvents({
				'mouseover': function(){
	    			li = this.getParent('li');
					//if (!Browser.Engine.trident4) {
						//this.addClass = 'activ';
					//}
					ul = li.getElement('ul');
					eval("if (timeout"+li.id+" != false) {window.clearTimeout(timeout"+li.id+");}");
				
					coords = this.getCoordinates($('nav'));
					ul.style.left = coords.left+'px';
					ul.style.visibility = 'visible';
				},
				'mouseout': function(){
    				var li = this.getParent('li');
					eval("timeout"+li.id+" = window.setTimeout('hideNav(\""+li.id+"\")',0);");
					}
			});
			
		} else {
			a = mylis.getElement('a');
			a.addEvent('mouseover', function(){
    			li = this.getParent('li');
				hideAllUls(li.id);
			});
		}
	}
}

function initTopnav() {
	var a = $(document.body).getElements('a.alogin');
	for (i=0; i < a.length; i++) {
		slide = 'topnav'+i;
		$(a[i]).store('tn',slide);
		$(a[i]).addEvent('click', function(){
			show(this.retrieve('tn'));
			return false;
		});
	}
}


 //onclick="javascript:show('topnav0');return false;"
/*
*	Init after DOM ready
*/

//for the rdb navigation
function initDT() {
	var dl = $(document.body).getElements('dl.rdb');	
	for (i=0; i < dl.length; i++) {
		var dt = $(dl[i]).getChildren('dt');
		for (j=0; j < dt.length; j++) {
			$(dt[j]).store('hidden','true');
			$(dt[j]).store('i',i);
			if ($(dt[j]).hasClass('icon')) {
				//$(dt[j]).addClass('dthidden');
				$(dt[j]).addEvent('click', function(){
	
					if (this.retrieve('hidden') == 'true') {
						this.store('hidden','false');
						this.removeClass('dthidden');

						dl = this.getParent('dl');
						var dd = $(dl).getChildren('dd');
						$(dd[0]).style.display = 'block';
					} else {
						this.store('hidden','true');
						this.addClass('dthidden');				
						dl = this.getParent('dl');
						var dd = $(dl).getChildren('dd');
						$(dd[0]).style.display = 'none';
					}				
				});
			}
		}	
		/*var dd = $(dl[i]).getChildren('dd');
		for (k=0; k < dd.length; k++) {
			dd[k].style.display = 'none';
		}*/
	}
}

//for the rdb navigation
function initDTold() {
	var dl = $(document.body).getElements('dl.rdb');	
	for (i=0; i < dl.length; i++) {
		var dt = $(dl[i]).getChildren('dt');
		for (j=0; j < dt.length; j++) {
			$(dt[j]).store('hidden','true');
			$(dt[j]).store('i',i);
			if ($(dt[j]).hasClass('icon')) {
				$(dt[j]).addClass('dthidden');
				$(dt[j]).addEvent('click', function(){
	
					if (this.retrieve('hidden') == 'true') {
						this.store('hidden','false');
						this.removeClass('dthidden');

						dl = this.getParent('dl');
						var dd = $(dl).getChildren('dd');
						$(dd[0]).style.display = 'block';
					} else {
						this.store('hidden','true');
						this.addClass('dthidden');				
						dl = this.getParent('dl');
						var dd = $(dl).getChildren('dd');
						$(dd[0]).style.display = 'none';
					}				
				});
			}
		}	
		var dd = $(dl[i]).getChildren('dd');
		for (k=0; k < dd.length; k++) {
			dd[k].style.display = 'none';
		}
	}
}

function controlDT(status) {
	if (status == true) {
		hide = 'true';	
	} else {
		hide = 'false';	
	}
	var dl = $(document.body).getElements('dl.rdb');	
	for (i=0; i < dl.length; i++) {
		var dt = $(dl[i]).getChildren('dt');
		for (j=0; j < dt.length; j++) {
			$(dt[j]).store('hidden',hide);
			//$(dt[j]).store('i',i);
			if ($(dt[j]).hasClass('icon')) {
				if (status == true) {
					$(dt[j]).addClass('dthidden');
				} else {
					$(dt[j]).removeClass('dthidden');
				}
			}
		}	
		var dd = $(dl[i]).getChildren('dd');
		for (k=0; k < dd.length; k++) {
			if (status == true) {
				dd[k].style.display = 'none';
			} else {
				dd[k].style.display = 'block';				
			}
		}
	}
	return false;		
}


window.addEvent('domready', function() {
	initNav();
	initTopnav();
	initDT();
	//initMatrix();
	svTips();
	svTipsh();
});