var server_script = "http://www.auto.cz/diskuse/vlozit_prispevek.php";

var info = {
	showflame    : "zobrazit flame…",
	hideflame    : "skrýt flame…",
	mailecho1    : "mailto:vit.hlavacek@auto.cz,tomas.zajicek@auto.cz?subject=diskuse na auto.cz - problematicky prispevek&body=Dobrý den,%0A%0Ahlasim vyskyt problematickeho diskusniho prispevku na vasem serveru.%0A%0AProblematicky diskusni prispevek je zde:%0Ahttp://www.auto.cz/diskuse/",
	mailecho2    : "%0A%0APrispevek je neprijatelny, protoze:%0A%0A",
	insert       : "Vloží ",
	reaction     : "Reakce na příspěvek",
	insertform   : "Formulář pro přidání příspěvku",
	emptyfield   : "Nelze odeslat!\n\nTitulek i text příspěvku musí být vyplněny.",
	nolinks      : "Text obsahuje odkazy!\nJako neregistrovaný uživatel nemůžete vkládat odkazy (ošetření spamů).\nUpravte příspěvek tak, aby neobsahoval odkazy.",
	nolinksquery : "Text obsahuje odkazy!\nJako neregistrovaný uživatel nemůžete vkládat odkazy (ošetření spamů).\nChcete příspěvek odeslat bez odkazů?",
	censoredlink : "censored link",
	postok       : "Diskusní příspěvek byl přidán.",
	postko1      : "Diskusní příspěvek NEBYL vložen - k vložení příspěvku nejste autorizován.",
	postko2      : "Diskusní příspěvek se NEPODAŘILO vložit.",
	afterok            : "Diskusní příspěvek byl přidán.",
	afterko            : "Diskusní příspěvek NEBYL vložen - k vložení příspěvku nejste autorizován.",
	afterkointro       : "Diskusní příspěvek se NEPODAŘILO vložit.",
	afterkousednick    : "\n(Byl použit nick registrovaného uživatele!)",
	afterkofreelink    : "\n(Neregistrovaný uživatel nemůže vkládat příspěvky s odkazy!)",
	afterkowrongdisc   : "\n(neplatné určení diskuse nebo uzamčená diskuse)",
	afterkonooperation : "\n(neurčena operace)",
	afterkonotsaved    : "\n(nezdařil se zápis do DB)",
	afterkospam        : ""/*"\n(vyhodnoceno jako spam)"*/,
	afterkolinkinnick  : "\n(odkaz v nicku)",
	afterkolinkintitle : "\n(odkaz v nadpisu)",
	afterkoemptytitle  : "\n(prázdný nadpis)",
	afterkoemptytext   : "\n(prázdné tělo příspěvku)"
};

if(typeof(HTMLElement) != "undefined" && typeof(document.documentElement.innerText) != "string") {
	HTMLElement.prototype.__defineSetter__(
		"innerText",
		function(text) {
			while (this.hasChildNodes()) this.removeChild(this.firstChild);
			this.appendChild(document.createTextNode(text));
		}
	)
	HTMLElement.prototype.__defineGetter__(
		"innerText",
		function() {
			return this.textContent;
		}
	)
}

function info_po_vlozeni(postuid, inserted, errordesc) {
	// funkce pro vypsani hlasky o uspesnem/neuspesnem pokusu o vlozeni prispevku
	// je volana z dokumentu na serveru, ktery uklada prispevky "vlozit_prispevek.php/tpl"
	switch (inserted) {
		case 1:
			alert(info.afterok);
			zobraz(postuid); // zde zaremovat, v rodicovskem dokumentu ponechat
			break;
		case -1:
			alert(info.afterko);
			break;
		default:
			var text = info.afterkointro;
			text += (errordesc.afterkousednick    == 1)?info.afterkousednick:"";
			text += (errordesc.afterkofreelink    == 1)?info.afterkofreelink:"";
			text += (errordesc.afterkowrongdisc   == 1)?info.afterkowrongdisc:"";
			text += (errordesc.afterkonooperation == 1)?info.afterkonooperation:"";
			text += (errordesc.afterkonotsaved    == 1)?info.afterkonotsaved:"";
			text += (errordesc.afterkospam        == 1)?info.afterkospam:"";
			text += (errordesc.afterkolinkinnick  == 1)?info.afterkolinkinnick:"";
			text += (errordesc.afterkolinkintitle == 1)?info.afterkolinkintitle:"";
			text += (errordesc.afterkoemptytitle  == 1)?info.afterkoemptytitle:"";
			text += (errordesc.afterkoemptytext   == 1)?info.afterkoemptytext:"";
			alert(text);
	}
}

