var hist_size = 8
var pridej_url = '';
var pridej_title = '';

// get object
function getObject(obj) {
  if ( document.getElementById ) {
    obj = document.getElementById( obj );
  } else if ( document.all ) {
    obj = document.all.item( obj );
  } else {
    obj = null;
  }
  return obj;
}

function displayObject( obj, show ) {
  obj = getObject( obj );
  if (obj==null) return;
  obj.style.display = show ? 'block' : 'none';
  obj.style.visibility = show ? 'visible' : 'hidden';
}

function moveObject( obj, e ) {
  var tempX = 0;
  var tempY = 0;
  var offset = 5;
  var objHolder = obj;

  obj = getObject( obj );
  if (obj==null) return;

  if (document.all) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }

  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}
  obj.style.top  = (tempY + offset) + 'px';
  obj.style.left = (tempX + offset - 300) + 'px';
}

function cookie_create(name,value) {
  value = encodeURIComponent(value);
  var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function cookie_read(name,def) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
  }
  return def;
}

function cookie_erase(name) {
  cookie_create(name,"");
}

function log(msg) {
  cookie_create('lastlogmessage',msg);
}

function add_hist_entry(u, t) {
  if (! isenabled_history()) {
    log('History not enabled, skipping');
    return;
  }
  // url must be set
  if (u.length <= 0) {
    log('URL was not set');
    return;
  }
  // we do not duplicate
  if (u == get_hist_entry(0, 'histu')) {
    log('This was previously set, skipping');
    return;
  }
  var p = parseInt(cookie_read('histpos', 0));
  cookie_create('histu' + p, u);
  cookie_create('histt' + p, t);
  p = p + 1;
  if (p >= hist_size) p = p % hist_size;
  cookie_create('histpos', p);
}

function get_hist_entry(n, name) {
  var p = parseInt(cookie_read('histpos', 0));
  p = p + parseInt(n) - 1;
  if (p >= hist_size) p = p % hist_size;
  while (p < 0) p = p + hist_size;
  return cookie_read(name + p, null);
}

function reload_page() {
  window.location.reload()
}

function clear_history() {
  cookie_create('histpos', 0);
  for (i = 0; i < hist_size; i++) {
    cookie_erase('histu' + i);
    cookie_erase('histt' + i);
  }
  reload_page();
}

function enable_history() {
  cookie_create('histenabled', 1);
  reload_page();
}

function disable_history() {
  cookie_create('histenabled', 0);
  clear_history();
}

function isenabled_history() {
  if (parseInt(cookie_read('histenabled', 1)) == 1)
    return true;
  else
    return false;
}

function maxtrim(str, max) {
  if (str.length > max)
    return str.substring(0, max) + '...';
  else
    return str;
}

function render_history() {
  document.write('<div id="history" class="history">');
  document.write('<h3>Historie</h3><ul>');
  for (i=0; i > - hist_size; i--) {
    document.write('<li>');
    var u = get_hist_entry(i,'histu');
    var t = get_hist_entry(i,'histt');
    var t2 = u;
    if (u) {
      if (t) t2 = t;
      document.write('<a href="index.php?p=pridat&url=' + u + '&title=' + t + '" title="' + t2.replace('"', '') + '">' + maxtrim(t2, 35) + '</a>');
    }
    document.write('</li>');
  }
  document.write('<br/><span class="button"><a href="javascript: clear_history();">smazat</a></span>&nbsp;');
  if (isenabled_history()) {
    document.write('<span class="button"><a href="javascript: disable_history();">deaktivovat</a></span>&nbsp;');
  } else {
    document.write('<span class="button"><a href="javascript: enable_history();">aktivovat</a></span>&nbsp;');
  }
  document.write('<span class="button"><a href="javascript: displayObject(\'history\', false);">zavřít</a></span>');
  document.write('</ul></div>');
}

function pridej_submit(val, type) {
  x = document.getElementById('type');
  x.value=val;
  x = document.getElementById('sform');
  if (type == 'pridat')
    add_hist_entry(getObject('url_').value, getObject('title').value);
  x.submit();
}
