
var g_LOCK_SELECT = false;
var g_LAST_SEARCH = ""; 
var g_LAST_DID_YOU_MEAN = ""; 

/* Globalne zmienne wewnętrzne */ 
var g_SEARCH_ALTERNATE_DIR = false; 

var g_SEARCH_ALT_ON = false;
var g_VISIBLE_ADV_FILTER = false; 
var g_VISIBLE_RESULTS_PAGE = 0; 

var g_CACHED_TRANSLATIONS = new Array();
var g_CACHED_PHRASES = new Array();
var g_CACHED_SEGMENTS = new Array();
var g_CACHED_SEARCH_PHRASE = "";
var g_CACHED_FROM = new Array();
var g_CACHED_FROM_P = new Array();
var g_TOTAL_COUNT = new Array();
var g_CURRENT_POS = new Array(); 
var g_NEXT_EXECUTING = false; 

var g_CACHED_GR = new Array();

var tr_a = 0; // try again (przy bledzie od silnika)

function popup(v,t,e,p){
	if(!document.createElement) return;
	p=document.getElementById('popup');
	if(!p){
		p=document.createElement('div');
		p.id='popup';
		p.style.zIndex=100;
		if(document.all&&!window.opera)
		    p.style.position='absolute';
		else
		    p.style.position='fixed';
		p.style.padding='1px';
		p.style.fontSize='12px';
		p.style.border='1px solid #AFAFAF';
		p.style.backgroundColor='#ffffff';
		p.style.MozOpacity='0.9';
		p.style.align='left';

	}
	p.move=function(e){
		e=e||event;
		p.style.left=e.clientX+5+"px";
		if(document.all&&!window.opera)
		    p.style.top=e.clientY+document.body.scrollTop+20+"px";
		else
		    p.style.top=e.clientY+20+"px";
	}
	p.hide=function(x){
		if(x=document.getElementById('popup')) document.body.removeChild(x)
	}
	p.move(e);
	p.innerHTML=t;
	document.body.appendChild(p);
	p.onmousedown=p.hide;
	v.onmouseout=p.hide;
}

// START_DEBUG
function gtsShowDebug(txt) { 
	if (!g_DEBUG_ON || !$('debug_message_frame'))
		return; 
	$('debug_message_frame').innerHTML = ""+txt+"<br/>"; 
	Show('debug_message_frame'); 
} 
function gtsAddDebug(txt) { 
	if (!g_DEBUG_ON || !$('debug_message_frame'))
		return; 
	$('debug_message_frame').innerHTML += ""+txt+"<br/>"; 
	Show('debug_message_frame'); 
}
// koniec debugging 


String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

// wartości domyślne
var g_IS_ON_FIRST_SCREEN = true;

var g_LIMITED_PAGE = new Array(); 
g_LIMITED_PAGE[1] = true; 
g_LIMITED_PAGE[2] = true; 
g_LIMITED_PAGE[3] = true; 
g_LIMITED_PAGE[4] = true; 
g_LIMITED_PAGE[5] = true; 
g_LIMITED_PAGE[6] = true; 
g_LIMITED_PAGE[7] = true; 


function gtsInit() { 
	gtsFillDictionaries();
	if (g_INITIAL_EVAL)
		initialEval(1); 
	
}

function gtsShowErrorMessage(_code) { 
	Show('error_box_frame'); 
	Hide('subtitle_div');
	$('error_box_message').innerHTML = g_STRINGS[_code]; 
} 

function gtsPrepareResultsDisplay() {
	if (g_IS_ON_FIRST_SCREEN) {
		g_IS_ON_FIRST_SCREEN = false;  
		Show('zakladki_div_frame');
		gtsShowBlock('result_tlm_div_frame'); 
		gtsShowBlock('dict_info_div'); 
		if ($('first_page_distance'))
			Hide('first_page_distance');
	}
} 

function gtsFillDictionaries() { 
	var d = $('adv_box_dicts_table'); 
	var dsp = $('descr_dicts_frame'); 
	if (d) { 
		clearTable(d);
	}
	var ht1 = "";
	var ht2 = ""; 
	var tt = '<table>'; 
	for (i = 0; i < g_DICTIONARIES.length; i++) { 
		if (g_DICTIONARIES[i]) {
			if (i < g_DICTIONARIES.length / 2) 
				ht1 += "<input type='checkbox' id='dict_"+i+"' onchange='setAdvDict("+i+")'"+(g_DICTIONARIES[i].active?" checked='checked'":"")+"><label for=dict_"+i+">"+g_DICTIONARIES[i].nazwa+"</label><br>";
			else 
				ht2 += "<input type='checkbox' id='dict_"+i+"' onchange='setAdvDict("+i+")'"+(g_DICTIONARIES[i].active?" checked='checked'":"")+"><label for=dict_"+i+">"+g_DICTIONARIES[i].nazwa+"</label><br>";
			tt+='<tr><td><div class="dict_info_bottom"><span class="dict_info_bottom_span" title="'+g_DICTIONARIES[i].nazwa+'">'+g_DICTIONARIES[i].symbol+'</span></div></td><td><div class="dict_info_bottom"> - '+g_DICTIONARIES[i].nazwa+'</div></td></tr>';
		}
	}
	tt += '</table>'; 
	if (dsp)
		dsp.innerHTML = tt; 

	if (d) { 
		tr = document.createElement("tr");
		td1 = document.createElement("td");
		td1.innerHTML = ht1; 
		td2 = document.createElement("td");
		td2.innerHTML = ht2; 
		tr.appendChild(td1);
		tr.appendChild(td2);
		d.appendChild(tr); 
	}
	
	d = $('segm_adv_box_dicts_table'); 
	dsp = $('descr_segments_frame'); 
	if (d) { 
		clearTable(d);
	}
	ht1 = "";
	ht2 = ""; 
	tt = '<table>'; 
	if (g_DICT_SEGMENTS && g_DICT_SEGMENTS.length > 0) {
		for (i = 0; i < g_DICT_SEGMENTS.length; i++) { 
			if (g_DICT_SEGMENTS[i]) {
				if (i < g_DICT_SEGMENTS.length / 2) 
					ht1 += "<input type='checkbox' id='sdict_"+i+"' onchange='setSegmAdvDict("+i+")'"+(g_DICT_SEGMENTS[i].active?" checked='checked'":"")+"><label for=dict_"+i+">"+g_DICT_SEGMENTS[i].nazwa+"</label><br>";
				else 
					ht2 += "<input type='checkbox' id='sdict_"+i+"' onchange='setSegmAdvDict("+i+")'"+(g_DICT_SEGMENTS[i].active?" checked='checked'":"")+"><label for=dict_"+i+">"+g_DICT_SEGMENTS[i].nazwa+"</label><br>";
			}
			tt+='<tr><td><div class="dict_info_bottom"><span class="dict_info_bottom_span" title="'+g_DICT_SEGMENTS[i].nazwa+'">'+g_DICT_SEGMENTS[i].symbol+'</span></div></td><td><div class="dict_info_bottom"> - '+g_DICT_SEGMENTS[i].nazwa+'</div></td></tr>';
		}
		tt += '</table>'; 
		if (dsp)
			dsp.innerHTML = tt; 
		if (d) { 
			tr = document.createElement("tr");
			td1 = document.createElement("td");
			td1.innerHTML = ht1; 
			td2 = document.createElement("td");
			td2.innerHTML = ht2; 
			tr.appendChild(td1);
			tr.appendChild(td2);
			d.appendChild(tr);
		}
	}
} 

function gtsPrepareDictList() { 
	var sl_cd = "";
	if (!g_DICTIONARIES)
		return ""; 
	for (i = 0; i < g_DICTIONARIES.length; i++) { 
		if (g_DICTIONARIES[i].active) { 
			sl_cd += g_DICTIONARIES[i].kod+':'; 
		}
	}
	return sl_cd; 
} 

function gtsPrepareSegmDictList() { 
	var sl_cd = "";  
	
	if (!g_SYS_PARAMS.g_SEGMENTS_ENABLED) {
		return ""; 
	}
	
	if (!g_DICT_SEGMENTS)
		return ""; 
	for (i = 0; i < g_DICT_SEGMENTS.length; i++) { 
		if (g_DICT_SEGMENTS[i].active) { 
			sl_cd += g_DICT_SEGMENTS[i].kod+':'; 
		}
	}
	return sl_cd; 
} 

function gtsChangeVisibleResultsPage(_page) {
	if (g_SYS_PARAMS.g_SINGLE_RESULTS_PAGE)
		return;
	g_VISIBLE_RESULTS_PAGE = _page; 
	var d = $('zakladka_div_body');
	if (_page == 0) { 
		Show('result_tlm_div_frame'); 
		gtsShowBlock('descr_dicts_frame'); 
		Hide('result_txt_div_frame'); 
		Hide('descr_segments_frame'); 
		if (g_VISIBLE_ADV_FILTER) { 
			Hide('segm_adv_box_frame'); 
			Show('adv_box_frame'); 
		}
		Element.removeClassName( d, "zakladka_div_body_2" );
		Element.addClassName( d, "zakladka_div_body_1" );
	} else {
		Show('result_txt_div_frame'); 
		gtsShowBlock('descr_segments_frame'); 
		Hide('result_tlm_div_frame'); 
		Hide('descr_dicts_frame'); 
		if (g_VISIBLE_ADV_FILTER) { 
			Hide('adv_box_frame'); 
			Show('segm_adv_box_frame'); 
		}
		Element.removeClassName( d, "zakladka_div_body_1" );
		Element.addClassName( d, "zakladka_div_body_2" );
	}
} 

