	// 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/btnaddtobag.gif" width="83" height="24" alt="Note item" border="0" align="bottom" hspace="0" vspace="0" class="main">';
		var rString = '<TR><TD align="right" class="PROVIEWBODY">';
		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.Width!=0) rString += " width=" + this.Width;
			if(this.Height!=0) rString += " height=" + this.Height;
			rString += " align=\"top\">";
			if(this.LnkAdress!="#DROP#") rString += "</a>";
			};
		
		rString += '</TD><TD class="PROVIEWBODY" valign="top" width="100%"><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\">"
		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\">";
			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>Before:&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>Now only:&nbsp;</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 += "Price on demand";
			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>";
		return(rString);
		};
// ** 1106
	function Element(Index,Image,Width,Height,Prod_nr,Title,Subtitle,Manufac,Price,Weight,Tax,PriceUnit,Unitdesc,NavIndex,Options,LnkAdress,Discount,Minorder,Category,catDiscount,displMode){
		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;this.Category = Category;
		this.catDiscount = catDiscount;
		this.displMode = displMode;
		};
// ** 1107
	var Entry = new Array();
// ** 1108
	
		Entry[0] = new Element(
		0, "assets/thumb/tn_08_thehistoryoftheroma_600_jpg.jpg",
		68, 100,
		"1", "The History of the Roma - A complete 1000 years picture of the Roma History ",
		"by Marko D. Knudsen", "RomNews Society",
		"19.95", "0",
		"1", 1,
		"Stück", "0",
		"", "pd-802457812.htm",
		"", 1,
		"1", "0",
		 0)
	
		Entry[1] = new Element(
		1, "assets/thumb/tn_trioterno_jpg.jpg",
		108, 100,
		"2", "Sinti Jazz - Trio Terno",
		"For all the people we love", "Landesverband der Sinti Schleswig Holstein",
		"19.95", "0",
		"1", 1,
		"Stück", "3",
		"", "pd-1049861830.htm",
		"", 1,
		"4", "0",
		 0)
	
		Entry[2] = new Element(
		2, "assets/thumb/tn_diegeschichtederroma_600_jpg.jpg",
		68, 100,
		"3", "Die Geschichte der Roma - Ein komplettes Bild der 1000 Jährigen Roma Geschichte",
		"von Marko D. Knudsen", "RomNews Society",
		"19.95", "0",
		"1", 1,
		"Stück", "0",
		"", "pd-580660744.htm",
		"", 1,
		"1", "0",
		 0)
	
		Entry[3] = new Element(
		3, "assets/thumb/RNS_Asia_200x144.jpg",
		200, 144,
		"4", "The early Roma History / 1000-1348",
		"History Map Asia with the movements of the Roma people through the different empires of the region", "RomNews Society",
		"9.95", "0",
		"1", 1,
		"Stück", "2",
		"", "pd-894834458.htm",
		"", 1,
		"3", "0",
		 0)
	
		Entry[4] = new Element(
		4, "assets/thumb/RNS_Europe_200x144.jpg",
		200, 144,
		"5", "Roma in Europe / 1348 - 2003",
		"", "RomNews Society",
		"9.95", "0",
		"1", 1,
		"Stück", "2",
		"", "pd-744369788.htm",
		"", 1,
		"3", "0",
		 0)
	
		Entry[5] = new Element(
		5, "assets/images/nopicture.gif",
		55, 38,
		"6", "Good Practise Projects &quot;Focus on Education&quot; VCD",
		"A documentary in English - Deutsch about a Training Session by the Hamburg based Rom und Cinti Union e.V. ", "RomNews Society",
		"24.95", "0",
		"1", 1,
		"Stück", "1",
		"", "pd-769612974.htm",
		"", 1,
		"2", "0",
		 0)
	
		Entry[6] = new Element(
		6, "assets/images/nopicture.gif",
		55, 38,
		"7", "Romathan - VHS",
		"A Documatary about a Roma Theater", "Rhizomfolm",
		"29.95", "0",
		"1", 1,
		"Stück", "1",
		"", "pd586105296.htm",
		"", 1,
		"2", "0",
		 0)
	
		Entry[7] = new Element(
		7, "assets/images/nopicture.gif",
		55, 38,
		"8", "Gelem Gelem - VHS",
		"Documentary on the Roma Civil and Human rights struggle in Englisch und Deutsch", "Rhizomfolm",
		"29.95", "0",
		"1", 1,
		"Stück", "1",
		"", "pd-257999746.htm",
		"", 1,
		"2", "0",
		 0)
	
		Entry[8] = new Element(
		8, "assets/images/nopicture.gif",
		55, 38,
		"9", "Geschichte der Roma und zwei Poster (Geschichte in Asien + Roma in Europa)",
		"Als Bonus erhalten Sie einen RomNews Society Kugelschreiber und ein RomNews Society Feuerzeug", "RomNews Society",
		"34.95", "0",
		"1", 1,
		"Stück", "4",
		"", "pd1735214117.htm",
		"", 1,
		"Bundles", "0",
		 0)
	
// ** 1109
	function SetupSearchEngineForm(){
		mySearchEngine = xmlConfig.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;
			};
		if(xmlConfig.getFirstItem("SearchEngine").ByCategory=="1"){
			for(var i=0;i<document.SearchEngine.navselect.length; i++){
				if(document.SearchEngine.navselect[i].value.split(';;')[2]==mySearchEngine.categoryId){
					xmlConfig.getFirstItem("SearchEngine").categoryIndex = document.SearchEngine.navselect[i].value.split(';;')[0];
					document.SearchEngine.navselect[i].selected = true;
					};
				};
			}
		else{
			xmlConfig.getFirstItem("SearchEngine").categoryIndex = "null";
			};
		};
