var mouse_pos = {x: 0, y: 0};

function send_feedback()
{
  var feedback_text = _ge('feedback_text');
  var feedback_back = _ge('feedback_back');
  var feedback_submit = _ge('feedback_submit');

  if (!feedback_text.value) return false;

  feedback_submit.src = '/i/btn_send_wait.gif';
  feedback_submit.disabled = true;

  var xml_url = "/xml/feedback_send.php";
  var __query_str = "text="+escape(feedback_text.value)+"&back="+escape(feedback_back.value);

  diXMLRequest.post(xml_url, __query_str, send_feedback_response);

  return false;
}

function send_feedback_response(xmlDoc)
{
  var feedback_text = _ge('feedback_text');
  var feedback_submit = _ge('feedback_submit');

  feedback_text.value = S.feedback_thanx_msg;
  feedback_text.style.backgroundColor = '#ffe';

  feedback_submit.src = '/i/btn_send.gif';
  feedback_submit.disabled = false;
}

function project_filter_onclick(name, value)
{
  if (name == 'type')
  {
    if (!_ge('project_filter_type_remote').checked && !_ge('project_filter_type_office').checked)
      _ge('project_filter_'+name+'_'+value).checked = true;
  }
  else if (name == 'is_steady')
  {
    if (!_ge('project_filter_is_steady_0').checked && !_ge('project_filter_is_steady_1').checked)
      _ge('project_filter_'+name+'_'+value).checked = true;
  }
}

function project_filter_toggle_tags_list()
{
  var tags_list_div = _ge('tags_list_div');

  if (tags_list_div)
  {
    tags_list_div.style.visibility = tags_list_div.style.visibility == 'visible' ? 'hidden' : 'visible';
  }
}

function project_filter_select_all_tags(on)
{
  for (var i = 0; i < tags_id_ar.length; i++)
  {
    var e = _ge('tag_'+tags_id_ar[i]);

    if (e) e.checked = on ? true : false;
  }
}

function buy_select_all(on)
{
  if (typeof idx2idx_ar == 'undefined') return;

  for (var i in idx2idx_ar)
  {
    var e = _ge('selected_'+i);

    if (e) e.checked = on ? true : false;
  }
}

function project_filter_apply()
{
  var project_filter_submit = _ge('project_filter_submit');
  if (project_filter_submit)
  {
    project_filter_submit.src = '/i/btn_apply_project_filter_wait.gif';
    project_filter_submit.disabled = true;
  }

  var date = new Date();
  date.setFullYear(date.getFullYear() + 1);

  var type = '';
  if (_ge('project_filter_type_remote').checked) type += 'remote,';
  if (_ge('project_filter_type_office').checked) type += 'office,';
  if (type.substr(type.length - 1, 1) == ',') type = type.substr(0, type.length - 1);

  var is_steady = '';
  if (_ge('project_filter_is_steady_0').checked) is_steady += '0,';
  if (_ge('project_filter_is_steady_1').checked) is_steady += '1,';
  if (is_steady.substr(is_steady.length - 1, 1) == ',') is_steady = is_steady.substr(0, is_steady.length - 1);

  var tags = '';
  var all_tags = true;
  for (var i = 0; i < tags_id_ar.length; i++)
  {
    var e = _ge('tag_'+tags_id_ar[i]);

    if (e && e.checked) tags += tags_id_ar[i]+',';
    if (e && !e.checked) all_tags = false;
  }
  if (tags.substr(tags.length - 1, 1) == ',') tags = tags.substr(0, tags.length - 1);

  setCookie('project_filter[type]', type, date);
  setCookie('project_filter[is_steady]', is_steady, date);
  setCookie('project_filter[tags]', all_tags?'':tags, date);

  window.location.reload();
}

function show_reply_form(before_obj_id, parent)
{
  var a = _ge(before_obj_id);

  if (!a || !comment_reply_div || !comment_parent) return true;

  a.parentNode.insertBefore(comment_reply_div, a);
  comment_reply_div.style.display = 'block';

  comment_parent.value = parent;

  return false;
}

function show_portfolio_form(show, clear_form)
{
  if (show)
  {
    p_form2.div.style.top = (getTop(p_form2.anc) + 20).toString()+'px';
    p_form2.div.style.left = (getLeft(p_form2.anc) + (is_ie4up ? 3 : 0)).toString()+'px';

    if (clear_form)
    {
      p_form.inputs['portfolio_title'].value = '';
      p_form.inputs['portfolio_url'].value = 'http://';
      p_form.inputs['portfolio_description'].value = '';
      p_form2.id.value = '0';
      p_form2.curfile_div.style.display = 'none';

      for (var i = 0; i < p_form2.form.elements.length; i++)
      {
        var e = p_form2.form.elements[i];

        if (e.name.substr(0,6) == 'tags[]') e.checked = false;
      }

      p_form.clear();
    }

    p_form2.div.style.display = 'block';
    p_form2.a.href = 'javascript:show_portfolio_form(false, false);';
    p_form2.img.src = 'i/btn_cancel.gif';
  }
  else
  {
    p_form2.div.style.display = 'none';
    p_form2.a.href = 'javascript:show_portfolio_form(true, true);';
    p_form2.img.src = 'i/btn_add.gif';
  }
}

function edit_portfolio(id)
{
  var xml_url = '/xml/get_portfolio_data.php';
  var __query_str = 'id='+escape(id);

  toggle_wait(true);

  diXMLRequest.get(xml_url+'?'+__query_str, edit_portfolio_response);
}

function edit_portfolio_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  var ok = parseInt(rs[0].getAttribute('ok'));

  if (ok)
  {
    p_form.inputs['portfolio_title'].value = rs[0].getAttribute('title');
    p_form.inputs['portfolio_url'].value = rs[0].getAttribute('url');
    p_form.inputs['portfolio_description'].value = rs[0].getAttribute('description').replace(/<br>/g,'\n');

    if (rs[0].getAttribute('filesize') != 0)
    {
      var s = rs[0].getAttribute('filetype')+', '+rs[0].getAttribute('filesize');
      var px_w = parseInt(rs[0].getAttribute('filesize_px_w'));
      var px_h = parseInt(rs[0].getAttribute('filesize_px_h'));

      if (px_w && px_h)
      {
        s += ' ('+px_w+'x'+px_h+'px)';
      }

      p_form2.curfile_a.innerHTML = s;
      p_form2.curfile_a.href = rs[0].getAttribute('file');
      p_form2.curfile_div.style.display = 'block';
    }
    else
    {
      p_form2.curfile_div.style.display = 'none';
    }

    // tags
    var tags_ar = rs[0].getAttribute('tags').split(/,/);

    for (var i = 0; i < p_form2.form.elements.length; i++)
    {
      var e = p_form2.form.elements[i];

      if (e.name.substr(0,6) == 'tags[]')
      {
        e.checked = tags_ar.in_array(e.value);
      }
    }
    //

    p_form2.id.value = rs[0].getAttribute('id');

    show_portfolio_form(true, false);
  }

  toggle_wait(false);
}

function portfolio_order(id, dir)
{
  var xml_url = '/xml/portfolio_change_order.php';
  var __query_str = 'id='+escape(id)+'&dir='+escape(dir);

  toggle_wait(true);

  diXMLRequest.get(xml_url+'?'+__query_str, portfolio_order_response);
}

function portfolio_order_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  var idz = new Array;
  idz[1] = new Array;
  idz[2] = new Array;

  for (var i = 0; i < rs.length; i++)
  {
    var id = parseInt(rs[i].getAttribute('id'));
    var name = rs[i].getAttribute('name');
    var value = parseInt(rs[i].getAttribute('value'));
    var ok = parseInt(rs[i].getAttribute('ok'));

    if (ok && (value == 1 || value == 2) && _ge('pr_'+id))
    {
      idz[value][idz[value].length] = id;
    }
  }

  change_rows_order(idz[1], idz[2]);

  toggle_wait(false);
}

function change_rows_order(idz1, idz2)
{
  if (idz1.length != 0 && idz2.length != 0)
  {
    var old_idz = idz1.concat(idz2);
    var new_idz = idz2.concat(idz1);

    var top_elem = _ge('pr_'+idz1[0]);
    var p = top_elem.parentNode;

    for (var i = 0; i < new_idz.length; i++)
    {
      var victim = _ge('pr_'+new_idz[i]);
      //var shim = victim.nextSibling;

      var tmp = victim.cloneNode(true);
      tmp.id += '_';
      p.insertBefore(tmp, top_elem);

      //var tmp = shim.cloneNode(true);
      //p.insertBefore(tmp, top_elem);
    }

    for (var i = 0; i < old_idz.length; i++)
    {
      var victim = _ge('pr_'+old_idz[i]);
      //var shim = victim.nextSibling;

      p.removeChild(victim);
      //p.removeChild(shim);

      var new_born = _ge('pr_'+old_idz[i]+'_');
      new_born.id = new_born.id.substr(0, new_born.id.length - 1);
    }

    var num1 = _ge('pr_num_'+idz1[0]);
    var num2 = _ge('pr_num_'+idz2[0]);

    if (num1 && num2)
    {
      var tmp = num2.innerHTML;
      num2.innerHTML = num1.innerHTML;
      num1.innerHTML = tmp;
    }
  }
}

