//KLASSE #################################################################
function Behandlung(id, name, preis){
	
	this.id = id;
	this.name = name;
	this.preis = preis;
	
	
	//METHODEN ###########################################################
	
	this.getOption = function(){
		opt = document.createElement("option");
		
		text = document.createTextNode(this.name + " (" + this.preis + ",- €)");
		opt.appendChild(text);
		
		val = document.createAttribute("value");
		val.nodeValue = this.id;
		opt.setAttributeNode(val);
		
	return opt;
	}
}
//EOC


//KLASSE #################################################################
function Behandlungen(){
	
	this.behandlungen = new Array();
	
	//METHODEN ###########################################################
	
	this.addBehandlung = function(name, preis){
		id = this.behandlungen.length;
		this.behandlungen[id] = new Behandlung(id, name, preis);
	}
	
	//--------------------------------------------------------------------
	
	this.getName = function(id){
		for(i in this.behandlungen){
			if(this.behandlungen[i].id == id){
				return this.behandlungen[i].name;
			}
		}
	return '';
	}
	
	//--------------------------------------------------------------------
	
	this.getPreis = function(id){
		for(i in this.behandlungen){
			if(this.behandlungen[i].id == id){
				return this.behandlungen[i].preis;
			}
		}
	return '';
	}
	
	//--------------------------------------------------------------------
	
	this.addToForm = function(sel){
		for(i in this.behandlungen){
			sel.appendChild(this.behandlungen[i].getOption());
		}
	}
}
//EOC


//KLASSE #################################################################
function Artikel(menge, id){
	
	this.menge = parseInt(menge);
	this.id = id;
	
	//METHODEN ###########################################################
	this.addMenge = function(menge){
		this.menge += menge;
	}
}
//EOC


//KLASSE #################################################################
function Warenkorb(behandlungen, behandlungscontainer){
	
	this.behandlungen = behandlungen;
	this.behandlungscontainer = behandlungscontainer;
	this.artikel = new Array();
	this.sum = 0;
	
	//METHODEN ###########################################################
	
	this.addArtikel = function(artikel){
		if(this.hasArtikel(artikel.id)){
			this.getArtikel(artikel.id).addMenge(artikel.menge);
		}else{
			this.artikel[this.artikel.length] = artikel;
		}
		this.sum += artikel.menge * this.behandlungen.getPreis(artikel.id);
		document.getElementById("warenkorb").innerHTML = this.toString();
	}
	
	//--------------------------------------------------------------------
	
	this.getArtikel = function(id){
		for(i in this.artikel){
			if(this.artikel[i].id == id){
				return this.artikel[i];
			}
		}
	return false;
	}
	
	//--------------------------------------------------------------------
	
	this.delArtikel = function(id){
		newartikel = new Array();
		
		summe = 0;
		for(i in this.artikel){
			artikel = this.artikel[i];
			if(artikel.id != id){
				newartikel[newartikel.length] = artikel;
				summe += artikel.menge * this.behandlungen.getPreis(artikel.id);
			}
		}
		this.artikel = newartikel;
		this.sum = summe;
		
		if(this.isEmpty()){
			this.clearWarenkorb();
		}else{
			document.getElementById("warenkorb").innerHTML = this.toString();
		}
	}
	
	//--------------------------------------------------------------------
	
	this.clearWarenkorb = function(){
		this.artikel = new Array();
		this.behandlungscontainer.value = '';
		this.sum = 0;
		document.getElementById("warenkorb").innerHTML = this.toString();
	}
	
	//--------------------------------------------------------------------
	
	this.hasArtikel = function(id){
		for(i in this.artikel){
			if(this.artikel[i].id == id){
				return true;
			}
		}
	return false;
	}
	
	//--------------------------------------------------------------------
	
	this.getSum = function(){
		return this.sum;
	}
	
	//--------------------------------------------------------------------
	
	this.isEmpty = function(){
		return this.artikel.length == 0;
	}
	
	//--------------------------------------------------------------------
	
	this.toString = function(){
		if(this.isEmpty()){
			return '';
		}
		behandlungsstr = '';
		summe = 0;
		
		str  = '<br/><br/>';
		str += '<table id="rechnung">';
		str += "	<tr>";
		str += '		<th style="text-align:left;">Löschen</th>';
		str += '		<th>Menge</th>';
		str += '		<th style="text-align:left;">/ Behandlung</th>';
		str += '		<th>Einzelpreis</th>';
		str += '		<th>Summe</th>';
		str += "	</tr>";
		
		str += '	<tr><td colspan="5"><hr/></td></tr>';
		
		for(i in this.artikel){
			artikel = this.artikel[i];
			str += "<tr>";
			str += '	<td><a href="javascript:warenkorb.delArtikel(' + artikel.id + ');">x</a></td>';
			str += '	<td align="right">' + artikel.menge + " x</td>";
			str += "	<td>" + this.behandlungen.getName(artikel.id) + "</td>";
			str += '	<td align="right">' + this.behandlungen.getPreis(artikel.id) + ",- €</td>";
			str += '	<td align="right">' + artikel.menge * this.behandlungen.getPreis(artikel.id) + ",- €</td>";
			str += "</tr>";
			
			behandlungsstr += artikel.menge + '#|#' + this.behandlungen.getPreis(artikel.id) + '#|#' + (artikel.menge * this.behandlungen.getPreis(artikel.id)) + '#|#' + this.behandlungen.getName(artikel.id) + '|#|';
			
			summe += artikel.menge * this.behandlungen.getPreis(artikel.id);
		}
		
		str += '	<tr><td colspan="5"><hr/></td></tr>';
		
		str += "	<tr>";
		str += "		<td></td>";
		str += "		<td></td>";
		str += "		<td></td>";
		str += '		<td align="right"><b>Summe</b></td>';
		str += '		<td align="right">' + summe + ',- €</td>';
		str += "	</tr>";
		
		behandlungsstr += summe;
		this.sum = summe;
		
		str += "</table>";
		
		this.behandlungscontainer.value = behandlungsstr;
		
	return str;
	}
}
//EOC

//FUNKTIONEN++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function useBetrag(form){
	form.betrag.disabled = false;
	
	form.menge.disabled = true;
	form.behandlung.disabled = true;
	form.addiere.disabled = true;
	
	warenkorb.clearWarenkorb();
}

function useBehandlungen(form){
	form.menge.disabled = false;
	form.behandlung.disabled = false;
	form.addiere.disabled = false;
	
	form.betrag.disabled = true;
	
	form.betrag.value = '';
}
