/* Author: Karl Schwaier (DMC 01)
 *
 * configuration and specific code for this calculator
 * needs calc.core.js!
 */

/*********************
 * CONFIGURATION
 * webservice urls, states (tabs), sliders
 *********************/	
// WEB SERVICES
var webServiceCalculate = "webservice.php";
var webServiceSubmit = "webservice.php";
var J = jQuery.noConflict();

// PARAMS
var anzErw = 1;
var anzKin = 0;
var zielgruppe = "0";

/*********************
 * FUNCTIONS
 * calculator specific for param checking and displaying of result
 *********************/
// PARAM CHECKING BEFORE SENDING TO WEBSERVICE
function checkParams(params, p) {
	var error = false;		
	var errorClass = "calcSliderError";
/*if (params["zielgruppe"] == '0') {
		calc.printError("Bitte w&auml;hlen Sie eine <strong>Zielgruppe</strong> aus!")
		error = true;
	}*/
	return error;
}


function onParamsSent(params, response, p) {
	var result = new Array();
	
	// first row
	result[0] = {
		td: calc.numberFormat(response.dummybetragneg, "money", true)
	}
	
	// second row
	result[1] = {
		td: calc.numberFormat(response.dummybetrag + 1000, "money", true)
	}
	
	// third row
	result[2] = {
		td: calc.numberFormat(response.dummybetrag - 1000, "money", true)
	}
	
	calc.writeResultTable(result);	
}

