var ie = document.all ? true : false;
var opera = (window.opera || navigator.userAgent.indexOf("Opera") != -1) ? true : false;

var myWin = null;
var extN =0; 
var ExtSampleArr;
var Intro32Arr;
var Query;
//var AssiOn = 1;



// Variant 1: Open external Window
var aktiv;
var Words;

// 1.1
function CheckSearchInput(filename) {

		
	// close previous opened window
	if(myWin)
	myWin.close();

	Words = document.forms[0].elements['query'].value.split(" ");
	
	// check conditions for new window
	if (Words.length == 1) {
	
		myWin = window.open(filename, 'Anna', 'width=400', 'height=800');

		aktiv = myWin.setInterval("opener.fullLoad()", 10);

		
	}

	
	return false;
	

}

// 1.2
function fullLoad () {

	if (myWin.document.getElementsByTagName("body")[0].childNodes.length >0) {
		
		// Body-style: common for all window versions
		var Body = myWin.document.getElementsByTagName("body")[0];
		Body.style.fontSize = "8pt";
		Body.style.fontFamily = "Verdana, Arial, Helvetica, sans-serif";
		Body.style.color = "#666666";
		Body.style.margin = "0px";
		
		var OuterBox = myWin.document.getElementById("main");
		var OuterBoxStyle = myWin.document.createAttribute("style");
		OuterBoxStyle.nodeValue = "padding:0.5em;";
		OuterBox.setAttributeNode(OuterBoxStyle);
		Body.appendChild(OuterBox);
		
		// inner Box with Border
		var InnerBox = myWin.document.createElement("div");
		var InnerBoxStyle = myWin.document.createAttribute("style");
		InnerBoxStyle.nodeValue = "padding:1.0em; border:medium solid #cccccc;";
		InnerBox.setAttributeNode(InnerBoxStyle);		
    	OuterBox.appendChild(InnerBox);
		
		if(document.forms[0].elements['query'].value == "Poster") {
					
			// 1. intro text 
			var IntroBox1 = myWin.document.createElement("div");
			var IntroBox1Style = myWin.document.createAttribute("style");
			IntroBox1Style.nodeValue = "background-color:#cccccc; color:#ffffff; font-weight:bold; padding:0.2em; margin-bottom:0.5em; line-height:1.4em;";
			IntroBox1.setAttributeNode(IntroBox1Style);		
			//
			var IntroText1 = myWin.document.createTextNode("Tipp:");
			IntroBox1.appendChild(IntroText1);
			
			var IntroBox2 = myWin.document.createElement("div");
			var IntroBox2Style = myWin.document.createAttribute("style");
			IntroBox2Style.nodeValue = "padding-bottom:0.5em; line-height:1.4em;";
			IntroBox2.setAttributeNode(IntroBox2Style);		
			//
			var IntroText2 = myWin.document.createTextNode("Das Hinzufügen von 'Eigenschaft=Wert' oder auch '<', '>', bewirkt häufig genauere Treffer.");
			IntroBox2.appendChild(IntroText2);
			
			var IntroBox3 = myWin.document.createElement("div");
			var IntroBox3Style = myWin.document.createAttribute("style");
			IntroBox3Style.nodeValue = "padding-bottom:1.0em; line-height:1.4em;";
			IntroBox3.setAttributeNode(IntroBox3Style);		
			//
			var IntroText3 = myWin.document.createTextNode("Zum Beispiel");
			IntroBox3.appendChild(IntroText3);
			
					
			// 2. Form
			var Form = myWin.document.createElement("form");
			var FormName = myWin.document.createAttribute("name");
			FormName.nodeValue = "mW";
			Form.setAttributeNode(FormName);
			var FormMethod = myWin.document.createAttribute("method");
			FormMethod.nodeValue = "POST";
			Form.setAttributeNode(FormMethod);
			var FormAction = myWin.document.createAttribute("action");
			FormAction.nodeValue = "";
			Form.setAttributeNode(FormAction);
			var FormSubmit = myWin.document.createAttribute("onsubmit");
			FormSubmit.nodeValue = "return opener.sendSearchString()";
			Form.setAttributeNode(FormSubmit);
			
			var InputBox = myWin.document.createElement("div");
			var InputBoxStyle = myWin.document.createAttribute("style");
			InputBoxStyle.nodeValue = "padding-bottom:1.0em;";
			InputBox.setAttributeNode(InputBoxStyle);		
			
			var Input = myWin.document.createElement("input");
			var InputType = myWin.document.createAttribute("type");
			InputType.nodeValue = "text";
			Input.setAttributeNode(InputType);
			var InputName = myWin.document.createAttribute("name");
			InputName.nodeValue = "myWin_query";
			Input.setAttributeNode(InputName);
			var InputValue = myWin.document.createAttribute("value");
			InputValue.nodeValue = document.forms[0].elements['query'].value+' Papierstärke>200';
			Input.setAttributeNode(InputValue);
			var InputStyle = myWin.document.createAttribute("style");
			InputStyle.nodeValue = "width:360px;";
			Input.setAttributeNode(InputStyle);		
			InputBox.appendChild(Input);
			
			var SubmitBox = myWin.document.createElement("div");
			var SubmitBoxStyle = myWin.document.createAttribute("style");
			SubmitBoxStyle.nodeValue = "text-align:center; padding-bottom:1.0em;";
			SubmitBox.setAttributeNode(SubmitBoxStyle);		
			
			var Submit = myWin.document.createElement("input");
			var SubmitType = myWin.document.createAttribute("type");
			SubmitType.nodeValue = "submit";
			Submit.setAttributeNode(SubmitType);
			var SubmitValue = myWin.document.createAttribute("value");
			SubmitValue.nodeValue = "Absenden";
			Submit.setAttributeNode(SubmitValue);
			SubmitBox.appendChild(Submit);
			
			Form.appendChild(InputBox);
			Form.appendChild(SubmitBox);
			
			InnerBox.appendChild(IntroBox1);
			InnerBox.appendChild(IntroBox2);
			InnerBox.appendChild(IntroBox3);
			InnerBox.appendChild(Form);

			
		}
	
	
		// close loop, do not delete!
		myWin.clearInterval(aktiv);

	} 

	else {
		myWin.document.bgColor = "aqua";
  	}

	
} // end of function

// 1.3
function sendSearchString () {
	
	document.forms[0].elements['query'].value = myWin.document.forms['mW'].elements['myWin_query'].value; 
	document.forms[0].submit(); 
	myWin.close();
}


// ------------------------------



// Variant 2: Build in help messages into search mask itself (index.php / search.php)

