		var currentCatNum=0;
		var currentItemNum=0;

		function closeSent() {
            var sentDiv=document.getElementById("wurde_gesendet");
            sentDiv.style.visibility="hidden";
        }
        
        function validateEmail(email) {
            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
            if(reg.test(email) == false) {
//                alert('Invalid Email Address');
                return false;
            }
            return true;
        }
        
		function sendMail() {
			var xmlhttp=null;
			var items=document.kalkulator.items_ordered.value;
			var email=document.kalkulator.email.value;
            if (!validateEmail(email)) {
                alert('Ungültige E-Mail-Adresse');
                return false;
            }
            var sendDiv=document.getElementById("wird_gesendet");
            var sentDiv=document.getElementById("wurde_gesendet");
            sendDiv.style.visibility="visible";
//			var sendButton=document.getElementById("sendButton");
//			sendButton.innerHTML='<b><center>Angebot wird gesendet...</center></b>';
			if (window.XMLHttpRequest) {
				xmlhttp=new XMLHttpRequest();
			} else if (window.ActiveXObject) {
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			xmlhttp.open("GET", "angebot.php?email="+escape(email)+"&items_ordered="+escape(items), true);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState!=4) {
				}
				if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    sendDiv.style.visibility="hidden";
                    sentDiv.style.visibility="visible";
//					sendButton.innerHTML='<b><center>Angebot wurde gesendet!</center></b>';
//					alert("Angebot wurde gesendet!");
				}
			}
			xmlhttp.send(null);
		}
		
		function category(id, name, description, preview_link) {
			this.id=id;
			this.name=name;
			this.description=description;
			this.preview_link=preview_link;
			this.selected=false;
			this.containsSells=false;
		}
		
		function item(id, name, description, preview_link, price, price_pre, price_post, tax_rate, kategorie_id, parent_id) {
			this.id=id;
			this.name=name;
			this.description=description;
			this.preview_link=preview_link;
			this.price=parseFloat(price);
			this.price_pre=price_pre;
			this.price_post=price_post;
			this.tax_rate=tax_rate;
			this.kategorie_id=kategorie_id;
			this.parent_id=parent_id;
			this.selected=false;
			this.containsSells=false;
			this.opened=true;
			this.inBasket=false;
			this.inPayment=false;
		}

		function itemContainsSells(itemNum) {
			if (myItems[itemNum].inBasket) {
				return true;
			} else {
				var items=myItems[itemNum].items;
				for (itemNum2 in items) {
					if (itemContainsSells(itemNum2)) {
						return true;
					}
				}
			}
			return false;
  		}
  		
		function catContainsSells(catNum) {
			var category=myCategories[catNum];
			var items=category.items;
			for (itemNum in items) {
				if (itemContainsSells(itemNum)) {
					return true;
				}
			}
			return false;
  		}

		function updateCategoryDiv() {
			var dEins=document.getElementById("sEins");
			var ihtml="";
            ihtml+="<div class=\"headline\"><span>Kategorien</span></div>";
			for (catNum in myCategories) {
				if (myCategories[catNum].selected) {
					ihtml+="<a href=\"#\" class=\"active\" id=\"cat_"+myCategories[catNum].id+"\">"+myCategories[catNum].name+"</a>\n";
				} else if (catContainsSells(catNum)) {
					ihtml+="<a href=\"javascript:openCategory("+catNum+");\" class=\"semi-active\" id=\"cat_"+myCategories[catNum].id+"\">"+myCategories[catNum].name+"</a>\n";
				} else {
					ihtml+="<a href=\"javascript:openCategory("+catNum+");\" id=\"cat_"+myCategories[catNum].id+"\">"+myCategories[catNum].name+"</a>\n";
				}
			}
			dEins.innerHTML=ihtml;
		}
		
		function showItem(itemNum, depth) {
		  	var returnHTML="";
		  	var checked=myItems[itemNum].inBasket?"checked=\"true\"":"";
//		  	returnHTML+="<span><input type=\"checkbox\" id=\"el-"+myItems[itemNum].id+"\" "+checked+"/><label for=\"el-"+myItems[itemNum].id+"\" onclick=\"javascript:openItem("+itemNum+");\">"+myItems[itemNum].name+"</label></span>";
//			if (myItems[itemNum].items.length>0) {
//		  		returnHTML+="<span class=\"mainitem\" onClick=\"openItem("+itemNum+");\"><label for=\"el-"+itemNum+"\">"+myItems[itemNum].name+"</label></span>";
//  			} else if (myItems[itemNum].parent_id!=-1) {
			if (myItems[itemNum].items.length==0 && myItems[itemNum].parent_id==itemNum) {
		  		returnHTML+="<span class=\"mainitem\" onClick=\"openItem("+itemNum+");\"><label for=\"el-"+itemNum+"\">"+myItems[itemNum].name+"</label></span>";
  			} else if (myItems[itemNum].parent_id!=-1) {
		  		returnHTML+="<span class=\"subitem\" onClick=\"openItem("+itemNum+");\"><input type=\"checkbox\" id=\"\" "+checked+" onClick=\"selectItem('"+myItems[itemNum].id+"');\"/><label for=\"\">"+myItems[itemNum].name+"</label></span>";
  			} else {
		  		returnHTML+="<span onClick=\"openItem("+itemNum+");\"><input type=\"checkbox\" id=\"\" "+checked+" onClick=\"selectItem('"+myItems[itemNum].id+"');\"/><label for=\"\">"+myItems[itemNum].name+"</label></span>";
  			}
//			if (myItems[itemNum].selected) {
//				returnHTML+="<a href=\"javascript:openItem("+itemNum+");\" class=\"active\" id=\"item_"+myItems[itemNum].id+"\">"+myItems[itemNum].name+"</a>\n";
//			} else if (myItems[itemNum].containsSells) {
//				returnHTML+="<a href=\"javascript:openItem("+itemNum+");\" class=\"semi-active\" id=\"item_"+myItems[itemNum].id+"\">"+myItems[itemNum].name+"</a>\n";
//			} else {
//				returnHTML+="<a href=\"javascript:openItem("+itemNum+");\" id=\"item_"+myItems[itemNum].id+"\">"+myItems[itemNum].name+"</a>\n";
//			}
			if (myItems[itemNum].opened) {
				var items=myItems[itemNum].items;
				for (itemNum2 in items) {
				  	returnHTML+=showItem(itemNum2, depth+1);
				}	  		
			}
			return returnHTML;
		}
		
		function updateItemDiv() {
			var dZwei=document.getElementById("sZwei");
			var ihtml="";
            ihtml+="<div class=\"headline\"><span>Produkte und Upgrades</span></div>";
			var category=myCategories[currentCatNum];
			var items=category.items;
			for (itemNum in items) {
			  	ihtml+=showItem(itemNum, 0);
			}
			dZwei.innerHTML=ihtml;
		}
		
		function updateItemDescription(showCatDesc) {
			var dDrei=document.getElementById("sDrei");
			var ihtml="";
            ihtml+="<div class=\"headline\"><span>Produktbeschreibung</span></div>";
			var item;
			if (showCatDesc==0) {
				item=myItems[currentItemNum];
			} else {
				item=myCategories[currentCatNum];
			}
			var description=item.description;
			var preview_link=item.preview_link;
			ihtml+="<div id=\"flashContainer\" style=\"width:50; height:50; margin:0px; padding: 0px;\">";
			ihtml+="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='100%' height='100%' id='main' align='middle' padding='0' margin='0' style=\"margin:0px; padding: 0px;\">";
			ihtml+="<param name='allowScriptAccess' value='sameDomain' />";
			ihtml+="<param name='movie' value="+preview_link+" />";
			ihtml+="<param name='quality' value='best' />";
			ihtml+="<param name='salign' value='t' />";
			ihtml+="<param name='wmode' value='transparent' />";
			ihtml+="<param name='bgcolor' value='#FFFFFF' />";
			ihtml+="<param name='scale' value='noscale' />";
			ihtml+="<embed src="+preview_link+" quality='best' salign='t' wmode='transparent' bgcolor='#FFFFFF' width='100%' height='100%' name='main' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'  padding='0' margin='0' style=\"margin:0px; padding: 0px;\" />";
			ihtml+="</object>";
			ihtml+="</div>";
			ihtml+="<p>"+description+"</p><br>";
			if (showCatDesc!=1) {
				if (item['price_pre']!=0 || item['price']!=0 || item['price_post']!=0) {
					ihtml+="<br>Preis: ";
				}
				if (item['price_pre']!=0) {
					ihtml+=item['price_pre']+"&nbsp;";
				}
				if (item['price']!=0) {
				ihtml+=item['price']+"&nbsp;&euro;&nbsp;";
				}
				if (item['price_post']!=0) {
					ihtml+=item['price_post']+"<br>";
				}
			}
			dDrei.innerHTML=ihtml;
		}
		
		function doUpdates() {
			openCategory(1);
			updateCosts();
		}
		
		function openCategory(catNum) {
		  	currentCatNum=catNum;
			currentItemNum=catNum;
			for (cn in myCategories) {
				myCategories[cn].selected=(cn==catNum);
			}
			updateCategoryDiv();
			updateItemDiv();
			updateItemDescription(1);
		}

		function openItem(itemNum) {
		  	currentItemNum=itemNum;
			for (itn in myItems) {
				myItems[itn].selected=(itn==itemNum);
			}
//			myItems[itemNum].opened=!myItems[itemNum].opened;
//			myItems[itemNum].buy=!myItems[itemNum].buy;
			updateItemDiv();
			updateItemDescription(0);
		}
		
		function selectItem(itemNum) {
			myItems[itemNum].inBasket=!myItems[itemNum].inBasket;
			myItems[itemNum].inPayment=myItems[itemNum].inBasket;
			updateCosts();
  		}
  		
		function switchPayment(itemNum) {
			myItems[itemNum].inPayment=!myItems[itemNum].inPayment;
			updateCosts();
  		}
  		
		function removeFromBasket(itemNum) {
			myItems[itemNum].inBasket=false;
			myItems[itemNum].inPayment=false;
			updateCosts();
			updateItemDiv();
  		}
  		
  		function updateCosts() {
			var dVier=document.getElementById("sVier");
			var ihtml="";
			var amount=0;
			var oddEven=0;
			var lastParent=0;
			for (itemNum in myItems) {
	  			if (myItems[itemNum].inPayment) {
					amount+=myItems[itemNum].price;
 			  	}
			}
			ihtml+="<div class=\"gesamtkosten\"><span>Gesamtkosten: <span>"+amount+" &euro;</span></span></div>";
			for (itemNum in myItems) {
				if (myItems[itemNum].inBasket || itemContainsSells(itemNum)) {
					if (myItems[itemNum].parent_id!=lastParent) {
						lastParent=myItems[itemNum].parent_id;
						oddEven=(oddEven+1)%2;
						if (oddEven) {
							oddEvenClass="odd";
						} else {
							oddEvenClass="even";
						}
					}
					if (myItems[itemNum].inBasket && !myItems[itemNum].inPayment) {
						check="";
						clear="<a href=\"javascript:removeFromBasket("+itemNum+");\" class=\"clear\">&nbsp;</a>";
					} else {
						clear="";
						check="checked=\"true\"";
					}
					if (myItems[itemNum].inBasket) {
						ihtml+="<div class=\""+oddEvenClass+"\"><span class=\"clearfix\"><input type=\"checkbox\" "+check+" id=\"bel-"+itemNum+"\" onclick=\"switchPayment("+itemNum+");\"/><label for=\"bel-"+itemNum+"\">"+myItems[itemNum].name+"</label><span>"+myItems[itemNum].price+" &euro;</span>"+clear+"</span></div>";
					} else {
						ihtml+="<div class=\""+oddEvenClass+"\"><span class=\"clearfix\"><label for=\"bel-"+itemNum+"\">"+myItems[itemNum].name+"</label><span>&nbsp;</span>"+clear+"</span></div>";
					}
				}
			}
			ihtml+="<div class=\"gesamtkosten\"><span>Gesamtkosten: <span>"+amount+" &euro;</span></span></div>";
	            ihtml+="<div class=\"senden\">";
	                ihtml+="<span><input type=\"text\" name=\"email\" value=\"E-Mail-Adresse eintragen\" onFocus=\"if(this.value=='E-Mail-Adresse eintragen') this.value=''\" /></span>";
//	                ihtml+="<span><input class=\"submit\" type=\"button\" value=\"Angebot senden >>\" onClick=\"sendOffer();\"/></span>                ";
	                ihtml+="<span id=\"sendButton\"><input class=\"submit\" type=\"submit\" value=\"Angebot senden >>\"/></span>                ";
	                ihtml+="<span class=\"senden_info\">Mit dem Absenden wird Ihnen lediglich dieses Angebot auf Ihre E-Mail-Adresse versandt. Sie gehen damit keinen Vertrag oder Verbindlichkeiten ein.</span>";
	            ihtml+="</div>";			
			dVier.innerHTML=ihtml;
	  	}
		
		function sendOffer() {
			var it="";
			for (itemNum in myItems) {
				if (myItems[itemNum].inPayment) {
					it+=itemNum+",";
				}
			}
			document.kalkulator.items_ordered.value=it;
			sendMail();
			return false;
//			document.kalkulator.submit();
		}