function gtsDecodeMisspelling(xmlRoot, _any_res, _is_alternate) { 
	if (!g_SYS_PARAMS.g_MISSPELLER_ENABLED)
		return;
	var xml = xmlRoot.getElementsByTagName("misspelling");
	if (_is_alternate && !_any_res && g_LAST_DID_YOU_MEAN != "") {
		Show('did_you_mean_box_frame'); 
		Hide('subtitle_div');
		return; 
	}
	if (!xml || !xml[0]) {
		Hide('did_you_mean_box_frame'); 
		g_LAST_DID_YOU_MEAN = ""; 
		return; 
	}
		
	Show('did_you_mean_box_frame'); 
	Hide('subtitle_div');
	record = xml[0].getElementsByTagName("query");
	var tt = ""; 
	for (i = 0; i < record.length; i++) {
		tt += "<b><a class=\"did_you_mean\" href=\"#\" onclick='putQueryTxt(\""+record[i].firstChild.data+"\")'>"+record[i].firstChild.data+"</a></b> "; 
	} 
	g_LAST_DID_YOU_MEAN = tt; 
	$('did_you_mean_txt').innerHTML = tt; 
}

function initialEval(_doit) { 
	if (_doit) {
		g_SYS_PARAMS.g_FORCE_RELOAD = false;
		gtcQueryFirst(1);
	}
}

function onKeyPressEval(e) { 
	var keynum;
	var keychar;
	var numcheck;

	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	if (keynum == 13) { 
		gtcQueryFirst(1); 
		return false;
	}
	return true;  
}

function clearTable(_table) { 
	for (i = _table.rows.length-1; i >= 0; i--)
		_table.deleteRow(i);
}; 

function insertLetter(_letter) { 
	$('search_word').value = $('search_word').value+_letter; 
}

function changeLang(_val) { 
	_s_txt=$('search_word').value;
	window.location = './act/change_settings.act.php?act=lang_ch&lang_idx='+_val+'&s_txt='+_s_txt; 
} 

function ShowOrHide(div) {
	var d = $(div);
	if (!d)
		return; 
	if (document.getElementById(div).className.indexOf("hide") != -1) {
		Element.removeClassName( d, "hide" );
		Element.addClassName( d, "show" );
	} else {
		Element.removeClassName( d, "show" );
		Element.addClassName( d, "hide" );
	}
}

function Show(div) {
	var d = $(div);
	if (!d)
		return; 
	d.style.display = 'inline'; 
}

function Hide(div) {
	var d = $(div);
	if (!d)
		return; 
	d.style.display = 'none'; 
}

function gtsShowBlock(_div) { 
	if ($(_div))
	$(_div).style.display='block'; 
}

function changeAdvancedSearch() { 
	g_VISIBLE_ADV_FILTER = !g_VISIBLE_ADV_FILTER; 
	if (g_VISIBLE_ADV_FILTER) { 
		if (g_VISIBLE_RESULTS_PAGE == 0) {
			Show('adv_box_frame'); 
			Hide('segm_adv_box_frame'); 
		} else { 
			Show('segm_adv_box_frame'); 
			Hide('adv_box_frame'); 
		}
		$('adv_switch').innerHTML = 'zwiń';
	} else {
		Hide('segm_adv_box_frame'); 
		Hide('adv_box_frame'); 
		$('adv_switch').innerHTML = 'zaawansowane';
	}	
}

function putQueryTxt(_txt) { 
	$('search_word').value = _txt; 
	gtcQueryFirst(1);
} 

function addSegmentPos(_name, _trans, _info) { 
	t = $('result_segment_table'); 
	tr = document.createElement("tr");
	tr.className = "result_txt_row_1"; 
	td = document.createElement("td");
	td.innerHTML = _name; 
	tr.appendChild(td);
	td = document.createElement("td");
	td.innerHTML = _trans; 
	tr.appendChild(td);
	t.appendChild(tr); 
	
	tr = document.createElement("tr");
	td = document.createElement("td");
	td.colSpan=2
	td.innerHTML = _info; 
	td.style.backgroundColor = "#EEEEEE"; 
	tr.appendChild(td);
	t.appendChild(tr); 	
} 

function findDict(_name) { 
	for (ji=0; ji<g_DICTIONARIES.length; ji++)
		if (g_DICTIONARIES[ji].kod == _name) 
			return g_DICTIONARIES[ji]; 
	return 0; 
}

function gtsAddDictInfo(_dn) { 
	var d = findDict(_dn);
	if (d == 0 && g_DEBUG_ON==0) {
		gtsShowDebug("nie ma słownika o kodzie "+_dn); 
		return ""; 
	} 
	var rv = ' <span class="dict_info_rect" title="'+d.nazwa+'">'+d.symbol+'</span>'; 	
	return rv; 
} 
	

function hideAllGroups() { 
	for (i = 0; i < 6; i++)
		g_LIMITED_PAGE[i] = true; 
}

function showHideGroup(_gnr, _state) { 
	g_LIMITED_PAGE[_gnr] = _state; 
	if (_state == false && g_CURRENT_GROUP != _gnr) {
		g_ACTIVE_PAGE[_gnr] = 0; 
	}
	if (_gnr <= 3 || _gnr == 6)
		showGroup(_gnr); 
	else 
		showSegments(); 
	if (_state == false && g_CURRENT_GROUP != _gnr) {
		g_CURRENT_GROUP = _gnr;
		g_BIG_RESULT = false; 
		queryForMore(); 
	}
} 

function showGroup(_gnr) { 
	tt = ""; 
	switch (_gnr) {
		case 0 : 
			tt += decodePhrases(g_LAST_G0, g_LIMITED_PAGE[0], 0); 
		break; 
		case 1 : 
			tt += decodeSourceTranslation(g_LAST_G1, g_LIMITED_PAGE[1], 1); 
		break; 
		case 2 : 
			tt += decodePhrases(g_LAST_G2, g_LIMITED_PAGE[2], 2); 
		break; 
		case 3 : case 6 : 
			tt += decodePhrases(g_LAST_G3, g_LIMITED_PAGE[3], 3); 
			tt += decodeSourceTranslation(g_LAST_G3, g_LIMITED_PAGE[6], 6); 
			_gnr = 3; 
		break; 
	} 
	if (tt.length > 2) { 
		$('result_tlm_'+_gnr).innerHTML = tt; 
		Show('result_tlm_'+_gnr); 
	} else { 
		$('result_tlm_'+_gnr).innerHTML = ""; 
		Hide('result_tlm_'+_gnr); 
	}
}

function showGroups() { 
	showGroup(0); 
	showGroup(1); 
	showGroup(2); 
	showGroup(3); 

}

function showSegments() {
	clearTable($('result_segment_table')); 
	decodeSegments(g_LAST_G4, g_LIMITED_PAGE[4], 4); 
	decodeSegments(g_LAST_G5, g_LIMITED_PAGE[5], 5); 
} 

function highlightResult(_txt) { 
	_txt = _txt.replace(/\[b\]/gi, "<span class='key_word'>"); 
	_txt = _txt.replace(/\[\/b\]/gi, "</span>"); 
	return _txt;
} 



function gtsResetLastResult() { 
	g_CURRENT_GROUP = -1;
	for (i = 1; i < 7; i++) {
		g_LIMITED_PAGE[i] = true; 
	} 
}

function storeAdvDictState(_kod, _active) { 
	new Ajax.Request('./act/profile.act.php', {
		method: 'get',
		parameters: {'act': 'store_dict', 'kod' : _kod, 'active' : _active },
		onCreate: function() { 
		}, 
		onException: function(p1, p2) {
			alert("Wyjątek!!! "+p2.name+"\n\n"+p2.message+"\n\n");
			gtsAddDebug(dumpObj(p2)); 
		},
		onSuccess: function(transport) {
			if (transport.responseText.trim() != 'ok') {
				alert('Serwer nie odpowiedział prawidłowo: \n'+transport.responseText); 
				gtsShowDebug('Odpowiedź serwera:<br>'+transport.responseText); 
			} 
		},
		onFailure: function() { 
			alert('Błąd połączenia!'); 
		} 	
	});
}

function setAdvDict(_idx) { 
	var v = $('dict_'+_idx).checked; 
	g_DICTIONARIES[_idx].active = v; 
	var vs = (v ? 1 : 0); 
	storeAdvDictState(g_DICTIONARIES[_idx].kod, vs); 
}

function setSegmAdvDict(_idx) { 
	var v = $('sdict_'+_idx).checked; 
	g_DICT_SEGMENTS[_idx].active = v; 
	var vs = (v ? 1 : 0); 
	storeAdvDictState(g_DICT_SEGMENTS[_idx].kod, vs); 
}

function hasAnySegmDict() { 
	if (g_DICT_SEGMENTS && g_DICT_SEGMENTS.length > 0) 
		for (i = 0; i < g_DICT_SEGMENTS.length; i++) 
			if (g_DICT_SEGMENTS[i].active)
				return true; 
	return false;
} 

function hasAnyDict() { 
	if (g_DICTIONARIES && g_DICTIONARIES.length > 0) 
		for (i = 0; i < g_DICTIONARIES.length; i++) 
			if (g_DICTIONARIES[i].active)
				return true; 
	return false;
} 


function gtcShowOrHide(div) {
	var d = $(div);
	if (document.getElementById(div).className.indexOf("hide") != -1) {
		Element.removeClassName( d, "hide" );
		Element.addClassName( d, "show" );
	} else {
		Element.removeClassName( d, "show" );
		Element.addClassName( d, "hide" );
	}
}

function gtcShow(div) {
	var d = $(div);
	Element.removeClassName( d, "hide" );
	Element.addClassName( d, "show" );
}

function gtcHide(div) {
	var d = $(div);
	Element.removeClassName( d, "show" );
	Element.addClassName( d, "hide" );
}

function gtcClear() {
	for (i=1; i<=g_SYS_PARAMS.g_GROUPS_COUNT; i++) { 
		g_CACHED_TRANSLATIONS[i] = Array();
		g_CACHED_PHRASES[i] = Array(); 
		g_CACHED_SEGMENTS[i] = Array(); 
		g_CACHED_SEARCH_PHRASE = "";
		g_CACHED_FROM[i] = 0;
		g_CACHED_FROM_P[i] = 0;
		g_TOTAL_COUNT[i] = 0;
		g_CURRENT_POS[i] = 0; 
	} 
}

