var previousIndex = -1;
var lastKey = "";
var themeCollection = new Array();
var themeCollectionOptions = new Array();

function setTab(index) {
	var reiterdiv = document.getElementById("tabs");
	var tabSpans = reiterdiv.getElementsByTagName("span");
	var noTabs = tabSpans.length;
	
	for (var i = 0; i < noTabs; i++) {
		var tabId = tabSpans[i].getAttribute('id');
		var tabNo = tabId.split('_')[1];
		var divId = 'tab' + tabNo;
		
		// current is selected tab
		if(tabNo == index){
			// set style of previous tab
			if(previousIndex == 0){
				setClass('tab_' + previousIndex,  'firstactive');
			}else{
				setClass('tab_' + previousIndex,  'rightactive');
			}
			 
			// set style of selected tab
			if(i == noTabs - 1){
				setClass(tabId,  'lastactive');
			}else{
				setClass(tabId,  'active');
			}
			
			// set page content
			if(i > 0) setStyle(divId, 'block');
			
		// current not selected
		}else{
			// first tab
			if(i == 0){
				setClass(tabId,  'first');
			}
			// last tab
			else if(i == noTabs - 1){
				setClass(tabId,  'last');
			}
			// other tab
			else{
				setClass(tabId,  '');
			}
			
			if(i > 0) setStyle(divId, 'none');
		}
		previousIndex = tabNo;
	}
	

}

function setClass(elementId, value){
	if (document.all){
		if(document.all[elementId] != null){
			document.all[elementId].className = value;
		}
	} else { 
		if(document.getElementById(elementId) != null){
			document.getElementById(elementId).setAttribute('class', value);
		}
	}
}

function setStyle(elementId, value){
	
	if (document.all) {
		if(document.all[elementId] != null){
			document.all[elementId].style.display = value;
		}
	} else {
		if(document.getElementById(elementId) != null){
			document.getElementById(elementId).setAttribute('style', 'display:'+value+';');
		}
	}
}

function setVisible(elementId, value){
	
	if (document.all) {
		if(document.all[elementId] != null){
			document.all[elementId].style.visibility = value;
		}
	} else {
		if(document.getElementById(elementId) != null){
			document.getElementById(elementId).setAttribute('style', 'visibility:'+value+';');
		}
	}
}

function hideButtons() {
	var foo = getElementsByClassName ('submit-button',document.getElementById('publicationssortingfilter'));	
	for (n=0; n < foo.length; n++) foo[n].style.display = 'none';		
}

function updateForm(){
	if (document.getElementById('filter_select')) {		
		var theme = document.getElementById('filter_select').value;
		if (theme > 0) {
			setStyle('subthemes','block');
			
			//foo = getElementsByClassName ('subtheme',document.getElementById('subfilter_select'));	
			//for (n=0; n < foo.length; n++) foo[n].style.display = 'none';
			
			var thisTheme = themeCollection[theme];
			var sOptions = '';

			if (thisTheme != undefined) {
				for(var n = 0; n < thisTheme.length; n++) {
					var me = thisTheme[n];
					//if (document.getElementById('subtheme_' + me)) {
					//	setStyle('subtheme_' + me,'block');	
					//}
					sOptions = sOptions + themeCollectionOptions[me];
				}
				
				select_innerHTML(document.getElementById("subfilter_select"),sOptions);
				//document.getElementById('subfilter_select').innerHTML = sOptions;
				
				if (document.getElementById('subtheme_0')) {
					document.getElementById('subtheme_0').selected = true;	
				}
			}
			
			if (thisTheme == undefined) {
				setStyle('subthemes','none');
				if (document.getElementById('subtheme_0')) {
					document.getElementById('subtheme_0').selected = true;	
				}				
			}
			
		} else {
			setStyle('subthemes','none');
		}
	}
}

function searchPublications(){
	if (document.getElementById('searchstring_input')) {
		lastKey = new Date().getTime();
		setTimeout( "sendRequest();", 400); 
	}
}

function sendRequest() {
	var newTime = new Date().getTime();
	if ((newTime-lastKey) < 400) return false;
	
	var searchstring = document.getElementById('searchstring_input').value;		
	if ((searchstring.length >= 3) || (searchstring.length == 0)) {
		setVisible('loadinganimation', 'visible');
		tx_denapublikationen_pi1processAjaxRequest(xajax.getFormValues('publicationssortingfilter'));	
	}
}


function getElementsByClassName (className, element) {
	element = element ? element : document;

	var muster = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var alles = element.getElementsByTagName("*");
	var gefunden = new Array();
	var i;

	for (i = 0; i < alles.length; i++) {
		if (alles[i] && alles[i].className && alles[i].className != "") {
			if (alles[i].className.match(muster)) // für Fälle wie class="xyz abc"
				gefunden[gefunden.length] = alles[i];
		}
	}

	return gefunden;
}	


function select_innerHTML(objeto,innerHTML){
	objeto.innerHTML = ""
	var selTemp = document.createElement("micoxselect")
	var opt;
	selTemp.id="micoxselect1"
	document.body.appendChild(selTemp)
	selTemp = document.getElementById("micoxselect1")
	selTemp.style.display="none"
	
	if(innerHTML.indexOf("<option")<0){//se não é option eu converto
		innerHTML = "<option>" + innerHTML + "</option>"
	}
	
	innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
	selTemp.innerHTML = innerHTML

	for(var i=0;i<selTemp.childNodes.length;i++){
		var spantemp = selTemp.childNodes[i];
	
		if(spantemp.tagName){     
			opt = document.createElement("OPTION")
	
			if (document.all){ //IE
				objeto.add(opt)
			} else {
				objeto.appendChild(opt)
			}       
	
			//getting attributes
			for(var j=0; j<spantemp.attributes.length ; j++){
				var attrName = spantemp.attributes[j].nodeName;
				var attrVal = spantemp.attributes[j].nodeValue;
			
				if(attrVal){
					try{
						opt.setAttribute(attrName,attrVal);
						opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
					}catch(e){}
				}
			}
			//getting styles
			if(spantemp.style){
				for(var y in spantemp.style){
					try{opt.style[y] = spantemp.style[y];}catch(e){}
				}
			}
			//value and text
			opt.value = spantemp.getAttribute("value")
			opt.text = spantemp.innerHTML
			//IE
			opt.selected = spantemp.getAttribute('selected');
			opt.className = spantemp.className;
		} 
	}    
	document.body.removeChild(selTemp)
	selTemp = null
}