function portfolio_del(id)
{
  if (confirm('Удалить работу из портфолио?') && confirm('Вы уверены?'))
  {
    var xml_url = '/xml/portfolio_del.php';
    var __query_str = 'id='+escape(id);

    toggle_wait(true);

    diXMLRequest.get(xml_url+'?'+__query_str, portfolio_del_response);
  }
}

function portfolio_del_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  for (var i = 0; i < rs.length; i++)
  {
    var id = parseInt(rs[i].getAttribute('id'));
    var name = rs[i].getAttribute('name');
    var value = parseInt(rs[i].getAttribute('value'));
    var ok = parseInt(rs[i].getAttribute('ok'));
    var _s = ok ? _ge("pr_"+id) : false;

    if (_s)
    {
      var _p = _s.parentNode;
      _p.removeChild(_s);
    }
  }

  toggle_wait(false);
}

function show_portfolio(id)
{
  var e = _ge('pr_ext_'+id);
  var i = _ge('pr_img_'+id);

  if (e)
  {
    e.style.display = (e.style.display == 'block') ? 'none' : 'block';

    if (i && i.src != i.alt)
    {
      i.src = i.alt;
    }
  }
}

function toggle_wait(v)
{
  var e = _ge('wait_div');
  if (!e) return;

  if (v)
  {
    var x = mouse_pos.x + 25;
    var y = mouse_pos.y + 25;

    e.style.left = x+'px';
    e.style.top = y+'px';

    e.style.visibility = 'visible';
  }
  else
  {
    e.style.visibility = 'hidden';
  }
}

function catch_mouse_pos(e)
{
  if (!e) e = window.event;

  mouse_pos.x = e.clientX;
  mouse_pos.y = e.clientY;
}

function show_messages_from_user(id)
{
  var e = _ge('thread_w_user_'+id);
  var a = _ge('a_toggler_'+id);

  if (e && a)
  {
    if (e.style.display != 'block') set_messages_read(id);

    a.innerHTML = e.style.display == 'block' ? 'Открыть список сообщений' : 'Скрыть список сообщений';
    e.style.display = e.style.display == 'block' ? 'none' : 'block';
  }
}

function show_message_reply_form(user_id, user_login)
{
  var a = _ge('my_msg_anchor_'+user_id);
  if (!a) a = _ge('my_msg_anchor_default');

  var to_user_login = _ge('to_user_login');

  if (!user_login)
  {
    a_user_login = _ge('a_user_login_'+user_id);
    if (a_user_login) user_login = a_user_login.innerHTML;
  }

  if (user_login) to_user_login.innerHTML = user_login;

  if (user_login && a && message_reply_div && message_to_user_id)
  {
    a.parentNode.insertBefore(message_reply_div, a);
    message_reply_div.style.display = (message_to_user_id.value == user_id && message_reply_div.style.display == 'block')
      ? 'none'
      : 'block';

    message_to_user_id.value = user_id;
  }
}

function set_messages_read(user_id)
{
  var xml_url = '/xml/message_read.php';
  var __query_str = 'user_id='+escape(user_id);

  diXMLRequest.post(xml_url, __query_str, set_messages_read_response);
}

function set_messages_read_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  if (rs[0].getAttribute('ok'))
  {
    var user_greeting_msg_count = _ge('user_greeting_msg_count');
    var cur_count = user_greeting_msg_count.innerHTML;

    var read_count = parseInt(rs[0].getAttribute('read_count'));

    if (cur_count.length && read_count)
    {
      cur_count = cur_count.substr(2);
      cur_count = cur_count.substr(0, cur_count.length - 1);
      cur_count = parseInt(cur_count);
      if (!cur_count || isNaN(cur_count)) cur_count = 0;

      cur_count -= read_count;

      user_greeting_msg_count.innerHTML = cur_count > 0 ? ' ('+cur_count+')' : '';
    }
  }
  else
  {
    alert('Сообщения не были отмечены как прочитанные. Обратитесь к администратору.')
  }
}

function close_project(id)
{
  if (confirm('Закрыть проект?') && confirm('Вы уверены?'))
  {
    var xml_url = '/xml/project_close.php';
    var __query_str = 'id='+escape(id);

    toggle_wait(true);

    diXMLRequest.get(xml_url+'?'+__query_str, close_project_response);
  }
}

function close_project_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  for (var i = 0; i < rs.length; i++)
  {
    var id = parseInt(rs[i].getAttribute('id'));
    var name = rs[i].getAttribute('name');
    var value = parseInt(rs[i].getAttribute('value'));
    var ok = parseInt(rs[i].getAttribute('ok'));

    var h = ok ? _ge('project_head_'+id) : false;
    var a = ok ? _ge('project_actions_'+id) : false;
    var t = ok ? _ge('project_title_'+id) : false;

    if (h && a && t)
    {
      h.className = 'main_job_block_closed';
      a.innerHTML = '';
      t.innerHTML = '[Проект закрыт] '+t.innerHTML;
    }
  }

  toggle_wait(false);
}

function toggle_tag_group(gid)
{
  var g_div = _ge('tag_group_'+gid);

  if (g_div)
  {
    g_div.style.display = g_div.style.display != 'block' ? 'block' : 'none';
  }
}

function edit_blog_post(id)
{
  if (!id) return;

  //toggle_wait(true);

  window.location.href = '/'+cms_paths_ar['user_blog_post']+'/'+id+'/';
}

function del_blog_post(id)
{
  if (confirm('Удалить запись?') && confirm('Вы уверены?'))
  {
    var xml_url = '/xml/blog_del.php';
    var __query_str = 'id='+escape(id);

    //toggle_wait(true);

    diXMLRequest.get(xml_url+'?'+__query_str, del_blog_post_response);
  }
}

function del_blog_post_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  for (var i = 0; i < rs.length; i++)
  {
    var id = parseInt(rs[i].getAttribute('id'));
    var name = rs[i].getAttribute('name');
    var value = parseInt(rs[i].getAttribute('value'));
    var ok = parseInt(rs[i].getAttribute('ok'));

    if (ok)
    {
      var victim = _ge('blog_post_'+id);

      if (victim)
      {
        victim.parentNode.removeChild(victim);
      }
    }
  }

  //toggle_wait(false);
}

function toggle_change_password_form()
{
  var e1 = _ge('change_password_div');
  var e2 = _ge('change_password_message');

  if (!e1 || !e2) return;

  if (e2.style.visibility != 'visible')
  {
    e1.style.visibility = e1.style.visibility != 'visible' ? 'visible' : 'hidden';
  }
  else
  {
    e1.style.visibility = 'hidden';
  }

  e2.style.visibility = 'hidden';
}

function change_password()
{
  var old_password = _ge('old_password');
  var new_password = _ge('new_password');
  var new_password2 = _ge('new_password2');
  var change_password_submit = _ge('change_password_submit');
  var change_password_hint = _ge('change_password_hint');

  var _old = old_password.value;
  var _new = new_password.value;
  var _new2 = new_password2.value;

  if (!_old)
  {
    change_password_hint.innerHTML = 'Введите Старый пароль';
    return false;
  }
  else if (_new.length < 6)
  {
    change_password_hint.innerHTML = 'Мин. длина Нового пароля - 6 символов';
    return false;
  }
  else if (_new != _new2)
  {
    change_password_hint.innerHTML = 'Введенные пароли не совпадают';
    return false;
  }

  if (change_password_submit)
  {
    change_password_submit.src = '/i/btn_change_wait.gif';
    change_password_submit.disabled = true;
  }

  var xml_url = '/xml/change_pwd.php';
  var __query_str = 'old='+hex_md5(_old)+'&new='+hex_md5(_new);

  toggle_wait(true);

  diXMLRequest.post(xml_url, __query_str, change_password_response);

  return false;
}

