function filterOnType(selectedType){
//  if (selectedType && selectedType != 'ALL0'){
  if (selectedType){

    var productList = document.filterForm.completeProductList.value;

    sizeOptionOutput = getFilteredSizes(selectedType, productList);
    var responseText = sizeOptionOutput.responseText;

    var filterResults = $("sizeOptionText");
    if (filterResults){
       filterResults.innerHTML = responseText;
    }
  }
//  else{
//     if (selectedType == 'ALL0'){
//	     var url = window.location;
//	     var filterName = "size";
//	     var excludeParams = "page;" + filterName;
//	     var newURL = rebuildURL(excludeParams);
//	     window.location.href = newURL;
//     }
//  }
}

function filterOnSize(filterValue){
   if (filterValue){
       var url = window.location;
       var filterName = "size";
       var excludeParams = "page;" + filterName +"tabView";
       var newURL = rebuildURL(excludeParams);
       newURL += filterName + "=" + filterValue;
       window.location.href = newURL;
   }
}


function getFilteredSizes(selectedType, productList){
    // THIRD PARAM represents "ASYNCHRONOUS" value - true or false
    return new AJAXRequest("POST", "/store/catalog/template/frg_filter_size_dropdown.jhtml?selectedType=" + selectedType + "&productList=" + productList, false);
}

function sortProducts(sortValue){
   var url = window.location;
   var sortName = "sort";
   var excludeParams = "page;" + sortName;
   var newURL = rebuildURL(excludeParams);
   newURL += sortName + "=" + sortValue;
   window.location.href = newURL;
}
 
// Tab Functions
function showFilteredProducts(){

   var filterValue = document.tabForm.filterValue.value;
   var tabViewValue = "filtered"
   
   var url = window.location;
   
   var filterName = "size";
   var tabViewName = "tabView";
   
   var excludeParams = "page;" + filterName + ";" + tabViewName;

   var newURL = rebuildURL(excludeParams);
   newURL += filterName + "=" + filterValue;

   window.location.href = newURL;
   
}

function showAllProducts(){
   
   var filterValue = document.tabForm.filterValue.value;
   var tabViewValue = "all"
   
   var url = window.location;
   
   var filterName = "size";
   var tabViewName = "tabView";
   
   var excludeParams = "page";
   var excludeSizeParam = "size";

   var newURL = rebuildURL(excludeParams);
   newURL = rebuildURL(excludeSizeParam);
   //newURL += filterName + "=" + filterValue;
   newURL += tabViewName + "=" + tabViewValue +"&size=";

   window.location.href = newURL;
   
}
 
function rebuildURL(excludeParams){
   
   var url = window.location;   
   var queryString = url.search.substring(1);

   var requestParms = getRequestParameters(queryString);   
   
   var newURL = url.protocol + "//" + url.host + url.pathname + "?";
   for (var i=0; i < requestParms.length; i++){
     if (excludeParams.indexOf(requestParms[i]) == -1){
        newURL += requestParms[i] + "=" + getParameter(queryString, requestParms[i]) + "&";        
     }
   }   
   return newURL;
}
 
 //add a second param here that indicates parms to exclude from built URL
function getRequestParameters (queryString, excludeParms) {  

    var parameterNames = new Array();
    var begin = 0;
    var count = 0;
    var end = 0;
            
    if ( queryString.length > 0 ) {
            
        while (begin != -1 && end != -1 && begin < queryString.length) {              
                  
        end = queryString.indexOf("=", begin);
   
        if ( end != -1 ) {
            if (queryString.substring(begin, end).substring(excludeParms) != -1){
               parameterNames[count] = queryString.substring(begin, end);
            }
            begin = queryString.indexOf("&", end);
        }       
        if (begin != -1){
            begin+=1;
        }
        
            count = count + 1;              
         }
    }
    return parameterNames;
} 
 
function getParameter ( queryString, parameterName ) {  

    var parameterName = parameterName + "=";
    if ( queryString.length > 0 ) {
        begin = queryString.indexOf ( parameterName );
        
        if ( begin != -1 ) {
            begin += parameterName.length;
            end = queryString.indexOf ( "&" , begin );
        
            if ( end == -1 ) {
                end = queryString.length
            }
        }
        return queryString.substring(begin, end);
    }
    
    return "";
}
