﻿/// <reference path="jquery-intellisense.js" />

prevThumb = new Image(120, 80);
prevThumb.src = "/Content/images/error-message-box-small.jpg";

var currentJson;
var currentPageNum = 1;
var maxPages = 1;
var currentTool = 'None'
var directionString = '';
var animationSpeed = 200;
function doSearch() {
    if ($('#What').val() != blankText || $('#Where').val() != blankLocationText) {
        if ($('#What').val() == blankText) $('#What').val('');
        if ($('#Where').val() == blankLocationText) $('#Where').val('');

        var varUrl = '/search/jsonresults/';
        showError('Searching… Please Wait.');
        //Don't animate initially
        directionString = '';
        try {
            $.getJSON(varUrl,
            {
                What: $('#What').val(),
                Category: currentTool,
                region: '',
                startDate: '',
                endDate: '',
                sortby: 'location',
                //location: '55.950176,-3.187536',
                Where: $('#Where').val(),
                FreeOnly: $('#FreeOnly').val()
            }, createHtml);
        } catch (e) {
            alert(e);
        }
    } else {
        showError('Please enter something to search for.');
    }
}

function createHtml(json) {
    try {
        currentJson = json;
        if (currentJson.results.length > 0) {
            showError('');
            currentPageNum = 1;
            maxPages = currentJson.results.length;
            $('#pageCount').text(maxPages);
            showResult();
            showResultsTab();
        }
        else {
            showError('No results returned. Please try another search.');
        }
    } catch (e) {
        alert(e);
    }
}

function showError(message) {
    if (message.length > 0) {
        $('#errorMessage').text(message);
        $('#errorMessageBox').css("display", "block");
    }
    else {
        $('#errorMessageBox').css("display", "none");
    }
}

function showInfo(thisControl) {
    showError(thisControl.title);
}  

function showResults() {
    if ($('#youSearchedFor').html().length > 0) {
        showResultsTab();
    }
    else {
        doSearch();
    }
}

function pause(millis) {
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); }
    while (curDate - date < millis);
} 

function moveResult(number) {
    if ((currentPageNum + number) >= 1 && (currentPageNum + number) <= maxPages) {
        currentPageNum += number;
        showResultsTab();
        if (number > 0) {
            directionString = 'right';
            $('div.content-search-result').hide('slide', { direction: 'left' }, animationSpeed, showResult);
        }
        else {
            directionString = 'left';
            $('div.content-search-result').hide('slide', { direction: 'right' }, animationSpeed, showResult);
        }
    }
}

function showResult() {
    var activitySearchedFor = '';
    activitySearchedFor = $('#What').val();
    if (activitySearchedFor.length == 0) {
        activitySearchedFor = 'Activities';
    }
    if ($('#Where').val().length > 0) {
        activitySearchedFor += '<span>&nbsp;In&nbsp;</span>';
    }
    $('#currentPage').text(currentPageNum);
    $('#youSearchedFor').html(activitySearchedFor + $('#Where').val());
    $('#resultLink').attr("href", currentJson.results[currentPageNum - 1].link);
    $('#resultLink').attr("title", currentJson.results[currentPageNum - 1].title);
    $('#resultLink').html(currentJson.results[currentPageNum - 1].title);
    $('#moreinfo').attr("href", currentJson.results[currentPageNum - 1].link);
    $('#date').html("<span></span><p>" + currentJson.results[currentPageNum - 1].date + "</p>");
    $('#money').html("<span></span><p>" + currentJson.results[currentPageNum - 1].cost.substring(0, 20) + "</p>");
    $('#money').attr("title", currentJson.results[currentPageNum - 1].cost);
    $('#money').attr("onclick", "showInfo(this);");
    $('#thumbImage').attr("src", currentJson.results[currentPageNum - 1].thumbnailurl);
    $('#thumbImage').attr("alt", currentJson.results[currentPageNum - 1].titlePlain);

    if (document.images) {
        if (currentPageNum > 1) {
            prevThumb = new Image(120, 80);
            prevThumb.src = currentJson.results[currentPageNum - 2].thumbnailurl;
        }
        if (currentPageNum < maxPages) {
            nextThumb = new Image(120, 80);
            nextThumb.src = currentJson.results[currentPageNum].thumbnailurl;
        }
    }

    if (currentJson.results[currentPageNum - 1].mapurl != '') {
        $('#liMaplink').css("display", "list-item");
        $('#maplink').attr("href", currentJson.results[currentPageNum - 1].mapurl);
    }
    else {
        $('#liMaplink').css("display", "none");
    }
    showHideNav();
    if (directionString.length > 0) {
        $('div.content-search-result').show('slide', { direction: directionString }, animationSpeed);
    }
}

function showHideNav() {
    if (currentPageNum <= 1) {
        $('#lnkPrev').addClass("disabled");
    }
    else {
        $('#lnkPrev').removeClass("disabled");
    }
    if (currentPageNum >= maxPages) {
        $('#lnkNext').addClass("disabled");
    }
    else {
        $('#lnkNext').removeClass("disabled");
    }
}

function showResultsTab() {
    $('#searchPanel').css("display", "none");
    $('#resultsPanel').css("display", "block");
    $('div.pagingButtons').css("display", "block");
}

function showSearchTab() {
    $('#searchPanel').css("display", "block");
    $('#resultsPanel').css("display", "none");
    $('div.pagingButtons').css("display", "none");
}

function setTool(thisControl) {
    currentTool = thisControl.id;
    $('#GetActive').attr("class", "");
    $('#EntertainMe').attr("class", "");
    $('#CreativeAndCultured').attr("class", "");
    $('#GetInvolved').attr("class", "");
    $('#Volunteer').attr("class", "");
    $('#LearningZone').attr("class", "");
    $('#None').attr("class", "");
    thisControl.className = 'selected';
    if (thisControl.id == 'None') {
        $('#searchResult h2').text("Search for an activity near you");
    }
    else {
        $('#searchResult h2').text("'" + $('#' + thisControl.id + ' img').attr('title') + "' Activities");
    }
}
