﻿
function searchTrip(categoryID, regionID) {
    //var currentAnchor = document.location.hash;
    //currentAnchor = currentAnchor.split('/')[0];
    var newAnchor = "#findTripList";
    var category = $("#" + categoryID + " option:selected").val();
    var region = $("#" + regionID + " option:selected").val();
    var post = $("#post").val();
    var keyword = $("#keyword").val();
    var sort = getSelectedSort();
    if (category != "") {
        newAnchor += "/category/" + category;
    }
    if (region != "") {
        newAnchor += "/region/" + region;
    }
    if (post != "") {
        newAnchor += "/post/" + post;
    }
    if (keyword != "") {
        newAnchor += "/keyword/" + keyword;
    }
    if (sort != "") {
        newAnchor += "/sort/" + sort;
    }

    setAnchor(newAnchor);
}

function changeRegion(selectId, populateId, category, post, keyword) {
    var data = "{'regionId':'" + $("#" + selectId + " option:selected").val() + "','category':'" + category + "','post':'" + post + "', 'keyword':'" + keyword + "'}";
    callAjax(siteType + "/PopulateCounties", data, populateId);
}

function refineLocations(tripId, ddlID) {
    var data = "{'regionId':'" + $("#" + ddlID + " option:selected").val() + "','tripId':'" + tripId + "'}";
    //callAjax("Default.aspx/GetLocations", data, "tripBody");
    callAjax(siteType + "/GetLocations", data, "tripBody");
}

function regionListOnChange(tripId, ddlID) {
    var data = "{'regionId':'" + $("#" + ddlID + " option:selected").val() + "','tripId':'" + tripId + "'}";
    var loc = siteType + "/GetCountiesForRegion"
    callAjax(loc, data, "tripBody");
}

function refineLocations(tripId, ddlID, name) {
    var data = "{'regionId':'" + $("#" + ddlID + " option:selected").val() + "','tripId':'" + tripId + "','county':'" + $("#" + name + " option:selected").val() + "'}";
    //callAjax("Default.aspx/GetLocations", data, "tripBody");
    var loc = siteType + "/GetLocationsByCountyAndRegion"
    //alert("data: " + data + "; loc: " + loc);
    
    callAjax(loc, data, "tripBody");
}

function getSelectedSort() {
    var sortElem = $('#sorting li.selected');
    var sortId = "";
    if (typeof sortElem != 'undefined') {
        sortElem.removeClass("selected");
        var order = $(sortElem).attr('class');
        var sortElemId = $(sortElem).attr('id');
        if (order == "desc") {
            if (sortElemId == "sortA") {
                sortId = "A";
            }
            if (sortElemId == "sortP") {
                sortId = "0";
            }
        }
        else {
            if (sortElemId == "sortA") {
                sortId = "Z";
            }
            if (sortElemId == "sortP") {
                sortId = "9";
            }
        }
    }
    return sortId;
}

function setSelectedSort(sort) {
    $('#sorting li').removeClass("selected");
    var sortElem;
    if (sort == "A") {
        sortElem = $("#sortA");
        if (sortElem.hasClass("asc")) {
            sortElem.removeClass("asc").addClass("desc");
        }
        sortElem.addClass("selected");
        return;
    }
    if (sort == "Z") {
        sortElem = $("#sortA");
        if (sortElem.hasClass("desc")) {
            sortElem.removeClass("desc").addClass("asc");
        }
        sortElem.addClass("selected");
        return;
    }
    if (sort == "0") {
        sortElem = $("#sortP");
        if (sortElem.hasClass("asc")) {
            sortElem.removeClass("asc").addClass("desc");
        }
        sortElem.addClass("selected");
        return;
    }
    if (sort == "9") {
        sortElem = $("#sortP");
        if (sortElem.hasClass("desc")) {
            sortElem.removeClass("desc").addClass("asc");
        }
        sortElem.addClass("selected");
        return;
    }
}

function setPage(pageNo) {
    var currentAnchor = document.location.hash;
    var splits = currentAnchor.split('/');
    var newAnchor = "";
    for (var i = 0; i < splits.length; i++) {
        if (splits[i] == "page") {
            i++;
        }
        else {
            var delimiter = (i > 0) ? "/" : "";
            newAnchor += delimiter + splits[i];
        }
    }
    newAnchor += "/page/" + pageNo;
    setAnchor(newAnchor);
}