// enable smartstore to display amount of found products ...
	var counter = 0;
// ** 1111b
	function SearchFor(Term,Mode){
	var foundItems = new Array();
	var itemPrice = 0; var currentCategory = 0;
		mySearchEngine = xmlConfig.getFirstItem("SearchEngine");
		if((Term!="null" && Term!="")||mySearchEngine.maxPrice>=0){
			if(Mode=="") Mode=0;
			Term = Term.toLowerCase();
			var result = "<form name=\"ProductIndex\" onSubmit=\"return false;\">";
			var matchCategory = true;
			var productCategory;
			for(var i=0;i<Entry.length;i++){
				if(xmlConfig.getFirstItem("SearchEngine").ByCategory=="1"){
					// Search for matching categories
					if(xmlConfig.getFirstItem("SearchEngine").categoryIndex!="null"&&xmlConfig.getFirstItem("SearchEngine").categoryIndex!="nada"){
						for(var j=0; j<Entry[i].Category.split(",").length; j++){
							matchCategory = (navigation[mySearchEngine.categoryIndex].categoryId == Entry[i].Category.split(",")[j]) ? true : false;
							if(matchCategory!=true){
								productCategory = getNavElementByCatID(Entry[i].Category.split(",")[j]);
								while(productCategory!=null&&matchCategory==false){
									if(productCategory.parentId!=null){
										if(navigation[productCategory.parentId].categoryId==xmlConfig.getFirstItem("SearchEngine").categoryId){
											currentCategory = Entry[i].Category.split(",")[j];
											matchCategory=true;
											break;
											}
										else productCategory = navigation[productCategory.parentId];
										}
									else{
										currentCategory = Entry[i].Category.split(",")[j];
										productCategory = null;
										};
									};
								}
							else{
								currentCategory = Entry[i].Category.split(",")[j];
								break;
								};
							};
						}
					else{
						currentCategory = Entry[i].Category.split(",")[0];
						matchCategory = true;
						};
					}
				else{
					currentCategory = Entry[i].Category.split(",")[0];
					matchCategory = true;
					};
				// Update current Category
				Entry[i].NavIndex = getNavElementByCatID(currentCategory).id;
				// Continue
				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
				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);
				//
				if(Mode==0){
					if((foundDesc1 || foundDesc2 || foundProdId || foundManufac || Term=="null" || Term=="")&&chkMaxprice(itemPrice,mySearchEngine.maxPrice)&&matchCategory){
						counter++;
						foundItems[foundItems.length] = Entry[i];
						};
					};
				// SearchFor Description
				if(Mode==1){
					if((foundDesc1 || foundDesc2 || Term=="null" || Term=="")&&chkMaxprice(itemPrice,mySearchEngine.maxPrice)&&matchCategory){
						counter++;
						foundItems[foundItems.length] = Entry[i];
						};
					};
				// SearchFor ProdId
				if(Mode==2){
					if((foundProdId || Term=="null" || Term=="")&&chkMaxprice(itemPrice,mySearchEngine.maxPrice)&&matchCategory){
						counter++;
						foundItems[foundItems.length] = Entry[i];
						};
					};
				// SearchFor Manufac
				if(Mode==3){
					if((foundManufac || Term=="null" || Term=="")&&chkMaxprice(itemPrice,mySearchEngine.maxPrice)&&matchCategory){
						counter++;
						foundItems[foundItems.length] = Entry[i];
						};
					};
				};
			// found elements: foundItems.length
			for(var i=0; i<foundItems.length;i++){
				result += foundItems[i].Print();
				};
			result += "</form>";
			if(counter>0){
				mySearchEngine.init="false";
				return result;
				}
			else{
				if(mySearchEngine.init=="false")	return "<TR><TD colspan=\"2\" class=\"PROVIEWBODY\" nowrap>Sorry, no matching product was found. Please try again...</TD></TR>"
				else return("");
				};
			};
		if(mySearchEngine.init=="false") return "<TR><TD colspan=\"2\" class=\"PROVIEWBODY\" nowrap>You did not enter any search criteria. Please enter your search term.</TD></TR>"
		else return("");
		};
// ** 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);
			};
		};
// ** 1113
	function callpage(address, defValues, NavIndex){
		xmlConfig.getFirstItem("QueryStringData").putValue(defValues);
		xmlConfig.navIndex = NavIndex.toString();
		safeData();
		location.href = address;
		};
// ** 1114
	function newSearch(){
	var queryString = ""; var site = "";
	var xmlSearchEngine = xmlConfig.getFirstItem("SearchEngine");
		xmlSearchEngine.init='false';
		safeData();
		queryString += "mode=" + xmlSearchEngine.mode
			+ "&term=" + escape(xmlSearchEngine.term)
			+ "&maxPrice=" + escape(xmlSearchEngine.maxPrice)
			+ "&categoryId=" + escape(xmlSearchEngine.categoryIndex);
		if(location.href.indexOf("?")==-1) location.href = "search.htm?" + queryString
		else location.href = location.href.substring(0, location.href.indexOf("?")) + "?" + queryString;
		};
// ** 1115
	function searchOnEnter(){
		if(window.event.keyCode==13){
			xmlConfig.getFirstItem('SearchEngine').maxPrice=valNumber(document.SearchEngine.Maxprice.value,'0','');
			xmlConfig.getFirstItem('SearchEngine').term=document.SearchEngine.Term.value;
			newSearch();
			};
		};