/* Simple Table Sorter v2.0 (+ JS Data Filter)
   http://ir2.ru/js_data_filter.aspx 
@require http://ir2.ru/ir2.js 19.08.2010 
@require http://ir2.ru/tabsort.css 23.08.2010 
*/
/* Использование: 

требуются правила CSS: 
.i {font-style:italic;} 
.num {width:3em;}
.str {width:5em;}
.disnone {display:none;}
.disnone_child .disnone_if {display:none;}



II Фильтры

1) для подключения модуля фильтров по значениям колонок таблицы
с явно указанным типом сортировки (axis)
в секции "Настройки" назначить use_inputs = true;
2) для подключения модуля фильтров ко всем заголовкам сортируемых
таблиц без разбора в секции "Настройки" назначить 
use_inputs = true
inputs_force = true;
3) для удаления сообщения с количеством результатов нажать Escape;
4) для поиска в середине полей (строковый тип) добавлять перед
искомой фразой (буквой) пробел.
*/

/* Настройки */
 /* использование всплывающего title */
var use_title = true /* added by Clusta */
 /* сохранение-восстановление предыдущей сортировки */
var use_cookie = true
 /* использовать отбор строк (фильтры) */
var use_inputs = true
 /* использовать фильтры без axis (тип String) */
var inputs_force = true
/* настройки конец */

function scells(row) {
alert("scells(row) ");
 var sarr=[], cells=row.cells;
 for (var i=0; i<cells.length; i++) {
  var c=striptags(cells[i].innerHTML).toLowerCase();
  sarr[i]=c;
 }
 return sarr;
}

function onch(){

alert("onchange")

}


addLoadEvent(preptabs);
function preptabs() {
 var word=document.getElementsByTagName("input");
 var tex=document.getElementsByTagName("SELECT");
 for (var el=0; el<tex.length; el++) {
  var elem=tex[el];
  elem.onchange=data_filter;
 }
 for (var el=0; el<word.length; el++) {
  var elemw=word[el];
  elemw.onkeyup=data_filter;
 }


  
}

var trcolor, overcolor="#ccf";
function overtab(e) {
alert("Окно сообщения, вызванное с помощью JavaScript.overtab(e)");
 e = e || window.event;
 var obj=e.target || e.srcElement;
 var tr=obj.parentNode;
 if (overcolor==tr.style.backgroundColor) {
  tr.style.backgroundColor=trcolor;
 } 
 else {
  trcolor=tr.style.backgroundColor;
  tr.style.backgroundColor=overcolor;
  /*тупой перевод в формат rgb()*/
  overcolor=tr.style.backgroundColor; 
 }
}

function clicktab(e) {
 e = e || window.event;
 prevent(e);
 var sorttype=false;
 if (!e.ctrlKey && e.shiftKey && !e.altKey) sorttype="num";
 if (e.ctrlKey && !e.shiftKey && e.altKey) sorttype="daten";
 if (e.ctrlKey && !e.shiftKey && !e.altKey) sorttype="datru";
 var obj=e.target || e.srcElement;
 alert(obj);
 /* Если в заголовке сложный код */
 if ("INPUT"==obj.tagName) return;
 alert(obj.tagName);
 if ("TH"!=obj.tagName && "TD"!=obj.tagName) {
  var testobj=findParent(obj, "TH"); //ячейка заголовка
  if (!testobj) { / * обратная совместимость (с TD в заголовке) */
   testobj=findParent(obj, "TD");
   if (this!=testobj.parentNode) testobj=null;
  }
  obj=testobj;
 }
 if (!obj) {
 alert("return");
return;
}
 if (e.ctrlKey && e.shiftKey && e.altKey) {
 alert("ячейка заголовка shiftKey");
  var t=findParent(obj, "TABLE", "sortable");
  if (!t || "object"!=typeof t.cookid) return;
  setCookie(t.cookid[0], "", "", -1) //delete cookie
//  alert(document.cookie)
  location.reload();
  return;
 }
}


/******************** JS Data Filter *******************/

