﻿jQuery().ready(function() {
    
	$('.side-box').hide();
    //activateTab("step-3");
	$('.steps').hide();
    
    $("#bijdrage_abo").val(50);
    $("#bijdrage_kosten").val(100);
    
    $("#bijdrage_abo, #bijdrage_kosten_excl").keyup(function() {
       return checkNumber( document.getElementById($(this).attr('id')) );
    })
    
    $("#bijdrage_abo").blur(function() {
        var val = getNumber( $(this).val());
        $("#bijdrage_abo_excl").val( printNumber( val / 1.21, true ) );
        $("#cost_abo .val").html( printNumber( getNumber($(this).val()) ) );
    });
    
     $("#bijdrage_abo").keyup(function() {
        var val = getNumber( $(this).val());
        $("#bijdrage_abo_excl").val( printNumber( val / 1.21, true ) );
        $("#cost_abo .val").html( printNumber( getNumber($(this).val()) ) );
    });
    
    $("#bijdrage_kosten").blur(function() {
        var val = getNumber( $(this).val());
        $("#bijdrage_kosten_excl").val( printNumber( val / 1.21, true ) );
        $("#cost_onetime .val").html( printNumber( getNumber($(this).val()) ) );
    });
    
    $("#bijdrage_kosten").keyup(function() {
        var val = getNumber( $(this).val());
        $("#bijdrage_kosten_excl").val( printNumber( val / 1.21, true ) );
        $("#cost_onetime .val").html( printNumber( getNumber($(this).val()) ) );
    });
    
    $(".nav-bar a").click(function() {
        activateTab($(this).attr('rel'));
    });
    
    $(".selected-prod").click(function() {
        getProduct( $(this).val() );
    });
    
    $(".selected-installation").click(function() {
        getInstallation($(this).val() );
    });
    
    $("#wifi_router, #powerline_adapters").click(function() {
        getInstallation( $(".selected-installation:checked").val() );
    });
    
    $('#btn-calculate').click(function() {
    	$('#sum-box-result').show();
    	$('#sum-box-calculate').hide();
    	$('#step-3').hide();
    	toggleStepImg('step-3');
    	getTotals();
    });
    
    $("#bijdrage_abo, #bijdrage_kosten").trigger('blur');
	if(typeof(prodData) != 'undefined') {
		getProduct( $(".selected-prod:checked").val() );
		getInstallation( $(".selected-installation:checked").val() );
	}

    $('a').click(function() { this.blur(); });
    $('a').focus(function() { this.blur(); });
    
    $('a.external').each(function() { $(this).attr('target', "_blank"); });
    
    var $scrollingDiv = $("#c-right");
    var elemTop = $scrollingDiv.offset().top;

    $(window).scroll(function(){
	    $scrollingDiv.stop();
	
	    if ($(window).scrollTop()>elemTop) {
	    	$scrollingDiv.css({"marginTop": ($(window).scrollTop()-elemTop) + "px"});
	    } else {
	    	$scrollingDiv.css({"marginTop": "0px"});
	    }
    });
    
    
});

function getNumber(v)
{
    var n = 0;
    
    n = String(v).replace(",", ".").replace("€", "");
    n = parseFloat(n);
    
    if (isNaN(n)) {
        n = 0;
    }
    
    return n;
}

function printNumber(v, c)
{
    var n = v;
    
    n = getNumber(v);
    n = Math.round(n*100)/100
    n = String(n).replace(".", ",");
    
    if (!c) {
        n = "€ " + n;
    }
    
    return n;
}

function getTotals()
{
    //
    var contrib_abo = getNumber($("#bijdrage_abo").val());
    var contrib_onetime = getNumber( $("#bijdrage_kosten").val() );
    
    // Get total install
    var tot_install = getNumber( $("#install_extra .val").html() )
        + getNumber( $("#install_type .val").html() )
        + getNumber( $("#install_act_cost .val").html() )
        - contrib_onetime;
    
    var prod_id = $(".selected-prod:checked").val();
    var price = getNumber( prodData[ prod_id ].price );
    var discount_price = getNumber( prodData[ prod_id ].discountPrice );
    var tv_price = getNumber( prodData[ prod_id ].idtvPrice );
    
    var tot_abo = (discount_price - contrib_abo);
    
    if (tot_abo < 0) {
        tot_abo = 0;
    }
    
    // add tv price
    tot_abo += tv_price;
    
    if (tot_install < 0) {
        tot_install = 0;
    }
    
    $("#sum-box-result #tot_abo .val").html( printNumber( tot_abo ) );
    $("#sum-box-result #tot_onetime .val").html( printNumber( tot_install ) );
}

