function trim(str_v)
{
    if (typeof(str_v) == "undefined" || null == str_v) {
        return str_v;
    }

    str_v = str_v.replace(/^\s+/, "");
    str_v = str_v.replace(/\s+$/, "");

    return str_v;
}


function cleanup_keywords(kwd, double_escape)
{
    if (typeof(kwd) == "undefined") {
        return "";
    }

    kwd = trim(kwd);
    kwd = kwd.replace(/ /g, "+");
    if (double_escape) {
        kwd = kwd.replace(/\//g, "%2F");
        kwd = kwd.replace(/#/g, "%23");
        kwd = kwd.replace(/&/g, "%26");
    }
    kwd = escape(kwd);

    return kwd;
}


function https_on() {
    return (window.location.toString().search(/^https:\/\//) == 0);
}


function placeholder(event, element) {
    if (typeof(default_search_text) == 'undefined') {
        return;
    }
    if (event.type == 'focus' && element.value == default_search_text) {
        element.value = '';
    } else if (event.type == 'blur' && element.value == '') {
        element.value = default_search_text;
    }
}


function get_form_url(section, kwd)
{
    var url = "";
    if (typeof(section) == "undefined") {
        return url;
    }

    if (typeof(kwd) == "undefined") {
        kwd = "";
    } else {
        kwd = trim(kwd);
    }

    if (kwd == "") {
        url = dealio_urls["base"] + section;
        if (section == "products") {
            url += ".html";
        } else {
            url += "/top/30days/";
        }
    } else if (typeof(dealio_sections[section]) != "undefined") {
        kwd = cleanup_keywords(kwd, true);
        url = dealio_urls["base"] + "search/" + section + "/" + kwd + "/";
    } else if (section == "yahoo") {
        url = dealio_urls[section];
    }

    return url;
}


function get_form(name) {
    return document.getElementById(name);
}


function searchbox_form_submit(name, command, url) {
    var form = get_form(name);
    if (typeof(form) == 'undefined') {
        return;
    }

    form.cmd.value = command;
    if (url && "" != url) {
        form.action = url;
    }

    form.submit();
}


//If user hits back after a search maintain color
function keepColor() {
    t = document.getElementById('searchBox');
    if (typeof(default_search_text) == 'undefined' || typeof(t) == "undefined") {
        return;
    }
    if(t.value != default_search_text){
        t.className = '';
    }
}


function search_submit(from_button, search_section)
{
    if (typeof(default_search_text) == 'undefined') {
        return false;
    }

    var search_section_obj = document.getElementById("search_section");
    var sbox = document.getElementById("searchBox");

    if (!search_section_obj || !sbox) {
        return false;
    }

    var cmd;
    if (sbox.value == default_search_text) {
        sbox.value = "";
        cmd = "browse";
    } else {
        cmd = "search";
    }

    //by default search in products, unless user selects another tab
    if (search_section) {
        search_section_obj.value = search_section;
    }

    var form_url = '';
    if (https_on()) {
        form_url = dealio_urls['redirect']+'?location=' + escape(get_form_url(search_section_obj.value, sbox.value));
    } else {
        form_url = get_form_url(search_section_obj.value, sbox.value); 
    }
    searchbox_form_submit('search_form', cmd, form_url);

    return false;
}


function search_submit_bottom(from_button, search_section)
{
    var sbox = document.getElementById("searchBox");
    var sbox_bottom = document.getElementById("searchBox_bottom");

    if (!sbox || !sbox_bottom) {
        return false;
    }
    
    sbox.value = sbox_bottom.value;

    if (typeof(search_section) == "undefined") {
        search_section = false;
    }

    search_submit(from_button, search_section);

    return false;
}


function adjust_button(event, search_section)
{
    if (event && event.keyCode == 13) {
        if (typeof(search_section) == "undefined") {
            search_section = false;
        }
        search_submit(false, search_section);
    }

    return false;
}


function adjust_button_bottom(event, search_section)
{
    if (event && event.keyCode == 13) {
        if (typeof(search_section) == "undefined") {
            search_section = false;
        }
        search_submit_bottom(false, search_section);
    }

    return false;
}
