	// define buildUp Methods for StandAloneElements
	function createLine(){
		// setup Line Object and childNodes
		myLine = new clsObject("Line");
			myLine.addObject(new clsObject("Product"));
			myLine.addObject(new clsObject("Discount"));
			myLine.addObject(new clsObject("Weight"));
			myLine.addObject(new clsObject("QuantityOrdered"));
			myLine.addObject(new clsObject("Tax"));
			myLine.addObject(new clsObject("Price"));
			myLine.addObject(new clsObject("Variants"));
			myLine.addObject(new clsObject("Internal"));
		// setup Price childNodes
		myPrice = myLine.getFirstItem("Price");
			myPrice.addObject(new clsObject("Net"));
			myPrice.addObject(new clsObject("Gross"));
		// setup Net childNodes
		myNet = myPrice.getFirstItem("Net");
			myNet.addObject(new clsObject("SingleUnit"));
			myNet.addObject(new clsObject("LineTotal"));
		// setup Gross childNodes
		myGross = myPrice.getFirstItem("Gross");
			myGross.addObject(new clsObject("SingleUnit"));
			myGross.addObject(new clsObject("LineTotal"));
		// return Line-Object to Caller
		return myLine;
		};
// 
	function addToBag(anElement,Amount){
		with(this){
			var taxamount = taxarea[parseInt(XML.getFirstItem("Config").taxarea)][parseInt(anElement.Tax) + 1];
			var update = -1;
			myLines = XML.getFirstItem("Order").getFirstItem("OrderBody").getFirstItem("OrderLines").childNodes
			for(var i=0;i<myLines.length;i++){
				if(myLines[i].getFirstItem("Product").code==anElement.Prod_nr){
					update = i;
					break;
					};
				};
			// product already in shoppingcard
			if(update>-1){
				// detect position of prod_nr in shoppingcart
				myLines[i].getFirstItem("QuantityOrdered").amount = Amount;
				if(boolPriceTaxIncl){
					myLines[i].getFirstItem("Price").getFirstItem("Net").getFirstItem("LineTotal").putValue(anElement.Price * Amount * ( 1 - taxamount/( 100 + taxamount )));
					myLines[i].getFirstItem("Price").getFirstItem("Gross").getFirstItem("LineTotal").putValue(anElement.Price * Amount);
					}
				else{
					myLines[i].getFirstItem("Price").getFirstItem("Net").getFirstItem("LineTotal").putValue(anElement.Price * Amount);
					myLines[i].getFirstItem("Price").getFirstItem("Gross").getFirstItem("LineTotal").putValue(anElement.Price * Amount * ( 1 + taxamount/100 ));
					};
				}
			// add product to shoppingcart
			else{
				myLine = createLine();
				myProduct = myLine.getFirstItem("Product");
					myProduct.code = anElement.Prod_nr;
					myProduct.desc1 = anElement.Title;
					myProduct.desc2 = anElement.Subtitle;
				myQuantityOrdered = myLine.getFirstItem("QuantityOrdered");
					myQuantityOrdered.amount = Amount;
					myQuantityOrdered.unit = anElement.Unitdesc;
				myInternal = myLine.getFirstItem("Internal")
					myInternal.price = anElement.Price;
					myInternal.address = anElement.LnkAdress;
					myInternal.navIndex = anElement.NavIndex;
					myInternal.discount = anElement.Discount;
					myInternal.minOrder = anElement.Minorder;
					myInternal.variants = anElement.Variants;
				myWeight = myLine.getFirstItem("Weight");
					myWeight.unit = objWeight.charSymbol;
					myWeight.amount = parseFloat(anElement.Weight) * parseInt(Amount);
				myTax = myLine.getFirstItem("Tax");
					myTax.taxclass = anElement.Tax;
					myTax.rate = taxamount;
				myPrice = myLine.getFirstItem("Price");
					myPrice.unit = anElement.PriceUnit;
				myNet = myPrice.getFirstItem("Net");
				myGross = myPrice.getFirstItem("Gross");
					
				
				if(boolPriceTaxIncl){
					myNet.getFirstItem("SingleUnit").putValue(parseFloat(anElement.Price) * ( 1 - taxamount/( 100 + taxamount ) ));
					myNet.getFirstItem("LineTotal").putValue(parseFloat(anElement.Price) * parseInt(Amount) * ( 1 - taxamount/( 100 + taxamount ) ));
					myGross.getFirstItem("LineTotal").putValue(parseFloat(anElement.Price));
					myGross.getFirstItem("LineTotal").putValue(parseFloat(anElement.Price) * parseInt(Amount));
					}
				else{
					myNet.getFirstItem("SingleUnit").putValue(parseFloat(anElement.Price));
					myNet.getFirstItem("LineTotal").putValue(parseFloat(anElement.Price) * parseInt(Amount));
					myGross.getFirstItem("LineTotal").putValue(parseFloat(anElement.Price) * ( 1 + taxamount/100 ));
					myGross.getFirstItem("LineTotal").putValue(parseFloat(anElement.Price) * Amount * ( 1 + taxamount/100 ));
					};
				myLines[myLines.length] = myLine;
				};
			safeData();
			location.href="orderform.htm";
			};
		};
