var asi = 0;
var noclick = false;
var focsb = true; /// whether to focus search box
var sat = null;

/// Click on OK button
function search()
{
	if (document.getElementById('q').value.length < 3) return;
	hs();
	document.getElementById('sb').className = 'disabled';
	document.getElementById('b').disabled = 'disabled';
	document.getElementById('b').className = 'disabled';
	xyz('Načítám...', document.getElementById('t').value);
	xhr('/q/search.php?q='+document.getElementById('q').value+'&t='+document.getElementById('t').value, function(text) {
		document.getElementById('results').innerHTML = text;
		document.getElementById('results').style.display='block';
		document.getElementById('suggest').style.display='none';
		document.getElementById('sb').className = '';
		document.getElementById('b').disabled = '';
		document.getElementById('b').className = '';
	});
}

/// Change AT from menu
function cht()
{
	xhr('/q/atlist.php?q='+document.getElementById('q').value, function(text) {
		if (text != '') {
			document.getElementById('suggest').style.display = 'block';
			document.getElementById('suggest').innerHTML = text;
			document.getElementById('atfilter').focus();
			if (document.getElementById('suggest').childNodes.length > 10)	document.getElementById('suggest').className = 'menu';else document.getElementById('suggest').className = 'mmenu';
			sat = 0;
			document.getElementById('at0').childNodes[0].style.color = '#06b';
		}
	});
}

function chtch(o, ev)
{
	if (sat != null) {
		document.getElementById('at'+sat).childNodes[0].style.color = '';
	}
	switch (ev.keyCode) {
		case 13:if (sat != null) return ttch(document.getElementById('at'+sat).childNodes[0], sat);
		case 27:return hs();
	}

	sat = null;
	var x = document.getElementById('suggest').childNodes;

	if (document.getElementById('atfilter').value == '') {
		document.getElementById('at0').childNodes[0].style.color = '#06b';
		sat = 0;
	}
	for (var i=0; i<x.length; i++) {
		if (x[i].id.substr(0, 2) == 'at' && x[i].id != 'at0')
			if (x[i].childNodes[0].innerHTML.substr(0, o.value.length).toLowerCase() == o.value.toLowerCase()
				|| strip_accents(x[i].childNodes[0].innerHTML.substr(0, o.value.length)) == o.value.toLowerCase()) {
					if (sat == null) {
						sat = x[i].id.substr(2);
						x[i].childNodes[0].style.color = '#06b';
					}
					x[i].style.display = 'block';
				} else x[i].style.display = 'none';
	}
}

/// MouseDown on suggest item
function skcl(id)
{
	/*var v = document.getElementById('si'+id).title;
	document.getElementById('q').value = v;
	document.getElementById('b').disabled = '';
	document.getElementById('b').className = '';
	asi = id;*/
	document.getElementById('sb').className = 'disabled';
	location.href = document.getElementById('si'+id).href;
}

/// MouseOver on suggest item
function skx(id)
{
	if (id > 0) document.getElementById('si'+id).focus();else document.getElementById('q').focus();
	asi = id;	
}

/// MouseOut on suggest item
function skxx(id)
{
	document.getElementById('q').focus();
}

/// KeyUp on suggest item
var sugTimeout=null;
function skp(ev)
{
	clearTimeout(sugTimeout);
	if (ev.ctrlKey) {if (document.getElementById('q').value.length > 2) document.getElementById('sb').className = '';return;}
	switch (ev.keyCode) {
		case 13: if (asi > 0) skcl(asi);hs();break;
		case 27: hs();break;
		case 38: asi--;if (asi < 0) asi = 0;if (asi == 0) document.getElementById('q').focus();else document.getElementById('si'+asi).focus();break;
		case 40: asi++;if (document.getElementById('si'+asi) == undefined) asi--;if (asi > 0) document.getElementById('si'+asi).focus();break;
		default:
			if ((ev.keyCode > 45 && ev.keyCode < 91) || (ev.keyCode > 95 && ev.keyCode < 112) || ev.keyCode == 8) {
				bdis();
				if (document.getElementById('q').value.length > 2 && asi == 0) {
					suggest();
				} else if (document.getElementById('q').value.length > 2 && asi > 0) {
					asi = 0;
					document.getElementById('q').value += (ev.shiftKey == 1 ? String.fromCharCode(ev.keyCode) : String.fromCharCode(ev.keyCode).toLowerCase());
					document.getElementById('q').focus();
					suggest();
				} else hs();
			}
	}
}

