﻿/// <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 ($('#q').val() != blankText || $('#locationFrom').val() != blankLocationText) {
        if ($('#q').val() == blankText) $('#q').val('');
        if ($('#locationFrom').val() == blankLocationText) $('#locationFrom').val('');

        var varUrl = '/search/json';
        showError('Searching… Please Wait.');
        //Don't animate initially
        directionString = '';
        try {
            $.getJSON(varUrl,
            {
                Category: currentTool,
                Where: $('#locationFrom').val(),
                What: $('#q').val()
            }, createHtml);
        } catch (e) {
            alert(e);
        }
    } else {
        showError('Please enter something to search for.');
    }
}

function createHtml(json) {
    try {
        currentJson = json;
        if (currentJson.length > 0) {
            showError('');
            currentPageNum = 1;
            maxPages = currentJson.length;
            $('#pageCount').text(maxPages);
            showResult();
            showResultsTab();
        }
        else {
            showError('No results returned. Please try another search.');
            $('#youSearchedFor').html('');
        }
    } 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 = $('#q').val();
    if (activitySearchedFor.length == 0) {
        activitySearchedFor = 'Activities';
    }
    if ($('#locationFrom').val().length > 0) {
        activitySearchedFor += '<span>&nbsp;In&nbsp;</span>';
    }
    $('#currentPage').text(currentPageNum);
    $('#youSearchedFor').html(activitySearchedFor + $('#locationFrom').val());
    $('#resultLink').attr("href", currentJson[currentPageNum - 1].Url);
    $('#resultLink').attr("title", currentJson[currentPageNum - 1].Title);
    $('#resultLink').html(currentJson[currentPageNum - 1].Title);

    $('#imageLink').attr("href", currentJson[currentPageNum - 1].Url);
    $('#imageLink').attr("title", currentJson[currentPageNum - 1].Title);
    
    $('#moreinfo').attr("href", currentJson[currentPageNum - 1].Url);
    $('#date').html(currentJson[currentPageNum - 1].When);
    $('#district').html(currentJson[currentPageNum - 1].Where);
    $('#money').html(currentJson[currentPageNum - 1].Cost);//.substring(0, 20));
//    $('#money').attr("title", currentJson[currentPageNum - 1].Cost);
//    $('#money').attr("onclick", "showInfo(this);");
    $('#thumbImage').attr("src", currentJson[currentPageNum - 1].ThumbUrl);
    $('#thumbImage').attr("alt", currentJson[currentPageNum - 1].TitlePlain);

    if (document.images) {
        if (currentPageNum > 1) {
            prevThumb = new Image(120, 80);
            prevThumb.src = currentJson[currentPageNum - 2].ThumbUrl;
        }
        if (currentPageNum < maxPages) {
            nextThumb = new Image(120, 80);
            nextThumb.src = currentJson[currentPageNum].ThumbUrl;
        }
    }

    if (currentJson[currentPageNum - 1].mapurl != '') {
        $('#liMaplink').css("display", "list-item");
        //$('#maplink').attr("href", currentJson[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;
    $('#SportOrOutdoorAdventure').attr("class", "");
    $('#Health').attr("class", "");
    $('#EntertainMe').attr("class", "");
    $('#Volunteer').attr("class", "");
    $('#LearningAndCareers').attr("class", "");
    $('#AdviceAndInformation').attr("class", "");
    $('#None').attr("class", "");
    thisControl.className = 'selected';
    if (thisControl.id == 'None') {
        $('#searchPanel h1').text("Find out what's on in Hertfordshire for young people");
    }
    else {
        $('#searchPanel h1').text("'" + $('#' + thisControl.id + ' img').attr('alt') + "' in Hertfordshire for young people");
    }
}