function change_password_response(xmlDoc)
{
  var change_password_submit = _ge('change_password_submit');
  var change_password_hint = _ge('change_password_hint');

  var e1 = _ge('change_password_div');
  var e2 = _ge('change_password_message');

  if (change_password_submit)
  {
    change_password_submit.src = '/i/btn_change.gif';
    change_password_submit.disabled = false;
  }

  toggle_wait(false);

  if (xmlDoc && xmlDoc.documentElement)
  {
    var rs = xmlDoc.documentElement.getElementsByTagName('result');

    for (var i = 0; i < rs.length; i++)
    {
      var ok = parseInt(rs[i].getAttribute('ok'));
      var secret = rs[i].getAttribute('secret');

      var toggle_visible = true;;

      if (ok == 1 && secret)
      {
        e2.innerHTML = 'Пароль был успешно изменен!';

        var date = new Date();
        date.setFullYear(date.getFullYear() + 1);
        setCookie('secret', secret, date);
      }
      else if (ok == 0)
      {
        change_password_hint.innerHTML = 'Введен неверный Старый пароль';
        toggle_visible = false;
      }
      else if (ok == -1)
      {
        e2.innerHTML = 'Не удалось изменить пароль. Обратитесь к администратору.';
      }

      if (toggle_visible)
      {
        e1.style.visibility = 'hidden';
        e2.style.visibility = 'visible';
      }
    }
  }
}

function toggle_restore_form()
{
  var e = _ge('forgotten_password_form');
  var e2 = _ge('forgotten_password_message');

  if (!e || !e2) return;

  if (e2.style.visibility != 'visible')
  {
    e.style.visibility = e.style.visibility != 'visible' ? 'visible' : 'hidden';
  }
  else
  {
    e.style.visibility = 'hidden';
  }

  e2.style.visibility = 'hidden';
}

function restore_forgotten_password()
{
  var vm_forgotten_login = _ge('vm_forgotten_login');
  var vm_forgotten_email = _ge('vm_forgotten_email');
  var vm_forgotten_submit = _ge('vm_forgotten_submit');

  var login = vm_forgotten_login.value;
  var email = vm_forgotten_email.value;

  vm_forgotten_submit.src = '/i/btn_send2_wait.gif';
  vm_forgotten_submit.disabled = true;

  var xml_url = '/xml/restore_pwd.php';
  var __query_str = 'login='+escape(login)+'&email='+escape(email);

  toggle_wait(true);

  diXMLRequest.post(xml_url, __query_str, restore_forgotten_password_response);

  return false;
}

function restore_forgotten_password_response(xmlDoc)
{
  var vm_forgotten_login = _ge('vm_forgotten_login');
  var vm_forgotten_email = _ge('vm_forgotten_email');
  var vm_forgotten_submit = _ge('vm_forgotten_submit');

  var e = _ge('forgotten_password_form');
  var e2 = _ge('forgotten_password_message');

  var suffix = '<br>[<a href="#" onclick="_ge(\'forgotten_password_message\').style.visibility=\'hidden\';">закрыть</a>]';

  //vm_forgotten_submit.src = '/i/btn_send2.gif';
  vm_forgotten_submit.disabled = false;

  toggle_wait(false);

  if (xmlDoc && xmlDoc.documentElement)
  {
    var rs = xmlDoc.documentElement.getElementsByTagName('result');

    for (var i = 0; i < rs.length; i++)
    {
      var ok = parseInt(rs[i].getAttribute('ok'));

      if (ok == 1)
      {
        e2.innerHTML = 'Новый пароль был выслан на указанную Вами почту.'+suffix;
      }
      else if (ok == 0)
      {
        e2.innerHTML = 'Пользователь с таким Логином и E-mail не зарегистрирован.'+suffix;
      }
      else if (ok == -1)
      {
        e2.innerHTML = 'Не удалось отправить Вам письмо. Обратитесь к администратору.'+suffix;
      }

      e.style.visibility = 'hidden';
      e2.style.visibility = 'visible';
    }
  }
}

/* ftp file manager */

