$(document).ready(function() { $('form').submit(function() { $(this) .find('input[type="submit"]') .attr({'disabled': true, 'value': 'Please Wait...'}); }); }); jQuery.fn.bindReadingCalculator = function(attributes) { function checkTracking() { if (($('#reading_value').val() != "") && ($('#reading_date').val() != "")){ $('#tracking').attr('disabled', false); }else{ $('#tracking').attr('disabled', true); } } function calculate() { if (!$('#reading_date').val() == '' && !$('#reading_value').val() == '') { $('input[type="submit"]').attr('disabled', false); $('input[type="submit"]').show('slide'); var kmsTravelled = parseInt($('#reading_value').val()) - startOfYearValue; var daysThisFbtYear = Math.round((Date.parse($('#reading_date').val()) - clientStartOfYear) / 86400000)+1; daysThisFbtYear < 0 ? daysThisFbtYear = 0 : daysThisFbtYear; var totalRequired = Math.round((packageKms/365)*(((startOfNextFbtYear - clientStartOfYear) / 86400000)))-1; if (isNaN(kmsTravelled)) { kmsTravelled = 0; } else { if(daysThisFbtYear > 0){ var requiredKms = Math.round((packageKms/365)*daysThisFbtYear); var annualisedKms = Math.round(kmsTravelled / daysThisFbtYear * daysInThisFbtYear); }else{ var requiredKms = 0; var annualisedKms = 0; } $('#on-track').removeClass('good bad-cross'); $('#is-satisfied').removeClass('good bad'); if (annualisedKms > packageKms) { $('#on-track') .addClass('good-cross') .text('You\'re on track'); } else { $('#on-track') .addClass('bad-cross') .text('You\'re not on track'); } if ((kmsTravelled >= totalRequired)) { $('#is-satisfied') .addClass('good') .text('You have satisfied the FBT requirements'); $('#compensation-kms').hide(); } else { $('#is-satisfied') .addClass('bad') if (annualisedKms >= packageKms) { $('#is-satisfied') .html( "To remain on track and ensure you do not create an FBT liability at the end of the FBT year you must:

Travel "+(totalRequired - kmsTravelled)+"kms by the 31st March which equates to "+Math.round((totalRequired - kmsTravelled) / ((startOfNextFbtYear - Date.parse($('#reading_date').val())) / 86400000))+"kms per day." ); }else{ $('#is-satisfied') .html( "To satisfy the FBT requirements and ensure you do not create an FBT liability at the end of the FBT year you must:

Travel "+(totalRequired - kmsTravelled)+"kms by the 31st March which equates to "+Math.round((totalRequired - kmsTravelled) / ((startOfNextFbtYear - Date.parse($('#reading_date').val())) / 86400000))+"kms per day." ); } //$('#additional-kms').text(requiredKms - kmsTravelled); //$('#daily-kms').text(Math.round((requiredKms - kmsTravelled) / Math.round((startOfNextFbtYear - Date.parse($('#reading_date').val())) / 86400000))); $('#compensation-kms').show(); } $('#annualised-kms').text(annualisedKms); // Show results if hidden if ($('#results').css('display') == 'none') { $('#results').show('scroll'); } } $('#days-in-fbt-year').text(daysThisFbtYear); $('#kms-travelled').text(kmsTravelled); } else { $('input[type="submit"]').attr('disabled', true); $('input[type="submit"]').hide('slide'); } } // Gather attributes var firstReadingYearDate = attributes['firstReadingYearDate']; var recentReadingDate = attributes['recentReadingDate']; var recentReadingValue = parseInt(attributes['recentReadingValue']); var startOfNextFbtYear = new Date((Date.today().getMonth() < 3 ? Date.today().getFullYear() : Date.today().getFullYear() + 1), 3, 1); var daysInThisFbtYear = 365; var clientStartOfYear = attributes['clientStartOfYear'] var firstReadingEverValue = parseInt(attributes['firstReadingEverValue']); var startOfYearValue = parseInt(attributes['startOfYearReading']); var packageKms = parseInt(attributes['requiredKms']); var startReadingSupplied = parseInt(attributes['startReadingSupplied']); // Bind listeners and date picker $(this) .submit(function() { if (!$(this).hasClass('confirmed') && !$('#end-record').dialog('isOpen')) { var date = $('#reading_date').val().split('-'); var readingValue = parseInt($('#reading_value').val()); if (readingValue < recentReadingValue || readingValue < startOfYearValue) { $('#error-dialog').dialog('open'); } else if(date[0].length != 4 || parseInt(date[1]) > 12 || parseInt(date[2]) > 31){ $('#bad-date-dialog').dialog('open'); } else { $('#confirm-reading-value').text(readingValue); $('#confirm-reading-date').text($('#reading_date').val()); $('#confirmation-dialog').dialog('open'); } return false; }else if($('#end-record').dialog('isOpen')){ var readingValue = parseInt($('#last_reading_value').val()); if(readingValue < startOfYearValue){ alert("Please enter a value over "+startOfYearValue+"kms."); return false; }else{ $('#last_reading_date').attr('disabled',""); return true; } } else { return true; } }); //$('#reading_date') // .change(function(){ // $('#results').hide("slow"); // checkTracking(); // }) // .datepicker({ // minDate: recentReadingDate.clone().add(1).days(), // maxDate: '+0d', // dateFormat: 'yy-mm-dd' // }); // //$('#reading_value') // .change(function(){ // $('#results').hide("slide"); // $('input[type="submit"]').attr('disabled', true); // checkTracking(); // }) // .keyup(function(){ // $('#results').hide("slide"); // $('input[type="submit"]').attr('disabled', true); // checkTracking(); // }); // // //$('#tracking') // .click(calculate) $('#reading_date') .datepicker({ minDate: recentReadingDate.clone().add(1).days(), maxDate: '+0d', dateFormat: 'yy-mm-dd' }); $('#calculate_button') .click(calculate) $('#error-dialog').dialog({ modal: true, autoOpen: false, overlay: { backgroundColor: '#000', opacity: 0.5 }, close: function() { $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); }, buttons: { Ok: function() { $(this).dialog('close'); $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); } } }); $('#bad-date-dialog').dialog({ modal: true, autoOpen: false, width: 600, overlay: { backgroundColor: '#000', opacity: 0.5 }, close: function() { $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); }, buttons: { Ok: function() { $(this).dialog('close'); $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); } } }); $("#whatis").dialog({ modal: true, autoOpen: false, width: 600, overlay: { backgroundColor: '#000', opacity: 0.5 }, close: function() { $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); }, buttons: { 'Close': function() { $(this).dialog('close'); $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); } } }); $("#confirmation-dialog").dialog({ modal: true, autoOpen: false, width: 600, overlay: { backgroundColor: '#000', opacity: 0.5 }, close: function() { $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); }, buttons: { 'Confirm Reading': function() { if($('#legal-dec').attr("checked")){ $(this).dialog('close') $('#record-reading-form') .addClass('confirmed') .submit(); }else{ $('#please-check').show("slide"); } }, Cancel: function() { $(this).dialog('close') $('input[type="submit"]') .val('Record Reading') .attr('disabled', false); } } }); if(startReadingSupplied != 1){ $("#end-record").dialog({ modal: true, autoOpen: false, width: 600, closeOnEscape: false, overlay: { backgroundColor: '#000', opacity: 0.5 }, close: function() { alert("You must supply a reading for the beginning of this FBT year to continue"); }, buttons: { 'Record Reading': function() { $('#end-record form') .addClass('confirmed') .submit(); } } }); $("#end-record").dialog('open'); $('#reading_date').attr('disabled','1'); $('#reading_value').attr('disabled','1'); } }