function show(obj)
{
  if (document.layers)  // NN 4+
    document.layers[obj].visibility = "show";
  if (document.all && !document.getElementById)  // IE 4
    document.all[obj].style.visibility = "visible";
  if (document.getElementById)  // NN 6+, IE 5+, Mozilla 1.2+, Opera 7+
    document.getElementById(obj).style.visibility = "visible";
}

function hide(obj)
{
  if (document.layers)
    document.layers[obj].visibility = "hide";
  if (document.all && !document.getElementById)
    document.all[obj].style.visibility = "hidden";
  if (document.getElementById)
    document.getElementById(obj).style.visibility = "hidden";
}

var prev_panel = 'basic';
function switch_panel(panel)
{
  hide(prev_panel);
  show(panel);
  prev_panel = panel;
}

function toggle_color(obj, checkbox, unchecked_color, checked_color)
{
  if (document.getElementById) {
    eval('document.'+obj+'.style.backgroundColor = (document.'+checkbox+'.checked) ? "'+checked_color+'" : "'+unchecked_color+'";');
  }
}

function toggle_xml(form, element)
{
  obj = form+'.'+element;
  eval("toggle_color('"+obj+"', '" + obj + "_uses_xml', 'white', '#e9ffd2');");
  eval("what = document."+obj+"_uses_xml.checked ? 'show' : 'hide';");
  eval(what+"('"+element+"_controls');");
}

function insert_text(text, obj, where)
{
  element.value = element.value.slice(0, where) + text + element.value.slice(where);
}

function insert_tags(start, end, obj)
{
  if (document.selection) {
    text = document.selection.createRange().text;
    if (document.selection.createRange().text.length > 0) {
      text = start + text + end;
    } else {
      text = start ? start : end;
    }
    document.selection.createRange().text = text;
  } else {
    eval('element = document.'+obj+';');
    if (element.selectionEnd) {
      if (element.selectionEnd - element.selectionStart > 0) {
        selectionStart = element.selectionStart;
        selectionEnd = element.selectionEnd + start.length;
        insert_text(start, element, selectionStart);
        insert_text(end, element, selectionEnd);
        element.selectionStart = selectionStart + start.length;
        element.selectionEnd = selectionEnd;
      } else {
        start = start ? start : end;
        selectionStart = element.selectionStart;
        insert_text(start, element, selectionStart);
        element.selectionStart = selectionStart + start.length;
        element.selectionEnd = element.selectionStart;
      }
    } else {
      element.value += start ? start : end;
    }
  }
  element.focus();
}

function send_xmlhttprequest(callback, method, url, content, headers)
{
  var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
  if (!xmlhttp) {
    return false;
  }
  xmlhttp.open(method, url);
  xmlhttp.onreadystatechange = function() {
    callback(xmlhttp);
  };
  if (headers) {
    for (var key in headers) {
      xmlhttp.setRequestHeader(key, headers[key]);
    }
  }
  xmlhttp.send(content);
  return true;
}

function survey_vote(vote)
{
  if (!send_xmlhttprequest(survey_callback, 'GET', '?page=ajax/survey&shape=ajax&vote=' + vote)) {
    return false;
  }
  document.getElementById('survey-label').innerHTML = 'Probíhá hlasování...';
  return true;
}

function survey_callback(xmlhttp)
{
  if (xmlhttp.readyState == 4) {
    var labels = xmlhttp.responseXML.getElementsByTagName('label');
    document.getElementById('survey-label').innerHTML = labels[0].firstChild.data;
    var answers = xmlhttp.responseXML.getElementsByTagName('answer');
    for (var i=0; i<answers.length; i++) {
      var id = answers[i].attributes.getNamedItem('id').nodeValue;
      var width = answers[i].firstChild.data;
      var element = document.getElementById('survey_rule_'+id).style.width = width+"%";
      document.getElementById('survey_text_'+id).innerHTML = width;
    }
  }
}