function AdaptSearchInput(AssiOn, innerTableWidth, itextBgColor, itextBorderColor, nSearchCalls) {
	

// workaround: in some cases data is not transferred correctly
 // in order to avoid an error, we use common values for setup
 if(!innerTableWidth)
 var innerTableWidth ='585';
 //
 if(!itextBgColor)
 var itextBgColor ='rgb(255,255,221)';
 //
 if(!itextBorderColor)
 itextBorderColor ='rgb(255,180,51)';
 
 if(!nSearchCalls)
 var nSearchCalls = 0;
 
 // list of page calls having highest priority to
 // display 'add-props-hint'
 if(nSearchCalls == 0 ||
    nSearchCalls == 2 ||
    nSearchCalls == 4 ||
    nSearchCalls == 8 ||
    nSearchCalls == 12 ||
    nSearchCalls == 16 ||
    nSearchCalls == 32)
 var PriorityAddProps = true;
 
 var Mode ="";
 var ModeText = new Array();
  
 
 /* stubb: does not work for external .js-file
 var PropValueList = new Array();
 PropValueList[0] = <?=$propValueList[0]?>;
 alert(PropValueList[0]);
 */
 

 if(AssiOn == 1) {
	 

	// 1. count amount of query words
	Words = document.forms[0].elements['query'].value.split(" ");
	
	var nWords=0;
	for (var i=0; i<Words.length; ++i) {
	
		// Din Formate
		if(Words[i].length==2 &&				
   		  (Words[i].charAt(0)=="A" || Words[i].charAt(0)=="a") &&
		   Words[i].charAt(1) >= "0" && Words[i].charAt(1) <=9) {
  			
			var DinMatch = true;
			
			nWords = nWords +1;
		}
		else if(Words[i].length>2) 
   		nWords = nWords +1;
		
	}
	
	// ---

	if (nWords >= 1) { // 0018-11
		
		Query = document.forms[0].elements['query'].value;
				
		var Syntax = new Array();
		Syntax[0] = "Suchbegriff Eigenschaft=Wert";
		Syntax[1] = "Suchbegriff Eigenschaft=Wert_";
		Syntax[2] = "Suchbegriff Eigenschaft=Wert1_Wert2";
		
		var TippText = new Array();
	
		// 2. Analyze content
		// 2.1. product category
	
		// use simple keyword match:
		var Poster         = document.forms[0].elements['query'].value.search(/(poster|foto|farbplot)/i);
		var Scan           = document.forms[0].elements['query'].value.search(/(scan)/i);
		var Dia            = document.forms[0].elements['query'].value.search(/(dia\b|diabel|diabelichtung\b)/i);
		var Kaschierung    = document.forms[0].elements['query'].value.search(/(dibond|kappa|forex|alu-|verbund|kaschierung|laminierung)/i);
		var Buch           = document.forms[0].elements['query'].value.search(/(digitaldruck|taschenbuch|paperback|buch)/i);
		
	
	
	
		// 2.2. search properties
		var Format = document.forms[0].elements['query'].value.search(/(Format|[0-9][ ]*x[ ]*[0-9]|A[0-9])/i);
		var Anzahl = document.forms[0].elements['query'].value.search(/[0-9][ ]*(Stueck|Stück|Stck|St.|St\b|mal\b)[ ]/i);
		if(Anzahl==-1)	Anzahl = document.forms[0].elements['query'].value.search(/[0-9][ ]*(Stueck|Stück|Stck|St.|St|mal)$/i);
		var Termin = document.forms[0].elements['query'].value.search(/(Termin[ ]*=|[0-3]?[0-9]\.[ ]?[0-1]?[0-9]\.[ ]?(20)?[0-1][0-9]|mo|die|mi|do|fr|sa|so|montag|dienstag|mittwoch|donnerstag|freitag|sonnabend|samstag|sonntag|heute|morgen|überbermorgen)[ ]/i);
		if(Termin==-1) Termin = document.forms[0].elements['query'].value.search(/(Termin[ ]*=|[0-3]?[0-9]\.[ ]?[0-1]?[0-9]\.[ ]?(20)?[0-1][0-9]|mo|die|mi|do|fr|sa|so|montag|dienstag|mittwoch|donnerstag|freitag|sonnabend|samstag|sonntag|heute|morgen|überbermorgen)$/i);
		var Preis = document.forms[0].elements['query'].value.search(/(Preis|[0-9][ ]*(Eu|Eur|Euro|€)[ ])/i);
		if(Preis==-1) Preis = document.forms[0].elements['query'].value.search(/(Preis|[0-9][ ]*(Eu|Eur|Euro|€))$/i);
		var Firma = document.forms[0].elements['query'].value.search(/(Firma[ ]?=|(GbR|GmbH|AG)[ ])/i);
		if(Firma==-1) Firma = document.forms[0].elements['query'].value.search(/(GbR|GmbH|AG)$/i);
		var Lieferung = document.forms[0].elements['query'].value.search(/(Lieferung|Stadtbote|DHL|Kurier)/i);
		var Papierstaerke = document.forms[0].elements['query'].value.search(/(Papierst(ae|ä)rke)/i);
	
		
		// query string: no category was found ('suchbegriff' = empty)
		if( Poster        == -1 &&
		   	Scan          == -1 &&
			Dia           == -1 &&
			Buch          == -1 &&
			Kaschierung   == -1)  { // 0001-11
		
			Mode = "wrongDigiCategory";
			
			ModeText[1] = "Ihre Suchanfrage zielt auf eine Leistung ab, die wir derzeit noch nicht anbieten.";
			ModeText[3] = "Bisher sind im System folgende Produktgruppen hinterlegt: -> Posterdruck, -> Fotodruck, -> Taschenbuchdruck, -> Scanarbeiten, -> Diabelichtungen, -> Kaschierungen";
		
		} // 0001-12
		
		// a category was identified, and
		else { // 0001-21
			
			if(nSearchCalls >0) { // 0800-11
		
		
				var QString = Query;
				
				
			// pattern from search.php, finding spec prop=value strings only
				var Pattern1 = /\b(Fläche|Format|Preis|Lieferung|Firma|Termin)[ ]*[=:]?[ ]*(!=|[<=>:]|[\W]min[.]?|[\W]max[.]?)[ ]*([0-9]+[.,]?[0-9]{0,2}|ja|[\wäöü]{2,40})[ ]*([<>-]|[\W]min[.]?|[\W]max[.]?)[ ]*([0-9]+[.,]?[0-9]{0,2}|ja|[\wäöü]{2,40})|(Fläche|Format|Preis|Lieferung|Firma|Termin)[ ]*[=:]?[ ]*(!=|[<=>:]|[\W]min[.]?|[\W]max[.]?)[ ]*([0-9]+[.,]?[0-9]{0,2}|ja|[\wäöü]{2,40})\b/i;
			
				// pattern from search.php, finding all prop=value constellations
				var Pattern2 = /\b([\wäöü]+)[ ]*[=:]?[ ]*(!=|[<=>:]|[\W]min[.]?|[\W]max[.]?)[ ]*([0-9]+[.,]?[0-9]{0,2}|ja|\w{2,40})[ ]*([<>-]|[\W]min[.]?|[\W]max[.]?)[ ]*([0-9]+[.,]?[0-9]{0,2}|ja|[\wäöü]{2,40})|([\wäöü]+)[ ]*[=:]?[ ]*(!=|[<=>:]|[\W]min[.]?|[\W]max[.]?)[ ]*([0-9]+[.,]?[0-9]{0,2}|ja|[\wäöü]{2,40})\b/i;
			
				
				// delete all spec prop-value strings
				QString = QString.replace(Pattern1, "");
			
			
				// Mode:
				// =====
				
				// 1. Mode == "addUnderscoreToValue" has highest priority
				//    check for remaining prop-value strings
				if(QString.search(Pattern2) != -1) { // 0077-11

					var Match = QString.match(Pattern2);
				
					// Match[0] - prop-value-string
					// Match[1] - prop-value-string
					// Match[7] - prop
					// Match[8] - operator
					// Match[9] - value
					// 2-6: undefined
				
					// match must not contain '_', but it should contain '='
					if(Match[0].indexOf("_") == -1 && 
					   Match[0].search(/=[ ]*[a-z]{2,40}/i) >0) {
					
						document.forms[0].elements['query'].value = document.forms[0].elements['query'].value.replace(Match[0], Match[0]+"_");
						Syntax[0] = 'Suchbegriff '+Match[0];
						Syntax[1] = 'Suchbegriff '+Match[0]+'_';
						Syntax[2] = 'Suchbegriff '+Match[0]+'_Wert2';
						Mode = "addUnderscoreToValue";
					}
				
				} // 0077-12
				
				// 2. Mode == "" has middle priority
				
				// 3. Mode == "tipp" has lowest priority
				// (becomes true if Mode != "addUnderscore", and !PriorityAddProps
				else if(!PriorityAddProps) { // 0077-21
				
					// show tipps for some nSearchCalls
					Mode = "tipp";
				}
				
			
		} // 0800-12, eof searchCalls > n
			  
	} // 0001-22 eof, category was identified
	
	
	// ====================================================
	// category setup
	// ====================================================
																		 
		
	// 2.2. setup for categories:
	//      define propName list for categories like poster, foto etc...
		
	// 2.2.1 setup for category poster/foto
	if(Poster != -1)  { // 0221-11

		   
			var PropNameArr_SingleWord = new Array();
		
			// common props
			if(Preis == -1)
			PropNameArr_SingleWord.push("Preis");
			if(Anzahl == -1)
			PropNameArr_SingleWord.push("Anzahl");
			if(Termin == -1)
			PropNameArr_SingleWord.push("Termin");
			if(Lieferung == -1)
			PropNameArr_SingleWord.push("Lieferung");
			if(Firma == -1)
			PropNameArr_SingleWord.push("Firma");
			// number of common props
			var nComm = PropNameArr_SingleWord.length;
			// special props		
			if(Format == -1)
			PropNameArr_SingleWord.push("Format");
			if(Papierstaerke == -1)
			PropNameArr_SingleWord.push("Papierstärke");
		
		
			var PropNameArr = PropNameArr_SingleWord;
		
			// ---
		
			var PropiTxtArr_SingleWord = new Array();
		
			// common props
			if(Preis == -1)
			PropiTxtArr_SingleWord.push("-> Preis|Angabe in Euro. Möglich sind z.B. Preis<100 Euro, Preis < 100 Eu, Preis=100 Euro (macht oft keinen Sinn, weil zu spezifisch), bzw. Preis>100 Euro.|Preis darf (nur dann) weggelassen werden, wenn Euro ausdrücklich genannt wird.");
		
		
			if(Anzahl == -1)
			PropiTxtArr_SingleWord.push("-> Anzahl|Wenn Sie keine Menge angeben, wird stillschweigend 1 angenommen.|Die gewünschte Menge können Sie ganz einfach als 5 Stück, 5 Stueck, bzw. 5 St., d.h. ohne `Anzahl=´ angeben.");
		
			if(Termin == -1)
			PropiTxtArr_SingleWord.push("-> Termin (der Fertigstellung bzw. Lieferung)|Sie können einen Termin vorgeben, zu dem Sie gesuchte Leistung erbracht oder auch geliefert haben wollen.|Sie können vielfältige Varianten für die Terminbezeichnung verwenden: Datum, Wochentag, heute, morgen ... jeweils mit oder ohne Uhrzeit.|Einige Beispiele: Termin=20.10.07 15.24, morgen 16:00, Freitag. Wird keine Uhrzeit genannt, sucht das System selbst eine Zeitangabe heraus: entweder den Feierabend des Dienstleisters, die späteste Lieferzeit des Packetdienstes oder auch die letzte Sekunde am angegebenen Tag.|Termin= kann weggelassen werden.");
		
			if(Lieferung == -1)
			PropiTxtArr_SingleWord.push("-> Lieferung|Die Angabe von `Lieferung´ in der Suchanfrage verknüpft die angebotenen Dienstleistungen mit einem Lieferservice (in der Regel dem preisgünstigsten, der zur Auswahl steht - das ist oft DHL.|Wird ein anderer, spezieller Lieferdienst gewünscht, so kann dessen Namensbezeichnung alternativ zu `Lieferung´ mit  in die Suche mit aufgenommen werden: z.B. DHL, Stadtbote, etc.");
		
			if(Firma == -1)
			PropiTxtArr_SingleWord.push("-> Firma|Die Angabe dieser Eigenschaft schränkt die Suche auf den Dienstleister ein, der die gesuchte Leistung erbringen soll.|Ausreichend ist ein spezifisches Wort aus dem Firmennamen, z.B. Firma=Redlich, auch wenn die Firma Scanservice Redlich GbR heisst.|Firma=Scanservice Redlich GbR würde nach Firmen suchen, die Scanservice im Namen haben, darüberhinaus aber AUCH (infolge der ODER-Verknüpfung von durch Leerzeichen getrennten Begriffen) nach sonstigen Leistungen auf die Redlich oder GbR passen.");
		
																																											
			// special props
			if(Format == -1)
			PropiTxtArr_SingleWord.push("-> Format|Eine Fläche, anzugeben als zwei miteinander durch `x´ verknüpfte Längenmaße vom Typ Breite x Höhe.|Möglich sind Milimeter (mm), Zentimeter (cm) oder Meter (m). Ohne Angabe einer Maßeinheit werden Milimeter angenommen.|Beispiele: Format=80x125cm, Format=800x1250, Format=0.8x1.25m, oder Format=0,8x1,25m.|Bei Din-Formaten können Sie z.B. statt Format=A0 auch einfach nur A0, ohne Format= eingeben.|Über eine Formateigenschaft verfügen in der Regel einzuscannende Dokumente (Größe der Vorlage) oder zu druckende Grafik- und Bilddateien (Druckausgabeformat).");
		
			if(Papierstaerke == -1)
			PropiTxtArr_SingleWord.push("-> Papierstärke (auch Grammatur)|Eigenschaft des Materials auf dem Grafik- oder Bilddateien gedruckt werden sollen.|Wird in Gramm pro Quadratmeter (g/m2) angegeben. Normales Kopierpapier hat ein Quadratmetergewicht von 80 g/m2, Architekturzeichnungen liegen im Bereich von 90-160, Poster und Plakate bei 170-250 und Fotopapiere in der Region von 190-300 g/m2.|Da die Maßeinheit klar ist, kann sie bei der Sucheingabe auch weggelassen werden, z.B. Papierstärke>170, oder Papierstärke >250.|Verwenden Sie `=Wert´ nur dann, wenn Sie ausdrücklich eine spezielle Papierstärke suchen, andernfalls ist `<Wert´ oder `>Wert´ sinnvoller.");
		
			var PropiTxtArr = PropiTxtArr_SingleWord;
		
	
			// ---
	
			// common tipps setup for category poster/foto
			if(PriorityAddProps) { // 0075-11
				
				// examples (may be added to query)
				var ExtSampleArr_SingleWord = new Array();
	
				if(Format == -1) {
				ExtSampleArr_SingleWord.push(new Array("Format=84.1x118.9cm", "Format=841x1189", "841x1189"));
				ExtSampleArr_SingleWord.push(new Array("Format=0.84 x 1.19 m", "Format=A0", "A0"));
				}
				if(Anzahl == -1)
				ExtSampleArr_SingleWord.push(new Array("5 Stück", "5 St", "5mal"));
				if(Papierstaerke == -1)
				ExtSampleArr_SingleWord.push(new Array("Papierstärke>170", "Papierstaerke>170", ""));
				if(Preis == -1)
				ExtSampleArr_SingleWord.push(new Array("Preis<100 Euro", "max 100 Euro", "max 100 Eu"));
				if(Firma == -1)
				ExtSampleArr_SingleWord.push(new Array("Firma=Breitfeld", "Breitfeld GbR", ""));
				if(Termin == -1)
				ExtSampleArr_SingleWord.push(new Array("Termin=25.10.07 15.00", "25.10.07 15:00", "morgen 12.00"));
				if(Lieferung == -1)
				ExtSampleArr_SingleWord.push(new Array("Lieferung bis übermorgen", "DHL nächster Montag", "Stadtbote heute 18.00"));
		
				ExtSampleArr = ExtSampleArr_SingleWord;
	
				// ---
	
				// examples intro text
				var Intro32Arr_SingleWord = new Array();

				if(Format == -1) {
				Intro32Arr_SingleWord.push("FORMAT: Kommas oder Punkte eignen sich beide als Dezimaltrennzeichen. Millimeter ist Standard. Bei Angabe von 'x' kann 'Format=' weggelassen werden.");
				Intro32Arr_SingleWord.push("Oder weitere FORMAT-Varianten: Bei DIN-Formaten kann 'Format=' weggelassen werden.");
				}
				if(Anzahl == -1)
				Intro32Arr_SingleWord.push("ANZAHL: Um eine Zahl als Menge zu erkennen reicht es, dem System eine Mengeneinheit anzugeben: Stück, Stueck, St., mal, etc ...");
				if(Papierstaerke == -1)
				Intro32Arr_SingleWord.push("PAPIERSTÄRKE: Alle Leistungseigenschaften können für die Einschränkung der Suche herangezogen werden.");
				if(Preis == -1)
				Intro32Arr_SingleWord.push("PREIS: Ausreichend sind die Währung - derzeit nur Euro - und der Vergleichsoperator.");
				if(Firma == -1)
				Intro32Arr_SingleWord.push("FIRMA: Entweder eine eindeutige Teil-Zeichenkette des Firmennamens (darf kein Leerzeichen enthalten) angeben, oder aber den Zusatz GbR, GmbH, AG o.ä.");
				if(Termin == -1)
				Intro32Arr_SingleWord.push("TERMIN: Sehr flexibel: Datum, Wochentag, heute, morgen, übermorgen + optional eine Uhrzeit.");
				if(Lieferung == -1)
				Intro32Arr_SingleWord.push("LIEFERUNG: 'Lieferung' sucht unter allen den günstigsten Lieferdienst heraus, 'Stadtbote' fokussiert allein den innerstädtischen Kurier.");
	
		
				Intro32Arr = Intro32Arr_SingleWord;
	

				// map property name (upper characters followed by :)
				var Help7 = Intro32Arr[0].match(/[A-ZÄÖÜ]+:/);
				var Rubrik = Help7[0].substring(0, Help7[0].length-1);
				
			} // 0075-12
			
			
			// ---
			
			
			// special tipps setup for category poster/foto
			else if(Mode == "tipp") { // 0075-21
							
				TippText.push("FORMAT: Länge x Breite oder Breite x Länge? Das ist egal. Das System dreht die Formatangabe so, dass sich der günstigste Preis ergibt. (Normalerweise ... !)");
				
				TippText.push("PAPIERSTÄRKE (auch Grammatur): Normales Kopierpapier hat ein Quadratmetergewicht von 80 g/m2, Architekturzeichnungen liegen im Bereich von 90-160, Poster und Plakate bei 170-250 und Fotopapiere in der Region von 190-300 g/m2.");
				
				TippText.push("GERÄTETYP: Highligt bei den Fotodruckern ist derzeit `HP designjet Z3100´, welcher nicht nur mit 12 Tinten (davon 4 Grautinten) druckt, sondern die gesamte Fläche noch mit einem dünnen transparenten Film überzieht. So, dass der Druck sehr nahe an eine klassische Fotobelichtung heranreicht [120707].");
			
			
			} // 0075-22

		
		} // 0221-12, end of category poster/foto setup

	
		// other categories are still empty
		else
		var PropNameArr = new Array();
		
		
		
		// ==============================================
		// end of category setup
		// ==============================================
		
				
		
		// 2.3. common setup independent from categories
		
		// change itext border color
		itextBorderColor = "rgb(255,180,51)";

		// deactivate assistent
		var TextAssistentClose = "-> Assistenten schließen|Ein Klick auf das Kreuzfeld bewirkt, dass der Assistent für die laufende Sitzung deaktiviert wird.|Eine erneute Aktivierung des Assistenten ist über das Anklicken des A-Symbols (neben der Hilfe am rechten Rand, steht dann auf dem Kopf) oder durch einen Neustart des Browsers möglich.";
		//	
		var mouseover1024 = "showiTxt('"+TextAssistentClose+"', '1024' , '"+TextAssistentClose.length+"', '"+innerTableWidth+"', 'none', '', '"+itextBgColor+"', '"+itextBorderColor+"');";
		var mouseout1024  = "showiTxt('','1024','','','none', '0', '"+itextBgColor+"', '"+itextBorderColor+"');";
		//
		if(ie && !opera) var PosX = "position:relative; top:20px;"; else PosX = "position:static; top:-5px; left:-5px;";
		var CloseStyle = 'height:10px; width:10px; '+PosX+' border-right:medium solid rgb(230,230,230); border-bottom:medium solid rgb(230,230,230); color:rgb(230,230,230); padding-left:2px; padding-right:2px;';
		
		var Tipp = "Tipp vom Assistenten:";
		
		// add category-independent tipp-text-values to TippText-Array()
		TippText.push("LEERZEICHEN = ODER! Geben Sie zum Beispiel `Poster Express´ als Suchanfrage ein, sucht das System nach Leistungen die ENTWEDER `Poster´ ODER `Express´ im Namen bzw. der Beschreibung enthalten. Es werden also alle Treffer für `Poster´ angezeigt, und dazu noch alle Treffer für `Express´.");
		TippText.push("UNTERSTRICH = UND! Wenn Sie zwei Begriffe mit UND schützen wollen, verbinden Sie sie mit einem Unterstrich. So sucht man mit `Poster_Express´ nur nach Leistungen, die beide Begriffe, d.h. `Poster´ UND `Express´ sowohl als auch enthalten.");
		TippText.push("APOSTROPHEN = ZEICHENKETTE! Eingegebene Begriffe aus 1-2 Zeichen werden bei der Suche normalerweise ignoriert. Abhilfe schafft da die Begrenzung einer Zeichenkette mit Apostrophen. Zum Beispiel findet ` Plot_'90 color' ´ nur Printdruckleistungen in deren Namen `Plot´ UND `90 color´ (als komplette Zeichenkette) hinterlegt sind.");
		TippText.push("EIGENSCHAFTENSWERTE mit UNTERSTRICH! Eigenschaftswerte müssen normalerweise vollständig (!) angegeben werden, damit sie gefunden werden. Will man jedoch nur nach einem TEIL des Eigenschaftswertes suchen, kann man mit einem Unterstrich als Platzhalter suchen. Z.B. `Poster Gerätetyp=HP_´.");
		TippText.push("HILFELEVEL: Eine Reihe von Eigenschaften wird per `Mouseover´ erklärt. Um diese Funktion zu aktivieren, klicken Sie auf `Hilfe´ rechts am Seitenrand solange bis `Artikelhilfe.aktiv´ erscheint."); 
		TippText.push("TERMIN: Wenn Sie einen Termin angeben, werden nur diejenigen Angebote aufgelistet, die bis zu diesem Zeitpunkt auch umsetzbar sind. Die dabei zugrunde gelegte Produktionszeit hängt natürlich von der Stückzahl und dem Arbeitszeitkalender des Dienstleisters ab!");
		
		if( Mode == "addUnderscoreToValue" ) {
			ModeText[1]  = "Sie verwenden für Ihre Suche die Syntax `"+Syntax[0]+"´.";
			ModeText[2]  = "WERTE müssen dabei zu 100% passen! Wenn nicht, erzielen Sie eventuell 0 Treffer. Einzige Ausnahme: Maßeinheiten können in Spezialfällen weggelassen werden.";
			ModeText[3]  = "EMPFEHLUNG: Nutzen Sie den Unterstrich als UND bzw. PLATZHALTER! Z.B. `"+Syntax[1]+"´ oder `"+Syntax[2]+"´. Jedes Wort (und sei es nur 1) in der Unterstrich-Gruppe wird so als ein Teil zur Suche in den Eigenschaftswerten verwendet.";
		}
		
		
		// row 2
		var IntroText22_A = "Sie können zu Ihrer Suche allgemeine Eigenschaften ";
		var IntroText22_B = "oder spezielle wie z.B. ";
		var IntroText22_C = " etc. hinzufügen. Die Syntax dafür lautet `Eigenschaft<=>Wert´.";
		
		// row 3
		if(Rubrik)
		var IntroText32 = "Erweitern Sie Ihre Suche mit einer Angabe zu "+Rubrik+", indem Sie eine der folgenden Varianten anklicken (und ggfls. danach editieren):";
		
		// row 4
		var StepBack = "Einen Schritt zurück";
		var mouseover42 = "javascript:showiTxt('"+StepBack+"', 'x42' , '"+StepBack.length+"', '"+innerTableWidth+"', 'none', '', '"+itextBgColor+"', '"+itextBorderColor+"');";
		var mouseout42  = "javascript:showiTxt('','x42','','','none', '0', '"+itextBgColor+"', '"+itextBorderColor+"');";
	
		// ---
	
	
		// 3. category independent setup

		// iText event strings for listed properties within intro section (Tr2): mouseover / mouseout
		var mouseover = new Array();
		var mouseout  = new Array();
		
		for(var k=0; k<PropNameArr.length; ++k) {
		
			mouseover[k] = "javascript:showiTxt('"+PropiTxtArr[k]+"','s"+k+"','"+PropiTxtArr[k].length+"', '"+innerTableWidth+"', 'none', '', '"+itextBgColor+"', '"+itextBorderColor+"');";
			mouseout[k] = "javascript:showiTxt('','s"+k+"','', '', 'none', '', '"+itextBgColor+"', '"+itextBorderColor+"');";
		}
	
	
	

		if(ie && !opera) { // 0008-11
		
			// do nothing
			// ...
		} // 0008-12
	
		else { // 0008-21
		
			// define Span-Objs of samme dimension
			var SpanArr = new Array(PropNameArr.length);
			var PropNode;
			var SpanOnMouseover;
			var SpanOnMouseout;
	
			for(k=0; k<PropNameArr.length; ++k) {
		
				SpanArr[k] = document.createElement("span");
				SpanArr[k].className = "standDottTxt";
				SpanArr[k].id = "iTarg_s" + k;
				SpanOnMouseover = document.createAttribute("onMouseover");
				SpanOnMouseover.nodeValue = mouseover[k];
				SpanArr[k].setAttributeNode(SpanOnMouseover);
				SpanOnMouseout = document.createAttribute("onMouseout");
				SpanOnMouseout.nodeValue = mouseout[k];
				SpanArr[k].setAttributeNode(SpanOnMouseout);
		
				PropNode = document.createTextNode(PropNameArr[k]);
				SpanArr[k].appendChild(PropNode);
			}
		} // 0008-22
		
	
		// ---

	
		// 4. build dynamic content
		if (ie && !opera) { // 0017-11
		
			var HrefCB = "javascript:clearAssiTable('"+innerTableWidth+"', '"+itextBgColor+"', '"+itextBorderColor+"')";
			
			var CloseButton = '<span style="'+CloseStyle+'"><span id="iTarg_1024" style="font-weight:normal;" onMouseover="'+mouseover1024+'" onMouseout="'+mouseout1024+'"><a href="'+HrefCB+'" style="text-decoration:none;"><span style="font-weight:bold;">x</span></a></span></span>';
			
						
			var Tr1 = '<tr><td width="6%"></td><td width="88%" style="padding-top:1.0em; padding-bottom:1.0em; color:#003399; font-weight:bold;">'+Tipp+'</td><td width="6%"></td></tr>';
			
						// put a message, if categories (available), were not hit
			if( Mode == "wrongDigiCategory" ||
			    Mode == "tipp" ||
				Mode == "addUnderscoreToValue") { // 0010-11
			
			
				if(Mode == "tipp") {
					
					// reset ModeText
					ModeText = new Array();
					
					// set random value for TippText
					var nr = Math.random() * (TippText.length-1);
					nr = Math.round(nr);
					
					if(TippText[nr])
					ModeText[3] = TippText[nr];
					else
					return true;
					
				}
				
				var Tr2a = "";
				var Tr2b = "";
				var Tr2c = "";
				
				if(ModeText[1])
				Tr2a = '<tr><td></td><td style="padding-bottom:0.5em;">'+ModeText[1]+'</td><td></td></tr>';
				if(ModeText[2])
				Tr2b = '<tr><td></td><td style="padding-bottom:0.5em;">'+ModeText[2]+'</td><td></td></tr>';
				if(ModeText[3])
				Tr2c = '<tr><td></td><td style="padding-bottom:1.0em;">'+ModeText[3]+'</td><td></td></tr>';
				
				if(Mode == "addUnderscoreToValue" && ModeText[3])
				Tr2c = '<tr><td></td><td style="padding:0.5em;  border:2px solid rgb(220,220,200); background-color:rgb(240,240,240);">'+ModeText[3]+'</td><td></td></tr><tr><td style="font-size:3pt;" colspan="3">&nbsp;</td></tr>';
				
				
				var Tr2 = Tr2a + Tr2b + Tr2c;
				
				var Tr3 ="";
				var Tr4 ="";
			}
			else {
				
				var Tr2 = "";
				

				Tr2 = Tr2 + '<tr><td></td><td style="padding-bottom:0.5em;">'+IntroText22_A;
				

				for(k=0; k<nComm; ++k) {
					
					Tr2 = Tr2 + '<span class="standDottTxt" id="iTarg_s'+k+'" onMouseover="'+mouseover[k]+'" onMouseout="'+mouseout[k]+'">'+PropNameArr[k]+'</span>';

				
					if(k<PropNameArr.length-1)
					Tr2 = Tr2 + ", ";
					else
					Tr2 = Tr2 + " ";

				}
				
				Tr2 = Tr2 + IntroText22_B;
		
				//
				for(k=nComm; k<PropNameArr.length; ++k) {
					
					Tr2 = Tr2 + '<span class="standDottTxt" id="iTarg_s'+k+'" onMouseover="'+mouseover[k]+'" onMouseout="'+mouseout[k]+'">'+PropNameArr[k]+'</span>';

					if(k<PropNameArr.length-1)
					Tr2 = Tr2 + ", ";
					else
					Tr2 = Tr2 + " ";
				}
				//
				Tr2 = Tr2 + IntroText22_C + '</td><td></td></tr>';
				
				// ---
				
				var Tr3 = "";
				
				Tr3 = Tr3 + '<tr><td></td><td id="td32" style="padding-bottom:0.5em;">'+IntroText32+'</td><td></td></tr>';
				
				// ---
				
				var Tr4 ="";
				
				var TContent = "";
				var TStyle = "";
				var TA = "";
				
				// 3 example columns 
				for(var j=0; j<ExtSampleArr[0].length; ++j) {
					
					if(j==0)
					TStyle = "width:35%; text-align:left; padding-top:0.3em; padding-bottom:0.8em;";
					else if (j==ExtSampleArr[0].length-1)
					TStyle = "width:25%; text-align:right; padding-top:0.3em; padding-bottom:0.8em;";
					else
					TStyle = "width:30%; text-align:center; padding-top:0.3em; padding-bottom:0.8em;";
					
					TA = '<a class="red_hoverLink" id="ext42_'+j+'" href="javascript:addSearchExtToQuery('+j+')">'+ExtSampleArr[0][j]+'</a>';
					
					TContent = TContent + '<td style="'+TStyle+'">'+TA+'</td>';
				
				
				}
				// 1 additional go-one-step-back column
				
				var SpanBack = '<span class="standDottTxt" id="iTarg_x42" onMouseover="'+mouseover42+'" onMouseout="'+mouseout42+'"><<</span>';
				
				TA = '<a class="quiet_hoverLink" id="ext42_'+j+'" href="javascript:goOneStepBack('+j+')">'+SpanBack+'</a>';
				
				TContent = TContent + '<td style="width:10%; text-align:right; padding-left:2.5em; padding-top:0.3em; padding-bottom:0.8em;">'+TA+'</td>';
								
				var TabRow4 = '<table width="100%" cellpadding="0" cellspacing="0"><tr>'+TContent+'</tr></table';
				
				Tr4 = Tr4 + '<tr><td></td><td style="padding-bottom:0.5em;">'+TabRow4+'</td><td></td></tr>';


			}
			
			var Table = '<table class="search" id="assiTable" width="'+innerTableWidth+'" cellpadding="0" cellspacing="0">'+ CloseButton + Tr1 + Tr2 + Tr3 + Tr4 +'</table>';
			
			
			
			if(!document.getElementById("assiTable")) {

				document.all['searchFormTable'].insertAdjacentHTML('BeforeBegin', Table);
				return false;
			}
			
			// firstVisit
			else if(document.getElementById("assiTable") && document.getElementById("closeA")) {
											
				
				// remove assistent-message box
				document.getElementById("assiTable").parentNode.removeChild(document.getElementById("assiTable"));
				document.all['searchFormTable'].insertAdjacentHTML('BeforeBegin', Table);
				return false;
			
			}
			
			
			else 
				return true;



			
			
			
		} // 0017-12
		
		// firefox etc.
		else { // 0017-21
		
			// construct table
			var SearchTable = document.getElementById("searchFormTable");
		
			var AssiTable = document.createElement("table");
			AssiTable.id = "assiTable";
			AssiTable.width = SearchTable.width;
			AssiTable.className = SearchTable.className;
			AssiTable.cellSpacing = SearchTable.cellSpacing;
			AssiTable.cellPadding = SearchTable.cellPadding;
		
		
			// close Assistent
			var SpanClose = document.createElement("span");
			var SpanCloseStyle = document.createAttribute("style");
			SpanCloseStyle.nodeValue = CloseStyle;
			SpanClose.setAttributeNode(SpanCloseStyle);
			AssiTable.appendChild(SpanClose);
		
			var Span1024 = document.createElement("span");
			Span1024.id = "iTarg_1024";
			var Span1024Style = document.createAttribute("style");
			Span1024Style.nodeValue = "font-weight:normal;";
			Span1024.setAttributeNode(Span1024Style);
			var Span1024OnMouseover = document.createAttribute("onMouseover");
			Span1024OnMouseover.nodeValue = mouseover1024;
			Span1024.setAttributeNode(Span1024OnMouseover);
			var Span1024OnMouseout = document.createAttribute("onMouseout");
			Span1024OnMouseout.nodeValue = mouseout1024; 
			Span1024.setAttributeNode(Span1024OnMouseout);
			SpanClose.appendChild(Span1024);
		
			var CloseA = document.createElement("a");
			CloseA.href= "javascript:clearAssiTable('"+innerTableWidth+"', '"+itextBgColor+"', '"+itextBorderColor+"')";
			var CloseAStyle = document.createAttribute("style");
			CloseAStyle.nodeValue = "text-decoration:none;";
			CloseA.setAttributeNode(CloseAStyle);
			Span1024.appendChild(CloseA);
		
			var SpanInn = document.createElement("span");
			var SpanInnStyle = document.createAttribute("style");
			SpanInnStyle.nodeValue = "font-weight:bold;";
			SpanInn.setAttributeNode(SpanInnStyle);
			CloseA.appendChild(SpanInn);
		
			var Xxt = document.createTextNode("x");
			SpanInn.appendChild(Xxt);
		
				
			// ---
		
			// row 1
			var AssiTableTr1 = document.createElement("tr");
			AssiTable.appendChild(AssiTableTr1);
		
		
			var AssiTableTd11 = document.createElement("td");
			AssiTableTd11.width = "6%";
			AssiTableTr1.appendChild(AssiTableTd11);
		
			var AssiTableTd12 = document.createElement("td");
			AssiTableTd12.width = "88%";
			var AssiTableTd12Style = document.createAttribute("style");
			AssiTableTd12Style.nodeValue = "padding-bottom:1.0em; color:#003399; font-weight:bold;";
			AssiTableTd12.setAttributeNode(AssiTableTd12Style);	
			AssiTableTr1.appendChild(AssiTableTd12);
		
			var AssiTableTd13 = document.createElement("td");
			AssiTableTd13.width = "6%";
			AssiTableTr1.appendChild(AssiTableTd13);
		
			var IntroText12 = document.createTextNode(Tipp);
			AssiTableTd12.appendChild(IntroText12);
		
			// ---
		
			// row 2
			var AssiTableTr2 = document.createElement("tr");
			AssiTable.appendChild(AssiTableTr2);
		
			var AssiTableTd21 = document.createElement("td");
			AssiTableTr2.appendChild(AssiTableTd21);
		
			var AssiTableTd22 = document.createElement("td");
			AssiTableTr2.appendChild(AssiTableTd22);
		
			var AssiTableTd23 = document.createElement("td");
			AssiTableTr2.appendChild(AssiTableTd23);
		
		
			// put a message, if categories (available), were not hit
			if( Mode == "wrongDigiCategory" ||
			    Mode == "tipp" ||
				Mode == "addUnderscoreToValue") { // 0010-11
			
				if(Mode == "tipp") {
					
					// reset ModeText
					ModeText = new Array();
					
					// set random value for TippText
					var nr = Math.random() * (TippText.length-1);
					nr = Math.round(nr);
					
					if(TippText[nr])
					ModeText[1] = TippText[nr];
					else
					return true;
					
				}
				
				var AssiTableTd22Style = document.createAttribute("style");
				AssiTableTd22Style.nodeValue = "padding:0.5em;";
				AssiTableTd22.setAttributeNode(AssiTableTd22Style);	
			
				if(ModeText[1]) {
				
					var Div22_1 = document.createElement("div");
					Div22_1_Style = document.createAttribute("style");
					Div22_1_Style.nodeValue = "padding-bottom:0.8em;";
					Div22_1.setAttributeNode(Div22_1_Style);	
					AssiTableTd22.appendChild(Div22_1);
				
					Div22_1.appendChild(document.createTextNode(ModeText[1]));
				}
			
				if(ModeText[2]) {
					
					var Div22_2 = document.createElement("div");
					Div22_2_Style = document.createAttribute("style");
					Div22_2_Style.nodeValue = "padding-bottom:0.8em;";
					Div22_2.setAttributeNode(Div22_2_Style);	
					AssiTableTd22.appendChild(Div22_2);
			
					Div22_2.appendChild(document.createTextNode(ModeText[2]));
				}
				
				if(ModeText[3]) {
					
					var Div22_3 = document.createElement("div");
					Div22_3_Style = document.createAttribute("style");
					Div22_3_Style.nodeValue = "padding-bottom:0.2em;";
					if(Mode == "addUnderscoreToValue")
					Div22_3_Style.nodeValue = "padding:0.5em;  border:2px solid rgb(220,220,200); background-color:rgb(240,240,240);";
					Div22_3.setAttributeNode(Div22_3_Style);	
					AssiTableTd22.appendChild(Div22_3);
			
					Div22_3.appendChild(document.createTextNode(ModeText[3]));
				}
				
			
				
			
			} // 0010-12
		
			// manage properties
			else 
		
			{ // 0010-21
			
		
				var AssiTableTd22Style = document.createAttribute("style");
				AssiTableTd22Style.nodeValue = "padding:0.5em; border:2px solid rgb(220,220,200); background-color:rgb(240,240,240);";
				AssiTableTd22.setAttributeNode(AssiTableTd22Style);	
		
				AssiTableTd22.appendChild(document.createTextNode(IntroText22_A));
				//
				for(k=0; k<nComm; ++k) {
					AssiTableTd22.appendChild(SpanArr[k]);
					if(k<PropNameArr.length-1)
					AssiTableTd22.appendChild(document.createTextNode(", "));
					else
					AssiTableTd22.appendChild(document.createTextNode(" "));
				}
		
				AssiTableTd22.appendChild(document.createTextNode(IntroText22_B));
				//
				for(k=nComm; k<PropNameArr.length; ++k) {
					AssiTableTd22.appendChild(SpanArr[k]);
					if(k<PropNameArr.length-1)
					AssiTableTd22.appendChild(document.createTextNode(", "));
					else
					AssiTableTd22.appendChild(document.createTextNode(" "));
				}
				//
				AssiTableTd22.appendChild(document.createTextNode(IntroText22_C));
		
			} // 0010-22
		
		
		
			// ---
	
		
			if( Mode != "wrongDigiCategory" &&
			    Mode != "tipp" &&
				Mode != "addUnderscoreToValue") {
		
				// row 3
				var AssiTableTr3 = document.createElement("tr");
				AssiTable.appendChild(AssiTableTr3);
		
				var AssiTableTd31 = document.createElement("td");
				AssiTableTr3.appendChild(AssiTableTd31);
		
				var AssiTableTd32 = document.createElement("td");
				AssiTableTd32.id = "td32";
				var AssiTableTd32Style = document.createAttribute("style");
				AssiTableTd32Style.nodeValue = "padding-top:0.8em; padding-bottom:0.3em;";
				AssiTableTd32.setAttributeNode(AssiTableTd32Style);	
				AssiTableTr3.appendChild(AssiTableTd32);
		
				var AssiTableTd33 = document.createElement("td");
				AssiTableTr3.appendChild(AssiTableTd33);
		

				AssiTableTd32.appendChild(document.createTextNode(IntroText32));
		

				// ---
		
				// row 4	
				var AssiTableTr4 = document.createElement("tr");
				AssiTable.appendChild(AssiTableTr4);
		
				var AssiTableTd41 = document.createElement("td");
				AssiTableTr4.appendChild(AssiTableTd41);
		
				var AssiTableTd42 = document.createElement("td");
				AssiTableTr4.appendChild(AssiTableTd42);
		
					var Tab42 = document.createElement("table");
					Tab42.width = "100%";
					Tab42.cellSpacing = "0";
					Tab42.cellPadding = "0";
					AssiTableTd42.appendChild(Tab42);
			
					var Tab42_Tr1 = document.createElement("tr");
					Tab42.appendChild(Tab42_Tr1);
			
					for(var j=0; j<ExtSampleArr[0].length; ++j) {
		
				
						var Tab42_Tr1_Td = document.createElement("td");
						var Tab42_Tr1_Td_Style = document.createAttribute("style");
						//
						if(j==0)
						Tab42_Tr1_Td_Style.nodeValue = "width:35%; text-align:left; padding-top:0.3em; padding-bottom:0.8em;";
						else if (j==ExtSampleArr[0].length-1)
						Tab42_Tr1_Td_Style.nodeValue = "width:25%; text-align:right; padding-top:0.3em; padding-bottom:0.8em;";
						else
						Tab42_Tr1_Td_Style.nodeValue = "width:30%; text-align:center; padding-top:0.3em; padding-bottom:0.8em;";
						//
						Tab42_Tr1_Td.setAttributeNode(Tab42_Tr1_Td_Style);	
						Tab42_Tr1.appendChild(Tab42_Tr1_Td);
						//
				
						var Tab42_Tr1_Td_A = document.createElement("a");
						Tab42_Tr1_Td_A.className = "red_hoverLink";
						Tab42_Tr1_Td_A.href = "javascript:addSearchExtToQuery('"+j+"')";
						Tab42_Tr1_Td_A.id = "ext42_"+j;
						Tab42_Tr1_Td.appendChild(Tab42_Tr1_Td_A);
				
						//
						var ExtText42 = document.createTextNode(ExtSampleArr[0][j]);
						Tab42_Tr1_Td_A.appendChild(ExtText42);
					}
			
					var Tab42_Tr1_Td2 = document.createElement("td");
					Tab42_Tr1_Td2.id = "td2_42";
					var Tab42_Tr1_Td2_Style = document.createAttribute("style");
					Tab42_Tr1_Td2_Style.nodeValue = "width:10%; text-align:right; padding-left:2.5em; padding-top:0.3em; padding-bottom:0.8em;";
					Tab42_Tr1_Td2.setAttributeNode(Tab42_Tr1_Td2_Style);	
					Tab42_Tr1.appendChild(Tab42_Tr1_Td2);
			
					var Tab42_Tr1_Td2_A = document.createElement("a");
					Tab42_Tr1_Td2_A.className = "quiet_hoverLink";
					Tab42_Tr1_Td2_A.href = "javascript:goOneStepBack('"+j+"')";
					Tab42_Tr1_Td2.appendChild(Tab42_Tr1_Td2_A);
			
								
				
					Span42 = document.createElement("span");
					Span42.className = "standDottTxt";
					Span42.id = "iTarg_x42";
					SpanOnMouseover = document.createAttribute("onMouseover");
					SpanOnMouseover.nodeValue = mouseover42;
					Span42.setAttributeNode(SpanOnMouseover);
					SpanOnMouseout = document.createAttribute("onMouseout");
					SpanOnMouseout.nodeValue = mouseout42;
					Span42.setAttributeNode(SpanOnMouseout);
		
					var back42 = document.createTextNode("<<");
					Span42.appendChild(back42);
			
					Tab42_Tr1_Td2_A.appendChild(Span42);
		
			
				//
			
		
				var AssiTableTd43 = document.createElement("td");
				AssiTableTr4.appendChild(AssiTableTd43);
		
		

			} // end of !WrongCategory-loop
		
		
			// ---
	

			if(!document.getElementById("assiTable")) {

				SearchTable.parentNode.insertBefore(AssiTable, SearchTable);
				return false;
			}
			// firstVisit
			else if(document.getElementById("closeA")) {
											
				// remove assistent-message box
				document.getElementById("assiTable").parentNode.removeChild(document.getElementById("assiTable"));
				
				SearchTable.parentNode.insertBefore(AssiTable, SearchTable);
				return false;
				
			}
			
			else
				return true;
				
		
		} // 0017-12, end of firefox-loop
	
	
	} // 0018-12, end of nWords>=1 Loop
	
	else
	return true;
	
	}
	else
	return true;
	
} // end of function AdaptSearchInput()



