
/*

	Kod oznacovani textu v textarea.
	Autor: Metju - m123@zoznam.sk
	Zalozeno na MediaWiki.
	
*/

var clientPC = navigator.userAgent.toLowerCase(); // zistenie názvu prehliadača
// prehliadače na jadra "Gecko", ktoré nie sú podporované
var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));

// funkcia, ktorá vytovrí tlačítko
function tlacitko(textarea_name, cesta, imageFile, speedTip, tagOpen, tagClose, sampleText) {
	if (!document.selection && !is_gecko) {
		return false;
	}
  // ošetrenie premenných od nebezpečných znakov

	imageFile = escapeQuotesHTML(imageFile);
	tagOpen = escapeQuotes(tagOpen);
	tagClose = escapeQuotes(tagClose);
	sampleText = escapeQuotes(sampleText);
	speedTip = escapeQuotesHTML(speedTip);

	
	document.write("<a href=\"javascript:oznackovat");
	document.write("('"+textarea_name+"','"+tagOpen+"','"+tagClose+"','"+sampleText+"');\">");
	document.write("<img width=\"23\" height=\"22\" src=\""+cesta+"/i/tlacitka/"+imageFile+"\" border=\"0\" alt=\""+speedTip+"\" title=\""+speedTip+"\">");
	document.write("</a>");
	return;
}



function escapeQuotes(text) {
	if(!text) {	text = ''; }
	var re = new RegExp("'","g");
	text = text.replace(re,"\\'");
	re = new RegExp("\\n","g");
	text = text.replace(re,"\\n");
	return escapeQuotesHTML(text);
}

function escapeQuotesHTML(text2) {
	if(!text2) { text2 = ''; }
	var re = new RegExp('&',"g");
	text2 = text2.replace(re,"&amp;");
	var re = new RegExp('"',"g");
	text2 = text2.replace(re,"&quot;");
	var re = new RegExp('<',"g");
	text2 = text2.replace(re,"&lt;");
	var re = new RegExp('>',"g");
	text2 = text2.replace(re,"&gt;");
	return text2;
}






// funkcia pre doplnenie zadaných reťazcov pred a za označený text
function oznackovat(textarea_name, tagOpen, tagClose, sampleText) {
	var txtarea = document.getElementById(textarea_name);
	
	if(tagOpen == '\"')
		{
		var url = prompt('Vložte prosím adresu odkazu','http://');
		if(url != null)
			tagClose = "\":["+url+"]";
		}
	
  var was_space = 0;
	// pre IE a iné prehliadače, ktoré podporujú "document.selection"
	if (document.selection && !is_gecko) {
		var theSelection = document.selection.createRange().text;
		if (!theSelection)
			theSelection=sampleText;
		txtarea.focus();
    // ošetrenie medzier na začiatku a konci výbraného textu
		if (theSelection.charAt(theSelection.length - 1) == " ") {
			theSelection = theSelection.substring(0, theSelection.length - 1);
			was_space = 1;
		}
    if (theSelection.charAt(0) == " ") {
			theSelection = theSelection.substring(1, theSelection.length);
      if (was_space == 1) was_space = 3;
      else was_space = 2;
		}
    if (was_space == 1) document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
    else if (was_space == 2) document.selection.createRange().text = " " + tagOpen + theSelection + tagClose;
    else if (was_space == 3) document.selection.createRange().text = " " + tagOpen + theSelection + tagClose + " ";
    else document.selection.createRange().text = tagOpen + theSelection + tagClose;

	// pre prehliadače postavené na jadre Gecko (Mozilla, Firefox)
	} else if (txtarea.selectionStart || txtarea.selectionStart == '0') {
		var replaced = false;
		var startPos = txtarea.selectionStart;
		var endPos = txtarea.selectionEnd;
		if (endPos-startPos)
			replaced = true;
		var scrollTop = txtarea.scrollTop;
		var myText = (txtarea.value).substring(startPos, endPos);
		if (!myText)
			myText=sampleText;
    // ošetrenie medzier na začiatku a konci výbraného textu
    if (myText.charAt(myText.length - 1) == " ") {
      was_space = 1;
			}
    if (myText.charAt(0) == " ") {
      if (was_space == 1) was_space = 3;
      else was_space = 2;
			}
    if (was_space == 1) subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
    else if (was_space == 2) subst = " " + tagOpen + myText.substring(1, myText.length) + tagClose;
    else if (was_space == 3) subst = " " + tagOpen + myText.substring(1, myText.length - 1) + tagClose + " ";
    else subst = tagOpen + myText + tagClose;

		txtarea.value = txtarea.value.substring(0, startPos) + subst +
			txtarea.value.substring(endPos, txtarea.value.length);
		txtarea.focus();

		if (replaced) {
			var cPos = startPos+(tagOpen.length+myText.length+tagClose.length);
			txtarea.selectionStart = cPos;
			txtarea.selectionEnd = cPos;
		} else {
			txtarea.selectionStart = startPos+tagOpen.length;
			txtarea.selectionEnd = startPos+tagOpen.length+myText.length;
		}
		txtarea.scrollTop = scrollTop;

 }

	if (txtarea.createTextRange)
		txtarea.caretPos = document.selection.createRange().duplicate();
}


