

function calculateCreditRates(label) {
	
	if(parseInt($('credit-calculator-mrate').get('text'))>0) return true;
	
	var amount = parseInt(unformatCurrency($('credit-calculator-amount').get('value')));
	var months = parseInt($('credit-calculator-duration').get('value'));
	var irate = parseInt($('credit-calculator-irate').get('value')*10);

	if(true){
			months = (months<12)? 12 : months;
			months = (months>12 && months<=24)? 24 : months;
			months = (months>24 && months<=36)? 36 : months;
			months = (months>36 && months<=48)? 48 : months;
			months = (months>48 && months<=60)? 60 : months;
			months = (months>60)? 72 : months;

			var ir = irate;
			ir = (ir<=85)? 85 : ir;
			ir = (ir>85 && ir<=89)? 89 : ir;
			ir = (ir>89 && ir<=99)? 99 : ir;
			ir = (ir>99 && ir<=109)? 109 : ir;
			ir = (ir>109 && ir<=119)? 119 : ir;
			ir = (ir>119 && ir<=129)? 129 : ir;
			ir = (ir>129)? 139 : ir;

			var effRate = [];
			effRate['85'] = {'12':'12.6776470588','24':'24.6889411765','36':'37.0221176471','48':'49.6941176471','60':'62.6541176471','72':'75.9529411765'};
			effRate['89'] = {'12':'12.6579775281','24':'24.6795505618','36':'37.0570786517','48':'49.7258426966','60':'62.7505617978','72':'76.0341573034'};
			effRate['99'] = {'12':'12.6303030303','24':'24.6593939394','36':'37.023030303','48':'49.7648484848','60':'62.8848484848','72':'76.383030303'};
			effRate['109'] = {'12':'12.5944954128','24':'24.6165137615','36':'37.0348623853','48':'49.8495412844','60':'63.0605504587','72':'76.6678899083'};
			effRate['119'] = {'12':'12.552605042','24':'24.5808403361','36':'37.0447058824','48':'49.92','60':'63.2067226891','72':'76.9048739496'};
			effRate['129'] = {'12':'12.5172093023','24':'24.5506976744','36':'37.0195348837','48':'49.9795348837','60':'63.3860465116','72':'77.1720930233'};
			effRate['139'] = {'12':'12.4869064748','24':'24.5041726619','36':'37.0290647482','48':'50.0305035971','60':'63.4877697842','72':'77.4630215827'};

			var effInterestRate = effRate[ir][months];

			costs = roundNumber(((amount*(irate/10)*effInterestRate)/(100*2*12)), 2);
	} else {
		
		var costs = roundNumber( ((amount * (irate/10) *(months+1) ) / (100*2*12)), 2);
	}
	
	var monthly = roundNumber(((amount+costs)/months), 2);
	
	$('credit-calculator-mrate').set('text', formatCurrency(monthly));
	if($('credit-calculator-costs')) $('credit-calculator-costs').set('text', formatCurrency(costs));
	
	$('credit-calculator-calculate').setProperty('value', label);
	showElement('calculator-2');
	
	if($('credit-calculator-mratemax')) {
	
		var irateMax = parseInt($('credit-calculator-iratemax').get('value')*10);
		var effInterestRateMax = effRate[irateMax][months];

		var costsMax = roundNumber(((amount*(irateMax/10)*effInterestRateMax)/(100*2*12)), 2);
		var monthlyMax = roundNumber(((amount+costsMax)/months), 2);
		
		$('credit-calculator-mratemax').set('text', formatCurrency(monthlyMax));
		if($('credit-calculator-costsmax')) $('credit-calculator-costsmax').set('text', formatCurrency(costsMax));
	}
	
	return false;
}

function calculateInterest() {

	//var currentZins = 9.9;
	//var currentZins = $('credit-calculator').getElements('input[id^=credit-calculator-irate_]:checked').get('value');
	var currentZins = parseInt($('credit-calculator-irate').get('value'));
	var intMonate = 13.9;
	
	return ((Math.pow(1+(currentZins/100),1/12*intMonate)-1)*100*(12/intMonate));
}