function addSearchExtToQuery(jSel) {
	
		for(var h=0; h<ExtSampleArr.length; ++h) {
			
			if(h==extN) 
			document.forms[0].elements['query'].value = Query + ' ' + ExtSampleArr[extN][jSel];
			
		}
		
		if(extN<ExtSampleArr.length-1)
		extN++;
		else
		extN = 0;
		
		for(var j=0; j<ExtSampleArr[0].length; ++j) {
			
			var Textknoten = document.createTextNode(ExtSampleArr[extN][j]);
			document.getElementById("ext42_"+j).replaceChild(Textknoten, document.getElementById("ext42_"+j).firstChild);
		}
		
		var Intro32 = document.createTextNode(Intro32Arr[extN]);
		document.getElementById("td32").replaceChild(Intro32, document.getElementById("td32").firstChild);
		
	
}

function goOneStepBack(jSel) {
	
		
		if(extN>0)
		extN = extN -1;
		else
		extN = ExtSampleArr.length-1;
		
		for(var j=0; j<ExtSampleArr[0].length; ++j) {
			
			var Textknoten = document.createTextNode(ExtSampleArr[extN][j]);
			document.getElementById("ext42_"+j).replaceChild(Textknoten, document.getElementById("ext42_"+j).firstChild);
		}
		
		var Intro32 = document.createTextNode(Intro32Arr[extN]);
		document.getElementById("td32").replaceChild(Intro32, document.getElementById("td32").firstChild);
		
	
}