function gtcGetSubTagValue(_root, _name) { 
	r = _root.getElementsByTagName(_name); 
	if (!r || !r[0])
		return ""; 
	return r[0].firstChild.data; 
} 

function aaa(_root) {
	var string = (new XMLSerializer()).serializeToString(_root);
	alert(string);
}

function gtcDecodeData(_root, _phrase) {
	if (g_CACHED_SEARCH_PHRASE != _phrase) { 
		gtcClear(); 
	} 
	g_CACHED_SEARCH_PHRASE = _phrase;
	
	if (!_root) {
		var string = (new XMLSerializer()).serializeToString(_root);
		alert(string);
		alert('Brak danych do cache!'); 
		return; 
	}

	var loc_gnr = 'all'; 
	if (_root && _root.getElementsByTagName("info")) { 
		var x1 = _root.getElementsByTagName("info"); 
		x2 = x1[0].getElementsByTagName("group"); 
		if (x2 && x2[0] && x2[0].firstChild)
			loc_gnr = x2[0].firstChild.data; 
	}
	
	var xml = _root.getElementsByTagName("groups");
	if (!xml || !xml[0]) {
		alert('Nie ma grup.'); 
		return; 
	} 
	
	
	// dla wszystkich grup: 
	for (gnr = 1; gnr<=g_SYS_PARAMS.g_GROUPS_COUNT; gnr++) {
		if (!g_SYS_PARAMS.g_GROUPS[gnr].enabled) {
			continue; 
		} 
		r1 = xml[0].getElementsByTagName('group'+(gnr-1));
		if (!r1 || !r1[0]) {
			continue; 
		} 
		
		g_TOTAL_COUNT[gnr] = 0;
		
		var t = r1[0].getAttribute("count");
		var t1 = r1[0].getAttribute("pcount");
		if (t1) {
			g_TOTAL_COUNT[gnr] = parseInt(r1[0].getAttribute("pcount"));
		} else {
			g_TOTAL_COUNT[gnr] = parseInt(r1[0].getAttribute("count"));
		}
		g_CACHED_GR[gnr] = Array();
		
		/* 	GRUPA 1  */
		if (gnr==1) {
		r2 = r1[0].getElementsByTagName('phrases'); 
		if (r2 && r2[0]) {
			for (i=0; i<r2.length; i++) { 
				if (!r2[i]) {
					continue; 
				}
				var ch_source = r2[i].getElementsByTagName("phrase")[0].firstChild.data;
				
				var ch_translations = Array();
				var ch_descriptions = Array(); 
				var ch_dbids = Array(); 
				
				r3 = r2[i].getElementsByTagName("presentation");
				
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						ch_translations[j]=r3[j].firstChild.data;
					}
				}
				r3 = r2[i].getElementsByTagName("dbid");
				
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						ch_dbids[j]=r3[j].firstChild.data;
					}
				}
				
				var ch_pos = Array();
				ch_pos[0] = ch_source; 
				ch_pos[1] = ch_translations; 
				ch_pos[2] = ch_descriptions; 
				ch_pos[3] = ch_dbids; 
				g_CACHED_GR[gnr][i] = ch_pos;
				g_CACHED_FROM[gnr]++; 
				
			} 
		}
		r2 = r1[0].getElementsByTagName('sources'); 
		if (r2 && r2[0]) {
			for (i=0; i<r2.length; i++) { 
				if (!r2[i]) {
					continue; 
				}
				var ch_source = r2[i].getElementsByTagName("source")[0].firstChild.data;

				var ch_translations = Array();
				var ch_descriptions = Array(); 
				var ch_dbids = Array(); 
				
				r3 = r2[i].getElementsByTagName("translations");
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						r4 = r3[j].getElementsByTagName("description");
						if (r4 && r4[0])
							ch_descriptions[j] = r4[0].firstChild.data;
						else 
							ch_descriptions[j] = "";  
						
						r4 = r3[j].getElementsByTagName("presentation");
						if (r4 && r4[0])
							ch_translations[j] = r4[0].firstChild.data;
						else 
							ch_translations[j] = "";  
						
					//	ch_translations[j] = r3[j].getElementsByTagName("presentation")[0].firstChild.data;
						r4 = r3[j].getElementsByTagName("dbid");
						ch_dbids[j] = r4[0].firstChild.data; 
						
					}
				}
				
				var ch_pos = Array();
				ch_pos[0] = ch_source; 
				ch_pos[1] = ch_translations; 
				ch_pos[2] = ch_descriptions; 
				ch_pos[3] = ch_dbids; 
				g_CACHED_GR[gnr][i+g_CACHED_FROM[gnr]] = ch_pos;
				g_CACHED_FROM[gnr]++; 
				
			} 
		}
		}
		
		/* 	GRUPA 2  */
		if (gnr==2) {
		r2 = r1[0].getElementsByTagName('phrases'); 
		
		
		temp = r1[0].getElementsByTagName("presentation");
		var added=0;
		if (r2 && r2[0]) {
			for (i=0; i<r2.length; i++) { 
				if (!r2[i]) {
					continue; 
				}
				
				r3 = r2[i].getElementsByTagName("presentation");
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 

				var ch_source = r2[i].getElementsByTagName("phrase")[0].firstChild.data;			
				var ch_descriptions = Array(); 
	
				r3 = r2[i].getElementsByTagName("presentation");
				var ch_translations=r3[j].firstChild.data;
				r3 = r2[i].getElementsByTagName("dbid");
				var ch_dbids =  r3[j].firstChild.data;
				
				var ch_pos = Array();
				ch_pos[0] = ch_source; 
				ch_pos[1] = ch_translations; 
				ch_pos[2] = ch_dbids; 
				ch_pos[3] = ch_descriptions; 
				
				g_CACHED_GR[gnr][added] = ch_pos; 

				added++;
				g_CACHED_FROM_P[gnr]++;
				g_CACHED_FROM[gnr]++;
					}
				}
				 
			} 
		
		}
		
		}
		
		/* 	GRUPA 3  */
		if (gnr==3) {

			r2 = r1[0].getElementsByTagName('phrases'); 
			
			
			temp = r1[0].getElementsByTagName("presentation");
			var added=0;
			if (r2 && r2[0]) {
				for (i=0; i<r2.length; i++) { 
					if (!r2[i]) {
						continue; 
					}
					
					r3 = r2[i].getElementsByTagName("presentation");
					if (r3.length > 0) { 
						for (j = 0; j < r3.length; j++) { 

					var ch_source = r2[i].getElementsByTagName("phrase")[0].firstChild.data;			
					var ch_descriptions = Array(); 
		
					r3 = r2[i].getElementsByTagName("presentation");
					var ch_translations=r3[j].firstChild.data;
					r3 = r2[i].getElementsByTagName("dbid");
					var ch_dbids =  r3[j].firstChild.data;
					
					var ch_pos = Array();
					ch_pos[0] = ch_source; 
					ch_pos[1] = ch_translations; 
					ch_pos[2] = ch_dbids; 
					ch_pos[3] = ch_descriptions; 
					
					g_CACHED_PHRASES[gnr][added] = ch_pos; 
					

					added++;
					g_CACHED_FROM_P[gnr]++;
					g_CACHED_FROM[gnr]++; 
						}
					}
					
				} 
			
			}
		
		
		r2 = r1[0].getElementsByTagName('sources'); 
		if (r2 && r2[0]) {
			for (i=0; i<r2.length; i++) { 
				if (!r2[i]) {
					continue; 
				}
				var ch_source = r2[i].getElementsByTagName("source")[0].firstChild.data;

				var ch_translations = Array();
				var ch_descriptions = Array(); 
				var ch_dbids = Array(); 
				
				r3 = r2[i].getElementsByTagName("translations");
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						r4 = r3[j].getElementsByTagName("description");
						if (r4 && r4[0])
							ch_descriptions[j] = r4[0].firstChild.data;
						else 
							ch_descriptions[j] = "";
						
						r4 = r3[j].getElementsByTagName("presentation");
						if (r4 && r4[0])
							ch_translations[j] = r4[0].firstChild.data;
						else 
							ch_translations[j] = "";
						
						
						//ch_translations[j] = r3[j].getElementsByTagName("presentation")[0].firstChild.data;
						r4 = r3[j].getElementsByTagName("dbid");
						ch_dbids[j] = r4[0].firstChild.data; 
						
					}
				}
				
				var ch_pos = Array();
				ch_pos[0] = ch_source; 
				ch_pos[1] = ch_translations; 
				ch_pos[2] = ch_descriptions; 
				ch_pos[3] = ch_dbids; 
				g_CACHED_TRANSLATIONS[gnr][i] = ch_pos;
				//g_CACHED_FROM[gnr]++;
				
			} 
		}
		
		
		
		}
		/* 	GRUPA 4  */
		if (gnr==4) {
			r2 = r1[0].getElementsByTagName('sources'); 
			if (r2 && r2[0]) {
				for (i=0; i<r2.length; i++) { 
					if (!r2[i]) {
						continue; 
					}
					var ch_source = r2[i].getElementsByTagName("source")[0].firstChild.data;
					var ch_s_descr;
					r3 = r2[i].getElementsByTagName("description");
					if (r3 && r3[0])
						 ch_s_descr = r3[0].firstChild.data;


					var ch_translations = Array();
					var ch_descriptions = Array(); 
					var ch_dbids = Array(); 
					
					r3 = r2[i].getElementsByTagName("translations");
					if (r3.length > 0) { 
						for (j = 0; j < r3.length; j++) { 
							if (!r3[j])
								continue;
							r4 = r3[j].getElementsByTagName("description");
							if (r4 && r4[0])
								ch_descriptions[j] = r4[0].firstChild.data;
							else 
								ch_descriptions[j] = "";  
							
							r4 = r3[j].getElementsByTagName("presentation");
							if (r4 && r4[0])
								ch_translations[j] = r4[0].firstChild.data;
							else 
								ch_translations[j] = ""; 
							
							//ch_translations[j] = r3[j].getElementsByTagName("presentation")[0].firstChild.data;
							r4 = r3[j].getElementsByTagName("dbid");
							ch_dbids[j] = r4[0].firstChild.data; 
							
						}
					}
					
					var ch_pos = Array();
					ch_pos[0] = ch_source; 
					ch_pos[1] = ch_translations; 
					ch_pos[2] = ch_descriptions; 
					ch_pos[3] = ch_dbids; 
					ch_pos[4] = ch_s_descr; 
					g_CACHED_TRANSLATIONS[gnr][i] = ch_pos;
					g_CACHED_FROM[gnr]++; 
					
				} 
			}
		}
		
		if (gnr==5 || gnr==6) {
			r2 = r1[0].getElementsByTagName("segments"); 
			if (r2 && r2[0]) { 
				for (i = 0; i < r2.length; i++) { 
					var ch_pos = Array();
					ch_number = r2[i].getAttribute("pos"); 
					ch_pos[0] = r2[i].getElementsByTagName("segment")[0].firstChild.data; // nazwa
					ch_pos[1] = r2[i].getElementsByTagName("presentation")[0].firstChild.data; // tłumaczenie
					ch_pos[2] = r2[i].getElementsByTagName("dbid")[0].firstChild.data; // ID bazy
					ch_pos[3] = "<small><font color='#717171'>Data utworzenia:</font> "+gtcGetSubTagValue(r2[i], 'tag14')+" <font color=\"#717171\">Utworzony przez:</font> "+gtcGetSubTagValue(r2[i], 'tag12')+" <font color=\"#717171\">Tlumacz:</font> "+gtcGetSubTagValue(r2[i], 'tag2')+" <font color=\"#717171\">Kategoria:</font> "+gtcGetSubTagValue(r2[i], 'tag7')+" <font color=\"#717171\">Typ dokumentu:</font> "+gtcGetSubTagValue(r2[i], 'tag8')+" <font color=\"#717171\">Kierunek tlumaczenia:</font> "+gtcGetSubTagValue(r2[i], 'tag6')+" <font color=\"#717171\">nr. referencyjny:</font> "+gtcGetSubTagValue(r2[i], 'tag4')+"</small>"; 
					g_CACHED_SEGMENTS[gnr][i] = ch_pos; 
					g_CACHED_FROM[gnr]++; 
			
				}
			} 
			}
		
		
	}
	
	g_TOTAL_COUNT[1]=g_TOTAL_COUNT[2];
	g_CACHED_FROM[1]=g_CACHED_FROM[2];

}