function sortList(sortElemId) {
    $('#sorting li').removeClass("selected");
    var order = $("#" + sortElemId).attr('class');
    $("#" + sortElemId).removeClass(order);
    if (order == "desc") {
        $("#" + sortElemId).addClass("asc selected");
    }
    else {
        $("#" + sortElemId).addClass("desc selected");
    }

    var sortId = getSelectedSort();
    var currentAnchor = document.location.hash;
    var splits = currentAnchor.split('/');
    var newAnchor = "";
    for (var i = 0; i < splits.length; i++) {
        if (splits[i] == "sort") {
            i++;
        }
        else {
            var delimiter = (i > 0) ? "/" : "";
            newAnchor += delimiter + splits[i];
        }
    }
    newAnchor += "/sort/" + sortId;
    setAnchor(newAnchor);
}

function viewTripDetails(tripID) {
    var data = "{'tripID':'" + tripID + "'}";
    //callAjax("Default.aspx/GetTripDetails", data,"left-column");
    callAjax(siteType + "/GetTripDetails", data, "left-column")
}

function viewLocationDetails(locationID) {
    var data = "{'locationID':'" + locationID + "'}";
    //callAjax("Default.aspx/GetLocationDetails", data, "tripBody");
    callAjax(siteType + "/GetLocationDetails", data, "tripBody");
}

function getTripNow(tripID) {
    var data = "{'tripID':'" + tripID + "','locationID':'" + $("#hdnLocationID").val() + "'}";
    //callAjax("Default.aspx/GetTripNow", data, "left-column");
    callAjax(siteType + "/GetTripNow", data, "left-column");
}

function submitVoucher(locationID, type) {
    var data = "{'locationId':'" + locationID + "'";
    var method = "SubmitVoucher";

    if (type == "VOUCHER") {
        data += ",'fName':'" + $("#firstname").val() + "'";
        data += ",'surname':'" + $("#surname").val() + "'";
        data += ",'isUnique':'false'}";
    }

    if (type == "UNIQUE") {
        data += ",'fName':'" + $("#firstname").val() + "'";
        data += ",'surname':'" + $("#surname").val() + "'";
        data += ",'isUnique':'true'}";
    }

    if (type == "ORDER") {
        data += ",'name':'" + $("#name").val() + "'";
        data += ",'address1':'" + $("#address1").val() + "'";
        data += ",'address2':'" + $("#address2").val() + "'";
        data += ",'address3':'" + $("#address3").val() + "'";
        data += ",'town':'" + $("#town").val() + "'";
        data += ",'county':'" + $("#county").val() + "'";
        data += ",'postcode':'" + $("#postcode").val() + "'}";
        method = "SubmitOrderVoucher";
    }

    if (type == "POST_VOUCHER") {
        data += ",'name':'" + $("#pname").val() + "'";
        data += ",'address1':'" + $("#paddress1").val() + "'";
        data += ",'address2':'" + $("#paddress2").val() + "'";
        data += ",'address3':'" + $("#paddress3").val() + "'";
        data += ",'town':'" + $("#ptown").val() + "'";
        data += ",'county':'" + $("#pcounty").val() + "'";
        data += ",'postcode':'" + $("#ppostcode").val() + "'}";
        method = "PostVoucher";
    }

    if (type == "BOOKING") {
        data += ",'name':'" + $("#bookingName").val() + "'";
        data += ",'date':'" + $("#bookingDate").val() + "'}";
        method = "SubmitBookingVoucher";
    }

    //callAjax("Default.aspx/" + method, data, "tripBody");
    callAjax(siteType + "/" + method, data, "tripBody");
}

function orderVoucher(locationID, transactionID) {
    var data = "{'locationID':'" + locationID + "'";
    data += ",'transactionID':'" + transactionID + "'}";
    // callAjax("Default.aspx/OrderVoucher", data, "left-column");
    callAjax(siteType + "/OrderVoucher", data, "left-column");
}

function quickSearch() {
    var seacrhString = jQuery.trim($("#quickSearch").val());
    var postPattern = "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]?\s?[0-9]{1,2}[ABD-HJLN-UW-Z]{2}$|GIR 0AA)$";
    var link = "#findTripList";

    if (seacrhString.replace(" ", "").match(postPattern)) {
        link += "/post/" + seacrhString;
    }
    else {
        link += "/keyword/" + seacrhString;
    }
    setAnchor(link);
}

function setQuickSearchInput() {
    $("#quickSearch").keyup(function(e) {
        if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
            quickSearch();
        }
    });
}
