/**
 * @author schmidt
 */

var Overview = {
	container:null,
	groupChildrenCount:null,
	groupChildrenValueContainer:false,
	counter:null,
	
	printOut:function()
	{
		this.init();
		for(this.counter=0;this.counter<Form.elements.length;this.counter++) {
			var el = Form.elements[this.counter];
			
			
			if (this.groupChildrenCount > 0) this.groupChildrenCount--;
			else this.groupChildrenValueContainer = false;
			
			if (el.name == "Page" && el.getCheckable()) {
				if(el.title == TEXTS['Alles_auf_einen_Blick']) return;
				this.setTitle(el);
			} else if (el.name == "Group" && el.getCheckable()) {
				this.groupChildrenCount = el.getNumChildren();
				this.setGroupLabel(el);
			}
			else if (el.type == "FormElement" && el.getCheckable()) {
				if (!this.checkSpecialElement(el)) {
					switch (el.name) {
						case "TextInput": this.setTextInput(el); break;
						case "CurrencyInput": this.setTextInput(el); break;
						case "IntegerInput": this.setTextInput(el); break;
						case "FloatInput": this.setTextInput(el); break;
						case "PhoneInput": this.setTextInput(el); break;
						case "MultilineInput": this.setTextInput(el); break;
						case "TextSelect": this.setTextSelect(el); break;
						case "Checkbox": this.setCheckbox(el); break;
						case "Radio": this.setRadio(el); break;
					}
				}
			}
			else { continue; }
		}
	},
	
	checkSpecialElement:function(a_element) {
		var result = true;
		switch(a_element.id) {
			case "anrede": this.setAntragssteller(a_element); break;
			case "div_rate_1": this.setCreditResult(a_element); break;
			case "div_rate_2": this.setCreditResult(a_element); break;
			case "partner_anrede": this.setZweiterAntragssteller(a_element); break;
			//case "partner_nettolohn": this.setPartnerNettolohn(a_element); break;
			case "strasse_alt": this.setFruehereAdresse(a_element); break;
			case "fahrzeugtyp": this.setFahrzeugtyp(a_element); break;
			case "marke": this.setMarke(a_element); break;
			default: result = false; break;
		}
		return result;
	},
	
	setAntragssteller:function(a_element) {
		this.setRowLabel(TEXTS['Antragssteller']);
		var value = this.setRowValue("empty");
		value.innerHTML += Form.elements[this.counter++].formValue()+ " ";
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].value() + "<br />";
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].value() + "<br />";
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].value() + "<br />";
		value.innerHTML += Form.elements[this.counter++].formValue()+ " ";
		if (Form.elements[this.counter - 1].value() === 0) {
			this.counter++;
			value.innerHTML += "(" + Form.elements[this.counter++].formValue() + ")";
		}
		this.counter -= 1;
	},
	
	setCreditResult:function(a_element) {
		if ($('interest_1')) {
			var interests = "<br />" + $('interest_1').innerHTML + "<br />" + $('interest_2').innerHTML;
		} else {
			var interests = "<br />" + $('interest_2').innerHTML;
		}
		this.setRowLabel(TEXTS['Monatliche_Rate'] + interests);
		var value = this.setRowValue("empty");
		value.innerHTML += "<br />";
		if ($('interest_1')) { value.innerHTML += Form.elements[this.counter++].value() + "<br />"; }
		value.innerHTML += Form.elements[this.counter++].value();
		
		this.setRowLabel(TEXTS['davon_Ratenabsicherungsbetrag'] + interests);
		var value = this.setRowValue("empty");
		value.innerHTML += "<br />";
		if ($('interest_1')) { value.innerHTML += Form.elements[this.counter++].value() + "<br />"; }
		value.innerHTML += Form.elements[this.counter++].value();
		
		this.setRowLabel(TEXTS['Gesamtzinskosten'] + interests);
		var value = this.setRowValue("empty");
		value.innerHTML += "<br />";
		if ($('interest_1')) { value.innerHTML += Form.elements[this.counter++].value() + "<br />"; }
		value.innerHTML += Form.elements[this.counter++].value();
		
		this.counter -= 1;
	},
	
	setZweiterAntragssteller:function(a_element) {
		this.setRowLabel(TEXTS['2_Antragssteller']);
		var value = this.setRowValue("empty");
		value.innerHTML += Form.elements[this.counter++].formValue()+ " ";
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].value();
		this.counter -= 1;
	},
	
	setPartnerNettolohn:function(a_element) {
		this.setRowLabel(TEXTS['Monatliches_Einkommen_netto']);
		var value = this.setRowValue("empty");
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].formValue();
		this.counter -= 1;
	},
	
	setFruehereAdresse:function(a_element) {
		this.setRowLabel(TEXTS['Fruehere_Adresse']);
		var value = this.setRowValue("empty");
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].value() + "<br />";
		value.innerHTML += Form.elements[this.counter++].value()+ " ";
		value.innerHTML += Form.elements[this.counter++].value() + "<br />";
		value.innerHTML += Form.elements[this.counter++].formValue()+ " ";
		this.counter -= 1;
	},
	
	setFahrzeugtyp:function(a_element) {
		this.setRowLabel(a_element.getLabel());
		var value = this.setRowValue(a_element.textValue());
	},
	
	setMarke:function(a_element) {
		this.setRowLabel(a_element.getLabel());
		var value = this.setRowValue(a_element.textValue());
	},
	
	setTitle:function(a_element){
		var el = new Element("div");
		el.className = "overviewTitle";
		el.innerHTML = a_element.title;
		this.container.adopt(el);
	},
	
	setGroupLabel:function(a_element) {
		this.setRowLabel(a_element.getLabel());
		this.groupChildrenValueContainer = this.setRowValue("empty");
	},
	
	removeInfoImage:function(a_label) {
		if(a_label.toLowerCase().indexOf("<img") > -1) {
			a_label = a_label.substring(0,a_label.toLowerCase().indexOf("<img"));
		}
		return a_label;
	},
	
	setRowLabel:function(a_label) {
		var label = new Element("div");
		label.className = "overviewElementLabel";
		label.innerHTML = this.removeInfoImage(a_label);
		this.container.adopt(label);
	},
	
	setRowValue:function(a_value)
	{
		if(a_value == "") a_value = "-";
		else if(a_value == "empty") a_value = "";
		else a_value += "&nbsp;";
		
		if (this.groupChildrenValueContainer === false) {
			var value = new Element("div");
			value.className = "overviewElementValue";
			value.innerHTML = a_value;
			this.container.adopt(value);
			this.setBorder();
			return value;
		}
		else {
			this.groupChildrenValueContainer.innerHTML += a_value + "&nbsp;";
		}
	},
	
	setBorder:function() {
		var border = new Element("div");
		border.className = "overviewElementBorder";
		border.innerHTML = "&nbsp;";
		this.container.adopt(border);
	},
	
	setTextInput:function(a_element){
		this.setRowLabel(a_element.getLabel());
		this.setRowValue(a_element.value());
	},
	
	setTextSelect:function(a_element){
		if(this.groupChildrenValueContainer === false) {
			this.setRowLabel(a_element.getLabel());
			this.setRowValue(a_element.formValue());
		} else {
			this.setRowValue(a_element.formValue());
		}
	},
	
	setCheckbox:function(a_element){
		this.setRowLabel(a_element.getLabel());
		this.setRowValue(a_element.formValue());
	},
	
	setRadio:function(a_element){
		this.setRowLabel(a_element.getLabel());
		this.setRowValue(a_element.formValue());
	},
	
	init:function() {
		this.container = $('overview');
		this.container.innerHTML = "";
		this.counter = 0;
		this.groupChildrenCount = 0;
		this.groupChildrenValueContainer = false;
	}
	
}