function data_filter(obj, n) {
  var invis_class="disnone_if", row, 
 counter=0, find_in_disnone, allSpacesRe = /\s+/g
 pflag=false,flag1=0,flag2=0,flag2_temp=0,flag_word=0

  
 

 c=document.getElementById("price-box")
 t=document.getElementById("price-box")
 w=document.getElementById("wordbox")
 sel2=document.getElementById("filter")
 sel1=document.getElementById("caregory")
 srcElement = obj.srcElement ? obj.srcElement : obj.target;
 if(srcElement.name=="NAME"){
 sel1.selectedIndex=0
 sel2.selectedIndex=0
 }
 else{
 w.value="" 
}
 
 if (window.pworking){
alert("if (window.pworking)"); 
return
}
 sel3=w.value.toLocaleLowerCase()
 sel3=sel3.replace(/\&nbsp\;/g,"\xa0")
 sel3=sel3.replace(allSpacesRe, "")
 if (sel3!=""){flag_word=1}
 
 poisk2=sel2.options[sel2.selectedIndex].text.toLocaleLowerCase()
 poisk2=poisk2.replace(allSpacesRe, "")
 
 poisk1=sel1.options[sel1.selectedIndex].text.toLocaleLowerCase()
 poisk1=poisk1.replace(allSpacesRe, "")
 if (sel1.selectedIndex!=0) {flag1=1
}
 if (sel2.selectedIndex!=0) {
 flag2=1
 flag2_temp=1
 }
 window.pworking=true
 val_pred=""
 val1_jbi=""
 for (var i=1; i<t.rows.length; i++) {
  row=t.rows[i]
  val1=striptags(row.cells[0].innerHTML).toLocaleLowerCase()
  val1=val1.replace(/\&nbsp\;/g,"\xa0");
  val1=val1.replace(allSpacesRe, "")
  val1_jbi=val1
 tttt="%u043A%u0430%u0442%u0430%u043B%u043E%u0433"
 nnnn="%u043D%u043E%u0432%u0438%u043D%u043A%u0430"
  if ((val1!="")&&(escape(val1)!="%u043D%u043E%u0432%u0438%u043D%u043A%u0430")&&(escape(val1)!="%u043A%u0430%u0442%u0430%u043B%u043E%u0433")) {
   val_pred=val1
   flag2=0
   val3="ююю"
  }
  else 
  {
   if(flag2_temp==1){
    flag2=1
   } 
   if ((flag2_temp==1)&&(flag1==0)){}
   else{
    val1=val_pred 
   }
   if (escape(val1_jbi)=="%u043A%u0430%u0442%u0430%u043B%u043E%u0433"){
    val2=striptags(row.cells[3].innerHTML).toLocaleLowerCase()
    val2=val2.replace(allSpacesRe, "")
   }
   else{
    val2=striptags(row.cells[1].innerHTML).toLocaleLowerCase()
    val2=val2.replace(allSpacesRe, "")
   }
   if(flag_word==1){
    val3=striptags(row.cells[2].innerHTML).toLocaleLowerCase()
    val3=val3.replace(allSpacesRe, "")
   } 

  }
  
    flag_vse=1

    if (flag1==1){if (0!=val1.indexOf(poisk1)){flag_vse=0}}

    if (flag2==1){if (0!=val2.indexOf(poisk2)){flag_vse=0}}

    if (flag_word==1){if (0!=val3.indexOf(sel3)){flag_vse=0}}
    
    flag_est_v_group=1
 
    if ((flag2_temp==1)&&(flag1==0))
    {
     if ((val1!="")&&(escape(val1)!="%u043D%u043E%u0432%u0438%u043D%u043A%u0430")&&(escape(val1)!="%u043A%u0430%u0442%u0430%u043B%u043E%u0433"))
     {
      flag_est_v_group=0
      i_group=0
      i01=i+1
      if (i01<t.rows.length)
      {
       for(var i01; i_group==0; i01++)
       {
        row01=t.rows[i01]
        val00=striptags(row01.cells[0].innerHTML).toLocaleLowerCase()
        val00=val00.replace(/\&nbsp\;/g,"\xa0");
        val00=val00.replace(allSpacesRe, "")
        if ((val00=="")||(escape(val00)=="%u043D%u043E%u0432%u0438%u043D%u043A%u0430")||(escape(val00)=="%u043A%u0430%u0442%u0430%u043B%u043E%u0433"))
        {
         if (escape(val00)=="%u043A%u0430%u0442%u0430%u043B%u043E%u0433"){
          val01=striptags(row01.cells[3].innerHTML).toLocaleLowerCase()
          val01=val01.replace(allSpacesRe, "")
	 }
         else{	 
          val01=striptags(row01.cells[1].innerHTML).toLocaleLowerCase()
          val01=val01.replace(allSpacesRe, "")
         }
         if (0==val01.indexOf(poisk2)) 
         {
          i_group=1
          flag_est_v_group=1
         }
        }
        else
        {
         i_group=1
        }
        if (i01+1==t.rows.length) 
        {
         i_group=1
        }
       }
      }
      else
      {
      }
     }	
    }
    
     if (flag_est_v_group==0) {flag_vse=0} 
     if (flag_vse==1){
     delclass(row, invis_class)
     counter++
     pflag = true}
    else {addclass(row, invis_class)}
 }

 if (pflag) {
  addclass(t, "disnone_child")
 }
 else {
  delclass(t, "disnone_child")
 }
 window.pworking=false
}

