/**
 * Tarieven calculator v1.4
 * by daantje@ruig.com
 *
 * Last update: Mon, 04 Jul 2011 11:33:10 +0200
 * 
 * 2010 - Copyright by NHEC.
 * All rights preserved. 
 */

var regio_prices = [[],	[0.05290,	0.28861,	0.1639],
						[0.05885,	0.28861,	0.1639],
						[0.05463,	0.28861,	0.1639],
						[0.04984,	0.28861,	0.1639],
						[0.05665,	0.28861,	0.1639],
						[0.05620,	0.28861,	0.1639],
						[0.05829,	0.28861,	0.1639],
						[0.05460,	0.28861,	0.1639],
						[0.05557,	0.28861,	0.1639],
						[0.05542,	0.28861,	0.1639]
					];//toesl <,	levering,	belast

var regio_prices_high = [[],[0.04722],
						    [0.05279],
						    [0.04881],
						    [0.04437],
						    [0.05061],
						    [0.05033],
						    [0.05231],
						    [0.04491],
						    [0.04980],
						    [0.04959]
					];//toesl >

var gas_tax_high = new Array();
	gas_tax_high[5000] 			= 0.1639;
	gas_tax_high[170000] 		= 0.1419;
	gas_tax_high[1000000] 		= 0.0393;
	gas_tax_high[10000000] 		= 0.0125;

var stroom_tax_high = new Array();
	stroom_tax_high[10000] 		= 0.1121;
	stroom_tax_high[50000] 		= 0.0408;
	stroom_tax_high[1000000]	= 0.0109;


var enkel_price = 	[0.07184];
var nacht_piek =	[0.07736];
var nacht_dal =		[0.06220];
var avond_piek = 	[0.07751];
var avond_dal =		[0.06562];
var vast_recht =	1.990;
var heffingskorting = -379.16 / 1.19;

var netbeheer_stroom = 18.23;
var netbeheer_gas = [13.22,		13.84166];

var selected_regio = 1;

//globals
var o_stroom_verbruik = 0;
var o_stroom_vastrecht = 0;
var o_stroom_energiebelasting = 0;
var o_stroom_heffingskorting = 0;
var o_gas_verbruik = 0;
var o_gas_vastrecht = 0;
var o_gas_energiebelasting = 0;
var o_net_stroom = 0;
var o_net_gas = 0;

var gave_max_alert = false;
var gave_high_alert = false;

Number.prototype.formatMoney = function(c, d, t){
	var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};


