// Вспомогательная ф-ия замена getElementsByName для IE которая не пашет
function getElementsByName_iefix(tag, name) 
{
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
} 

var t = 0;
var pageIn = 0;
var http_request = false; 
function createRequest() 
{
   
    if (window.XMLHttpRequest) 
    { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) 
        {
            http_request.overrideMimeType('text/xml');
            // Читайте ниже об этой строке
        }
    } else if (window.ActiveXObject) 
     { // IE
        try 
        {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
        try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
        }
    }
    if (!http_request) 
    {
        alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP ');
        return false;
    }
}

function alertContents(http_request) 
{
    if (http_request.readyState == 4) 
    {
        if (http_request.status == 200) 
        {
            // Выполнять обработку ответа
           return http_request.responseText;
        } 
        else 
        {
            alert('С запросом возникла проблема.');
        }
    }
}

function getIdPage()
{
  str = window.location.search;
  id = str.substr(4); // id страницы с каталагом для SQL запроса
  return id;
}

function getURL_count()
{
  url_str = "templates/count_obj.php?pid=" + getIdPage() ;
  return url_str; 
}

  createRequest();
  http_request.open('GET', getURL_count() + "&rand=" + (new Date().getTime()), true);
  http_request.onreadystatechange = function() { 
  if (http_request.readyState == 4) 
    {
        if (http_request.status == 200) 
        {
            // Выполнять обработку ответа
           t = http_request.responseText;
           page();
        } 
        else 
        {
            alert('С запросом возникла проблема.');
        }
    }
  
  
  };
  http_request.send(null);

function page()   // вызывается событием onLoad
{
 //alert(t);
 // Всего объектов глобально в t
p = 10;      // число объектов на странице (глобально)   
if(t > p)
    {    
       writeTR(p);
       selectPage(1, p);  
    } 
    else
    { 
        p = 0;
        writeTR(p);
    }
}


// Вывод блоков после загруза страницы. Вызывается в page();
function writeTR(p)
{    
     if(t != 0)
     requestPage(1, p);
} 

// вывод нужных блоков на выбранную страницу   
function writePage(numPage, p)
{
//alert(pageIn);
  for(i=1; i <= pageIn; i++)
       {   
         if(document.getElementById(i) != null) 
          document.getElementById(i).style.display = 'none';  
       }
  
  if (document.getElementById(numPage) != null) 
   document.getElementById(numPage).style.display = 'block';
  else 
   requestPage(numPage, p); 
  
  selectPage(numPage, p);
}

// Отправка запроса и добаление ответа
function requestPage(num, p)
{
  document.getElementById('imgLoad').style.display = 'block';
  minLimit = (num-1)*p;
  maxLimit = num*p;
  
  url = "templates/q.php?pid=" + getIdPage() + "&min=" + minLimit + "&p=" + p + "&count=" + t + "&rand=" + (new Date().getTime());
 // if(getIdPage() == 20)
 //  url = 
  createRequest();
  http_request.open('GET', url , true);
  http_request.onreadystatechange = function() 
  { 
  
  if (http_request.readyState == 4) 
    {
        if (http_request.status == 200) 
        {
        // Выполнять обработку ответа
                q = http_request.responseText;
                mainDiv = document.getElementById('main');
                numDiv = document.createElement('div');
                numDiv.setAttribute('id', num);
                numDiv.innerHTML = q; 
                endDiv = document.getElementById('end'); 
                run = null;
                
                if(num == pageIn)
                  num_abs = num - 1;
                else
                  num_abs = num;
                  
                for(var i = num_abs + 1; i <= pageIn; i++)
                {
                  if(document.getElementById(i) != null) 
                     {
                       //alertContents(http_request);
                       document.getElementById('imgLoad').style.display = 'none';
                       mainDiv.insertBefore(numDiv, document.getElementById(i));
                       run = false;
                       break;
                     }
                  else run = true;
                }
                
                if(run == true)
                  {
                    document.getElementById('imgLoad').style.display = 'none';
                    mainDiv.insertBefore(numDiv, endDiv); 
                  }
            
        } 
        else 
        {
            alert('С запросом возникла проблема.');
        }
    }
  };
  http_request.send(null);
}


