/* Author: Karl Schwaier (DMC 01)
 *
 * configuration and specific code for this calculator
 * needs calc.core.js!
 */


/*********************
 * CONFIGURATION
 * webservice urls, slider
 *********************/	
// WEB SERVICES
var webServiceCalculate = "webservice.php";
var webServiceSubmit = "webservice.php";
var J = jQuery.noConflict();

var miete = 0;
var zeitraum = 0;
//var zinssatz = {iw_value name='dcr.zs' /};
var zinssatz_fix = 0; // zinssatz_fix ist set in the function setZS()
var gesamtmiete = 0; 

// PARAMS
// slider
var sliderConfig = new Array();

// INITIALIZE SLIDERS - needs to be called before calc.init()
function sliderInit(dcr_monmiete_min, dcr_monmiete_max, dcr_monmiete_startwert, dcr_zeitraum_min, dcr_zeitraum_max, dcr_zeitraum_startwert) {
    sliderConfig["miete"] = {
  	min: parseInt(dcr_monmiete_min),
  	max: parseInt(dcr_monmiete_max),
  	step: 50,
  	value: parseInt(dcr_monmiete_startwert),
  	format: "money"
  };
  sliderConfig["zeitraum"] = {
  	min: parseInt(dcr_zeitraum_min),
  	max: parseInt(dcr_zeitraum_max),
  	step: 1,
  	value: parseInt(dcr_zeitraum_startwert),
  	format: "rate"
  };
}

/*********************
 * 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";	
	
	return error;
}
*/

// DISPLAYING RESULTS AND CHART AFTER CALCULATING RESULT
function onParamsSent(params, response, p) {
	var result = new Array();
	
	// first row
	result[0] = {
		th: "Kumulierte Gesamtmiete <br /> nach "+params["zeitraum"]+" Jahren:",
		td: calc.numberFormat(response.dummybetrag, "money", true)
	}
	
	calc.writeResultTable(result);	
}

function onParamsChanged (params){
  J("#ladescreen").hide();
  var result = new Array();
  var zinssatz = zinssatz_fix;

  miete = 0;
  zeitraum = 0;
  gesamtmiete = 0;
  
  if(typeof params["miete"] != 'undefined'){ miete = params["miete"]; }
  if(typeof params["zeitraum"] != 'undefined'){ zeitraum = params["zeitraum"]; }

  var i = 0;
  for(i = 0; i < zeitraum; i++){
    gesamtmiete += 12*Math.round(miete * Math.pow(zinssatz, i));  
  }
  params["gesamtmiete"]=gesamtmiete;
  params["zinssatz"]=zinssatz;

  // set the parameters for the chart, which will be appended to the img src
  // but only if the parameters changed, so the image must be loaded, otherwise left alone
  var tmpImgSRC = "";
  var tmpprintsrc = "";
  if( document.getElementById('doMiete').src.indexOf("&miete") != -1){
    tmpImgSRC = document.getElementById('doMiete').src.split("&miete")[0];
    tmpprintsrc = document.getElementById('drucklinkextseite').href.split("?miete")[0];
  }else{
    tmpImgSRC = document.getElementById('doMiete').src;
    tmpprintsrc = document.getElementById('drucklinkextseite').href;
  }
  tmpImgSRC += "&miete="+miete+"&zeitraum="+zeitraum+"&zinssatz="+zinssatz_fix;
  tmpprintsrc += "?miete="+miete+"&zeitraum="+zeitraum+"&zinssatz="+zinssatz_fix+"&gesamtmiete="+calc.numberFormat(gesamtmiete, "money", true)+"&printbanner="+document.getElementById("header2").style.backgroundImage;
  if(tmpImgSRC != document.getElementById('doMiete').src){
    document.getElementById('doMiete').src = tmpImgSRC;
    document.getElementById('drucklinkextseite').href = tmpprintsrc;
  }

  // first row
  result[0] = {
		th: "Kumulierte Gesamtmiete <br /> nach "+params["zeitraum"]+" Jahren:",
		td: calc.numberFormat(gesamtmiete, "money", true)
	}
	calc.writeResultTable(result);
}

function setZS(dcr_zs) {
  zinssatz_fix = 1.0 + dcr_zs/100;
}

function setImageMap(){
  var chartservlet_name = "mieterechner_chart";
  var imagemapservlet_name = "mietrechner_imagemap";
  // substitute chartservlet_name with imagemapservlet_name
  var servlet_name = document.getElementById('doMiete').src.split(chartservlet_name)[0] + imagemapservlet_name + "&miete="+miete+"&zeitraum="+zeitraum+"&zinssatz="+zinssatz_fix;
  // calls the servlet for the image map
  J.get(servlet_name,
    {},
    function(data){
      J("#imagemap").remove();
      J(".calcDiagram").append(data);
  });
}

function sendMail(params){
  var mailservlet_name = "mietrechner_mail";
  var servlet_name = J("#doCaptcha").attr("src").split("?")[0]+"?action="+mailservlet_name;
  J.post(servlet_name, params); // calls the servlet to send the mail
}

/*********************
 * DOCUMENT READY
 *********************/
J(function(){		
	// init
	calc.init();
	
  // init formatting of the calcInputSlider fields
  J("#calcInputSlider-miete").blur();
  J("#calcInputSlider-zeitraum").blur();
  
  // jump to next input field when hitting return
	J("#calcPageCalculate input[type=text]").keydown(function (e) {
	  var allFields, nextField;
	  var key = 0;
	  if(typeof window.event != "undefined"){ // IE
	    key = window.event.keyCode;
    }else{ // FF & others
      key = e.keyCode;
    }
		if (key == 13 || key == 9) {
			allFields = J("#calcPageCalculate input[type=text]:visible");
			nextField = allFields[allFields.index(this) + 1];
			if (typeof nextField != "undefined") {
				nextField.focus();
				nextField.select();
			}else{ // jump to first input field
			  nextField = allFields[allFields.index(this) - 1];
        if (typeof nextField != "undefined") {
  				nextField.focus();
  				nextField.select();
        }
      }
      J("#calcPageCalculate .calcBtnRefresh").click();
			return false; // prevents submitting the form
		}
	});

	// Fire the event, so the chart is drawn when loading the page the first time
	J("#calcPageCalculate .calcBtnRefresh").click();
});
