/*
al farisi
http://alfarisi.web.id
al.farisi@indokreatif.net
*/

show_content = function (modul) {
	var url = './mod/' + modul + '.html';
	getdata('content', url);
}

validasiAngka = function (field) {
	var Char;
	var sudahkoma = false;
	var belakangkoma = 2;
	var k = 1;
	Char = "";
	for (i = 0; i < (field.value.length); i++) {
		if (isNaN(field.value.charAt(i)) && field.value.charAt(i) != '.' && field.value.charAt(i) != ',') {
			break;
		} else {
			if (sudahkoma == true) {
				if (field.value.charAt(i) == '.' || k > belakangkoma) {
					break;
				}
				k++;
			}
			if (field.value.charAt(i) == ',') {
				sudahkoma = true;
			}
			Char = Char + field.value.charAt(i);
		}
	}
	field.value = Char;
}

formatNumber = function (num) {
    num = parseFloat(num);
    decplaces = 2;
    if (!isNaN(num)) {
        var str = "" + Math.round (eval(num) * Math.pow(10,decplaces));
        if (str.indexOf("e") != -1) {
            return "Out of Range";
        }
        while (str.length <= decplaces) {
            str = "0" + str;
        }
        var decpoint = str.length - decplaces;
        
        ribuan = str.substring(0,decpoint);
		
        for (var i = 0; i < Math.floor((ribuan.length-(1+i))/3); i++) {
            ribuan = ribuan.substring(0,ribuan.length-(4*i+3))+'.'+ribuan.substring(ribuan.length-(4*i+3));
        }
		
        return ribuan + "," + str.substring(decpoint,str.length);
    } else {
        return "0,00";
    }
}

numstring_to_float = function (str) {
	temp = str.toString().replace(/\./g, '');
	temp = temp.toString().replace(/,/g, '.');
	numfloat = validasi_float(temp);
	return numfloat;
}

validasi_numstring = function (obj) {
	num = numstring_to_float(obj.value);
	numstring = formatNumber(num);
	obj.value = numstring;
}

validasi_float = function (num) {
	numfloat = parseFloat(num);
	if (isNaN(numfloat)) {
		numfloat = 0.00;
	}
	return numfloat;
}

nisab_emas = function () {
	harga = document.getElementById('harga_emas').value;
	harga = numstring_to_float(harga);
	
	nisab = 85 * harga;
	document.getElementById('nisab_emas_float').value = nisab;
	
	nisab = formatNumber(nisab);
	document.getElementById('nisab_emas').value = nisab;
}

nisab_beras = function () {
	harga = document.getElementById('harga_beras').value;
	harga = numstring_to_float(harga);
	
	nisab = 653 * harga;
	document.getElementById('nisab_beras_float').value = nisab;
	
	nisab = formatNumber(nisab);
	document.getElementById('nisab_beras').value = nisab;
}

/* zakat mal (umum) */
zc_mal_total_harta = function () {
	uang_tunai = document.getElementById('uang_tunai').value;
	tabungan = document.getElementById('tabungan').value;
	saham = document.getElementById('saham').value;
	perhiasan = document.getElementById('perhiasan').value;
	piutang = document.getElementById('piutang').value;
	aset_lain = document.getElementById('aset_lain').value;
	
	uang_tunai = numstring_to_float(uang_tunai);
	tabungan = numstring_to_float(tabungan);
	saham = numstring_to_float(saham);
	perhiasan = numstring_to_float(perhiasan);
	piutang = numstring_to_float(piutang);
	aset_lain = numstring_to_float(aset_lain);
	
	total_harta = uang_tunai + tabungan + saham + perhiasan + piutang + aset_lain;
	document.getElementById('total_harta_float').value = total_harta;
	document.getElementById('total_harta').value = formatNumber(total_harta);
	
	zc_mal_hitung();
}

zc_mal_total_kewajiban = function () {
	hutang = document.getElementById('hutang').value;
	pengeluaran_rutin = document.getElementById('pengeluaran_rutin').value;
	
	hutang = numstring_to_float(hutang);
	pengeluaran_rutin = numstring_to_float(pengeluaran_rutin);
	
	total_kewajiban = hutang + pengeluaran_rutin;
	document.getElementById('total_kewajiban_float').value = total_kewajiban;
	document.getElementById('total_kewajiban').value = formatNumber(total_kewajiban);
	
	zc_mal_hitung();
}

zc_mal_hitung = function () {
	nisab = document.getElementById('nisab_emas_float').value;
	harta = document.getElementById('total_harta_float').value;
	kewajiban = document.getElementById('total_kewajiban_float').value;
	
	nisab = validasi_float(nisab);
	harta = validasi_float(harta);
	kewajiban = validasi_float(kewajiban);
	
	selisih_harta = harta - kewajiban;
	document.getElementById('selisih_harta').value = formatNumber(selisih_harta);
	
	if (selisih_harta > nisab) {
		zakat = 0.025 * selisih_harta;
		document.getElementById('keterangan').innerHTML = 'Harta SUDAH melebihi nisab. Dikenakan KEWAJIBAN ZAKAT.';
	} else {
		zakat = 0.00;
		document.getElementById('keterangan').innerHTML = 'Harta BELUM mencapai nisab. Tidak dikenai kewajiban zakat.';
	}
	
	document.getElementById('zakat_harta').value = formatNumber(zakat);
}

