

function calculateCreditRates(label) {
	
	if(parseInt($('credit-calculator-mrate').get('text'))>0) return true;
	
	var amount = parseInt($('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<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['89'] = {'12':'12.66','24':'24.6889','36':'37.0440','48':'49.7247','60':'62.729','72':'74.729'};
			effRate['99'] = {'12':'12.63','24':'24.6666','36':'37.0666','48':'49.793','60':'62.939','72':'74.729'};
			// todo: calculate real data
			effRate['109'] = {'12':'12.59','24':'24.6353','36':'37.0548','48':'49.8555','60':'62.0715','72':'74.729'};
			effRate['119'] = {'12':'12.552','24':'24.604','36':'37.043','48':'49.918','60':'63.204','72':'74.729'};
			// todo: calculate real data
			effRate['129'] = {'12':'12.5165','24':'24.554','36':'37.036','48':'49.974','60':'63.3455','72':'74.729'};
			effRate['139'] = {'12':'12.481','24':'24.504','36':'37.029','48':'50.03','60':'63.487','72':'74.729'};

			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');
	
	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 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');
}

function checkQuickCalculate() {
	var amount = parseInt($('credit-calculator-amount').get('value'));
	if(!amount) {
		amount = 10000;
		$('credit-calculator-amount').setProperty('value', amount);
	}
	return true;
}

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);
}
