

function calculateCreditRates() {
	
	if(parseInt($('credit-calculator-mrate').getText())>0) return true;
	
	var faktor = 1+(calculateInterest() / 1200); // 1+(11.296 / 1200);
	var amount = parseInt($('credit-calculator-amount').getValue());
	if(!amount) { 
		amount = 10000;
		$('credit-calculator-amount').setProperty('value', amount);
	}
	
	var months = parseInt($('credit-calculator-duration').getValue());
	var monthly = parseInt((amount * Math.pow(faktor, months) * (faktor-1)) / (Math.pow(faktor, months)-1) * 20 ) / 20;
	var costs = roundNumber((months * monthly - amount),2);
	
	$('credit-calculator-mrate').setText(formatCurrency(monthly));
	if($('credit-calculator-costs')) $('credit-calculator-costs').setText(formatCurrency(costs));
	
	$('credit-calculator-calculate').setProperty('value', 'Neuberechnen');
	showElement('calculator-2');
	
	return false;
}

function calculateInterest() {

	var currentZins = 9.9;
	var intMonate = 13.9;
	
	return ((Math.pow(1+(currentZins/100),1/12*intMonate)-1)*100*(12/intMonate));
}

function resetCalculator() {
	$('credit-calculator-mrate').setText(0);
	$('credit-calculator-costs').setText(0);
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

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);
        break;
      case "2":
        showElement(tier1);
        showElement(tier2);
        showElement(tier3);
        showElement(tier4);
        hideElement(tier5);
        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);
        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);
			break;
		default:
			hideElement(tier2);
			showElement(tier3);
	}
}

/**
 * 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);
			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);
    }
    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');
}


