function getObj(id) {
    return document.getElementById(id);
}
function tab_searchresults() {
    set_tab('','');
}
function tab_notypo() {
    set_tab('','on');
}
function tab_typo() {
    set_tab('on','');
}
function set_tab(typo, notypo) {
    var f = document.searchform;
    f.typo.value = typo;
    f.notypo.value = notypo;
    f.submit();
}


// The loading messages are pretty, but mask any HTTP or XSLT errors.
// Hide them after 5 seconds.
var loader_failsafe_timer;
function start_loader_failsafe() {
    if (loader_failsafe_timer) clearTimeout(loader_failsafe_timer);
    window.setTimeout('loader_failsafe()', 5000);
}
function loader_failsafe() {
    getObj('listinganalysis_loading').style.display = 'none';
    getObj('searchresults_loading').style.display = 'none';
    getObj('listinganalysis').style.display = '';
}

// "Loading, please wait" masks for iframes.
function load_listinganalysis(item_id, message, show_loader) {
    var item_id = strip(item_id);
    // Do not show the first item unless a bookmarklet was used.
    var bookmarklet = false;
    if (bookmarklet || show_loader) {
        window.searchresults.set_item_selected(item_id);
        var listinganalysis = window.frames['listinganalysis'];
        if(!bookmarklet) {
          var url = '/Item/?item=' + item_id;
                    listinganalysis.location = url;
        }
                    if(show_loader) iframe_startload(getObj('listinganalysis'), message);
                start_loader_failsafe();
    }
}

function set_searchresults_item(item_id) {
    window.searchresults.set_item_selected(item_id);
}


function iframe_startload(obj, message) {
    obj.style.height = '1px';
    var loading = getObj(obj.id + '_loading');
    loading.style.display = '';
    loading.style['z-index'] = 999;
    var loading_message = getObj(obj.id + '_loading_message');
    loading_message.innerHTML = message;
}
function iframe_onload(obj) {
    var loading = getObj(obj.id + '_loading');
    loading.style.display = 'none';
    obj.style.display = '';
    obj.style.height = '100%';
}
function id_iframe_onload(id) {
    iframe_onload(getObj(id));
}

// Popular searches.
var hidden = true;
function showHide(element) {
    if (hidden) {
        document.getElementById("popular").style.display="inline";
        hidden = false;
    } else {
        document.getElementById("popular").style.display="none";
        hidden = true;
    }
}

// Validate search form.
function validateForm() {}

// Filters for search form.
function filterSwitch(filterName) {
    if (filterName == 'filter_hide') {
        document.getElementById('filter_show').style.display="none";
        document.getElementById('filter_hide').style.display="inline";
    } else {
        document.getElementById('filter_show').style.display="inline";
        document.getElementById('filter_hide').style.display="none";
    }
}


// Scrolling controls
var scroll_timer;
function startScroll(iframe, scroll_px) {
    if (scroll_timer) {
        clearTimeout(scroll_timer);
    }
    if (window.frames[iframe]) {
        window.frames[iframe].scrollBy(0, scroll_px);
    }
    scroll_timer = setTimeout("startScroll('" + iframe + "'," + scroll_px + ")", 40);
}
function stopScroll() {
    if (scroll_timer) {
        clearTimeout(scroll_timer);
    }
}

// Handlers to set content in this window from search results.
var _page_number = 1;
var _total_pages = 1;
function show_pagination(items_per_page, page_number, total_items,
    total_pages, total_items_fmt, total_pages_fmt, typo_count) {
    _page_number = parseInt(page_number);
    _total_pages = parseInt(total_pages);
    var items_to = _page_number * parseInt(items_per_page);
    var items_from = items_to - 29;
    var items_to = Math.min(items_to, parseInt(total_items));
    // Showing 1-m of about n items.
    var showing = "Items "+items_from +"-" + items_to + " of " + total_items_fmt;
    // Page 1 of n footer.
    var pages = "Page " + page_number + " of " + total_pages_fmt
    // Typo Count
    if(typo_count) {
      var typos = 'typos';
      if(typo_count == 1) { typos = 'typo'; }
      var sp = '<span style="color:red; padding-right:30px;">'+
          typo_count+' '+typos+' on page</span>';
      showing = sp + showing;
      pages = sp + pages;
    }
    // Set content
    getObj('showing_n_of_n').innerHTML = showing;
    getObj('pagination_footer').innerHTML = pages;
    if(_total_pages > 1) getObj('pagination_controls').style.display = '';
    else getObj('pagination_controls').style.display = 'none';
    if(_page_number == 1) getObj('pagination_prev').className = 'dontclickme';
    else getObj('pagination_prev').className = 'clickme';
    if(_page_number == _total_pages) getObj('pagination_next').className = 'dontclickme';
    else getObj('pagination_next').className = 'clickme';
}

function next() {
    var page = _page_number + 1;
    if(page <= _total_pages) go_to_page(page);
}
function prev() {
    var page = _page_number - 1;
    if(page > 0) go_to_page(page);
}
function go_to_page(page) {
    var sr = window['searchresults'];
    var qs = sr.location.search;
    if(qs.indexOf('page=') != -1) {
        qs = qs.replace(/&page=\d+/g, '');
    }
    sr.location = "/SearchResults/searchresults.xml" + qs + '&page=' + page;
}

var msid = 'mySearchesList';
var ms_delay = 500;
var show_ms_timer;
var hide_ms_timer;
function showMySearches() {
    if(show_ms_timer) clearTimeout(show_ms_timer);
    show_ms_timer = window.setTimeout("setMySearchesDisplay('inline')", ms_delay);
}
function mySearchesOnFocus() {
    if(hide_ms_timer) clearTimeout(hide_ms_timer);
}
function hideMySearches() {
    if(hide_ms_timer) clearTimeout(hide_ms_timer);
    hide_ms_timer = window.setTimeout("setMySearchesDisplay('none')", ms_delay);
}
function setMySearchesDisplay(disp) {
    getObj(msid).style.display = disp;
}


function no_results(suggest) {
    getObj('listinganalysis').style.display = 'none';
    getObj('searchresults_loading').style.display = 'none';
    //getObj('searchresults_panel').style.display = 'none';
    var splash_url = getObj('searchsplash_url').innerHTML;
    splash_url += '&noresults=1'
    if (suggest) splash_url += '&spelling_suggestion=' + escape(strip(suggest));
    var filter_string = getObj('filter_string').innerHTML;
    if (filter_string) splash_url += '&filter_string=' + escape(filter_string);
    var la = getObj('listinganalysis');
    la.style.display = '';
    la.src = splash_url;
}

function strip(s){
    return s.replace(/^\s+|\s+$/g, "");
}

// Show and hide floating lists
function showListDelay() {
  getObj('mySearchesList');
}