function trim(string) {
  return string.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

//nastavuje barvu pozadí a případně kurzor při najetí myší nad objekt
//používá se zejména pro řádky v tabulce s výpisem
//kvůli IE6, který nezpracuje CSS pseudotřídu :hover
function setAct(object,set,cursor,bgcolor) {
  var bg = '#6E96FF';
  if ( bgcolor ) { bg = bgcolor; }
  object.style.backgroundColor = (set) ? bg : 'transparent';
  if ( cursor ) { object.style.cursor = 'pointer'; }
}


function clear_input(object,text) {
  if ( object.value == text ) { object.value = ''; }
  return true;
}

function uniqueId() {
  var date_tmp = new Date();
  return date_tmp.getTime() + Math.floor(Math.random() * Math.pow(10, 17) + Math.random() * Math.pow(10, 17));
}

/*vrací souřadnice levého horního rohu bloku (okna) o zadaných rozměrech, který má být vycentrován na střed obrazovky*/
function centered_box_xy(box_width,box_height) {
  var xy = new Array( (screen.availWidth/2)-(box_width/2), (screen.availHeight/2)-(box_height/2) );
  return xy;
}


/*vrátí klíč (pozici) prvku v poli
vrací false, když prvek v poli není nebo pozici prvku
*/
function array_search(hodnota,pole) {
  var key = false;
  for ( i=0;i<pole.length;i++ ) {
    if ( pole[i] == hodnota ) { key = i; break; }
  }
  return key;
}

function in_array(hodnota,pole) {
  var i;
  var existuje = false;
  for ( i=0;i<pole.length;i++ ) {
    if ( pole[i] == hodnota ) { existuje = true; break; }
  }

  return existuje;
}


function add_classname(item_id,classname) {

  var aktClassNames = new Array();
  var newClassName = '';

  if ( document.getElementById(item_id).className.length>0 ) {
    aktClassNames = aktClassNames.concat(document.getElementById(item_id).className.split(' '));
  }

  if ( classname && !in_array(classname,aktClassNames) ) {
    aktClassNames.push(classname);
  }
  newClassName = aktClassNames.join(' ');
  if ( newClassName!=document.getElementById(item_id).className ) {
    document.getElementById(item_id).className = newClassName;
  }
}

function remove_classname(item_id,classname) {

  var aktClassNames = new Array();
  var newClassName = '';

  if ( document.getElementById(item_id).className.length>0 ) {
    aktClassNames = aktClassNames.concat(document.getElementById(item_id).className.split(' '));
  }

  if ( in_array(classname,aktClassNames) ) {
    aktClassNames.splice(array_search(classname,aktClassNames),1);
  }
  newClassName = aktClassNames.join(' ');
  if ( newClassName!=document.getElementById(item_id).className ) {
    document.getElementById(item_id).className = newClassName;
  }
}


function napoveda(inic_id,napoveda_id,button_style) {
  var napoveda_obj = document.getElementById(napoveda_id);
  var inic_obj = document.getElementById(inic_id);
  var display_stav = napoveda_obj.style.display;

  var poz_left = inic_obj.offsetLeft;
  var poz_top = inic_obj.offsetTop;

  var poz_left_odsazeni = (inic_obj.width) ? inic_obj.width : 3;
  if ( button_style=='maly' ) {
    poz_left_odsazeni = 15;
    poz_top_odsazeni = 10;
  }

  /*pouze v těchto prohlížečích zobrazení boxu s nápovědou funguje - u ostatních jsou problémy s pozicí*/
  if ( navigator.userAgent.indexOf('MSIE 7.0')>-1 || navigator.userAgent.indexOf('Firefox')>-1 ) {

    if ( display_stav=='block' ) {
      napoveda_obj.style.display = 'none';
    }
    else {
      /*
        napoveda_obj.style.left = poz_left + poz_left_odsazeni + 'px';
        napoveda_obj.style.top = poz_top + 'px';
      */
      napoveda_obj.style.display = 'block';
      inic_obj.title = '';
    }
  }

  return false;
}


function dokument_win(source_id) {
  stred_souradnice = centered_box_xy(600,500);
  var position = ',left='+stred_souradnice[0]+',top='+stred_souradnice[1];
  var soubor = document.getElementById(source_id).href;
  var modal_win = window.open(soubor, 'okno_dokument_'+uniqueId(), 'modal=yes,width=600,height=500,menubar=no,directories=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes'+position);
  modal_win.focus();

  return false;
}


function psconly(myfield, e) {
  var key;
  var keychar;

  if (window.event)
    key = window.event.keyCode;
  else if (e)
    key = e.which;
  else
    return true;

  keychar = String.fromCharCode(key);

  if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
    return true;
  else if (((' 0123456789').indexOf(keychar) > -1))
    return true;
  else
   return false;
}


function doprava_win(trasa_id) {
  stred_souradnice = centered_box_xy(610,510);
  var position = ',left='+stred_souradnice[0]+',top='+stred_souradnice[1];
  var modal_win = window.open('/doprava_win.php?trasa='+encodeURIComponent(trasa_id), 'okno_doprava', 'modal=yes,width=610,height=510,menubar=no,directories=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes'+position);
  modal_win.focus();

  return false;
}