// ** 1105
	function TElementPrint(){
		var boolDisplArtId = "true";
		var addToBag = '<img src="../assets/images/btnaddtobag.gif" width="115" height="48" alt="BtnAddToBag.gif" border="0" align="bottom" hspace="0" vspace="0" class="MAIN">';
		var rString = '<TR '
			+ ''
			+ ''
			+ ''
			+ ''
			+ '>'
			+ '<TD align="right" class="PROVIEWBODY" >';
		if(this.Image!=""){
			rString += "<a href=\"javascript:callpage('" + this.LnkAdress + "','" + this.Variants + "'," + this.NavIndex + ")\">"
			rString += "<img src='" + this.Image + "' border=0"
			if(this.Width!=0) rString += " width=" + this.Width;
			if(this.Height!=0) rString += " height=" + this.Height;
			rString += ">"
			rString += "</a>"
			};
		rString += '</TD><TD width="100%" class="PROVIEWBODY" ><TABLE border="0" cellpadding="1" cellspacing="0" width="100%">';
		if(boolDisplArtId) rString += '<TR><TD class="PROVIEWARTID">' + this.Prod_nr + "</TD></TR>";
		rString += "<TR><TD class=\"PROVIEWBEZ1\"><a href=\"javascript:callpage('" + this.LnkAdress + "','" + this.Variants + "'," + this.NavIndex + ")\">" + this.Title + "</a></TD></TR>"
			+ "<TR><TD class=\"PROVIEWBEZ2\">" + this.Subtitle + "</TD></TR>"
			+ "<TR><TD class=\"proviewprice\"><strong>" + TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objPriCurrency);
		if(boolDisplSecCurr) rString += charSecCurrDelimiter + TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objSecCurrency);
		rString += "</strong></TD></TR>"
			+ "<TR><TD>&nbsp;</TD></TR>"
			+ "<TR><TD><input type=text size=2 name='Amount_" + this.Index + "' value='" + this.Minorder + "'>&nbsp;<a href=\"JavaScript:addToBag(Entry[" + this.Index + "],document.ProductIndex.Amount_" + this.Index + ".value);\">" + addToBag + "</a></TD></TR>"
			+ "</TABLE>"
			+ "</td></tr>";
		return(rString);
		};
// ** 1106
	function Element(Index,Image,Width,Height,Prod_nr,Title,Subtitle,Manufac,Price,Weight,Tax,PriceUnit,Unitdesc,NavIndex,Options,LnkAdress,Discount,Minorder){
		this.Index = Index;
		this.Image = Image;this.Width = Width;
		this.Height = Height;this.Prod_nr = Prod_nr;
		this.Title = Title;this.Subtitle = Subtitle;
		this.Manufac = Manufac;this.Price = Price;
		this.Weight = Weight;this.Tax = Tax;
		this.PriceUnit = PriceUnit;this.Unitdesc = Unitdesc;
		this.NavIndex = NavIndex;
		this.Print = TElementPrint;this.Variants = Options;
		this.LnkAdress = LnkAdress;this.Discount = Discount;
		this.Minorder = Minorder;
		};
// ** 1107
	var Entry = new Array();
