if((1.1).toLocaleString() == "1")
{
	Number.prototype.toLocaleString = function()
	{
		return this.toString().replace(/\./, ",");
	};
}

var KaV = {
	init: function()
	{
		KaV.label("user-name");
		KaV.label("user-pass");
		KaV.seznam();
		KaV.naseptavac();
		KaV.sms();
		KaV.ceny();
		KaV.ochrana();
		
		KaV.firma.sablony.sms();
		KaV.firma.sablony.naseptavace();
	},
	ochrana: function()
	{
		var e = element("hovor");
		if(!e) return false;
		e.onsubmit = function()
		{
			var pole = ["fnumber-from", "mf-contact-free"];
			if(!element("number-list")) pole.push("mf-contact");
			for(var i = 0; i < pole.length; i++)
				if(element(pole[i]) && element(pole[i]).value.search(/^\s*\+?(\s*\d)+\s*$/) == -1) return false;
			if(this.blockSubmit) return false;
		};
	},
	label: function(id)
	{
		var e = element(id);
		if(!e) return false;
		e.onfocus = function()
		{
			element(this.parentNode).classes.add("hide-label");
		};
		e.onblur = function()
		{
			if(this.value.trim() == "") element(this.parentNode).classes.remove("hide-label");
		};
		e.onkeydown = function()
		{
			e.onfocus();
			e.onkeydown = null;
		};
		if(e.value.trim() != "") element(e.parentNode).classes.add("hide-label");
	},
	telefon: function(a)
	{
		var tel = a.firstChild.data;
		var m = tel.match(/^(\+\d+)\s([\d\s]+)$/);
		element("preset").value = m[1];
		element("mf-destination").value = m[1];
		element("mf-contact").value = m[2];
		element("mf-destination").onchange && element("mf-destination").onchange();
		return true;
	},
	seznam: function()
	{
		var t = element("phonebook");
		var a = element("alphabet");
		if(!t || !a) return false;
		var aa = a.getElementsByTagName("a");
		var ted = location.hash.substr(1).toUpperCase();
		if(ted == "\u00D0" || ted == "%D0") ted = "\u0110";
		for(var i = 0, l = aa.length; i < l; i++)
		{
			(function()
			{
				var b = (i == l - 1);
				aa[i].onclick = function()
				{
					var p = this.firstChild.data;
					t.classes.reset().remove("show-top").add("show-" + (b ? "vse" : p));
					element("extract-add").classes[b ? "remove" : "add"]("h");
					return false;
				};
				if(aa[i].firstChild.data == ted)
				{
					t.classes.remove("show-top").add("show-" + ted);
					element("extract-add").classes.remove("h");
				}
			})();
		}
	},
	naseptavac: function()
	{
		var e = element("mf-contact");
		if(!e) return false;
		var sms = element("sendsms-text");
		var wrap = element(document.createElement("span"));
		wrap.classes.add("pro-naseptavac");
		e.parentNode.insertBefore(wrap, e);
		wrap.appendChild(e);
		KaV.naseptani = document.createElement("ul");
		wrap.appendChild(KaV.naseptani);
		var timeoutID = 0;
		var update = function()
		{
			clearTimeout(timeoutID);
			timeoutID = setTimeout(function()
			{
				KaV.nactiScript("_listener" + (sms ? "-sms" : "") + ".asp?word=" + e.value.replaceAll("&", "%26") + "&prefix=" + encodeURIComponent(element("preset").value));
			}, 50);
		};
		e.onkeypress = update;
		e.onkeydown = update;
		e.onkeyup = update;
		e.onfocus = function()
		{
			clearTimeout(this.timeout);
			wrap.classes.add("naseptavac-ukazat");
		}
		e.onblur = function()
		{
			clearTimeout(this.timeout);
			e.timeout = setTimeout(function()
			{
				wrap.classes.remove("naseptavac-ukazat");
			}, 100);
		}
		KaV.iframe = document.createElement("iframe");
		wrap.appendChild(KaV.iframe);
		KaV.naseptany = 0;
		e.onkeydown = function(e)
		{
			var event = window.event || e;
			var odkazy = KaV.naseptani.getElementsByTagName("a");
			var pocet = odkazy.length;
			if(event.keyCode == 13)
			{
				if(KaV.naseptany)
				{
					KaV.telefon(element(odkazy[KaV.naseptany - 1]));
					if(element("send-data")) element("send-data").focus();
					/*
					this.onkeypress = function()
					{
					this.onkeypress = null;
					return false;
					};
					this.onkeyup = function()
					{
					this.onkeyup = null;
					return false;
					};
					return false;
					*/
					var a = this.form.onsubmit;
					this.form.onsubmit = function()
					{
						this.onsubmit = a;
						return false;
					};
				}
			}
			if(event.keyCode != 38 && event.keyCode != 40) return true;

			if(KaV.naseptany)
			{
				element(odkazy[KaV.naseptany - 1]).classes.remove("selected");
				element(odkazy[KaV.naseptany - 1].parentNode).classes.remove("selected")
			}
			KaV.naseptany = (KaV.naseptany + event.keyCode - 39 + pocet + 1) % (pocet + 1);
			if(KaV.naseptany)
			{
				element(odkazy[KaV.naseptany - 1]).classes.add("selected");
				element(odkazy[KaV.naseptany - 1].parentNode).classes.add("selected")
			}
		};
	},
	naseptej: function(data)
	{
		if(data.vstup[0] != element("preset").value || data.vstup[1] != element("mf-contact").value) return false;
		KaV.naseptany = 0;
		var v = [];
		var telefonLink = function(tel)
		{
			return "<a class=\"" + tel.typ + "\" href=\"#" + tel.prefix + " " + tel.cislo + "\" onmousedown=\"KaV.telefon(this)\" onclick=\"return false\">" + tel.prefix + " " + tel.cislo + "</a>";
		};

		for(var i = 0; i < data.data.length; i++)
		{
			var k = data.data[i];
			var tel = [];
			for(var j = 0; j < k.telefony.length; j++) tel.push(telefonLink(k.telefony[j]));
			v.push("<li>" + k.jmeno + "" + tel.join("") + "</li>");
		}
		var vh = v.join("");
		KaV.naseptani.innerHTML = vh;
		KaV.iframe.style.visibility = KaV.naseptani.style.visibility = vh ? "visible" : "";
		KaV.iframe.style.height = KaV.naseptani.offsetHeight + "px";
	},
	ceny: function()
	{
		if(!element("netprice") || !element("hovor")) return false;
		var e = element("mf-destination");
		var f = element("hovor")["number-from"];
		if(!f[0]) f = [f];
		var sms = element("sendsms-text");
		if(!e) return false;
		var update = function()
		{
			var from = 0;
			while(!f[from].checked) from++;
			KaV.nactiScript("http://klikniavolej.idnes.cz/_netprices" + (sms ? "-sms" : "") + ".asp?from=" + encodeURIComponent(f[from].value) + "&to=" + encodeURIComponent(e.value));
		};

		for(var i = 0; i < f.length; i++)
		{
			f[i].onclick = update;
			f[i].onchange = update;
		}
		e.onchange = function()
		{
			element('preset').value = element("mf-destination").value;
			update();
		};
		e.onclick = update;
	},
	cena: function(data)
	{
		var e = element("mf-destination");
		if(data.vstup[1] && data.vstup[1] != e.value) return false;
		var sms = element("sendsms-text");

		if(!sms)
		{
			var f = element("hovor")["number-from"];
			if(!f[0]) f = [f];
			var from = 0;
			while(!f[from].checked) from++;
			if(data.vstup[0] != f[from].value) return false;
		}
		KaV.cenaTed = parseFloat(data.cena);
		element("netprice").firstChild.data = KaV.cenaTed.toLocaleString();

		if(!sms) return true;
		if(element("celk-cena")) element("celk-cena").innerHTML = ((KaV.pocetSmsTed || 1) * KaV.cenaTed).toLocaleString();
	},
	sms: function(index)
	{
		var kusid = index ? "-" + index : "";
		var sms = element("sendsms-text" + kusid);
		if(!sms) return false;
		if(sms.id != "sendsms-text" + kusid) return false;
		var limit = element("znaku-zbyva" + kusid).firstChild.data;
		var limitSms = 153;
		var vzor = element("sms-nepiseme" + kusid).innerHTML;
		var prepocitej = function()
		{
			var v = sms.value.length;
			var s = Math.ceil((v <= 160) ? 1 : (v / limitSms)) || 1;
			if(v == sms.lastLength) return true;
			sms.lastLength = v;
			element("poc-znaku" + kusid).innerHTML = v;
			element("znaku-zbyva" + kusid).innerHTML = limit - v;
			if(limit - v >= 0)
			{
				element("sms-piseme" + kusid).style.display = "";
				element("sms-nepiseme" + kusid).style.display = "none";
				sms.form.blockSubmit = false;
			}
			else
			{
				element("sms-piseme" + kusid).style.display = "none";
				element("sms-nepiseme" + kusid).style.display = "";
				element("sms-nepiseme" + kusid).innerHTML = vzor.replaceAll(" X ", " " + (v - limit) + " ");
				sms.form.blockSubmit = true;
			}
			if(s == sms.lastSms) return true;
			sms.lastSms = s;
			sms.pocetSmsTed = s;
			element("poc-sms" + kusid).innerHTML = s;
			if(element("celk-cena" + kusid)) element("celk-cena" + kusid).innerHTML = (sms.pocetSmsTed * KaV.cenaTed).toLocaleString();
		}
		sms.onkeypress = prepocitej;
		sms.onkeyup = prepocitej;
		prepocitej();
		return true;
	},
	hovor: function(data)
	{
		if(KaV.preload) KaV.preload();
		if(KaV.lastVolani != data.body) element("volani").innerHTML = data.body;
		KaV.lastVolani = data.body;
		if(data.redirect)
		{
			if(element("konec-hovoru")) element("konec-hovoru").destroy();
			setTimeout(function()
			{
				location.href = data.redirect;
			}, (data.stav == 2) ? 0 : 5000);
		}
		else
		{
			if(data.stav == 0 || data.stav == 2) return false;
			setTimeout(function() 
			{
			    KaV.nactiScript("" + (element("kav-pop") ? "_call-popup" : "_call") + ".asp?id=" + encodeURIComponent(data.callid) + "&url=" + encodeURIComponent(data.url) + "&price=" + encodeURIComponent(data.price) + "&stav=" + (KaV.zavesit ? (KaV.zavesit = false, 0) : 1) + (data.popuplogin ? "&popuplogin=" + data.popuplogin : "") + (data.partner ? "&partner=" + data.partner : "") + (data.callcode ? "&callcode=" + data.callcode : "") + "&rnd=" + Math.random());
				//KaV.nactiScript("/_call.asp?id=" + encodeURIComponent(data.callid) + "&url=" + encodeURIComponent(data.url) + "&price=" + encodeURIComponent(data.price) + "&stav=" + (KaV.zavesit ? (KaV.zavesit = false, 0) : 1) + "&rnd=" + Math.random());
			}, 1000);
		}
	},
	nactiScript: function(uri)
	{
		var s = document.createElement("script");
		s.src = uri;
		if(!KaV.lastScript)
		{
			document.body.insertBefore(s, document.body.firstChild);
		}
		else
		{
			if(s.src != KaV.lastScript.src)
				document.body.replaceChild(s, KaV.lastScript);
			else
				return true;
		}
		KaV.lastScript = s;
	},
	preload: function()
	{
		var img = ["stroj", "p_telefon_zvoni-sm", "p_telefon_zvoni", "p_telefon_vola-sm", "p_telefon_volan-sm", "p_telefon_volan", "p_telefon_vola", "p_telefon_konec-sm", "p_telefon_konec", "l_telefon_zvoni-sm", "l_telefon_zvoni", "l_telefon_vola-sm", "l_telefon_volan-sm", "l_telefon_volan", "l_telefon_vola", "l_telefon_konec-sm", "stroj-sm", "l_telefon_konec"];
		for(var i = 0; i < img.length; i++)
		{
			var t = new Image();
			t.src = "http://g.idnes.cz/o/klikniavolej/process/" + img[i] + ".gif";
		}
		KaV.preload = undefined;
	},
	formular: function(kde, fraze)
	{
		var vstupy = {
			"registrace":
			{
				"us-login": function()
				{
					if(this.value.length < 6) return fraze["prihlasovaci-jmeno-kratke"];
					var m = this.value.trim().match(new RegExp("[^0-9a-z]", "ig"));
					if(m)
					{
						var m2 = [];
						for(var i = 0, u = {}; i < m.length; i++)
							if(!u[m[i]])
						{
							m2.push(m[i]);
							u[m[i]] = true;
						}
						return fraze["prihlasovaci-jmeno-znaky"] + " " + m2.join(", ").replace(/ /g, "mezera") + ".";
					}
					return Forms.Checker.OK;
				},
				"us-pwd": function()
				{
					Forms.Checker.input(this.form["us-pwd2"]);
					if(this.value.length < 6) return fraze["heslo-kratke"];
					return Forms.Checker.OK;
				},
				"us-pwd2": function()
				{
					if((this.value != this.form["us-pwd"].value)) return fraze["heslo-jine"];
					return Forms.Checker.OK;
				},
				"us-mail": function()
				{
					if(!this.value.trim().match(/^([-_0-9a-z]+(\.[-_0-9a-z]+)*@[-_0-9a-z\.]+\.\w{2,6})$/i)) return fraze["email-spatne"];
					return Forms.Checker.OK;
				},
				"overeni": function()
				{
					if(!this.value.match(new RegExp("[0-9a-z]{5}", "i"))) return fraze["overeni-spatne"];
					return null;
				},
				"us-name": function()
				{
					return this.value.length >= 1 ? Forms.Checker.OK : fraze["jmeno-kratke"];
				},
				"us-surname": function()
				{
					return this.value.length >= 1 ? Forms.Checker.OK : fraze["prijmeni-kratke"];
				},
				"agreement": function()
				{
					return this.checked ? Forms.Checker.OK : fraze["pravidla"];
				}
			},
			"login-email":
			{
				"chg-new": function()
				{
					Forms.Checker.input(this.form["chg-new2"]);
					if(!this.value.trim().match(/^([-0-9a-z]+(\.[-0-9a-z]+)*@[-0-9a-z\.]+\.\w{2,6})$/i)) return fraze["email-spatne"];
					return Forms.Checker.OK;
				},
				"chg-new2": function()
				{
					if((this.value != this.form["chg-new"].value)) return fraze["email-jiny"];
					return Forms.Checker.OK;
				}
			},
			"login-heslo":
			{
				"chg-new": function()
				{
					Forms.Checker.input(this.form["chg-new2"]);
					if(this.value.length < 6) return fraze["heslo-kratke"];
					return Forms.Checker.OK;
				},
				"chg-new2": function()
				{
					if((this.value != this.form["chg-new"].value)) return fraze["heslo-jine"];
					return Forms.Checker.OK;
				}
			}
		};
		Forms.Checker.form(kde, vstupy[kde], fraze, {
			"img-true": "http://g.idnes.cz/o/klikniavolej/in-true.gif",
			"img-false": "http://g.idnes.cz/o/klikniavolej/in-false.gif"
		});
	}
}
Starter.add(KaV.init);