function search()
{
 if(isFinite(document.getElementById('textfield2').value) == true && isFinite(document.getElementById('textfield3').value) == true)
 {
     document.getElementById('main').innerHTML = "";
     document.getElementById('imgLoad').style.display = 'block';
     deletePage();
     from = document.getElementById('textfield2').value;
     to = document.getElementById('textfield3').value;
      createRequest();
      http_request.open('GET', getURL_count() + "&from=" + from + "&to=" + to + "&rand=" + (new Date().getTime()), true);
      http_request.onreadystatechange = function()
      { 
        if (http_request.readyState == 4) 
        {
            if (http_request.status == 200) 
            {
              document.getElementById('imgLoad').style.display = 'none';
              document.getElementById('main').innerHTML = alertContents(http_request);
            }
        } 
      }
      http_request.send(null);
 }
 else
 {
       alert("Введите площадь числами!");
       document.getElementById('textfield2').value = "";
       document.getElementById('textfield3').value = "";
 }
}
// вывод страничной навигации
function selectPage(num, p)
{
         
          var countObjects = t;
          var countObjectsInPage = p;  
          pageIn = countObjects/countObjectsInPage;
      
          if((pageIn - Number(pageIn.toFixed(0))) < 0) 
           {
            pageIn = Number(pageIn.toFixed(0));
           }
          if ((pageIn - Number(pageIn.toFixed(0))) > 0)    
           {
           pageIn = Number(pageIn.toFixed(0)) + 1;
           }
       
       var div1 = document.getElementById('page_1');
       
       if(num != 1)
       {  
               b = document.createElement('b');
               div1.appendChild(b);
               a = document.createElement('a');
               b.appendChild(a);
               a.setAttribute('href','javascript:deletePage(); writePage(' + (num-1) + ',' + p + ');');
           //    a.setAttribute('class','orange');
               
               n = document.createTextNode("<<");
               a.appendChild(n);
               space = document.createTextNode(' ');
               div1.appendChild(space);
       }
              
       for (var i=1; i <= pageIn; i++)
         { 
          if(i != num)
          {         
               b = document.createElement('b');
               div1.appendChild(b);
               a = document.createElement('a');
               b.appendChild(a);
               a.setAttribute('href','javascript:deletePage(); writePage(' + i + ',' + p + ');');
            //   a.setAttribute('class','orange');
               
               n = document.createTextNode(i);
               a.appendChild(n);
               space = document.createTextNode(' ');
               div1.appendChild(space);
          }
          else
          {
               n = document.createTextNode(i);
               div1.appendChild(n);
               space = document.createTextNode(' ');
               div1.appendChild(space);
          }
         }
         
         if(num != pageIn)
       {
               b = document.createElement('b');
               div1.appendChild(b);
               a = document.createElement('a');
               b.appendChild(a);
               a.setAttribute('href','javascript:deletePage(); writePage(' + (num+1) + ',' + p + ');');
            //   a.setAttribute('class','orange');
               
               n = document.createTextNode(">>");
               a.appendChild(n);
               space = document.createTextNode(' ');
               div1.appendChild(space);
       }          
          
       div2 = document.getElementById('page_2'); 
       div = div1.childNodes;
       // клонирование объектов из page_1 в page_2
       for(var i=0; i < div.length; i++)
       {
       div_2 = div[i].cloneNode(true);
       div2.appendChild(div_2);
       }
}

// удаление элементов верхней и нижней панели навигации
function deletePage()
{
    for(var i=1; i<3; i++)
    {
       var div = document.getElementById('page_' + i);
       ch_div = div.childNodes;
         while(ch_div.length)
          {
              a = ch_div[0].firstChild;
               if(a == null) div.removeChild(ch_div[0]);
               else
               {
                 a.removeChild(a.firstChild);
                 ch_div[0].removeChild(a);
                 div.removeChild(ch_div[0]); 
               }
          }
    }
}
