﻿function AssembleSearchDropdown(s, baseURL) {
    // assemble from comma seperated search terms
    if (s.length == 0)
        return "";
        
    var a = s.split(",");
    var ddHTML = "";   
        
    for (var i = 0; i < a.length; i++) {
        ddHTML = ddHTML + "<a href='" + baseURL + a[i] + "' onClick='trackSearch(\"" + a[i] + "\");'>" + a[i] + "</a><br>";
    }

    return ddHTML;
}

function makeAjaxCall(targetURL, targetElement, parameterToPost) {

    var myRequest = new ajaxObject(targetURL);

    myRequest.callback = function(responseText) {
        if (responseText.length > 0) {
            document.getElementById(targetElement).innerHTML = AssembleSearchDropdown(responseText, assembleSearchURL(g_baseURL, g_psid, g_sc));
            DelayedShowSearchDropdown();
        }
        else {
            document.getElementById(targetElement).style.visibility = 'hidden';
            document.getElementById(targetElement).innerHTML = '';
        }
    }

    myRequest.update(parameterToPost);
}

function loadTypingSuggestions(textBox) {
    var param = 'js=1&s=' + textBox.value;
    makeAjaxCall('/pd/ajax/SuggestedTypings.aspx', 'searchFlyOut', param);
}

var dropdownTimer = 0;

function ShowSearchDropdown() {
    document.getElementById('searchFlyOut').style.visibility = 'visible';
    clearTimeout(dropdownTimer);
}

function DelayedShowSearchDropdown() { /* delayed hide, so that it links can be clicked before it is hidden */
    dropdownTimer = setTimeout("ShowSearchDropdown()", 30);
}

function showDropdown(textBox) {
    if (textBox.value.length > 0 && textBox.value.length < 8) {
        loadTypingSuggestions(textBox);
    }
    else { /* input length is zero */
        document.getElementById('searchFlyOut').style.visibility = 'hidden';
        document.getElementById('searchFlyOut').innerHTML = '';
    }
}