//<!--

/***************************************/
/* LAYOUT -> RESIZE ********************/
/***************************************/
//DOM Checker
if (document.all) {
	//u.a. IE win
	explorer = true;
	//dom = 'document.all.';
	//dom2 = "document.all.getElementsByName('";
	//suffix = '.style';
	//stylesuffix = ".style";
	//suffixshort = "";
	//suffixshort2 = "')";
	hi = 'hidden';
	vi = 'visible';
	dhtml = true;
	dom = "document.getElementById('";
	dom2 = "document.getElementsByName('";
	suffix = "').style";
	stylesuffix = ".style";
	suffixshort = "')";
	suffixshort2 = "')";
}
else if (document.layers) {
	netscape4 = true;
	dom = 'document.';
	dom2 = "document.getElementsByName('";
	suffix = '';
	stylesuffix = '';
	suffixshort = "";
	suffixshort2 = "')";
	hi = 'hide';
	vi = 'visible';
	dhtml = true;
} else {
	netscape6 = true;
	dom = "document.getElementById('";
	dom2 = "document.getElementsByName('";
	suffix = "').style";
	stylesuffix = ".style";
	suffixshort = "')";
	suffixshort2 = "')";
	hi = "hidden";
	vi = "visible";
	dhtml = true;
}

institution_dependencies = new Array();
faculty_dependencies = new Array();

//Window mit   C O N T E N T   resizen
function getWindowHeight() {
	var windowHeight=0;
	if (typeof(window.innerHeight)=='number') {
		
		//ein paar Pixel weg wegen Mozilla
		windowHeight=window.innerHeight-9;
	}
	else {
		if (document.documentElement&&
				document.documentElement.clientHeight) {
					windowHeight=document.documentElement.clientHeight;
				}
		else {
			if (document.body&&document.body.clientHeight) {
				windowHeight=document.body.clientHeight;
			}
		}
	}
	
	eval(dom + 'content' + suffix).height = windowHeight-194;
}


function findFormElements(actObj)
{
	//alert(actObj);
	var results = new Array();
	var i = 0;
	for (i = 0; i < actObj.childNodes.length; i++)
	{
		if (actObj.childNodes[i].nodeType == 1)
		{
			if ((actObj.childNodes[i].tagName == "SELECT") || (actObj.childNodes[i].tagName == "INPUT") || (actObj.childNodes[i].tagName == "TEXTAREA"))
			{
				var tmp = actObj.childNodes[i];
				results.push(tmp);
			}
			else
			{
				var tmp = actObj.childNodes[i];
				var tmp2 = findFormElements(tmp);
				var tmp3 = results.concat(tmp2);
				results = tmp3;
			}
		}
	}
	return results;
}

/* Pulldown mit JS Jump ****************/
function jumpMenu(targ,selObj,restore, value, name){
	if (restore) selObj.selectedIndex=0;
	var i = 0;
	var j = 0;
	var k = 0;
	var l = 0;
	for(i=0;i<selObj.length;i++){
		var subsetblock = eval(dom2 + 'subsetblock' + name + '_' + selObj.options[i].value + suffixshort2);
		if (subsetblock != null)
		{
			for (j = 0; j < subsetblock.length; j++)
			{
				if (subsetblock[j] != null)
				{
					eval(dom2 + 'subsetblock' + name + '_' + selObj.options[i].value + "')[" + j + ']' + stylesuffix).display = 'none';
					//clear all entered data
					var actelement = subsetblock[j];
					var Formelements = findFormElements(actelement);
					for (k = 0; k < Formelements.length; k++)
					{
						if (Formelements[k].tagName == "SELECT")
						{
							//preset to standard
							Formelements[k].selectedIndex = 0;
							var defVal = Formelements[k].value;
							for (l = 0; l < Formelements[k].length; l++)
							{
								if (Formelements[k].options[l].defaultSelected == true)
								{
									defVal = Formelements[k].options[l].value;
								}
								Formelements[k].options[l].selected = false;
							}
							var funcstring = Formelements[k].getAttribute("onChange");
							funcstring = String(funcstring);
							if (funcstring != "")
							{
									if (funcstring.indexOf("jumpMenu2(") >= 0)
									{
										jumpMenu2('parent', Formelements[k], 0, defVal, 'alter' + Formelements[k].id);
									}
									if (funcstring.indexOf("jumpMenu(") >= 0)
									{
										jumpMenu('parent', Formelements[k], 0, 0, Formelements[k].name);
									}
									if (funcstring.indexOf("alterTextfield(") >= 0)
									{
										alterTextfield(Formelements[k].id, Formelements[k].id + "T");
									}
							}
						}
						else
						{
							Formelements[k].value = "";
						}
					}
				}
			}
		}
	}
	//if (desel == false)
	//{
		//alert(subsetblock2.length);
		//var subsetblock2 = eval(dom2 + 'subsetblock' + name + '_' + selObj.options[selObj.selectedIndex].value + suffixshort2);
		var subsetblock2 = eval(dom2 + 'subsetblock' + name + '_' + value + suffixshort2);
		if (subsetblock2 != null)
		{
			var j = 0;
			while(subsetblock2[j] != null)
			{
				//eval(dom2 + 'subsetblock' + name + '_' + selObj.options[selObj.selectedIndex].value + "')[" + j + ']' + stylesuffix).display = 'block';
				eval(dom2 + 'subsetblock' + name + '_' + value + "')[" + j + ']' + stylesuffix).display = 'block';
				var actelement = subsetblock2[j];
				var Formelements = findFormElements(actelement);
				for (k = 0; k < Formelements.length; k++)
				{
					if (Formelements[k].tagName == "SELECT")
					{
						//preset to standard
						for (l = 0; l < Formelements[k].length; l++)
						{
							if (Formelements[k].options[l].defaultSelected == true)
							{
								Formelements[k].options[l].selected = true;
								Formelements[k].selectedIndex = l;
							}
							else
							{
								Formelements[k].options[l].selected = false;
							}
						}
					}
					else
					{
						Formelements[k].value = Formelements[k].defaultValue;
					}
				}
				j++;
			}
		}
	//}
}

