﻿//-------- Start Load Selects --------
function LoadSelects(default_hour) {
    for (var i = 0; i < 24; i++) {
        var ora = (i < 10 ? '0' + i : i) + ':00';
        var options = '<option value="' + ora + '">' + ora + '</option>';
        $('#pickuptime').append(options);
        $('#dropofftime').append(options);
    }
    $('#pickuptime').val(default_hour);
    $('#dropofftime').val(default_hour);
}
//-------- End Load Selects --------
//-------- Start Validate Submit --------
function ValidateForm(location,pickupdate, dropoffdate) {
    var message = '';
    var today = new Date();
    var datePath = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
    var matchPu = pickupdate.match(datePath);
    var matchDo = dropoffdate.match(datePath);    
    var temppuString = pickupdate.split('/');
    var tempdoString = dropoffdate.split('/');
    var locationValid = true;
    var date1valid;
    var date2valid;
    if (matchPu == null || !(date1valid = IsDate(temppuString[0], temppuString[1], temppuString[2]))) {
        message += 'La data di ritiro non é in un formato valido.\n';
    }
    if (matchDo == null || !(date2valid = IsDate(tempdoString[0], tempdoString[1], tempdoString[2]))) {
        message += 'La data di consegna non é in un formato valido.\n';
    }
    if (location.length != 3) {
        message += 'La località scelta non é valida.';
        locationValid = false;
    }
    var pickUpDate = new Date(temppuString[2], temppuString[1] - 1, temppuString[0]);
    var dropOffDate = new Date(tempdoString[2], tempdoString[1] - 1, tempdoString[0]);
    if (locationValid && date1valid && date2valid) {
        if (CompareDates(today, pickUpDate)) {
            if (CompareDates(pickUpDate, dropOffDate)) {
                return true;
            }
            else {
                message += 'La data di consegna deve essere maggiore o uguale alla data di ritiro.';
            }
        }
        else {
            message += 'La data di ritiro deve essere maggiore o uguale alla data odierna.';
        }
    }    
    alert(message);
    return false;
}
//-------- End Validate Submit --------
//-------- Start Compare Dates --------
function CompareDates(date1, date2) {    
    if (date2.getFullYear() > date1.getFullYear()) {
        return true;
    }
    else if (date2.getFullYear() == date1.getFullYear()) {
        if (date2.getMonth() > date1.getMonth()) {
            return true;
        }
        else if (date2.getMonth() == date1.getMonth()) {
            if (date2.getDate() >= date1.getDate()) {
                return true;
            }
        }
    }
    return false;
}
//-------- End Compare Dates --------
//-------- Start IsDate --------
function IsDate(day, month, year) {
    if (day < 1 || day > 31) {
        return false;
    }
    if (month < 1 || month > 12) {
        return false;
    }    
    if((month == 4 || month == 6 || month == 9 || month == 11) && day > 30){
        return false;
    }
    if (month == 2) {
        var bisestile = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if ((bisestile && day > 29) || (!bisestile && day > 28)) {
            return false;
        }
    }
    return true;
}
//-------- End IsDate --------
//-------- Start Check Url --------
function CheckUrl(url) {
    var pos_start = url.indexOf('?');
    var key_value_array = {};
    if (pos_start > -1) {
        var query_string = url.substring(pos_start + 1);
        var temp_array = query_string.split('&');

        $.each(temp_array, function(x, y) {
            var temp = y.split('=');
            key_value_array[temp[0]] = temp[1];
        });
    }
    else {
        key_value_array = null;
    }
    return key_value_array;
}
//-------- End Check Url --------
//-------- Start Get Keysearch --------
function GetKeySearch(document) {
    var ref = document.referrer;
    var reg = new RegExp('q=([^&]*?)(&|$)');
    var key = reg.exec(ref);
    if (key != null && key.length > 1) {
        return key[1];
    }
    return '';
}
//-------- End Get Keysearch --------