function mail_to(prispevek) {
	document.location = info.mailecho1+prispevek+info.mailecho2;
	return false;
}

function plain_window(url) {
	window.open(url,'w','toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,copyhistory=no,width=640,height=480');
	return false;
}

function diskuse_reakce(uid) {
	window.open("/diskuse/reakce.php?uid="+uid, "reakce", "toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,copyhistory=no,width=620,height=540");
}

function disk_flame(elm) {
	// funkce priradi nebo odebere stylovou tridu 'skryt' elementu UL diskuse
	var ul = elm.parentNode.parentNode.nextSibling;
	if (ul.tagName != "UL") { ul = ul.nextSibling; }
	var txt = elm.parentNode.previousSibling;
	if (txt.tagName != "DIV") { txt = txt.previousSibling; } // osetreni pripadneho "text"u
	if (ul.className.search(/skryt/gi) > -1) { // flame je skryty - zobrazime jej
		ul.className = ul.className.replace(/\s*skryt/gi, '');
		elm.firstChild.nodeValue = info.hideflame;
		txt.style.display = "block";
	} else { // flame je zobrazeny - skryjeme jej
		ul.className += ' skryt';
		elm.firstChild.nodeValue = info.showflame;
		txt.style.display = "none";
	}
}

function insert_smile(id, xicht) {
	document.getElementById(id).value += " "+xicht+" ";
	return false;
}

function generate_smiles(id_textoveho_pole) {
	var zapis = "";
	var xichty = new Array(":-)",";-)",":-|",";-\\",":-(",":'-(",":-O",":*)","&gt;:D",":-!","8-s","&gt;:-[]",":no:",":yes:");
	for (var a=0; a<xichty.length; a++) {
		zapis += '<a href="#" onclick="return insert_smile(\''+id_textoveho_pole+'\', \''+addslashes(xichty[a])+'\');" class="sm smile'+two_digits(a+1)+'" title="'+info.insert+xichty[a]+'"><b>'+xichty[a]+'<'+'/b><'+'/a> ';
	}
	document.getElementById("smiles").innerHTML = zapis;
}
function two_digits(cislo) {
	return "00".substr(cislo.toString().length)+cislo.toString();
}