function gtcUpdateCache(_root, _phrase, _from) {
	
	var ifrom = parseInt(_from); 
	
	if (g_CACHED_SEARCH_PHRASE != _phrase) { 
		alert('Odswież stronę'); 
		gtcClear(); 
		gtcDecodeData(_root,_phrase); 
		return; 
	} 

	if (!_root) {
		var string = (new XMLSerializer()).serializeToString(_root);
		alert(string);
		alert('Brak danych do cache!'); 
		return; 
	}
	
	var loc_gnr = 'all'; 
	if (_root && _root.getElementsByTagName("info")) { 
		var x1 = _root.getElementsByTagName("info"); 
		x2 = x1[0].getElementsByTagName("group"); 
		if (x2 && x2[0] && x2[0].firstChild)
			loc_gnr = x2[0].firstChild.data; 
	}
	
	var xml = _root.getElementsByTagName("groups");
	if (!xml || !xml[0]) {
		alert('Nie ma grup.'); 
		return; 
	} 
	
	// dla wszystkich grup: 
	for (gnr = 1; gnr<=g_SYS_PARAMS.g_GROUPS_COUNT; gnr++) {
		if (!g_SYS_PARAMS.g_GROUPS[gnr].enabled) {
			continue; 
		} 
		r1 = xml[0].getElementsByTagName('group'+(gnr-1));
		if (!r1 || !r1[0]) {
			continue; 
		} 
			
		
		/* 	GRUPA 1  */
		
		if (gnr==1) {
			var count_;
		r2 = r1[0].getElementsByTagName('phrases'); 
		if (r2 && r2[0]) {
			for (i=0; i<r2.length; i++) { 
				if (!r2[i]) {
					continue; 
				}
				var ch_source = r2[i].getElementsByTagName("phrase")[0].firstChild.data;
				
				var ch_translations = Array();
				var ch_descriptions = Array(); 
				var ch_dbids = Array(); 
				
				r3 = r2[i].getElementsByTagName("presentation");
				
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						ch_translations[j]=r3[j].firstChild.data;
					}
				}
				r3 = r2[i].getElementsByTagName("dbid");
				
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						ch_dbids[j]=r3[j].firstChild.data;
					}
				}
				
				var ch_pos = Array();
				ch_pos[0] = ch_source; 
				ch_pos[1] = ch_translations; 
				ch_pos[2] = ch_descriptions; 
				ch_pos[3] = ch_dbids; 
				g_CACHED_GR[gnr][i+g_CACHED_FROM_P[gnr]] = ch_pos;
				g_CACHED_FROM[gnr]++; 
				count_++;
				
			} 
		}
		r2 = r1[0].getElementsByTagName('sources'); 
		if (r2 && r2[0]) {
			for (i=0; i<r2.length; i++) { 
				if (!r2[i]) {
					continue; 
				}
				var ch_source = r2[i].getElementsByTagName("source")[0].firstChild.data;

				var ch_translations = Array();
				var ch_descriptions = Array(); 
				var ch_dbids = Array(); 
				
				r3 = r2[i].getElementsByTagName("translations");
				if (r3.length > 0) { 
					for (j = 0; j < r3.length; j++) { 
						if (!r3[j])
							continue;
						r4 = r3[j].getElementsByTagName("description");
						if (r4 && r4[0])
							ch_descriptions[j] = r4[0].firstChild.data;
						else 
							ch_descriptions[j] = "";  
						
						r4 = r3[j].getElementsByTagName("presentation");
						if (r4 && r4[0])
							ch_translations[j] = r4[0].firstChild.data;
						else 
							ch_translations[j] = "";  
						
						//ch_translations[j] = r3[j].getElementsByTagName("presentation")[0].firstChild.data;
						r4 = r3[j].getElementsByTagName("dbid");
						ch_dbids[j] = r4[0].firstChild.data; 
						
					}
				}
				
				var ch_pos = Array();
				ch_pos[0] = ch_source; 
				ch_pos[1] = ch_translations; 
				ch_pos[2] = ch_descriptions; 
				ch_pos[3] = ch_dbids; 
				g_CACHED_GR[gnr][i+g_CACHED_FROM[gnr]+g_CACHED_FROM_P[gnr]] = ch_pos;
				g_CACHED_FROM[gnr]++; 
				
			} 
		}
		}
		
		/* 	GRUPA 2  */
		if (gnr==2) {
	
			r2 = r1[0].getElementsByTagName('phrases'); 
			ifrom = g_CACHED_FROM_P[2];
			
			temp = r1[0].getElementsByTagName("presentation");
			var added=0;
		
			if (r2 && r2[0]) {
				for (i=0; i<temp.length; i++) { 
					if (!r2[i]) {
						continue; 
					}
					
					r3 = r2[i].getElementsByTagName("presentation");
					if (r3.length > 0) { 
						for (j = 0; j < r3.length; j++) { 
					var ch_source = r2[i].getElementsByTagName("phrase")[0].firstChild.data;
					
					var ch_descriptions = Array(); 
				
					r3 = r2[i].getElementsByTagName("presentation");
					var ch_translations=r3[j].firstChild.data;
					r3 = r2[i].getElementsByTagName("dbid");
					var ch_dbids =  r3[j].firstChild.data;
											
					var ch_pos = Array();
					ch_pos[0] = ch_source; 
					ch_pos[1] = ch_translations; 
					ch_pos[2] = ch_dbids; 
					ch_pos[3] = ch_descriptions; 
					g_CACHED_GR[gnr][added+ifrom] = ch_pos; 
					added++;
					g_CACHED_FROM_P[gnr]++;
					g_CACHED_FROM[gnr]++; 
					
					
						}
						
					}
					
				} 
			
			}
			
			}
		
		
		/* 	GRUPA 3  */
		if (gnr==3) {
			ifrom = g_CACHED_FROM_P[3];

				r2 = r1[0].getElementsByTagName('phrases'); 
				
				
				temp = r1[0].getElementsByTagName("presentation");
				var added=0;
				if (r2 && r2[0]) {
					for (i=0; i<r2.length; i++) { 
						if (!r2[i]) {
							continue; 
						}
						
						r3 = r2[i].getElementsByTagName("presentation");
						if (r3.length > 0) { 
							for (j = 0; j < r3.length; j++) { 

						var ch_source = r2[i].getElementsByTagName("phrase")[0].firstChild.data;			
						var ch_descriptions = Array(); 
			
						r3 = r2[i].getElementsByTagName("presentation");
						var ch_translations=r3[j].firstChild.data;
						r3 = r2[i].getElementsByTagName("dbid");
						var ch_dbids =  r3[j].firstChild.data;
						
						var ch_pos = Array();
						ch_pos[0] = ch_source; 
						ch_pos[1] = ch_translations; 
						ch_pos[2] = ch_dbids; 
						ch_pos[3] = ch_descriptions; 
						
						g_CACHED_PHRASES[gnr][added+ifrom] = ch_pos; 
						

						added++;
						g_CACHED_FROM_P[gnr]++;
						g_CACHED_FROM[gnr]++; 
							}
						}
						
					} 
				
				}
			
			ifrom = parseInt(_from); 
		//	alert(ifrom+" = ifrom");
			r2 = r1[0].getElementsByTagName('sources'); 
			if (r2 && r2[0]) {
				for (i=0; i<r2.length; i++) { 
					if (!r2[i]) {
						continue; 
					}
					var ch_source = r2[i].getElementsByTagName("source")[0].firstChild.data;

					var ch_translations = Array();
					var ch_descriptions = Array(); 
					var ch_dbids = Array(); 
					
					r3 = r2[i].getElementsByTagName("translations");
					if (r3.length > 0) { 
						for (j = 0; j < r3.length; j++) { 
							if (!r3[j])
								continue;
							r4 = r3[j].getElementsByTagName("description");
							if (r4 && r4[0])
								ch_descriptions[j] = r4[0].firstChild.data;
							else 
								ch_descriptions[j] = "";  
						
							r4 = r3[j].getElementsByTagName("presentation");
							if (r4 && r4[0])
								ch_translations[j] = r4[0].firstChild.data;
							else 
								ch_translations[j] = "";
							
							//ch_translations[j] = r3[j].getElementsByTagName("presentation")[0].firstChild.data;
							r4 = r3[j].getElementsByTagName("dbid");
							ch_dbids[j] = r4[0].firstChild.data; 
							
						}
					}
					
					var ch_pos = Array();
					ch_pos[0] = ch_source; 
					ch_pos[1] = ch_translations; 
					ch_pos[2] = ch_descriptions; 
					ch_pos[3] = ch_dbids; 
					g_CACHED_TRANSLATIONS[gnr][i+ifrom] = ch_pos;
					// ???
					alert(ch_pos);
					g_CACHED_FROM[gnr]++; 
					
				} 
			}
			
			
			
			}
		
		/* 	GRUPA 4  */
		if (gnr==4) {
			r2 = r1[0].getElementsByTagName('sources'); 
			if (r2 && r2[0]) {
				for (i=0; i<r2.length; i++) { 
					if (!r2[i]) {
						continue; 
					}
					var ch_source = r2[i].getElementsByTagName("source")[0].firstChild.data;
					var ch_s_descr;
					r3 = r2[i].getElementsByTagName("description");
					if (r3 && r3[0])
						 ch_s_descr = r3[0].firstChild.data;


					var ch_translations = Array();
					var ch_descriptions = Array(); 
					var ch_dbids = Array(); 
					
					r3 = r2[i].getElementsByTagName("translations");
					if (r3.length > 0) { 
						for (j = 0; j < r3.length; j++) { 
							if (!r3[j])
								continue;
							r4 = r3[j].getElementsByTagName("description");
							if (r4 && r4[0])
								ch_descriptions[j] = r4[0].firstChild.data;
							else 
								ch_descriptions[j] = "";  
							
							r4 = r3[j].getElementsByTagName("presentation");
							if (r4 && r4[0])
								ch_translations[j] = r4[0].firstChild.data;
							else 
								ch_translations[j] = ""; 
							
					//	ch_translations[j] = r3[j].getElementsByTagName("presentation")[0].firstChild.data;
							r4 = r3[j].getElementsByTagName("dbid");
							ch_dbids[j] = r4[0].firstChild.data; 
							
						}
					}
					
					var ch_pos = Array();
					ch_pos[0] = ch_source; 
					ch_pos[1] = ch_translations; 
					ch_pos[2] = ch_descriptions; 
					ch_pos[3] = ch_dbids; 
					ch_pos[4] = ch_s_descr; 
					g_CACHED_TRANSLATIONS[gnr][i] = ch_pos;
					g_CACHED_FROM[gnr]++; 
					
				} 
			}
		}
		/* 	GRUPA 5  */
		if (gnr==5 || gnr==6) {
		r2 = r1[0].getElementsByTagName("segments"); 
		if (r2 && r2[0]) { 
			for (i = 0; i < r2.length; i++) { 
				var ch_pos = Array();
				ch_number = r2[i].getAttribute("pos"); 
				ch_pos[0] = r2[i].getElementsByTagName("segment")[0].firstChild.data; // nazwa
				ch_pos[1] = r2[i].getElementsByTagName("presentation")[0].firstChild.data; // tłumaczenie
				ch_pos[2] = r2[i].getElementsByTagName("dbid")[0].firstChild.data; // ID bazy
				ch_pos[3] = "<small><font color='#717171'>Data utworzenia:</font> "+gtcGetSubTagValue(r2[i], 'tag14')+" <font color=\"#717171\">Utworzony przez:</font> "+gtcGetSubTagValue(r2[i], 'tag12')+" <font color=\"#717171\">Tlumacz:</font> "+gtcGetSubTagValue(r2[i], 'tag2')+" <font color=\"#717171\">Kategoria:</font> "+gtcGetSubTagValue(r2[i], 'tag7')+" <font color=\"#717171\">Typ dokumentu:</font> "+gtcGetSubTagValue(r2[i], 'tag8')+" <font color=\"#717171\">Kierunek tlumaczenia:</font> "+gtcGetSubTagValue(r2[i], 'tag6')+" <font color=\"#717171\">nr. referencyjny:</font> "+gtcGetSubTagValue(r2[i], 'tag4')+"</small>"; 				g_CACHED_SEGMENTS[gnr][i+ifrom] = ch_pos; 
			
				g_CACHED_FROM[gnr]++; 
			}
		} 
		}
	}
	g_CACHED_FROM[1]=g_CACHED_FROM[2];

}

