﻿    function applyFilter(form,LastChanged,tab,selects)
    {
   		for (i=LastChanged;i<selects.length;i=i+1)
			eval("form."+selects[i]).value=0;
		
        for (j=0;j<tab.rows.length;j=j+1)
        {
	        currentRow = tab.rows[j];
            ok=true;
    		for (i=0;i<selects.length;i=i+1)
//    		for (i=0;i<LastChanged-1;i=i+1)
    		{            
                val=eval("form."+selects[i]).value;
                if (val !=0)
                    if (currentRow.cells[i].value != val)
                        ok = false;
            }
            if (!ok) currentRow.style.display = "none"
            else  currentRow.style.display = "block"
        }
        updateFilters(form,false,LastChanged,tab,selects);    
    }
    
	function updateFilters(form, updateAll,LastChanged,tab,selects)
	{
//    	for (i=0;i<selects.length;i=i+1) {
    	for (i=LastChanged;i<selects.length;i=i+1) {

            el= eval("form."+selects[i]);
            oldValue = el.value;
            if (updateAll || (i+1 != LastChanged) || (oldValue == "0"))
            {                
    			options = el.options;   
                options.length = 1;     
		        for (j=0;j<tab.rows.length;j=j+1)
    			{
	  			  currentRow = tab.rows[j];
				  if (currentRow.style.display != "none") 
                  {              
					txt = (currentRow.cells[i].innertext);
					value = (currentRow.cells[i].value);
                    exists = false;
                    for (z=1;z<options.length;z++)
                        if (options[z].value == value)
                            exists = true;
                    if (!exists)
                        options[options.length] = new Option(txt,value);
                  }				
    			}
                el.value = oldValue;
			  }
				
          }

		if (updateAll == true )
			for (a=0;a < tab.defaults.length;a=a+1) 
			{
				eval("form."+selects[a]).value = tab.defaults[a];
				if (tab.defaults[a] !=0) {}
					applyFilter(form,a+1,tab,selects);
				
			}
		
	}
	