// DISPLAYING RESULTS AND CHART AFTER CALCULATING RESULT
function onParamsChanged(params) {

  //WORKAROUND: hide "PieChart Geldanlage" and "PieChart Wohnkosten" when user clicked on "Aktualisieren" 
  J("#doHaushaltsplanPieChartGA").hide();
	J("#doHaushaltsplanPieChartWK").hide();
	
	//if 'Aktualisieren' was hit the first time, show the charts:
	J("#doHaushaltsplanPieChart").show();
	J("#doHaushaltsplanBarChart").show();

	var result = new Array();
  var einnahmen;
  var ausgaben;

	var e_nettoeinkommen = 0;
  var e_nettoeinkommen_partner = 0;
  var e_beihilfen = 0;
  var e_sonstige = 0;
  var a_lebenshaltungskosten_erwachsene = 0;
  var a_lebenshaltungskosten_kinder = 0;
  var a_wohnkosten_betriebskosten = 0;
  var a_wohnkosten_miete = 0;
  var a_wohnkosten_strom = 0;
  var a_wohnkosten_telefon = 0;
  var a_zlebenshaltungskosten = 0;
  var a_mobilitaetskosten = 0;
  var a_finanzierungskosten = 0;
  var a_geldanlage_risikoabsicherung = 0;
  var a_geldanlage_altersvorsorge = 0;
  var a_geldanlage_vermoegensaufbau = 0;
  var a_sonstige = 0;

	if(typeof params["e_nettoeinkommen"] != 'undefined'){ e_nettoeinkommen = params["e_nettoeinkommen"]; }else{ params["e_nettoeinkommen"] = 0; }
  if(typeof params["e_nettoeinkommen_partner"] != 'undefined'){ e_nettoeinkommen_partner = params["e_nettoeinkommen_partner"]; }else{ params["e_nettoeinkommen_partner"] = 0; }
  if(typeof params["e_beihilfen"] != 'undefined'){ e_beihilfen = params["e_beihilfen"]; }else{ params["e_beihilfen"] = 0; }
  if(typeof params["e_sonstige"] != 'undefined'){ e_sonstige = params["e_sonstige"]; }else{ params["e_sonstige"] = 0; }
  if(typeof params["a_lebenshaltungskosten_erwachsene"] != 'undefined'){ a_lebenshaltungskosten_erwachsene = params["a_lebenshaltungskosten_erwachsene"]; }else{ params["a_lebenshaltungskosten_erwachsene"] = 0; }
  if(typeof params["a_lebenshaltungskosten_kinder"] != 'undefined'){ a_lebenshaltungskosten_kinder = params["a_lebenshaltungskosten_kinder"]; }else{ params["a_lebenshaltungskosten_kinder"] = 0; }
  if(typeof params["a_wohnkosten_betriebskosten"] != 'undefined'){ a_wohnkosten_betriebskosten = params["a_wohnkosten_betriebskosten"]; }else{ params["a_wohnkosten_betriebskosten"] = 0; }
  if(typeof params["a_wohnkosten_miete"] != 'undefined'){ a_wohnkosten_miete = params["a_wohnkosten_miete"]; }else{ params["e_nettoeinkommen_partner"] = 0; }
  if(typeof params["a_wohnkosten_strom"] != 'undefined'){ a_wohnkosten_strom = params["a_wohnkosten_strom"]; }else{ params["a_wohnkosten_strom"] = 0; }
  if(typeof params["a_wohnkosten_telefon"] != 'undefined'){ a_wohnkosten_telefon = params["a_wohnkosten_telefon"]; }else{ params["a_wohnkosten_telefon"] = 0; }
  if(typeof params["a_zlebenshaltungskosten"] != 'undefined'){ a_zlebenshaltungskosten = params["a_zlebenshaltungskosten"]; }else{ params["a_zlebenshaltungskosten"] = 0; }
  if(typeof params["a_mobilitaetskosten"] != 'undefined'){ a_mobilitaetskosten = params["a_mobilitaetskosten"]; }else{ params["a_mobilitaetskosten"] = 0; }
  if(typeof params["a_finanzierungskosten"] != 'undefined'){ a_finanzierungskosten = params["a_finanzierungskosten"]; }else{ params["a_finanzierungskosten"] = 0; }
  if(typeof params["a_geldanlage_risikoabsicherung"] != 'undefined'){ a_geldanlage_risikoabsicherung = params["a_geldanlage_risikoabsicherung"]; }else{ params["a_geldanlage_risikoabsicherung"] = 0; }
  if(typeof params["a_geldanlage_altersvorsorge"] != 'undefined'){ a_geldanlage_altersvorsorge = params["a_geldanlage_altersvorsorge"]; }else{ params["a_geldanlage_altersvorsorge"] = 0; }
  if(typeof params["a_geldanlage_vermoegensaufbau"] != 'undefined'){ a_geldanlage_vermoegensaufbau = params["a_geldanlage_vermoegensaufbau"]; }else{ params["a_geldanlage_vermoegensaufbau"] = 0; }
  if(typeof params["a_sonstige"] != 'undefined'){ a_sonstige = params["a_sonstige"]; }else{ params["a_sonstige"] = 0; }

  einnahmen = e_nettoeinkommen + e_nettoeinkommen_partner + e_beihilfen + e_sonstige;
  ausgaben = a_lebenshaltungskosten_erwachsene*370 + a_lebenshaltungskosten_kinder*200 +  a_wohnkosten_betriebskosten + a_wohnkosten_miete + a_wohnkosten_strom + a_wohnkosten_telefon + a_zlebenshaltungskosten + a_mobilitaetskosten + a_finanzierungskosten + a_geldanlage_risikoabsicherung + a_geldanlage_altersvorsorge + a_geldanlage_vermoegensaufbau + a_sonstige;
  var ausgabeKostenerw = a_lebenshaltungskosten_erwachsene*370;
  var ausgabeKostenkind = a_lebenshaltungskosten_erwachsene*370 + a_lebenshaltungskosten_kinder*200;
  params["einnahmen"] = einnahmen;
  params["ausgaben"] = ausgaben;
  
  var checkpressbutton = 1;
  if(document.getElementById('calcZ1').checked){
    checkpressbutton = 1;
  } else if(document.getElementById('calcZ2').checked){
    checkpressbutton = 2;
  } else if(document.getElementById('calcZ3').checked){
    checkpressbutton = 3;
  } else if(document.getElementById('calcZ4').checked){
    checkpressbutton = 4;
  } else if(document.getElementById('calcZ5').checked){
    checkpressbutton = 5;
  } else if(document.getElementById('calcZ6').checked){
    checkpressbutton = 6;
  } 
  // set the parameters for the chart, which will be appended to the img src
  // if site is reloaded, the String has to be cut before adding new parameters
  // draw pie chart
  if( document.getElementById('doHaushaltsplanPieChart').src.indexOf("&e_nettoeinkommen") != -1)
  {
    var ansparAnfang = document.getElementById('doHaushaltsplanPieChart').src.split("&e_nettoeinkommen");
    var drucklink = document.getElementById('drucklinkextseite').href.split("?e_nettoeinkommen");
    document.getElementById('doHaushaltsplanPieChart').src=ansparAnfang[0];
    document.getElementById('drucklinkextseite').href=drucklink[0];
  }
  document.getElementById('doHaushaltsplanPieChart').src += "&e_nettoeinkommen="+e_nettoeinkommen+"&e_nettoeinkommen_partner="+e_nettoeinkommen_partner+"&e_beihilfen="+e_beihilfen+"&e_sonstige="+e_sonstige+"&a_lebenshaltungskosten_erwachsene="+a_lebenshaltungskosten_erwachsene+"&a_lebenshaltungskosten_kinder="+a_lebenshaltungskosten_kinder+"&a_wohnkosten_betriebskosten="+a_wohnkosten_betriebskosten+"&a_wohnkosten_miete="+a_wohnkosten_miete+"&a_wohnkosten_strom="+a_wohnkosten_strom+"&a_wohnkosten_telefon="+a_wohnkosten_telefon+"&a_zlebenshaltungskosten="+a_zlebenshaltungskosten+"&a_mobilitaetskosten="+a_mobilitaetskosten+"&a_finanzierungskosten="+a_finanzierungskosten+"&a_geldanlage_risikoabsicherung="+a_geldanlage_risikoabsicherung+"&a_geldanlage_altersvorsorge="+a_geldanlage_altersvorsorge+"&a_geldanlage_vermoegensaufbau="+a_geldanlage_vermoegensaufbau+"&a_sonstige="+a_sonstige;
  document.getElementById('drucklinkextseite').href += "?e_nettoeinkommen="+e_nettoeinkommen+"&e_nettoeinkommen_partner="+e_nettoeinkommen_partner+"&e_beihilfen="+e_beihilfen+"&e_sonstige="+e_sonstige+"&a_lebenshaltungskosten_erwachsene="+a_lebenshaltungskosten_erwachsene+"&a_lebenshaltungskosten_kinder="+a_lebenshaltungskosten_kinder+"&a_wohnkosten_betriebskosten="+a_wohnkosten_betriebskosten+"&a_wohnkosten_miete="+a_wohnkosten_miete+"&a_wohnkosten_strom="+a_wohnkosten_strom+"&a_wohnkosten_telefon="+a_wohnkosten_telefon+"&a_zlebenshaltungskosten="+a_zlebenshaltungskosten+"&a_mobilitaetskosten="+a_mobilitaetskosten+"&a_finanzierungskosten="+a_finanzierungskosten+"&a_geldanlage_risikoabsicherung="+a_geldanlage_risikoabsicherung+"&a_geldanlage_altersvorsorge="+a_geldanlage_altersvorsorge+"&a_geldanlage_vermoegensaufbau="+a_geldanlage_vermoegensaufbau+"&a_sonstige="+a_sonstige+"&einnahmen="+einnahmen+"&ausgaben="+ausgaben+"&printdiveinaus="+calc.numberFormat(einnahmen - ausgaben, "money", true)+"&printeinnahmen="+calc.numberFormat(einnahmen, "money", true)+"&printausgaben="+calc.numberFormat(ausgaben, "money", true)+"&buttonselected="+checkpressbutton+"&ausgabeKostenerw="+ausgabeKostenerw+"&ausgabeKostenkind="+ausgabeKostenkind+"&printbanner="+document.getElementById("header2").style.backgroundImage;
  
  // draw bar chart
  if( document.getElementById('doHaushaltsplanBarChart').src.indexOf("&einnahmen") != -1)
  {
    var ansparAnfang = document.getElementById('doHaushaltsplanBarChart').src.split("&einnahmen");
    document.getElementById('doHaushaltsplanBarChart').src=ansparAnfang[0];
  }
  document.getElementById('doHaushaltsplanBarChart').src += "&einnahmen="+einnahmen+"&ausgaben="+ausgaben;

	// first row
	result[0] = {
		td: calc.numberFormat(einnahmen - ausgaben, "money", true)
	}
	
	// second row
	result[1] = {
		td: calc.numberFormat(einnahmen, "money", true)
	}
	
	// third row
	result[2] = {
		td: calc.numberFormat(ausgaben, "money", true)
	}
	
	calc.writeResultTable(result);	
}

