var s_sReq;
var s_nStart = 0;
var s_nDocPerPage = 20;

function ResExec(sReq, bClean)
{
	var oMsg, oTable, oResPg;

	oMsg = document.getElementById('msg');
	oTable = document.getElementById('resTbl');
	oResPg = document.getElementById('resPg');

	oMsg.innerHTML = 'Подождите, выполняется поиск...<br><br>';

	arsParam = sReq.split('&');
	for(i = 0; i < arsParam.length; i++)
	{
		if(arsParam[i].substr(0,3).toLowerCase() == 'ns=')
		{
			s_nStart = parseInt(arsParam[i].substr(3));
			arsParam[i] = null;
		}
		else if(arsParam[i].substr(0,3).toLowerCase() == 'nd=')
		{
			s_nDocPerPage = parseInt(arsParam[i].substr(3));
		}
	}
	s_sReq = arsParam.join('&');
	if(s_sReq.charAt(s_sReq.length-1) != '&')
		s_sReq += '&';

	if(bClean)
	{
		oTable.style.display = 'none';
		oResPg.style.display='none';
		SetPage(2);
	}

	location.assign('#resTop');
	LoadXML('./?Find'+sReq, ResOnLoad, null);
}


function ResOnLoad(XMLReq)
{
	var oMsg;

	oMsg = document.getElementById('msg');
	oTable = document.getElementById('resTbl');
	oResPg = document.getElementById('resPg');

	oMsg.innerHTML = '';
	//oTable.style.display = 'none';
	oNewTable = document.createElement('table');
	oTable.parentNode.replaceChild(oNewTable, oTable);
	oNewTable.id = 'resTbl';
	oNewTable.border = '0';
	oNewTable.width = '100%';
	oTable = oNewTable;

	DSTable = XMLReq.Req.responseXML.getElementsByTagName('l');
	N = DSTable.length-1;
	DSRecord = DSTable[N];
	nTotal = GetField(DSRecord, 'total');
	nNs    = GetField(DSRecord, 'ns');
	nNe    = GetField(DSRecord, 'ne');
	hr = parseInt(GetField(DSRecord, 'hr'), 16);

	//alert('Found: '+nTotal+'\nFirst: '+nNs+'\nLast: '+nNe+'\nhr: '+hr);

/*hr 0x80040303 ???*/
	if(hr == 1)
	{
		oMsg.innerHTML = '<font color=#FF0000>Параметры поиска не заданы</font><br>';
	}
	else if(hr != 0)
	{
		oMsg.innerHTML = '<font color=#FF0000><b>Ошибка '+hr.toString(16)+'</b></font><br>';
	}
	else if(nTotal == 0)
	{
		oMsg.innerHTML = 'Документы не найдены<br>';
	}
	else
	{
		oMsg.innerHTML = 'Найдено документов: <b>'+nTotal+'</b><br>Документы с <b>'+nNs+'</b> по <b>'+nNe+'</b><br>';
	}
//	if(hr || !nTotal)
//		return;

	for(i = 0; i < N; i++)
	{
		DSRecord = DSTable[i];
		sImgSrc = GetField(DSRecord, 'imgSrc');
		sName = GetField(DSRecord, 'name');
		sRef = GetField(DSRecord, 'ref');

		oRow = oTable.insertRow(-1);

		oCell = oRow.insertCell(-1);
		//oCell.style.borderBottom = '1 solid black';
		oCell.innerHTML = '\
<table border=0 width=100%>\
  <tr>\
    <td width=24 valign=baseline><img border=0 src="'+sImgSrc+'" width=24 height=20></td>\
    <td><a target="_blank" href="'+sRef+'">'+sName+'</div></a></td>\
  </tr>\
</table>';
	}

	oPg = document.getElementById('pPrev');
	nPrev = s_nStart-s_nDocPerPage;
	if(nPrev < 0)
	{
		oPg.parentNode.className = 'prd';
		oPg.innerHTML = '';
		oPg.removeAttribute('href');
		//oPg.parentNode.style.display = 'none';
	}
	else
	{
		oPg.parentNode.className = 'pr';
		oPg.href='javascript:ResExec(\''+s_sReq+'ns='+nPrev+'\',false)'
		oPg.innerHTML = '&lt;';
		oPg.parentNode.style.display = '';
	}

	nPage = (s_nStart-(s_nStart%s_nDocPerPage))/s_nDocPerPage+1;
	nFirstPage = (nPage-1-((nPage-1)%20))+1;
	nLastPage = (nTotal-(nTotal%s_nDocPerPage))/s_nDocPerPage;
	if(nLastPage > nFirstPage+20)
		nLastPage = nFirstPage+20; // ???

	for(n = 0; n < 20; n++)
	{
		id = n+1;
		oPg = document.getElementById('p'+id);
		if(n+nFirstPage > nLastPage+1)
		{
			oPg.innerHTML = '';
			oPg.parentNode.style.display = 'none';
			continue;
		}

		oPg.innerHTML = n+nFirstPage;

		if(n+nFirstPage == nPage)
		{
			oPg.removeAttribute('href');
			//oPg.style.color = 'black';
			//oPg.parentNode.style.backgroundColor = 'white'; //'#B4B0AD';
			oPg.parentNode.className = 'prc';
		}
		else
		{
			nNext = (nFirstPage+n-1)*s_nDocPerPage;
			oPg.href='javascript:ResExec(\''+s_sReq+'ns='+nNext+'\',false)'
			//oPg.style.color = '';
			//oPg.parentNode.style.backgroundColor = '';
			oPg.parentNode.className = 'pr';
		}

		oPg.parentNode.style.display = '';
	}

	oPg = document.getElementById('pNext');
	nNext = s_nStart+s_nDocPerPage;
	if(nNext > nNe)
	{
		oPg.innerHTML = '';
		oPg.parentNode.style.display = 'none';
	}
	else
	{
		oPg.href='javascript:ResExec(\''+s_sReq+'ns='+nNext+'\',false)'
		oPg.innerHTML = '&gt;';
		oPg.parentNode.style.display = '';
	}

	if(nTotal > 0)
	{
		oTable.style.display ='';
		oResPg.style.display ='';
	}
	else
	{
		oTable.style.display ='none';
		oResPg.style.display ='none';
	}
}
/*
function LoadList()
{
   Param = document.location.search.substr(1).split('&');
   for(i = 0; i < Param.length; i++)
   {
      if(Param[i].substr(0,3).toLowerCase() == 'ns=')
	  {
	     nStart = parseInt(Param[i].substr(3));
		 Param[i] = null;
	  }
      else if(Param[i].substr(0,3).toLowerCase() == 'nd=')
	  {
	     nDocPerPage = parseInt(Param[i].substr(3));
	  }
   }
   sSearch = Param.join('&');
   if(sSearch.charAt(sSearch.length-1) != '&')
      sSearch += '&';

   msgEmpty.style.display = 'none';
   msgRunning.style.display = '';
   msgNotfound.style.display = 'none';
   msgResult.style.display = 'none';
   msgCount.style.display = 'none';
   msgError.style.display = 'none';

   document.body.insertAdjacentHTML('afterBegin', '<xml id=XMLList src="?Find&'+document.location.search.substr(1)+'.xml" OnDataSetComplete="OnListLoaded(this);"></xml>');
}
*/
