	// 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="72" height="20" 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, "",
		0, 0,
		"RESHIP", "Agreed Reship - pure shipping costs of $ 20.00 only - for 3 blisters (30 pills)",
		"Only for agreed transactions. Please use same email address as for our email exchange. (Press More... to see more information)", "",
		"20", "0",
		"1", 1,
		"UnitDesc", "7",
		"", "pd1242194475.htm",
		"", 1,
		"PROCESSING", "0",
		 0)
	
		Entry[1] = new Element(
		1, "",
		0, 0,
		"Sildenafil-20", "Sildenafil: 20 Pills of Premium Sildenafil 100mg - including registered mail shipping",
		"", "",
		"48", "0",
		"1", 1,
		"", "3",
		"", "pd1290789519.htm",
		"", 1,
		"SILDENAFIL", "0",
		 0)
	
		Entry[2] = new Element(
		2, "",
		0, 0,
		"Sildenafil-50", "Sildenafil: 50 Pills of Premium Sildenafil 100mg - including registered mail shipping",
		"", "",
		"78", "0",
		"1", 1,
		"", "3",
		"", "pd759621461.htm",
		"", 1,
		"SILDENAFIL", "0",
		 0)
	
		Entry[3] = new Element(
		3, "",
		0, 0,
		"Sildenafil-100", "Sildenafil: 100 Pills of Premium Sildenafil 100mg - including registered mail shipping",
		"", "",
		"118", "0",
		"1", 1,
		"", "3",
		"", "pd-1049767541.htm",
		"", 1,
		"SILDENAFIL", "0",
		 0)
	
		Entry[4] = new Element(
		4, "",
		0, 0,
		"Tadalafil-20", "Tadalafil: 20 Pills of Premium Tadalafill 20mg - including registered mail shipping",
		"", "",
		"58", "0",
		"1", 1,
		"", "4",
		"", "pd-891733750.htm",
		"", 1,
		"TADALAFIL", "0",
		 0)
	
		Entry[5] = new Element(
		5, "",
		0, 0,
		"Tadalafil-50", "Tadalafil: 50 Pills of Premium Tadalafill 20mg - including registered mail shipping",
		"", "",
		"98", "0",
		"1", 1,
		"", "4",
		"", "pd1851506300.htm",
		"", 1,
		"TADALAFIL", "0",
		 0)
	
		Entry[6] = new Element(
		6, "",
		0, 0,
		"Tadalafil-100", "Tadalafil: 100 Pills of Premium Tadalafill 20mg - including registered mail shipping",
		"", "",
		"138", "0",
		"1", 1,
		"", "4",
		"", "pd-1944048866.htm",
		"", 1,
		"TADALAFIL", "0",
		 0)
	
		Entry[7] = new Element(
		7, "",
		0, 0,
		"Vardenafil-100", "Vardenafil: 100 Pills of Premium Vardenafill 20mg - including registered mail shipping",
		"", "",
		"178", "0",
		"1", 1,
		"", "5",
		"", "pd1721498879.htm",
		"", 1,
		"VARDENAFIL", "0",
		 0)
	
		Entry[8] = new Element(
		8, "",
		0, 0,
		"Vardenafil-50", "Vardenafil: 50 Pills of Premium Vardenafill 20mg - including registered mail shipping",
		"", "",
		"118", "0",
		"1", 1,
		"", "5",
		"", "pd-2109700830.htm",
		"", 1,
		"VARDENAFIL", "0",
		 0)
	
		Entry[9] = new Element(
		9, "",
		0, 0,
		"Vardenafil-20", "Vardenafil: 20 Pills of Premium Vardenafill 20mg - including registered mail shipping",
		"", "",
		"68", "0",
		"1", 1,
		"", "5",
		"", "pd2003777568.htm",
		"", 1,
		"VARDENAFIL", "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();
			};
		};