function ftp_rename_file(path, idx, fn, reload_page)
{
  if (fn.toLowerCase() == 'portfolio' || fn.toLowerCase() == 'files')
  {
    alert('Папки PORTFOLIO и FILES нельзя переименовать');
    return;
  }

  var nu_fn = prompt('Переименовать "'+fn+'" в: ', fn);
  var reload_page = reload_page||0;

  if (nu_fn && nu_fn != fn)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=rename&fn='+escape(fn)+'&path='+escape(path)+'&new_fn='+escape(nu_fn)+'&idx='+escape(idx)+'&reload_page='+escape(reload_page);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_del_file(path, idx)
{
  var ids_ar = new Array();
  var fn_ar = new Array();

  if (idx) ids_ar[0] = idx;
  else
  {
    for (var i = 1; i <= total_file_count; i++)
    {
      var cb = _ge('selected_'+i);
      if (cb && cb.checked) ids_ar[ids_ar.length] = i;
    }
  }

  if (!ids_ar.length)
  {
    alert('Не выделено ни одного файла');
    return;
  }

  if (!confirm('Удалить '+ids_ar.length+' файл(ов)?') || !confirm('Вы уверены?')) return;

  for (var i = 0; i < ids_ar.length; i++)
  {
    var s = _ge('ftp_hidden_fn_'+ids_ar[i]); //ftp_fn_
    fn_ar[fn_ar.length] = s.value; //innerHTML
  }

  var xml_url = '/xml/file_manager.php';
  var __query_str = 'action=del&fn='+escape(fn_ar.join('*'))+'&idx='+ids_ar.join('*')+'&path='+escape(path);
  diXMLRequest.post(xml_url, __query_str, ftp_file_response);
}

function ftp_toggle_selected(action, path, state, action_title)
{
  var action2 = action;
  if (action2 == 'in_portfolio') action2 = 'portfolio';

  var ids_ar = new Array();
  var fn_ar = new Array();

  for (var i = 1; i <= total_file_count; i++)
  {
    var cb = _ge('selected_'+i);
    if (cb && cb.checked)
    {
      ids_ar.push(i);
    }
  }

  if (!ids_ar.length)
  {
    alert('Не выделено ни одного файла');
    return;
  }

  if (action_title)
    if (!confirm(ids_ar.length+' выделенный(ых) файл(а): '+action_title+'?') || !confirm('Вы уверены?')) return;

  for (var i = 0; i < ids_ar.length; i++)
  {
    var s = _ge('ftp_hidden_fn_'+ids_ar[i]); //ftp_fn_
    fn_ar.push(s.value); //innerHTML

    var e1 = _ge('ftp_hidden_'+action+'_'+ids_ar[i]);
    var e2 = _ge('ftp_toggle_'+action2+'_link_'+ids_ar[i]);

    e1.value = state ? '1' : '0';
    e2.innerHTML = "Подождите...";
  }

  var xml_url = '/xml/file_manager.php';
  var __query_str = 'action='+escape(action)+'_selected&fn='+escape(fn_ar.join('*'))+'&path='+escape(path)+'&s='+escape(state)+'&idx='+ids_ar.join('*');
  diXMLRequest.post(xml_url, __query_str, ftp_file_response);
}

function ftp_edit_keywordz(path, idx, fn)
{
  var e = _ge('ftp_hidden_keywordz_'+idx);
  var s = prompt('Введите Ключевые слова для "'+fn+'": ', e.value);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=edit_keywordz&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_dir_edit_keywordz(path, idx)
{
  var s = prompt('Введите Ключевые слова для фотографий в папке "'+path+'": ', '');

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=dir_edit_keywordz&fn=1&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_rotate_img(path, idx, fn, cw)
{
  var xml_url = '/xml/file_manager.php';
  var __query_str = 'action=rotate_img&fn='+escape(fn)+'&path='+escape(path)+'&cw='+escape(cw)+'&idx='+escape(idx);
  diXMLRequest.post(xml_url, __query_str, ftp_file_response);
}

function ftp_edit_description(path, idx, fn)
{
  var e = _ge('ftp_hidden_description_'+idx);
  var s = prompt('Введите Описание для "'+fn+'": ', e.value);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=edit_description&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_edit_title(path, idx, fn)
{
  var e = _ge('ftp_hidden_title_'+idx);
  var s = prompt('Введите Название для "'+fn+'": ', e.value);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=edit_title&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_edit_equipment(path, idx, fn)
{
  var e = _ge('ftp_hidden_equipment_'+idx);
  var s = prompt('Введите Оборудование для "'+fn+'": ', e.value);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=edit_equipment&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_edit_price(path, idx, fn)
{
  var e = _ge('ftp_hidden_price_'+idx);
  var s = prompt('Введите Цену продажи для "'+fn+'": ', e.value != '---' ? e.value : 0);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=edit_price&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_edit_price_percent(path, idx, fn)
{
  var e = _ge('ftp_hidden_price_percent_'+idx);
  var s = prompt('Введите Спец.цену печати для "'+fn+'" (в процентах): ', e.value != "---" ? e.value : 100);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=edit_price_percent&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_dir_edit_price(path, idx)
{
  var e = _ge('ftp_hidden_dir_price_'+idx);
  var s = prompt('Введите Цену для "'+path+'": ', e.value != "---" ? e.value : 0);

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=dir_edit_price&fn=1&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_dir_save_properties(path, idx)
{
  var e = {printer: _ge('dir_printer_id_'+idx), paper: _ge('dir_paper_id_'+idx), format: _ge('dir_format_id_'+idx)};

  if (e.printer && e.paper && e.format)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=dir_save_properties&path='+escape(path)+'&printer_id='+escape(e.printer.value)+'&paper_id='+escape(e.paper.value)+'&format_id='+escape(e.format.value)+'&idx='+escape(idx)+'&fn=1';
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }

  ftp_dir_toggle_properties_div(path, idx);
}

function ftp_toggle_in_portfolio(path, idx, fn)
{
  var e1 = _ge('ftp_hidden_in_portfolio_'+idx);
  var e2 = _ge('ftp_toggle_portfolio_link_'+idx);

  if (e1 && e2)
  {
    e1.value = e1.value == '0' ? '1' : '0';
    e2.innerHTML = "Подождите...";

    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=in_portfolio&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(e1.value)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_toggle_in_photobank(path, idx, fn)
{
  var e1 = _ge('ftp_hidden_in_photobank_'+idx);
  var e2 = _ge('ftp_toggle_in_photobank_link_'+idx);
  //var e2 = _ge('ftp_in_photobank_checkbox_'+idx);

  if (e1 && e2)
  {
    e1.value = e1.value == '0' ? '1' : '0';
    e2.innerHTML = "Подождите...";

    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=in_photobank&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(e1.value)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_toggle_dir_in_photobank(path, idx)
{
  var e1 = _ge('ftp_dir_in_photobank_checkbox_'+idx);
  var e2 = _ge('ftp_toggle_dir_in_photobank_link_'+idx);
  //var e2 = _ge('ftp_in_photobank_checkbox_'+idx);

  if (e2)
  {
    //alert(e1+' '+e2+' '+e1.checked);

    //var e1value = e1.checked ? 0 : 1;
    var e1value = e1.checked ? 1 : 0;
    //e1.value = e1.value == '0' ? '1' : '0';
    e2.innerHTML = "Подождите...";

    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=dir_in_photobank&path='+escape(path)+'&fn=1'+'&s='+escape(e1value)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_toggle_dir_to_sell(path, idx)
{
  var e1 = _ge('ftp_dir_to_sell_checkbox_'+idx);
  var e2 = _ge('ftp_toggle_dir_to_sell_link_'+idx);
  //var e2 = _ge('ftp_in_photobank_checkbox_'+idx);

  if (e2)
  {
    var e1value = e1.checked ? 1 : 0;
    //e1.value = e1.value == '0' ? '1' : '0';
    e2.innerHTML = "Подождите...";

    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=dir_to_sell&path='+escape(path)+'&fn=1'+'&s='+escape(e1value)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_toggle_comments_enabled(path, idx, fn)
{
  var e1 = _ge('ftp_hidden_comments_enabled_'+idx);
  var e2 = _ge('ftp_toggle_comments_enabled_link_'+idx);

  if (e1 && e2)
  {
    e1.value = e1.value == '0' ? '1' : '0';
    e2.innerHTML = "Подождите...";

    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=comments_enabled&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(e1.value)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_toggle_to_sell(path, idx, fn)
{
  var e1 = _ge('ftp_hidden_to_sell_'+idx);
  var e2 = _ge('ftp_toggle_to_sell_link_'+idx);

  if (e1 && e2)
  {
    e1.value = e1.value == '0' ? '1' : '0';
    e2.innerHTML = "Подождите...";

    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=to_sell&fn='+escape(fn)+'&path='+escape(path)+'&s='+escape(e1.value)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_set_password(path, idx)
{
  if (path.toLowerCase() == 'portfolio' || path.toLowerCase() == 'files')
  {
    alert('Для папок PORTFOLIO и FILES нельзя назначить пароль');
    return;
  }

  var s = prompt('Введите Пароль для "'+path+'": ', '');

  if (s)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=set_password&fn='+escape(path)+'&path='+escape(path)+'&s='+escape(s)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_toggle_password_noprint(path, idx)
{
  if (path.toLowerCase() == 'portfolio' || path.toLowerCase() == 'files')
  {
    alert('Для папок PORTFOLIO и FILES нельзя назначить пароль');
    return;
  }

  var e = _ge('ftp_password_noprint_cb_'+idx);

  if (e)
  {
    var xml_url = '/xml/file_manager.php';
    var __query_str = 'action=toggle_password_noprint&fn='+escape(path)+'&path='+escape(path)+'&s='+escape(e.checked?1:0)+'&idx='+escape(idx);
    diXMLRequest.post(xml_url, __query_str, ftp_file_response);
  }
}

function ftp_move_file(path, idx, fn)
{
  var ids_ar = new Array();
  var fn_ar = new Array();

  if (typeof idx == 'object')
  {
    var move_to_sel = idx;
    idx = false;
  }
  else
  {
    var move_to_sel = idx ? _ge('file_move_select_'+idx) : _ge('bottom_move_select');
  }

  if (idx) ids_ar[0] = idx;
  else
  {
    for (var i = 1; i <= total_file_count; i++)
    {
      var cb = _ge('selected_'+i);
      if (cb && cb.checked) ids_ar[ids_ar.length] = i;
    }
  }

  if (!ids_ar.length)
  {
    alert('Не выделено ни одного файла');
    return;
  }

  if (move_to_sel.value == '*')
  {
    alert('Выберите папку, куда следует переместить файл(ы)');
    return;
  }

  if (!confirm('Переместить '+ids_ar.length+' файл(ов)?') || !confirm('Вы уверены?')) return;

  toggle_html_tags_div(idx);

  for (var i = 0; i < ids_ar.length; i++)
  {
    var s = _ge('ftp_hidden_fn_'+ids_ar[i]); //ftp_fn_
    fn_ar[fn_ar.length] = s.value; //innerHTML
  }

  var xml_url = '/xml/file_manager.php';
  var __query_str = 'action=move&fn='+escape(fn_ar.join('*'))+'&idx='+ids_ar.join('*')+'&path='+escape(path)+'&new_path='+escape(move_to_sel.value);
  diXMLRequest.post(xml_url, __query_str, ftp_file_response);
}

function ftp_file_response(xmlDoc)
{
  if (xmlDoc && xmlDoc.documentElement)
  {
    var rs = xmlDoc.documentElement.getElementsByTagName('result');

    for (var i = 0; i < rs.length; i++)
    {
      var ok = parseInt(rs[i].getAttribute('ok'));
      var idx = parseInt(rs[i].getAttribute('idx'));
      var old_fn = rs[i].getAttribute('old_fn');
      var fn = rs[i].getAttribute('fn');
      var fn2 = rs[i].getAttribute('fn2');
      var path = rs[i].getAttribute('path');
      var price = rs[i].getAttribute('price');
      var price2 = rs[i].getAttribute('price2');
      var local_path = rs[i].getAttribute('local_path');
      var action = rs[i].getAttribute('action');
      var text = rs[i].getAttribute('text');
      var s = rs[i].getAttribute('s');
      var reload_page = parseInt(rs[i].getAttribute('reload_page'));

      if (!ok)
      {
        alert('Ошибка: '+text);
        break;
      }

      switch (action)
      {
        case 'rename':
          if (reload_page)
          {
            window.location.href = '/'+cms_paths_ar['user_ftp']+'/?path='+local_path+fn;
            return;
          }

          var fn_span = _ge('ftp_fn_'+idx);
          var fn_link = _ge('ftp_dir_link_'+idx);
          var fn_link2 = _ge('ftp_dir_link2_'+idx);
          var fn_img = _ge('ftp_file_img_'+idx);
          var fn_a = _ge('ftp_file_a_'+idx);
          var fn_uri = _ge('file_uri_'+idx);
          var fn_uri_tag = _ge('file_uri_tag_'+idx);
          var fn_preview_uri = _ge('file_preview_uri_'+idx);
          var fn_preview_uri_tag = _ge('file_preview_uri_tag_'+idx);
          var ftp_rename_a = _ge('ftp_rename_a_'+idx);
          //var ftp_rename_dir_a = _ge('ftp_rename_dir_a_'+idx);
          var ftp_hidden_fn = _ge('ftp_hidden_fn_'+idx);

          var new_full_fn = 'http://'+http_host+'/'+path+fn;
          var old_full_fn = 'http://'+http_host+'/'+path+old_fn;
          var new_full_tn_fn = 'http://'+http_host+'/_preview/'+path+fn;
          var old_full_tn_fn = 'http://'+http_host+'/_preview/'+path+old_fn;

          if (ok && fn_span) fn_span.innerHTML = fn2;
          if (ok && fn_link) fn_link.href = '/'+cms_paths_ar['user_ftp']+'/?path='+fn;
          if (ok && fn_link2) fn_link2.href = '/'+cms_paths_ar['user_ftp']+'/?path='+fn;
          ////if (ok && fn_img) fn_img.src = '/_preview/'+path+fn;
          if (ok && fn_a) fn_a.href = '/'+path+fn;
          if (ok && fn_uri) fn_uri.value = new_full_fn;
          if (ok && fn_uri_tag && old_fn) fn_uri_tag.value = fn_uri_tag.value.replace(old_full_fn, new_full_fn);
          if (ok && fn_preview_uri) fn_preview_uri.value = new_full_tn_fn;
          if (ok && fn_preview_uri_tag && old_fn) fn_preview_uri_tag.value = fn_preview_uri_tag.value.replace(old_full_tn_fn, new_full_tn_fn);
          if (ok && ftp_rename_a) ftp_rename_a.href = "javascript:ftp_rename_file('"+local_path+"',"+idx+",'"+fn+"');";
          //if (ok && ftp_rename_dir_a) ftp_rename_dir_a.href = "javascript:ftp_rename_file('"+local_path+"',"+idx+",'"+fn+"');";
          if (ok && ftp_hidden_fn) ftp_hidden_fn.value = fn;
          break;

        case 'del':
          var e = _ge('ftp_td_'+idx);
          //if (e) e.parentNode.removeChild(e);
          if (e) kill_file_cell(e);
          break;

        case 'move':
          var e = _ge('ftp_td_'+idx);
          //if (e) e.parentNode.removeChild(e);
          if (e) kill_file_cell(e);
          break;

        case 'edit_keywordz':
          var ftp_hidden_keywordz = _ge('ftp_hidden_keywordz_'+idx);
          var e1 = _ge('ftp_keywordz_span_'+idx);
          if (ok && ftp_hidden_keywordz && e1)
          {
            ftp_hidden_keywordz.value = s;
            e1.innerHTML = s;
          }
          break;

        case 'dir_edit_keywordz':
          break;

        case 'edit_description':
          var ftp_hidden_description = _ge('ftp_hidden_description_'+idx);
          var e1 = _ge('ftp_description_span_'+idx);
          if (ok && ftp_hidden_description && e1)
          {
            ftp_hidden_description.value = s;
            e1.innerHTML = s;
          }
          break;

        case 'rotate_img':
          var width = parseInt(rs[i].getAttribute('width'));
          var height = parseInt(rs[i].getAttribute('height'));

          var ftp_file_img = _ge('ftp_file_img_'+idx);
          if (ok && width && height && ftp_file_img)
          {
            if (is_gecko) window.location.reload();
            else
            {
              var a = ftp_file_img.src;
              ftp_file_img.src = '/i/z.gif';

              var x = ftp_file_img.width;
              ftp_file_img.width = ftp_file_img.height;
              ftp_file_img.height = x;

              ftp_file_img.src = a;
            }
          }
          break;

        case 'edit_title':
          var ftp_title = _ge('ftp_title_'+idx);
          var ftp_title_h1 = _ge('ftp_title_h1_'+idx);
          var ftp_title_h1_print = _ge('ftp_title_h1_print_'+idx);
          var ftp_hidden_title = _ge('ftp_hidden_title_'+idx);
          if (ok && ftp_hidden_title) ftp_hidden_title.value = s;
          if (ok && ftp_title) ftp_title.innerHTML = s;
          if (ok && ftp_title_h1) ftp_title_h1.innerHTML = s;
          if (ok && ftp_title_h1_print) ftp_title_h1_print.innerHTML = s;
          break;

        case 'edit_equipment':
          var ftp_hidden_equipment = _ge('ftp_hidden_equipment_'+idx);
          var e1 = _ge('ftp_equipment_span_'+idx);
          if (ok && ftp_hidden_equipment && e1)
          {
            ftp_hidden_equipment.value = s;
            e1.innerHTML = s;
          }
          break;

        case 'edit_price':
          var ftp_hidden_price = _ge('ftp_hidden_price_'+idx);
          var e1 = _ge('ftp_price_span_'+idx);
          if (ok && ftp_hidden_price && e1)
          {
            if (!s) s = '---';

            ftp_hidden_price.value = s;
            e1.innerHTML = s;
          }
          break;

        case 'edit_price_percent':
          var ftp_hidden_price_percent = _ge('ftp_hidden_price_percent_'+idx);
          var e1 = _ge('ftp_price_percent_span_'+idx);
          if (ok && ftp_hidden_price_percent && e1)
          {
            if (!s) s = '---';

            ftp_hidden_price_percent.value = s;
            e1.innerHTML = s;
          }

          var e2 = _ge('ftp_print_price_'+idx);
          var e3 = _ge('ftp_print_price_upped_'+idx);

          if (e2) e2.innerHTML = price;
          if (e3) e3.innerHTML = price2;
          break;

        case 'dir_edit_price':
          var ftp_hidden_dir_price_percent = _ge('ftp_hidden_dir_price_'+idx);
          var e1 = _ge('ftp_dir_price_percent_span_'+idx);
          if (ok && ftp_hidden_dir_price_percent && e1)
          {
            if (!s) s = '---';

            ftp_hidden_dir_price_percent.value = s;
            e1.innerHTML = s;
          }

          var e1 = _ge('ftp_hidden_dir_price_'+idx);
          var e4 = _ge('ftp_hidden_dir_print_price_'+idx);
          var e2 = _ge('dir_print_price_'+idx);
          var e3 = _ge('dir_print_price_upped_'+idx);

          if (e1 && e2 && e3 && e4 && e4.value)
          {
            price = e4.value;

            if (price * 1)
            {
              e2.innerHTML = price;
              e3.innerHTML = Math.round(price * s / 100);
            }
          }

          break;

        case 'dir_save_properties':
          var e1 = _ge('ftp_hidden_dir_price_'+idx);
          var e4 = _ge('ftp_hidden_dir_print_price_'+idx);
          var e2 = _ge('dir_print_price_'+idx);
          var e3 = _ge('dir_print_price_upped_'+idx);

          if (e1 && e2 && e3 && e4)
          {
            e2.innerHTML = price;
            e3.innerHTML = Math.round(price * e1.value / 100);

            e4.value = price;
          }
          break;

        case 'in_portfolio':
          var e1 = _ge('ftp_hidden_in_portfolio_'+idx);
          var e2 = _ge('ftp_toggle_portfolio_link_'+idx);
          var e3 = _ge('ftp_in_portfolio_checkbox_'+idx);
          if (ok && e1 && e2 && e3)
          {
            //e2.innerHTML = user_ftp_in_portfolio[parseInt(e1.value)];
            //e2.style.backgroundColor = parseInt(e1.value) ? '#ff0' : '';

            e2.innerHTML = user_ftp_in_portfolio[0];
            e3.checked = parseInt(e1.value) ? true : false;
          }
          break;

        case 'in_photobank':
          var e1 = _ge('ftp_hidden_in_photobank_'+idx);
          var e2 = _ge('ftp_toggle_in_photobank_link_'+idx);
          var e3 = _ge('ftp_in_photobank_checkbox_'+idx);
          if (ok && e1 && e2 && e3)
          {
            //e2.innerHTML = user_ftp_in_photobank[parseInt(e1.value)];
            //e2.style.backgroundColor = parseInt(e1.value) ? '#ff0' : '';

            e2.innerHTML = user_ftp_in_photobank[0];
            e3.checked = parseInt(e1.value) ? true : false;
          }
          break;

        case 'dir_in_photobank':
          var e2 = _ge('ftp_toggle_dir_in_photobank_link_'+idx);
          var e3 = _ge('ftp_dir_in_photobank_checkbox_'+idx);
          if (ok && e2 && e3)
          {
            //e2.innerHTML = user_ftp_in_photobank[parseInt(e1.value)];
            //e2.style.backgroundColor = parseInt(e1.value) ? '#ff0' : '';

            e2.innerHTML = user_ftp_in_photobank[0];
            e3.checked = parseInt(s) ? true : false;
          }
          break;

        case 'dir_to_sell':
          var e2 = _ge('ftp_toggle_dir_to_sell_link_'+idx);
          var e3 = _ge('ftp_dir_to_sell_checkbox_'+idx);
          if (ok && e2 && e3)
          {
            //e2.innerHTML = user_ftp_to_sell[parseInt(e1.value)];
            //e2.style.backgroundColor = parseInt(e1.value) ? '#ff0' : '';

            e2.innerHTML = user_ftp_to_sell[0];
            e3.checked = parseInt(s) ? true : false;
          }
          break;

        case 'comments_enabled':
          var e1 = _ge('ftp_hidden_comments_enabled_'+idx);
          var e2 = _ge('ftp_toggle_comments_enabled_link_'+idx);
          var e3 = _ge('ftp_comments_enabled_checkbox_'+idx);
          if (ok && e1 && e2 && e3)
          {
//            e2.innerHTML = user_ftp_comments_enabled[parseInt(e1.value)];
//            e2.style.backgroundColor = parseInt(e1.value) ? '#fff' : '';

            e2.innerHTML = user_ftp_comments_enabled[0];
            e3.checked = parseInt(e1.value) ? true : false;
          }
          break;

        case 'to_sell':
          var e1 = _ge('ftp_hidden_to_sell_'+idx);
          var e2 = _ge('ftp_toggle_to_sell_link_'+idx);
          var e3 = _ge('ftp_to_sell_checkbox_'+idx);
          if (ok && e1 && e2 && e3)
          {
//            e2.innerHTML = user_ftp_to_sell[parseInt(e1.value)];
//            e2.style.backgroundColor = parseInt(e1.value) ? '#fff' : '';

            e2.innerHTML = user_ftp_to_sell[0];
            e3.checked = parseInt(e1.value) ? true : false;
          }
          break;

        case 'set_password':
          if (ok)
          {
            alert('Пароль успешно назначен');
            var e = _ge('ftp_dir_img_'+idx);
            if (e) e.src = '/i/e/folder-pwd.gif';

            var e2 = _ge('ftp_password_noprint_div_'+idx);
            if (e2) e2.style.display = 'block';
          }
          break;

        case 'toggle_password_noprint':
          if (ok)
          {
          }
          break;
      }
    }
  }
}

function kill_file_cell(e)
{
  var tr1 = e.parentNode;
  var tr2;
  var td2;

  e.parentNode.removeChild(e);

  while (true)
  {
    tr2 = tr1.nextSibling;
    td2 = tr2 ? tr2.firstChild : false;

    if (!tr2 || !td2) return;

//    alert(td2.nodeType+' '+td2.nodeName+' '+td2.nodeValue);

    //tr2.removeChild(td2);
    tr1.appendChild(td2);

    tr1 = tr2;
  }
}

var active_html_tags_div_idx = 0;

function toggle_html_tags_div(idx)
{
  var e = _ge('ftp_html_tags_'+idx);
  var e2 = _ge('ftp_html_tags_'+active_html_tags_div_idx);

  if (active_html_tags_div_idx && e2 && e2.style.display == 'block' && active_html_tags_div_idx != idx)
  {
    e2.style.display = 'none';
    //delEvent(e, "scroll", html_tags_div_on_scroll);
  }

  if (e)
  {
    if (e.style.display != 'block')
    {
      active_html_tags_div_idx = idx;

      var _w_size = getCurrentWindowSize();
      var _scrolls = getScrollXY();
      var size_x = 500;
      var size_y = 300;

      if (is_gecko)
      {
        size_y = 350;
        e.style.height = size_y+'px';
      }

      //addEvent(e, "scroll", html_tags_div_on_scroll);

      e.style.left = Math.round((_w_size['w'] - size_x)/2 + _scrolls[0])+'px';
      e.style.top = Math.round((_w_size['h'] - size_y)/2 + _scrolls[1])+'px';

      e.style.display = 'block';
    }
    else
    {
      e.style.display = 'none';
    }
  }

  if (e && e.style.display == 'none') active_html_tags_div_idx = 0;
}

function html_tags_div_on_scroll(ev)
{
  var event = ev ? ev : window.event;
  var e = _ge('ftp_html_tags_'+active_html_tags_div_idx);

  print_div_on_scroll(ev);

  if (!e) return;

  var _w_size = getCurrentWindowSize();
  var _scrolls = getScrollXY();
  var size_x = 500;
  var size_y = 300;

  if (is_gecko)
  {
    size_y = 350;
  }

  e.style.left = Math.round((_w_size['w'] - size_x)/2 + _scrolls[0])+'px';
  e.style.top = Math.round((_w_size['h'] - size_y)/2 + _scrolls[1])+'px';
}

/*<script type="text/javascript">*/
addEvent(window, "scroll", html_tags_div_on_scroll);
addEvent(window, "mousedown", html_tags_div_on_scroll);
addEvent(window, "mouseup", html_tags_div_on_scroll);
/*</script>*/


var active_print_div_idx = 0;

function toggle_print_div()
{
  var idx = 0;

  var e = _ge('ftp_print_'+idx);
  //var e2 = _ge('ftp_print_'+active_print_div_idx);

  var _e = _ge('ftp_html_tags_'+idx);
  var _e2 = _ge('ftp_html_tags_'+active_html_tags_div_idx);

  //if (active_print_div_idx && e2 && e2.style.display == 'block' && active_print_div_idx != idx)
  //{
  //  e2.style.display = 'none';
  //  //delEvent(e, "scroll", print_div_on_scroll);
  //}

  if (active_html_tags_div_idx && _e2 && _e2.style.display == 'block' && active_html_tags_div_idx != idx)
  {
    _e2.style.display = 'none';
  }

  if (e)
  {
    if (e.style.display != 'block')
    {
      var ids_ar = new Array();

      for (var i = 1; i <= total_file_count; i++)
      {
        var cb = _ge('selected_'+i);
        if (cb && cb.checked) ids_ar[ids_ar.length] = i;
      }

      if (!ids_ar.length)
      {
        alert('Не выделено ни одного файла');
        return;
      }

      //active_print_div_idx = idx;

      var _w_size = getCurrentWindowSize();
      var _scrolls = getScrollXY();
      var size_x = 500;
      var size_y = 300;

      if (is_gecko)
      {
        size_y = 350;
        e.style.height = size_y+'px';
      }

      //addEvent(e, "scroll", print_div_on_scroll);

      e.style.left = Math.round((_w_size['w'] - size_x)/2 + _scrolls[0])+'px';
      e.style.top = Math.round((_w_size['h'] - size_y)/2 + _scrolls[1])+'px';

      e.style.display = 'block';
    }
    else
    {
      e.style.display = 'none';
    }
  }

  //if (e.style.display == 'none') active_print_div_idx = 0;
}

function print_div_on_scroll(ev)
{
  var event = ev ? ev : window.event;

  var e = _ge('ftp_print_'+active_print_div_idx);

  if (!e) return;

  var _w_size = getCurrentWindowSize();
  var _scrolls = getScrollXY();
  var size_x = 500;
  var size_y = 300;

  if (is_gecko)
  {
    size_y = 350;
  }

  e.style.left = Math.round((_w_size['w'] - size_x)/2 + _scrolls[0])+'px';
  e.style.top = Math.round((_w_size['h'] - size_y)/2 + _scrolls[1])+'px';
}

function ftp_print_submit(path)
{
  var idx = 0;

  var e = {
    count: _ge('print_count_'+idx),
    format_id: _ge('print_format_id_'+idx),
    paper_id: _ge('print_paper_id_'+idx),
    printer_id: _ge('print_printer_id_'+idx),
    framing: _ge('print_framing_'+idx),
    color_correction: _ge('print_color_correction_'+idx),
    effect_id: _ge('print_effect_id_'+idx),
    white_frame: _ge('print_white_frame_'+idx),
    carver_service: _ge('print_carver_service_'+idx),
    order_fillet: _ge('order_fillet'),
    phone: _ge('print_phone')
//    comments: _ge('print_comments_'+idx)
  };

  var submit_btn = _ge('print_submit');

  var ids_ar = new Array();
  var fn_ar = new Array();

  for (var i = 1; i <= total_file_count; i++)
  {
    var cb = _ge('selected_'+i);
    if (cb && cb.checked) ids_ar[ids_ar.length] = i;
  }

  if (!ids_ar.length)
  {
    alert('Не выделено ни одного файла');
    return;
  }

  if (e.count < 1)
  {
    alert('Заказать можно не менее одного экземпляра фотографии');
    return;
  }

  if (e.phone.value.length == 0)
  {
    alert('Необходимо указать контактный телефон');
    return;
  }

  printer_paper_onchange();
  if (!is_printer_and_paper_suitable)
  {
    alert('Выберите другую машину или материал');
    return;
  }

  if (!user_ftp_recount_print_cost())
  {
    return;
  }

  if (!confirm('Заказать печать '+ids_ar.length+' файл(ов)?') || !confirm('Вы уверены?')) return;

  submit_btn.value = ' Подождите... ';
  submit_btn.disabled = true;

  for (var i = 0; i < ids_ar.length; i++)
  {
    var s = _ge('ftp_hidden_fn_'+ids_ar[i]); //ftp_fn_
    fn_ar[fn_ar.length] = s.value; //innerHTML
  }

  var xml_url = '/xml/ftp_print.php';
  var __query_str = '';

  for (var i in e)
  {
    __query_str += '&'+i+'='+(typeof e[i].checked != 'undefined' && e[i].type == 'checkbox' ? (e[i].checked ? 1 : 0) : escape(e[i].value));
  }

  __query_str += '&path='+escape(path)+'&fn='+escape(fn_ar.join('*'))+'&idx='+escape(ids_ar.join('*'));

  if (__query_str) __query_str = __query_str.substr(1);

  diXMLRequest.post(xml_url, __query_str, ftp_print_response);
}

function ftp_print_response(xmlDoc)
{
  var submit_btn = _ge('print_submit');

  if (xmlDoc && xmlDoc.documentElement)
  {
    var rs = xmlDoc.documentElement.getElementsByTagName('result');

    for (var i = 0; i < rs.length; i++)
    {
      var ok = parseInt(rs[i].getAttribute('ok'));
      //var idx = parseInt(rs[i].getAttribute('idx'));
      var text = rs[i].getAttribute('text');
      var client = parseInt(rs[i].getAttribute('client'));

      if (!ok)
      {
        alert('Ошибка: '+text);
        break;
      }

      var p = client ? cms_paths_ar['client_print'] : cms_paths_ar['user_print'];

      toggle_print_div();
      window.location.href = '/'+p+'/';
    }
  }

  submit_btn.value = ' Заказать печать ';
  submit_btn.disabled = false;
}

function getCurrentWindowSize()
{
  var myWidth = 0, myHeight = 0;

  if (typeof( window.innerWidth ) == 'number')
  {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  }
  else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
  {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  }
  else if (document.body && (document.body.clientWidth || document.body.clientHeight))
  {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }

  var r = [];
  r["w"] = myWidth;
  r["h"] = myHeight;

  return r;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function ftp_select_all(v)
{
  var ar = _ge_inputs('checkbox', _ge('user_ftp_files_table'), 'selected_', false);

  for (var i = 0; i < ar.length; i++)
  {
    var el = ar[i];

    if (el.name == 'selected[]')
    {
      el.checked = v ? true : false;

      select_file_onclick(el.id.substr(9));
    }
  }
}

function select_file_onclick(idx)
{
  var e = _ge('ftp_pic_tbl_'+idx);
  var c = _ge('selected_'+idx);

  if (e)
  {
    e.style.backgroundImage = c.checked ? 'url(/i/e/cadr2.gif)' : 'url(/i/e/cadr.gif)';
  }

  user_ftp_recount_print_cost();
}

function print_apply_all()
{
  var idx = 0;

  var ar = {
    count: _ge('print_count_'+idx),
    format_id: _ge('print_format_id_'+idx),
    paper_id: _ge('print_paper_id_'+idx),
    printer_id: _ge('print_printer_id_'+idx),
    framing: _ge('print_framing_'+idx),
    color_correction: _ge('print_color_correction_'+idx),
    effect_id: _ge('print_effect_id_'+idx),
    carver_service: _ge('print_carver_service_'+idx),
    order_fillet: _ge('order_fillet_'+idx),
    white_frame: _ge('print_white_frame_'+idx)
  };

  printer_paper_onchange();
  if (!is_printer_and_paper_suitable)
  {
    alert('Выберите другую машину или материал');
    return;
  }

  for (var i = 0; i < document.forms.user_print_form.elements.length; i++)
  {
    var e = document.forms.user_print_form.elements[i];
    if (e.name.substr(e.name.length - 2) == '_0') continue;

    if (e.name.substr(0,11) == 'print_count') e.value = ar.count.value;
    else if (e.name.substr(0,15) == 'print_format_id') e.value = ar.format_id.value;
    else if (e.name.substr(0,14) == 'print_paper_id') e.value = ar.paper_id.value;
    else if (e.name.substr(0,16) == 'print_printer_id') e.value = ar.printer_id.value;
    else if (e.name.substr(0,13) == 'print_framing') e.value = ar.framing.value;
    else if (e.name.substr(0,22) == 'print_color_correction') e.value = ar.color_correction.value;
    else if (e.name.substr(0,15) == 'print_effect_id') e.value = ar.effect_id.value;
    else if (e.name.substr(0,17) == 'print_white_frame') e.value = ar.white_frame.value;
    else if (e.name.substr(0,20) == 'print_carver_service') e.value = ar.carver_service.value;
    else if (e.name.substr(0,12) == 'order_fillet') e.checked = ar.order_fillet.checked;
  }

  user_print_recount_print_cost();
}

function are_all_photos_suitable()
{
  var photos_selected = da_ids_ar.length;
  var x = is_printer_and_paper_suitable;
  var rez = true;

  for (var i = 0; i < photos_selected; i++)
  {
    var _id = da_ids_ar[i];

    printer_paper_onchange(_id);
    if (!is_printer_and_paper_suitable)
    {
      rez = false;
      break;
    }
  }

  is_printer_and_paper_suitable = x;
  return rez;
}

function print_form_on_submit()
{
  var e = _ge('print_submit_btn');

  if (!are_all_photos_suitable())
  {
    alert('Выберите другую машину или материал');
    return false;
  }

  if (e)
  {
    e.value = ' Подождите... ';
    e.disabled = true;
  }

  return user_print_recount_print_cost() ? true : false;
}

function try2select(idx)
{
  var e = _ge('selected_'+idx);

  if (e)
  {
    e.checked = e.checked ? false : true;

    select_file_onclick(idx);
  }
}

function user_ftp_recount_print_cost()
{
  var print_order_cost = _ge('print_order_cost');
  var print_order_cost2 = _ge('print_order_cost2');
  var print_count_0 = _ge('print_count_0');
  var format_id = _ge('print_format_id_0');
  var paper_id = _ge('print_paper_id_0');
  var printer_id = _ge('print_printer_id_0');
  var carver_service = _ge('print_carver_service_0');
  var order_fillet = _ge('order_fillet');

  var print_submit = _ge('print_submit');
  var print_order_error_msg_div = _ge('print_order_error_msg_div');

  if (!print_order_cost || !print_count_0 || !format_id || !paper_id || !printer_id || !print_submit || !print_order_error_msg_div)
    return false;

  var count = print_count_0 ? parseInt(print_count_0.value) : 0;
  if (!count || isNaN(count)) count = 0;

  var format = format_id ? parseInt(format_id.value) : 0;
  if (!format || isNaN(format)) format = 0;

  var paper = paper_id ? parseInt(paper_id.value) : 0;
  if (!paper || isNaN(paper)) paper = 0;

  var printer = printer_id ? parseInt(printer_id.value) : 0;
  if (!printer || isNaN(printer)) printer = 0;

  /*
  var price = format && paper && printer
    ? print_format_prices_ar[format] * print_paper_prices_ar[paper] * print_printer_prices_ar[printer]
    : 0;
  */

  var price = format && paper && printer && typeof print_prices_ar[printer][format][paper] != 'undefined'
    ? print_prices_ar[printer][format][paper] * 1
    : 0;

  //
  var ids_ar = new Array();
  for (var i = 1; i <= total_file_count; i++)
  {
    var cb = _ge('selected_'+i);
    if (cb && cb.checked) ids_ar[ids_ar.length] = i;
  }

  var photos_selected = ids_ar.length;
  //

  var cost = price * count * photos_selected;

  print_order_cost.innerHTML = mysprintf(cost, 2);

  var is_carver = order_fillet.checked || carver_service.value*1 ? true : false;

  if (print_order_cost2)
    print_order_cost2.innerHTML = is_carver ? ' + Цена за багетные услуги' : '';

  //if (hint_span) hint_span.innerHTML = err_msg;

  printer_paper_onchange();

  if (!price)
  {
    print_order_cost.style.backgroundColor = 'none'; //#f00
    print_submit.disabled = true;
    print_order_error_msg_div.innerHTML = '';

    return false;
  }
  else if (cost > photomoney_amount)
  {
    print_order_cost.style.backgroundColor = '#f00';
    print_submit.disabled = true;
    print_order_error_msg_div.innerHTML = 'У Вас недостаточно Фотоденег';

    return false;
  }
  else
  {
    print_order_cost.style.background = 'none';
    print_submit.disabled = false;
    print_order_error_msg_div.innerHTML = '';

    return true;
  }
}

function user_print_recount_print_cost()
{
  var print_order_cost = _ge('print_order_cost');
  var print_order_cost2 = _ge('print_order_cost2');
  var print_submit = _ge('print_submit_btn');
  var print_order_error_msg_div = _ge('print_order_error_msg_div');

  if (!print_order_cost || !print_submit || !print_order_error_msg_div)
    return false;

  var cost = 0;
  var photos_selected = da_ids_ar.length;

  var is_carver = false;

  for (var i = 0; i < photos_selected; i++)
  {
    var _id = da_ids_ar[i];

    var print_count = _ge('print_count_'+_id);
    var format_id = _ge('print_format_id_'+_id);
    var paper_id = _ge('print_paper_id_'+_id);
    var printer_id = _ge('print_printer_id_'+_id);

    var carver_service = _ge('print_carver_service_'+_id);
    var order_fillet = _ge('order_fillet_'+_id);

    if (print_count && format_id && paper_id && printer_id)
    {
      var count = print_count ? parseInt(print_count.value) : 0;
      if (!count || isNaN(count)) count = 0;

      var format = format_id ? parseInt(format_id.value) : 0;
      if (!format || isNaN(format)) format = 0;

      var paper = paper_id ? parseInt(paper_id.value) : 0;
      if (!paper || isNaN(paper)) paper = 0;

      var printer = printer_id ? parseInt(printer_id.value) : 0;
      if (!printer || isNaN(printer)) printer = 0;

      /*
      var price = format && paper && printer
        ? print_format_prices_ar[format] * print_paper_prices_ar[paper] * print_printer_prices_ar[printer]
        : 0;
      */

      var price = format && paper && printer && typeof print_prices_ar[printer][format][paper] != 'undefined'
        ? print_prices_ar[printer][format][paper]
        : 0;

      cost += price * count;

      if (order_fillet.checked || carver_service.value*1)
        is_carver = true;
    }
  }

  print_order_cost2.innerHTML = is_carver ? ' + Цена за багетные услуги' : '';

  printer_paper_onchange();

  print_order_cost.innerHTML = mysprintf(cost, 2);
  if (cost > photomoney_amount)
  {
    print_order_cost.style.backgroundColor = '#f00';
    print_submit.disabled = true;
    print_order_error_msg_div.innerHTML = 'У Вас недостаточно Фотоденег';

    return false;
  }
  else
  {
    print_order_cost.style.background = 'none';
    print_submit.disabled = false;
    print_order_error_msg_div.innerHTML = '';

    return true;
  }
}


function toggle_friend(friend_id, flag)
{
  var xml_url = '/xml/toggle_friend.php';
  var __query_str = 'friend_id='+escape(friend_id)+'&flag_team='+escape(flag)+'&flag_blog='+escape(flag);

  toggle_wait(true);

  diXMLRequest.get(xml_url+'?'+__query_str, toggle_friend_response);
}

function toggle_friend_response(xmlDoc)
{
  if (!xmlDoc) return false;

  var rs = xmlDoc.documentElement.getElementsByTagName('result');
  if (rs.length == 0) return false;

  for (var i = 0; i < rs.length; i++)
  {
    var user_id = parseInt(rs[i].getAttribute('user_id'));
    var friend_id = parseInt(rs[i].getAttribute('friend_id'));
    var flag_blog = parseInt(rs[i].getAttribute('flag_blog'));
    var flag_team = parseInt(rs[i].getAttribute('flag_team'));
    var ok = parseInt(rs[i].getAttribute('ok'));

    if (ok)
    {
      var user_flag_team_toggle_span = _ge('user_flag_team_toggle_span');
      var user_flag_team_toggle_a = _ge('user_flag_team_toggle_a');

      var new_flag = flag_team ? 0 : 1;

      user_flag_team_toggle_span.innerHTML = S.user_details_flag_team_text[flag_team];
      user_flag_team_toggle_a.innerHTML = S.user_details_flag_team_action[flag_team];
      user_flag_team_toggle_a.href = 'javascript:toggle_friend('+friend_id+','+new_flag+');';
    }
  }

  toggle_wait(false);
}

function buy_selected_photos()
{
  var ee = document.getElementsByTagName('INPUT');
  var ar = [];

  for (var i = 0; i < ee.length; i++)
  {
    if (ee[i].type == 'checkbox' && ee[i].id.substr(0,9) == 'selected_')
    {
      if (ee[i].checked)
      {
        var idx = ee[i].id.substr(9);

        ar[ar.length] = idx2idx_ar[idx];
      }
    }
  }

  if (ar.length)
    window.location.href = '/'+cms_paths_ar['buy_photos']+'/?idx='+escape(ar.join('*'));
}

function toggle_tip(id, on)
{
  var e = _ge(id);

  if (!e) return;

  if (on)
  {
    e.style.display = 'block';
  }
  else
  {
    e.style.display = 'none';
  }
}

var is_printer_and_paper_suitable = false;

function printer_paper_onchange(photo_id)
{
  if (typeof photo_id == 'undefined') photo_id = 0;

  var printer_sel = _ge('print_printer_id_'+photo_id);
  var format_sel = _ge('print_format_id_'+photo_id);
  var paper_sel = _ge('print_paper_id_'+photo_id);
  var hint_span = _ge('print_printer_hint_'+photo_id);

  var err_msg = '';
  is_printer_and_paper_suitable = true;

  last_printer_id = 0;
  last_paper_id = 0;

  if (printer_sel && paper_sel)
  {
    var price = typeof print_prices_ar[printer_sel.value][format_sel.value][paper_sel.value] != 'undefined'
      ? print_prices_ar[printer_sel.value][format_sel.value][paper_sel.value] * 1
      : 0;

    if (print_printer_papers_ar[paper_sel.value])
    {
      if (!print_printer_papers_ar[paper_sel.value].in_array(printer_sel.value))
      {
        err_msg = 'Данная машина не печатает на выбранном материале';
        is_printer_and_paper_suitable = false;

        //printer_sel.value = last_printer_id;
        //paper_sel.value = last_paper_id;
      }
      else if (!price)
      {
        err_msg = 'Данная машина не печатает на выбранном материале в выбранном формате';
        is_printer_and_paper_suitable = false;

        //printer_sel.value = last_printer_id;
        //paper_sel.value = last_paper_id;
      }
    }

    last_printer_id = printer_sel.value;
    last_paper_id = paper_sel.value;
  }

  if (hint_span) hint_span.innerHTML = err_msg;
}

function ftp_dir_toggle_properties_div(path,idx)
{
  var e = _ge('dir_properties_div_'+idx);

  if (e)
  {
    e.style.display = e.style.display != 'block' ? 'block' : 'none';
  }
}

function ftp_dir_toggle_preview_div(path,idx)
{
  var e = _ge('dir_preview_div_'+idx);

  if (e)
  {
    e.style.display = e.style.display != 'block' ? 'block' : 'none';
  }
}

function del_from_print()
{
  if (!confirm("Удалить выделенные фотографии из заказа?") || !confirm("Вы уверены?")) return;

  var ar = [];

  for (var i = 0; i < da_ids_ar.length; i++)
  {
    var e = _ge('selected_'+da_ids_ar[i]);

    if (e && e.checked) ar[ar.length] = e.value;
  }

  window.location.href = '/'+cms_paths_ar['user_print']+'/?action=del&ids='+ar.join('*');
}

function show_ftp_bar(which)
{
  var id_on = which;
  var id_off = which == 'top' ? 'bottom' : 'top';

  var form = _ge('bottom_print_form');

  var link_on = _ge(id_on+'_print_link');
  var link_off = _ge(id_off+'_print_link');

  form.parentNode.removeChild(form);
  link_on.parentNode.insertBefore(form, link_on);
  form.style.display = 'block';

  if (link_on) link_on.style.display = 'none';
  if (link_off) link_off.style.display = 'block';

  return false;
}

function toggle_order_fillet_warning(state)
{
  var e = _ge('order_fillet_warning');

  if (e)
    e.style.visibility = state ? 'visible' : 'hidden';
}

function toggle_order_fillet_warning2(state, idx)
{
  if (typeof idx == 'undefined')
    idx = '';
  else
    idx = '_'+idx;
  var e = _ge('order_fillet_warning'+idx);

  if (e)
    e.style.display = state ? 'block' : 'none';
}