function setImageMap(){
  var chartservlet_name = "haushaltsplan_pie_chart";
  var imagemapservlet_name = "haushaltsplan_pie_imagemap";
  // substitute chartservlet_name with imagemapservlet_name
  var servlet_name = J("#doHaushaltsplanPieChart").attr("src").split(chartservlet_name)[0] + imagemapservlet_name + J("#doHaushaltsplanPieChart").attr("src").split(chartservlet_name)[1];
  // calls the servlet for the image map
  J.get(servlet_name,
    {}, // no parameters here, becaue parameters are added directly to 'servlet_name'
    function(data){
      J("#imagemap").remove();
      J(".calcDiagram").append(data);
      // make imagemap visible for firefox
      J("#imagemap area").each(function(){
        J(this).attr("alt",J(this).attr("title"));
      });
      // add onclick listeners to the two sections
      J("#imagemap area[href~='#geldanlage']").click(function(){ showOtherPieChart(J(this).attr("href")); });
      J("#imagemap area[href~='#wohnkosten']").click(function(){ showOtherPieChart(J(this).attr("href")); });
  });
}

function setImageMapBarChart(){
  var chartservlet_name = "haushaltsplan_bar_chart";
  var imagemapservlet_name = "haushaltsplan_bar_imagemap";
  // substitute chartservlet_name with imagemapservlet_name
  var servlet_name = J("#doHaushaltsplanBarChart").attr("src").split(chartservlet_name)[0] + imagemapservlet_name + J("#doHaushaltsplanBarChart").attr("src").split(chartservlet_name)[1];
  // calls the servlet for the image map
  J.get(servlet_name,
    {}, // no parameters here, becaue parameters are added directly to 'servlet_name'
    function(data){
      J("#imagemapBarChart").remove();
      J(".calcDiagram").append(data);
      // make imagemap visible for firefox
      J("#imagemapBarChart area").each(function(){
        J(this).attr("alt",J(this).attr("title"));
      });
  });
}

