var SHOWING_JOB_MENU_SPEED = 30;
var MAX_JOB_MENU_WIDTH = 285;
var MIN_JOB_MENU_WIDTH = 28;
var form_count = 0;

function select_children_nodes(id, myarray, dir){
  for(a in myarray){
    if (myarray[a]['parent'] == id) {
      myarray[a]['selected'] = dir;
      select_children_nodes(a, myarray, dir);
    } 
  }
}

function checked_children_nodes(id, myarray){
  for(a in myarray){
    if ((id == 0) || ((myarray[a]['parent'] == id) && (myarray[id]['selected'] == 1) && (myarray[a]['selected'] != 1))) {
      if (id != 0) {
        myarray[id]['selected'] = 0;
        checked_children_nodes(myarray[id]['parent'], myarray);
      }
      break;      
    } 
  }
}

function select_all(select){
  for(var a=0; a<select.options.length; a++){
    select.options[a].selected = true;
  }
}

function unselect_all(select){
  for(var a=0; a<select.options.length; a++){
    select.options[a].selected = false;
  }
}

function move_selected_options(src, dest, myarray, dir){  
  for(var a = src.options.length - 1; a >= 0; a--){
    if (src.options[a].selected) {
      src.options[a].selected = false;      
      myarray[src.options[a].value]['selected'] = dir;      
      select_children_nodes(src.options[a].value, myarray, dir);
      if (dir == 0) checked_children_nodes(myarray[src.options[a].value]['parent'], myarray);     
    } 
  }
  
  copy_array_to_select(myarray, dir == 1 ? src : dest, dir == 1 ? dest : src);
}

function copy_array_to_select(myarray, selected_false, selected_true){
  var sel_t_count = 0, sel_f_count = 0;
  
  for(a in myarray){            
    if (myarray[a]['selected'] == '1') {            
      sel_t_count++;
      if (selected_true.options.length >= sel_t_count) {
        selected_true.options[sel_t_count - 1].text = myarray[a]['name'];
        selected_true.options[sel_t_count - 1].value = a;
        selected_true.options[sel_t_count - 1].className = myarray[a]['class'];
      }
      else {
        selected_true.options[sel_t_count - 1] = new Option(myarray[a]['name'], a, false);
        selected_true.options[sel_t_count - 1].className = myarray[a]['class'];
      } 
    } 
    else {
      sel_f_count++;
      if (selected_false.options.length >= sel_f_count) {
        selected_false.options[sel_f_count - 1].text = myarray[a]['name'];
        selected_false.options[sel_f_count - 1].value = a;
        selected_false.options[sel_f_count - 1].className = myarray[a]['class'];
      }
      else {
        selected_false.options[sel_f_count - 1] = new Option(myarray[a]['name'], a, false);
        selected_false.options[sel_f_count - 1].className = myarray[a]['class'];
      } 
    } 
  }
  
  for (var a = selected_false.options.length - 1; a > sel_f_count - 1; a--){
    selected_false.options[a] = null;
  }
  
  for (var a = selected_true.options.length - 1; a > sel_t_count - 1; a--){
    selected_true.options[a] = null;
  }
}

function check_all_cbs(name, value)
{          
  var items = document.getElementsByName(name);          
  for(var a = 0; a < items.length; a++){
    items[a].checked = value;                      
  }
}

function find_object(name){
  return document.getElementById(name); // || document.getElementsByName(name);
}

function check_cb(name, inverse){
  if (find_object(name) != undefined) {find_object(name).checked = (inverse != undefined) ? !find_object(name).checked : true;}
}

function wrong_job_info(job_id){ 
  if (obj = document.getElementById('wji' + job_id)) {
    obj.innerHTML = '<img src="images/loading.gif" width="16" height="16" alt="Prebieha spracovanie. Čakajte."/>';
    obj.style.position = 'relative'; // for opera refresh usage only
  }
  command('wrong_job_info', job_id, true);
  
  return false;
}

function favorite_job(job_id){ 
  if (obj = document.getElementById('fav' + job_id)) {    
    obj.innerHTML  = '<img src="images/loading.gif" width="16" height="16" alt="Prebieha spracovanie. Čakajte."/>';       
    obj.style.position = 'relative';
  }
  command('favorite_job', job_id, true);
  
  return false;
}

function hide_job(job_id){ 
  if (obj = document.getElementById('hide' + job_id)) {    
    obj.innerHTML  = '<img src="images/loading.gif" width="16" height="16" alt="Prebieha spracovanie. Čakajte." />';       
    obj.style.position = 'relative';
  }
  command('hide_job', job_id, true);
  
  return false;
}

function attention_job(job_id){ 
  if (obj = document.getElementById('send' + job_id)) {    
    obj.innerHTML  = '<img src="images/loading.gif" width="16" height="16" alt="Prebieha spracovanie. Čakajte." />';       
    obj.style.position = 'relative';
  }
  command('show_friend_list', job_id, true);
  
  return false;
}

function get_company_profile(profile_id){ 
  if (obj = document.getElementById('loader')) {
    obj.innerHTML = '<img src="images/loading_grey.gif" width="16" height="16" alt="Prebieha spracovanie. Čakajte."/>';
    //obj.style.position = 'relative'; // for opera refresh usage only
  }
  command('get_company_profile', profile_id, true);
  
  return false;
}