function bdis()
{
	if (document.getElementById('q').value.length < 3) {
		document.getElementById('b').disabled = 'disabled';
		document.getElementById('b').className = 'disabled';
	} else {
		document.getElementById('b').disabled = '';
		document.getElementById('b').className = '';
	}
}

/// Get suggest
function suggest()
{
	document.getElementById('suggest').style.display='block';
	document.getElementById('suggest').className = 'loading';
	document.getElementById('suggest').innerHTML = '';
	sugTimeout = setTimeout("delaySuggest()", 1000);
}

function delaySuggest()
{
	xhr('/q/suggest.php?q='+document.getElementById('q').value+'&t='+document.getElementById('t').value, function(text){
		if (text == '') hs();
			else {
				document.getElementById('suggest').className = '';
				document.getElementById('suggest').innerHTML = text;
				document.getElementById('suggest').style.display = 'block';
			}
		});
}

function wcyfh()
{
	xhr('/q/wcyfh.php', function(text){
		document.getElementById('suggest').className = '';
		document.getElementById('suggest').innerHTML = text;
		document.getElementById('suggest').style.display='block';
	});
}


/// Hide suggest menu
function hs()
{
	if (document.getElementById('suggest').style.display == '' || document.getElementById('suggest').style.display == 'none' || document.getElementById('sb').className == 'disabled') return;
	document.getElementById('suggest').style.display = 'none';
	if (asi > 0 || sat != null) document.getElementById('q').focus();
	asi = 0;
	sat = null;
}

/// MouseDown on AtList
function ttch(obj, atid)
{
	hs();
	document.getElementById('tt').style.width = 'auto';
	document.getElementById('tt').innerHTML = obj.innerHTML;
	document.getElementById('t').value = atid;
	document.getElementById('q').style.width = 278-document.getElementById('tt').offsetWidth+'px';
	document.getElementById('q').focus();
}

/// Change xy
function xyz(text, id)
{
	document.getElementById('results').className = 'results';
	//if (id == 'wycfh')	{document.getElementById('lwycfh').className = 'ah';document.getElementById('results').className = '';} else document.getElementById('lwycfh').className = '';
	//if (id == 'hcywwd')	{document.getElementById('lhcywwd').className = 'ah';document.getElementById('results').className = '';} else document.getElementById('lhcywwd').className = '';
	document.getElementById('results').innerHTML = text;
	document.getElementById('results').style.display = text == null ? 'none' : 'block';
	//document.getElementById('results').style.height = 'auto';
	//$('#results').animate({'height': document.getElementById('results').offsetHeight}, 1000, function(){});
}

function getrest(obj, aa, t)
{
	obj.className = 'getrest';
	xhr('/q/a.php?a='+aa+'&t='+t, function(text){document.getElementById(t).innerHTML = text;});
}

