
function clickclear(thisfield, defaulttext) {
  if (thisfield.value == defaulttext) {
    thisfield.value = "";
  }
}

function clickrecall(thisfield, defaulttext) {
  if (thisfield.value == "") {
    thisfield.value = defaulttext;
  }
}




function toggle_item(element_selector, link_selector,
                    show_text, hide_text) {
    /*
    * Toggle the display of one ore more container elements
    *
    * @param {element_selector} a selector for one or more elements
    *                           to be displayed or hidden
    * @param {link_selector} a selector for an <a> element that triggers
    *                        the hide/show action
    * @param {show_text} text to be used as label for the <a> element
    *                    when the container elements are visible
    * @param {hide_text} text to be used as label for the <a> element
    *                    when the container elements are hidden
    *
    */
    var element, link_element, elements;
    if (!element_selector.match("#")) {
        elements = $("#" + element_selector);
        element = $("#" + element_selector + " :first")[0];
    } else {
        elements = $(element_selector);
        element = $(element_selector + " :first")[0];
    }

    if (!link_selector.match("#")) {
        link_element = $("#" + link_selector)[0];
    } else {
        link_element = $(link_selector)[0];
    }

  if(link_element.innerHTML == show_text) {
      elements.show();
      link_element.innerHTML = hide_text;
  } else {
      elements.hide();
      link_element.innerHTML = show_text;
  }
    return false;
}

$(document).ready(function() {
    $('.search_form').each(function(idx, form) {
        form = $(form);

        var input = form.children('input[name=q]');
        var areas = form.children('ul');

        var areas_are_visible = false;
        var widget = input;

        var switch_area = function(elem) {
            var url  = elem.children('input').val();
            var span = elem.children('span').clone();

            widget.replaceWith(span);
            widget = span;

            span.addClass('search_field');
            span.html(input);

            span.click(function (event) {
                if (event.target != input[0])
                    areas.slideDown(150, function() { areas_are_visible = true; });
            });

            form.attr({action: url});
        };

        areas.children().each(function(idx, elem) {
            elem = $(elem);

            elem.click(function() {
                switch_area(elem);

                areas.children().removeClass('selected');
                elem.addClass('selected');

                input.focus();
            });

            if (elem.hasClass('selected'))
                switch_area(elem);
        });

        $(document).click(function() {
            if (areas_are_visible) {
                areas.slideUp(150);
                areas_are_visible = false;
            }
        });
    });
});

