	// define buildUp Methods for StandAloneElements
	function createLine(){
		myLine = new clsObject("OrderBody")
			myLine.LinePos						=	xmlOHeader.childNodes.length;
			myLine.ProductNo					=	"";
			myLine.Name							=	"";
			myLine.Description					=	"";
			myLine.PriceUserEntry				=	"";
			myLine.PriceUnit					=	"1";
			myLine.MinOrder						=	"1";
			myLine.QuantityUnit					=	"";
			myLine.QuantityAmount				=	"1";
			myLine.TaxClass						=	"0";
			myLine.TaxRate						=	"0";
			myLine.TaxAmountLineTotalLC			=	"0";
			myLine.TaxAmountLineTotalSC			=	"0";
			myLine.DiscountRate					=	"0";
			myLine.DiscountNetSingleUnitLC		=	"0";
			myLine.DiscountGrossSingleUnitLC	=	"0";
			myLine.DiscountNetLineTotalLC		=	"0";
			myLine.DiscountGrossLineTotalLC		=	"0";
			myLine.DiscountNetSingleUnitSC		=	"0";
			myLine.DiscountGrossSingleUnitSC	=	"0";
			myLine.DiscountNetLineTotalSC		=	"0";
			myLine.DiscountGrossLineTotalSC		=	"0";
			myLine.PriceNetSingleUnitLC			=	"0";
			myLine.PriceGrossSingleUnitLC		=	"0";
			myLine.PriceNetLineTotalLC			=	"0";
			myLine.PriceGrossLineTotalLC		=	"0";
			myLine.PriceNetSingleUnitSC			=	"0";
			myLine.PriceGrossSingleUnitSC		=	"0";
			myLine.PriceNetLineTotalSC			=	"0";
			myLine.PriceGrossLineTotalSC		=	"0";
			myLine.WeightUnit					=	"";
			myLine.WeightAmountSingleUnit		=	"0";
			myLine.WeightAmountLineTotal		=	"0";
			// remove
			myLine.addNode("Internal");
	// return Line-Object to Caller
	return myLine;
	};
// 
	function addToBag(anElement,Amount){
		with(this){
			var taxamount = taxarea[parseInt(xmlConfig.taxarea)][parseInt(anElement.Tax) + 1];
			var update = -1;
			myLines = xmlOHeader.childNodes
			for(var i=0;i<myLines.length;i++){
				if(myLines[i].ProductNo==anElement.Prod_nr){
					update = i;
					break;
					};
				};
			// product already in shoppingcard
			if(update>-1){
				// detect position of prod_nr in shoppingcart
				myLines[i].QuantityAmount = Amount;
				if(boolPriceTaxIncl){
					myLines[i].PriceNetLineTotalLC = anElement.Price * Amount * ( 1 - taxamount/( 100 + taxamount ));
					myLines[i].PriceGrossLineTotalLC = anElement.Price * Amount;
					}
				else{
					myLines[i].PriceNetLineTotalLC = anElement.Price * Amount;
					myLines[i].PriceGrossLineTotalLC = anElement.Price * Amount * ( 1 + taxamount/100 );
					};
				}
			// add product to shoppingcart
			else{
				myLine = createLine();
				myLine.ProductNo = anElement.Prod_nr;
				myLine.Name = anElement.Title;
				myLine.Description = anElement.Subtitle;
				myLine.QuantityAmount = Amount;
				myLine.QuantityUnit = 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;
					myInternal.catDiscount = anElement.catDiscount;
				
				myLine.WeightAmountSingleUnit = parseFloat(anElement.Weight);
				myLine.WeightAmountLineTotal = parseFloat(anElement.Weight) * parseInt(Amount);
				
				myLine.TaxClass = anElement.Tax;
				myLine.TaxRate = taxamount;
				
				myLine.PriceUnit = anElement.PriceUnit;
				
				if(boolPriceTaxIncl){
					myLine.PriceNetSingleUnitLC = parseFloat(anElement.Price) * ( 1 - taxamount/( 100 + taxamount ) );
					myLine.PriceNetLineTotalLC = parseFloat(anElement.Price) * parseInt(Amount) * ( 1 - taxamount/( 100 + taxamount ) );
					myLine.PriceGrossSingleUnitLC = parseFloat(anElement.Price);
					myLine.PriceGrossLineTotalLC = parseFloat(anElement.Price) * parseInt(Amount);
					}
				else{
					myLine.PriceNetSingleUnitLC = parseFloat(anElement.Price);
					myLine.PriceNetLineTotalLC = parseFloat(anElement.Price) * parseInt(Amount);
					myLine.PriceGrossSingleUnitLC = parseFloat(anElement.Price) * ( 1 + taxamount/100 );
					myLine.PriceGrossLineTotalLC = parseFloat(anElement.Price) * parseInt(Amount) * ( 1 + taxamount/100 );
					};
				myLines[myLines.length] = myLine;
				};
			safeData();
			var dummyQueryString = "";
			if(Element){
				dummyQueryString += "productId=" + anElement.Prod_No + "&quantity=" + Amount;
				};
			location.href="orderform.htm?" + dummyQueryString;
			};
		};
