var d = document;
var current_row = 0;
var listopened = false;

function doLoad(div,action,value) {                        
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            switch(action){
              case"findlist":
//                alert(req.responseJS['totalrows']);
                if(req.responseJS['totalrows'] == 0){
                  ge(req.responseJS['div']).style.display = 'none';
                } else {
                  ge(req.responseJS['div']).style.display = 'block';
                  ge(req.responseJS['div']).innerHTML = req.responseText;                
                }

              break;
              case"change_font":
                 
              break;
              default:
                ge(req.responseJS['div']).innerHTML = req.responseText;
              break;
            }
        }
    }    
    req.open(null, '/ajax.php', true);    
    req.send( { q: value ,div: div, action:action} );
}

function ge(obj){
   if(document.getElementById(obj)) {
     obj = document.getElementById(obj);
     return obj;
   } else {
     return false;
   }

}


function findlist(div,table,field,text,limit,ie_event,ff_event){
//    alert("+++");

    if(is_ie){
      key = ie_event.keyCode;
    } else {
      key = ff_event.keyCode;         
    }

    if(text.length > 2 && key != 38 && key != 40 && key != 37 && key != 39){
      current_row = 0;
//      ge("list_"+div).style.display = "block";
//        ge("info").innerHTML = key+"+++"+text;
      doLoad("list_"+div,"findlist","[table]=["+table+"][field]=["+field+"][text]=["+text+"][limit]=["+limit+"]");
      listopened = true;
    } else 
    if(text.length > 2 && key == 8){
      current_row = 0;
//      ge("list_"+div).style.display = "block";
//        ge("info").innerHTML = key+"+++"+text;
      doLoad("list_"+div,"findlist","[table]=["+table+"][field]=["+field+"][text]=["+text+"][limit]=["+limit+"]");
      listopened = true;
   } else
   if(text.length < 3 && key != 38 && key != 40 && key != 37 && key != 39){
      ge("list_"+div).style.display = "none";    
    }

}


function rowmover(div,ie_event,ff_event,limit){
//         ge("row_"+current_row).className = "row_light";            
         if(is_ie){
           key = ie_event.keyCode;
         } else {
           key = ff_event.keyCode;         
         }
//         ge("info").innerHTML = key+" - "+limit+" | "+current_row;

         if((key == 40 || key == 38) && ge("totalrows")){

             if(key == 40){
                totalrows = ge("totalrows").value;
                clearrows();
                if(current_row == 0){
    //            ge("row_1").className = "row";
                  ge("row_1").className = "row_light";
                  current_row = 1;
                } else 
                if(current_row == 1){
                  ge("row_2").className = "row_light";            
                  ge("row_1").className = "row";
                  current_row = 2;
                } else
                if(current_row != totalrows && current_row != 1){
//                  alert("+");

                  ge("row_"+current_row).className = "row";
                  ge("row_"+(current_row + 1)).className = "row_light";

                  ++current_row;
                } else
                if(current_row == totalrows){
                   ge("row_"+current_row).className = "row_light";
                }
                text = ge("hrow_"+current_row).value;
                insertvalue(text,div);
             } else
             if(key == 38){
                totalrows = ge("totalrows").value;
                clearrows();
                if(current_row == 0){
    //              alert("+");
    //            ge("row_1").className = "row";
                  ge("row_1").className = "row_light";
    //              --current_row;
                } else 
                if(current_row == 1){
                  ge("row_2").className = "row";
                  ge("row_1").className = "row_light";            
                  current_row == 0;
                } else
                if(current_row > 1){
                  ge("row_"+current_row).className = "row";
                  ge("row_"+(current_row - 1)).className = "row_light";            
                  --current_row;
                } else
                if(current_row == totalrows){
                  ge("row_"+totalrows).className = "row_light";            
    //              findlist(div,table,field,text,limit);
                }
                text = ge("hrow_"+current_row).value;
                insertvalue(text,div);
                                        
             }

         } else
         if(key == 9){
            closebyid("list_");
         }
         /*else
         if(key == 13 && ge("row"+current_row).isdrug == 1){
            alert(ge("row"+current_row).isdrug);
            closebyid("list_");
            str = ge("row_"+current_row).value;
            ge("findform").value = str;
            ge("findform").submit();
            return false;
         }*/


}