function gtcHasDataInCache(_gnr) { 
		
	from = g_CURRENT_POS[_gnr]; 
	cnt = g_RESULTS_LARGE_COUNT; 
	
	if (_gnr==1 || _gnr==2) {
		if (!g_CACHED_GR[2] || g_CACHED_GR[2].length <= 1)
			return false; 
		return (from+cnt < g_CACHED_GR[2].length);
	}

	switch (g_SYS_PARAMS.g_GROUPS[_gnr].gtype) {
		case 0 : // tłumaczenia
			if (!g_CACHED_TRANSLATIONS[_gnr] || g_CACHED_TRANSLATIONS[_gnr].length <= 1)
				return false; 
			return (from+cnt < g_CACHED_TRANSLATIONS[_gnr].length);
		case 1 : // frazy
			if (!g_CACHED_PHRASES[_gnr] || g_CACHED_PHRASES[_gnr].length <= 1)
				return false; 
			return (from+cnt < g_CACHED_PHRASES[_gnr].length); 	
		case 2 : // segmenty
			if (!g_CACHED_SEGMENTS[_gnr] || g_CACHED_SEGMENTS[_gnr].length <= 1)
				return false; 
			return (from+cnt < g_CACHED_SEGMENTS[_gnr].length);
	} 
} 

function gtcCountResultsDirect() { 
	var rval = 0; 
	for (gnr = 1; gnr<=g_SYS_PARAMS.g_GROUPS_COUNT; gnr++) {
		if (g_SYS_PARAMS.g_GROUPS[gnr].enabled && parseInt(g_SYS_PARAMS.g_GROUPS[gnr].gtype) != 2)
			rval += parseInt(g_TOTAL_COUNT[gnr]); 
	}
	return rval; 
}

function gtcCountResultsSegments() { 
	var rval = 0; 
	for (gnr = 1; gnr<=g_SYS_PARAMS.g_GROUPS_COUNT; gnr++) {
		if (g_SYS_PARAMS.g_GROUPS[gnr].enabled && parseInt(g_SYS_PARAMS.g_GROUPS[gnr].gtype) == 2)
			rval += parseInt(g_TOTAL_COUNT[gnr]); 
	}	
	return rval; 
}

function gtcUpdateButtonsState(_gnr) { 
	if (!$('page_next_'+_gnr)) {
		return; 
	}

	if (gtcHasDataInCache(_gnr))
		$('page_next_'+_gnr).src=g_IMAGE_DIR+"/next_small.gif"; 
	else {
		$('page_next_'+_gnr).src=g_IMAGE_DIR+"/next_small_gray.gif"; 
	}
}