// ** 1105
	function TElementPrint(){
		var boolDisplArtId = "true";
		var variants, variantString = "";
		variants = this.Variants.split("@");
		for(var i=0; i<variants.length - 1; i++){
			variantString += "search" + i + "_EQ_" + variants[i].split(";")[1] + "_AND_"; 
			};
		variantString += "{EOL}";
		
		var addToBag = '<img src="assets/images/vormerken.gif" width="129" height="22" alt="Artikel merken" border="0" align="bottom" hspace="0" vspace="0" class="main">';
		var rString = '<td class="PROVIEWBODY" width="50%"><table border="0" cellpadding="1" cellspacing="0" width="100%"><tr valign="top"><td width="25%">';
		if(this.Image!=""){
			if(this.LnkAdress!="#DROP#") rString += "<a href=\"" + this.LnkAdress + "?defaultVariants=" + variantString + "&categoryId=" + this.NavIndex + "\">";
			rString += "<img src='" + this.Image + "' border=0>";
			if(this.LnkAdress!="#DROP#") rString += "</a>";
			};
		if(boolDisplArtId) rString += '</td><td><table border="0" cellpadding="2" cellspacing="2" width="100%"><tr><td class="PROVIEWARTID" width="100%">' + this.Prod_nr + "</td></tr>";
		rString += "<tr><td class=\"PROVIEWBEZ1\">"
		if(this.LnkAdress!="#DROP#") rString += "<a href=\"" + this.LnkAdress + "?defaultVariants=" + variantString + "&categoryId=" + this.NavIndex + "\">"
		rString += this.Title;
		if(this.LnkAdress!="#DROP#") rString += "</a>";
		rString += "</td></tr>"
			+ "<tr><td class=\"PROVIEWBEZ2\" >" + this.Subtitle;
		if(variants.length>0) rString += "<br>";
		for(var i=0; i<variants.length - 1; i++){
			rString	+= "<nobr><strong>" + variants[i].split(";")[0] + ": " + variants[i].split(";")[1] + "</strong>"
			if(i<variants.length-2) rString += ", ";
			rString += "</nobr>";
			};
		rString += "</td></tr>";
		if(this.displMode==0||this.displMode==2){
			rString	+= "<tr><td>";
			rString += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
			if(this.catDiscount==0){
				rString += "<tr valign=\"top\"><td class=\"PROVIEWPRICE\" nowrap>";
				rString += TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objPriCurrency);
				if(boolDisplSecCurr) rString += charSecCurrDelimiter + TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objSecCurrency);
				rString += "</td></tr>";
				}
			else{
				if(this.Discount==""||this.Discount=="{EOL}"){
					rString += "<tr valign=\"top\">";
					rString += "<td nowrap>Alter Preis&nbsp;</td>";
					rString += "<td class=\"PROVIEWPRICESTROKEN\" nowrap>";
					rString += TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objPriCurrency);
					rString += "</td>"
					rString += "</tr>";
					rString += "<tr valign=\"top\">";
					rString += "<td nowrap>Jetzt nur noch</td>";
					rString += "<td class=\"PROVIEWPRICE\" nowrap>";
					rString += TFormatCurrency(displPrice(this.Price * (1 - this.catDiscount / 100 ),this.Tax) / this.PriceUnit, objPriCurrency);
					if(boolDisplSecCurr) rString += charSecCurrDelimiter + TFormatCurrency(displPrice(this.Price - ( this.Price * this.catDiscount / 100 ),this.Tax) / this.PriceUnit, objSecCurrency);
					rString += "</td>"
					rString += "</tr>";
					}
				else{
					rString += "<tr valign=\"top\"><td class=\"PROVIEWPRICE\" nowrap>";
					rString += TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objPriCurrency);
					if(boolDisplSecCurr) rString += charSecCurrDelimiter + TFormatCurrency(displPrice(this.Price,this.Tax) / this.PriceUnit, objSecCurrency);
					rString += "</td></tr>";
					};
				};
			rString += "</table>";
			rString += "</td></tr>";
			}
		else if(this.displMode==3){
			rString	+= "<tr><td class=\"PROVIEWPRICE\" nowrap>";
			rString += "Preis auf Anfrage";
			rString += "</td></tr>";
			};
		if(this.displMode==0){
			rString += "<tr><td>&nbsp;</td></tr>"
				+ "<tr><td><a href=\"JavaScript:addToBag(Entry[" + this.Index + "]," + this.Minorder + ");\">" + addToBag + "</a></td></tr>";
			};
		rString += "<tr><td>&nbsp;</td></tr></table></td></tr>"
			+ "</table>"
			+ "</td>";
		return(rString);
		};