function jumpMenu2(targ,selObj,restore, value, name){
	if (value == 0){
		eval(dom + name + suffix).display = 'block';
	}
	else{
		eval(dom + name + suffix).display = 'none';
	}
}



function showHidden(name){
	actform = eval("document." + name);
	for(i=0;i<actform.elements.length;i++){
		var actobj = actform.elements[i];
		if (actobj.tagName == 'SELECT'){
			if (actobj.options[0] != null){
				if (actobj.options[0].text == '---'){
				/*
					//alert(actobj.selectedIndex);
					if (actobj.selectedIndex > 0){
						//alert(actobj.length);
						for(j=0;j<actobj.length;j++){
							var subsetblock = eval(dom2 + 'subsetblock' + actobj.name + '_' + actobj.options[j].value + suffixshort2);
							if (subsetblock != null){
								//alert('found');
								var k = 0;
								while(subsetblock[k] != null){
									eval(dom2 + 'subsetblock' + actobj.name + '_' + actobj.options[j].value + "')[" + k + ']' + stylesuffix).display = 'none';
									k++;
								}
							}
						}
						var subsetblock2 = eval(dom2 + 'subsetblock' + actobj.name + '_' + actobj.options[actobj.selectedIndex].value + suffixshort2);
						if (subsetblock2 != null){
							//alert('found2');
							var k = 0;
							while(subsetblock2[k] != null){
								eval(dom2 + 'subsetblock' + actobj.name + '_' + actobj.options[actobj.selectedIndex].value + "')[" + k + ']' + stylesuffix).display = 'block';
								k++;
							}						
						}
					}
					*/
					var funcstring = actobj.getAttribute("onChange");
					funcstring = String(funcstring);
					if (funcstring != "")
					{
							if (funcstring.indexOf("jumpMenu2(") >= 0)
							{
								jumpMenu2('parent', actobj, 0, actobj.value, 'alter' + actobj.id);
							}
							if (funcstring.indexOf("jumpMenu(") >= 0)
							{
								jumpMenu('parent', actobj, 0, actobj.value, actobj.name);
							}
							if (funcstring.indexOf("alterTextfield(") >= 0)
							{
								alterTextfield(actobj.id, actobj.id + "T");
							}
					}
				}
				else if (actobj.name == 'rIsSubset'){
					if (actobj.selectedIndex > 0){
						var subsetblock2 = eval(dom2 + 'subsetblockrIsSubset_1' + "')[0]" + stylesuffix);
						subsetblock2.display = 'block';
					}
				}
			}
		}
	}
}

function is_arrayin_array(needle, haystack){
	found = false;
	for (idx=0;idx<haystack.length;idx++){
		//alert(needle + " " + haystack[i]);
		if (haystack[idx].join(" ") == needle.join(" ")){
			//alert("found");
			found = true;
			break;
		}
	}
	return found;
}