Forms.Checker = {
	OK: Math.random(),
	Wait: this.OK + 1,
	form: function(id, vstupy, fraze, param)
	{
		var f = element(id);
		if(!f) return false;
		f.onsubmit = function()
		{
			var r = true;
			for(var p in vstupy)
			{
				if(!f[p]) continue;
				if(!f[p].validateStatus)
				{
					f[p].hadValue = true;
					Forms.Checker.input(f[p]);
				}
				if(f[p].validateStatus == Forms.Checker.Wait)
				{
					Timer.once(1000, function()
					{
						if(f.onsubmit()) f.submit();
					});
				}
				if(f[p].validateStatus && f[p].validateStatus != Forms.Checker.OK)
				{
					r = false;
				}
			}
			return r;
		};
		for(var p in vstupy)
		{
			if(!f[p]) continue;
			f[p].onfocus = function()
			{
				element(this.parentNode).classes.add("bublina-ukazana");
			};
			f[p].onblur = function()
			{
				element(this.parentNode).classes.remove("bublina-ukazana");
				Forms.Checker.input(this);
			};
			f[p].onkeyup = f[p].onclick = f[p].onchange = function(e)
			{
				Forms.Checker.input(this);
			};
			f[p].validateValue = vstupy[p];
			f[p].validateParam = param;
			f[p].validateImg = element(document.createElement("img"));
			f[p].validateImg.src = "http://g.idnes.cz/u/free.gif";
			f[p].validateDiv = element(document.createElement("span"));
			f[p].validateDiv.classes.add("na-chyby");
			// f[p].validateDiv.style.display = "none";
			f[p].parentNode.appendChild(f[p].validateDiv);
			f[p].parentNode.insertBefore(f[p].validateImg, f[p].nextSibling);
		}
	},
	input: function(i)
	{
		if(i.validateValue)
		{
			var r = (i.value || i.hadValue) ? i.validateValue() : null;
			if(i.value) i.hadValue = true;
			i.validateStatus = r;
			if(!r)
			{
				i.validateImg.src = "http://g.idnes.cz/u/free.gif";
				i.validateDiv.style.display = "none";
			}
			else if(r == Forms.Checker.OK)
			{
				i.validateImg.src = i.validateParam["img-true"];
				i.validateDiv.style.display = "none";
			}
			else
			{
				i.validateImg.src = i.validateParam["img-false"];
				i.validateDiv.style.display = "";
				i.validateDiv.innerHTML = r;
			}
		}
		else
		{
			i.validateStatus = Forms.Checker.OK;
		}
	}	
}

