/*****
 *  General
 */
 
function toggleVisibility(itemId)
{
    var item = document.getElementById(itemId);
    if (item.style.display == 'none')
    {
        item.style.display = '';
        return true;
    }
    else
    {
        item.style.display = 'none';
        return false;
    }
}

//  Otazkove a po kladne odpovedi redirect na url
function question(text, url)
{
    if (window.confirm(text))
    {
        document.location.href=url;
    }
    window.event.cancelBubble = true;
}

/*****
 *  Smajlici
 */

// IE only - wraps selected text with lft and rgt
  function WrapIE(lft, rgt) {
    strSelection = document.selection.createRange().text;
    if (strSelection!="") {
      document.selection.createRange().text = lft + strSelection + rgt;
    }
  }

// Moz only - wraps selected text with lft and rgt
  function wrapMoz(txtarea, lft, rgt) {
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd==1 || selEnd==2) selEnd=selLength;
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    txtarea.value = s1 + lft + s2 + rgt + s3;
  }
  
// Chooses technique based on browser
  function wrapTag(txtarea, lft, rgt) {
    lft = unescape(lft);
    rgt = unescape(rgt);
    if (document.all) {
      WrapIE(lft, rgt);
    }
    else if (document.getElementById) {
      wrapMoz(txtarea, lft, rgt);
    }
  } 

// IE only - Insert text at caret position or at start of selected text
  function insertIE (txtarea, text) {
    if (txtarea.createTextRange && txtarea.caretPos) { 
      var caretPos = txtarea.caretPos; 
      caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text+caretPos.text + ' ' : text+caretPos.text;
    } else {
      txtarea.value = txtarea.value + text; 
    }
    return;
  } 

// Moz only - Insert text at caret position or at start of selected text
  function insertMoz(txtarea , lft) {
    var rgt="";
    wrapTag(txtarea, lft, rgt);
    return;
  }

// Switch function based on browser - Insert text at caret position or at start of selected text
  function insertTag(txtarea , lft) {
    if (document.all) {
      insertIE(txtarea, lft);
    }
    else if (document.getElementById) {
      insertMoz(txtarea, lft);
    }
  }

// IE only - stores the current cursor position on any textarea activity
  function storeCaret (txtarea) { 
    if (txtarea.createTextRange) { 
      txtarea.caretPos = document.selection.createRange().duplicate();
    } 
  }

function smajliky(itemName, what)
{
    var item = document.getElementById(itemName);
	insertTag(item,what);
	item.focus();
}

/*****
 *  AJAX
 */

function RefreshElement(context, page, fn, query)
{
    var url = page + "&fn=" + fn + query;
    var progress = document.getElementById('progress');
	if (progress != undefined)
	{
	    progress.style.width=progress.parentNode.offsetWidth;
	    progress.style.height=progress.parentNode.offsetHeight;
	    progress.style.display='';
	}
	ajaxCaller.get(url, null, RefreshElement_callback, false, context);
}

function RefreshElement_callback(text, headers, callingContext)
{
	var element = document.getElementById(callingContext);
	element.innerHTML = text;
	if (document.getElementById('progress') != undefined)
	{
	    document.getElementById('progress').style.display='none';
	}
}

/*****
 *  Sablony do stranky
 */

/* Naplneni pole pageItems v hlavni strance */
function FillPageItems()
{
	var pageItems = document.getElementById('pageItems');
	var pageItemsContent = document.getElementById('pageItemsContent');
	if (pageItems != null && pageItems != undefined && pageItemsContent != null && pageItemsContent != undefined)
	{
		pageItems.innerHTML = pageItemsContent.innerHTML;
	}
}

/*****
 *  Diskuze
 */
 
function DiskuzeNovy(prefix, id)
{
    var dpn = id.replace("dp_", "dpn_");
    var predchozi = id.replace("dp_", "");

    var objektTyp = document.getElementById('diskuze_' + prefix + '_o');
    var objektId = document.getElementById('diskuze_' + prefix + '_i');
    var qs = "&objekt=" + objektTyp.value + "&idObjektu=" + objektId.value + "&predchozi=" + predchozi + "&prefix=" + prefix;
    
    if (toggleVisibility(dpn))
    {
        RefreshElement(dpn, "/Diskuze.php?ac=ajax", "novy", qs);
    }
}

function DiskuzeSubmit(name)
{
    namePrefix = name.replace("df_","d") + "_";
    var form = document.getElementsByName(name)[0];
    var qs = "";
    var predchozi = "";
    for (var i=0; i<form.length; i++)
    {
        if (form.elements[i].name.length > 0)
        {
            if (form.elements[i].name.replace(namePrefix,"") == "predchozi")
            {
                predchozi = form.elements[i].value;
            }
            qs += form.elements[i].name.replace(namePrefix,"") + "=" + form.elements[i].value + "&"
        }
    }
//    alert("/Diskuze.php?"+qs + "\n\n" + "dpn_" + predchozi);
    ajaxCaller.get("/Diskuze.php?"+qs, null, DiskuzeSubmit_callback, false, "dpn_" + predchozi);
}

function DiskuzeSubmit_callback(text, headers, callingContext)
{
	document.location.reload();
	
//	var element = document.getElementById(callingContext);
//	element.outerHTML = text;
//	element.className = element.className.replace('novy', 'novySubmitted');
}