function filterFac(value, facpd){
	if (value != 0){
		pulldown = eval(dom + facpd + suffixshort);
		//alert(pulldown.length);
		for (i=0;i<pulldown.length;i++){
			//alert(new Array(value, pulldown.options[i].value) + "blub");
			if ((pulldown.options[i].value == 0) || is_arrayin_array(new Array(value, pulldown.options[i].value), institution_dependencies)){
				pulldown.options[i].disabled = false;
			}
			else{
				pulldown.options[i].disabled = true;
			}
		}
	}
	else{
		pulldown = eval(dom + facpd + suffixshort);
		for (i=0;i<pulldown.length;i++){
			pulldown.options[i].disabled = false;
		}
	}
}

function filterDep(value, deppd){
	if (value != 0){
		pulldown = eval(dom + deppd + suffixshort);
		//alert(pulldown.length);
		for (i=0;i<pulldown.length;i++){
			//alert(new Array(value, pulldown.options[i].value) + "blub");
			if ((pulldown.options[i].value == 0) || is_arrayin_array(new Array(value, pulldown.options[i].value), faculty_dependencies)){
				pulldown.options[i].disabled = false;
			}
			else{
				pulldown.options[i].disabled = true;
			}
		}
	}
	else{
		pulldown = eval(dom + deppd + suffixshort);
		for (i=0;i<pulldown.length;i++){
			pulldown.options[i].disabled = false;
		}
	}
}
/*bei add/join wg die workinggroup-maske ein oder ausblenden + form-action ändern**************/

function checkWorkinggroups(scrolld, divname, formname, actionA, actionB){
	var scrollthingy = eval(dom + scrolld + suffixshort);
	if (scrollthingy.selectedIndex > 0)
	{
		eval(dom + divname + suffix).display = 'none';
		eval(dom + formname + suffixshort).action = actionA;	
	}
	else
	{
		eval(dom + divname + suffix).display = 'block';
		eval(dom + formname + suffixshort).action = actionB;
	}
}

/* Pulldown mit Textfeld ****************/
function alterTextfield(scrolld,textf){
	var scrollthingy = eval(dom + scrolld + suffixshort);
	if (scrollthingy.selectedIndex >= 0)
	{
			if (scrollthingy.options[scrollthingy.selectedIndex].value > 0)
			{
				//if (scrollthingy.options[scrollthingy.selectedIndex].text != "Enter a new one")
				//{
					eval(dom + textf + suffixshort).value = scrollthingy.options[scrollthingy.selectedIndex].text;
				//}	
			}
			else
			{
				eval(dom + textf + suffixshort).value = "";
			}
	}
}

function alterScroll(scrolld,textf){
	var scrollthingy = eval(dom + scrolld + suffixshort);
	var idx = 0;
	for(i = 0; i < scrollthingy.length; i++){//
		if (scrollthingy.options[i].value == "0")
		{
			idx = i;
			if (scrollthingy.options[i].name == "Enter a new one")
			{
				break;
			}
		}
	}
	scrollthingy.selectedIndex = idx;
}
//prüft bei compare search, ob 1-4 items angewählt sind
function checkCompareselection(formname, checkname){
	var formular = eval(dom + formname + suffixshort);
	var checkboxes = eval(dom2 + checkname + suffixshort2);
	var cl_counter = 0;
	var wg_counter = 0;
	var rp_counter = 0;
	var pub_counter = 0;
	var mem_counter = 0;
	for (i = 0; i < checkboxes.length; i++)
	{
		if (checkboxes[i].id.search(/rp_.+/) != -1)
		{
			if (checkboxes[i].checked == true)
				rp_counter++;
		}
		else if (checkboxes[i].id.search(/wg_.+/) != -1)
		{
			if (checkboxes[i].checked == true)
				wg_counter++;
		}
		else if (checkboxes[i].id.search(/cl_.+/) != -1)
		{
			if (checkboxes[i].checked == true)
				cl_counter++;
		}
		else if (checkboxes[i].id.search(/pub_.+/) != -1)
		{
			if (checkboxes[i].checked == true)
				pub_counter++;
		}
		else if (checkboxes[i].id.search(/mem_.+/) != -1)
		{
			if (checkboxes[i].checked == true)
				mem_counter++;
		}
	}
	var all_counter = rp_counter + wg_counter + cl_counter + pub_counter;
	if ((all_counter > 0) && (rp_counter < 5) && (wg_counter < 5) && (cl_counter < 5) && (pub_counter < 5))
	{
		formular.submit();
	}
	else
	{
		if (all_counter > 0)
			alert("select no more than 4 items per category");
		else
			alert("select at least one item to display");
		
	}
}