/* zakat profesi tahunan */
zc_pt_pendapatan_utama_tahunan = function () {
	bulanan = document.getElementById('pendapatan_utama_bulanan').value;
	bulanan = numstring_to_float(bulanan);
	
	tahunan = bulanan * 12;
	document.getElementById('pendapatan_utama_tahunan_float').value = tahunan;
	document.getElementById('pendapatan_utama_tahunan').value = formatNumber(tahunan);
}

zc_pt_total_pendapatan = function () {
	utama = document.getElementById('pendapatan_utama_tahunan_float').value;
	utama = validasi_float(utama);
	tambahan = document.getElementById('pendapatan_tambahan').value;
	tambahan = numstring_to_float(tambahan);
	
	pendapatan = utama + tambahan;
	document.getElementById('total_pendapatan_float').value = pendapatan;
	document.getElementById('total_pendapatan').value = formatNumber(pendapatan);
	
	zc_pt_hitung();
}

zc_pt_kebutuhan_pokok_tahunan = function () {
	bulanan = document.getElementById('kebutuhan_pokok_bulanan').value;
	bulanan = numstring_to_float(bulanan);
	
	tahunan = bulanan * 12;
	document.getElementById('kebutuhan_pokok_tahunan_float').value = tahunan;
	document.getElementById('kebutuhan_pokok_tahunan').value = formatNumber(tahunan);
}

zc_pt_total_pengeluaran = function () {
	hutang = document.getElementById('hutang').value;
	hutang = numstring_to_float(hutang);
	
	pokok = document.getElementById('kebutuhan_pokok_tahunan_float').value;
	pokok = validasi_float(pokok);
	
	lainnya = document.getElementById('pengeluaran_lain').value;
	lainnya = numstring_to_float(lainnya);
	
	pengeluaran = hutang + pokok + lainnya;
	document.getElementById('total_pengeluaran_float').value = pengeluaran;
	document.getElementById('total_pengeluaran').value = formatNumber(pengeluaran);
	
	zc_pt_hitung();
}

zc_pt_hitung = function () {
	nisab = document.getElementById('nisab_emas_float').value;
	pendapatan = document.getElementById('total_pendapatan_float').value;
	pengeluaran = document.getElementById('total_pengeluaran_float').value;
	
	nisab = validasi_float(nisab);
	pendapatan = validasi_float(pendapatan);
	pengeluaran = validasi_float(pengeluaran);
	
	pendapatan_bersih = pendapatan - pengeluaran;
	document.getElementById('pendapatan_bersih').value = formatNumber(pendapatan_bersih);
	
	if (pendapatan_bersih > nisab) {
		zakat = 0.025 * pendapatan_bersih;
		document.getElementById('keterangan').innerHTML = 'Pendapatan SUDAH melebihi nisab. Dikenakan KEWAJIBAN ZAKAT.';
	} else {
		zakat = 0.00;
		document.getElementById('keterangan').innerHTML = 'Pendapatan BELUM mencapai nisab. Tidak dikenai kewajiban zakat.';
	}
	
	document.getElementById('zakat_profesi_tahunan').value = formatNumber(zakat);
}

/* zakat profesi bulanan */
zc_pb_total_pendapatan = function () {
	utama = document.getElementById('pendapatan_utama').value;
	utama = numstring_to_float(utama);
	
	tambahan = document.getElementById('pendapatan_tambahan').value;
	tambahan = numstring_to_float(tambahan);
	
	pendapatan = utama + tambahan;
	document.getElementById('total_pendapatan_float').value = pendapatan;
	document.getElementById('total_pendapatan').value = formatNumber(pendapatan);
	
	zc_pb_hitung();
}

zc_pb_total_pengeluaran = function () {
	hutang = document.getElementById('hutang').value;
	hutang = numstring_to_float(hutang);
	
	pokok = document.getElementById('kebutuhan_pokok').value;
	pokok = numstring_to_float(pokok);
	
	lainnya = document.getElementById('pengeluaran_lain').value;
	lainnya = numstring_to_float(lainnya);
	
	pengeluaran = hutang + pokok + lainnya;
	document.getElementById('total_pengeluaran_float').value = pengeluaran;
	document.getElementById('total_pengeluaran').value = formatNumber(pengeluaran);
	
	zc_pb_hitung();
}

zc_pb_hitung = function () {
	nisab = document.getElementById('nisab_beras_float').value;
	pendapatan = document.getElementById('total_pendapatan_float').value;
	pengeluaran = document.getElementById('total_pengeluaran_float').value;
	
	nisab = validasi_float(nisab);
	pendapatan = validasi_float(pendapatan);
	pengeluaran = validasi_float(pengeluaran);
	
	pendapatan_bersih = pendapatan - pengeluaran;
	document.getElementById('pendapatan_bersih').value = formatNumber(pendapatan_bersih);
	
	if (pendapatan_bersih > nisab) {
		zakat = 0.025 * pendapatan_bersih;
		document.getElementById('keterangan').innerHTML = 'Pendapatan SUDAH melebihi nisab. Dikenakan KEWAJIBAN ZAKAT.';
	} else {
		zakat = 0.00;
		document.getElementById('keterangan').innerHTML = 'Pendapatan BELUM mencapai nisab. Tidak dikenai kewajiban zakat.';
	}
	
	document.getElementById('zakat_profesi_bulanan').value = formatNumber(zakat);
}