
var itemLists = new Array();
var itemListContainers = new Array( "formMeasureList","formSampleList","formEluentList","formPackingList");		
var itemListTypes      = new Array( "shodex_measurings","shodex_samples","shodex_eluents","shodex_packings");
for(var i=0; i <itemListContainers.length ; i++) {

	initListContainer( itemListContainers[i], itemListTypes[i]);
}

addEvent( document.body,"click",hideListContainers,false);

/*
	Funktionen fuer includes/center_search.inc.php
	@file		search_selects.js
	@version	2007-01-09
*/

function initListContainer(container_id,type) {
	
	new AjaxRequest('text', 'samplelist','fragment=%&type='+type, insertList);
	
	/**
		Lokale Funktion
	*/
	function insertList(text) {
		var rows = text.split("\n");
		itemLists[type] = new Array();

		for(i=0; i < rows.length; i++) {
			if(rows[i]=="") continue;
			itemLists[type].push(rows[i]);			
		}
		var container = document.getElementById(container_id);
		if(container != null) {
			refreshItemList(container,type);
		}
	}
}

function hideListContainers(e) {
	for(var i=0 ; i <itemListContainers.length ; i++) {
		var cont = document.getElementById(itemListContainers[i]);
		cont.style.display = "none";
		cont.style.height= "";
	}
}

function showHideListContainers(e,id, toggle) {
	if(typeof toggle =="undefined") toggle = false;
	var st = "block";
	var container = document.getElementById(id);			
	if(toggle && container != null) {
		st = container.style.display == "block" ? "none":"block";
	}			
	
	hideListContainers(e);				
	if(container != null) {
		container.style.display = st;
	}
	stopEvent(e);
}

function refreshItemList(container,type) {
	container.innerHTML = "";
	if(itemLists[type]) {
		var len = itemLists[type].length;
		var emptyrow = document.createElement("A");
		emptyrow.className = "ajaxListItem";
		emptyrow.innerHTML = "&nbsp;";
		addEvent(emptyrow,"keydown",browseList);					
		emptyrow.href = "#";				
		emptyrow.id ="";		
		emptyrow.onclick = chooseListItem;		
		container.appendChild(emptyrow);
		
		for(i=0; i< len ; i++) {
			if(itemLists[type][i].indexOf("|") == -1) continue;
			var elms = itemLists[type][i].split("|");
			var row = document.createElement("A");
			addEvent(row,"keydown",browseList);	
			row.href = "#";
			row.className = "ajaxListItem";
			if(i%2==0) {
				row.className = row.className + " ajaxeven";
			}
			row.innerHTML = elms[1];
			row.id 			= elms[0];
			if(row.id ==-1) {
				row.className = "ajaxListSubLine";
			}
			else {
				row.onclick = chooseListItem;
			}
			container.appendChild(row);
		}
	}
}


function showDynamicList(e,txtfield,type) {
	
	var fragment = txtfield.value.toLowerCase();	
	
	fragment = fragment.replace(/.\*$/,"");
	fragment = fragment.replace(/\*/,"%");
	var contid = txtfield.name.replace(/Text/,"")
	var resultcontainer = document.getElementById(contid+"List");
	if(resultcontainer != null) {
		hideListContainers();
		resultcontainer.style.display = "block";
	}
	// Pfeil nach unten ?
	if(e.keyCode && e.keyCode == 40) {
		if(resultcontainer.firstChild != null && resultcontainer.firstChild.tagName=="A" ) {
			resultcontainer.firstChild.focus();			
		}
		return;	
	}		
	
	if(trim(fragment) =="") {
		document.getElementById(contid).value = "";
	}			

	if(typeof itemLists[type] !="undefined") {
		var fragnostar = fragment.replace(/\%/,"");
		
		for(i=0; i<itemLists[type].length ; i++) {
			itemLists[type][i] = itemLists[type][i].replace(/@@@/,"|");
			if(itemLists[type][i].indexOf("|") == -1) {
				continue;
			}
			var elms = itemLists[type][i].split("|");
			var txt = elms[1];
			
			if(txt.toLowerCase()== fragment) {
				document.getElementById(contid).value = elms[0];
				txtfield.value = elms[1];
			}
			
			if(fragment.indexOf("%") != 0 && txt.toLowerCase().indexOf(fragnostar) != 0  || 
				fragment.indexOf("%") == 0 && txt.toLowerCase().indexOf(fragnostar) < 0) {
				itemLists[type][i] = itemLists[type][i].replace(/\|/,"@@@");
			}
		}
	}
	refreshItemList(resultcontainer,type);
}


function browseList(e) {
	if(window.event) e= window.event;
	var row = e.target ? e.target : e.srcElement;
	if(e.keyCode == 40) {
		if(row.nextSibling != null) {
			row.nextSibling.focus();
		}
	}
	if(e.keyCode == 38) {
		if(row.previousSibling != null) {
			row.previousSibling.focus();
		}
	}
}

function chooseListItem(e) {
	if(window.event) e = window.event;			
	var row = e.target ? e.target : e.srcElement;
	var targetid = row.parentNode.id.replace(/List/,"");
	
	document.getElementById(targetid).value = row.id;
	document.getElementById(targetid+"Text").value = row.innerHTML.replace(/&lt;/,"<").replace(/&gt;/,">").replace(/&nbsp;/,"");;
}