/* Blättern ****************/

//Sind überhauptr mehr Results als Pages?
function checkControls(tot,pages){
	if (tot <= pages){
		eval(dom + 'controlLeft' + suffix).display = 'none';
		eval(dom + 'controlRight' + suffix).display = 'none';
		eval(dom + 'controlLeftInact' + suffix).display = 'none';
		eval(dom + 'controlRightInact' + suffix).display = 'none';
		
	}
}


function scrollMenue(targ,selObj,dir,tot,pages){ //v3.0
	if (dir == 'right'){
		for(i=1;i<=tot;i++){
			if (eval(dom + 'block' + i + suffix).display == 'block'){
				last = i;
				
				//damit's nicht weitergeht
				if (last+pages-1 >= tot){
					last = tot-pages;
				}
			}
			//alert(last);
		}
		//die hinteren Blöcke ausschalten, 
		for(i=last-(pages-1);i<=last;i++){
			eval(dom + 'block' + i + suffix).display = 'none';
		}
		// checken ob's n gibt und einschalten etc
		for(i=last+1;i<=(last+pages);i++){
			if(i<=tot)
				eval(dom + 'block' + i + suffix).display = 'block';
		}
		
		//Rechte Pfeile ausschalten wenn rechtes Ende erreicht ist
		if(last+pages >= tot){
			eval(dom + 'controlRight' + suffix).display = 'none';
			eval(dom + 'controlRightInact' + suffix).display = 'block';
		}
		
		
		
		
		//falls arrowLeft und Leftend aus sind -> einschalten
		if (eval(dom + 'controlLeft' + suffix).display == 'none'){
			eval(dom + 'controlLeft' + suffix).display = 'block';
			eval(dom + 'controlLeftInact' + suffix).display = 'none';
		}
	}
	
	
	
	if (dir == 'left'){
		for(i=tot;i>=1;i--){
			if (eval(dom + 'block' + i + suffix).display == 'block'){
				last = i;
				//damit am ende immer ein kompletter pages-satzt ist
				if (last <= pages){
					last = pages+1;
				}
			}
		}
		//die vorderen Blöcke ausschalten, 
		for(i=last+(pages-1);i>=last;i--){
			eval(dom + 'block' + i + suffix).display = 'none';
		}
		// checken ob's n gibt und einschalten etc
		for(i=last-1;i>=(last-pages);i--){
			if(i>=1)
				eval(dom + 'block' + i + suffix).display = 'block';
		}
		
		//Linke Pfeile ausschalten wenn linkes Ende erreicht ist
		if(last-1 <= pages){
			eval(dom + 'controlLeft' + suffix).display = 'none';
			eval(dom + 'controlLeftInact' + suffix).display = 'block';
		}
		
		if (eval(dom + 'controlRight' + suffix).display == 'none'){
			eval(dom + 'controlRight' + suffix).display = 'block';
			eval(dom + 'controlRightInact' + suffix).display = 'none';
		}
		
	}
	
	
	if (dir == 'rightend'){
		for(i=1;i<=tot;i++){
			if (eval(dom + 'block' + i + suffix).display == 'block'){
				last = i;
			}
		}
		//die hinteren Blöcke ausschalten, 
		for(i=last-(pages-1);i<=last;i++){
			eval(dom + 'block' + i + suffix).display = 'none';
		}
		
		for(i=(tot-pages+1);i<=tot;i++){
			if(i<=tot)
				eval(dom + 'block' + i + suffix).display = 'block';
		}
		eval(dom + 'controlLeft' + suffix).display = 'block';
		eval(dom + 'controlRight' + suffix).display = 'none';
		eval(dom + 'controlLeftInact' + suffix).display = 'none';
		eval(dom + 'controlRightInact' + suffix).display = 'block';
		
	}
	
	
	
	if (dir == 'leftend'){
		for(i=tot;i>=1;i--){
			if (eval(dom + 'block' + i + suffix).display == 'block'){
				last = i;
			}
		}
		//die vorderen Blöcke ausschalten, 
		for(i=last+(pages-1);i>=last;i--){
			eval(dom + 'block' + i + suffix).display = 'none';
		}
		for (i=1;i<=pages;i++){
			eval(dom + 'block' + i + suffix).display = 'block';
		}
		
		eval(dom + 'controlRight' + suffix).display = 'block';
		eval(dom + 'controlLeft' + suffix).display = 'none';
		eval(dom + 'controlRightInact' + suffix).display = 'none';
		eval(dom + 'controlLeftInact' + suffix).display = 'block';
	}
	
	
}

