var oplata = null;
var skladka = null;
var lata = null;
var notLess = null;
var wplaty = null;
var pierwszaWplata = null;
var wplatyPierwotnie = null;
var wplatyObecnie = null;
var stopaZwrotu = null;
var kwotaWplat = null;

$().ready(
	function() {
		$('.tabButton').click(setTabs);
		_init();
		$("#but_cpi").click(init);
		$("#skladka").blur(setNotLess);
		$("#lata").blur(setLata);
		$("#pierwszaWplata").blur(setWplata);
		$("#stopaZwrotu").blur(setStopaZwrotu);
		$("#licz").click(licz);
		$('#skladka').keydown(isNumeric);
		$('#lata').keydown(isNumeric);
		$('#stopaZwrotu').keydown(isNumeric);
		$('#pierwszaWplata').keydown(isNumeric);
		$('#skladka1').keydown(isNumeric);
		$('#lata1').keydown(isNumeric);
		$('#stopaZwrotu1').keydown(isNumeric);
		$('.menuT').click(togleIco);
		init();
	}
); 

function togleIco() {

          var menuName = this.id;
          var item = $('.menuT');
          for (i=0; i<$('.menuT').length; i++) {
            if (menuName == item[i].id) {
		document.getElementById(item[i].id + '_m').style.display = 'block';
            }
            else {
              document.getElementById(item[i].id + '_m').style.display = 'none';
	    }
          }
}

function isNumeric(e) {
	var evt = e || window.event;
	var keyC = evt.keyCode;
	
	if (((keyC >= 48) && (keyC <= 57)) ||
		((keyC >= 96) && (keyC <= 105)) ||
		(keyC == 8) ||
		(keyC == 9) ||
		(keyC == 46) ||
		(keyC == 116) ||
		(keyC == 144) ||
		(keyC == 37) ||
		(keyC == 39) ||
		(keyC == 16) ||
		(keyC == 13)  ||
		(keyC == 190))
		returnValue = true;
	
	else  {
		alert('Insert number value!');
		//if (evt.preventDefault) {evt.preventDefault();}
		//evt.stopBubble = true;
		return false; 
	}

}

function licz() {
	var r = parseFloat(document.getElementById('stopaZwrotu1').value)/12/100;
	var rPow = Math.pow((1+r), parseInt(document.getElementById('lata1').value)*12);
	var i = parseInt(document.getElementById('skladka1').value)*(rPow-1)/r;

	i = i*(1+r);

	var kw = parseInt(document.getElementById('lata1').value)*parseInt(document.getElementById('skladka1').value)*12
	var zy = parseInt(Math.round(i*100)/100);

	document.getElementById('kwotaWplat1').innerHTML = separate(kw)+' '+CUR_VAL;
	document.getElementById('zysk1').innerHTML = (isNaN(zy)?0:dodajzera(separate(zy)))+' '+CUR_VAL;
	document.getElementById('profit').innerHTML = (isNaN(zy-kw)?0:dodajzera(separate(zy-kw)))+' '+CUR_VAL;
}

function dodajzera(val) {
	var d = val.indexOf('.');
	if (d > 0) {
		if (val.length - d == 2) val += '0';
		if (val.length > (d + 2)) return val.substr(0, d+3);
	}
	return val;
}

function separate(val) {
	val = val.toString();

	var start;
	var dot = val.indexOf('.');
	if (dot > 0) {
		start = dot;
	} else {
		start = val.length;
	}

	while (start > 0) {
		start -= 3;
		val = val.substring(0, start) + ' ' + val.substring(start);
	}

	return val;
}

function setTabs() {
	
	var id = this.id.split("-");
	$('.tabContent').each(function() {
		var tmpId = this.id.split("-");
		if (this.id=='con-'+id[1]) {
			//if (tmpId[1]==2) { generate(this, tmpId[1], wplatyObecnie); }
			//else {
				$(this).show();
				$('#tab-'+tmpId[1]).addClass('current');
			//}
		}
		else {
			$(this).hide();
			$('#tab-'+tmpId[1]).removeClass('current');
		}
	});
}

function getAjaxOplata(skladka, lata) {

	var myUrl = ajaxUrl+'/amount/'+skladka+'/years/'+lata;
	$.get(myUrl, function(e) {
		oplata = parseInt(e);
		document.getElementById('oplataDystrybucyjna').innerHTML = (isNaN(oplata)?'-':oplata)+' '+CUR_VAL;;
		setWplaty();

		setWplatyPierwotnie();

		setWplatyObecnie();

		setKwotaWplat();
		
		setKwotaZgromadzona();
		
	});
}

function setNotLess() {
	if (isInt(this)) {
		
		notLess = eval(parseInt(this.value)*3);
		skladka = parseInt(this.value);
		if (skladka<100) {
			alert('Misięczna składka nie mniejsza niż 100 zł');
			this.value = 100;
			skladka = parseInt(this.value);
			pierwszaWplata = parseInt(skladka*3);
			notLess = parseInt(pierwszaWplata);
			$('#pierwszaWplata').get(0).value = pierwszaWplata;
		}
		if (pierwszaWplata<skladka*3) {
			pierwszaWplata = parseInt(skladka*3)
			$('#pierwszaWplata').get(0).value = pierwszaWplata;
			
		}
		document.getElementById('notLess').innerHTML = eval(parseInt(this.value)*3)+' '+CUR_VAL;;
		//init();
		return true;
	}
}

