function ShowConnecting(gridId) {
	document.getElementsByTagName('body').item(0).style.cursor = 'wait';
	var GridDiv=document.getElementById(gridId);
   if (GridDiv) {
		table = document.createElement("table");
		table.id = gridId + '_progress';
		tbody = document.createElement("tbody");
		table.appendChild(tbody);
		tr = document.createElement("tr");
		tbody.appendChild(tr);
		td = document.createElement("td");
		td.className = 'progress';
		tr.appendChild(td);
     	img = document.createElement('img');
     	img.setAttribute('src', 'img/progress.gif');
     	img.style.verticalAlign = 'middle';
     	td.appendChild(img);
		msg = document.createTextNode(' Trwa czytanie danych. Proszę czekać...');
		td.appendChild(msg);
		
		GridDiv.insertBefore(table, GridDiv.firstChild);		          	
   }
}

function ajaxGridMakeRequest(url, gridId) {
   eval('ajax_grid_http_request_' + gridId + ' = false');
	ShowConnecting(gridId);
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      eval('ajax_grid_http_request_' + gridId + ' = new XMLHttpRequest()');
      if (eval('ajax_grid_http_request_' + gridId + '.overrideMimeType')) {
         eval('ajax_grid_http_request_' + gridId + '.overrideMimeType("text/xml")');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         eval('ajax_grid_http_request_' + gridId + ' = new ActiveXObject("Msxml2.XMLHTTP")');
      } catch (e) {
         try {
           eval('ajax_grid_http_request_' + gridId + ' = new ActiveXObject("Microsoft.XMLHTTP")');
         } catch (e) {}
      }
   }

   if (eval('!ajax_grid_http_request_' + gridId)) {
      alert('Giving up: Cannot create an XMLHTTP instance');
      return false;
   }

   eval('ajax_grid_http_request_' + gridId + '.onreadystatechange = ajaxGridProcessResponse_' + gridId);
   eval('ajax_grid_http_request_' + gridId + '.open("GET", url, true)');
   eval('ajax_grid_http_request_' + gridId + '.send(null)');

   return true;
}