// ** 1106
	function Element(Index,Prod_nr,Title,Subtitle,Image,Manufac,Price,Weight,Tax,PriceUnit,Unitdesc,NavIndex,Discount,LnkAdress,Options,Minorder,catDiscount,displMode){
		NavIndex = NavIndex.split(";");
		this.Index = Index;
		this.Prod_nr = Prod_nr;
		this.Title = Title;
		this.Subtitle = Subtitle;
		if(Image == "") this.Image = "assets/images/nopicture.gif";
		else this.Image = "assets/thumb/" + Image;
		this.Manufac = Manufac;
		this.Price = Price;
		this.Weight = Weight;
		this.Tax = Tax;
		this.PriceUnit = PriceUnit;
		this.Unitdesc = Unitdesc;
		this.NavIndex = NavIndex[0].split(",")[1];
		this.Print = TElementPrint;
		this.Variants = Options;
		this.LnkAdress = LnkAdress;
		this.Discount = Discount;
		this.Minorder = Minorder;
		this.Category = NavIndex[0].split(";")[0]
		this.catDiscount = catDiscount;
		this.displMode = displMode.split(",")[0];
		};

// ** 1107
	var Entry = new Array();

// ** 1109
	function SetupSearchEngineForm(idx){
		if(idx == "nada" || !idx) idx = -1;
		idx = parseInt(idx);
		document.SearchEngine.navselect[idx+1].selected = true;
		};
// enable smartstore to display amount of found products ...
	var counter = 0;
// ** 1111b
	function SearchFor(Term,strAlterTerms,strExtendSearch){
		var foundItems = new Array();
		var itemPrice = 0;
		var cols = 2;
		var result = "";
		for(var i=0;i<Entry.length;i++){
			itemPrice = Entry[i].Price
			if(Entry[i].catDiscount!=0 && Entry[i].Discount==""){
				itemPrice = Entry[i].Price * (1 - Entry[i].catDiscount / 100 );
				};
			itemPrice = displPrice(itemPrice, Entry[i].Tax);
			foundItems[foundItems.length] = Entry[i];
			counter++;
			};
		for(var i=0; i<foundItems.length;i++){
			if(i%cols==0) result += "<tr><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr valign=\"top\">";
			result += foundItems[i].Print();
			if(i==foundItems.length-1&&i%cols==0) result += "<td class=\"PROVIEWBODY\" width=\"50%\">&nbsp;</td>";
			if(i%cols==1) result += "</tr></table></td></tr>";
			};
		if(Term != "" && Term != "null" && counter > 0){
			return result;
			}
		else{
			if(Term != "" && Term != "null"){
				rString = "<tr><td colspan=\"2\" class=\"PROVIEWBODY\" nowrap>"
				+ "Leider wurde kein entsprechendes Produkt gefunden. Bitte versuchen Sie es erneut mit einem anderen Suchbegriff...";
				if(strExtendSearch) rString += strExtendSearch;
				if(strAlterTerms) rString += "<br><br>" + strAlterTerms + "<br><br>";
				else rString += "<br><br>";
				rString += "</td></tr>";
				return rString;
				}
			else{
				 return "<tr><td colspan=\"2\" class=\"PROVIEWBODY\" nowrap>Sie haben keine Suchkriterien angegeben. Bitte geben Sie Ihr Suchwort ein!</td></tr>";
				};
			};
		};
// ** 11112
	function chkMaxprice(aPrice,aMaxPrice){
		aMaxPrice = replace(aMaxPrice.toString(),",",".");
		aPrice = calculateCurrencyAmount(aPrice, objPriCurrency);
		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[xmlConfig.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);
			};
		};

	function setfocus(){
			document.SearchEngine.searchterm.select();
			document.SearchEngine.searchterm.focus();
		};
		
	function checkTerm(){
		if(document.SearchEngine.searchterm.value == ""){
			alert("Sie haben keine Suchkriterien angegeben. Bitte geben Sie Ihr Suchwort ein!");
			document.SearchEngine.searchterm.focus();
			return false;
			}
		return true;
	};
		
	function autoSearch(term,mode){
		document.SearchEngine.searchterm.value = term.toString().replace("\'","");
		xmlConfig.getFirstItem('SearchEngine').term = term.toString().replace("\'","");
		xmlConfig.getFirstItem("SearchEngine").mode = 0;
		if(mode==1) document.SearchEngine.searchmethod.value = "or";
		document.SearchEngine.mode.value = 0;
		document.SearchEngine.navselect[0].selected = true;
		document.SearchEngine.maxprice.value = "";
		document.SearchEngine.submit();
	};
	
	var strMetaphon = "";
	var strExtendSearch = "";