/* © Zooven, Inc 2006-2007 - ALL RIGHTS RESERVED */


zooven.search.SearchBuilder = Class.create();
zooven.search.SearchBuilder.prototype = {
/**
 * construct a new SearchBuilder instance
 */
    initialize : function (
            crit) {
        this.crit = crit;
    },

    buildSearchString : function(
            page,
            sort,
            result,
            user) {
        var searchString = '';
        if (sort) {
            $('crit_sort').value = sort;
        }
        if (page) {
            $('crit_page').value = page;
        }
        if (user) {
            $('crit_user').value = user;
        }                                                                         
        this.crit.each(function(c) {
            var elementName = 'crit_' + c;
            if ($F(elementName) && $F(elementName).length > 0) {
                searchString += c + '(' + $F(elementName) + ')';
            }
        });
        if (result) {
            searchString += '/' + result;
        }

        return searchString;
    },

    parseSearchString : function(
            searchString
            ) {
        var serverPart = searchString.split('/')[0];
        serverPart.split(')').each(function(segment) {
            var a = segment.split('(');
            if (a.length > 1) {
                $F('crit_' + a[0]) = a[1];
            }
        });
    },

    clearCrit : function() {
        this.crit.each(function(c) {
            var elementName = 'crit_' + c;
            $(elementName).value = '';
        });
    }
};