function resetCalculator() {
	$('credit-calculator-mrate').set('text', 0);
	if($('credit-calculator-costs')) $('credit-calculator-costs').set('text', 0);
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function unformatCurrency(amount)
{
	amount = new String(amount);
	var delimiter = "'"; // replace comma if desired
	var a = amount.split(delimiter);
	
	var n = a.join('');
	
	return n;
}

function formatCurrency(amount)
{
	amount = new String(amount);
	var delimiter = "'"; // replace comma if desired
	var a = amount.split('.',2);
	
	var d = (a.length>1)? a[1] : "–";
	if(a.length>1 && d.length<2) d += "0";
	
	
	var i = parseInt(a[0]);
	if(isNaN(i)) i = 0;
	
	var minus = '';
	if(i < 0) minus = '-'; 
	
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	
	amount = minus + n + '.' + d;
	return amount;
}

function validateForm(form) {
	return true;
}

/**
 * 1 = angestellt unbefristet
 * 2 = angestellt befristet
 * 6 =  selbständig
 * 5 = Rentner
 * 1000 = andere
 */
function employmentStateChanged(value) {
    var tier1 = "field-employed_to-month";
    var tier2 = "field-company";
    var tier3 = "field-company_zip";
    var tier4 = "field-employed_since-month";
    var tier5 = "field-employment_other";
    switch (value) {
      case "1":
      case "6":
        showElement(tier2);
        showElement(tier3);
        showElement(tier4);
        hideElement(tier1);
        hideElement(tier5);
		
		focusElement.delay(100, this, 'credit-additionalinfo-company');
        break;
      case "2":
        showElement(tier1);
        showElement(tier2);
        showElement(tier3);
        showElement(tier4);
        hideElement(tier5);
		
		focusElement.delay(100, this, 'credit-additionalinfo-employed_to-month');
        break;
	case "3":// temporary
        showElement(tier2);
        showElement(tier3);
        showElement(tier4);
        hideElement(tier5);
		
		focusElement.delay(100, this, 'credit-additionalinfo-company');
        break;
      case "5":
        hideElement(tier1);
        hideElement(tier2);
        hideElement(tier3);
        hideElement(tier4);
        hideElement(tier5);
        break;
      case "1000":
        showElement(tier5);
        hideElement(tier1);
        hideElement(tier2);
        hideElement(tier3);
        hideElement(tier4);
		
		focusElement.delay(100, this, 'credit-additionalinfo-employment_other');
        break;
      default:;
    }
}

/**
 * 1    = Schweiz
 * 2-x  = bekannt
 * 1000 = andere
 */
function countryChanged(value){
	
	var tier1 = "field-country";
	var tier2 = "field-static_info_country";
	var tier3 = "field-visum_type";
	var field3 = "credit-userinfo-visum_type";
	
	switch (value){
		case " ":
		case "CHE":
			showElement(tier1);
			hideElement(tier2);
			hideElement(tier3);
			visumChanged('');
			break;
		case "other":
			hideElement(tier1);
			showElement(tier2);
			showElement(tier3);
			
			focusElement.delay(100, this, 'credit-userinfo-static_info_country');
			break;
		default:
			hideElement(tier2);
			showElement(tier3);
			focusElement.delay(100, this, 'credit-userinfo-visum_type');
	}
}

/**
 * B = einreisedatum / family-yn
 * C = einreisedatum
 * L = ablaufdatum
 * G = grenzganger
 * Diplomat = none
 * andere = einreisedatum
 */
function visumChanged(value) {
    var tier1 = "field-visum_entrydate-day";
    var tier2 = "field-visum_family_1";
    var tier3 = "field-visum_expiredate-day";
    var tier4 = "field-visum_bordercrossingdate-day";
    switch (value) {
    
      case "B":
        hideElement(tier3);
        hideElement(tier4);
        showElement(tier1);
        showElement(tier2);
        break;
      case "C":
        hideElement(tier2);
        hideElement(tier3);
        hideElement(tier4);
        showElement(tier1);
        break;
      case "L":
        hideElement(tier1);
        hideElement(tier2);
        hideElement(tier4);
        showElement(tier3);
        break;
      case "G":
        hideElement(tier1);
        hideElement(tier2);
        hideElement(tier3);
        showElement(tier4);
        break;
      case "Diplomat":
        hideElement(tier1);
        hideElement(tier2);
        hideElement(tier3);
        hideElement(tier4);
        break;
      case "andere":
        hideElement(tier2);
        hideElement(tier3);
        hideElement(tier4);
        showElement(tier1);
        break;
      default:
        hideElement(tier1);
        hideElement(tier2);
        hideElement(tier3);
        hideElement(tier4);
        break;
    }
}

/**
 * 1 = Ehepaar/Partnerschaft im gl.Haushalt
 * 2 = Alleinstehend
 * 3 = Alleinstehend mit Erw.im gl.Haushalt
 * 4 = Alleinerziehend
 */
function wohnSituationChanged(value){
	
	var tier1 = "field-addapplicant2_1";
	switch (value){
		case "1":
		case "3":
			showElement(tier1);
			
			focusElement.delay(100, this, 'credit-additionalinfo-addapplicant2_1');
			break;
	
		case "2":
		case "4":
		default:
			hideElement(tier1);
			$('credit-additionalinfo-addapplicant2_2').checked = true;
			$('credit-additionalinfo-addapplicant2_2').onclick();
			break;
	}
}

function childNumChanged(value){
	var tier1 = "field-children_year";
	if (value>0) {
    	showElement(tier1);
		focusElement.delay(100, this, 'credit-additionalinfo-children_year');
    }
    else {
    	hideElement(tier1);
    }
}

function radioChanged(key, field) {
	//alert("checked:"+field.checked+" value:"+field.value);
	if(!field.checked) return;
	
	switch(key) {
		case "sideline":
		case "extraincome":
			var tier1 = 'field-'+key+'_income';
			if (field.value>0) showElement(tier1);
			else hideElement(tier1);
			break;
		
		case "financialobligations":
			var tier1 = "financialobligations-caption";
    		var tier2 = "field-financialobligations_alimony";
    		var tier3 = "field-financialobligations_leasing";
    		var tier4 = "field-financialobligations_credit";
    		var tier5 = "field-financialobligations_insurance";
    		var tier6 = "field-financialobligations_other";
    		
    		if (field.value>0) {
    			showElement(tier1);
        		showElement(tier2);
        		showElement(tier3);
        		showElement(tier4);
        		$(tier5).setStyle('display', 'inline');
        		//showElement(tier5);
        		showElement(tier6);
    		}
    		else {
    			hideElement(tier1);
    			hideElement(tier2);
    			hideElement(tier3);
    			hideElement(tier4);
    			hideElement(tier5);
    			hideElement(tier6);
    		}
			break;
		
		case "prosecution":
			var tier1 = "field-prosecution_number";
    		var tier2 = "field-prosecution_amount";
    		var tier3 = "field-prosecution_details";
    		var tier4 = "field-depts_1";
    		if (field.value>0) {
    			showElement(tier1);
        		showElement(tier2);
        		showElement(tier3);
        		showElement(tier4);
    		}
    		else {
    			hideElement(tier1);
    			hideElement(tier2);
    			hideElement(tier3);
    			hideElement(tier4);
    		}
			break;
		
		case "addapplicant2":
			var tierArr = [	'field-applicant2-last_name', 
							'field-applicant2-first_name', 
							'field-applicant2-gender',
    						'field-applicant2-date_of_birth-day',
    						'field-applicant2-profession',
    						'field-applicant2-company',
    						'field-applicant2-company_zip',
    						'field-applicant2-income',
    						'field-applicant2-thirtinthsallary_1'];

    		
    		if (field.value>0) {
    			for(var i=0; i<tierArr.length; i++) {
    				showElement(tierArr[i]);
        		}
    		}
    		else {
    			for(var i=0; i<tierArr.length; i++) {
    				hideElement(tierArr[i]);
        		}
    		}
			break;
	}
}

function showElement(id) {
	$(id).setStyle('display', 'block');
}

function hideElement(id) {
	$(id).setStyle('display', 'none');
}

function focusElement(id) {
	$(id).focus();
}

function checkQuickCalculate() {
	var amount = parseInt($('credit-calculator-amount').get('value'));
	if(!amount) {
		amount = 10000;
		$('credit-calculator-amount').setProperty('value', amount);
	}
	return true;
}

function nobrokercodeChanged(field) {
	
	var field1 = "credit-userinfo-channel_code";
	
	if(field.checked) {
		$(field1).value = '0';
		$(field1).disabled = true;
		$(field1).setStyle('background-color', '#dddddd');
	} else {
		$(field1).value = '';
		$(field1).disabled = false;
		$(field1).setStyle('background-color', '#ffffff');
		focusElement(field1);
	}

}

function creditTip(tooltip) {
 //Tip(tooltip, WIDTH, 250, OPACITY, 80, BGCOLOR, '#ffffff', FONTCOLOR, '#2a310f', FONTSIZE, '11px', FADEIN, 300, FADEOUT, 300, BORDERWIDTH, 0, DELAY, 200, STICKY, true, CLICKCLOSE, true, DURATION, -3000);
 Tip(tooltip, WIDTH, 250, OPACITY, 80, BGCOLOR, '#ffffff', FONTCOLOR, '#2a310f', FONTSIZE, '11px', FADEIN, 300, FADEOUT, 300, BORDERWIDTH, 1, BORDERCOLOR, '#A2BD29', DELAY, 200, STICKY, true, DURATION, -3000);
}