function gtcFormatGroup1and2(_gnr, _from, _to, _small_limit) { 
	// grupa1
	var tt="";
	if (!(!g_CACHED_GR[_gnr] || g_CACHED_GR[_gnr].length == 0))
	{
	  tt = "<ul start="+(parseInt(_from)+1)+">";
	for (i=parseInt(_from); i<parseInt(_to); i++) { 
		if (!g_CACHED_GR[_gnr][i])
			continue;
		ttdsp = (parseInt(_small_limit) > 0 ? parseInt(_small_limit) : g_CACHED_GR[_gnr][i][1].length);
		tt += "<li><span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span><ul>"; 
		for (j=0; j<ttdsp; j++) { 
			if (!g_CACHED_GR[_gnr][i][1][j])
				continue; 
			tt += "<li><span class='res_phr_translation'>"; 
			if (g_CACHED_GR[_gnr][i][2][j])
				tt += "(<i>"+g_CACHED_GR[_gnr][i][2][j]+"</i>) ";
			tt += g_CACHED_GR[_gnr][i][1][j] + "</span>";
			tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][3][j])+"</li>"; 
		}
		tt += "</ul></li>";
	}
	tt += "</ul>";
	}
	// grupa 2
	_gnr++;
	var added=0;

	if (!g_CACHED_GR[_gnr] || g_CACHED_GR[_gnr].length == 0) 
		return tt; 
		//tt += "<ol class='result_tlm_item' start="+(parseInt(_from)+1)+">"; 
		tt += "<ul>"; 
		    
	for (i = parseInt(_from); i < parseInt(_to); i++) { 
		if (!g_CACHED_GR[_gnr][i]) 
			continue; 
		//  DOMYSLNE
		/*
		tt += "<li>"; 
		tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
		tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
		tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
		tt += "</li>"; 	
		*/
		// 	PIERWSZE
		/*
		if (i>0) {
		if (g_CACHED_GR[_gnr][i][0]!=g_CACHED_GR[_gnr][i-1][0]){
			tt += "<li>"; 
			tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
			tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
			tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
			tt += "</li></ul></li>"; 
		} else {
			tt += "<div class='hide'><li></li></div>"; 
		//	tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span> - "; 
			tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
			tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
			tt += "</li></ul>"; 
				//<ol class='result_tlm_item' start="+parseInt(i+1)+"><li>
		}
		} else {
			tt += "<li>"; 
			tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
			tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
			tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
			tt += "</li></ul></li>"; 		
		}
		*/
		
		// kropki i numerki
		/*
		if (i>_from) {
			if (g_CACHED_GR[_gnr][i][0]==g_CACHED_GR[_gnr][i-1][0]){
				// kropka z tlumaczeniem
				tt += "<div class='hide'><li></li></div>"; 
				tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
				tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
				tt += "</li></ul>"; 
						//<ol class='result_tlm_item' start="+parseInt(i+1)+"><li>
			} else {
				if (g_CACHED_GR[_gnr][i+1]) {
					if (g_CACHED_GR[_gnr][i][0]==g_CACHED_GR[_gnr][i+1][0]) {
						// source i kropka z tlumaczeniem
						tt += "<li value="+parseInt(i+1)+">"; 
						tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
						tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
						tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
						tt += "</li></ul></li>"; 
					} else {
						// source i tlumaczenie
						tt += "<li value="+parseInt(i+1)+">"; 
						tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
						tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
						tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
						tt += "</li>"; 
					}
				} else {
					// source i tlumaczenie
					tt += "<li value="+parseInt(i+1)+">"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
					tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
					tt += "</li>"; 	
				}
			}
		} else {
			if (g_CACHED_GR[_gnr][i+1]) {
				if (g_CACHED_GR[_gnr][i][0]==g_CACHED_GR[_gnr][i+1][0]) {
					// source i kropka z tlumaczeniem
					tt += "<li value="+parseInt(i+1)+">"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
					tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
					tt += "</li></ul></li>"; 
				} else {
					// source i tlumaczenie
					tt += "<li value="+parseInt(i+1)+">"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
					tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
					tt += "</li>"; 
				}
			} else {
				// source i tlumaczenie
				tt += "<li value="+parseInt(i+1)+">"; 
				tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
				tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
				tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
				tt += "</li>"; 	
			}
		}
		*/
		// numerki na gorze
		
		if (i>_from) {
			if (g_CACHED_GR[_gnr][i][0]==g_CACHED_GR[_gnr][i-1][0]){
				// kropka z tlumaczeniem
				tt += "<div class='hide'><li></li></div>"; 
				tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
				tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
				tt += "</li></ul>"; 
						//<ol class='result_tlm_item' start="+parseInt(i+1)+"><li>
			} else {
				if (g_CACHED_GR[_gnr][i+1]) {
					if (g_CACHED_GR[_gnr][i][0]==g_CACHED_GR[_gnr][i+1][0]) {
						// source i kropka z tlumaczeniem
						tt += "<li>"; 
						tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
						tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
						tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
						tt += "</li></ul></li>"; 
					} else {
						// source i tlumaczenie
						tt += "<li>"; 
						tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
						tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
						tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
						tt += "</li>"; 
					}
				} else {
					// source i tlumaczenie
					tt += "<li>"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
					tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
					tt += "</li>"; 	
				}
			}
		} else {
			if (g_CACHED_GR[_gnr][i+1]) {
				if (g_CACHED_GR[_gnr][i][0]==g_CACHED_GR[_gnr][i+1][0]) {
					// source i kropka z tlumaczeniem
					tt += "<li>"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+"</span>"; 
					tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
					tt += "</li></ul></li>"; 
				} else {
					// source i tlumaczenie
					tt += "<li>"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
					tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
					tt += "</li>"; 
				}
			} else {
				// source i tlumaczenie
				tt += "<li>"; 
				tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_GR[_gnr][i][0])+" - </span>"; 
				tt += "<span class='res_phr_translation'>"+g_CACHED_GR[_gnr][i][1]+"</span> "; 
				tt += gtsAddDictInfo(g_CACHED_GR[_gnr][i][2]); 
				tt += "</li>"; 	
			}
		}
		
		added+=j-1;	
	} 
	
	tt += "</ul>"; 
	return tt; 
}




function gtcFormatTranslations(_gnr, _from, _to, _small_limit) { 

	if (!g_CACHED_TRANSLATIONS[_gnr] || g_CACHED_TRANSLATIONS[_gnr].length == 0)
		return ""; 
	var tt = "<ul start="+(parseInt(_from)+1)+">";
	for (i=parseInt(_from); i<parseInt(_to); i++) { 
		if (!g_CACHED_TRANSLATIONS[_gnr][i])
			continue;
		ttdsp = (parseInt(_small_limit) > 0 ? parseInt(_small_limit) : g_CACHED_TRANSLATIONS[_gnr][i][1].length);
		tt += "<li><span class='res_phr_name'>"+highlightResult(g_CACHED_TRANSLATIONS[_gnr][i][0])+"</span><ul>"; 
		for (j=0; j<ttdsp; j++) { 
			if (!g_CACHED_TRANSLATIONS[_gnr][i][1][j])
				continue; 
			tt += "<li><span class='res_phr_translation'>"; 
			if (g_CACHED_TRANSLATIONS[_gnr][i][2][j])
				tt += "(<i>"+g_CACHED_TRANSLATIONS[_gnr][i][2][j]+"</i>) ";
			tt += g_CACHED_TRANSLATIONS[_gnr][i][1][j] + "</span>";
			tt += gtsAddDictInfo(g_CACHED_TRANSLATIONS[_gnr][i][3][j])+"</li>"; 
		}
		tt += "</ul></li>";
	}
	tt += "</ul>"; 
	return tt; 
	
}

function gtcFormatPhrases(_gnr, _from, _to) { 
	
	if (!g_CACHED_PHRASES[_gnr] || g_CACHED_PHRASES[_gnr].length == 0) 
		return ""; 
	var tt = "<ul class='result_tlm_item' start="+(parseInt(_from)+1)+">"; 
	for (i = parseInt(_from); i < parseInt(_to); i++) { 
		if (!g_CACHED_PHRASES[_gnr][i]) 
			continue; 
		// OLD
		/*
		tt += "<li>"; 
		tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+"</span> - "; 
		tt += "<span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
		tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
		tt += "</li>"; 
		*/
		
		if (i>_from) {
			if (g_CACHED_PHRASES[_gnr][i][0]==g_CACHED_PHRASES[_gnr][i-1][0]){
				// kropka z tlumaczeniem
				tt += "<div class='hide'><li></li></div>"; 
				tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
				tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
				tt += "</li></ul>"; 
						//<ol class='result_tlm_item' start="+parseInt(i+1)+"><li>
			} else {
				if (g_CACHED_PHRASES[_gnr][i+1]) {
					if (g_CACHED_PHRASES[_gnr][i][0]==g_CACHED_PHRASES[_gnr][i+1][0]) {
						// source i kropka z tlumaczeniem
						tt += "<li value="+parseInt(i+1)+">"; 
						tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+"</span>"; 
						tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
						tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
						tt += "</li></ul></li>"; 
					} else {
						// source i tlumaczenie
						tt += "<li value="+parseInt(i+1)+">"; 
						tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+" - </span>"; 
						tt += "<span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
						tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
						tt += "</li>"; 
					}
				} else {
					// source i tlumaczenie
					tt += "<li value="+parseInt(i+1)+">"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+" - </span>"; 
					tt += "<span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
					tt += "</li>"; 	
				}
			}
		} else {
			if (g_CACHED_PHRASES[_gnr][i+1]) {
				if (g_CACHED_PHRASES[_gnr][i][0]==g_CACHED_PHRASES[_gnr][i+1][0]) {
					// source i kropka z tlumaczeniem
					tt += "<li value="+parseInt(i+1)+">"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+"</span>"; 
					tt += "<ul class='result_tlm_item'><li><span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
					tt += "</li></ul></li>"; 
				} else {
					// source i tlumaczenie
					tt += "<li value="+parseInt(i+1)+">"; 
					tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+" - </span>"; 
					tt += "<span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
					tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
					tt += "</li>"; 
				}
			} else {
				// source i tlumaczenie
				tt += "<li value="+parseInt(i+1)+">"; 
				tt += "<span class='res_phr_name'>"+highlightResult(g_CACHED_PHRASES[_gnr][i][0])+" - </span>"; 
				tt += "<span class='res_phr_translation'>"+g_CACHED_PHRASES[_gnr][i][1]+"</span> "; 
				tt += gtsAddDictInfo(g_CACHED_PHRASES[_gnr][i][2]); 
				tt += "</li>"; 	
				
			}
		}
	} 
	tt += "</ul>"; 
	return tt; 
	
}

function gtcFormatSegments(_gnr, _from, _to) { 

	if (!g_CACHED_SEGMENTS[_gnr] || g_CACHED_SEGMENTS[_gnr].length == 0) 
		return ""; 
	var tt = "<table class=\"result_txt_table\" cellspacing=\"5\" cellpadding=\"5\">"; 
	for (i = parseInt(_from); i < parseInt(_to); i++) { 
		if (!g_CACHED_SEGMENTS[_gnr][i]) 
			continue; 
		nn = highlightResult(g_CACHED_SEGMENTS[_gnr][i][0]); 
		nt = g_CACHED_SEGMENTS[_gnr][i][1]; 
		ni = g_CACHED_SEGMENTS[_gnr][i][3]; 
		tt += "<tr class=\"result_txt_row_1\">"; 
		tt += "<td width=\"50%\">"+nn+"</td>"; 
		tt += "<td width=\"50%\">"+nt+"</td>"; 
		tt += "</tr><tr>"; 
		tt += "<td colspan=\"2\" class=\"result_txt_summ_cell\">"+ni+"</td>";
		tt += "</tr>"; 
	}
	tt += "</table>"; 
	return tt; 	
}