function ajaxGridProcessResponse(ajax_grid_http_request, gridId) {
   // xml shoul be like:
   //
   // <vdesk>
   // <result>1</result>
   // <header>
   //    <cell>Id</cell>
   //    <cell>Pozycja 1</cell>
   //    <cell>Pozycja 2</cell>
   // </header>
   // <row>
   //    <cell>1</cell>
   //    <cell>a</cell>
   //    <cell>b</cell>
   // </row>
   // <row>
   //      .... more rows...
   // </vdesk>
   //
   // or
   //
   // <vdesk>
   // <result>0</result>
   // <error>Error message</error>
   // </vdesk>
   
   var GridDiv=document.getElementById(gridId);
   if (ajax_grid_http_request.readyState == 4) {
      if (ajax_grid_http_request.status == 200) {
         ///alert(ajax_grid_http_request.responseText);
         
         eval('var panelname = ajax_grid_panel_' + gridId + ';');
         eval('var panellinkparams = ajax_grid_linkparams_' + gridId + ';');
         eval('var panelsortparams = ajax_grid_sortparams_' + gridId + ';');
         eval('var panelgridname = ajax_grid_name_' + gridId + ';');
         eval('var panelgridparams = ajax_grid_params_' + gridId + ';');

         var xmldoc = ajax_grid_http_request.responseXML;
         var root_node = xmldoc.getElementsByTagName('vdesk').item(0);
         var GridDiv=document.getElementById(gridId);
         if (GridDiv && root_node) {
           	GridDiv.className = 'mygrid';

            var XmlResultNode = root_node.getElementsByTagName('result');
            if (XmlResultNode) {
               XmlResult = XmlResultNode.item(0).firstChild.data;
               if (XmlResult == 1) {
               	eval('ajax_grid_shown_' + gridId + ' = true;');
			         while (GridDiv.firstChild) {
		               GridDiv.removeChild(GridDiv.firstChild);
		            }
                  var header = root_node.getElementsByTagName('header').item(0);
                  var cells = header.getElementsByTagName('cell');
                  
                  /// Read info from XML
                  var xmluseAdditionalTools = root_node.getElementsByTagName('useAddTools').item(0);
               	if (xmluseAdditionalTools) {
	               	useAdditionalTools = parseInt(xmluseAdditionalTools.firstChild.nodeValue);
               	} else {
               		useAdditionalTools = 0;
               	}
                  
               	var xmlcurrentoffset = root_node.getElementsByTagName('offset').item(0);
               	if (xmlcurrentoffset) {
	               	currentoffset = parseInt(xmlcurrentoffset.firstChild.nodeValue);
               	} else {
               		currentoffset = 0;
               	}
               	var xmlrowcount = root_node.getElementsByTagName('rowcount').item(0);
               	if (xmlrowcount) {
	               	rowcount = parseInt(xmlrowcount.firstChild.nodeValue);
               	} else {
               		rowcount = 0;
               	}
               	var xmlpagerowcount = root_node.getElementsByTagName('pagerowcount').item(0);
               	if (xmlpagerowcount) {
	               	pagerowcount = parseInt(xmlpagerowcount.firstChild.nodeValue);
               	} else {
               		pagerowcount = 0;
               	}
               	var xmlsortorder = root_node.getElementsByTagName('sortorder').item(0);
               	currentsortorder = '';
               	if (xmlsortorder && xmlsortorder.firstChild) {
	               	currentsortorder = parseInt(xmlsortorder.firstChild.nodeValue);
               	}

               	var hiddenCols = new Array(cells.length);
               	var hiddenColsLength = 0;
               	var hiddenXml = root_node.getElementsByTagName('hidden').item(0);
               	var hiddenColsXml = hiddenXml.getElementsByTagName('col');
                  if (hiddenColsXml.length > 0) {
                  	for (i = 0; i < hiddenColsXml.length; i++) {
	                  	hiddenCols[hiddenColsXml.item(i).firstChild.nodeValue] = 1;
	                  	hiddenColsLength++;
                  	}
                  }
               	
                  var searchData = new Array(cells.length);
                  var currentSearchFilter = '';
                  var filterInputs = [];
                  var showFilterInputs = false;
                  var searchNode = root_node.getElementsByTagName('searchdata').item(0);
						if (searchNode) {
							var searchValNodes = searchNode.getElementsByTagName('searchvalue');
							for (i = 0; i < searchValNodes.length; i++) { 
								colid = searchValNodes.item(i).getAttribute('col');
								varname = searchValNodes.item(i).getAttribute('varname');
								type = searchValNodes.item(i).getAttribute('type');
								curval = searchValNodes.item(i).getAttribute('curval');
								
								searchData[colid] = [varname, type, curval];
								currentSearchFilter += '&' + varname + '=' + encodeURI(curval).replace("'", '%27');
								filterInputs[filterInputs.length] = varname;
								if (curval != '') { showFilterInputs = true; }
							}
						}
						if (currentSearchFilter.length > 0) { currentSearchFilter = currentSearchFilter.substr(1); }
               	// Create table
                  var table = document.createElement("table");
                  var tbody = document.createElement("tbody");
                  
                  // Create first row: add, search, next, prev buttons
               	tr = document.createElement("tr");
		           	tr.className = 'headind';
               	tbody.appendChild(tr);
               	td = document.createElement("td");
               	td.setAttribute('colSpan', cells.length - hiddenColsLength);
               	tr.appendChild(td);
               	if (useAdditionalTools == 1) {
	               	innerdiv = document.createElement("div");
	               	innerdiv.className = 'buttons';
	               	td.appendChild(innerdiv);
	
	                  text = document.createTextNode(' ' + Math.min((currentoffset + 1), rowcount) + '..'  + Math.min(rowcount, currentoffset + pagerowcount) + ' z ' + rowcount);
	               	innerdiv.appendChild(text);
	               	innerdiv.appendChild(document.createTextNode(' '));
	
	               	if (currentoffset >= pagerowcount) {
								ahref = document.createElement("a");
								ahref.style.cursor = 'pointer';
								ahref.setAttribute('title', 'Poprzednie rekordy');
								url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
									+ '&' + currentSearchFilter
									+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + (parseInt(currentoffset) - 25)
									+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
									+ '&' + panelgridparams;
								if (window.addEventListener) {
		                   	eval("ahref.addEventListener('click', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); }, false);");
		                  	} else {
		                   	eval("ahref.attachEvent('onclick', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); });");
		                 	}
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_prev.gif');
		                 	ahref.appendChild(img);
		               	innerdiv.appendChild(ahref);
					      } else {
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_prev_gray.gif');
		               	innerdiv.appendChild(img);
					      }
					      innerdiv.appendChild(document.createTextNode(' '));
					      if (currentoffset + pagerowcount < rowcount) {
								ahref = document.createElement("a");
								ahref.style.cursor = 'pointer';
								ahref.setAttribute('title', 'Następne rekordy');
								url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
									+ '&' + currentSearchFilter
									+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + (parseInt(currentoffset) + 25)
									+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
									+ '&' + panelgridparams;
								if (window.addEventListener) {
		                   	eval("ahref.addEventListener('click', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); }, false);");
		                  	} else {
		                   	eval("ahref.attachEvent('onclick', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); });");
		                 	}
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_next.gif');
		                 	ahref.appendChild(img);
		               	innerdiv.appendChild(ahref);
					      } else {
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_next_gray.gif');
		               	innerdiv.appendChild(img);
					      }
				      
					     var newpage = '';
					     if (root_node.getElementsByTagName('newpage').item(0).firstChild) {
					     	   newpage = root_node.getElementsByTagName('newpage').item(0).firstChild.nodeValue;
				     	  }
						  if (root_node.getElementsByTagName('newlink').item(0).firstChild) {
					      	var newlink = root_node.getElementsByTagName('newlink').item(0).firstChild.nodeValue;
						  } else {
						  	var newlink = '';
						  }
					      if (newpage != '') {
					      	newlink = newlink.replace(/&/g, '&' + panelname);
					      
								img = document.createElement('img');
								img.setAttribute('src', 'css/grid/table_add.gif');
								ahref = document.createElement("a");
								ahref.setAttribute('href', 'index.php?' + panelname + 'page=' + newpage + '&' + panelname + newlink + panellinkparams);
								ahref.appendChild(img);
								td.appendChild(ahref);
					      }

					      if (filterInputs.length > 0) {
						      img = document.createElement('img');
						      img.setAttribute('src', 'css/grid/table_filter.gif');
						      img.style.cursor = 'pointer';
								if (window.addEventListener) {
		                  	eval("img.addEventListener('click', function() { switchGridSearchRow('srch_" + gridId + "'); }, false);");
		                 	} else {
		                  	eval("img.attachEvent('onclick', function() { switchGridSearchRow('srch_" + gridId + "'); });");
		                	}
						      td.appendChild(img);
						   }
						}
					   
					   // export
					   var ExportNode = root_node.getElementsByTagName('export').item(0);
						if (ExportNode) {
							var ExportType = ExportNode.firstChild;
							while (ExportType != null) {
								ExportName = ExportType.nodeName;
								DoExport = ExportType.firstChild.nodeValue;;
								if (DoExport == '1') {
									url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
										+ '&' + currentSearchFilter
										+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
										+ '&mode=' + ExportName
										+ '&' + panelgridparams;
									img = document.createElement('img');
									img.setAttribute('src', 'css/grid/table_export_' + ExportName + '.gif');
									ahref = document.createElement("a");
									ahref.setAttribute('href', url);
									ahref.appendChild(img);
									td.appendChild(ahref);
								}
								ExportType = ExportType.nextSibling;
							}
						}
               	               	
               	titleheader = document.createElement("h2");
               	//text = document.createTextNode("Title");
               	text = document.createTextNode("");
               	titleheader.appendChild(text);
               	td.appendChild(titleheader);
               	
               	
               		// preapre data info (none sorted columns)
               	var noneSortCols= new Array(cells.length);
               	var noneSortXml = root_node.getElementsByTagName('nonesort').item(0);
               	var noneSortColsXml = noneSortXml.getElementsByTagName('col');
                  	for (i = 0; i < noneSortColsXml.length; i++) {
	                  	noneSortCols[noneSortColsXml.item(i).firstChild.nodeValue] = 1;
                  }
                  
               	/// Create second row: column titles with sort links
                  if (cells.length > 0) {
                     tr = document.createElement("tr");
			           	tr.className = 'heading';
                     for (i = 0; i < cells.length; i++) { 
                     	if (hiddenCols[i] != 1) {
	                     	// title
	                        td = document.createElement("td");
	                        text = document.createTextNode(cells.item(i).firstChild.nodeValue + ' ');
	                        td.appendChild(text);
	                        tr.appendChild(td);
	                        
	                        /// Sort ascending
	                        if(noneSortCols[i] != 1){
		                        if (useAdditionalTools == 1) { 
											ahref = document.createElement("a");
											ahref.style.cursor = 'pointer';
											ahref.setAttribute('title', 'Sortuj rosnąco');
			
											url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
												+ '&' + currentSearchFilter
											   + '&' + panelgridname.replace(/\./g, '_') + '_so=' + (i+1)
											   + '&' + panelgridname.replace(/\./g, '_') + '_ro=' + currentoffset
											   + '&' + panelgridparams;
											if (window.addEventListener) {
					                   	eval("ahref.addEventListener('click', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); }, false);");
				                   	} else {
					                   	eval("ahref.attachEvent('onclick', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); });");
				                   	}
				                   	img = document.createElement('img');
			                     	img.setAttribute('src', 'css/grid/table_sort_up.gif');
			                     	img.setAttribute('alt', '');
				                   	ahref.appendChild(img);
				                   	td.appendChild(ahref);
			                   	
				                   	/// Sort descending
											ahref = document.createElement("a");
											ahref.style.cursor = 'pointer';
											ahref.setAttribute('title', 'Sortuj malejąco');
			
											url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
												+ '&' + currentSearchFilter
												+ '&' + panelgridname.replace(/\./g, '_') + '_so=-' + (i+1)
												+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + currentoffset
												+ '&' + panelgridparams;
											if (window.addEventListener) {
					                   	eval("ahref.addEventListener('click', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); }, false);");
				                   	} else {
					                   	eval("ahref.attachEvent('onclick', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); });");
				                   	}
				                   	img = document.createElement('img');
			                     	img.setAttribute('src', 'css/grid/table_sort_down.gif');
			                     	img.setAttribute('alt', '');
				                   	ahref.appendChild(img);
				                   	td.appendChild(ahref);
				                   }
			                   }
			                }
                     }
                     tbody.appendChild(tr);
                  }
                  
                  /// Create third row: search inputs
                  if (cells.length > 0 && filterInputs.length > 0 && useAdditionalTools == 1) {
                     tr = document.createElement("tr");
                     tr.setAttribute('id','srch_' + gridId);
			           	tr.className = 'heading';
			           	if (showFilterInputs == false) { tr.style.display = 'none'; }
                     for (i = 0; i < cells.length; i++) { 
                     	if (hiddenCols[i] != 1) {
								   td = document.createElement("td");
								   if (searchData[i]) {
								   	switch (searchData[i][1]) {
								   		case 'string':
				                        input = document.createElement('input');
				                        input.setAttribute('name', panelname + searchData[i][0]);
				                        input.setAttribute('type', 'text');
				                        input.setAttribute('value', searchData[i][2]);
				                        input.style.width = '95%';
												url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
													+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + currentoffset
													+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
													+ '&' + panelgridparams;
												if (window.addEventListener) {
						                   	eval("input.addEventListener('keydown', function(event) { if (event.keyCode == 13) { refreshFilter('" + url + "', '" + gridId + "', filterInputs);} }, false);");
					                   	} else {
						                   	eval("input.attachEvent('onkeydown', function(event) { if (event.keyCode == 13) { refreshFilter('" + url + "', '" + gridId + "', filterInputs);} });");
					                   	}
			   	                     td.appendChild(input);
								   			break;
						               case 'int':
						               case 'float':
						               case 'number':
						               case 'date':
				                        input = document.createElement('input');
				                        input.setAttribute('id', 'g_' + panelname + searchData[i][0]);
				                        input.setAttribute('name', panelname + searchData[i][0]);
				                        input.setAttribute('type', 'text');
				                        input.setAttribute('value', searchData[i][2]);
				                        input.style.width = '60%';
												url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
													+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + currentoffset
													+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
													+ '&' + panelgridparams;
												if (window.addEventListener) {
						                   	eval("input.addEventListener('keyup', function(event) { if (event.keyCode == 13) { refreshFilter('" + url + "', '" + gridId + "', filterInputs);} }, false);");
					                   	} else {
						                   	eval("input.attachEvent('onkeyup', function(event) { if (event.keyCode == 13) { refreshFilter('" + url + "', '" + gridId + "', filterInputs);} });");
					                   	}
			   	                     td.appendChild(input);
				                        input = document.createElement('input');
				                        input.setAttribute('name', panelname + 'btn' + searchData[i][0]);
				                        input.setAttribute('type', 'button');
				                        input.setAttribute('value', '?');
												if (window.addEventListener) {
						                   	eval("input.addEventListener('click', function() { showGridFilterInput('" + panelname + searchData[i][0] + "','" + searchData[i][1] + "'); }, false);");
					                   	} else {
						                   	eval("input.attachEvent('onclick', function() { showGridFilterInput('" + panelname + searchData[i][0] + "','" + searchData[i][1] + "'); });");
					                   	}
			   	                     td.appendChild(input);
								   			break;
								   	}
	  	                     }
	                        tr.appendChild(td);
	                     }
                     }
                     tbody.appendChild(tr);
                  }
                     
						// preapre data info (images and links)
               	var imageCols = new Array(cells.length);
               	var imagesXml = root_node.getElementsByTagName('images').item(0);
               	var imageColsXml = imagesXml.getElementsByTagName('col');
                  if (imageColsXml.length > 0) {
                  	for (i = 0; i < imageColsXml.length; i++) {
	                  	imageCols[imageColsXml.item(i).firstChild.nodeValue - 1] = 1;
                  	}
                  }
                  
               	var links = new Array(cells.length);
               	var linksXml = root_node.getElementsByTagName('links').item(0);
               	var linksArr = linksXml.getElementsByTagName('link');
                  if (linksArr.length > 0) {
                  	for (i = 0; i < linksArr.length; i++) {
								colXml = linksArr.item(i).getElementsByTagName('col');
								col = colXml.item(0).firstChild.nodeValue;
								pageXml = linksArr.item(i).getElementsByTagName('page');
								page = pageXml.item(0).firstChild.nodeValue;							
								links[col] = page;
                  	}
                  }
                  
                  /// Create data rows
                  var rows = root_node.getElementsByTagName('row');
                  for (j = 0; j < rows.length; j++) {
                     cells = rows.item(j).getElementsByTagName('cell');
                     tr = document.createElement("tr");
                     tr.setAttribute('id', 'row' + j + '_' + gridId);
        	           	tr.className = ((j % 2 == 0) ? 'even' : 'odd');
							if (window.addEventListener) {
	                   	eval("tr.addEventListener('mouseover', function() { overbg('row" + j + "_" + gridId + "', 'over'); }, false);");
	                   	eval("tr.addEventListener('mouseout', function() { overbg('row" + j + "_" + gridId + "', '" + ((j % 2 == 0) ? 'even' : 'odd') + "'); }, false);");
                   	} else {
	                   	eval("tr.attachEvent('onmouseover', function() { overbg('row" + j + "_" + gridId + "', 'over'); });");
	                   	eval("tr.attachEvent('onmouseout', function() { overbg('row" + j + "_" + gridId + "', '" + ((j % 2 == 0) ? 'even' : 'odd') + "'); });");
                   	}

                     
                     for (i = 0; i < cells.length; i++) { 
                     	if (hiddenCols[i] != 1) {
	                        td = document.createElement("td");
	                        if (links[i] != null) {
	                        	linkparamsarr = cells.item(i).getElementsByTagName('linkparam');
	                        	linkparams = '';
	                        	if (linkparamsarr.length > 0) {
	                        		 for (k = 0; k < linkparamsarr.length; k++) { 
		                        		linkparams = linkparams + '&' + panelname + linkparamsarr.item(k).firstChild.nodeValue;
	                        		} 
	                        	}									
										ahref = document.createElement("a");
		                     	ahref.setAttribute('href', 'index.php?' + panelname + 'page=' + links[i] + linkparams + panellinkparams);
		                     	td.appendChild(ahref);
		                     	tdbody = ahref;
	                        } else {
	                        	tdbody = td;
	                        }
	                        
	                        if (imageCols[i] != 1) {
	                        	if (cells.item(i).firstChild) {
	                                var content = cells.item(i).firstChild.nodeValue;
	                                if (content == null) {
	                                   content = '';
	                                }
			                        text = document.createTextNode(content);
			                        tdbody.appendChild(text);
		                        }
		                     } else {
			                     if (cells.item(i).firstChild) {
			                     	img = document.createElement("img");
			                     	img.setAttribute('src', cells.item(i).firstChild.nodeValue);
			                     	img.setAttribute('alt', '');
			                     	tdbody.appendChild(img);
			                     }
		                     }
	                        tr.appendChild(td);
	                     }
                     }
                     tbody.appendChild(tr);
                  }

						/// create last row (prev, next buttons)
						if (useAdditionalTools == 1) { 
	               	tr = document.createElement("tr");
	               	tbody.appendChild(tr);
	               	td = document.createElement("td");
	               	td.setAttribute('colSpan', cells.length - hiddenColsLength); 
	    	           	td.className = 'footer';
	               	tr.appendChild(td);
	               	innerdiv = document.createElement("div");
	               	innerdiv.className = 'buttons';
	               	td.appendChild(innerdiv);
	               	
	                  text = document.createTextNode(' ' + Math.min((currentoffset + 1), rowcount) + '..'  + Math.min(rowcount, currentoffset + pagerowcount) + ' z ' + rowcount);
	               	innerdiv.appendChild(text);
	               	innerdiv.appendChild(document.createTextNode(' '));
	
	               	if (currentoffset >= pagerowcount) {
								ahref = document.createElement("a");
								ahref.style.cursor = 'pointer';
								ahref.setAttribute('title', 'Poprzednie rekordy');
								url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
									+ '&' + currentSearchFilter
									+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + (parseInt(currentoffset) - 25)
									+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
									+ '&' + panelgridparams;
								if (window.addEventListener) {
		                   	eval("ahref.addEventListener('click', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); }, false);");
		                  	} else {
		                   	eval("ahref.attachEvent('onclick', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); });");
		                 	}
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_prev.gif');
		                 	ahref.appendChild(img);
		               	innerdiv.appendChild(ahref);
					      } else {
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_prev_gray.gif');
		               	innerdiv.appendChild(img);
					      }
					      innerdiv.appendChild(document.createTextNode(' '));
					      if (currentoffset + pagerowcount < rowcount) {
								ahref = document.createElement("a");
								ahref.style.cursor = 'pointer';
								ahref.setAttribute('title', 'Następne rekordy');
								url = 'index.php?grid=' + panelgridname + '&' + panelsortparams
									+ '&' + currentSearchFilter
									+ '&' + panelgridname.replace(/\./g, '_') + '_ro=' + (parseInt(currentoffset) + 25)
									+ '&' + panelgridname.replace(/\./g, '_') + '_so=' + currentsortorder
									+ '&' + panelgridparams;
								if (window.addEventListener) {
		                   	eval("ahref.addEventListener('click', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); }, false);");
		                  	} else {
		                   	eval("ahref.attachEvent('onclick', function() { ajaxGridMakeRequest('" + url + "', '" + gridId + "'); });");
		                 	}
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_next.gif');
		                 	ahref.appendChild(img);
		               	innerdiv.appendChild(ahref);
					      } else {
		                 	img = document.createElement('img');
		                 	img.setAttribute('src', 'css/grid/table_next_gray.gif');
		               	innerdiv.appendChild(img);
					      }
					   }

						/// Append table to div
                  table.appendChild(tbody);
                  GridDiv.appendChild(table);
               } else {
	              var ErrorNode = root_node.getElementsByTagName('error');
	              alert(ErrorNode.item(0).firstChild.data);
	              eval('grid_shown =  ajax_grid_shown_' + gridId + ';');
	              if (!grid_shown) {
						while (GridDiv.firstChild) {
							GridDiv.removeChild(GridDiv.firstChild);
						}
						GridDiv.appendChild(document.createTextNode('Błąd podczas czytania danych.'));
	              }
               }               
            } else {
               alert('Wrong XML');
            }
         } else {
            alert('Wrong page structure.');
         }
      } else {
			//alert('There was a problem with the request.');
			while (GridDiv.firstChild) {
				GridDiv.removeChild(GridDiv.firstChild);
			}
			GridDiv.appendChild(document.createTextNode('Błąd podczas czytania danych.'));
      }
      progress = document.getElementById(gridId + '_progress');
      if (progress) {
			GridDiv.removeChild(progress);
      }
      document.getElementsByTagName('body').item(0).style.cursor = '';
   }
}

function refreshFilter(url, gridId, inputArr) {
	var GridDiv=document.getElementById(gridId);
	if (GridDiv) {
		var filter = '';
		var inputs = GridDiv.getElementsByTagName('input');
		for (i=0; i<inputs.length; i++) {
			for (j=0; j<inputArr.length; j++) {
				if (inputs[i].name == inputArr[j]) {
					filter += '&' + inputs[i].name + '=' + encodeURIComponent(inputs[i].value);
				}
			}
		}
		url += filter;
		ajaxGridMakeRequest(url, gridId);
	}
}
