var classSearch = {

  /**
  * search for shop result based on specific criteriasthis function is
  * called with a timeout of 200 ms to avoid too much searches
  *
  * @param callback Function
  * @param href String 				optional, default=/services/ajax_search.php)
  * @param search[catID]  		optional, default=-1
  * @param search[offset]  		optional, default=0
  * @param search[languageID]	optional, default based on path
  */
  getArticles: function(param) {
    this.cancel();
    classSearch.timeout = window.setTimeout(function() {
      jsonRpc({
        url: param.href || "/services/ajax_search.php",
        parameters: {
          "search[type]":	 			"getArticles",
          "search[catID]": 			param.catID || "-1",
          "search[offset]": 		param.offset || "0",
          "search[languageID]": param.languageID || "1"
        },
        callback: param.callback
      });
    }, 200);
  },

  /**
  * search for shop result based on specific criterias this function is
  * called with a timeout of 200 ms to avoid too much searches
  *
  * @param callback Function
  * @param href String 				optional, default=/services/ajax_search.php)
  * @param search[catID]  		optional, default=-1
  * @param search[offset]  		optional, default=0
  * @param search[languageID]	optional, default based on path
  */
  searchArticles: function(param) {
    this.cancel();
    classSearch.timeout = window.setTimeout(function() {
      jsonRpc({
        url: param.href || "/services/ajax_search.php",
        parameters: {
          "search[type]":	 			"searchArticles",
          "search[url]":				param.url				|| "",
          "search[mainCatID]":	param.mainCatID || "-1",
          "search[desc_2]": 		param.desc_2 		|| "-1",
          "search[desc_8]": 		param.desc_8 		|| "-1",
          "search[desc_11]": 		param.desc_11 	|| "-1",
          "search[desc_17]": 		param.desc_17 	|| "-1",
          "search[desc_22]": 		param.desc_22 	|| "-1",
          "search[desc_26]": 		param.desc_26 	|| "-1",
          "search[catID]": 			param.catID 		|| "-1",
          "search[offset]": 		param.offset 		|| "0",
          "search[languageID]": param.languageID || "1"
        },
        callback: param.callback
      });
    }, 200);
  },

  /**
  * cancel the search
  */
  cancel: function() {
    if (classSearch.timeout) window.clearTimeout(classSearch.timeout);
  }

};