function SearchObject(
	url,
	category,
	displayId,
	displayHandler	)
{
   var params = new Hash();
	var pages = [];
   var totalPagesNumber
   var oCurrentPage;
   var PREV = 'prev';
   var NEXT = 'next';
   var NON_CLICKABLE = false;
   var CLICKABLE = true;
   var SOUNDOFF_ANCHOR = '#soundoff';

   var category = encodeURIComponent(category);

   var searchQsTmpl = new Template(
      'itemsPerPage=#{count}&pageNum=#{page}&searchString=#{search}'
   );

	this.topicsTrans = null;	

   this.display = {
      id       : displayId,
      handler  : displayHandler
   };

   this.searchUrl = url;

   this.getQueryStr = function() {
      this.searchJson.search = category;
		var vals = params.values();
		if ( vals.length > 0 ) {
			this.searchJson.search += ('|' + vals.join('|'));
		}	
      return searchQsTmpl.evaluate( this.searchJson );
   }

   this.searchJson = {
      page : 1,
      count : cnnItemsPerPage,
      search : ''
   }

   this.setCategory = function(cat) {
      category = cat;
   }

   this.addParam = function(key,val) {
		if ( this.topicsTrans != null && this.topicsTrans[val] != undefined ) {
			val = this.topicsTrans[val];
		}
		params[key] = encodeURIComponent(val);
   }

	this.getParamsStr = function() {
		return params.keys().join('|');
	}

   this.clearParams = function() {
		params = new Hash();
   }
   this.setPage = function(pg) {
      this.searchJson.page = pg;
   }

   this.getPage = function() {
      return this.searchJson.page;
   }

   this.setPerPage = function(cnt) {
      this.searchJson.count = cnt;
   }

   this.getPerPage = function(cnt) {
      return this.searchJson.count;
   }
}