function acc(aa, obj)
{
	if (getCookie("ac").indexOf(","+aa+",", 0) == -1) {
		setCookie("ac", (getCookie("ac")+","+aa+",").replace(",,", ","));
		if (obj != null) obj.className = "plus pluss";
		if (document.getElementById('addtotl'+aa) != undefined) {
			document.getElementById('addtotl'+aa).innerHTML = 'Odebrat z dočasného seznamu';
			document.getElementById('addtotl'+aa).className = 'addtotlm';
		}
	} else {
		var cv = getCookie("ac").replace(","+aa+",", ",").replace(",,", ",");
		if (cv == ",") return accdel(aa);
		setCookie("ac", cv);
		if (obj != null) obj.className = "plus";
		if (document.getElementById('addtotl'+aa) != undefined) {
			document.getElementById('addtotl'+aa).innerHTML = 'Přidat do dočasného seznamu';
			document.getElementById('addtotl'+aa).className = 'addtotlp';
		}
	}
	document.getElementById('tes').style.display = 'block';
	if (document.getElementById('tes1') != undefined) document.getElementById('tes1').style.display = 'block';
	xhr('/q/tes.php', function(text){document.getElementById('te').innerHTML = text;noclick = false;});
}
function accdel(aa)
{
	setCookie("ac", "");
	document.getElementById('te').innerHTML = '';
	if (document.getElementById('tes1') != undefined) document.getElementById('tes1').style.display = 'none';
	else document.getElementById('tes').style.display = 'none';
	if (document.getElementById('addtotl'+aa) != undefined) {
		document.getElementById('addtotl'+aa).innerHTML = 'Přidat do dočasného seznamu';
		document.getElementById('addtotl'+aa).className = 'addtotlp';
	}
}

function conv(id, v, u)
{
	var o = document.getElementById('av'+id);
	xhr('/q/conv.php?v='+v+'&u='+u, function(t){
		o.innerHTML = t;
	});
}


/// Change Feedback Form className
lftype = null;
function chff(type, obj)
{
	document.getElementById('ftype1l').className = '';
	document.getElementById('f_text').focus();
	document.getElementById('feedback').className = 'fbt'+type;
	if (lftype != null) lftype.className = '';
	lftype = obj;
	lftype.className = 'ftypel';
	if (type == 5) document.getElementById('addid').checked='checked';else document.getElementById('addid').checked='';
}
function feedback()
{
	obj = document.getElementById('fbh');
	if (obj.style.left == "300px") {
		//$(obj).animate({"left": "-25px"}, "slow", function(){$(obj).css("left", "");$('#feedback').css("display", "none");});
		//$("#feedback").animate({"left": "-324px"}, "slow");
		obj.style.left = '-25px';
		document.getElementById('feedback').style.display = 'none';
		document.getElementById('feedback').style.left = '-324px';
	} else {
		//$('#feedback').css("display", "block");
		if (document.getElementById('feedback') != null)
			if (document.getElementById('feedback').innerHTML.length < 2000) {
				obj.style.cursor = 'wait';
				xhr('/q/feedback.php', function(text) {
					document.getElementById('feedback').innerHTML = text;
					document.getElementById('f_text').focus();
					obj.style.left = '300px';
					document.getElementById('feedback').style.display = 'block';
					document.getElementById('feedback').style.left = '-1px';
					//$(obj).animate({"left": "300px"}, "slow");
					//$("#feedback").animate({"left": "-1px"}, "slow");
					obj.style.cursor = '';
				});
			} else {
				//$(obj).animate({"left": "300px"}, "slow");
				//$("#feedback").animate({"left": "-1px"}, "slow");
				obj.style.left = '300px';
				if (document.getElementById('fmsg') != undefined) document.getElementById('msg').style.display = 'none';
				document.getElementById('feedback').style.display = 'block';
				document.getElementById('feedback').style.left = '-1px';
				document.getElementById('f_title').focus();
			}
	}
	return false;
}




function xhr(j,a,n){var w=window,r=w.XMLHttpRequest?new XMLHttpRequest():(w.ActiveXObject?new ActiveXObject('Microsoft.XMLHTTP'):0)
if(r){r.onreadystatechange=function(){r.readyState==4?(n||a)(r.responseText,r.responseXML):0}
r.open(n?'POST':'GET',j,!0)
if(n){r.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=utf-8')
if(r.overrideMimeType)r.setRequestHeader('Connection','close')
}r.send(a)}}