function clearAssiTable(innerTableWidth, itextBgColor, itextBorderColor) {
	
	
		
		
		if(document.getElementById("assiTable")) {
			
			// remove assistent-message box
			var Knoten = document.getElementById("assiTable");
			document.getElementById("assiTable").parentNode.removeChild(Knoten);
		
		}

	AssiOn = 1;
	// set parameter for js-function called onsubmit
	document.getElementById("searchForm").getAttributeNode("onsubmit").nodeValue = "return AdaptSearchInput("+AssiOn+");";
	
	// see helpLev.js ... php transmission does not work!
	changeAssistentStatus(AssiOn, innerTableWidth, itextBgColor, itextBorderColor);

}


 // use the same values in search_form_index1() at html_slices.inc
 var OneRowHeight_Em = 1.1;
 var MRLChars = 48;


function setSearchWindowHeight(event, targetForm, MaxRowLength_Chars) {
	
	var NRows = 1;
	var CountCharsForRow = 0;
	
	
	if(!targetForm)
	targetForm = "searchForm";
	
	if(!MaxRowLength_Chars)
	MaxRowLength_Chars = MRLChars;
	
	var Exq = document.getElementById(targetForm).elements['query'].value.split(" ");

	for(var h=0; h<Exq.length; h++) { // 0063-11
  	
		if(Exq[h].length>0) {
		
			if(CountCharsForRow + Exq[h].length + 1 <= MaxRowLength_Chars) {
			CountCharsForRow = CountCharsForRow + Exq[h].length + 1;
			}
			else {
			NRows++;
			CountCharsForRow = Exq[h].length + 1;
			}
				
		}
		
 	} // 0063-12
  
	var Height = NRows * OneRowHeight_Em;
	
	// set space for padding for first row
	if(Height <= 1.1)
    Height = Height + 0.9;
	// ... starting from 2nd row
	else if (Height <= 2)
	Height = Height + 1.2;
	
	else
	Height = Height + 1.8;
	
	Height = Height + "em";
	
	document.getElementById(targetForm).elements['query'].style.height = Height;
	
	if(event && (event.keyCode == 13 || event.which == 13)) {
	document.forms[targetForm].submit();
	return false;
	}

 
}


// target: addresses all check boxes but not first one (allButNot1), or a single one (1) -> 'aufräumen'
// now:    check box, which should be clicked 'now' (either as chosen checked check box manually, or by switchOff_ .. -function itself) 
function switchOff_checkedRadio(target, now) {

		
//alert('target=' + target + ', now=' + now);
		
	if(document.getElementById("X1").value == '0') { // 0006-11
									   
									   
		if(target == 'allButNot1' &&
		   document.getElementById("X1").checked) {
//alert('first');			
			
			for(k=2; k<11; ++k) {
			
				if(document.getElementById("X"+k).checked)
				document.getElementById("X"+k).click();
			}
			
			
		}
		
		else if(target && 
			    target != 'allButNot1') {
//alert('second');		
			
			if(document.getElementById("X"+target).checked && 
			   document.getElementById("X"+now).checked)
			document.getElementById("X"+target).click();
			
			//if activated, this loop does not allow multiple checkings
			/*
			for(k=2; k<11; ++k) {
			
				if(document.getElementById("X"+k).checked &&  k != now)
				document.getElementById("X"+k).checked = "";
			}
			*/
		}
		
	} // 0006-12
		
		
	 
} // end of function


