function initSearch(formId, container, facetContainer, facets)
{
    var form = $(formId);
    //form.searchId.value = '';
    form.searchNumFound.value = 0;
    form.searchPageNum.value = 1;

    var parameters = {
        searchCommand: 'initSearch',
        searchContainer: container
    };
    var options = {
        asynchronous: false
    };
    wcmSiteAjaxController.submit('search/bizsearch', formId, parameters, null, options);

    if (facetContainer)
        fetchFacets(formId, facetContainer, facets);
}

function refineSearch(formId, container, facetContainer, facetName, facetValue)
{
    var form = $(formId);

    if (facetValue.indexOf(' ') != -1)
    {
        var quotedRE = new RegExp('^"([^"]|\\")*"$');
        if (!facetValue.match(quotedRE))
            facetValue = '"' + facetValue + '"';
    }
    var facetTerm = facetName + ':' + facetValue;

    var queryString = form.searchQueryString.value;
    if (queryString.indexOf(' ') != -1)
    {
        if (queryString[0] != '(' || queryString[queryString.length - 1] != ')')
        {
            var subQueryRE = new RegExp('^\\s*\\S+(\\s+AND\\s+\\S+)+\\s*$');
            if (!queryString.match(subQueryRE))
                queryString = '(' + queryString + ')';
        }
    }

    if (queryString != '')
        queryString += ' AND ';

    queryString += facetTerm;

    form.searchQueryString.value = queryString;
    initSearch(formId, container, facetContainer);
}

function fetchItems(formId, container, pageNum)
{
    var form = $(formId);
    form.searchPageNum.value = pageNum;

    var parameters = {
        searchCommand: 'fetchItems',
        searchContainer: container
    };
    var options = {
        asynchronous: false
    };
    wcmSiteAjaxController.submit('search/bizsearch', formId, parameters, null, options);
}

function fetchFacets(formId, container, facets)
{
    var parameters = {
        searchCommand: 'fetchFacets',
        searchContainer: container,
        searchFacets: facets
    };
    wcmSiteAjaxController.submit('search/bizsearch', formId, parameters);
}
