﻿$(document).ready(function () {

    //WCF Data Service location.
    var urlDestination = "http://service.piers.com/JocSailings/REST/JocSailingsDataProvider.svc/Destinations";

    //Today's date and format.
    var today = new Date();
    var todayFormat = (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear();

    var originationResults = [];
    var destinationResults = [];

    var origination = document.getElementById("origination");
    var destination = document.getElementById("destination");
    var voyageDate = document.getElementById("voyageDate");

    //Watermarks.
    $('#origination').watermark('Type a Region, Country or Port');
    $('#destination').watermark('Type a Region, Country or Port');

    $("#origination").autocomplete({
        minLength: 3,
        search: function () { $(this).addClass('ui-autocomplete-input-working'); },
        source: function (request, response) {
            $.ajax({
                url: urlDestination + "?$callback=callback" + "&$format=json" + "&$filter=substringof('" + request.term + "',Destination)&$top=10",
                dataType: "jsonp",
                jsonpCallback: "callback",
                success: function (data) {

                    originationResults = [];

                    $.each(data.d, function (i, val) {
                        originationResults.push(val.Description)
                    });

                    $("#origination").removeClass('ui-autocomplete-input-working');

                    response(originationResults);
                }

            });
        }

    });

    //Destination autocomplete configuration.
    $("#destination").autocomplete({
        minLength: 3,
        search: function () { $(this).addClass('ui-autocomplete-input-working'); },
        source: function (request, response) {
            $.ajax({
                url: urlDestination + "?$callback=callback" + "&$format=json" + "&$filter=substringof('" + request.term + "',Destination)&$top=10",
                dataType: "jsonp",
                jsonpCallback: "callback",
                success: function (data) {

                    destinationResults = [];

                    $.each(data.d, function (i, val) {
                        destinationResults.push(val.Description)
                    });

                    $("#destination").removeClass('ui-autocomplete-input-working');

                    response(destinationResults);
                }

            });
        }
    });

    //Date picker configuration.
    $("#voyageDate").datepicker({
        minDate: -7,
        maxDate: '+6M',
        showOn: 'button',
        buttonImage: 'http://widget.piers.com/Images/calendar.gif',
        numberOfMonths: 1,
        showButtonPanel: true,
        buttonImageOnly: true
    });

    $("#voyageDate").val(todayFormat);

    $('#searchVoyages').live("click", function () {

        var searchString = "";

        //Validation.
        if ($.inArray(jQuery.trim(origination.value), originationResults) == -1) {
            return alert('A valid Origin is required.');
        }

        if ($.inArray(jQuery.trim(destination.value), destinationResults) == -1) {
            return alert('A valid Destination is required.');
        }

        if (voyageDate.value == '') {
            voyageDate.value = todayFormat;
        }

        searchString = "http://www.jocsailings.com/GlobalSailingSchedules/SailingScheduleResults.aspx?ORIGIN=" + origination.value + "&DEST=" + destination.value + "&DR=60&DT=" + voyageDate.value + "&VT=all%2c";


        window.open(searchString);
    });

});