function setLata() {
/*	if (isInt(this) && this.value>10) {
		alert ('Program na maksymalnie 10 lat!');
		this.value = 10;
		this.focus();
		return false;
	} else */if (isInt(this) && this.value<2) {
		alert ('Program na minimalnie 2 lata!');
		this.value = 2;
		this.focus();
		return false;
	} else {
		lata = parseInt(this.value);
		//init();
		return true;
		}
}

function setStopaZwrotu() {
	if (isFloat(this)) {
		stopaZwrotu = parseFloat(this.value);
		//init();
		return true;
	}

}

function setWplata() {
	//notLess = parseInt(document.getElementById('notLess').text);
	if (isInt(this) && notLess>parseInt(this.value)) {
		alert ('Wysokość priewszej wpłaty nie może być niższa niż '+notLess+'!');
		this.value = notLess;
		this.focus();
		return false;
	} else {
		pierwszaWplata = parseInt(this.value);
		//init();
		return true;
	}
}

function _init() {
	if (lata === null) {lata = int($('#lata').get(0).value);}
	if (skladka === null) {skladka = int($('#skladka').get(0).value);}
	if (pierwszaWplata === null) {pierwszaWplata = int($('#pierwszaWplata').get(0).value);}
	if (notLess === null) {notLess = int(skladka*3)}
	if (stopaZwrotu === null) {stopaZwrotu = int($('#stopaZwrotu').get(0).value);}
	document.getElementById('notLess').innerHTML = notLess+' '+CUR_VAL;;

	//alert (lata+'|'+skladka+'|'+pierwszaWplata+'|'+notLess);
}

function setOplata() {
alert(oplata);
	document.getElementById('oplataDystrybucyjna').innerHTML = oplata+' '+CUR_VAL;;
}

function setWplaty() {
	
	wplaty = ((12*lata-1)*skladka)+pierwszaWplata-(pierwszaWplata-notLess);
	document.getElementById('wplaty').innerHTML = (isNaN(wplaty)?'-':separate(wplaty))+' '+CUR_VAL;;
}

function setWplatyPierwotnie() {
	wplatyPierwotnie = 12*lata;
	document.getElementById('wplatyPierwotnie').innerHTML = (isNaN(wplatyPierwotnie)?'-':wplatyPierwotnie);
}

function setWplatyObecnie() {
	wplatyObecnie = Math.ceil((wplaty-pierwszaWplata)/skladka)+1;
	document.getElementById('wplatyObecnie').innerHTML = isNaN(wplatyObecnie)?'-':wplatyObecnie;
}

function setKwotaWplat() {
	kwotaWplat = ((wplatyObecnie-1)*skladka)+pierwszaWplata;
	document.getElementById('kwotaWplat').innerHTML = (isNaN(kwotaWplat)?'-':separate(kwotaWplat))+' '+CUR_VAL;;
}

function setKwotaZgromadzona() {
	var kz = 0;
	var wp = 0;
	var str = '';
	//alert(wplatyObecnie);
	for(var i = 1; i<=wplatyObecnie; i++) {
		if (i==1) {
			//kz = (pierwszaWplata-oplata)*(1+Math.pow(1+(stopaZwrotu/100), (1/12))-1);
			kz = (pierwszaWplata-oplata)*(1+(1+(stopaZwrotu/100/12))-1);
			wp = pierwszaWplata;
			//str += Math.round(kz)+' -> '+wp+': '+Math.round(kz-wp)+'\n';
		} else {
			//kz = (kz+skladka)*(1+Math.pow(1+(stopaZwrotu/100), (1/12))-1);
			kz = (kz+skladka)*(1+(1+(stopaZwrotu/100/12))-1);
			wp += skladka;
			//str += Math.round(kz)+' -> '+wp+': '+Math.round(kz-wp)+'\n';
			//alert(kz);
		}
			
	}
	//alert(str);
	//alert(stopaZwrotu+'|'+parseFloat(stopaZwrotu/100));
	document.getElementById('kwotaZgromadzona').innerHTML = separate(Math.round(kz))+' '+CUR_VAL;;
	document.getElementById('zysk').innerHTML = separate(Math.round(kz-wp))+' '+CUR_VAL;;
}

function init() {
	getAjaxOplata(skladka, lata);
}

function int(el) {
	return parseInt(el);
}

function isInt(element) {
	if (isNaN(parseInt(element.value))) {
		alert ('Proszę podać wartość licznową!');
		element.focus();
		return false;
	} else return true;
}

function isFloat(element) {
	if (isNaN(parseFloat(element.value))) {
		alert ('Proszę podać wartość licznową!');
		element.focus();
		return false;
	} else return true;
}

function generate(el, tmpId, h) {

	$('#tab-'+tmpId).addClass('current');
	var myHeight = (parseInt(h)*15)+18;
	$(el).css('height', myHeight+'px');
	$(el).show();

	var resUrl = ajaxUrl+'/p/'+pierwszaWplata+'/o/'+oplata+'/s/'+stopaZwrotu+'/skl/'+skladka+'/w/'+wplatyObecnie;
	$.get(resUrl, function(e) {
		document.getElementById('tableResult').innerHTML = e;
		//$(el).show();
	});
}