KaV.firma = {
	administrace: {
		upravit: function(a)
		{
			var o = a;
			while(o.parentNode && o.tagName != "TBODY") o = o.parentNode;
			element(o).classes.remove("entry");
			return true;
		},
		blokovat: function(a, cmd, id, login)
		{
			var r = Loader.getXHR[""]();
			r.open("POST", a.href, true);
			r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			r.onreadystatechange = function()
			{
				if(r.readyState != 4) return;
				a.parentNode.innerHTML = r.responseText;
				delete r;
			};
			r.send("cmd=" + cmd + "&id=" + id + "&login=" + login);
			return true;
		},
		ulozit: function(a)
		{
			var r = Loader.getXHR[""]();
			r.open("POST", a.href.replace(/x/g, ""), true);
			r.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
			r.onreadystatechange = function()
			{
				if(r.readyState != 4) return;
				if(r.responseText == "0") return alert("System error 0x06871673657:266721.");
				var o = a;
				while(o.parentNode && o.tagName != "TBODY") o = o.parentNode;
				element(o).classes.add("entry");

				var td = o.getElementsByTagName("td");
				td[1].innerHTML = par["name"].replace(/[&<]/g, "$&<!>");
				td[2].innerHTML = par["surname"].replace(/[&<]/g, "$&<!>");
				td[3].innerHTML = par["limit"];
				delete r;
			};

			var o = a;
			while(o.parentNode && o.tagName != "TR") o = o.parentNode;

			var form = [];
			var par = {}
			for(var j = 0; j < 2; j++)
			{
				for(var i = 0, e; e = o.getElementsByTagName(["input", "select"][j])[i]; i++)
				{
					form.push(e.name + "=" + encodeURIComponent(e.value));
					par[e.name] = e.tagName == "SELECT" ? e.options[e.selectedIndex].text : e.value;
					if(!e.value) return true;
				}
			}
			r.send(form.join("&"));
			return true;
		},
		smazat: function(a, cmd, login)
		{
			var r = Loader.getXHR[""]();
			r.open("POST", a.href, true);
			r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			r.onreadystatechange = function()
			{
				if(r.readyState != 4) return;
				if(r.responseText == "0") return alert("System error 0x01564896314:165842.");

				var o = a;
				while(o.parentNode && o.tagName != "TBODY") o = o.parentNode;
				o.parentNode.removeChild(o);

				delete r;
			};
			r.send("cmd=" + cmd + "&login=" + login);
			return true;
		}
	},
	zelena: {
		mnoz: function(id)
		{
			var p = element(id);
			var o = p.cloneNode(true);
			var naKalendar;
			for(var j = 0; j < 2; j++)
			{
				for(var i = 0, e; e = o.getElementsByTagName(["input", "select"][j])[i]; i++)
				{
					e.name = e.name.replace(/\d+$/, function(m) { return parseInt(m) + 1 });
					e.id = e.id.replace(/\d+$/, function(m) { return parseInt(m) + 1 });
					if(e.name.match(/^phone\-[^-]+\-id\-\d+$/)) e.value = "0";
					if(e.name.match(/^phone\-[^-]+\-state\-\d+$/)) e.checked = false;
					if(e.name.startsWith("day-exact"))
					{
						var rodic = e.parentNode;
						rodic.parentNode.insertBefore(e, rodic);
						rodic.parentNode.removeChild(rodic);
						naKalendar = e.name.match(/\d+$/)[0];
					}
				}
			}
			p.id = '';
			p.parentNode.insertBefore(o, p.nextSibling);

			if(naKalendar) KaV.firma.zelena.kalendar(KaV.firma.zelena.datum, naKalendar);
			return true;
		},
		kalendar: function(datum, start)
		{
			var i = start || 1;
			if(!KaV.firma.zelena.datum) KaV.firma.zelena.datum = datum;
			while(element("day-exact-from-" + i))
			{
				new Forms.Calendar({ input: "day-exact-from-" + i, showYears: true, disablePast: datum })
				new Forms.Calendar({ input: "day-exact-to-" + i, showYears: true, disablePast: datum })
				i++;
			}
		},
		nastavKod: function(id, typ)
		{
			var e = element("button-list");
			if(!e) return;
			var inp = e.getElementsByTagName("input");
			for(var i = 0, radio; radio = inp[i]; i++)
			{
				if(radio.type != "radio") continue;
				(function(radio){
					radio.onclick = function()
					{
						element("button-show").value = "<script src=\"http://g.idnes.cz/js/kav/tlacitko.js?id=" + id + "&type=" + typ + "&styl=" + radio.value + "\"></script>";
					}
					var labelImg;
					if(labelImg = radio.parentNode.getElementsByTagName("img")[0])
					{
						labelImg.onclick = function()
						{
							radio.checked = true;
							radio.onclick();
						}
					}
				})(radio)
			}
		}
	},
	vizitka: {
		edituj: function(values)
		{
			for(var i = 0; i < 3; i++)
				element(["smscard-cmd", "smscard-template-id", "smscard-id"][i]).value = values[i];
			element("smscard-cmd").form.submit();
			return true;
		},
		smazat: function(a, cmd, login, id)
		{
			var r = Loader.getXHR[""]();
			r.open("POST", a.href, true);
			r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			r.onreadystatechange = function()
			{
				if(r.readyState != 4) return;
				if(r.responseText == "0") return alert("System error 0x0798416584:8715.");

				var o = a;
				while(o.parentNode && o.tagName != "LI") o = o.parentNode;
				var ch = o.getElementsByTagName("input");
				for(var i = 0, e; e = ch[i]; i++)
				{
					if(e.type != "checkbox") continue;
					if(e.checked) e.vycisti();
				}
			
				o.parentNode.removeChild(o);

				delete r;
			};
			r.send("cmd=" + cmd + "&login=" + login + "&id=" + id);
			return true;
		},
		nastav: function()
		{
			var sk = 0;
			while(element("crd-1-" + (++sk) + ""))
				(function()
				{
					var ch = [], e, p = 0, checked = false;
					while(e = element("crd-" + (++p) + "-" + sk))
					{
						ch.push(e);
						if(e.checked) checked = true;
						e.disabled = false;
						e.vycisti = function()
						{
							for(var i = 0, e; e = ch[i]; i++)
								e.disabled = false;
						};
						e.onclick = function()
						{
							for(var i = 0, e; e = ch[i]; i++)
								if(e != this) e.disabled = this.checked;
						};
					}
					if(checked)
						for(var i = 0, e; e = ch[i]; i++)
							e.disabled = !e.checked;
				})();
		}
	},
	sms: {
		naplnit: function(a, cisla)
		{
			var form = a;
			while(form.parentNode && form.tagName != "FORM") form = form.parentNode;
			var list = form["mf-contacts"].parentNode;

			var pridat = function(cislo, jmeno)
			{
				var p = document.createElement("p");
				var doted = form["mf-contacts"].value ? form["mf-contacts"].value.split(/;|\r?\n/) : [];
				if(doted.indexOf(cislo) > -1) return false;
//				jmeno = jmeno || cislo;
				p.innerHTML = "<span>" + cislo + "</span>" + (jmeno ? "<span>" + jmeno + "</span> " : "") + "<a href=\"#\" onclick=\"return !KaV.firma.sms.smazat(this, '" + cislo + "')\">Smazat</a>";
				// alert(p.innerHTML);
				list.appendChild(p);
				doted.push(cislo);
				form["mf-contacts"].value = doted.join("\n");
			}
			
			if(!cisla)
			{
				pridat(form["mf-prefix"].value + form["mf-suffix"].value);
				form["mf-suffix"].value = "";
			}
			else
			{
				list.innerHTML = "<textarea name=\"mf-contacts\"></textarea>";
				for(var i = 0; i < cisla.length; i++)
					pridat(cisla[i][0], cisla[i][1]);
			}
			return true;
		},
		smazat: function(a, cislo)
		{
			var form = a;
			while(form.parentNode && form.tagName != "FORM") form = form.parentNode;

			// var cislo = a.parentNode.getElementsByTagName("span")[0].innerHTML;
			var doted = form["mf-contacts"].value.split(/;|\r?\n/);
			doted.splice(doted.indexOf(cislo), 1);
			form["mf-contacts"].value = doted.join("\n");
			
			a.parentNode.parentNode.removeChild(a.parentNode);
			return true;
		},
		manualne: function(checkbox)
		{
			var form = checkbox.form;
			element(form["mf-contacts"].parentNode).classes[checkbox.checked ? "add" : "remove"]("number-list-manual");
			if(checkbox.checked) return false;
			var doted = form["mf-contacts"].value ? form["mf-contacts"].value.split(/;|\n\r?/) : [];
			for(var i = 0; i < doted.length; i++) doted[i] = [doted[i]];
			KaV.firma.sms.naplnit(checkbox, doted);
			return false;
		}
	},
	sablony: {
		ulozit: function(a, cmd)
		{
			var o = a;
			while(o.parentNode && o.tagName != "FORM") o = o.parentNode;
			if(!o["f2-name"].value) return true;

			var r = Loader.getXHR[""]();
			r.open("POST", a.href.replace(/x/g, ""), true);
			r.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
			r.onreadystatechange = function()
			{
				if(r.readyState != 4) return;
				if(r.responseText == "0") return alert("System error 0x04191667314:491673.");
				element(o.parentNode).classes.toggle("h");
				o.parentNode.parentNode.getElementsByTagName("a")[0].firstChild.data = o["f2-name"].value;
				delete r;
			};

			var form = ["cmd=" + cmd];
			for(var j = 0; j < 3; j++)
			{
				for(var i = 0, e; e = o.getElementsByTagName(["input", "select", "textarea"][j])[i]; i++)
				{
					form.push(e.name + "=" + encodeURIComponent(e.value));
				}
			}
			r.send(form.join("&"));
			return true;
		},
		smazat: function(a, cmd, id)
		{
			var r = Loader.getXHR[""]();
			r.open("POST", a.href, true);
			r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			r.onreadystatechange = function()
			{
				if(r.readyState != 4) return;
				if(r.responseText == "0") return alert("System error 0x04964167431:998911.");

				var o = a;
				while(o.parentNode && o.tagName != "LI") o = o.parentNode;
				o.parentNode.removeChild(o);

				delete r;
			};
			r.send("cmd=" + cmd + "&id=" + id);
			return true;
		},
		sms: function()
		{
			var i = 1;
			while(KaV.sms(i++));
		},
		naseptavace: function()
		{
			var i = 1;
			while(KaV.firma.sablony.naseptavac(i++));
		},
		naseptavac: function(index)
		{
			var e = element("mf-contact-" + index);
			if(!e) return false;
			var wrap = element(document.createElement("span"));
			wrap.classes.add("pro-naseptavac");
			e.parentNode.insertBefore(wrap, e);
			wrap.appendChild(e);
			e.naseptani = document.createElement("ul");
			wrap.appendChild(e.naseptani);
			var timeoutID = 0;
			var update = function()
			{
				clearTimeout(timeoutID);
				timeoutID = setTimeout(function()
				{
					KaV.nactiScript("_listener-mass-sms.asp?word=" + e.value.replaceAll("&", "%26") + "&order=" + index + "&prefix=" + encodeURIComponent(element("preset-" + index).value));
				}, 50);
			};
			e.onkeypress = update;
			e.onkeydown = update;
			e.onkeyup = update;
			e.onfocus = function()
			{
				clearTimeout(this.timeout);
				wrap.classes.add("naseptavac-ukazat");
			}
			e.onblur = function()
			{
				clearTimeout(this.timeout);
				e.timeout = setTimeout(function()
				{
					wrap.classes.remove("naseptavac-ukazat");
				}, 100);
			}
			e.iframe = document.createElement("iframe");
			wrap.appendChild(e.iframe);
			e.naseptany = 0;
			e.onkeydown = function(ev)
			{
				var event = window.event || ev;
				var odkazy = e.naseptani.getElementsByTagName("a");
				var pocet = odkazy.length;
				if(event.keyCode == 13)
				{
					if(e.naseptany)
					{
						KaV.firma.sablony.telefon(index, element(odkazy[e.naseptany - 1]));
						
						var a = this.form.onsubmit;
						this.form.onsubmit = function()
						{
							this.onsubmit = a;
							return false;
						};
					}
				}
				if(event.keyCode != 38 && event.keyCode != 40) return true;

				if(e.naseptany)
				{
					element(odkazy[e.naseptany - 1]).classes.remove("selected");
					element(odkazy[e.naseptany - 1].parentNode).classes.remove("selected")
				}
				e.naseptany = (e.naseptany + event.keyCode - 39 + pocet + 1) % (pocet + 1);
				if(e.naseptany)
				{
					element(odkazy[e.naseptany - 1]).classes.add("selected");
					element(odkazy[e.naseptany - 1].parentNode).classes.add("selected")
				}
			};
			return true;
		},
		naseptej: function(index, data)
		{
			var e = element("mf-contact-" + index);
			if(!e) return false;
			if(data.vstup[0] != element("preset-" + index).value || data.vstup[1] != element("mf-contact-" + index).value) return false;
			e.naseptany = 0;
			var v = [];
			var telefonLink = function(tel)
			{
				return "<a class=\"" + tel.typ + "\" href=\"#" + tel.prefix + " " + tel.cislo + "\" onmousedown=\"KaV.firma.sablony.telefon(" + index + ", this)\" onclick=\"return false\">" + tel.prefix + " " + tel.cislo + "</a>";
			};

			for(var i = 0; i < data.data.length; i++)
			{
				var k = data.data[i];
				var tel = [];
				for(var j = 0; j < k.telefony.length; j++) tel.push(telefonLink(k.telefony[j]));
				v.push("<li>" + k.jmeno + "" + tel.join("") + "</li>");
			}
			var vh = v.join("");
			e.naseptani.innerHTML = vh;
			e.iframe.style.visibility = e.naseptani.style.visibility = vh ? "visible" : "";
			e.iframe.style.height = e.naseptani.offsetHeight + "px";
		},
		telefon: function(index, a)
		{
			var tel = a.firstChild.data;
			var m = tel.match(/^(\+\d+)\s([\d\s]+)$/);
			element("preset-" + index).value = m[1];
			element("mf-destination-" + index).value = m[1];
			element("mf-contact-" + index).value = m[2];
			element("mf-destination-" + index).onchange && element("mf-destination-" + index).onchange();
			return true;
		}
	}
}

try
{
	if(top !== self && html.offsetWidth < 800) html.classes.add("ve-framu");
}
catch(e)
{
	if(html.offsetWidth < 800) html.classes.add("ve-framu");
}