function showOtherPieChart(section){
  var chartservlet_name = "haushaltsplan_pie_chart";
  var imagemapservlet_name = "haushaltsplan_pie_chart_";
  // set the servletname and hide the other pie chart (show 'wohnkosten' -> hide 'geldanlage' and vice versa)
  if(section=="#geldanlage"){
    imagemapservlet_name += "geldanlage";
    J("#doHaushaltsplanPieChartGA").attr("src", J("#doHaushaltsplanPieChart").attr("src").split(chartservlet_name)[0] + imagemapservlet_name + J("#doHaushaltsplanPieChart").attr("src").split(chartservlet_name)[1]);
  	J("#doHaushaltsplanPieChartWK").hide();
    J("#doHaushaltsplanPieChartGA").show();
  }else if(section=="#wohnkosten"){
    imagemapservlet_name += "wohnkosten";
    J("#doHaushaltsplanPieChartWK").attr("src", J("#doHaushaltsplanPieChart").attr("src").split(chartservlet_name)[0] + imagemapservlet_name + J("#doHaushaltsplanPieChart").attr("src").split(chartservlet_name)[1]);
    J("#doHaushaltsplanPieChartGA").hide();
  	J("#doHaushaltsplanPieChartWK").show();
  }
}

function sendMail(params){
  var mailservlet_name = "haushaltsplan_mail";
  var servlet_name = J("#doCaptcha").attr("src").split("?")[0]+"?action="+mailservlet_name;
  
  params["zielgruppe"]=zielgruppe;
  
  if (J("#calcInputContactEmail").is(':checked')) {
    params["contact_me"]="email";
  }else{
    params["contact_me"]="phone";
  }
  J.post(servlet_name, params); // calls the servlet to send the mail
}

J.fn.focusNextInputField = function() {
  return this.each(function() {
    var fields = J(".calcForm .calcParam").find(':input:visible');
    var index = fields.index( this );
    if ( index > -1 && ( index + 1 ) < fields.length ) {
      fields.eq( index + 1 ).focus();
      fields.eq( index + 1 ).select();
    }
    return false;
  });
};

/*********************
 * DOCUMENT READY
 * calculator specific behaviour
 *********************/