function lightrow(key){

    if(current_row > 0){
      ge('row_'+current_row).className='row';
    }

    ge('row_'+key).className='row_light';
    current_row = key;
}



function insertvalue(text,input){
   ge(input).value=text;
}


function is_ie(){
      bb = navigator.userAgent;
      if(bb.indexOf('MSIE') > -1){
        return true;    
      } else {
        return false;
      }
}

function is_ff(){
      bb = navigator.userAgent;
      if(bb.indexOf('Firefox') > -1){
        return true;    
      } else {
        return false;
      }
}

function clearrows(){
    rows = getn("td");
    for(i=0;i<rows.length;i++){
       if(rows[i].id.indexOf("row_") > -1){
//          alert(rows[i].id);
          rows[i].className = "row";
       } 
    }
}

function getn(name){
    a = d.getElementsByTagName(name);
    return a;
}



// главная ф-ция закрытия popup-окошек
// слушаем любые нажатие мышки, и закрываем нужные объекты
function closelist(event_ff,event_ie){
//          ge("infobox").innerHTML = "OS["+openstatus+"]DDIT["+dontdoit+"]";
//          alert(openstatus);
          if(is_ff()){
            e = event_ff;
            x = e.clientX;
            y = e.clientY;
          } else {
            e = event_ie;
            x = e.x;
            y = e.y;
          }

          if(obj = getopened("list_")){

            cc = getBounds(obj);
            if(!checkoverobject(cc, x, y)){
               closebyid("list_");
            }

          }


}





// получить координаты объекта
function getBounds(element)
{
  var left = element.offsetLeft;
  var top = element.offsetTop;
  for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  {
    left += parent.offsetLeft - parent.scrollLeft;
    top += parent.offsetTop - parent.scrollTop
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}


// проверяем находимся ли мы над объектом, "cc" = getBounds(object);
function checkoverobject(cc,x,y){
        outside = false;
        if(cc.left < x &&
           cc.top < y && 
           cc.left + cc.width > x &&
           cc.top + cc.height > y){
           outside = true;        
        }
        return outside;
}


// закрыть по части имени
function closebyid(partname){
 var opened = document.getElementsByTagName('div');
 for(i=0;i<opened.length;i++){
    if(opened[i].id.indexOf(partname) > -1){
         ge(opened[i].id).style.display = "none";
         ge(opened[i].id).innerHTML = "";
    }
 }
}


// ф-ция получения открытого объекта по части имени
function getopened(partname){
 var opened = document.getElementsByTagName('div');
 for(i=0;i<opened.length;i++){
    if(opened[i].id.indexOf(partname) > -1){
         if(opened[i].style.display != "none"){
           return(opened[i]);  
         }
    }
 }
}



function switchsearch(inp,mode){

     dd1 = ge("searchmode1");
     dd2 = ge("searchmode2");     
     if(mode == "art"){
          dd1.style.display = 'block';
          dd2.style.display = 'none';
          inp.selected = true;
          ge("str1").disabled = false;
          ge("str2").disabled = true;
     } else
     if(mode == "drugs"){
          dd1.style.display = 'none';
          dd2.style.display = 'block';
          inp.selected = true;
          ge("str2").disabled = false;                    
          ge("str1").disabled = true;          
     }
     return true;    
}



function check_str(){
  var str=d.findform.str.value;
  if(str.length>3)
    {
     document.forms['findform'].submit();
     return false;
    } else {
     alert('Слишком короткий запрос');
     return false;
    }
}




function footer_pos(){


  hh = (ge("container").clientHeight - 250);
//  alert(hh);
  if(document.getElementById("floatfooter")){
     ge("floatfooter").style.top = hh+"px";
  }

//  alert(hh);
//  alert(showprop(d, "-"));
}

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}


function showprop(obj, objName) 
{
  var result = "The properties for the " + objName + " object:" + "\n";  
  for (var i in obj) {result += i + " = " + obj[i] + "\n";}  
  return result;
}
