function postData() {
	$('#plusImage').css('display', 'none');
	$('#loadingImage').css('display', 'inline');
	
	// collecting data
	var ram = $('#calculatorRam').val();
	var hdd = $('#calculatorHdd').val();
	var cpu = $('#calculatorCpu').val();
	var traffic = $('#calculatorTraffic').val();
	var backup = $('#calculatorBackup').val();
	
	// posting data
	$.post('/inc/ajax/calculator.php', {'ram': ram, 'hdd': hdd, 'cpu': cpu, 'traffic': traffic, 'backup': backup}, updateData, 'json');
}

function updateData(data) {
	if (data == 'ERROR') {
		return false;
	}
	
	$('#packName').html(data.packName);
	$('#packRam').html(data.packRam);
	$('#packHdd').html(data.packHdd);
	$('#packCpu').html(data.packCpu);
	$('#packTraffic').html(data.packTraffic);
	$('#packPriceMonthly').html(data.packPriceMonthly);
	$('#packPriceYearly').html(data.packPriceYearly);
	
	$('#optionRam').html(data.optionRam);
	$('#optionRamPrice').html(data.optionRamPrice);
	$('#optionHdd').html(data.optionHdd);
	$('#optionHddPrice').html(data.optionHddPrice);
	$('#optionCpu').html(data.optionCpu);
	$('#optionCpuPrice').html(data.optionCpuPrice);
	$('#optionTraffic').html(data.optionTraffic);
	$('#optionTrafficPrice').html(data.optionTrafficPrice);
	$('#optionBackup').html(data.optionBackup == 'day' ? _BACKUP_OPTION_DAILY : _BACKUP_OPTION_HOURLY);
	$('#optionBackupPrice').html(data.optionBackupPrice);
	$('#optionsPriceMonthly').html(data.optionsPriceMonthly);
	$('#optionsPriceYearly').html(data.optionsPriceYearly);

	$('#priceVatIncl').html(data.priceVatIncl);
	$('#priceVat').html(data.priceVat);
	$('#priceVatExcl').html(data.priceVatExcl);
	$('#priceVatExclYearly').html(data.priceVatExclYearly);

	$('#optionContainerRam').css('visibility', data.optionRam == 0 ? 'hidden' : 'visible');
	$('#optionContainerHdd').css('visibility', data.optionHdd == 0 ? 'hidden' : 'visible');
	$('#optionContainerCpu').css('visibility', data.optionCpu == 0 ? 'hidden' : 'visible');
	$('#optionContainerTraffic').css('visibility', data.optionTraffic == 0 ? 'hidden' : 'visible');
	$('#optionContainerBackup').css('visibility', data.optionBackup == 'day' ? 'hidden' : 'visible');
	$('#optionsPrice').css('visibility', data.optionsPriceMonthly == 0 ? 'hidden' : 'visible');	
	
	$('#totalName').html(data.packName);
	$('#totalRam').html(data.totalRam);
	$('#totalHdd').html(data.totalHdd);
	$('#totalCpu').html(data.totalCpu);
	$('#totalTraffic').html(data.totalTraffic);
	$('#totalBackup').html(data.optionBackup == 'day' ? _BACKUP_OPTION_DAILY : _BACKUP_OPTION_HOURLY);
	
	$('#paymentDuration').empty();
	$('<option></option>').val('M').html(_PAYMENT_OPTION_MONTHLY.replace(/{price}/, data.priceVatExcl)).appendTo('#paymentDuration');
	$('<option></option>').val('Y').html(_PAYMENT_OPTION_YEARLY.replace(/{price}/, data.priceVatExclYearly)).appendTo('#paymentDuration');

	$('#loadingImage').css('display', 'none');
	$('#plusImage').css('display', 'inline');
	
	$('#base').css('visibility', 'visible');
	$('#options').css('visibility', 'visible');
	$('#config .next').css('visibility', 'visible');
}

$(document).ready(function(){
   
    $('#buttonStep1').bind('click', function(event) {    	
    	$('#step2').slideDown(1500);
    	$('#step1').slideUp(1000);
    	$('#revert1').fadeIn(1500);
    });
    
    $('#backToStep1').bind('click', function() {
    	$('#step2').slideUp(1500);
    	$('#step3').slideUp(1500);
    	$('#step1').slideDown(1000);
    	$('#revert1').fadeOut(1500);
    	$('#revert2').fadeOut(1500);
    });
    
    $('#buttonStep2').bind('click', function(event) {
    	if ($('#orderForm').validate().form()) {
	    	$('#step3').slideDown(1500);
	    	$('#step2').slideUp(1000);
	    	$('#revert2').fadeIn(1500);
	    }
    });
    
    $('#backToStep2').bind('click', function() {
    	$('#step1').slideUp(1000);
    	$('#step3').slideUp(1000);
    	$('#step2').slideDown(1500);
    	$('#revert2').fadeOut(1500);
    });

    $('#confirmButton').bind('click', function() {
    	$('#orderForm').submit();
    });
    
    // binding calculator data events
    $('#calculatorRam').bind('change', postData);
    $('#calculatorHdd').bind('change', postData);
    $('#calculatorCpu').bind('change', postData);
    $('#calculatorTraffic').bind('change', postData);
    $('#calculatorBackup').bind('change', postData);
    
    // make the call!
    postData();
});