// ** 1108
	
		Entry[0] = new Element(
		0,
		"../assets/thumb/1visby.jpg",
		81,
		110,
		"64 9395",
		"Kaminofen &#0034; Visby &#0034;",
		"Kaminofen &#0034; Visby &#0034;   gussgrau / Keramik-lavendel",
		"",
		"5199",
		"0",
		"1",
		1,
		"Stück",
		1,
		'search0=gussgrau/Keramik lavendel&{EOL}',
		"pd1411737339.htm",
		"1::3::3;",
		1)
	
		Entry[1] = new Element(
		1,
		"../assets/thumb/Wod Gala S11.jpg",
		77,
		150,
		" 63 3110",
		" Modulverkleidung &#0034; Gala &#0034;",
		"&#0034;Gala in versch.Ausführungen",
		"",
		"5499",
		"160",
		"1",
		1,
		"Stück",
		3,
		'search0=Gala Nr. 271140 Rosso Asiago/Edelstahl&{EOL}',
		"pd-1300201961.htm",
		"1::2::3;",
		1)
	
		Entry[2] = new Element(
		2,
		"../assets/thumb/Olsb Viborg Thomb.jpg",
		91,
		110,
		"64 9388",
		"Kaminofen &#0034; Viborg &#0034;",
		"Viborg in verschiedenen Ausführungen",
		"",
		"3899",
		"175",
		"1",
		1,
		"Stück",
		1,
		'search0=schwarz/Naturstein(Speckst.)  &{EOL}',
		"pd998935913.htm",
		"1::2::2;",
		1)
	
		Entry[3] = new Element(
		3,
		"../assets/thumb/Olsb No1 Prod.jpg",
		76,
		110,
		"64 95 60",
		"Genesis No. 1  Stahl/Guß schwarz empf.VK 4350,-- (inkl. Anschl für externe Luftzufuhr)",
		"Für Raumluftunabhängigen Betrieb geeignet (z.B. in Niedrigenergie-o. Passivhäusern oder bei Einbau einer Ablufthaube in Küche)",
		"",
		"3999.95",
		"160",
		"1",
		1,
		"Stück",
		0,
		"",
		"pd999247822.htm",
		"",
		1)
	
		Entry[4] = new Element(
		4,
		"../assets/thumb/Olsb No2 Prod.jpg",
		71,
		110,
		"64 95 63",
		"Genesis No. 2  (inkl. Anschl für externe Luftzufuhr)",
		" Genesis No. 2  in schwarz/Keramik- kastanie(empf.VP4350,--)",
		"",
		"4899.98",
		"190",
		"1",
		1,
		"Stück",
		0,
		'search0=schwarz/kastanie&{EOL}',
		"pd999342843.htm",
		"",
		1)
	
		Entry[5] = new Element(
		5,
		"../assets/thumb/Olsb No3 Spe Prod.jpg",
		62,
		110,
		"64 95 70",
		"Genesis No. 3 gussgrau/Speckstein empf.VK 6359,--DM  (inkl. Anschl für externe Luftzufuhr)",
		"Für Raumluftunabhängigen Betrieb geeignet (z.B. in Niedrigenergie-o. Passivhäusern oder bei Einbau einer Ablufthaube in Küche)",
		"",
		"5959.95",
		"220",
		"1",
		1,
		"Stück",
		0,
		"",
		"pd999351872.htm",
		"",
		1)
	
		Entry[6] = new Element(
		6,
		"../assets/thumb/Olsb No4 schw Prod.jpg",
		55,
		110,
		"64 95 73",
		"Genesis No. 4  Stahl/Guß schwarz (empf.VP 4730,-DM)(inkl. Anschl für externe Luftzuhr)",
		"Für Raumluftunabhängigen Betrieb geeignet (z.B. in Niedrigenergie-o. Passivhäusern oder bei Einbau einer Ablufthaube in Küche)",
		"",
		"4399.95",
		"180",
		"1",
		1,
		"Stück",
		0,
		"",
		"pd999453304.htm",
		"",
		1)
	
		Entry[7] = new Element(
		7,
		"../assets/thumb/Olsb No5 edel Prod.jpg",
		67,
		110,
		"64 95 76",
		"Genesis No. 5  Stahl/Guß schwarz + Edelstahl (empf.VP 4730,-DM)(inkl. Anschl für externe Luftzuhr)",
		"Für Raumluftunabhängigen Betrieb geeignet (z.B. in Niedrigenergie-o. Passivhäusern oder bei Einbau einer Ablufthaube in Küche)",
		"",
		"4979.98",
		"170",
		"1",
		1,
		"Stück",
		0,
		"",
		"pd999456253.htm",
		"",
		1)
	
		Entry[8] = new Element(
		8,
		"../assets/thumb/Olsb No6 krei thomb.jpg",
		67,
		110,
		"64 95 83",
		"Genesis No. 6   in verschiedenen Ausführungen (inkl. Anschl für externe Luftzufuhr)",
		"Genesis No. 6  in gussgrau/kreide (empf.VP 5350,-DM) ",
		"",
		"4999.98",
		"185",
		"1",
		1,
		"Stück",
		0,
		'search0=gussgrau/kreide&{EOL}',
		"pd1680962426.htm",
		"",
		1)
	