function gtcGenerateButtons(_gnr, _from, _cnt) {
	var ttt; 
	
	if (_gnr!=1 && _gnr!=2) 
	switch (g_SYS_PARAMS.g_GROUPS[_gnr].gtype) {
		case 0 : // tłumaczenia
			if (!g_CACHED_TRANSLATIONS[_gnr] || g_CACHED_TRANSLATIONS[_gnr].length <= 0)
				return ""; 
		break; 
		case 1 : // frazy
			if (!g_CACHED_PHRASES[_gnr] || g_CACHED_PHRASES[_gnr].length <= 1)
				return ""; 
		break; 
		case 2 : // segmenty
			if (!g_CACHED_SEGMENTS[_gnr] || g_CACHED_SEGMENTS[_gnr].length <= 1)
				return ""; 
		break; 
	}
	
	
	var tt = '<table class="gtc_page_control"><tr ><td class="gtc_page_control_title" style="font-size:0.9em;">'+(g_SYS_PARAMS.g_GROUPS[_gnr].opis_widoczny?g_SYS_PARAMS.g_GROUPS[_gnr].opis:'&nbsp;')+'</td><td align="right" class="gtc_page_control_switch">';
/*	if (g_SYS_PARAMS.g_GROUPS[_gnr].gtype == 0) {
		tt += '</td></tr></table>'; 

		return tt; 
	}
	
	if (g_TOTAL_COUNT[_gnr] <= _cnt)
		return ""; 
	*/	
	tt += '<div class="gtc_page_control_switch" align="right" style="font-size:0.9em;">'; 

	if (parseInt(_from) > 0) {
			tt += '<a onclick="gtcChangePage('+_gnr+', -1);"><img class="gtc_page_control_switch" id="page_prev_'+_gnr+'" src="'+g_IMAGE_DIR+'/prev_small.gif" /> <span>'+g_STRINGS['prev']+'</span></a>&nbsp;'; 
	tt += (g_SYS_PARAMS.g_GROUPS[_gnr].liczba_widoczna_up ? ' | '+g_TOTAL_COUNT[_gnr]+' | ' : ''); 
	
	tt += parseInt(_from+1)+" - "+((g_TOTAL_COUNT[_gnr] < parseInt(_from+_cnt)) ? g_TOTAL_COUNT[_gnr] : parseInt(_from+_cnt));
	}
	if (parseInt(_from)+parseInt(_cnt) < g_TOTAL_COUNT[_gnr] ) 
			tt += '&nbsp;<a onclick="gtcChangePage('+_gnr+', 1);"><span>'+g_STRINGS['next']+'</span> <img class="gtc_page_control_switch" id="page_next_'+_gnr+'" src="'+g_IMAGE_DIR+'/next_small.gif"/></a>'; 

	tt += '</div></td></tr></table>';
	return tt; 
}

function gtcGenerateHeaderNoButtons(_gnr) {
	var ttt; 
	/*
	if (_gnr==1) {
	//	if (!g_CACHED_GR[_gnr] || g_CACHED_GR[_gnr].length <= 0)
	//		return ""; 
	} else {
	switch (g_SYS_PARAMS.g_GROUPS[_gnr].gtype) {
		case 0 : // tłumaczenia
			if (!g_CACHED_TRANSLATIONS[_gnr] || g_CACHED_TRANSLATIONS[_gnr].length <= 0)
				return ""; 
		break; 
		case 1 : // frazy
			if (!g_CACHED_PHRASES[_gnr] || g_CACHED_PHRASES[_gnr].length <= 1)
				return ""; 
		break; 
		case 2 : // segmenty
			if (!g_CACHED_SEGMENTS[_gnr] || g_CACHED_SEGMENTS[_gnr].length <= 1)
				return ""; 
		break; 
	}
	}
	*/
//	if (g_TOTAL_COUNT[_gnr] <= 0)
//		return ""; 
		
	var tt = '<table class="gtc_page_control"><tr ><td class="gtc_page_control_title" style="font-size:0.9em;">'+(g_SYS_PARAMS.g_GROUPS[_gnr].opis_widoczny?g_SYS_PARAMS.g_GROUPS[_gnr].opis:'&nbsp;')+'</td><td align="right" class="gtc_page_control_switch">';
	tt += '</td></tr></table>';
	return tt; 
}

function gtcMoreMark(_gnr, _limited) { 
	var tt = '<div class="result_more_txt" align="right">'; 
	
	var adc = 0;
	if (_gnr!=1) {
	if (parseInt(g_SYS_PARAMS.g_GROUPS[_gnr].gtype) == 0) {
		if (g_CACHED_TRANSLATIONS[_gnr] && g_CACHED_TRANSLATIONS[_gnr].length > 0) {
			if (g_CACHED_TRANSLATIONS[_gnr].length > g_RESULTS_SMALL_COUNT) {
				adc = g_RESULTS_SMALL_COUNT+1; 
			} else {
				for (var imm=0; imm<g_CACHED_TRANSLATIONS[_gnr].length; imm++) { 
					if (!g_CACHED_TRANSLATIONS[_gnr][imm])
						continue;
					if (g_CACHED_TRANSLATIONS[_gnr][imm][1].length > g_RESULTS_SMALL_COUNT) 
						adc = g_RESULTS_SMALL_COUNT+1; 
				}
			}
		}
	} else { 
		if (g_CACHED_PHRASES[_gnr] && g_CACHED_PHRASES[_gnr].length > 0)
			adc += g_CACHED_PHRASES[_gnr].length;
		if (g_CACHED_SEGMENTS[_gnr] && g_CACHED_SEGMENTS[_gnr].length > 0)
			adc += g_CACHED_SEGMENTS[_gnr].length;
	}
	} else {
		if (parseInt(g_SYS_PARAMS.g_GROUPS[2].gtype) == 0) {
			if (g_CACHED_GR[2] && g_CACHED_GR[2].length > 0) {
				if (g_CACHED_GR[2].length > g_RESULTS_SMALL_COUNT) {
					adc += g_RESULTS_SMALL_COUNT+1; 
				} else {
					for (var imm=0; imm<g_CACHED_GR[2].length; imm++) { 
						if (!g_CACHED_GR[2][imm])
							continue;
						if (g_CACHED_GR[2][imm][1].length > g_RESULTS_SMALL_COUNT) 
							adc += g_RESULTS_SMALL_COUNT+1; 
					}
				}
			}
		} else { 

			if (g_CACHED_GR[2] && g_CACHED_GR[2].length > 0)
				adc += g_CACHED_GR[2].length;

		}		
	}

	if (adc <= g_RESULTS_SMALL_COUNT) {
		tt += '&nbsp;'; 
	} else if (_limited) 
		tt += '<a onclick="gtcChangeDispMode('+_gnr+', false);">'+g_STRINGS['more']+' '+(g_SYS_PARAMS.g_GROUPS[_gnr].liczba_widoczna ? '('+g_STRINGS['total']+': '+ g_TOTAL_COUNT[_gnr] +')' : '')+' <img src="'+g_IMAGE_DIR+'/plus_small.gif"/></a>';
	else if (true) {
		tt += '<a onclick="gtcChangeDispMode('+_gnr+', true);">'+g_STRINGS['less']+' '+(g_SYS_PARAMS.g_GROUPS[_gnr].liczba_widoczna? '('+g_STRINGS['total']+': '+ g_TOTAL_COUNT[_gnr] +')' : '')+' <img src="'+g_IMAGE_DIR+'/minus_small.gif"/></a>';
	} 
	tt+='</div>';
	return tt; 
}

function gtcFormatPage(_gnr) {
	
	from = g_CURRENT_POS[_gnr]; 
	limited = g_LIMITED_PAGE[_gnr]; 
	cnt = (limited ? g_RESULTS_SMALL_COUNT : g_RESULTS_LARGE_COUNT); 
	
	var tt_tr = ""; 

	if (limited) {
		if (_gnr==1 || _gnr==2)
			tt_tr += gtcFormatGroup1and2(_gnr, from, from+cnt, g_RESULTS_SMALL_COUNT); 
		else
			tt_tr += gtcFormatTranslations(_gnr, from, from+cnt, g_RESULTS_SMALL_COUNT); 
	} else {
		if (_gnr==1 || _gnr==2)
			tt_tr += gtcFormatGroup1and2(_gnr, from, from+cnt, -1); 
		else
		tt_tr += gtcFormatTranslations(_gnr, from, from+cnt, -1); 
	}
	var tt_phr = gtcFormatPhrases(_gnr, from, from+cnt);
	var tt_seg = gtcFormatSegments(_gnr, from, from+cnt);
	
	if (tt_tr == "" && tt_phr == "" && tt_seg == "")
		return ""; 
	
	var tt1 = ""; 
	
	if (_gnr==4) {
		tt1 += gtcGenerateHeaderNoButtons(_gnr);
	} else
	if (!limited) 
		tt1 += gtcGenerateButtons(_gnr, from, cnt); 
	else 
		tt1 += gtcGenerateHeaderNoButtons(_gnr); 
		
	tt1 += tt_tr + tt_phr + tt_seg;
	tt1 += gtcMoreMark(_gnr, limited);
	return tt1; 
}

function gtcFormatPageSpecial() {
	/*
	from = g_CURRENT_POS[2]; 
	limited = g_LIMITED_PAGE[2]; 
	cnt = (limited ? g_RESULTS_SMALL_COUNT : g_RESULTS_LARGE_COUNT);
	
	var tt_tr = ""; 
	if (parseInt(from) == 0) {
		if (limited) 
			tt_tr += gtcFormatTranslations(1, from, from+cnt, g_RESULTS_SMALL_COUNT); 
		else 
			tt_tr += gtcFormatTranslations(1, from, from+cnt, -1); 
	}
	var tt_phr = gtcFormatPhrases(2, from, from+cnt);
	
	if (tt_tr == "" && tt_phr == "")
		return ""; 
	
	var tt1 = ""; 
	if (!limited) 
		tt1 += gtcGenerateButtons(2, from, cnt); 
	else
		tt1 += gtcGenerateHeaderNoButtons(2); 
	tt1 += tt_tr + tt_phr;
	tt1 += gtcMoreMark(2, limited);
	return tt1; 
	*/
}

