var R3Form = {

	Implements: [Options, Events],
	options: {
			'containerId'		: 'right-column-form',  // ID des Containers, der die einzelnen Formularseiten enthält
			'generalSlide'		: 'slide',				// Klasse aller Formularseiten
			'activeSlide'		: 'slide-active',		// Klasse der aktuell sichtbaren Formularseite
			'insertContainer0'	: 'ltdContainer',
			'insertContainer1'	: 'gsGfContainer',		// ID des Elements, in das die GS und GF eingefügt werden.
			'insertContainer2'	: 'optionsContainer',	// ID des Elements, in das die Optionen eingefügt werden
			'insertContainer3'	: 'anschriftenContainer',
			'maxPersonCount'	: 6,
			'whichForm'			: 'ltd' 
	},
	
	initialize: function(options){
		
		this.options = $merge(this.options, options);
		return this;
	},
	
	datacontainer: null,
	productcontainer: null,
	gsgfCounter: 1,
	changing: false,
	changeId: null,
	lastSlide: null,
	agIsOpen: false,
	bsIsOpen: false,
	vaIsOpen: false,
	countGS: 0,
	countGF: 0, // wird nur im KG-Forumlar verwendet
	countGFnat: 0,
	countAll: 0,
	countAG: 0,
	rabatt: 0,
	gesamtpreis: 0,
	preis200002:0,
	firma: false,
	gfCb: false,
	fc_gsgf: null,
	fc_prokura: null,
	newEntry: false,
	slideBeforeNew: null,
	isNg: false,
	isGFset: false, // wird nur im UG-Formular verwendet
	validCode: false, // Ltd Gutschein-Aktion
	anteilrest: 0,
	exit: false,
	
	navigateTo: function(destination) {
		
		// Sobald Kosten-Seite aufgerufen wird, Produkte listen
		if(this.options.whichForm !== 'ltdpremium') {
			$$('.produktuebersicht tr').hide();
			this.listProducts('ln');
			this.listProducts('opt');
			this.gesamtpreis = 0 - this.rabatt.toInt();
		}
		
		if(this.options.whichForm === 'kg') {
			this.listProducts('opt');
			this.calcKGPrice();
			this.gesamtpreis = 0 - this.rabatt.toInt();
		}
		
		if(destination === 'slide_verteilung' && $('gewinnverteilung_gesetzlich').getParent().hasClass('selected')) {
			this.calcAndSetVerteilung();
		}
		
		// if(destination === 'slide_verteilung') {
		// 	this.calcAndSetVerteilung();
		// }
		
		$$('.jsNormal').show();
		var activeSlideString 	= '#' + this.options.containerId + ' div.' + this.options.activeSlide;
		var container			= $(this.options.containerId);
		var active 				= $$(activeSlideString);
		var next 				= $(destination);
		
		this.lastSlide = active[0].get('id');
		
		if(this.changing === false) {
			this.changing = '';
		}
		
		if(this.changing === true) {
			$$('.jsChange').show();
			$$('.jsNormal').hide();
		}
		else {
			$$('.jsChange').hide();
		}
		
		
		// Slide tauschen
		next.addClass(this.options.activeSlide).fade(1);
		if (active[0].get('id') != destination) {
			active.removeClass(this.options.activeSlide).fade(0);
		}
		
		// Container-Höhe anpassen (wg. absoluter Pos. der Slides)
		var heightAct = next.getStyle('height').toInt();
		$('bottom-row').tween('height', heightAct + 65);
		
	},
	
	
	// STORE DATA
	// 1. Die input-IDs der übergebenen Slide auslesen und in Array speichern
	// 2. Die Werte der Input-Felder in ein Array speichern
	// 3. Beide Arrays zu Schlüssel/Wert-Object verbinden und in Datacontainer speichern
	storeData: function(slide, changeId, updatePrice){
		
		var textareas	= $(slide).getElements('textarea');
		var textareaIDs = textareas.getProperty('id');
		var inputs		= $(slide).getElements('input');
		
		// Gutscheinaktion
		if(this.options.whichForm === 'ltd'){
			if(!this.validCode) {
				inputs = inputs.erase($('gutscheincode'));
			}
		}
		
		var inputIDs 	= inputs.getProperty('id');
		var selects		= $$('#'+slide +' .selectfield');
		selects			= selects.combine($$('#'+slide +' select'));
		var selectIDs 	= selects.getProperty('id');
		var inputSelects= inputIDs.combine(selectIDs);
		var names 		= inputSelects.combine(textareaIDs);
		var values		= new Array();
		var keys		= new Array();
		var id;
		
		if(changeId === undefined){
			id = this.gsgfCounter;
		} else {
			var splitted = changeId.split('#');
			id = splitted[1];
		}
		
		// Schlüssel-Array befüllen
		// Da mehrere GS/GF hinzugefügt werden können, wird an jeden Schlüssel die aktuelle ID angehängt.
		if (slide === 'slide_gsgf') {
			var name;
			names.each(function(item){
				name = item + '#' + id;
				keys.extend([name]);
			});	
		}
		else {
			keys = names;
		}
		
		if (slide === 'slide_gsgf' && this.options.whichForm !== 'kg') {
			if($('gsgf_gleich').getParent().hasClass('checked')) {
				$('gsgf_isGF').set('value', true);
			} else {
				$('gsgf_isGF').set('value', false);
			}
		}
		
		
		// Produkt mehrfach mitschicken
		if(this.options.whichForm === 'ltd') {
			if (slide === 'slide_optionen')
			{
				if($('opt_zusatz_number').value > 0){
					$('opt_zusatz_number').getParent().get('id');
				}
			}
		}
		
		
		// Werte-Array befüllen
		names.each(function(item){
			var input = $(item);
			if(input.getProperty('type') === 'text') {
				input.value = input.value.replace(/"([^"]*)"/g, "'$1'" );
				values.extend([input.value]);
			}
			else if(input.getProperty('type') === 'checkbox') {
				if(input.getParent().hasClass('checked')){
					values.extend(['checked']);
				}
				else {
					values.extend(['unchecked']);
				}
			}
			else if(input.getProperty('type') === 'radio') {
				if(input.getParent().hasClass('selected') && !input.get('disabled')){
					values.extend(['selected']);
				}
				else {
					values.extend(['unselected']);
				}
			}
			else if (input.getProperty('type') === 'textarea') {
				input.value = input.value.replace(/"([^"]*)"/g, "'$1'" );
				values.extend([input.value]);
			}
			else if(input.hasClass('selectfield')) {
				var selected = input.get('title');
				values.extend([selected]);
			}
			else if(input.getProperty('type') === 'select-one'){
				values.extend([input.getSelected()[0].value]);
			}
			else if(input.getProperty('type') === 'hidden'){
				values.extend([input.value]);
			}
		});
		
		
		
		
		// checken, ob schlüssel schon vorhanden. dann updaten, ansonsten neues schlüssel/wert-paar mergen.
		// (wird alles von der $merge-Funktion erledigt)
		if(updatePrice === undefined) {
			this.datacontainer =  $merge(this.datacontainer, values.associate(keys));
		}
		
		// wird für die Preisberechnung durch Klick auf Preis aktualisieren genutzt
		this.productcontainer =  $merge(this.productcontainer, values.associate(keys));

		
	},
	
	emptyInputs: function (slide) {
		var inputs		= $(slide).getElements('input');
		var inputIDs 	= inputs.getProperty('id');
		var selects		= $$('#'+slide +' .selectfield');
		selects			= selects.combine($$('#'+slide +' select'));
		var selectIDs 	= selects.getProperty('id');
		var names		= inputIDs.combine(selectIDs);
		// Input-Felder leeren, Checkboxes sowie Radio-Buttons resetten
		names.each(function(item){
			var input = $(item);
			if(input.getProperty('type') === 'text') {
				if(input.get('id') === 'gsgf_anteil' || input.get('id') === 'ng_gsgf_anteil') {
					input.set('value',0);
				} else {
					input.set('value' , '');					
				}
			}
			else if (input.getProperty('type') === 'checkbox') {
				if(input.getParent().hasClass('checked')) {
					input.getParent().removeClass('checked');
					input.getParent().addClass('unchecked');
				}
			}
			else if (input.getProperty('type') === 'radio') {
				if(input.getParent().hasClass('selected')) {
					input.getParent().removeClass('selected');
					input.getParent().addClass('unselected');
				}
			}
			// else if(input.hasClass('selectfield')) {
			// 	input.set('title','CHOOSE');  // input: <div id="gsgf_land1" class="button_center selectfield" title="B" style="width: 240px;">
			// 	var prefix = input.getPrevious().get('title');
			// 	var elemID = prefix+input.get('title');
			// 	var theText = $(elemID).get('text');
			// 	input.set('text',theText);
			// }
			else if(input.getProperty('type') === 'select-one') {
				input.set('value','CHOOSE');
			}
			else if(input.getProperty('type') === 'hidden') {
				input.set('value' , false);
			}
		});

	},
	
	// Befüllt alle Felder wieder mit den Daten aus dem JSON-Objekt, wenn ein ändern-Link geklickt wurde.
	refillData: function (slide, id) {
		var inputs		= $(slide).getElements('input');
		var inputIDs 	= inputs.getProperty('id');
		var selects		= $$('#'+slide +' .selectfield');
		selects			= selects.combine($$('#'+slide +' select'));
		var selectIDs 	= selects.getProperty('id');
		var names		= inputIDs.combine(selectIDs);
		var self 		= this;
		var splitted 	= id.split('#');
		var splitID;
		
		if(splitted.length > 1) {
			splitID = '#' + splitted[1];
		}
		else {
			splitID = '';
		}
		
		names.each(function(item){
			var input = $(item);
			if (input.getProperty('type') === 'text') {
				input.set('value', self.datacontainer[item + splitID]);
			}
			else if (input.getProperty('type') === 'checkbox') {
				if (self.datacontainer[item + splitID] === 'checked') {
					input.getParent().removeClass('unchecked');
					input.getParent().addClass('checked');
				}
			}
			else if (input.getProperty('type') === 'radio') {
				if (self.datacontainer[item + splitID] === 'selected') {
					input.getParent().removeClass('unselected');
					input.getParent().addClass('selected');
				}
			}
			// else if(input.hasClass('selectfield')) {
			// 	input.set('title',self.datacontainer[item+splitID]);
			// 	var prefix = input.getPrevious().get('title');
			// 	var elemID = prefix+input.get('title');
			// 	var theText = $(elemID).get('text');
			// 	input.set('text',theText);
			// }
			else if(input.getProperty('type') === 'select-one') {
				input.set('value',self.datacontainer[item+splitID]);
			}
			else if (input.getProperty('type') === 'hidden') {
				input.set('value', self.datacontainer[item + splitID]);
			}
		});
		
	},
	
	// Entferne GS oder GF aus datacontainer-object
	removeGSGF: function (id) {
		var regexp;
		var result = '';
		var self = this;
		var deleteIt = false;
		
		if(this.options.whichForm === 'kg') {
			$each(self.datacontainer, function(value, key){
				regexp = new RegExp("gsgf_ng_form_ug#"+id);
				result = key.match(regexp);
				if(result !== null) {
					if(value === 'selected') {
						deleteIt = true;
					}
				}
			});
			
			$each(self.datacontainer, function(value, key){
				regexp = new RegExp("gsgf_ng_form_limited#"+id);
				result = key.match(regexp);
				if(result !== null) {
					if(value === 'selected') {
						deleteIt = true;
					}
				}
			});
			
		}
		
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp(".+#"+id);
			result = key.match(regexp);
			delete self.datacontainer[result];
		});
		
		if(this.options.whichForm === 'kg' && $('gewinnverteilung_gesetzlich').getParent().hasClass('seleceted')) {
			this.calcAndSetVerteilung();
		}
		
		if(this.options.whichForm === 'kg' && deleteIt) {
			this.calcKGPrice(true);
		}
		
	},
	
	// Entferne Daten aus datacontainer-object
	removeAnschrift: function (suffix) {
		var regexp;
		var result = '';
		var self = this;
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp(".+_"+suffix);
			result = key.match(regexp);
			//delete self.datacontainer[result];
			if($(key) !== null) {
				if($(key).hasClass('selectfield')){
					self.datacontainer[result] = 'CHOOSE';
				} else {
					self.datacontainer[result] = '';
				}
			}
		});
	},
	
	removeProkurist: function(id) {
		
		var inputs 		= $('prokurist__p'+id).getElements('input'),
			selects 	= $('prokurist__p'+id).getElements('select'),
			allfields	= inputs.combine(selects),
			self		= this;
			
		allfields.each(function(item){
			if(self.fc_prokura.validations.contains(item)){
				self.fc_prokura.dispose(item);
			}
		});
		
		//aus DOM entfernen
		$('prokurist__p'+id).dispose();
		
		//aus Seitenleiste löschen, wenn er da schon vorhanden ist
		if($('prokurist_p'+id) !== null) {
			$('prokurist_p'+id).dispose();			
		}
		
		// aus datacontainer löschen
		var regexp;
		var result = '';
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp(".+__p"+id);
			result = key.match(regexp);
			delete self.datacontainer[result];
		});
		// console.dir(self.datacontainer);
	},
	
	setGS: function (status) {
		$('gsgf_isGS').set('value', status);
	},
	
	setGF: function (status) {
		$('gsgf_isGF').set('value', status);
	},

	setTreuhaender: function (status) {
		$('gsgf_isTreuhaender').set('value', status);
	},
	
	createLtdName: function () {
		
		var inputs;
		
		if(this.options.whichForm === 'kg'){
			inputs = $('slide_name').getElements('input');
		}
		else {
			inputs	= $('slide_ln').getElements('input');
		}
		var inputIDs 		= inputs.getProperty('id');
		var self = this;
		var elList			= new Element('ul',{'id': 'optionslist'});
		
		// Wert aus Inputfeld lesen und in das entsprechende Feld in der Seitenleiste einfügen
		inputIDs.each(function(item){
			var input = $(item);
			var value = $(item + '_value');
			// Name der Gesellschaft in Seitenleiste schreiben
			if (value !== null) {
				if(input.getProperty('type') === 'text') {
					if(self.options.whichForm === 'ltd'){
						value.set('html', input.get('value')+' Ltd.');
					} else {
						value.set('html', input.get('value'));
					}
				}	
			}
			
			// Checkboxes und Radios in der Seitenleiste anzeigen
			if (input.getParent().hasClass('checked')) {
				
				var text  = input.getParent().getParent().getNext().get('text');
				
				// Für Einträge mit Unterpunkten
				if(input.getParent().hasClass('oberpunkt')) {
					var title = input.getParent().get('title');
					$$('input[name='+title+']').each(function(item) {
						if(item.getParent().hasClass('selected')) {
							text += ' ' + item.getParent().get('text');
						}
					});
				}
				
				if (value === null) {
					var elLi = new Element('li', {'id': item + '_value', 'html': text});
					elList.grab(elLi);
				} else {
					$(item + '_value').set('html', text);
				}
			}

		});
		
		$$('input[name="ln_waehrung"]').each(function(item){
			if(item.getParent().hasClass('selected')) {
				if($('waehrung_value') === null) {
					var waehrung = new Element('li',{'id':'waehrung_value','html':'Gewünschte Währung: ' + item.getParent().get('text')});
					elList.grab(waehrung,'top');
				} else {
					$('waehrung_value').set('html','Gewünschte Währung: ' + item.getParent().get('text'));
				}
				
			}
		});
		
		if(this.options.whichForm === 'ltd') {
			$('productContainer').adopt(elList);
		}
		
		// Tabellenzelle mit ändern-Link hinzufügen
		if ($('change_ln') === null) {
			var insertElement	= $(this.options.insertContainer0);
			var elTdChange		= new Element('td',{'class':'handle hide'});
			var elA				= new Element('a',{'href':'#','html':'&nbsp','id':'change_ln','title':'Name und Pakete bearbeiten','class':'change'});
			elTdChange.adopt(elA);
			insertElement.adopt(elTdChange);
		}
	},
	
	
	// CREATE GSGF
	// fügt einen neuen Gesellschafter/Geschäftsführer in das dafür vorgesehene Div (insertContainer) in der Seitenleiste ein.
	createGSGF: function () {
		
		if(this.changing === '') {
			// Den Info-Absatz aus dem DOM entfernen, wenn es der erste Eintrag ist
			var info = $('gsgfEmpty');
			if(info !== null){
				info.dispose();
			}
			
			var gsgf_firma			= 'gsgf_firma'			+ '#' + this.gsgfCounter;
			var gsgf_strasse	 	= 'gsgf_strasse'	 	+ '#' + this.gsgfCounter;
			var gsgf_hausnr			= 'gsgf_hausnr'			+ '#' + this.gsgfCounter;
			var gsgf_vorname		= 'gsgf_vorname' 		+ '#' + this.gsgfCounter;
			var gsgf_nachname		= 'gsgf_nachname' 		+ '#' + this.gsgfCounter;
			var gsgf_plz			= 'gsgf_plz' 			+ '#' + this.gsgfCounter;
			var gsgf_ort			= 'gsgf_ort' 			+ '#' + this.gsgfCounter;
			var gsgf_anteil			= 'gsgf_anteil'			+ '#' + this.gsgfCounter;
			var titelGS				= 'Gesellschafter';
			var titelGF				= 'Geschäftsführer';
			var treuhaenderClass 	= 'normalerGs';
			var isTreuhaender		= false;
			
			if(this.options.whichForm === 'kg') {
				titelGF				= 'Komplementär';
				titelGS				= 'Kommanditist';
			}
		
			if(this.options.whichForm === 'ltd') {
				if ( this.datacontainer['treuhand_code#'+this.gsgfCounter] !== '' ) {
					treuhaenderClass = 'isttreuhaender';
					isTreuhaender		= true;
				}
			}
		
			// Wenn ein Gesellschafter/Geschäftsführer hinzugefügt werden soll, dann die Table erstellen und ins DOM einfügen
			var insertElement	= $(this.options.insertContainer1);
			var elTable 		= new Element('table', {'id': this.gsgfCounter, 'class':treuhaenderClass});
			var elTbody   		= new Element('tbody');
			var elTrFirma		= new Element('tr',{'id':'gsgf_firma#'+this.gsgfCounter+'_tr'});
			var elTrName 		= new Element('tr');
			var elTrStrasse		= new Element('tr');
			var elTrOrt			= new Element('tr');
			var elTdFirma		= new Element('td',{'id':'gsgf_firma#'+this.gsgfCounter+'_value','html': this.datacontainer[gsgf_firma]});
			var elTdEmpty		= new Element('td',{'html':'&nbsp'});
			var elTdName		= new Element('td');
			var elTdStrasse		= new Element('td', {'id': 'gsgf_strasseHausnr', 'html': '<span id="'+gsgf_strasse+'_value">'+this.datacontainer[gsgf_strasse]+'</span>'+' '+'<span id="'+gsgf_hausnr+'_value">'+this.datacontainer[gsgf_hausnr]+'</span>'});
			var elTdOrt			= new Element('td');
			var elTdChange		= new Element('td', {'class': 'handle'});
			var elTdDelete		= new Element('td', {'class': 'handle'});
			var elTdInfo		= new Element('td', {'class':'info','width':'80'});
			var elSpanVorname	= new Element('span', {'id': 'gsgf_vorname#' + this.gsgfCounter + '_value','html': this.datacontainer[gsgf_vorname] + ' '});
			var elSpanNachname	= new Element('span', {'id': 'gsgf_nachname#' + this.gsgfCounter + '_value','html':this.datacontainer[gsgf_nachname]});
			var elSpanPlz		= new Element('span', {'id': 'gsgf_plz#' + this.gsgfCounter + '_value','html': this.datacontainer[gsgf_plz] + ' '});
			var elSpanOrt		= new Element('span', {'id': 'gsgf_ort#' + this.gsgfCounter + '_value', 'html': this.datacontainer[gsgf_ort]});
			var elSpanGS		= new Element('span', {'id': 'gsgf_isGS#' + this.gsgfCounter + '_value','title':titelGS,'class':'isGS'});
			var elSpanGF		= new Element('span', {'id': 'gsgf_isGF#' + this.gsgfCounter + '_value','title':titelGF,'class':'isGF'});
			var elSpanAnteil	= new Element('span', {'id': 'gsgf_anteil#' + this.gsgfCounter + '_value','title':'Anteil','html':this.datacontainer[gsgf_anteil],'class':'infoAnteil'});
			var elSpanWaehrung	= new Element('span', {'id': 'gsgf_waehrung_value','title':'Anteil','html':this.getChosenCurrency(),'class':'infoWaehrung'});
			var elAChange		= new Element('a', {'href':'#','id':'change#' + this.gsgfCounter,'title':'Person bearbeiten','class':'hide change','html':'&nbsp'});
			var elADelete		= new Element('a', {'href':'#','id':'delete#' + this.gsgfCounter,'title':'Person löschen','class':'hide delete', 'html':'&nbsp'});
			
			elTrFirma.adopt(elTdFirma, elTdEmpty);
			elTdName.adopt(elSpanVorname,elSpanNachname);
			elTdChange.adopt(elAChange);
			elTrName.adopt(elTdName,elTdChange);
			elTdDelete.adopt(elADelete);
			elTrStrasse.adopt(elTdStrasse, elTdDelete);
			elTdOrt.adopt(elSpanPlz,elSpanOrt);
			
			if(this.options.whichForm !== 'kg') {
				if(this.datacontainer['gsgf_isGS#' + this.gsgfCounter] === 'false' || this.options.whichForm === 'ug') {
					elTdInfo.adopt(elSpanGS, elSpanGF);				
				}
				else {
					elTdInfo.adopt(elSpanAnteil, elSpanWaehrung,elSpanGS, elSpanGF);
				}
			} else {
				elTdInfo.adopt(elSpanAnteil, elSpanWaehrung,elSpanGS, elSpanGF);
			}
			
			elTrOrt.adopt(elTdOrt,elTdInfo);
			elTbody.adopt(elTrFirma,elTrName,elTrStrasse,elTrOrt);
			elTable.adopt(elTbody);
			insertElement.grab(elTable, "top");
			
			$('gsgf_firma#'+this.gsgfCounter+'_tr').hide();
			if(this.datacontainer['gsgf_firma#'+this.gsgfCounter] !== '') {
				$('gsgf_firma#'+this.gsgfCounter+'_tr').show();
			}
		
			// Status der Person erst alle verstecken....
			$('gsgf_isGS#' + this.gsgfCounter + '_value').hide();
			$('gsgf_isGF#' + this.gsgfCounter + '_value').hide();
		
			//...dann je nach Status anzeigen
			if (this.datacontainer['gsgf_isGS#' + this.gsgfCounter] === 'true') {
				$('gsgf_isGS#' + this.gsgfCounter + '_value').show();
			}
		
			if (this.datacontainer['gsgf_isGF#' + this.gsgfCounter] === 'true') {
				$('gsgf_isGF#' + this.gsgfCounter + '_value').show();
			}
		
			// GS/GF auch auf der Anschriften-Seite für die Auswahl einfügen
		
			var insertElem, contId, inputSelect, labelSelect, elLiSelect, elLiOrt, elLiStrasse, elLiName, elUlAdressee, elLiListe;
		
			if(!this.isNg) {
				if(!isTreuhaender) {
					
					for (var i = 1; i <= 3; i++) {
						if (i === 1) {
							insertElem 	= $('ag_select');
							contId 		= 'ag';
						} else if (i === 2) {
							insertElem 	= $('bs_select');
							contId 		= 'bs';
						} else if (i === 3) {
							insertElem 	= $('va_select');
							contId 		= 'va';
						}
		
						inputSelect		=	new Element('input',{'type':'radio', 'value': 'choose', 'id':contId + '#' + this.gsgfCounter, 'name':contId +'_status'});
						labelSelect		=	new Element('label',{'class':'listen_selector toggle shutToggleSection_'+contId});
						elLiSelect		=	new Element('li');
						elLiFirma		=	new Element('li',{'html': '<span id="anschriften_firma_'+contId+'_'+this.gsgfCounter+'" >'+this.datacontainer[gsgf_firma]+ '</span>'});
						elLiOrt			=	new Element('li',{'html': '<span id="anschriften_plz_'+contId+'_'+this.gsgfCounter+'" >'+ this.datacontainer[gsgf_plz] + '</span> <span id="anschriften_ort_'+contId+'_'+this.gsgfCounter+'" >'+this.datacontainer[gsgf_ort]+ '</span>'});
						elLiStrasse		=	new Element('li',{'html': '<span id="anschriften_strasse_'+contId+'_'+this.gsgfCounter+'" >'+this.datacontainer[gsgf_strasse]+ '</span>'+' '+'<span id="anschriften_hausnr_'+contId+'_'+this.gsgfCounter+'" >'+this.datacontainer[gsgf_hausnr]+ '</span>'});
						elLiName		=	new Element('li',{'html': '<span id="anschriften_vorname_'+contId+'_'+this.gsgfCounter+'" >'+this.datacontainer[gsgf_vorname] + '</span> <span id="anschriften_nachname_'+contId+'_'+this.gsgfCounter+'" >'+ this.datacontainer[gsgf_nachname]+ '</span>'});
						elUlAdresse		=	new Element('ul');
						elLiListe		=	new Element('li', {'class':'anschriften_liste','id': contId +'_gsgf#' + this.gsgfCounter});
		
						labelSelect.adopt(inputSelect);
						elLiSelect.adopt(labelSelect);
						if(this.datacontainer[gsgf_firma] !==''){
							elUlAdresse.adopt(elLiFirma,elLiName,elLiStrasse,elLiOrt,elLiSelect);
						} else {
							elUlAdresse.adopt(elLiName,elLiStrasse,elLiOrt,elLiSelect);
						}
					
						elLiListe.adopt(elUlAdresse);
						if(insertElem !== null){
							insertElem.grab(elLiListe, "top");
						}
						FancyForm.add(inputSelect);
			
						this.activateToggles('#slide_anschriften');
		
					}
				}
			}
			
			
			// wenn Neugründung bei KG ausgewählt wurde
			if(this.options.whichForm === 'kg' && this.isNg) {
				if(this.datacontainer['gsgf_ng_form_limited#'+this.gsgfCounter] === 'selected') {
					$('gsgf_strasse#'+this.gsgfCounter+'_value').set('html','<em>Neu zu gründende Limited</em>');
				}
				else if(this.datacontainer['gsgf_ng_form_ug#'+this.gsgfCounter] === 'selected') {
					$('gsgf_strasse#'+this.gsgfCounter+'_value').set('html','<em>Neu zu gründende Mini-GmbH</em>');
				}
				$('gsgf_vorname#'+this.gsgfCounter+'_value').set('html',this.datacontainer['gsgf_ng_form_name#'+this.gsgfCounter]);
			}
			
			// Gesellschafter auf der Gewinn-/Verlustverteilung einfügen
			if(this.options.whichForm === 'kg') {
				
				var insertGewinn	=	$('anzeige-gewinnregelung'),
					// insertVerlust	=	$('anzeige-verlustregelung'),
					elLiGewinn		=	new Element('li',{'id':'gewinnverteilung_'+this.gsgfCounter}),
					elLabelVert		=	new Element('label',{'html':$('gsgf_vorname#'+this.gsgfCounter+'_value').get('html')+' '+this.datacontainer[gsgf_nachname],'id':'label_verteilung_p'+this.gsgfCounter}),
					//elLiGewinn		=	new Element('li',{'id':'gewinnverteilung_'+this.gsgfCounter,'html':'<label>'+this.datacontainer[gsgf_vorname]+' '+this.datacontainer[gsgf_nachname]+'</label>'}),
					elInputGewinn	=	new Element('input',{'type':'text','id':'gv_gewinnanteil__p'+this.gsgfCounter,'class':'notInFocus','disabled':'disabled'}),
					// elLiVerlust		=	new Element('li',{'id':'verlustverteilung_'+this.gsgfCounter,'html':'<label>'+this.datacontainer[gsgf_vorname]+' '+this.datacontainer[gsgf_nachname]+'</label>'}),
					// elInputVerlust	=	new Element('input',{'type':'text','id':'verlustanteil_p'+this.gsgfCounter,'class':'notInFocus','disabled':'disabled'});
					elSpanProzent		=	new Element('span',{'html':'%','class':'prozentzeichen'}),
					elSpanFunktion		=	new Element('span'),
					elSpanFirma			=	new Element('span',{'class':'firmenname'});
					
					if(this.datacontainer['gsgf_isGF#'+this.gsgfCounter] === 'true'){
						elSpanFunktion.set('html',' (Komplementär)');
					} else {
						elSpanFunktion.set('html',' (Kommanditist)');
					}
					
					if(this.datacontainer[gsgf_firma] !== '') {
						elSpanFirma.set('html', this.datacontainer[gsgf_firma]+', ');
						elLabelVert.grab(elSpanFirma, 'top');
					}
					
					elLabelVert.grab(elSpanFunktion);
					elLiGewinn.grab(elLabelVert);
					elLiGewinn.grab(elInputGewinn);
					elLiGewinn.grab(elSpanProzent);
					insertGewinn.grab(elLiGewinn);
					// elLiVerlust.grab(elInputVerlust);
					// insertVerlust.grab(elLiVerlust);
			}
			
		
		
			if (this.datacontainer['gsgf_isGS#' + this.gsgfCounter] === 'true'){
				this.countGS++;
				this.countAll++;
				if (this.datacontainer['gsgf_isGF#' + this.gsgfCounter] === 'true' && this.datacontainer['gsgf_firma_cb#' + this.gsgfCounter] === 'unchecked') {
					this.countGFnat++;
				}
			}else if (this.datacontainer['gsgf_isGF#' + this.gsgfCounter] === 'true' ) {
				this.countAll++;
				if(this.options.whichForm === 'kg'){
					this.countGF++;
				}
				if (this.datacontainer['gsgf_firma_cb#' + this.gsgfCounter] === 'unchecked'){
					this.countGFnat++;
				}
			}
			
			this.gsgfCounter++;
		} // end if changing
		else {
			// Anschriften auf Anschriften-Seite aktualisieren
			var self = this;
			var split = this.changeId.split('#');
			if(this.options.whichForm === 'ug') {
				var contid = ['ag','va'];
			} else if(this.options.whichForm === 'kg'){
				var contid = ['ag'];
			} else {
				var contid = ['ag','bs','va'];
			}
			
			
			// nicht ausführen, wenn die Neugründung bearbeitet wird und
			// TODO: nur ausführen, wenn bereits ein vorhandener Gesellschafter als Anschrift ausgewählt wurde.
			if (this.datacontainer['gsgf_ng_form_limited#'+split[1]] !== 'selected' && this.datacontainer['gsgf_ng_form_ug#'+split[1]] !== 'selected') {
				contid.each(function(item) {
					if($(item+'#'+split[1]) !== null && $(item+'#'+split[1]).getParent().hasClass('selected')) {
						if (self.datacontainer['gsgf_firma#'+split[1]] !== '') {
							$('anschriften_firma_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_firma#'+split[1]]);
						}
						$('anschriften_vorname_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_vorname#'+split[1]]);
						$('anschriften_nachname_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_nachname#'+split[1]]);
						$('anschriften_strasse_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_strasse#'+split[1]]);
						$('anschriften_hausnr_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_hausnr#'+split[1]]);
						$('anschriften_plz_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_plz#'+split[1]]);
						$('anschriften_ort_'+item+'_'+split[1]).set('html',self.datacontainer['gsgf_ort#'+split[1]]);
					}
				});
			}
			
			
			
			// wenn Neugründung bei KG ausgewählt wurde

			if(this.options.whichForm === 'kg') {
				if(this.datacontainer['gsgf_ng_form_limited#'+split[1]] === 'selected') {
					$('gsgf_strasse#'+split[1]+'_value').set('html','<em>Neu zu gründende Limited</em>');
					$('label_verteilung_p'+split[1]).set('html',this.datacontainer['gsgf_ng_form_name#'+split[1]] + ' <span>(Komplementär)</span>');
					$('gsgf_vorname#'+split[1]+'_value').set('html',this.datacontainer['gsgf_ng_form_name#'+split[1]]);
				}
				else if(this.datacontainer['gsgf_ng_form_ug#'+split[1]] === 'selected') {
					$('gsgf_strasse#'+split[1]+'_value').set('html','<em>Neu zu gründende Mini-GmbH</em>');
					$('label_verteilung_p'+split[1]).set('html',this.datacontainer['gsgf_ng_form_name#'+split[1]] + ' <span>(Komplementär)</span>');
					$('gsgf_vorname#'+split[1]+'_value').set('html',this.datacontainer['gsgf_ng_form_name#'+split[1]]);
				}
				
			}
			
			// Firma aus Seitenleiste enfernen oder hinzufügen, wenn durch bearbeiten geändert
			if(this.options.whichForm !== 'kg') {
				if(self.datacontainer['gsgf_firma_cb#'+split[1]] === 'unchecked') {
					$('gsgf_firma#'+split[1]+'_tr').hide();
				}
				else {
					$('gsgf_firma#'+split[1]+'_tr').show();
				}
			}
			
		}
		
	},

	
	createProkurist: function() {
		
		var vornamen, nachnamen, prokuristen,headline;
		if($('label_prokura_ja').hasClass('selected')) {
			vornamen = $('prokuristen').getElements('input[id^=pr_vorname]');
			nachnamen = $('prokuristen').getElements('input[id^=pr_nachname]');
			prokuristen = new Element('table');
			if($('pr_headline') === null) {
				headline = new Element('tr',{'html':'<td><h4>Prokuristen</h4></td>','id':'pr_headline'});
				prokuristen.grab(headline);
			}
			
			vornamen.each(function(item,index){
				var id = item.get('id').split('__')[1];
				if($(item.get('id')+'_value') === null) {
					var elTr = new Element('tr', {'id':'prokurist_'+id,'html':'<td><span id="pr_vorname__'+id+'_value">'+item.value+'</span> <span id="pr_nachname__'+id+'_value">'+nachnamen[index].value+'</span></td>'});
					prokuristen.grab(elTr);
				} else {
					$(item.get('id')+'_value').set('html',item.value);
					nachnamen.each(function(item1){
						if($(item.get('id')+'_value') === null) {
							$(item1.get('id')+'_value').set('html',item1.value);
						}
					});
				}
				
			});
			
			
			
			$('prokuraContainer').grab(prokuristen);
		}
		
		var changeContainer = $('prokurist_change');
		if ($('prokurist_changeLink') === null) {
			var elAChange		= new Element('a', {'id':'prokurist_changeLink','title':'Prokuristen bearbeiten','class':'hide change','href': '#','html':'&nbsp'});
			changeContainer.grab(elAChange);
		}
	},
	
	createOptions: function () {
		
		var inputs			= $('slide_optionen').getElements('input[type=checkbox]');
		var inputIDs 		= inputs.getProperty('id');
		var insertElement	= $(this.options.insertContainer2);
		var elList			= new Element('ul',{'id': 'optionslist'});
		var text;
		
		inputIDs.each(function(item){
			var input = $(item);
			var value = $(item + '_value');
			if (item === 'opt_200002') {
				text  = $('opt_zusatz_number').value + input.getParent().getParent().getNext().get('text');
			} else {
				text  = input.getParent().getParent().getNext().get('text');
			}
			if (input.getParent().hasClass('checked')) {
				
				if (value === null) {
					var elLi = new Element('li', {'id': item + '_value', 'html': text});
					elList.grab(elLi);
				}	
			}
		});
		
		insertElement.grab(elList);
		
		var changeContainer = $('optionen_change');
		if ($('optionen_changeLink') === null) {
			var elAChange		= new Element('a', {'id':'optionen_changeLink','title':'Optionen bearbeiten','class':'hide change','href': '#','html':'&nbsp'});
			changeContainer.grab(elAChange);
		}
		
		
	},
	
	createVerteilung: function(){
		if($('gewinnverteilung_gesetzlich').getParent().hasClass('selected')) {
			$('regelung_value').set('html','gesetzliche Regelung');
		} else {
			$('regelung_value').set('html','individuelle Regelung');
		}
		
		// $('regelung_value').set('html','gesetzliche Regelung');

		
		var changeContainer = $('verteilung_change');
		if ($('verteilung_changeLink') === null) {
			var elAChange		= new Element('a', {'id':'verteilung_changeLink','title':'Verteilung bearbeiten','class':'hide change tooltip','href': '#','html':'&nbsp'});
			changeContainer.grab(elAChange);
		}
	},
	
	createAS: function () {
		
		var inputs			= $('slide_anschriften').getElements('input');
		var inputIDs 		= inputs.getProperty('id');
		var insertElement	= $(this.options.insertContainer3);
		var self			= this;
		
		inputIDs.each(function(item){
			var input 	= $(item);
			var headline;
			
			if (input.getProperty('type') === 'radio') {
				
				
				// dient der Radiobutton zur Auswahl eines vorhandenen GSGF und ist er ausgewählt?
				if(input.get('value') === 'choose' && input.getParent().hasClass('selected')) { 
					var splitted 		= input.get('id').split('#');
					var id				= splitted[1];
					
					if (splitted[0] === 'ag') {
						headline = 'Auftraggeber';
					}
					else if(splitted[0] === 'bs') {
						headline = 'Betriebsstätte';
					}
					else if(splitted[0] === 'va') {
						headline = 'Abweichende Versandanschrift';
					}
					
					if($('anschriften_side_' + splitted[0]) === null) {
					
						var elLiList		= new Element('li',{'id':'anschriften_side_' + splitted[0], 'class': 'anschriftSide'});
						var elheadline		= new Element('h5', {'html' : headline});
						var elUl			= new Element('ul',{'id':splitted[0] + '_value#' + id});
						var elLiStrasse		= new Element('li',{'id':'anschriften_strasseHausnr','html': '<span id="anschriften_strasse_'+splitted[0] + '_value">'+self.datacontainer['gsgf_strasse#' + id]+'</span> '+'<span id="anschriften_hausnr_'+splitted[0] + '_value">'+self.datacontainer['gsgf_hausnr#' + id]+'</span> '});
						var elSpanPlz		= new Element('span',{'id':'anschriften_plz_' + splitted[0] + '_value', 'html':self.datacontainer['gsgf_plz#' + id] + ' '});
						var elSpanOrt		= new Element('span',{'id':'anschriften_ort_' + splitted[0] + '_value', 'html': self.datacontainer['gsgf_ort#' + id]});
						var elLiOrt			= new Element('li');
						elLiOrt.adopt(elSpanPlz, elSpanOrt);
						elLiList.adopt(elheadline, elUl );
						insertElement.grab(elLiList);
						
						if(splitted[0] !== 'bs') {
							var elLiName		= new Element('li');
							var elSpanVorname	= new Element('span',{'id':'anschriften_vorname_' + splitted[0] + '_value', 'html':self.datacontainer['gsgf_vorname#' + id] + ' '});
							var elSpanNachname	= new Element('span',{'id':'anschriften_nachname_' + splitted[0] + '_value', 'html': self.datacontainer['gsgf_nachname#' + id]});
							elLiName.adopt(elSpanVorname, elSpanNachname);
							
							//////////////////////////////////////////////////////////////////////////
							if(splitted[0] === 'ag' && self.datacontainer['gsgf_firma#' + id] !== ''){
								var elLiFirma		= new Element('li',{'id':'anschriften_firma_ag_value','html': self.datacontainer['gsgf_firma#' + id]});
								elUl.adopt(elLiFirma, elLiName, elLiStrasse, elLiOrt);
							} else {
								elUl.adopt(elLiName, elLiStrasse, elLiOrt);
							}
							///////////////////////////////////////////////////
							
							//elUl.adopt(elLiName, elLiStrasse, elLiOrt);
						} else {
							var elLiName		= new Element('li');
							var elSpanVorname	= new Element('span',{'id':'anschriften_vorname_' + splitted[0] + '_value', 'html':self.datacontainer['anschriften_vorname_ag'] + ' '});
							var elSpanNachname	= new Element('span',{'id':'anschriften_nachname_' + splitted[0] + '_value', 'html': self.datacontainer['anschriften_nachname_ag']});
							var elLiFirma		= new Element('li',{'id':'anschriften_firma_' + splitted[0] + '_value','html': self.datacontainer['ln_name']+' Ltd.'});
							elLiName.adopt(elSpanVorname, elSpanNachname);
							elUl.adopt(elLiFirma,elLiName, elLiStrasse, elLiOrt);
						}
						
					}
					else { // Anschriften in Seitenleiste aktualisieren
						if($('anschriften_firma_ag_value') !== null) {
							$('anschriften_firma_ag_value').set('html',self.datacontainer['gsgf_firma#'+id]+' ');
						}
						$('anschriften_vorname_'+splitted[0]+'_value').set('html',self.datacontainer['gsgf_vorname#'+id]+' ');
						$('anschriften_nachname_'+splitted[0]+'_value').set('html',self.datacontainer['gsgf_nachname#'+id]);
						$('anschriften_strasse_'+splitted[0]+'_value').set('html',self.datacontainer['gsgf_strasse#' + id]);
						$('anschriften_hausnr_'+splitted[0]+'_value').set('html',self.datacontainer['gsgf_hausnr#' + id]);
						$('anschriften_plz_'+splitted[0]+'_value').set('html',self.datacontainer['gsgf_plz#' + id]+' ');
						$('anschriften_ort_'+splitted[0]+'_value').set('html',self.datacontainer['gsgf_ort#' + id]);
					}
					
					
					// Daten auch in den datacontainer speichern
					if(splitted[0] !== 'bs') {
						self.datacontainer['anschriften_firma_' + splitted[0]] 			= self.datacontainer['gsgf_firma#' + id];
					} else {
						self.datacontainer['anschriften_firma_' + splitted[0]] 			= self.datacontainer['ln_name'];
					}
					
					self.datacontainer['anschriften_anrede_1_' + splitted[0]] 		= self.datacontainer['gsgf_anrede_1#' + id];
					self.datacontainer['anschriften_anrede_2_' + splitted[0]] 		= self.datacontainer['gsgf_anrede_2#' + id];
					self.datacontainer['anschriften_titel_1_' + splitted[0]] 		= self.datacontainer['gsgf_titel_1#' + id];
					self.datacontainer['anschriften_titel_2_' + splitted[0]] 		= self.datacontainer['gsgf_titel_2#' + id];
					self.datacontainer['anschriften_vorname_' + splitted[0]] 		= self.datacontainer['gsgf_vorname#' + id];
					self.datacontainer['anschriften_nachname_' + splitted[0]] 		= self.datacontainer['gsgf_nachname#' + id];
					self.datacontainer['anschriften_strasse_' + splitted[0]] 		= self.datacontainer['gsgf_strasse#' + id];
					self.datacontainer['anschriften_hausnr_' + splitted[0]] 		= self.datacontainer['gsgf_hausnr#' + id];
					self.datacontainer['anschriften_land1_' + splitted[0]] 			= self.datacontainer['gsgf_land1#' + id];
					self.datacontainer['anschriften_plz_' + splitted[0]] 			= self.datacontainer['gsgf_plz#' + id];
					self.datacontainer['anschriften_ort_' + splitted[0]] 			= self.datacontainer['gsgf_ort#' + id];
					self.datacontainer['anschriften_telefon_' + splitted[0]] 		= self.datacontainer['gsgf_telefon#' + id];
					self.datacontainer['anschriften_telefon2_' + splitted[0]] 		= self.datacontainer['gsgf_telefon2#' + id];
					self.datacontainer['anschriften_fax_' + splitted[0]] 			= self.datacontainer['gsgf_fax#' + id];
					self.datacontainer['anschriften_fax2_' + splitted[0]] 			= self.datacontainer['gsgf_fax2#' + id];
					self.datacontainer['anschriften_mobil_' + splitted[0]] 			= self.datacontainer['gsgf_mobil#' + id];
					self.datacontainer['anschriften_mobil2_' + splitted[0]] 		= self.datacontainer['gsgf_mobil2#' + id];
					self.datacontainer['anschriften_email_' + splitted[0]] 			= self.datacontainer['gsgf_email#' + id];
					
					
				}
				
				// Es wird eine neue Anschrift angelegt
				else if(input.get('value') === 'new' && input.getParent().hasClass('selected')){
					var splitted 		= input.get('id').split('#');
					var anschrift		= splitted[1];
					
					if (anschrift === 'ag') {headline = 'Auftraggeber';}
					else if(anschrift === 'bs') {headline = 'Betriebsstätte';}
					else if(anschrift === 'va') {headline = 'Abweichende Versandanschrift';}
					
					if($('anschriften_side_' + anschrift) === null) {
						
						var elLiList		= new Element('li',{'id':'anschriften_side_' + anschrift, 'class': 'anschriftSide'});
						var elheadline		= new Element('h5', {'id': 'anschriften_subheadline','html' : headline});
						var elUl			= new Element('ul',{'id':anschrift + '_value'});
						var elLiStrasse		= new Element('li',{'id':'anschriften_strasseHausnr','html': '<span id="anschriften_strasse_'+anschrift+'_value">'+self.datacontainer['anschriften_strasse_' + anschrift]+'</span> '+'<span id="anschriften_hausnr_'+anschrift+'_value">'+self.datacontainer['anschriften_hausnr_' + anschrift]+'</span> '});
						var elSpanPlz		= new Element('span',{'id':'anschriften_plz_' + anschrift + '_value', 'html':self.datacontainer['anschriften_plz_' + anschrift] + ' '});
						var elSpanOrt		= new Element('span',{'id':'anschriften_ort_' + anschrift + '_value', 'html': self.datacontainer['anschriften_ort_' + anschrift]});
						var elLiOrt			= new Element('li');
						
						elLiOrt.adopt(elSpanPlz, elSpanOrt);
					
						if(anschrift !== 'bs') {
							var elLiName		= new Element('li');
							var elSpanVorname	= new Element('span',{'id':'anschriften_vorname_' + anschrift + '_value', 'html':self.datacontainer['anschriften_vorname_' + anschrift] + ' '});
							var elSpanNachname	= new Element('span',{'id':'anschriften_nachname_' + anschrift + '_value', 'html': self.datacontainer['anschriften_nachname_' + anschrift]});
							elLiName.adopt(elSpanVorname, elSpanNachname);
							var elLiFirma		= new Element('li',{'id':'anschriften_firma_' + anschrift + '_value','html': ''});
							if(anschrift === 'ag' && self.datacontainer['anschriften_firma_ag'] !== ''){
								elLiFirma.set('html',self.datacontainer['anschriften_firma_ag']);
							} 
							elUl.adopt(elLiFirma, elLiName, elLiStrasse, elLiOrt);
						} else {
							var elLiName		= new Element('li');
							var elSpanVorname	= new Element('span',{'id':'anschriften_vorname_' + anschrift + '_value', 'html':self.datacontainer['anschriften_vorname_bs'] + ' '});
							var elSpanNachname	= new Element('span',{'id':'anschriften_nachname_' + anschrift + '_value', 'html': self.datacontainer['anschriften_nachname_bs']});
							if(self.datacontainer['anschriften_firma_bs'] !== ''){
								var elLiFirma		= new Element('li',{'id':'anschriften_firma_' + anschrift + '_value','html': self.datacontainer['anschriften_firma_bs']});
							} else {
								var elLiFirma		= new Element('li',{'id':'anschriften_firma_' + anschrift + '_value','html': self.datacontainer['ln_name']+' Ltd.'});
							}
							elLiName.adopt(elSpanVorname, elSpanNachname);
							elUl.adopt(elLiFirma, elLiName, elLiStrasse, elLiOrt);
						}
					
						elLiList.adopt(elheadline, elUl );
						insertElement.grab(elLiList);
					} else {
						if(anschrift !== 'bs') {
							if(anschrift === 'ag' && self.datacontainer['anschriften_firma_ag'] !== ''){
								if($('anschriften_firma_'+anschrift+'_value') === null) {
									//console.log(self.datacontainer['anschriften_firma_ag']);
								} else {
									$('anschriften_firma_'+anschrift+'_value').set('html',self.datacontainer['anschriften_firma_ag']);
								}
							}
							$('anschriften_vorname_'+anschrift+'_value').set('html',self.datacontainer['anschriften_vorname_'+anschrift]+' ');
							$('anschriften_nachname_'+anschrift+'_value').set('html',self.datacontainer['anschriften_nachname_'+anschrift]);
							$('anschriften_strasse_'+anschrift+'_value').set('html',self.datacontainer['anschriften_strasse_'+anschrift]);
							$('anschriften_hausnr_'+anschrift+'_value').set('html',self.datacontainer['anschriften_hausnr_'+anschrift]);
							$('anschriften_plz_'+anschrift+'_value').set('html',self.datacontainer['anschriften_plz_'+anschrift]+' ');
							$('anschriften_ort_'+anschrift+'_value').set('html',self.datacontainer['anschriften_ort_'+anschrift]);
						}
						else {
							if(self.datacontainer['anschriften_firma_bs'] !== ''){
								$('anschriften_firma_'+anschrift+'_value').set('html',self.datacontainer['anschriften_firma_bs']);
							} else {
								$('anschriften_firma_'+anschrift+'_value').set('html',self.datacontainer['ln_name']+' Ltd.');
							}
							$('anschriften_vorname_'+anschrift+'_value').set('html',self.datacontainer['anschriften_vorname_'+anschrift+' ']);
							$('anschriften_nachname_'+anschrift+'_value').set('html',self.datacontainer['anschriften_nachname_'+anschrift]);
							$('anschriften_strasse_'+anschrift+'_value').set('html',self.datacontainer['anschriften_strasse_'+anschrift]);
							$('anschriften_hausnr_'+anschrift+'_value').set('html',self.datacontainer['anschriften_hausnr_'+anschrift]);
							$('anschriften_plz_'+anschrift+'_value').set('html',self.datacontainer['anschriften_plz_'+anschrift]+' ');
							$('anschriften_ort_'+anschrift+'_value').set('html',self.datacontainer['anschriften_ort_'+anschrift]);
						}
					}
				}
			}
			
			
		}); // end each
		
		var changeContainer = $('anschriften_change');
		if ($('anschriften_changeLink') === null) {
			var elAChange		= new Element('a', {'id':'anschriften_changeLink','title':'Anschriften bearbeiten','class':'hide change tooltip','href': '#','html':'&nbsp'});
			changeContainer.grab(elAChange);
		}
		
		self.countAG++;
		
	},
	
	// Prüfen, ob Treuhand-Code während dieser Bestellung schon eingelöst wurde
	isCodeUsed: function(code) {
		var regexp,
			result 			= '',
			self 			= this,
			isUsed			= false;
			
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp("treuhand_code#.+");
			result = key.match(regexp);
			if(result !== null) {
				if(code === value) {
					isUsed = true;
				}
			}
		});
		
		return isUsed;
	},
	
	// Berechnung der gesetzlichen Verteilung
	calcAndSetVerteilung: function(){
		var regexp,
			result 			= '',
			self 			= this,
			gesamteinlagen	= 0,
			counter			= 0,
			id				= '',
			einlagen		= new Array(),
			anteile			= new Array(),
			ids				= new Array();
		
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp("gsgf_anteil#.+");
			result = key.match(regexp);
			if(result !== null) {
				id = result.toString().split('#')[1];
				ids.include(id);
				value = value.toInt();
				einlagen.push(value);
			}
		});
		
		einlagen.each(function(item){
			gesamteinlagen = gesamteinlagen + item;
		});
		
		
		einlagen.each(function(item){
			anteile.push(((item/gesamteinlagen)*100).round(2));
		});
		
		var verteilung = anteile.associate(ids);
		
		ids.each(function(item){
			$('gv_gewinnanteil__p'+item).set('value',verteilung[item]);
			//$('verlustanteil_p'+item).set('value',verteilung[item]);
		});
		
	},
	
	checkVerteilung: function(){
		var anteile = $('anzeige-gewinnregelung').getElements('input'),
			sum		= 0;
			
		anteile.each(function(item){
			sum = sum + item.value.toFloat();
		});
		
		if(sum === 100) {
			$('einlagensumme').hide();
			return true;
		} else {
			$('einlagensumme').show();
			return false;
		}
	},
	
	// Dient dazu, die per JS ins DOM eingefügten Links (ändern, löschen) mit den entsprechenden Click-Events zu versehen.
	updateLinks: function (stepID, dest) {
		var self = this;
		var id;
		var changes = $$('#' +stepID + ' .change');
		
		changes.each(function(item){
			item.removeEvents();
			item.addEvent('click', function(e) {
				e.stop();
				
				// Gesamtpreis zurücksetzen und Einträge verstecken
				self.gesamtpreis = 0;
				$$('.produktuebersicht tr').hide();
				
				id = this.get('id');
				self.changeId = id;
				self.changing = true;
				
				self.refillData(dest, id);
				
				// Hinweis für Währungsänderung einblenden
				if(self.options.whichForm === 'ltd') {
					if($('waehrungAendern') !== null) {
						$('waehrungAendern').show();
					}
					
				}
				
				
				//Buttons mit Klasse hide sowie linkNeuerEintrag verstecken
				$$('.hide').fade('out');
				
				if(self.options.whichForm !== 'ltdpremium') {
					$('linkNeuerEintrag').fade('out');
				}

				// Slide und Bereich in Seitenleiste hervorheben;
				$(dest).addClass('changeMe');
				$(stepID).addClass('changeMe');
				
				// Alle anderen Steps ausgrauen
				var steps = $$('[id$=Step]'); // alle Elemente auswählen, deren id auf Step endet
				steps.each(function(item){
					if(!item.hasClass('changeMe')) {
						if(!item.hasChild('cover'+item.get('id'))){
							var changeCover = new Element('div',{'class': 'changeCover','id':'cover'+item.get('id')});
							item.grab(changeCover);
						}
					}
				});
			
				// Eventuell vorhandene Personenzahl-Warnung ausblenden
				if($('personCountWarning') !== null) {
					$('personCountWarning').dispose();
				}
			
				// Checken, ob zu ändernde Person NUR GF ist. Wenn ja, gs_only Elemente ausblenden
				var splitted = id.split('#');
				if (self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true' && self.datacontainer['gsgf_isGS#' + splitted[1]] === 'false') {
					$$('.gs_only').hide();
				}

				// Checken, ob zu ändernde Person Treuhänder ist. Wenn ja, normale GS-Felder ausblenden
				if(self.options.whichForm === "ltd") {
					if (self.datacontainer['gsgf_isTreuhaender#' + splitted[1]] === 'true') {
						$$('.gsgf_wrapper').hide();
					}
				}
				
				if(self.options.whichForm === "ug") {
					if (self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true') {
						// $$('.gf_only').show();
						// self.isGFset = false;
						if(self.fc_gsgf.validations.contains($('gsgf_anteil'))){
							self.fc_gsgf.dispose($('gsgf_anteil'));
						}
						if (self.datacontainer['gsgf_isGS#' + splitted[1]] === 'true') {
							$('gsgf_gleich').getParent().show();
						}
						
					}
				}
				
				if(self.options.whichForm !== 'kg') {
					// Checken, ob zu ändernde Person Firma eingetragen hat, wenn ja gsgf_firma_wrapper anzeigen
					if(self.datacontainer['gsgf_firma_cb#'+splitted[1]] === 'checked') {
						$('gsgf_firma_wrapper').show();
						self.fc_gsgf.register($('gsgf_firma'));
						$('gsgf_gleich').getParent().hide();
					}
					
					if($('gs-typ') !== null) {
						if (self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true') {
							$('gs-typ').set('html','Geschäftsführers');
						} else {
							$('gs-typ').set('html','Gesellschafters');
						}
					}

					// Checken, ob zu ändernde Person GF ist, wenn ja Firma-Status speichern
					if (self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true' || self.datacontainer['gsgf_isGS#' + splitted[1]] === 'true') {
						self.firma = $('gsgf_firma_cb').getParent().hasClass('checked');
						self.gfCb	= $('gsgf_gleich').getParent().hasClass('checked');
					}
				} else { // wenn's um die KG geht

					// natürliche Personen
					if ((self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true' && self.datacontainer['gsgf_firma#' + splitted[1]] === '') || (self.datacontainer['gsgf_isGS#' + splitted[1]] === 'true' && self.datacontainer['gsgf_firma#' + splitted[1]] === '')) {
						self.deactivateFields($$('.komp-jur'));
						self.deactivateFields($$('.komp-ng'));
					}
					else if(self.datacontainer['gsgf_isGS#' + splitted[1]] === 'true' && self.datacontainer['gsgf_firma#' + splitted[1]] !== '') {
						self.deactivateFields($$('.komp-jur'));
						self.deactivateFields($$('.komp-ng'));
						self.activateFields($$('.komma-jur'));
					}
					else if(self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true' && self.datacontainer['gsgf_firma#' + splitted[1]] !== '') {
						self.deactivateFields($$('.komp-ng'));
						self.activateFields($$('.komp-jur'));
					}
					if (self.datacontainer['gsgf_isGF#' + splitted[1]] === 'true' && (self.datacontainer['gsgf_ng_form_limited#' + splitted[1]] === 'selected' || self.datacontainer['gsgf_ng_form_ug#' + splitted[1]] === 'selected')) {
						self.deactivateFields($$('.komp-jur'));
						$('gsgf_table').getElements('input').setProperty('disabled',true);
						$('gsgf_table').getElements('select').setProperty('disabled',true);
						$('gsgf_table').hide();
						self.activateFields($$('.komp-ng'));
					}
				}
			
				// Alle evtl. vorhandenen Valierungsbubbles entfernen
				$$('.fc-tbx').dispose();
				self.navigateTo(dest);
			});
			
		});

		$$('#' + stepID + ' .delete').each(function(item){
			item.removeEvents();
			item.addEvent('click', function(e) {
				e.stop();
				id = this.get('id');
				// Alle evtl. vorhandenen Valierungsbubbles entfernen
				// $$('.fc-tbx').dispose();
				self.deleteGSGF(id);
			});
		});
		
			
	},
	
	
	// löscht den entsprechenden GS/GF
	deleteGSGF: function (deleteId) {
		var splitted 	= deleteId.split('#');
		var idOnly		= splitted[1];
		var delGSGFSide	= $(idOnly);
		var delAG		= $('ag_gsgf#'+ idOnly);
		var delBS		= $('bs_gsgf#'+ idOnly);
		var delVA		= $('va_gsgf#'+ idOnly);
		var delAGSide	= $('ag_value#'+ idOnly);
		var delBSSide	= $('bs_value#'+ idOnly);
		var delVASide	= $('va_value#'+ idOnly);
		$('linkNeuerEintrag').fade('in');
		
		// Entsprechende Anschriften aus Seitenleiste und Datacontainer löschen
		if (delAGSide !== null) {
			this.countAG--;
			delAGSide.getParent().dispose();
			this.removeAnschrift('ag');
			this.datacontainer['anschrift#ag'] = 'unselected';
		}
		
		if (delBSSide !== null) {
			delBSSide.getParent().dispose();
			this.removeAnschrift('bs');
			this.datacontainer['anschrift#bs'] = 'unselected';
		}
		
		if (delVASide !== null) {
			delVASide.getParent().dispose();
			this.removeAnschrift('va');
			this.datacontainer['anschrift#va'] = 'unselected';
		}
		
		
		// Gesellschafter aus Seitenleiste löschen
		if(delGSGFSide !== null) {delGSGFSide.dispose();}
		
		// Gesellschafter aus Verteilungsslide löschen
		if(this.options.whichForm === 'kg') {
			$('gewinnverteilung_'+idOnly).dispose();
			if (this.datacontainer['gsgf_isGF#' + idOnly] === 'true') {
				this.isGFset = false;
				$$('.gf_only').show();
			}
			//$('verlustverteilung_'+idOnly).dispose();
		}
		
		
		// Entsprechende Anschriften aus Anschriften-Slide löschen
		if(delAG !== null) {delAG.dispose();}
		if(delBS !== null) {delBS.dispose();}
		if(delVA !== null) {delVA.dispose();}

		// Entsprechende Counter ändern
		if (this.datacontainer['gsgf_isGS#' + idOnly] === 'true'){
			this.countGS--;
			this.countAll--;
			if (this.datacontainer['gsgf_isGF#' + idOnly] === 'true' && this.datacontainer['gsgf_firma_cb#' + idOnly] === 'unchecked') {
				this.countGFnat--;
			}
		}else if (this.datacontainer['gsgf_isGF#' + idOnly] === 'true' ) {
			this.countAll--;
			if (this.datacontainer['gsgf_firma_cb#' + idOnly] === 'unchecked'){
				this.countGFnat--;
			}
		}
		
		if(this.options.whichForm === 'ug') {
			if (this.datacontainer['gsgf_isGF#' + idOnly] === 'true') {
				this.isGFset = false;
				$$('.gf_only').show();
				$('gsgf_gleich').getParent().show();

			}
		}
		
		this.updateGSGFCounter();
		this.removeGSGF(idOnly);
		if(this.countAll < this.options.maxPersonCount-1) {
			$('slide_gsgf_more').show();
		}
	},
	
	updateView: function(stepID,changeId) {
		// Die Schlüssel/Werte-Paare werden ausgelesen
		// Alle Felder in der Navigation/Übersicht werden anhand der ID aktualisiert.
		
		$each(this.datacontainer, function(value, key){
			var stepElem = $(stepID),
				updateElem = stepElem.getElementById(key+'_value');
			
			if (updateElem !== null){
				
				if (value === 'checked') {
					if(key === 'opt_200002'){
						var text = $('opt_zusatz_number').value + $(key).getParent().getParent().getNext().get('text');
					} else {
						var text = $(key).getParent().getParent().getNext().get('text');
					}
					updateElem.set('html', text);
				}
				else if (value === 'unchecked') {
					updateElem.dispose();
				}
				else if (value === 'true') {
					updateElem.show();
				}
				else if (value === 'false') {
					updateElem.hide();
				}
				else {
					if(value !== '') {
						updateElem.set('html', value + ' ');
					}
				}
			}
		});
		
		if(this.options.whichForm !== 'ug' && this.options.whichForm !== 'kg') {
			if(stepID === 'fourthStep' && $('anschriften_cb_bs').getParent().hasClass('unchecked') && $('anschriften_side_bs') !== null ){
				$('anschriften_side_bs').dispose();
			}
		}
		
		if(this.options.whichForm !== 'kg') {
			if(stepID === 'fourthStep' && $('anschriften_cb_va').getParent().hasClass('unchecked') && $('anschriften_side_va') !== null) {
				$('anschriften_side_va').dispose();
			}
		}
		
		
	},
	
	updateGSGFCounter: function() {

		if(this.changing && this.options.whichForm !== 'kg'){
			var firma,gfCb;
			var split = this.changeId.split('#');
			if($('gsgf_firma_cb').getParent().hasClass('checked')){
				firma = true;
			} else {
				firma = false;
			}
			if($('gsgf_gleich').getParent().hasClass('checked')){
				gfCb = true;
			} else {
				gfCb = false;
			}
			
			
			if(this.firma === true && firma === false) {
				this.countGFnat++;
			}
			
			if(this.firma === false && firma === true) {
				this.countGFnat--;
			}
			
			if(this.gfCb === true && gfCb === false){
				this.countGFnat--;
			}
			
			if(this.gfCb === false && this.firma === false && gfCb === true){
				this.countGFnat++;
			}
			
			if(this.gfCb === true && this.firma === true && gfCb === false){
				this.countGFnat--;
			}
		} // end if changing
		
		var all = this.options.maxPersonCount - this.countAll;
		$('personCount').set('html',all);
		
		// if(this.options.whichForm === 'ltd') {
		// 	if (this.countAll > 0) {
		// 		$('opt_zusatz_number').value = this.countAll - 1;
		// 	}
		// }
		
		if(this.options.whichForm === 'kg') {
			if(this.countGF >= 1) {
				$('infoGF').hide();
			} else {
				$('infoGF').show();
			}
		} else {
			if(this.countGFnat >= 1) {
				$('infoGF').hide();
			} else {
				$('infoGF').show();
			}
		}
		
		if(this.countGS >= 1) {
			$('infoGS').hide();
		} else {
			$('infoGS').show();
		}


		this.firma = false;
		this.gfCb = false;

	},
	
	activateToggles: function(slide) {
		var self = this;
		var tw;
		
		if (slide === undefined) {
			tw = $$('.toggleWrapper');
		} else {
			tw = $$(slide +' .toggleWrapper');
		}
		
		tw.each(function(item){
				var slider = new Fx.Slide(item.getElement('.sectionToggle'));
	  			slider.hide();
				if(item.getElement('.toggle') !== null) {
		  			item.getElements('.toggle').addEvent('click', function(){ 
						
						///// Sonderfälle für das Anschriften-Slide //////////
						if(this.hasClass('shutToggleSection_ag')){
							slider.slideOut();
						}
					
						if(this.hasClass('shutToggleSection_bs')){
							slider.slideOut();
						}
					
						if(this.hasClass('shutToggleSection_va')){
							slider.slideOut();
						}
					
						if(this.hasClass('openToggleSection_ag')){
							slider.slideIn();
						}
					
						if(this.hasClass('openToggleSection_bs')){
							slider.slideIn();
						}
					
						if(this.hasClass('openToggleSection_va')){
							slider.slideIn();
						}
						
						// Sonderfall für Company Secretary
						if(this.hasClass('shutCS')) {
							slider.slideOut();
						}
					
						//////////////////////////////////////////////////
					
						slider.toggle();
					});
				} // ende if toggle
		});
	},
	
	// Übergebene Felder verstecken, disablen und aus Validationsarray entfernen
	deactivateFields: function (array) {
		var self = this;
		array.each(function(item){
			item.getElements('input').each(function(inputitem){
				inputitem.setProperty('disabled', true);
				if(inputitem.hasClass('jsValidate')) {
					self.fc_gsgf.dispose(item);
				}
			});
			item.hide();
		});
	},
	
	// Übergebene Felder anzeigen, enablen und ins Validationsarray schreiben
	activateFields: function (array) {
		var self = this;
		array.each(function(item){
			item.getElements('input').each(function(inputitem){
				inputitem.setProperty('disabled', false);
				if(inputitem.hasClass('jsValidate')) {
					self.fc_gsgf.register(item);
				}
			});
			item.style.display ='';
		});
	},
	
	listProducts: function(praefix) {
		var products, result, regexp, split, preisZusatz;
		var self = this;
		
		//$$('.produktuebersicht tr').hide();
		//console.log(self.gesamtpreis + ' in listProducts');
		
		if(this.options.whichForm === 'ltd') {
			if (praefix === 'opt') {
				preisZusatz = (this.preis200002.toFloat()) * ($('opt_zusatz_number').value);
				$('preis_200002').set('html',this.number_format(preisZusatz,2,","));
			}
		}
		
		$each(self.productcontainer, function(value, key){
			regexp = new RegExp(praefix+"_.+");
			result = key.match(regexp);
			if(result !== null) {
				split = result[0].split('_');
				if(self.productcontainer[result] === 'checked' || self.productcontainer[result] === 'selected') {
					if($('pl_'+split[1]) !== null) {
						$('pl_'+split[1]).show();
						self.gesamtpreis += $('preis_'+split[1]).get('html').replace(',','.').toFloat().round(2);
					}
				}
			}
		});
		$('gesamtpreis').set('html', this.number_format(self.gesamtpreis,2,","));
		
		if(this.options.whichForm !== 'kg') {
			$('gesamtpreis_sidebar').set('html', this.number_format(self.gesamtpreis,2,","));
		}
			
	},
	
	calcKGPrice: function(deleteflag) {
		var regexp;
		var result = '';
		var self = this;
		var noNg = true;
		
		//console.log(self.gesamtpreis + ' in calcKGPrice');
		
		self.gesamtpreis += $('preis_kommandit').get('html').replace(',','.').toFloat().round(2);
		
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp("gsgf_ng_form_ug.+");
			result = key.match(regexp);
			if(result !== null) {
				if(value === 'selected') {
					$('pl_ug').show();
					$('pl_limited').hide();
					self.gesamtpreis = $('preis_kommandit').get('html').replace(',','.').toFloat().round(2) + $('preis_ug').get('html').replace(',','.').toFloat().round(2);
					noNg = false;
				}
			}
		});
		
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp("gsgf_ng_form_limited.+");
			result = key.match(regexp);
			if(result !== null) {
				if(value === 'selected') {
					$('pl_limited').show();
					$('pl_ug').hide();
					self.gesamtpreis = $('preis_kommandit').get('html').replace(',','.').toFloat().round(2) + $('preis_limited').get('html').replace(',','.').toFloat().round(2);
					noNg = false;
				}
			}
		});
				

		if(noNg) {
			$('pl_ug').hide();
			$('pl_limited').hide();
		}
		
		
		if(deleteflag === true) {
			$('pl_ug').hide();
			$('pl_limited').hide();
		}
		
		$('pl_kommandit').show();
		
		$('gesamtpreis').set('html', this.number_format(this.gesamtpreis,2,","));
		$('gesamtpreis_sidebar').set('html', this.number_format(self.gesamtpreis,2,","));
	},
	
	checkPersonCount: function() {
		if(this.options.whichForm !== 'kg') {
			if(this.countGS >=1 && this.countGFnat >= 1 && this.countAG >=1) {
				return true;
			} else {
				return false;
			}
		} else {
			if(this.countGS >=1 && this.countGF >= 1 && this.countAG >=1) {
				return true;
			} else {
				return false;
			}
		}
		
	},
	
	getChosenCurrency: function() {
		
		var currencies = [this.datacontainer['waehrung_1'],this.datacontainer['waehrung_2'],this.datacontainer['waehrung_3']];
		var currency = 'EUR';
		currencies.each(function(item,index){
			if(item === 'selected') {
				if(index === 0){
					currency = 'EUR';
				}
				if (index === 1) {
					currency = 'GBP';
				}
				if (index === 2) {
					currency = 'USD';
				}
			}
		});
		return currency;
	},
	
	number_format: function (number, decimals, dec_point, thousands_sep)
	{
	  var exponent = "";
	  var numberstr = number.toString ();
	  var eindex = numberstr.indexOf ("e");
	  if (eindex > -1)
	  {
	    exponent = numberstr.substring (eindex);
	    number = parseFloat (numberstr.substring (0, eindex));
	  }

	  if (decimals != null)
	  {
	    var temp = Math.pow (10, decimals);
	    number = Math.round (number * temp) / temp;
	  }
	  var sign = number < 0 ? "-" : "";
	  var integer = (number > 0 ? 
	      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

	  var fractional = number.toString ().substring (integer.length + sign.length);
	  dec_point = dec_point != null ? dec_point : ".";
	  fractional = decimals != null && decimals > 0 || fractional.length > 1 ? 
	               (dec_point + fractional.substring (1)) : "";
	  if (decimals != null && decimals > 0)
	  {
	    for (i = fractional.length - 1, z = decimals; i < z; ++i)
	      fractional += "0";
	  }

	  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
	                  thousands_sep : null;
	  if (thousands_sep != null && thousands_sep != "")
	  {
		for (i = integer.length - 3; i > 0; i -= 3)
	      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
	  }

	  return sign + integer + fractional + exponent;
	},
	
	
	entwerteTreuhandCodes: function(callback) {
		var regexp,
			result 			= '',
			self 			= this,
			isOk			= false,
			codes			= [];
			
		// Checken, welche Codes im Datacontainer stehen und ins codes-Array schreiben
		$each(self.datacontainer, function(value, key){
			regexp = new RegExp("treuhand_code#.+");
			result = key.match(regexp);
			if(result !== null) {
				codes.push(value);
			}
		});
		
		// Codes-Array an Controller schicken
		if(codes.length > 0) {
			
			var sendform = new Request({
				url: jsBaseURL + "forms/entwerteTreuhandCode",
				data: {allecodes:JSON.encode(codes)},
				method: 'post',
				async: true,
				onSuccess: function(response){
					callback();
				}
			}).send();
			
		} else {
			callback();
		}
		
		
	},
	
	entwerteGutscheinCode: function(callback) {
		var self = this;
		if(self.validCode !== false) {
			// console.log(form.validCode);
			new Request({
				url: jsBaseURL + "bestellformular/limited/entwerteGutscheinCode",
				data: {code:self.validCode},
				method: 'post',
				onSuccess: function(resp){
					callback();
				}
			}).send();
		} else {
			callback();
		}
	},
	
	orderLtd: function()
	{
		var self = this;
		var sendform = new Request({
				url: jsBaseURL + "soapconnect/json2array",
				data: {formdata:JSON.encode(this.datacontainer)},
				method: 'post',
				async: true,
				onRequest: function(){
					// console.log(form.datacontainer);
					SqueezeBox.open($('sendingMessage'), {handler: 'adopt',closable: false,closeBtn: false});},
				onSuccess: function(response){
					switch (response)
					{
						case 'true':
							self.entwerteGutscheinCode(function(){
								self.entwerteTreuhandCodes(function(){
									SqueezeBox.close();
									window.location=jsBaseURL + "Vielen-Dank";
								});
							});

							//form.navigateTo('slide_success');
							break;
			
						case 'false':
						SqueezeBox.close();
							self.navigateTo('slide_error');
							//$('left-column-form').grab($('print'),'top');
							//highlightIt('print');
							break;
			
						default:
						SqueezeBox.close();
							self.navigateTo('slide_technicalerror');
							//$('left-column-form').grab($('print'),'top');
							//highlightIt('print');
					}
				}
			}).send();
	},
	
	
	
	orderLtdPremium: function()
	{
		var self = this;
		var sendform = new Request({
			url: jsBaseURL + "soapconnect/serviceltd",
			data: {formdata:JSON.encode(this.datacontainer)},
			method: 'post',
			async: true,
			onRequest: function(){SqueezeBox.open($('sendingMessage'), {handler: 'adopt',closable: false,closeBtn: false});},
			onSuccess: function(response){
				switch (response)
				{
					case 'true':
						self.entwerteGutscheinCode(function(){
							SqueezeBox.close();
							self.navigateTo('slide_success');
						});
						break;
						
					default:
						SqueezeBox.close();
						self.navigateTo('slide_error');
				}
			}
		}).send();
	},
	
	// die Summer aller Einlagen darf nicht größer als 24999 EUR sein
	checkAnteile: function()
	{
		var maxValue = 25000,
			sum = 0,
			status;
		
		// BEIM NEU ANLEGEN
		if(this.changing === '') {
			// alle bisher im datacontainer befindlichen anteile summieren..
			$each(this.datacontainer, function(value, key){
				regexp = new RegExp("gsgf_anteil");
				result = key.match(regexp);
				if(result !== null) {
					sum += value.toInt();
				}
			});
			
			if(maxValue - sum > 0){
				this.anteilrest = maxValue - sum - 1;
			}
			
			//...und den aktuellen Anteil addieren
			sum = sum + $('gsgf_anteil').value.toInt();
		}
		
		// BEIM ÄNDERN
		if(this.changing) {
			// alle bisher im datacontainer befindlichen anteile summieren,..
			$each(this.datacontainer, function(value, key){
				regexp = new RegExp("gsgf_anteil");
				result = key.match(regexp);
				if(result !== null) {
					sum += value.toInt();
				}
			});
			
			//...den Anteil des zu bearbeitenden GS subtrahieren...
			sum = sum - this.datacontainer['gsgf_anteil#'+this.changeId.split('#')[1]];
			
			if(maxValue - sum > 0){
				this.anteilrest = maxValue - sum - 1;
			}
			
			//...und den aktuell bearbeiteten Anteil addieren. 
			sum = sum + $('gsgf_anteil').value.toInt();
		}
		
		
		status = (maxValue - sum > 0) ? true : false;
		return status;
		
	}

};
