$(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');
}
}