dojo.provide("atg.blueprint.facet");

/*
    Ajax request for product list and pagination
*/

atg.blueprint.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.isAjax){
			content.isAjax = true;
		}
		if(content.advancedSearch && content.categoryId != ''){
		   dojo.byId("facetCategory").style.marginTop="-30px";
		}
		if(!content.url){
		    var facetContent = content.addFacet;
		    if(content.categoryId != '' && facetContent.indexOf('SRCH') == 0){		              
			    content.addFacet="";
			}
			content.url=contextPath+"/facet/facetGlossary.jsp";		
		}
		if(content.addFacet != ''&& content.addFacet.indexOf('SRCH') == 0)
		   content.trail = content.addFacet;
		   
		var bindParam={
			url:content.url,
			content:content,
			load:function(data){
				_this.handleResponse(data,target);
			},
			error:function(err){
			//alert(err);
			}
		}		
		dojo.xhrGet(bindParam);
	},
	
    /*
		ajax request content for pagination element
		parameter:
		   pStartValue: element start position
		   pSelectedSortBy: sort by property
		   pAddFacet: add facet
		   pCurrentPageNum: current page number
		   pTrail: trail
		   pTrailSize:t rail size
		   pCategoryId: being selected category
		   pHighorlow: highlight or not
		   pSelectedHowMany: render element number
		   pViewAll:whether view all element
	*/	 
	loadDataPagination:function(pStartValue,pSelectedSortBy,
								pAddFacet,pCurrentPageNum,
								pTrail,pTrailSize,pCategoryId,pAdvancedSearch,
								pHighorlow,pSelectedHowMany,pViewAll,pViewPreviousLink,pViewNextLink){
						 
		var content={
				start:pStartValue,
				selectedSortBy:pSelectedSortBy,
				addFacet:pAddFacet,
				currentPageNum:pCurrentPageNum,
				trail:pTrail,
				trailSize:pTrailSize,
				categoryId:pCategoryId,
				advancedSearch:pAdvancedSearch,
				highorlow:pHighorlow,
				selectedHowMany:pSelectedHowMany,
				viewAll:pViewAll,
				viewPreviousLink:pViewPreviousLink,
				viewNextLink:pViewNextLink
		};
		content.isAjax="true";	
		if(content.viewAll=='true'){
		   var flashObj = dojo.query("#atg_b2cblueprint_contentWrapperCat")[0];
		   if(flashObj)
		        flashObj.style.display="none";
		 }		
		this.loadData(content);
	},
	 
	 /*
		ajax request content for sortBy element
		parameter:
		   pStartValue: element start position
		   pSelectedSortBy: sort by property
		   pAddFacet: add facet
		   pCurrentPageNum: current page number
		   pTrail: trail
		   pTrailSize:t rail size
		   pCategoryId: being selected category
		   pHighorlow: highlight or not
		   pSelectedHowMany: render element number
		   pViewAll:whether view all element
	*/	 
	loadDataPaginationForSortBy:function(pStartValue,pSelectedSortBy,
								pAddFacet,pCurrentPageNum,
								pTrail,pTrailSize,pCategoryId,pAdvancedSearch,
								pHighorlow,pSelectedHowMany,pViewAll,pViewPreviousLink,pViewNextLink){
		var content={
				start:pStartValue,
				selectedSortBy:pSelectedSortBy,
				addFacet:pAddFacet,
				currentPageNum:pCurrentPageNum,
				trail:pTrail,
				trailSize:pTrailSize,
				categoryId:pCategoryId,
        advancedSearch:pAdvancedSearch,
				highorlow:pHighorlow,
				selectedHowMany:pSelectedHowMany,
				viewAll:pViewAll,
				viewPreviousLink:pViewPreviousLink,
				viewNextLink:pViewNextLink
		};
		content.isAjax="true";	
		this.loadData(content);
	},
     /*
		handle ajax response, put response data into target element.
		parameter:
		   data: response data
		   target:target element object,such as div object  #facetCategory
	*/
	
	handleResponse:function(data,target){
	    if(!target){
			var mainObject=dojo.query("#facetCategory")[0];
			
			if(mainObject){
			       //document.write(data);
				   mainObject.innerHTML=data;				  
				   var flashObj = dojo.query("#atg_b2cblueprint_contentWrapperCat")[0];
		           if(flashObj)
		               flashObj.style.display="block";	
			} 
		}else{
			target.innerHTML=data;
		}
	}
}