function xhrPost(form, upd, redir)
{
	var elem = form.elements;
	var str = "";
	var send = true;
	var passed = true;
	for (var i=0; i<elem.length; i++) {
		if (elem[i].name == "#UPD") upd = elem[i].value;
		if (elem[i].type == "checkbox") str += "&" + elem[i].name + "=" + (elem[i].checked ? elem[i].value > 0 ? elem[i].value : 1 : 0);
			else if (elem[i].type == "radio") {if (elem[i].checked) str += "&" + elem[i].name + "=" + (elem[i].value > 0 ? elem[i].value : 1);}
			else if (elem[i].type != "submit") {
				if (elem[i].value != "") str += "&" + elem[i].name + "=" + urlencode(elem[i].value);
			} else if (elem[i].disabled != "") {
				if (elem[i].name == "butb")
					send = false;
				else if (elem[i].value != "") {
					str += "&" + elem[i].name + "=" + urlencode(elem[i].value);
					elem[i].disabled = "";
				}
			} if (elem[i].sendBy != undefined) str += "&" + elem[i].name + "=" + urlencode(elem[i].value);
	}
	var backup = (upd != null ? document.getElementById(upd).innerHTML : '');
	//document.getElementById(upd).innerHTML = '<img src="'+d+'/style/img/loading.gif" alt="Loading" style="clear:both;" />';
	if (send) {
		var ajaxadd = "";
		if (redir == null) {
			redir = form.action;
			if (redir.indexOf("?") > 0) redir += "&ajax=1";else redir += "?ajax=1";
		}
		try{xhr(redir, str, function(text) {
			if (upd == "" || text == "") location.reload(true); else document.getElementById(upd).innerHTML = text;
		});}catch(err){
			document.getElementById(upd).innerHTML = '<div class="errMsg">chyba'+error+'</div>'+backup;
		}
	}
	return true;
}
function sendFeedback(obj, a, b)
{
	if (document.getElementById('f_text').value != '')  {
		if (document.getElementById('addid').checked) document.getElementById('uix').value = document.getElementById('req').value+'|'+window.outerWidth+'|'+window.outerHeight+'|'+window.pageXOffset+'|'+window.pageYOffset;else document.getElementById('uix').value = "";
		document.getElementById('userinfonumber').value = '6';
		return !xhrPost(obj, a, b);
	} else alert('Fill TEXT!');
	return false;
}

function urlencode(str)
{
	//str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('&', '%26');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
	//return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}


function setCookie(c_name, value, expiredays)
{
	if (expiredays==null) expiredays = 1;
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	//var str = c_name+'=' +escape(value)+'; expires='+exdate.toGMTString()+'; path='+d;
	var str = c_name+'=' +escape(value)+'; expires='+exdate.toGMTString()+'';
	document.cookie = str;

}

function getCookie(c_name)
{
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + '=');
		if (c_start != -1) {
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(';', c_start);
			if (c_end == -1) c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return '';
}

function strip_accents(s) {
	var r = s.toLowerCase();
	r = r.replace(new RegExp("\\s", 'g'),"");
	r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
	r = r.replace(new RegExp("æ", 'g'),"ae");
	r = r.replace(new RegExp("çč", 'g'),"c");
	r = r.replace(new RegExp("[èéêëě]", 'g'),"e");
	r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
	r = r.replace(new RegExp("ñň", 'g'),"n");
	r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
	r = r.replace(new RegExp("œ", 'g'),"oe");
	r = r.replace(new RegExp("[ùúûüů]", 'g'),"u");
	r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
	r = r.replace(new RegExp("[ď]", 'g'),"d");
	r = r.replace(new RegExp("[ť]", 'g'),"t");
	r = r.replace(new RegExp("[ř]", 'g'),"r");
	r = r.replace(new RegExp("[š]", 'g'),"s");
	r = r.replace(new RegExp("[ž]", 'g'),"z");
	r = r.replace(new RegExp("\\W", 'g'),"");
	return r;
};


if (document.getElementById('q').value.length < 3) {
	document.getElementById('b').disabled = 'disabled';
	document.getElementById('b').className = 'disabled';
}

document.getElementById('q').autocomplete = 'off';
if (document.location.hash == ''&& focsb) document.getElementById('q').focus();
document.onmouseup = hs;

