 /* search option storage */
     
     var page_size_limit = "50";
     
     var keyword_search_start = 0; /* tell if the keyword search is started or not*/
     
     var category_val = '%';
     var subcategory_val = '%';
     var product_type_val = '%';
     var manufacturer_val = '%';
     var certprogram_val = '%';
     var conformance_val = '%';

     var certprogram_conformance_mutual_sender = '';

     var keyword_value = ''; /* by default is empty */
     var keyword_type = 'brand'; /* by default is brand */            
     var pagesize = 0;
     var curpage = 1; /* by default is page 1*/
     var params = "";
     
     
     
     
     function on_ajax_loading(targetDIV){
       /* to be overrided */
       document.getElementById(targetDIV).innerHTML = "<input type='button' style='width:150px;border:1px silver solid;background:white' value='loading...'></input>";
     }
     
     function clearSearch(){
       window.location.href = sURL;
     }
     
     /* new function, convert special characters -- deprecated
     function csc(string){
       
       
       
       
       tmp = "";
       
       
       for(k=0;k<string.length;k++){
         code = string.charCodeAt(k);
         
         
         if(code > 127){
          
           if(code == 8482){
             tmp += "unicode-153;"; 
           }
           else{
             tmp += "unicode-" + code + ";";
           }
         }
         else{
           tmp += string.charAt(k);
         }
         
       }
       
       
       
       return string;
       
     }
     */
     
     
     function prepare_keyword_search(keywordbox){
       keywordbox.value = "";
       keyword_search_start = 1; /* now the keyword search is started*/
     }
     
     function onCategoryChange(selection){
       category_val = selection.value;
       
       if(category_val == '%'){
          subcategory_val = '%';
          product_type_val = '%';
          manufacturer_val = '%';
          
           updatePullDownSetOne('update_product_subcat','subcategorylist');
           updatePullDownSetOne('update_product_type','product_type_list');
           updatePullDownSetOne('update_manufacturer','manufacturer_list');
       }   
       else{
         updatePullDownSetOne('update_product_subcat','subcategorylist');
         updatePullDownSetOne('update_manufacturer','manufacturer_list');
       }
       
       
     }
     
     function onSubCategoryChange(selection){
       subcategory_val = selection.value;
       
       
       if(subcategory_val == '%'){
         product_type_val = '%';
         manufacturer_val = '%';
         
         updatePullDownSetOne('update_product_type','product_type_list');
         updatePullDownSetOne('update_manufacturer','manufacturer_list');
       }
       else{
         updatePullDownSetOne('update_product_type','product_type_list');
         updatePullDownSetOne('update_manufacturer','manufacturer_list');
       }
       
       
     }
    
     function onProductTypeChange(selection){
       
       product_type_val = selection.value;
       
       
       if(product_type_val == '%'){
         manufacturer_val = '%';
       }
       
       updatePullDownSetOne('update_manufacturer','manufacturer_list');
     }
    
     function onManufacturerChange(selection){
       manufacturer_val = selection.value;
      
     }
     
     function onCertProgramChange(selection){
       
       
       certprogram_val = selection.value;
       
       
       
       if(certprogram_val == '%'){
          conformance_val = '%'; /* tricky! */
          certprogram_conformance_mutual_sender = '';
          updatePullDownSetTwo('update_conformance','conformance_list');
       }  
       else{
          if(certprogram_conformance_mutual_sender == ''){
              certprogram_conformance_mutual_sender = 'certprogram';
          }
       } 
       
       
       
       if(certprogram_conformance_mutual_sender == 'certprogram'){
          updatePullDownSetTwo('update_conformance','conformance_list');
       }
       
       
      
     }
     
     function onConformanceChange(selection){
       
        conformance_val = selection.value;
        
        
        
        
        if(conformance_val == '%'){
          certprogram_val = '%'; /* tricky! */
          certprogram_conformance_mutual_sender = '';
          updatePullDownSetTwo('update_certprogram','cert_program_list');
        }  
        else{
          if(certprogram_conformance_mutual_sender == ''){
              certprogram_conformance_mutual_sender = 'conformance';
          }
        } 
        
        if(certprogram_conformance_mutual_sender == 'conformance'){
            updatePullDownSetTwo('update_certprogram','cert_program_list');
        }
      
     }
     
     
    
     function setKeyType(chooser){
       keyword_type = chooser.value;
     }
     
     function setPageSize(event,input){
       
       eventtype=event.type;
       
       if(eventtype == 'keydown'){
         if(event.keyCode == 13 || event.which == 13){
           pagesize = input.value;
           
           if(pagesize > page_size_limit){
             pagesize = page_size_limit;
             input.value = page_size_limit;
           }
           
           /* tricky! reset curpage to 1 */
           curpage = 1;
           startSearch();
         }
       }
       
     }
     
     
     function jumpToPage(page){
       curpage = page;
       startSearch();
     }
     
     function updatePullDownSetOne(operation_name,targetDIV){
       
       /* pull down set one --- cat,subcat,type, manufacturer*/
    
       params = 'signal=ajax&op=';
       params += operation_name;
       params += '&cat=' + category_val;
       params += '&subcat=' + subcategory_val;
       params += '&type=' + product_type_val;
       params += '&manufacturer=' + manufacturer_val;
      
       link_to_remote(remoteServer,params,targetDIV);        
     }
     
     function updatePullDownSetTwo(operation_name,targetDIV){
       /* pull down set two --- cert program, conformance */ 
       
       params = 'signal=ajax&op=';
       params += operation_name;
       params += '&certprogram=' + certprogram_val;
       params += '&conformance=' + conformance_val;
       
       link_to_remote(remoteServer,params,targetDIV);  
     }
     
     function startSearch(){
     
       
       
       /* tricky! when start search, set cur page = 1*/
       
       if(keyword_search_start == 0){  
          keyword_value = "";
       }
       else{
         keyword_value = document.getElementById('keyword').value;
       }
      
       
      
       /* convert special chars */
       
       
       
       params = 'signal=ajax&op=start_search';
       params += '&cat=' + category_val;
       params += '&subcat=' + subcategory_val;
       params += '&type=' + product_type_val;
       params += '&manufacturer=' + manufacturer_val;
       params += '&certprogram=' + certprogram_val;
       params += '&conformance=' + conformance_val;
       params += '&keyword=' + keyword_value;
       params += '&keytype=' + keyword_type;
       params += '&pagesize=' + pagesize;
       params += '&curpage=' + curpage;
       targetDIV = "searchresult_panel";
      
      
      
       link_to_remote(remoteServer,params,targetDIV);
         
     }

