
var last_tab;

function changeTab(tab,scroll){
	//if(last_tab && tab == last_tab) return;
	ajax.get('/'+tab+'/index.php?a','body',scroll);
	document.getElementById('navbar').className = tab;
	last_tab = tab;
	return false;
}

var tweenToggleDisplay = function(el,force, finishedShowing, finishedHiding){
	el = typeof(el) == "string" ? document.getElementById(el) : el;
	el.style.overflow = 'hidden';
	

	// EXPAND (SHOW)
	if(getStyle(el,'display') == 'none' && force != "hide"){
		el.style.display = 'block';	
		el.style.height = 'auto';
		var h = el.clientHeight;
		el.style.height = "0px";
		
		var tween = Animate.Tween(el.style,'height','regularEaseIn',0,h,.2,'px');
		tween.onMotionFinished = function(){
			el.style.height = 'auto';
			if(typeof finishedShowing == "function") finishedShowing();
		}
	// CONTRACT (HIDE)
	} else if(force != "show"){
		if(el.style.display != 'none'){
			var tween = Animate.Tween(el.style,'height','regularEaseOut',el.clientHeight,0,.2,'px');
			tween.onMotionFinished = function(){
				el.style.display = 'none';
				if(typeof finishedHiding == "function") finishedHiding();
			}
		}
	}
	return tween;
}
function toggleLogin(){
	var el = document.getElementById('login');
	var top = parseInt(el.offsetTop);
	if(top<0)
		Animate.Tween(el.style,'marginTop','regularEaseOut',top,0,0.3,'px');
	else
		ajax.get('login.php?a','body');
}

function $(id){return document.getElementById(id);}

var FAQ = new function(){
	var filter_timeout;
	this.filter = function(div,input){
		if(filter_timeout) clearTimeout(filter_timeout);
		filter_timeout = setTimeout(function(){
			
			div = $(div);
			var search = input.value.trim();
			var match;
			var only_match = null;
			var regexp = new RegExp(search,'i');
			for(var i=0,faq;faq=div.childNodes[i];i++){
				if(faq.id =='faq'){
					faq.style.display = 'none';
					//removeClassName(faq,'expanded');
					for(var j=0,el;el=faq.childNodes[j];j++){
						if(el.className == 'question'){
							el.innerHTML = el.innerHTML.replace(/<span class=("?)highlighted("?)>([^(<\/)]*)<\/span>/gi,'$3');
							if(search == '' || regexp.test(el.innerHTML)){
								if(search) el.innerHTML = addTagsToSearch(el.innerHTML,search,'<span class="highlighted">','</span>');
								faq.style.display = 'block';
							}
						} else if(el.className == 'answer'){
							el.innerHTML = el.innerHTML.replace(/<span class=("?)highlighted("?)>([^(<\/)]*)<\/span>/gi,'$3');
							if(search == '' || regexp.test(el.innerHTML)){
								if(search) el.innerHTML = addTagsToSearch(el.innerHTML,search,'<span class="highlighted">','</span>');
								faq.style.display = 'block';
								break;
							}
						}
						
					}
					if(faq.style.display == 'block'){
						only_match = only_match === null ? faq : false;
					}
				}
			}
			if(only_match){ addClassName(only_match,'expanded');}
		},300);
	}
	var addTagsToSearch = function(text,search,start_tag,end_tag){
		var new_text = "";
		var i = -1;
		var search = search.toLowerCase();
		var text_lc = text.toLowerCase();

		while (text.length > 0) {
			i = text_lc.indexOf(search, i+1);
			if (i < 0) {
				new_text += text;
				text = "";
			} else {
				if (text.lastIndexOf(">", i) >= text.lastIndexOf("<", i)) {// skip anything inside an HTML tag
					if (text_lc.lastIndexOf("/script>", i) >= text_lc.lastIndexOf("<script", i)) {// skip anything inside a <script> block
						new_text += text.substring(0, i) + start_tag + text.substr(i, search.length) + end_tag;
						text = text.substr(i + search.length);
						text_lc = text.toLowerCase();
						i = -1;
					}
				}
			}
		}
		return new_text;
	}
	this.toggle = function(a){
		var answer = a.nextSibling.nextSibling;
		var tween = tweenToggleDisplay(answer);
		var old_onmotionfinished = tween.onMotionFinished;
		tween.onMotionFinished = function(){
			old_onmotionfinished();
			answer.style.display = '';
			if(hasClassName(a.parentNode,'expanded')) removeClassName(a.parentNode,'expanded');
			else addClassName(a.parentNode,'expanded');
		}
	}
}