/* ADD FORMFIELD *********************/
var counter = 1;
function addField(cla,nam,val){
	counter++;
	
	var br = document.createElement("br");
	document.getElementById("addFormField").appendChild(br);
	
	var newInput = document.createElement("input");
	
	var newClass = document.createAttribute("class");
	newClass.nodeValue = cla;
	newInput.setAttributeNode(newClass);
	
	var newName = document.createAttribute("name");
	newName.nodeValue = nam + counter;
	newInput.setAttributeNode(newName);
	
	var newType = document.createAttribute("type");
	newType.nodeValue = "text";
	newInput.setAttributeNode(newType);
	
	var newValue = document.createAttribute("value");
	newValue.nodeValue = val + counter;
	newInput.setAttributeNode(newValue);
	
	document.getElementById("addFormField").appendChild(newInput);
	
	
}


//Search Reults mit Tabs
function showTab(type,tot){
	for(i=0;i<tot;i++){
		if (eval(dom + 'block' + i + suffix).display){
			eval(dom + 'block' + i + suffix).display = 'none';
			eval(dom + 'tab' + i + "No" + suffix).display = 'none';
			eval(dom + 'tab' + i + "Act" + suffix).display = 'block';
		}
	}
	eval(dom + 'block' + type + suffix).display = 'block';
	
	eval(dom + 'tab' + type + "Act" + suffix).display = 'none';
	eval(dom + 'tab' + type + "No" + suffix).display = 'block';
}


//My hESCreg mit bars
function showBar(type,clo){
	
	if (clo == 0){
		eval(dom + 'tab' + type + "No" + suffix).display = 'block';
		eval(dom + 'tab' + type + "Act" + suffix).display = 'none';
		eval(dom + 'block' + type + suffix).display = 'block';
	}
	if (clo == 1){
		eval(dom + 'tab' + type + "No" + suffix).display = 'none';
		eval(dom + 'tab' + type + "Act" + suffix).display = 'block';
		eval(dom + 'block' + type + suffix).display = 'none';
	}
}

/* öffnen von PopUps *************/
function pop(name, width, height){
	window.open("extrapages/"+name, "pop", "width="+width+", height="+height+", scrollbars=yes");
}
/* öffnen von PopUps2 *************/
function pop2(name, width, height){
	window.open(name, "pop", "width="+width+", height="+height+", scrollbars=yes");
}

function confirmdelete(conflink){
	var agree = false;
	agree = confirm('are you sure to delete this user?');
	if (agree){
		window.location.href = conflink;
	}
}

function subsetupdate(name, subsetlink, initialid, selection){
	if ((initialid != selection.options[selection.selectedIndex].value) && (selection.options[selection.selectedIndex].value != 0))
	{
			eval('document.' + name).action = subsetlink;
			eval('document.' + name).submit();
	}
}

/*
Rating PopUp mit JS -> nur im notfall anwenden....
*/
/*

document.onmousemove = getDPosition;
document.onmousedown = getSPosition;
drag = false;
*/
document.onmouseup = getYPosition;
function showRating(){

	eval(dom + 'rating01' + suffix).visibility = vi;
	eval(dom + 'rating01' + suffix).top = pos-50;
	//eval(dom + 'rating01' + suffix).top = 150;
	
}

function hideRating(){
	eval(dom + 'rating01' + suffix).visibility = hi;
	
}

function getYPosition(evt){
	if(!evt) { //IE
		evt = window.event;
		pos = evt.offsetY+100;
	}
	else{
		pos = evt.pageY	
	}
	
	

	return pos;
}
/*
function getSPosition(evt){
	sPosX = evt.pageX;
	sPosY = evt.pageY;

}

function getDPosition(evt){
	dPosX = evt.pageX;
	dPosY = evt.pageY;

}



function startDragg(){
	drag =true;
	startX = sPosX - eval(dom + 'rating01' + suffix).left;
	startY = sPosY - eval(dom + 'rating01' + suffix).top;
	
	
	
	//alert(posX+", "+posY);
}
function stopDragg(){
	drag =false;
	//alert(posX+", "+posY);

}

function moveIt(){
	if(drag){
		dPosX = eval(dom + 'rating01' + suffix).left;
		dPosY = eval(dom + 'rating01' + suffix).top;
		eval(dom + 'rating01' + suffix).left = startX + dPosX;
		eval(dom + 'rating01' + suffix).left = startY + dPosY;
	}
	
}
*/
//-->
