//
//ustawienia
var oplata_sadowa=200;
var wpisy_aktu=7.32; //za strone
var wpisy_stron=16; //ile stron
var prowizja_agencji=3;
var max_taksa=10000;
var ksiega_wieczysta=40;

//zmienne globalne
var taksa=0;
var taksa_kw=0;
var koszty_d=0;
var calkowity_kn=0;
var cena=0;	
var pusc_dalej=0;

function getElem (id) {
	return document.getElementById(id);
}

function change_display(id, dspl) {
  var style = document.getElementById(id).style;
  if(!dspl)
	style.display = style.display == "none"? "inline" : "none";
  else
	style.display = dspl;
}

function updateElem (id, value_, formatuj) {
	if(!formatuj)
		document.getElementById(id).value=formatujCyfre(value_);
	else
		document.getElementById(id).value=value_;
}

function sumuj() {
	oblicz();
}

function oblicz() {
	//vars
	var cena=stringDoCyfry(getElem('cena_nieruchomosci').value);
	if(!cena) return true;
	
	var podatek_occp=cena*0.02;
	
	//taksa
	if (cena <= 3000) {
		taksa=100;
		updateElem('taksa_n', taksa);
	}
	
	if (cena <= 10000 && cena > 3000) {
		taksa=100+(cena-3000)*0.03;
		updateElem('taksa_n', taksa);
	}
	
	if (cena <= 30000 && cena > 10000) {
		taksa=310+(cena-10000)*0.02;
		updateElem('taksa_n', taksa);
	}
	
	if (cena <= 60000 && cena > 30000) {
		taksa=710+(cena-30000)*0.01;
		updateElem('taksa_n', taksa);
	}

	if (cena <= 1000000 && cena > 60000) {
		taksa=1010+(cena-60000)*0.004;
		updateElem('taksa_n', taksa);
	}
	
	if (cena <= 2000000 && cena > 1000000) {
		taksa=4770+(cena-1000000)*0.002;
		updateElem('taksa_n', taksa);
	}
	
	if (cena > 2000000) {
		taksa=6770+(cena-2000000)*0.0025;
		updateElem('taksa_n', taksa);
	}
	
	//taksa nie może być większa od max_taksa
	if(taksa > max_taksa) {
		taksa=max_taksa;
		updateElem('taksa_n', taksa);		
	}
	//

	if(getElem('swp').checked) {
		taksa=0.5*taksa;
		updateElem('taksa_n', taksa);
		
		taksa_kw=0;
		updateElem('taksa_kw', taksa_kw);
		
		//oplata sadowa
		updateElem('oplata_s', '200');	
		//
	} 
	
	if(getElem('swpzkw').checked) {
		taksa=0.5*taksa;
		updateElem('taksa_n', taksa);

		taksa_kw=0;
		updateElem('taksa_kw', taksa_kw);
		
		//oplata sadowa
		updateElem('oplata_s', '200');	
		//
	}
	
	if(getElem('wh').checked) {
		//oplata sadowa
		updateElem('oplata_s', '200');	
		//
		
		taksa=0.5*taksa;
		updateElem('taksa_n', taksa);
		
		taksa_kw=0;
		updateElem('taksa_kw', taksa_kw);
	}
	
	if(getElem('whk').checked) {
		//oplata sadowa
		updateElem('oplata_s', '400');	
		//
		
		taksa=0.5*taksa;
		
		var kwota_kredytu=stringDoCyfry(getElem('whk_v').value);
		if(pusc_dalej) { pusc_dalej=1; kwota_kredytu=cena; }
		if(pusc_dalej)	updateElem('whk_v', kwota_kredytu);		
		
		var hipoteka_zw=kwota_kredytu*0.001;
		var hipoteka_k=19;
		
		podatek_occp+=hipoteka_zw+hipoteka_k;
		
		taksa_kw=0.25*taksa;
		updateElem('taksa_kw', taksa_kw);
		
		updateElem('taksa_n', taksa);		
	}
	
	//podatek occp
	updateElem('podatek_occp', podatek_occp);
	//
	
	//podatek od taksy
	updateElem('vat_otn', 0.22*(taksa+taksa_kw));	
	//
	
	//prowizja agencji
	var prowizja_agencji_=getElem('prowizja_agencji').value*0.01*cena;
	updateElem('prowizja_agencji_', prowizja_agencji_);	
	//
	
	//VAT prowizja agencji
	updateElem('vat_opa', prowizja_agencji_*0.22);	
	//
	
	//koszty dodatkowe
	koszty_d=prowizja_agencji_*0.22+prowizja_agencji_+oplata_sadowa+0.22*(taksa+taksa_kw)+taksa+taksa_kw+podatek_occp;
	updateElem('koszty_d', koszty_d);	
	//
	
	//ilosc stron
	calkowity_kn=cena+koszty_d+getElem('wpisy_stron').value*getElem('wpisy_a').value;
	updateElem('calkowity_kn', calkowity_kn);	
	//
}

//funkcje dodatkowe
function formatujCyfre(cyfra) {
  cyfra = cyfra.toString().replace(/\s+/g, '');
  if(cyfra == '') return '';
  
  cyfra = 1.0 * cyfra;
  cyfra = cyfra.toFixed(2);

  if(cyfra.indexOf('.') > 0)
    cyfra = cyfra.replace(/(\d)(?=(\d\d\d)+\.)/g, '$1 ');
  else
    cyfra = cyfra.replace(/(\d)(?=(\d\d\d)+$)/g, '$1 ');
 
  return  cyfra;  
}

function stringDoCyfry(string) {
  return string.replace(/\s+/g, '') * 1.0;
}

Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for ( var x = 0 ; x <= len ; x++ ) {
		if ( this[x] == obj ) return true;
	}
	return false;
}

function limitInput(evt) {
	var charCode = evt.keyCode;
	if (charCode==0) {
		charCode = evt.which;
	}

	var controlArray = Array(0, 8, 9, 10, 27, 37, 39, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57);
	
	if (controlArray.in_array(charCode)) {
		return true;
	}
	else {
		alert(charCode);
		return false;
	}
} 
