	// 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="98" height="48" alt="Note item" 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/CD1_small.jpg",
		100,
		97,
		"CD1",
		"Family Style and This Is My Valley",
		"Music Format - CD",
		"",
		"15",
		"1",
		"1",
		1,
		"Each",
		0,
		"",
		"pd53919508.htm",
		"",
		1)
	
		Entry[1] = new Element(
		1,
		"../assets/thumb/CD_cover3_small.jpg",
		100,
		101,
		"CD3",
		"Heart Warming Hymns and Lookin Up",
		"Music Format - CD",
		"",
		"15",
		"1",
		"1",
		1,
		"Each",
		0,
		"",
		"pd558599813.htm",
		"",
		1)
	
		Entry[2] = new Element(
		2,
		"../assets/thumb/CD_cover2_small.jpg",
		100,
		97,
		"CD2",
		"We’re Together Again and Family Portrait",
		"Music Format - CD",
		"",
		"15",
		"1",
		"1",
		1,
		"Each",
		0,
		"",
		"pd1004066327.htm",
		"",
		1)
	
		Entry[3] = new Element(
		3,
		"../assets/thumb/CD_cover4_small.jpg",
		100,
		96,
		"CD4",
		"Basics of Life and Twice Is Nice",
		"Music Format - CD",
		"",
		"15",
		"1",
		"1",
		1,
		"Each",
		0,
		"",
		"pd-1472836596.htm",
		"",
		1)
	
		Entry[4] = new Element(
		4,
		"../assets/thumb/CD_cover5a_small.jpg",
		100,
		94,
		"CD5",
		"The Little Gateways and Chad & Matt",
		"Music Format - CD",
		"",
		"20",
		"2",
		"1",
		1,
		"Each",
		0,
		"",
		"pd551429661.htm",
		"",
		1)
	
		Entry[5] = new Element(
		5,
		"../assets/thumb/CD_cover6_small.jpg",
		100,
		100,
		"CD6",
		"Our Tribute and Continued Praise",
		"Music Format - CD",
		"",
		"15",
		"1",
		"1",
		1,
		"Each",
		0,
		"",
		"pd327860506.htm",
		"",
		1)
	
		Entry[6] = new Element(
		6,
		"../assets/thumb/cds.jpg",
		97,
		80,
		"CD SET",
		"Super CD Pack - Volumes 1-5",
		"",
		"",
		"20",
		"2.5",
		"1",
		1,
		"Each",
		0,
		"",
		"pd1566657939.htm",
		"",
		1)
	
		Entry[7] = new Element(
		7,
		"../assets/thumb/cassettes.jpg",
		104,
		80,
		"TP1",
		"Five Volume Set",
		"Media Format - Cassette",
		"",
		"18",
		"5",
		"1",
		1,
		"Each",
		1,
		"",
		"pd-1070212615.htm",
		"",
		1)
	
		Entry[8] = new Element(
		8,
		"../assets/thumb/cassettes.jpg",
		104,
		80,
		"TP3",
		"GW 18",
		"Media Format - Cassette",
		"",
		"10",
		"1",
		"1",
		1,
		"Each",
		1,
		"",
		"pd-1134553905.htm",
		"",
		1)
	
		Entry[9] = new Element(
		9,
		"../assets/thumb/cassettes.jpg",
		104,
		80,
		"TP4",
		"GW 19",
		"Media Format - Cassette",
		"",
		"10",
		"1",
		"1",
		1,
		"Each",
		1,
		"",
		"pd-665476508.htm",
		"",
		1)
	
		Entry[10] = new Element(
		10,
		"../assets/thumb/cassettes.jpg",
		104,
		80,
		"TP5",
		"GW 20",
		"Media Format - Cassette",
		"",
		"10",
		"1",
		"1",
		1,
		"Each",
		1,
		"",
		"pd-1678548075.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 "Sorry, no matching product was found. Please try again..."
				else return("");
				};
			};
		if(mySearchEngine.init=="false") return "You did not enter any search criteria. Please enter your search term."
		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;
		};