function setPowerlineAdapters()
{
    var selected_install = $(".selected-installation:checked").val();
    
    if (selected_install == 'powerline') {
        var adapter_cnt = $("#powerline_adapters").val();
        $("#install_extra .lbl").html (POWERLINE_ADAPTERS_TXT + " (" + adapter_cnt + ")");
        $("#install_extra .val").html (printNumber( adapter_cnt*35) );
    }
}

function setWifiRouter()
{
    if ($("#wifi_router").attr('checked')) {
        
        $("#install_extra .lbl").html (WIFI_ROUTER_TXT);
        $("#install_extra .val").html ( printNumber(99) );
        
    } else {
        $("#install_extra .lbl").html ("");
        $("#install_extra .val").html ("");
    }
    
}

function getInstallation(install_id)
{
    var price   = installData[ install_id ].price;
    var name    = installData[ install_id ].name;
    
    $("#install_type .lbl").html ( name );
    $("#install_type .val").html ( numberCheck(price) ? printNumber(price) : printNumber(0) );
    
    var act_price   = installData[ install_id ].activationCost;
    var act_name    = ACTIVATION_TXT;
    
    $("#install_act_cost .lbl").html ( act_name );
    $("#install_act_cost .val").html ( numberCheck(act_price) ? printNumber(act_price) : printNumber(0) );
    
    if (install_id != 'wifi') {
        $("#wifi_router").attr("checked", "");
    }
    
    if (install_id == 'wifi' || install_id == 'powerline') {
    
        if (install_id == 'wifi') {
            setWifiRouter();
        }
        
        if (install_id == 'powerline') {
            setPowerlineAdapters()
        }
    
    } else {
        
        $("#install_extra .lbl").html ("");
        $("#install_extra .val").html ("");
        
    }
}

function getProduct(val)
{
    var cat_id  = prodData[ val ].cat_id;
    var name    = prodData[ val ].name;
    var price   = prodData[ val ].price;
    
    /*
    var imgs = '';
    for (i=0;i<catData[cat_id]['imgs'].length;i++) {
        imgs += '<img src=" ' + catData[cat_id]['imgs'][i] + '" /> ';
    }
    */
    
    //$("#telenet_pack_imgs").html(imgs);
    
    $("#telenet_pack .lbl").html( name );
    $("#telenet_pack .val").html( printNumber(price) );

}

function toggleStepImg(step)
{
	$('.btn-next-step').not($('#a-' + step)).html('<img src="http://graphics.tn-media.be/tsd3/tip/simulation/btn-plus.png" />');
	$('div.step-ftr').removeClass('step-ftr-full')
	x = $("#a-" + step).html();
	if (x.match(/btn\-plus/g)) {
		$('#a-' + step).html('<img src="http://graphics.tn-media.be/tsd3/tip/simulation/btn-min.png" />');
		$('#a-' + step).parent().next('div').next('div.step-ftr').addClass('step-ftr-full')
	} else {
		$('#a-' + step).html('<img src="http://graphics.tn-media.be/tsd3/tip/simulation/btn-plus.png" />');
	}
}

function activateTab(t)
{
	$('.side-box').show();
	$('#box-start-simulation').hide();
	
    $(".steps").not($('#'+t)).hide();
    //$("#" + t).show();
    $('#'+t).toggle();
    
    toggleStepImg(t);
    
    switch (t) {
        case 'step-1':
        	
            $("#sum-box-step-1").show();
            $("#sum-box-result, #sum-box-step-2, #sum-box-step-3, #sum-box-calculate").hide();
            break;
        case 'step-2':
            $("#sum-box-step-1, #sum-box-step-2").show();
            $("#sum-box-result, #sum-box-step-3, #sum-box-calculate").hide();
            break;
        case 'step-3':
            $("#sum-box-step-1, #sum-box-step-2, , #sum-box-step-3").show();
            $("#sum-box-calculate").show();
            $("#sum-box-result").hide();
            break;
        case 'step-4':
            $("#sum-box-result, #sum-box-step-1, #sum-box-step-2, , #sum-box-step-3").show();
            getTotals();
            break;
    }
    
    //$(".nav-bar").attr("id", "nav-bar-" + t);
    location.href='#a-' + t;
}
        
function numberCheck(strString)
{
    var strValidChars = "0123456789,.-";
    var strChar;
    var blnResult = true;
    
    if (strString.length == 0) {
        return false;
    }
    
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

// calculate the ASCII code of the given character
function CalcKeyCode(aChar) {
    var character = aChar.substring(0,1);
    var code = aChar.charCodeAt(0);
    return code;
}

function checkNumber(val) {
    var strPass = val.value;
    var strLength = strPass.length;
    var lchar = val.value.charAt((strLength) - 1);
    var cCode = CalcKeyCode(lchar);
    
    if (!numberCheck(lchar)) {
        var myNumber = val.value.substring(0, (strLength) - 1);
        val.value = myNumber;
    }
    return false;
}
