﻿
function validateParking(){
    var messages = [];
    var error = null;
    
    if ($('#parkingEntryMonth').length > 0){
        var tempent = $('#parkingEntryMonth').val().split(' ');
        var tempext = $('#parkingExitMonth').val().split(' ');
        var entryMonth = findMonth(tempent[0]);
        var exitMonth = findMonth(tempext[0]);
        var entryMonthAlpha = tempent[0];
        var exitMonthAlpha = tempext[0];
        var entryYear = '20' + tempent[1];
        var exitYear = '20' + tempext[1];
        var entryDay = $('#parkingEntryDay').val();
        var exitDay = $('#parkingExitDay').val();
    }
    else {
        var entryDay = $('#parkingEntryDay').val().split(' ');
        var exitDay = $('#parkingExitDay').val().split(' ');
        var entryMonth = findMonth(entryDay[1]);
        var exitMonth = findMonth(exitDay[1]);        
        var entryMonthAlpha = entryDay[1];
        var exitMonthAlpha = exitDay[1];
        var entryYear = '20' + entryDay[2];
        var exitYear = '20' + exitDay[2];
        entryDay = entryDay[0];
        exitDay = exitDay[0];
    }
    
    var entryTime = $('#parkingEntryTime').val();
    var exitTime = $('#parkingExitTime').val();
    var terminal = $('#parkingTerminal').val();


    if (terminal == 'null') messages.push('terminal');
    
    if (exitTime.indexOf(':') > -1){
        var ext = exitTime.split(':');
        var exitHour = parseInt(ext[0],10) + 1;
    }
    else messages.push('exitTime');
    
    if (entryTime.indexOf(':') > -1){
        var ent = entryTime.split(':');
        var entryHour = parseInt(ent[0],10) + 1;
    }
    else messages.push('entryTime');

    $('#parkingForm .errors li').hide();
    if (messages.length > 0){
        for(var i = 0, len = messages.length; i < len; i++)
            $('#parkingForm .errors .'+messages[i]).show();
        $('#parkingForm .errors').slideDown('fast');
        return false;
    }
    
    var entryDate = new Date(entryYear,entryMonth,entryDay,entryHour,0);
    var exitDate = new Date(exitYear,exitMonth,exitDay,exitHour,0);
    
    if (entryDate.getTime() > exitDate.getTime()){
        $('#parkingForm .errors .exitDate').show();
        $('#parkingForm .errors').slideDown('fast');
        error = true;
    }
    if (exitDate.getTime() - entryDate.getTime() > 8553600000){
        $('#parkingForm .errors .toolong').show();
        $('#parkingForm .errors').slideDown('fast');
        error = true;
    }
        
    if (error) return false;
    
    $('#parkingForm #dm').val(entryMonthAlpha);
    $('#parkingForm #rm').val(exitMonthAlpha);
    $('#parkingForm #dy').val(entryYear.substr(2));
    $('#parkingForm #ry').val(exitYear.substr(2));
    $('#parkingForm #dd').val(entryDay);
    $('#parkingForm #rd').val(exitDay);
    $('#parkingForm #dmy').val((++entryMonth)+'/'+entryYear.substr(2));
    $('#parkingForm #rmy').val((++exitMonth)+'/'+exitYear.substr(2));
    $('#parkingForm #t').val(entryTime.replace(':',''));
    $('#parkingForm #rt').val(exitTime.replace(':',''));
    $('#parkingForm #ap').val('LGW'+terminal);
    
    $('#parkingForm .errors').hide();
    
    return true;
}

function findMonth(inName){
    var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    for(var i in months){
        if (months[i] == inName) return i;
    }
    return 0;
}