/// <reference path="jquery-1.3.2-vsdoc2.js" />
/// <reference path="scripts/JSON2JS/json2.js" />

var selectedCriteria = new Array();

var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth() + 1; // Add one, as JavaScript months start at 0 while c# starts at 1.
var curr_year = d.getFullYear();

var showFlights;
var showCars;
var showAccommodation;

$(function() {
    //Wire up the checkboxes to display the correct combos.
    //Flight, Car, Hotel, Flight + Car
    //    $('#Selector input').click(SetCheckboxes);
    //    selectedCriteria[0] = '';
    //    selectedCriteria[1] = '';
    //    selectedCriteria[2] = '';

    GetConfigValues();

    $('#Selector input').click(
    function() {
        //alert($('#Selector').find('input:checked').val());
        var selectedValue = $('#Selector').find('input:checked').val();

        switch (selectedValue) {
            case 'Flights':
                $('#FlightTable').show();
                $('#AccommodationTable').hide();
                $('#CarHireTable').hide();
                $('#SectionHeading').text('Book a flight');
                break;
            case 'Hotels':
                $('#FlightTable').hide();
                $('#AccommodationTable').show();
                $('#CarHireTable').hide();
                $('#SectionHeading').text('Get a room');
                break;
            case 'Cars':
                $('#FlightTable').hide();
                $('#AccommodationTable').hide();
                $('#CarHireTable').show();
                $('#SectionHeading').text('Hire a car');
                break;
        }
    });
});

function GetConfigValues() {
    //Get the configuration values from the server.
    var host = { hostname: window.location.hostname };
    var json = JSON2.stringify(host);
    ajaxJsonPostConfig('GetConfigOptions', json, SetupForm, handleError);
}

function SetupForm(result) {
    var config = JSON2.parse(result.d);
    var activeOptions = 0;
    var tableToSow = '';
    if (config.ShowFlights) {
        InitFlights();
        activeOptions++;
        tableToSow = 'flights';
    }

    if (config.ShowCars) {
        InitCars();
        activeOptions++;
        tableToSow = 'cars';
    }

    if (config.ShowAccommodation) {
        InitHotels();
        activeOptions++;
        tableToSow = 'hotels';
    }

    if (activeOptions > 1) {
        if (config.ShowFlights) {
            $('#FlightRadio').attr('style', 'display:block');
        }
        else {
            $('#FlightRadio').attr('style', 'display:none');
        }

        if (config.ShowCars) {
            $('#CarRadio').attr('style', 'display:block');
        }
        else {
            $('#CarRadio').attr('style', 'display:none');
        }

        if (config.ShowAccommodation) {
            $('#HotelRadio').attr('style', 'display:block');
        }
        else {
            $('#HotelRadio').attr('style', 'display:none');
        }
    }
    else {
        $('#FlightRadio').attr('style', 'display:none');
        $('#CarRadio').attr('style', 'display:none');
        $('#HotelRadio').attr('style', 'display:none');
    }

    switch (tableToSow) {
        case 'flights':
            $('#FlightTable').show();
            $('#FlightRadio input').attr('checked', 'true');
            $('#SectionHeading').text('Book a flight');
            break;
        case 'cars':
            $('#CarHireTable').show();
            $('#CarRadio input').attr('checked', 'true');
            $('#SectionHeading').text('Hire a car');
            break;
        case 'hotels':
            $('#AccommodationTable').show();
            $('#HotelRadio input').attr('checked', 'true');
            $('#SectionHeading').text('Get a room');
            break;
    }
}

function ajaxJsonPost(method, data, callback, error) {
    var url = "/PortalModules/DirectoryModule/TripSelectorServices/CarService.svc/" + method;
    $.ajax({
        url: url,
        data: data,
        type: "POST",
        processData: true,
        contentType: "application/json",
        timeout: 10000,
        dataType: "json",
        success: callback,
        error: error,
        timeout: 30000
    });
}

function ajaxJsonPostHotel(method, data, callback, error) {
    var url = "/PortalModules/DirectoryModule/TripSelectorServices/AccommodationService.svc/" + method;
    $.ajax({
        url: url,
        data: data,
        type: "POST",
        processData: true,
        contentType: "application/json",
        timeout: 10000,
        dataType: "json",
        success: callback,
        error: error,
        timeout: 30000
    });
}

function ajaxJsonPostFlight(method, data, callback, error) {
    var url = "/PortalModules/DirectoryModule/TripSelectorServices/FlightService.svc/" + method;
    $.ajax({
        url: url,
        data: data,
        type: "POST",
        processData: true,
        contentType: "application/json",
        timeout: 10000,
        dataType: "json",
        success: callback,
        error: error,
        timeout: 30000
    });
}

function ajaxJsonPostConfig(method, data, callback, error) {
    var url = "/PortalModules/DirectoryModule/TripSelectorServices/TripperConfigService.svc/" + method;
    $.ajax({
        url: url,
        data: data,
        type: "POST",
        processData: true,
        contentType: "application/json",
        timeout: 10000,
        dataType: "json",
        success: callback,
        error: error,
        timeout: 30000
    });
}

function handleError(XMLHttpRequest, textStatus, errorThrown) {
    alert(XMLHttpRequest.responseText);
}

function SetCheckboxes() {
    var controlId = $(this).attr('Id');
    var controlChecked = $(this).attr('checked');

    switch (controlId) {
        case 'FlightCheckbox':
            if (controlChecked == true) {
                $('#AccommodationCheckbox').parent('li').fadeOut('normal');
                selectedCriteria[0] = 'Get a flight';
                selectedCriteria[1] = '';
                $('#FlightTable').fadeIn('slow');
            }
            else {
                $('#AccommodationCheckbox').parent('li').fadeIn('normal');
                selectedCriteria[0] = '';
                if ($('#AccommodationCheckbox').attr('checked') == true) {
                    selectedCriteria[1] = 'Find a room'
                }
                $('#FlightTable').fadeOut('slow');
            }
            break;
        case 'AccommodationCheckbox':
            if (controlChecked == true) {
                selectedCriteria[1] = 'Find a room';
                $('#AccommodationTable').fadeIn('slow');
            }
            else {
                selectedCriteria[1] = '';
                $('#AccommodationTable').fadeOut('slow');
            }
            break;
        case 'CarCheckbox':
            if (controlChecked == true) {
                $('#CarHireTable').fadeIn('slow');
                selectedCriteria[2] = 'Hire a car';
            }
            else {
                $('#CarHireTable').fadeOut('slow');
                selectedCriteria[2] = '';
            }
            break;
    }

    var headingMessage = selectedCriteria[0] + ' ' + selectedCriteria[1] + ' ' + selectedCriteria[2];
    $('#SectionHeading').text(headingMessage);
}