J(function(){		
	// init
	calc.init();
	J("#ladescreen").hide();
	
	// hide the charts for 'geldanlage' and 'wohnkosten'
	J("#doHaushaltsplanPieChart").hide();
	J("#doHaushaltsplanBarChart").hide();
  J("#doHaushaltsplanPieChartGA").hide();
	J("#doHaushaltsplanPieChartWK").hide();
	
	// fields
	var paramEinkPartner = J("#calcPageCalculate #calcParam-eNettoeinkommenPartner");
	var paramBeihilfen = J("#calcPageCalculate #calcParam-eBeihilfen");
	var paramSonstAusg = J("#calcPageCalculate #calcParam-aSonstige");
	var paramAnzErw = J("#calcPageCalculate #calcParam-aLebenshaltungskostenErwachsene");
	var paramAnzKin = J("#calcPageCalculate #calcParam-aLebenshaltungskostenKinder");
	
	// set default values
	J("#calcPageCalculate input.calcFormatMoney").val(calc.numberFormat(0, "money", true));
	J("input", paramAnzErw).val(anzErw);
	J("input", paramAnzKin).val(anzKin);
	paramAnzKin.hide();
	
/*	// enable switching to next input field by pressing 'Enter'
  J("#calcPageCalculate .calcTextInput input").keypress(function(event){
    if (event.keyCode == '13') {
      J(this).focusNextInputField();
      event.preventDefault();
    }
  });
*/
	// adapt calculator when changing 'Zielgruppe'
/*	J("#calcPageCalculate .calcTarget .calcJqTransform li a").click(function(){
		// get selected element
		var z;
		z = J(this).attr("index"); // get index of clicked link
		z = J("#calcPageCalculate .calcTarget .calcJqTransform option:eq("+z+")").attr("id"); // get id of concerning option in select list
*/
	var z;
	J("#calcParam-zielgruppe label").click(function(){
		// get selected element
		z = J(this).attr("for");
		// adaption
		var newAnzErw, newAnzKin, lblBeihilfen, lblSonstAusg;									
		switch (z) {
			case "calcZ1": //Alleinstehende(r) ohne Kinder
				paramEinkPartner.hide();
				lblBeihilfen = "Wohnzuschuss, Unterhalt, ...";				
				newAnzErw = anzErw;
				newAnzKin = 0;
        paramAnzKin.hide();
				lblSonstAusg = "Kirchenbeitrag, Zusatzausgaben, Alimente";
				zielgruppe="Alleinstehende(r) ohne Kinder";
				break;
			case "calcZ2": //Paar ohne Kinder
				paramEinkPartner.show();
				lblBeihilfen = "Wohnzuschuss, ...";								
				newAnzErw = 2;
				newAnzKin = 0;
				paramAnzKin.hide();
				lblSonstAusg = "Kirchenbeitrag, Zusatzausgaben";
				zielgruppe="Paar ohne Kinder";
				break;
			case "calcZ3": //Familie
				paramEinkPartner.show();
				lblBeihilfen = "Wohnzuschuss, Familienbeihilfe, ...";				
				newAnzErw = 2;
				newAnzKin = anzKin;
				paramAnzKin.show();
				lblSonstAusg = "Kirchenbeitrag, Zusatzausgaben, Kinderbetreuung";
				zielgruppe="Familie";
				break;
			case "calcZ4": //Alleinerzieher(in)
				paramEinkPartner.hide();
				lblBeihilfen = "Wohnzuschuss, Alimente, Beihilfe für Alleinerzieher(innen), ...";				
				newAnzErw = anzErw;
				newAnzKin = anzKin;				
				paramAnzKin.show();
				lblSonstAusg = "Kirchenbeitrag, Zusatzausgaben, Kinderbetreuung";
				zielgruppe="Alleinerzieher(in)";
				break;
			case "calcZ5": //Student(in)
				paramEinkPartner.hide();
				lblBeihilfen = "Wohnzuschuss, Stipendien, ...";				
				newAnzErw = anzErw;
				newAnzKin = 0;
				paramAnzKin.hide();
				lblSonstAusg = "Kirchenbeitrag, Zusatzausgaben";
				zielgruppe="Student(in)";
				break;
			case "calcZ6": //Pensionist(in)
				paramEinkPartner.hide();
				lblBeihilfen = "Wohnzuschuss, Pflegegeld, ...";				
				newAnzErw = anzErw;
				newAnzKin = 0;
				paramAnzKin.hide();
				lblSonstAusg = "Kirchenbeitrag, Zusatzausgaben";
				zielgruppe="Pensionist(in)";
				break;
		}			 
		J(".calcTextInput label", paramBeihilfen).text(lblBeihilfen);
		J(".calcTextInput label", paramSonstAusg).text(lblSonstAusg);
		J("input", paramAnzErw).val(newAnzErw);
		J("input", paramAnzKin).val(newAnzKin);
		
		// refresh necessary
		calc.needsRefresh();
	});
	
	// jump to next input field when hitting return
	var allFields, nextField;
	J("#calcPageCalculate input[type=text]").keypress(function (e) {		
		if (e.keyCode == 13) {			
			allFields = J("#calcPageCalculate input[type=text]:visible");			
			nextField = allFields[allFields.index(this) + 1];
			if (typeof nextField != "undefined") {
				nextField.focus();
				nextField.select();	
			}						
			return false; // prevents submitting the form
		}
	});

	J("#calcParam-zielgruppe label[for*=calcZ1]").click();
	
	// refresh necessary (when page is loaded the first time)
	calc.needsRefresh();
});

