dojo.provide("atg.store.facet");

/*
    Ajax request for product list and pagination
*/

atg.store.facet={
    /*
    AJAX request content for target element
    parameter:
       content: encapsulation data for ajax request,involved url ,and so on
       target: target element object,such as div object
  */

  loadData:function(content,target){
      var _this=this;
    if(!content.url){
      content.url=contextPath+"/browse/category.jsp";
    }
    var bindParam={
      url:content.url,
      content:content,
      load:function(data){
        _this.handleResponse(data,target);
      },
      error:function(err){console.debug("atg.store.facet loadData: ",err);}
    }
    dojo.xhrPost(bindParam);
  },

    /*
    ajax request content for pagination element
    parameter:
       pStartValue: element start position
       pAddFacet: add facet
       pPageNum: current page number
       pTrail: trail
       pTrailSize:t rail size
       pCategoryId: being selected category
       pSelectedHowMany: render element number
       pViewAll:whether view all element
       pFragmentIdentifier: fragment identifier
       pageSize
  */
  loadDataPagination:function(pStartValue, pAddFacet,pPageNum,
                pTrail,pTrailSize,pCategoryId,
                pDocSort,pSelectedHowMany,pViewAll,pSortOrder,pPageSize, pFragmentIdentifier){
    setFragmentIdentifier(pFragmentIdentifier);

    var content={
        start:pStartValue,
        q_docSort:pDocSort,
        addFacet:pAddFacet,
        q_pageNum:pPageNum,
        trail:pTrail,
        trailSize:pTrailSize,
        categoryId:pCategoryId,
        selectedHowMany:pSelectedHowMany,
        viewAll:pViewAll
    };

        var searchSettings = {
          q_docSort: pDocSort,
          q_docSortOrder: pSortOrder,
          q_pageNum:pPageNum,
          viewAll:pViewAll,
          q_pageSize: pPageSize,
          categoryId:pCategoryId,  
          q_question: dojo.byId("questionSaved").value,
          q_facetTrail: dojo.byId("facetTrailSaved").value
        };
    handleProductsLoad(searchSettings, '');
  },

     /*
    handle ajax response, put response data into target element.
    parameter:
       data: response data
       target:target element object,such as div object
  */
  handleResponse:function(data,target){
    if(!target){
      var mainObject=dojo.query("[divId='ajaxRefreshableContent']")[0];
      if (mainObject == null) {
        mainObject=dojo.query(".main")[0]; //first time
      }
      if(mainObject){
         mainObject.innerHTML=data;
      }
    }else{
      target.innerHTML=data;
    }
  
  }
}