function change_font_size(dir){
  if (document.body.style.fontSize == '') document.body.style.fontSize = '0.8em';
  document.body.style.fontSize = Math.max(0.5, Math.floor(parseFloat(document.body.style.fontSize) * 10 + dir) / 10) + 'em';
  
  command('fontsize', document.body.style.fontSize, true);
}

function show_job_menu(obj_name, dir){
  if(obj = document.getElementById(obj_name)){
    obj.showing_dir = dir;
    if (obj.style.width == '') obj.style.width = MIN_JOB_MENU_WIDTH + 'px';    
    if (obj.timer != undefined) clearInterval(obj.timer);
    obj.timer = setInterval('showing_job_menu("'+obj_name+'")', 30);
  }
}

function showing_job_menu(obj_name){  
  if(obj = document.getElementById(obj_name)){
    if ((obj.showing_dir > 0) && (parseInt(obj.style.width) < MAX_JOB_MENU_WIDTH)) obj.style.width = Math.min(MAX_JOB_MENU_WIDTH, (parseInt(obj.style.width) + obj.showing_dir * (1 - parseInt(obj.style.width) / MAX_JOB_MENU_WIDTH) * SHOWING_JOB_MENU_SPEED + obj.showing_dir)) + 'px';
    else if ((obj.showing_dir < 0) && (parseInt(obj.style.width) > MIN_JOB_MENU_WIDTH)) obj.style.width = Math.max(MIN_JOB_MENU_WIDTH, (parseInt(obj.style.width) + obj.showing_dir * parseInt(obj.style.width) / MAX_JOB_MENU_WIDTH * SHOWING_JOB_MENU_SPEED - obj.showing_dir)) + 'px';
    else {
      clearInterval(obj.timer);
      obj.timer = undefined;   
    }
  }
}

function open_search_page(name){
  if (obj = document.getElementById(name)){
    window.open(obj, '_self');        
  }  
}

function keydown(event){
  if (!event.ctrlKey) return ;
  
  kc = window.event ? event.keyCode : event.which;

  if (kc == '37') open_search_page('prev');
  else if (kc == '39') open_search_page('next');
  else if (kc == '33') open_search_page('home');
}

// return text from option
function get_selected_text(select, value){
  for(var a=0; a<select.options.length; a++){
    if (select.options[a].value == value) return select.options[a].text;
  }
  
  return -1;
}

// messages
function add_new_receiver(sender){  
  obj = find_object('receivers');
  
  if ((obj.innerHTML.indexOf('value=' + sender.value) == -1) && obj.innerHTML.indexOf('value="' + sender.value + '"') == -1) {
    obj.innerHTML += '<!--start_nick' + (++form_count) + '--><span>' + 
                                        '<a href="#" onclick="delete_receiver(this.nextSibling)" title="Odstrániť položku zo zoznamu"><strong>X</strong></a><input type="hidden" name="nick[]" id="nick' + form_count + '" value="' + sender.value + '"/>' +
                                        get_selected_text(sender, sender.value) + 
                                        '</span><!--end_nick' + form_count + '-->';
  }                                  
  sender.value = '';                                       
}

function delete_receiver(sender){
  obj = find_object('receivers');
  s = obj.innerHTML.indexOf('<!--start_'+sender.id+'-->');
  e = obj.innerHTML.indexOf('<!--end_'+sender.id+'-->');
  end_str = '<!--end_'+sender.id+'-->';
      
  obj.innerHTML = obj.innerHTML.substr(0,s) + obj.innerHTML.substr(e + end_str.length, obj.innerHTML.length);
}

function show_nick_possibilities(e, value){
  var obj = document.getElementById('nick_possibilities');
  
  kc = window.event ? e.keyCode : e.which;
  
  if (kc == 40) {
    if (obj.options.length > 0) {
      obj.value = obj.options[0].value;
      obj.focus();
    }
    return;
  }
  
  if ((kc >= 37) && (kc <= 40)) return;
  
  if (((value == '') || (kc == 65)) && obj) obj.style.display = 'none';
  command('nick_possibilites', value, true, true);
}

function do_focus(sender, e){
  kc = window.event ? e.keyCode : e.which;

  if ((kc == 38) && (sender.value == sender.options[0].value) && (obj = document.getElementById('nick'))) {
    obj.focus();
    return;
  }
  else if (kc == 13) {
    nick_chosed(sender.value);
    return;
  }
}

function nick_chosed(value){ 
  if ((obj = document.getElementById('nick')) && (value != '')) obj.value = value;     
  if (obj = document.getElementById('nick_possibilities')) obj.style.display = 'none'; 
}

function hide_friend_list(id){
  if (obj = document.getElementById('job_menu' + id + '_span')) obj.innerHTML = '';
  if (obj = document.getElementById('send' + id)) obj.innerHTML = '<a href="#" onclick="return attention_job(\'' + id + '\')">Upozorniť priateľa na ponuku</a>';    
}

function warn_friends(id){
  if (obj = document.getElementById('job_menu' + id + '_span')) {
    command('warn_friends_job_id', id, false, false);
    var object = obj.firstChild.firstChild.firstChild;          
    while (object){
      if (object.nodeName == 'INPUT') {
        if (object.checked) command('warn_friends', object.value, false, false);
      }
      object = object.nextSibling;
    }     
    command('warn_friends_job_id', id, true, false);
  }
  hide_friend_list(id);
}

//window.onkeypress = keydown();