function gtcDisplayPage(_gnr) {
	
	if (!$('result_tlm_'+_gnr))
		return false;
	if (_gnr==2) return;	
	if (g_SYS_PARAMS.g_JOIN_GROUPS && parseInt(_gnr) == 2) { 
		sgt = gtcFormatPageSpecial(); 
	} else {
		sgt = gtcFormatPage(_gnr);
	}

	if (sgt.length > 2) { 

		$('result_tlm_'+_gnr).innerHTML = sgt; 
		gtcShow('result_tlm_'+_gnr);
		return true; 
	} else { 
		$('result_tlm_'+_gnr).innerHTML = ""; 
		gtcHide('result_tlm_'+_gnr); 
		return false; 
	}
}

function gtcDisplayAllPages() { 

	var any_visible = false; 
	for (var ii = 1; ii<=g_SYS_PARAMS.g_GROUPS_COUNT; ii++) {
		if (!g_SYS_PARAMS.g_GROUPS[ii].enabled)
			continue;
		if (g_SYS_PARAMS.g_JOIN_GROUPS && parseInt(ii) == 1)
			continue; 
		any_visible |= gtcDisplayPage(ii);
	}
	
	if ($('simpleResultsTab'))
		$('simpleResultsTab').innerHTML = g_STRINGS['simplerestab']+gtcCountResultsDirect();
	if ($('advResultsTab'))
		$('advResultsTab').innerHTML = g_STRINGS['advrestab']+gtcCountResultsSegments(); 
	
	Hide('alternate_search_info_frame'); 
	if (any_visible) {
		
		Show('search_results');
	//	Hide('subtitle_div_vis');
		Hide('result_tlm_none');
		if (g_SEARCH_ALTERNATE_DIR) {
			Show('alternate_search_info_frame'); 
			Hide('subtitle_div_vis');
			$('alternate_search_txt_1').innerHTML = $('dir_type').value; 
			$('alternate_search_txt_2').innerHTML = $('alternate_dir_type').value; 
			g_SEARCH_ALTERNATE_DIR = false;
			g_SEARCH_ALT_ON = true;
		}
	} else if (g_LAST_SEARCH != "") {
		
		// próba wyświetlenia wyników dla odwrotnego kierunku
		if (g_SEARCH_ALTERNATE_DIR == false) {
			g_SEARCH_ALTERNATE_DIR = true; 
			gtcQueryFirst(1);
			return false; 
		} else {  
			Show('search_results'); 
			Show('result_tlm_none');
			$('phr_not_found').innerHTML = g_LAST_SEARCH; 
			g_SEARCH_ALTERNATE_DIR = false;
		}
	} else {
		Hide('search_results');
		Hide('result_tlm_none');
	}
	
	return any_visible; 
} 

function gtcChangePage(_gnr, _dir) {
	
	if (_gnr==1) {
	if (!g_CACHED_GR[_gnr]) 
		return; 
	} else {
		if (!g_CACHED_PHRASES[_gnr]) 
			return; 
		if (g_TOTAL_COUNT[_gnr] <= g_RESULTS_LARGE_COUNT)
			return;
	}
	
	if (g_TOTAL_COUNT[_gnr] <= g_RESULTS_LARGE_COUNT)
		return;
	/* 
	if (_dir > 0 && !gtcHasDataInCache(_gnr))
		return; 
	*/
	
	g_CURRENT_POS[_gnr] += _dir * parseInt(g_RESULTS_LARGE_COUNT);
	
	if (parseInt(g_CURRENT_POS[_gnr])+parseInt(g_RESULTS_LARGE_COUNT) >= parseInt(g_CACHED_FROM[_gnr])) {
		gtcQueryNext(_gnr, g_CACHED_FROM[_gnr], 1); 
	}
	gtcDisplayPage(_gnr);
	gtcUpdateButtonsState(_gnr);
}


function gtcChangeDispMode(_gnr, _mode) { 
	g_LIMITED_PAGE[_gnr] = _mode; 
	gtcDisplayPage(_gnr); 
} 

function gtcQueryFirst(_rs) { 
	g_SEARCH_ALT_ON = false;
	g_NEXT_EXECUTING = false; 
	_cnt = g_SYS_PARAMS.g_CACHE_UPDATE_COUNT;
	
	var ww = $('search_word').value; 
	var dt = (g_SEARCH_ALTERNATE_DIR ? $('alternate_dir_type').value : $('dir_type').value); 

	var madr = window.location.href; 
	var re = new RegExp("index\.php"); 
	
	
	if (madr.search(re) < 0 || g_SYS_PARAMS.g_FORCE_RELOAD) { 
		window.location = './act/change_settings.act.php?act=redir_to_result&query='+ww+'&dir_type='+dt+'&rs='+_rs; 
		return; 
	}
	
	g_LAST_SEARCH = ww; 
	gtsResetLastResult(); 
	
	Hide('error_box_frame'); 

	if (ww == "")
		return; 
	
	var sl_cd = gtsPrepareDictList(); 

	var sdcts = gtsPrepareSegmDictList();
	//	alert(sl_cd+" and "+sdcts);
	new Ajax.Request('./act/eval_query.act.php', {
		method: 'get',
		parameters: {'q': ww, 'dirtype' : dt, 'group' : -1, 'limit': 15, 'dicts' : sl_cd, 'sdicts' : sdcts, 'rs' : _rs  },
		onCreate: function() { 
			document.body.style.cursor = 'progress'; 
			gtcClear();
		}, 
		onException: function(p1, p2) {
			if (g_DEBUG_ON) { 
				gtsAddDebug("Wyjątek!!! "+p2.name+"<br><br>"+p2.message+"<br><br>");
			} else { 
				gtsShowErrorMessage('decodeerror');
			}
			document.body.style.cursor = 'default'; 
			g_SEARCH_ALTERNATE_DIR = false;
		},
		onSuccess: function(transport) {
			document.body.style.cursor = 'default'; 
			if (transport.responseText.trim() == 'Odmowa realizacji - brak ciasteczek.') { 
/*				if (parseInt(_rs) == 0) {
					window.location = './show_error.php'; 
					g_SEARCH_ALTERNATE_DIR = false;
					return; 
				}  
				gtcQueryFirst(0); */ 
				window.location = './login.php'; 
				return;
			}
			hideAllGroups();
			if (transport.responseText.trim() == '') {
				gtsShowErrorMessage('decodeerror');
			} else { 
				if (!transport.responseXML || !transport.responseXML.documentElement) {
					if (g_DEBUG_ON) {
						
						if (tr_a==0) {
							tr_a=1;
						//	alert('ponownie');
							gtcQueryFirst(1);
						}
						if (tr_a==1) {
							alert(transport.responseText);
							tr_a=0;
						}
						//gtsAddDebug("Błąd dekodowania "+transport.responseText);
					} else { 
						gtsShowErrorMessage('decodeerror');
					}
					g_SEARCH_ALTERNATE_DIR = false;
					return; 
				}
				var r = transport.responseXML.documentElement;
				if (r.tagName == "parsererror" || r.tagName == "error") { 
					gtsShowErrorMessage('decodeerror');
				} else {
					
					gtcDecodeData(r, ww);
					gtsPrepareResultsDisplay();
					var isalternate = g_SEARCH_ALTERNATE_DIR; 
					var any = gtcDisplayAllPages();
					gtsDecodeMisspelling(r, any, isalternate);
					$('search_word').blur();
					if (g_INITIAL_EVAL) {
						g_SYS_PARAMS.g_FORCE_RELOAD = true;
					}
					
				}
			} 
		},
		onFailure: function() { 
			g_SEARCH_ALTERNATE_DIR = false;
			gtsShowErrorMessage('decodeerror');
			document.body.style.cursor = 'default'; 
		} 	
	});
	
}

function gtcQueryNext(_gnr, _from, _rs) { 
	if (g_NEXT_EXECUTING) { 
		//alert('za szybko ...'); 
		return; 
	}
	_cnt = g_SYS_PARAMS.g_CACHE_UPDATE_COUNT;
	
	g_NEXT_EXECUTING = true; 
	
	var ww = $('search_word').value; 
	
	var dt = (g_SEARCH_ALT_ON ? $('alternate_dir_type').value : $('dir_type').value); 
	
	var sl_cd = gtsPrepareDictList(); 
	var sdcts = gtsPrepareSegmDictList(); 
		
	new Ajax.Request('./act/eval_query.act.php', {
		method: 'get',
		parameters: {'q': ww, 'dirtype' : dt, 'group' : _gnr, 'offset' : _from, 'limit' : _cnt, 'dicts' : sl_cd, 'sdicts' : sdcts, 'rs' : _rs  },
		onCreate: function() { 
			document.body.style.cursor = 'progress'; 
			
		}, 
		onException: function(p1, p2) {
			gtsShowErrorMessage('decodeerror');
			document.body.style.cursor = 'default'; 
			g_NEXT_EXECUTING = false; 
			
		},
		onSuccess: function(transport) {
			g_NEXT_EXECUTING = false; 
			document.body.style.cursor = 'default'; 
			if (transport.responseText.trim() == 'Odmowa realizacji - brak ciasteczek.') { 
/*				if (parseInt(_rs) == 0)
					window.location = './show_error.php'; 
				else
					gtcQueryNext(_gnr, _from, 0); */ 
				window.location = './login.php'; 
				return;
			}
			if (transport.responseText.trim() == '') {
				gtsShowErrorMessage('decodeerror');
			} else { 
				if (!transport.responseXML || !transport.responseXML.documentElement) {
					if (g_DEBUG_ON) { 
						gtsAddDebug("Błąd dekodowania "+transport.responseText);
					} else { 
						gtsShowErrorMessage('decodeerror');
					}
					return; 
				}
				var r = transport.responseXML.documentElement;
				if (r.tagName == "parsererror" || r.tagName == "error") { 
					gtsShowErrorMessage('decodeerror');
				} else {
				
					gtcUpdateCache(r, ww, _from);
					gtcDisplayPage(_gnr);
					gtcUpdateButtonsState(_gnr);
					

				}
			} 
		},
		onFailure: function() { 
			gtsShowErrorMessage('decodeerror');
			document.body.style.cursor = 'default'; 
			g_NEXT_EXECUTING = false; 
		} 	
	});
}