function addslashes(vstup) {
	return vstup.replace(/(['"\\])/g, "\\\$1");
}

function odpovedet(elm, uid_rodice) {
	// funkce presune formular pro napsani reakce na misto pod prispevek, na nejz se reaguje
	var reakce_ul = document.getElementById("reakce-ul"); // obalovy tag UL formulare pro reakce
	var reakce_li = document.getElementById("reakce-li"); // obalovy tag LI formulare pro reakce
	var rodic = elm.parentNode.parentNode.parentNode; // tag LI prispevku, na ktery se reaguje
	var ul = rodic.getElementsByTagName("ul")[0]; // UL uz existujicich reakci na prispevek - nemusi existovat
	var frm = reakce_li.getElementsByTagName("form")[0]; // samotny formular pro reakci
	frm.uid_rodice.value = uid_rodice;
	frm.nadpis.value = ((frm.nadpis.value.substr(0,3) != "Re:")?"Re: ":"")+rodic.getElementsByTagName("h3")[0].lastChild.innerText;
	reakce_li.getElementsByTagName("h3")[0].innerHTML = info.reaction+":"; // nadpis formulare
	if (ul) { // prispevek, na ktery reagujeme, uz ma reakce
		reakce_li.className = "";
		ul.insertBefore(reakce_li, ul.firstChild);
	} else {
		reakce_li.className = "posledni";
		reakce_ul.appendChild(reakce_li);
		rodic.appendChild(reakce_ul);
	}
	if (frm.mailovat) { // u reakce na prispevek zalogovanym uzivatelem dame kurzor to textu prispevku
		frm.text.focus();
	} else { // u nezalogovaneho uzivatele na nick
		frm.nick.focus();
	}
	return false;
}

function zrusit_odpoved() {
	// funkce vrati formular pro odpoved az za samotnou diskusi
	var reakce_ul = document.getElementById("reakce-ul"); // obalovy tag UL formulare pro reakce
	var reakce_li = document.getElementById("reakce-li"); // obalovy tag LI formulare pro reakce
	var frm = reakce_li.getElementsByTagName("form")[0]; // samotny formular pro reakci
	var ted = frm;
	// vycistime vsechny polozky formulare
	frm.uid_rodice.value = "";
	frm.nick.value = "";
	if (frm.mailovat.checked) { frm.mailovat.checked = false; }
	frm.nadpis.value = "";
	frm.text.value = "";
	reakce_li.getElementsByTagName("h3")[0].innerHTML = info.insertform+":"; // nadpis formulare
	while ((ted.className != "diskuse") && (ted.parentNode)) {
		ted = ted.parentNode;
	}
	if (ted.className == "diskuse") { // pokud neni formular na svem miste, presuneme jej tam (pod diskusi)
		reakce_ul.appendChild(reakce_li);
		ted.parentNode.insertBefore(reakce_ul, ted.nextSibling);
	}
}

function odpovedet_chrono(elm, uid_rodice) {
	// varianta pro chronologicky zapis diskuse
	// funkce presune formular pro napsani reakce na misto pod prispevek, na nejz se reaguje
	var reakce_li   = document.getElementById("reakce-li"); // obalovy tag LI formulare pro reakce
	var rodic       = elm.parentNode; // tag LI prispevku, na ktery se reaguje
	if (rodic.nodeName!='LI') rodic = rodic.parentNode; // tag LI prispevku, na ktery se reaguje
	var frm         = reakce_li.getElementsByTagName("form")[0]; // samotny formular pro reakci
	var orig_nadpis = rodic.getElementsByTagName("h3")[0].lastChild.innerText; // nadpis prispevku, na ktery reagujeme

	frm.uid_rodice.value = uid_rodice;
	frm.nadpis.value = "Re: "+orig_nadpis.replace(/^(\s*Re:\s*)+\b/gi, "");
	if (reakce_li.getElementsByTagName("H3").length) reakce_li.getElementsByTagName("H3")[0].innerHTML = info.reaction+" '"+orig_nadpis+"':"; // nadpis formulare
	if (reakce_li.getElementsByTagName("legend").length) reakce_li.getElementsByTagName("legend")[0].innerHTML = info.reaction+" '"+orig_nadpis+"':"; // nadpis formulare
	if (rodic.nodeName != "LI") rodic = document.getElementById('p'+uid_rodice);
	rodic.parentNode.insertBefore(reakce_li, rodic.nextSibling);
	if (frm.mailovat) { // u reakce na prispevek zalogovanym uzivatelem dame kurzor to textu prispevku
		frm.text.focus();
	} else {
		if(frm.nick) { // u nezalogovaneho uzivatele na nick
			frm.nick.focus();
		}
	}
	return false;
}

function zrusit_odpoved_chrono() {
	// varianta pro chronologicky zapis diskuse
	// funkce vrati formular pro odpoved az za samotnou diskusi
	var reakce_ul = document.getElementById("reakce-ul"); // obalovy tag UL formulare pro reakce
	var reakce_li = document.getElementById("reakce-li"); // obalovy tag LI formulare pro reakce
	var frm = reakce_li.getElementsByTagName("form")[0]; // samotny formular pro reakci

	// vycistime vsechny polozky formulare
	if (frm.mailovat.checked) { frm.mailovat.checked = false; }
	frm.uid_rodice.value = "";
	frm.nick.value = "";
	frm.nadpis.value = "";
	frm.text.value = "";
	reakce_li.getElementsByTagName("H3")[0].innerHTML = info.insertform+":"; // nadpis formulare
	reakce_ul.appendChild(reakce_li);
}

function odeslat(frm) {
	if ((frm.nadpis.value.search(/\S+/gi) > -1) && (frm.text.value.search(/\S+/gi) > -1)) {
		// pokud nadpis a text obsahuji nejaky text (je splnena zakladni podminka), zkontrolujeme jeste pro nezalogovane, jestli jsou v textu obsazeny odkazy
		//vystup = true;
		vystup = (user_logged)?true:kontrola_odkazu(frm.text); // krontrola na pritomnost odkazu se provadi jen u nezalogovanych - podle stavu globalni promenne "user_logged", ktera musi byt nastavena
	} else {
		// pokud je nadpis nebo text prazdny (bile znaky se nepocitaji), zobrazime hlasku a formular se neodesle
		alert(info.emptyfield);
		vystup = false;
	}
	return vystup;
}

function kontrola_odkazu(field) {
	// funkce ocekava jako vstup odkaz na formularovy prvek (textarea/input), ve kterem bude provedena kontrola na pritomnost odkazu
	// pro vystupni hodnotu "true" nesmi byt v textu odkazy, jinak funkce vrati "false"
	if (field.value.search(/http:\/\/|https:\/\/|mailto:|ftp:\/\//) != -1) {
		alert(info.nolinks);
		return false;
	} else {
		return true;
	}
}

function kontrola_odkazu_old(field) {
	// funkce ocekava jako vstup odkaz na formularovy prvek (textarea/input), ve kterem bude provedena kontrola na pritomnost odkazu
	// pro vystupni hodnotu "true" nesmi byt v textu odkazy - pokud existuji budou odstraneny, nebo funkce vrati "false"
	if (field.value.search(/http:\/\/|mailto:|ftp:\/\//) != -1) {
		if (confirm(info.nolinksquery)) {
			field.value = field.value.replace(/(http:\/\/|https:\/\/|mailto:|ftp:\/\/)[a-zA-Z0-9\-\._~:\/\?\#\[\]@!\$&'\(\)\*\+,;=]+/, "("+info.censoredlink+")")
			return true;
		} else {
			return false;
		}
	} else {
		return true;
	}
}

function zobraz(uid) {
	var adresa = document.URL.replace(/\#.+$/gi, "")+"#p"+uid;
	//alert("NOVÁ ADRESA: "+adresa);
	//window.location.href = adresa;
	//window.location.reload(true);
	//var w = window.open(adresa, "_top"); // nejprve zkusime provest reload otevrenim upravene adresy do stavajicicho okna (pokud maji prohlizece blokovane otevirani oken, musi se provest osetreni)
	//if (w) {
		//alert("okno JE");
	//} else { // pokud okno nebylo otevreno (nejspis kvuli blokovani oteviranych oken browserem), provedeme reload pomoci odeslani prazdneho formulare s upravenou adresou
		//alert("okno NENÍ");
		document.dsksbmt2.action = adresa;
		document.dsksbmt2.submit();
	//}
}

function prispevek_vlozen(vlozen) {
	switch (vlozen) {
		case 1:
			alert(info.postok);
			break;
		case -1:
			alert(info.postko1);
			break;
		default:
			alert(info.postko2);
	}
}

function server(script, akce, data) {
	// funkce pro volani akci na serveru pomoci scriptu, jehoz adresa je v promenne "script"
	// akce je nazev pro promennou $akce, podle niz se na serverovem scriptu rozhoduje o behu
	// data je balik libovolneho poctu promennych pro prenos na server - ve tvaru {nazev:"hodnota", nazev2:"hodnota2", …}
	// serverovy script vygeneruje potrebny JS zapis akce, ktera bude po jeho nacteni ihned vykonana
	var prenos = "?akce="+akce;
	for (var idx in data) prenos += "&"+idx+"="+data[idx];
	var hlavicka   = document.getElementsByTagName('head')[0];
	var osm_script = document.getElementById('osm-server');
	if (osm_script) hlavicka.removeChild(osm_script);
	osm_script         = document.createElement('script');
	osm_script.id      = 'osm-server';
	osm_script.charset = 'windows-1250';
	osm_script.src     = script+prenos;
	hlavicka.appendChild(osm_script);
}