//-------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------


function getTlacitka(textarea,t,c)
	{
	var textarea_name = textarea;
	var typ = t;
	var cesta = c;
	
	if(typ == 2)
		{
		tlacitko(textarea_name, c, 'bt-tucny.png',   'Tučný text',  '**',   '**',   'text');
		tlacitko(textarea_name, c, 'bt-kurziva.png', 'Kurzíva', '*','*','text');
		tlacitko(textarea_name, c, 'bt-odkaz.png',   'Hypertextový odkaz',  '\"',   '\":[http://www.aaa.xx]', 'text odkazu');
		tlacitko(textarea_name, c, 'bt-podciarknuty.png','Podtrhnutý text',   '++',   '++',   'text');
		tlacitko(textarea_name, c, 'bt-preciarknuty.png','Preškrtnutý text',   '--',   '--',   'text');
		tlacitko(textarea_name, c, 'bt-kod.png', 'Zdrojový kód',  '\n/---code php\n', '\n\\\\---\n',  'kód');
		tlacitko(textarea_name, c, 'bt-ciara.png',   'Horizontální čára',  '\n*******\n',  '', '');
		tlacitko(textarea_name, c, 'bt-zoznam.png',  'Nečíslovaný seznam',  '\n- ', '\n- \n- \n',   '');
		tlacitko(textarea_name, c, 'bt-cislovanyzoznam.png', 'Číslovaný seznam','\n1) ','\n2) \n3) \n', '');
		//	if (!tlacitko(textarea_name, c,))	document.writeln('"text odkazu":odkaz, <b>**tučně**<\/b>, <i>*kurzíva*<\/i>, <em>`code`<\/em>');
		}
	else if(typ == 1)
		{
		tlacitko(textarea_name, c, 'bt-tucny.png',   'Tučný text',  '**',   '**',   'text');
		tlacitko(textarea_name, c, 'bt-kurziva.png', 'Kurzíva', '*','*','text');
		tlacitko(textarea_name, c, 'bt-odkaz.png',   'Hypertextový odkaz',  '\"',   '\":[http://www.aaa.xx]', 'text odkazu');
		tlacitko(textarea_name, c, 'bt-podciarknuty.png','Podtrhnutý text',   '++',   '++',   'text');
		tlacitko(textarea_name, c, 'bt-preciarknuty.png','Preškrtnutý text',   '--',   '--',   'text');
		tlacitko(textarea_name, c, 'bt-nadpis1.png', 'Nadpis první úrovně', '',  '\n=====','Nadpis');
		tlacitko(textarea_name, c, 'bt-nadpis2.png', 'Nadpis druhé úrovně', '',   '\n====','Nadpis');
		tlacitko(textarea_name, c, 'bt-obrazok.png', 'Obrázek', '[* ',  ' *]',  'images/obrazek.jpg');
		tlacitko(textarea_name, c, 'bt-superscript.png', 'Horní index', '^^',   '^^',   'text');
		tlacitko(textarea_name, c, 'bt-subscript.png',   'Dolní index', '__',   '__',   'text');
		tlacitko(textarea_name, c, 'bt-kod.png', 'Zdrojový kód',  '\n/---code php\n', '\n\\\\---\n',  'kód');
		tlacitko(textarea_name, c, 'bt-ciara.png',   'Horizontální čára',  '\n*******\n',  '', '');
		tlacitko(textarea_name, c, 'bt-zoznam.png',  'Nečíslovaný seznam',  '\n- ', '\n- \n- \n',   '');
		tlacitko(textarea_name, c, 'bt-cislovanyzoznam.png', 'Číslovaný seznam','\n1) ','\n2) \n3) \n', '');
		// 	  if (!tlacitko(textarea_name, c,)) document.writeln('"text odkazu":odkaz, <b>**tučně**<\/b>, <i>*kurzíva*<\/i>, <em>`code`<\/em>');
		}
	}