$(document).ready(function(){
	
	if($('.prijscalculator_module').length){
	
		//*&(@^*^#!@(* MSIE!!
		if($.browser.msie && $.browser.version <= 7){
			$('.prijscalculator_module tr.enkel td:eq(0)').attr('rowspan','4');
		}
	
		var calcTotals = function(){
			s = o_stroom_verbruik + o_stroom_vastrecht + o_stroom_energiebelasting + o_stroom_heffingskorting;
			g = o_gas_verbruik + o_gas_vastrecht + o_gas_energiebelasting;	
			$('.o_subtotaal').html((s + g).formatMoney(2, ',', '.'));
			
			t = (s + g + o_net_stroom + o_net_gas);
			$('.o_totaal_jaar').html(t.formatMoney(2, ',', '.'));
			$('.o_totaal_maand').html((t / 12).formatMoney(2, ',', '.'));
		}
	
		//dubbel/enkel switch
		chngeCalcDEswich = function(){
			s = $('.calc_DE_switch input:checked').val();
			if(s == 'dubbel.nacht'){
				$('.prijscalculator_module tr.enkel').hide();
				$('.prijscalculator_module tr.dubbel.avond').hide();
				$('.prijscalculator_module tr.dubbel.nacht').show();
				$('.prijscalculator_module .' + s + ' input.v_dal_kwh').trigger('keyup');
			}else if(s == 'dubbel.avond'){
				$('.prijscalculator_module tr.enkel').hide();
				$('.prijscalculator_module tr.dubbel.nacht').hide();
				$('.prijscalculator_module tr.dubbel.avond').show();
				$('.prijscalculator_module .' + s + ' input.v_dal_kwh').trigger('keyup');
			}else if(s == 'enkel'){
				$('.prijscalculator_module tr.enkel').show();
				$('.prijscalculator_module tr.dubbel').hide();
				$('.prijscalculator_module input.v_enkel_kwh').trigger('keyup');
			}
		}
		$('label.calc_DE_switch input').change(chngeCalcDEswich).click(chngeCalcDEswich);
		
		//stroom calc
		$('.prijscalculator_module input.input').not('.v_gas').keyup(function(){
			err = false;
			
			if($(this).hasClass('v_enkel_kwh')){
				$('input.v_enkel_kwh').val(parseInt($('input.v_enkel_kwh').val()));

				if($('input.v_enkel_kwh').val() > 10000){
					alert('Bij stroomverbruik boven de 10.000kWh is een andere energiebelasting op het meerverbruik van toepassing.');
				}

				for(k in stroom_tax_high){
					if(parseInt($('input.v_enkel_kwh').val()) < k){
						belast = parseFloat(stroom_tax_high[k]);
						break;
					}
				}

				o_stroom_verbruik = (enkel_price[0] * $('input.v_enkel_kwh').val()) * 1.19;
				$('.o_stroom_verbruik').html(o_stroom_verbruik.formatMoney(2, ',', '.'));

				o_stroom_energiebelasting = (belast * $('input.v_enkel_kwh').val()) * 1.19;
				$('.o_stroom_energiebelasting').html(o_stroom_energiebelasting.formatMoney(2, ',', '.'));
			}else{
				s = $('.calc_DE_switch input:checked').val();
				if(parseInt($('.' + s + ' input.v_dal_kwh').val()) + parseInt($('.' + s + ' input.v_piek_kwh').val()) > 10000){
					alert('Bij stroomverbruik boven de 10.000kWh is een andere energiebelasting op het meerverbruik van toepassing.');
				}

				for(k in stroom_tax_high){
					if(parseInt($('.' + s + ' input.v_dal_kwh').val()) + parseInt($('.' + s + ' input.v_piek_kwh').val()) < k){
						belast = parseFloat(stroom_tax_high[k]);
						break;
					}
				}
				
				if(s == 'dubbel.nacht'){
					dal = nacht_dal;
					piek = nacht_piek;
				}else{
					dal = avond_dal;
					piek = avond_piek;
				}
				
				o_stroom_verbruik = ((dal[0] * $('.' + s + ' input.v_dal_kwh').val()) + (piek[0] * $('.' + s + ' input.v_piek_kwh').val())) * 1.19;
				$('.o_stroom_verbruik').html(o_stroom_verbruik.formatMoney(2, ',', '.'));

				o_stroom_energiebelasting = ((belast * $('.' + s + ' input.v_dal_kwh').val()) + (belast * $('.' + s + ' input.v_piek_kwh').val())) * 1.19;
				$('.o_stroom_energiebelasting').html(o_stroom_energiebelasting.formatMoney(2, ',', '.'));
			}
			
			if(!err){
				o_stroom_vastrecht = (((vast_recht / 1.19) * 12) * 1.19);
				$('.o_stroom_vastrecht').html(o_stroom_vastrecht.formatMoney(2, ',', '.'));
				
				o_stroom_heffingskorting = heffingskorting * 1.19;
				$('.o_stroom_heffingskorting').html(o_stroom_heffingskorting.formatMoney(2, ',', '.'));
				
				o_net_stroom = (12 * netbeheer_stroom);
				$('.o_net_stroom').html(o_net_stroom.formatMoney(2, ',', '.'));

				calcTotals();
			}
		});

		//gas calc	
		$('.prijscalculator_module input.v_gas').keyup(function(){
			
			//remove shit
			$('input.v_gas').val(parseInt($('input.v_gas').val()));
			
			//do calc
			if($('input.v_gas').val() > 10000000 && !gave_max_alert){
				gave_max_alert = true;
				alert('De berekening gaat tot 10.000.000m3. Neem contact met ons op voor een scherpe offerte.');
			}else{
				r = regio_prices[selected_regio];
				toesl = r[0];
				levering = r[1];
				belast = r[2];

				if($('input.v_gas').val() > 5000){
					if(!gave_high_alert){
						gave_high_alert = true;
						alert('Bij een gasverbruik boven de 5.000m3 is een andere energiebelasting op het meerverbruik van toepassing.');
					}

					toesl = regio_prices_high[selected_regio][0];

					for(k in gas_tax_high){
						if(parseInt($('input.v_gas').val()) < k){
							belast = parseFloat(gas_tax_high[k]);
							break;
						}
					}
				}
				
				o_gas_verbruik = (parseInt($('input.v_gas').val()) * (toesl + levering)) * 1.19;
				$('.o_gas_verbruik').html(o_gas_verbruik.formatMoney(2, ',', '.'));
				
				o_gas_vastrecht = (((vast_recht / 1.19) * 12) * 1.19);
				$('.o_gas_vastrecht').html(o_gas_vastrecht.formatMoney(2, ',', '.'));
	
				o_gas_energiebelasting = (belast * parseInt($('input.v_gas').val())) * 1.19;
				$('.o_gas_energiebelasting').html(o_gas_energiebelasting.formatMoney(2, ',', '.'));
	
				i = parseInt($('input.v_gas').val()) > 4000 ? 1 : 0;
				o_net_gas = (12 * netbeheer_gas[i]);
				$('.o_net_gas').html(o_net_gas.formatMoney(2, ',', '.'));
	
				calcTotals();
			}
		});

/*
		$('.tarieven_img').maphilight({
			fill: true,
			fillColor: 'cccccc',
			fillOpacity: 0.5,
			stroke: true,
			strokeColor: 'ffffff',
			strokeOpacity: 1,
			strokeWidth: 1,
			fade: true,
			alwaysOn: false
		});
*/
	}

});

function viewCalc(){
	$('.calculation_info').show();
	$('.viewcalc').hide();
	$("#middle > div.article.default").css('height','auto');
}

function regioMap(v){
	selected_regio = v;
	$('.selected_regio').text(v);
	$('.prijscalculator_module input.v_gas').trigger('keyup');
}
