var aProdukte 	= new Array();
var aKategorien = new Array();
var aSearchLines = new Array();
var aSonderzeichen = new Array();
aSonderzeichen.push("/");
aSonderzeichen.push("(");
aSonderzeichen.push(")");
aSonderzeichen.push("[");
aSonderzeichen.push("]");
aSonderzeichen.push("^");
aSonderzeichen.push("$");
aSonderzeichen.push("*");
aSonderzeichen.push("+");
aSonderzeichen.push(".");
aSonderzeichen.push("?");

var pListeLabel_std = "";

function cProdukt(id, name, artnums, url) {
	this.pid 		= id;
	this.name 		= name;
	this.artNums 	= artnums;
	this.url		= url;
	
	this.dump = function() {
		return this.pid + ";" + this.name + ";" + this.artNums;
	}
	
	this.getOptionTag = function() {
		var o = new Option(this.name, this.pid, false, false);
		return o;
	}
}

function cKategorie(id, name) {
	this.katID 		= id;
	this.name 		= name;
	this.aPids 		= new Array();
	
	this.dump = function() {
		return this.katID + " " + this.name + " Pids (Length): " + this.aPids.length;
	}
	
	this.addPID = function(pid) {
		this.aPids.push(pid);
	}
}


function categorySearch(katID) {
	clearSearchField();
	
	try {
		clearProduktliste();
		var oListe = document.getElementById("produktliste");
		
		aPids =  aKategorien[katID].aPids;
		for(var i=0; i<aPids.length; i++) {
			oListe.options[oListe.length] = aProdukte[aPids[i]].getOptionTag();
		}
	} catch(e){  }
	
}

searchbuffer = null;

function search() {

	clearKategorieSelection();
	var oSearchFild = document.getElementById("pSearchField");
	suchText = checkSearchString(oSearchFild.value);

	if(suchText == searchbuffer)
		return;

	searchbuffer = suchText;
	clearProduktliste();

	if(suchText == "" || suchText == " "){
		searchbuffer = null;
		return;
	}
	
	var oListe = document.getElementById("produktliste");
	for(var i in aSearchLines) {

		var reg = new RegExp(suchText, "i");
		erg = aSearchLines[i].search(reg);
		
		if(erg == -1)
			continue;
		
		if(typeof(aSearchLines[i]) == "string" && aSearchLines[i].length == 0)
			continue;
		
		oP = aProdukte[i];
		oListe.options[oListe.length] = oP.getOptionTag();
	}
}

function checkPListeValue() {
	var oListe = document.getElementById("produktliste");
	if(oListe.value == "")
		return false;
	window.location = aProdukte[oListe.value].url;
	return false;
}

function clearProduktliste() {
	var oListe = document.getElementById("produktliste");
	oListe.length = 0;
}

function checkSearchString(suchText) {
	for(var j=0; j<aSonderzeichen.length ; j++)
		suchText = suchText.split(aSonderzeichen[j]).join("\\" + aSonderzeichen[j]);
	return suchText;
}

function clearSearchField() {
	var oSearchFild = document.getElementById("pSearchField");
	if(oSearchFild.value.length > 0)
		oSearchFild.value = "";
}

function clearKategorieSelection() {
	var oKategorien = document.getElementById("pkategorien");
	oKategorien.selectedIndex = -1;
}

function clearAll(){
	var oSearchFild = document.getElementById("pSearchField");
	suchText = checkSearchString(oSearchFild.value);

	if(suchText == searchbuffer)
		return;

	clearKategorieSelection();
	clearProduktliste();
}