// ** 1109
	function SetupSearchEngineForm(){
		myConfig = XML.getFirstItem("Config");
		mySearchEngine = myConfig.getFirstItem("SearchEngine");
		if(mySearchEngine.term!="null") document.SearchEngine.Term.value = mySearchEngine.term;
		for(var i=0;i<document.SearchEngine.Mode.length;i++){
			if(i==mySearchEngine.mode) document.SearchEngine.Mode[i].selected = true;
			};
		if(mySearchEngine.maxPrice>0) document.SearchEngine.Maxprice.value = mySearchEngine.maxPrice;
		else{
			document.SearchEngine.Maxprice.value="";
			mySearchEngine.maxPrice = -1;
			};
		};
// ** 1111
	function SearchFor(Term,Mode){
		myConfig = XML.getFirstItem("Config");
		mySearchEngine = myConfig.getFirstItem("SearchEngine");
		if(Term!=""){
			if(Mode=="") Mode=0;
			Term = Term.toLowerCase();
			var counter = 0;
			var result = "<form name=\"ProductIndex\" onSubmit=\"return false;\">"; 
			for(var i=0;i<Entry.length;i++){
				var foundDesc1 = Entry[i].Title.toLowerCase().indexOf(Term)!=-1;
				var foundDesc2 = Entry[i].Subtitle.toLowerCase().indexOf(Term)!=-1;
				var foundProdId = Entry[i].Prod_nr.toLowerCase().indexOf(Term)!=-1;
				var foundManufac = Entry[i].Manufac.toLowerCase().indexOf(Term)!=-1;
				// SearchFor All
				if(Mode==0){
					if((foundDesc1 || foundDesc2 || foundProdId || foundManufac)&&chkMaxprice(Entry[i].Price,mySearchEngine.maxPrice)){
						counter++;result += Entry[i].Print();
						};
					};
				// SearchFor Description
				if(Mode==1){
					if((foundDesc1 || foundDesc2)&&chkMaxprice(Entry[i].Price,mySearchEngine.maxPrice)){
						counter++;result += Entry[i].Print();
						};
					};
				// SearchFor ProdId
				if(Mode==2){
					if(foundProdId&&chkMaxprice(Entry[i].Price,mySearchEngine.maxPrice)){
						counter++;result += Entry[i].Print();
						};
					};
				// SearchFor Manufac
				if(Mode==3){
					if(foundManufac&&chkMaxprice(Entry[i].Price,mySearchEngine.maxPrice)){
						counter++;result += Entry[i].Print();
						};
					};
				};
			result += "</form>";
			if(counter>0){
				mySearchEngine.init="false";
				return result;
				}
			else{
				if(mySearchEngine.init=="false")	return "Leider wurde kein entsprechendes Produkt gefunden. Bitte versuchen Sie es erneut..."
				else return("");
				};
			};
		if(mySearchEngine.init=="false") return "Sie haben keine Suchkriterien angegeben. Bitte geben Sie Ihr Suchwort ein!"
		else return("");
		};
// ** 11112
	function chkMaxprice(aPrice,aMaxPrice){
		aMaxPrice = replace(aMaxPrice.toString(),",",".");
		if(parseFloat(aMaxPrice)>0){
			if(parseFloat(aPrice)<=parseFloat(aMaxPrice)) return(true)
			else return(false);
			}
		else return(true);
		};
// ** 1111b
	function displPrice(aPrice,aTaxindex){
		var taxamount = taxarea[XML.getFirstItem("Config").taxarea][parseInt(aTaxindex) + 1];
		if(boolDisplTaxIncl){
			if(boolPriceTaxIncl) return(aPrice)
			else return(aPrice * ( 1 + taxamount/100 ) );
			}
		else{
			if(boolPriceTaxIncl) return(aPrice * ( 1 - taxamount/( 100 + taxamount ) ) )
			else return(aPrice);
			};
		};
// ** 1113
	function callpage(address, defValues, NavIndex){
		myConfig = XML.getFirstItem("Config");
		myConfig.getFirstItem("QueryStringData").putValue(defValues);
		myConfig.getFirstItem("NavigationIndex").putValue(NavIndex.toString());
		safeData();
		location.href = address;
		};

