var cursor_x = 0;
var cursor_y = 0;
var __progresses = new Array();
var car_body_map = new Array();
var car_body_back = new Array();
var car_body_left, car_body_top;
var car_body_index = 0;
var car_body_tool = "";
var car_body_tools = new Array();
car_body_tools["Т"] = new Array();
car_body_tools["Т"]["a"] = "img/button_crack_a.png";
car_body_tools["Т"]["d"] = "img/button_crack_d.png";
car_body_tools["Т"]["id"] = "button_crack";
car_body_tools["Ц"] = new Array();
car_body_tools["Ц"]["a"] = "img/button_scratch_a.png";
car_body_tools["Ц"]["d"] = "img/button_scratch_d.png";
car_body_tools["Ц"]["id"] = "button_scratch";
car_body_tools["С"] = new Array();
car_body_tools["С"]["a"] = "img/button_split_a.png";
car_body_tools["С"]["d"] = "img/button_split_d.png";
car_body_tools["С"]["id"] = "button_split";
car_body_tools["В"] = new Array();
car_body_tools["В"]["a"] = "img/button_dent_a.png";
car_body_tools["В"]["d"] = "img/button_dent_d.png";
car_body_tools["В"]["id"] = "button_dent";
car_body_tools["Э"] = new Array();
car_body_tools["Э"]["a"] = "img/button_no_element_a.png";
car_body_tools["Э"]["d"] = "img/button_no_element_d.png";
car_body_tools["Э"]["id"] = "button_no_element";

var banners_main_now_count = 1;
var banners_main_max_count = 2;
var banners_main_status = 0;
var banners = new Array();
banners["banner_main_1"] = new Array();
banners["banner_main_1"]["href"] = "programma.php";
banners["banner_main_1"]["big"] = new Image();
banners["banner_main_1"]["big"].src = "img/banners/banner_diagnostika_big.png";
banners["banner_main_1"]["small"] = new Image();
banners["banner_main_1"]["small"].src = "img/banners/banner_diagnostika_small.png";
banners["banner_main_2"] = new Array();
banners["banner_main_2"]["href"] = "skidki_avto_partnerka.php";
banners["banner_main_2"]["big"] = new Image();
banners["banner_main_2"]["big"].src = "img/banners/banner_discard_big.gif";
banners["banner_main_2"]["small"] = new Image();
banners["banner_main_2"]["small"].src = "img/banners/banner_discard_small.png";

function rus_escape(str) {
  var chars_codes = {};
  chars_codes["@"] = "%40";
  chars_codes["+"] = "%2B";
  chars_codes["*"] = "%2A";
  chars_codes["/"] = "%2F";
  var trans = [];
  var ret = [];
  var ch;
  var replacer = function(search, replace, str) {
    var tmp_arr = [];
    tmp_arr = str.split(search);
    return tmp_arr.join(replace);
  };

  for (var i = 0x410; i <= 0x44F; i++)
    trans[i] = i - 0x350;
  trans[0x401] = 0xA8;
  trans[0x451] = 0xB8;
  for (var i = 0; i < str.length; i++) {
    var n = str.charCodeAt(i);
    if (typeof trans[n] != "undefined") n = trans[n];
    if (n <= 0xFF) ret.push(n);
  }
  str = escape(String.fromCharCode.apply(null, ret));

  for (ch in chars_codes)
    str = replacer(ch, chars_codes[ch], str);
  return str;
  
}

function empty(mixed_var) {
  var key;
  if (mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null || mixed_var === false || mixed_var === undefined) {
    return true;
  }
  if (typeof mixed_var == "object") {
    for (key in mixed_var)
      if (typeof mixed_var[key] !== "function") return false;
    return true;
  }
  return false;
}

function check_email(v) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(v))
    return true
  else 
    return false;
}

function check_telephone(v) {
  if (/^\+\d{1,6}\s{1}\d{3,6}\s{1}\d{1,3}-\d{2}-\d{2}$/.test(v))
    return true
  else 
    return false;
}

function strpos(haystack, needle, offset) {
  var i = (haystack + "").indexOf(needle, offset);
  return i === -1 ? false : i;
}

function substr(f_string, f_start, f_length) {
  f_string += "";

  if (f_start < 0) f_start += f_string.length;
  if (f_length == undefined)
    f_length = f_string.length;
  else if (f_length < 0)
    f_length += f_string.length;
  else
    f_length += f_start;
 
  if (f_length < f_start) f_length = f_start;
  return f_string.substring(f_start, f_length);
}

function is_numeric(mixed_var) {
  return !isNaN(mixed_var);
}

function form_find_element(form, name) {
  for (var i = 0; i < form.elements.length; i++)
    if (form.elements[i].name == name) return i;
  return false;
}

function check_form(form, submit_disabled) {
  var w_el, c_el, c_el_name, c_el_type, c_el_num, mes;

  for (var i = 0; i < form.elements.length; i++) {
    w_el = form.elements[i];
    if (w_el.nodeName.toLowerCase() == "input" && w_el.type.toLowerCase() == "hidden" && strpos(w_el.name, "__check_") !== false) {
      c_el_name = substr(w_el.name, strpos(w_el.name, "_", 12) + 1);
      c_el_type = substr(w_el.name, 12, - c_el_name.length - 1);
      c_el_num = form_find_element(form, c_el_name);
      if (c_el_num !== false) {
	c_el = form.elements[c_el_num];
	switch (c_el_type) {
	  case "string":
	    if (c_el.value == "") {
	      alert(w_el.value);
	      return false;
	    }
	    break;
	  case "email":
	    if (!check_email(c_el.value)) {
	      alert(w_el.value);
	      return false;
	    }
	    break;
	  case "telephone":
	    if (!check_telephone(c_el.value)) {
	      alert(w_el.value);
	      return false;
	    }
	    break;
	  case "numeric":
	    if (!is_numeric(c_el.value)) {
	      alert(w_el.value);
	      return false;
	    }
	    break;
	  case "empty":
	    if (empty(c_el.value)) {
	      alert(w_el.value);
	      return false;
	    }
	    break;
	  case "fileimage":
	    if (c_el.value != "" && strpos(c_el.value.toLowerCase(), "gif") === false && strpos(c_el.value.toLowerCase(), "jpg") === false && strpos(c_el.value.toLowerCase(), "png") === false) {
	      alert(w_el.value);
	      return false;
	    }
	    break;
	  default:
	    break;
	}
      }
    }
  }
  if (submit_disabled != undefined) submit_disabled.disabled = 1;
  return true;
}

function jur_form_prepare() {
  document.getElementById("www_goods_editor").contentWindow.setCodeOutput(); 
  $("www_goods").value = document.getElementById("www_goods_editor").contentWindow.document.getElementById("hoteditor_bbcode_ouput_editor").value;
  document.getElementById("www_discounts_editor").contentWindow.setCodeOutput(); 
  $("www_discounts").value = document.getElementById("www_discounts_editor").contentWindow.document.getElementById("hoteditor_bbcode_ouput_editor").value;
  document.getElementById("www_full_info_editor").contentWindow.setCodeOutput(); 
  $("www_full_info").value = document.getElementById("www_full_info_editor").contentWindow.document.getElementById("hoteditor_bbcode_ouput_editor").value;
}

function addOption(oListbox, text, value, isDefaultSelected, isSelected) {
  var oOption = document.createElement("option");
  oOption.appendChild(document.createTextNode(text));
  oOption.setAttribute("value", value);
  if (isDefaultSelected)
    oOption.defaultSelected = true;
  else if (isSelected)
    oOption.selected = true;
  oListbox.appendChild(oOption);
}

function clearSelect(oListbox) {
  for (var i = oListbox.options.length - 1; i >= 0; i--)
    oListbox.remove(i)
}

function show_districts(form_name, selected_i, _region, _district) {
  var region = _region == undefined ? form_name.region.value : _region.value;
  var districts = _district == undefined ? form_name.district : _district;
  clearSelect(districts)
  for (var i = 0; i < city_districts[region].length; i++) {
    if (i == selected_i)
      addOption(districts, city_districts[region][i], i, true)
    else
      addOption(districts, city_districts[region][i], i, false, false)
  }
}

function show_as(form_name, selected_i, type, _region, _district, _jur_name) {
  var region = _region == undefined ? form_name.region.value : _region.value;
  var district = _district == undefined ? form_name.district.value : _district.value;
  var jur_names = _jur_name == undefined ? form_name.jur_name : _jur_name;
  clearSelect(jur_names)
  for (id_as in as_r[region][district]) {
    if (is_numeric(id_as) && (id_as == 0 || type == 0 || (as_info[id_as] != undefined && as_info[id_as]["type"] == type))) {
      if (id_as == selected_i)
        addOption(jur_names, as_r[region][district][id_as], id_as, true)
      else
        addOption(jur_names, as_r[region][district][id_as], id_as, false, false)
    }
  }
}

function show_all_as(form_name, selected_i, type, _region, _jur_name) {
  var region = _region == undefined ? form_name.region.value : _region.value;
  var jur_names = _jur_name == undefined ? form_name.jur_name : _jur_name;
  var show = 0;
  clearSelect(jur_names)
  for (district in as_r[region]) {
    for (id_as in as_r[region][district]) {
      if (is_numeric(id_as) && ((id_as == 0 && show == 0) || id_as != 0)) {
        if (id_as == 0 || type == 0 || (as_info[id_as] != undefined && as_info[id_as]["type"] == type)) {
          if (id_as == selected_i)
            addOption(jur_names, as_r[region][district][id_as], id_as, true)
          else
            addOption(jur_names, as_r[region][district][id_as], id_as, false, false)
          if (id_as == 0) show = 1
        }
      }
    }
  }
}

function set_jur_id(id_as, _id_as, _jur_name) {
  _id_as.value = id_as;
  _jur_name.value = as_info[id_as]["full_name"];
}

function showblock(block) {
  $(block).style.display = ($(block).style.display == "none") ? "inline" : "none";
}

function set_progress(bar, text) {
  __progresses[bar] = text;
  $(bar).innerHTML = text;
}

function show_progress(bar) {
  if (__progresses[bar] == undefined) __progresses[bar] = "Ждите.";
  if ($(bar).innerHTML.length >= __progresses[bar].length + 3 || $(bar).innerHTML.length == 0)
    $(bar).innerHTML = __progresses[bar];
  else
    $(bar).innerHTML += ".";
  setTimeout("show_progress(\"" + bar + "\")", 800);
}

function get_element_position(element) {
  var w = element.offsetWidth;
  var h = element.offsetHeight;
  var l = 0;
  var t = 0;

  while (element) {
    l += element.offsetLeft;
    t += element.offsetTop;
    element = element.offsetParent;
  }
  return {"left": l, "top": t, "width": w, "height": h};
}

function is_ie() {
  if (navigator.appName == "Microsoft Internet Explorer") return true;
  return false;
}

function ietruebody() {
  return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

function show_tool(element) {
  var tool = $("tool");

  tool.innerHTML = "<p style=\"font: bold 12pt sans-serif; color: red;\">" + car_body_tool + "</p>";
  tool.style.visibility = "visible";
  element.onmousemove = position_tool;
}

function hide_tool(element) {
  $("tool").style.visibility = "hidden";
  element.onmousemove = "";
}

function position_tool(element) {
  var tool = $("tool");
  var ns6 = document.getElementById && !document.all;
  car_body_left = (ns6) ? element.pageX : event.clientX + ietruebody().scrollLeft;
  car_body_top = (ns6) ? element.pageY : event.clientY + ietruebody().scrollTop;
  tool.style.left = (car_body_left + 17) + "px";
  tool.style.top = (car_body_top - 10) + "px";
}

function use_tool() {
  if (car_body_tool != "") {
    var car_body = $("car_body");
    var x = car_body_left - get_element_position(car_body).left - 364;
    var y = car_body_top - get_element_position(car_body).top - 1;

    if (x > 10 && y > 10 && x < 284 && y < 413) {
      car_body.innerHTML = (car_body_back[car_body_index] = car_body.innerHTML) + "<div style=\"cursor: crosshair; color: red; font: bold 12pt sans-serif; z-index: 2; position: absolute; left: " + (car_body_left - 5) + "px; top: " + (car_body_top - 10) + "px;\">" + car_body_tool + "</div>";
      if (car_body_map[car_body_index] == undefined) car_body_map[car_body_index] = new Array();
      car_body_map[car_body_index]["x"] = x;
      car_body_map[car_body_index]["y"] = y;
      car_body_map[car_body_index]["t"] = car_body_tool;
      car_body_index++;
    }
  }
}

function back_use_tool() {
  var car_body = $("car_body");
  if (car_body_index) car_body.innerHTML = car_body_back[--car_body_index];
}

function save_car_body_map() {
  var s = "";

  for (var c = 0; c < car_body_index; c++)
    s = s + car_body_map[c]["x"] + "," + car_body_map[c]["y"] + "," + car_body_map[c]["t"] + ";";
  $("car_body_map").value = s;
}

function set_car_body_tool(tool) {
  if (car_body_tool != "") $(car_body_tools[car_body_tool]["id"]).src = car_body_tools[car_body_tool]["d"];
  car_body_tool = tool;
  $(car_body_tools[car_body_tool]["id"]).src = car_body_tools[car_body_tool]["a"];
}

function ajax_request(function_name, function_varibles) {
  var http_request;

  try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      http_request = false;
    }
  }
 
  if (!http_request && typeof XMLHttpRequest != "undefined") {
    http_request = new XMLHttpRequest();
  }

  eval("http_request.onreadystatechange = function() { " + function_name + "(http_request, \"parse\"" + (function_varibles != "undefined" ? (", " + function_varibles) : "") + ");" + " };");
  eval(function_name + "(http_request, \"request\"" + (function_varibles != "undefined" ? (", " + function_varibles) : "") + ");");
}

function load_select(select, varible, selected_option, value_varible) {
  if (selected_option == undefined) selected_option = "";
  if (value_varible == undefined) value_varible = "";

  new Ajax.Request("user_cab.php", {
    method: "get",
    parameters: {
      "do": "loadselect",
      "page_type": "ajax_json",
      "varible": rus_escape(varible),
      "selected_option": rus_escape(selected_option),
      rand: Math.random()
    },
    onSuccess: function(http_request) {
      var json = http_request.responseText.evalJSON();
      clearSelect($(select));
      for (key in json) {
	if (key == selected_option)
	  addOption($(select), (value_varible == "" ? json[key] : json[key][value_varible]), key, true)
	else
	  addOption($(select), (value_varible == "" ? json[key] : json[key][value_varible]), key, false, false);
      }
    },
    onFailure: function () {
      alert("Произошла ошибка при загрузке меню выбора. Попробуйте повторить снова или обновите страницу. Если ошибка повторится, обратитесь в службу поддержки.");
    }
  });
}

function _fiz_data(http_request, doing, request, search_results, search_processing, what, mes_ok, mes_bad, mes_ok_color, mes_bad_color, fiz_line) {
  var _fiz_line;

  if (doing == "request") {
    http_request.open("GET", request, true);
    http_request.send(null);
  } else if (doing == "parse") {
    if (http_request.readyState == 4) {
      var json = eval("(" + http_request.responseText + ")");
      var search_result = "";
      search_processing.style.display = "none";
      search_result += "<p style=\"font-size: 100%; color: " + (json.find_fiz == 0 ? (what ? mes_bad_color : mes_ok_color) : (what ? mes_ok_color : mes_bad_color)) + "; margin: -7px 0 6px 12px;\">" + (json.find_fiz == 0 ? (what ? mes_bad : mes_ok) : (what ? mes_ok : mes_bad)) + "</p>\r\n";
      if (json.find_fiz > 0) {
	search_result += "<ul style=\"font-size: 100%;\">\r\n";
	for (var c = 0; c < json.find_fiz; c++) {
	  _fiz_line = fiz_line.replace(/\!date/g, json.results_fiz[c].add_date);
	  _fiz_line = _fiz_line.replace(/\!region/g, json.results_fiz[c].region);
	  _fiz_line = _fiz_line.replace(/\!id_cl/g, json.results_fiz[c].id_cl);
	  _fiz_line = _fiz_line.replace(/\!first_name/g, json.results_fiz[c].first_name);
	  _fiz_line = _fiz_line.replace(/\!second_name/g, json.results_fiz[c].second_name);
	  _fiz_line = _fiz_line.replace(/\!last_name/g, json.results_fiz[c].last_name);
	  search_result += "<li style=\"font-size: 100%;\">" + _fiz_line + "</li>\r\n";
	}
	search_result += "</ul>\r\n";
      }
      search_results.innerHTML = search_result;
      return json;
    } else {
      search_processing.style.display = "block";
      search_results.innerHTML = "";
    }
  }
}

function _check_fiz_telephone1(http_request, doing) {
  var telephone1 = $("telephone1").value;
  var search_results = $("search_results_telephone1");
  var search_processing = $("search_processing_telephone1");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&telephone1=" + rus_escape(telephone1) + "&rand=" + Math.random();
  var mes_ok = "Физ. лица с таким номером телефона не существует.";
  var mes_bad = "Предупреждение: найдены записи физ. лиц с таким номером телефона.<br />Проверьте на идентичность эти физ лица.";
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (telephone1 != "") _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FFD700", fiz_line);
}

function _check_fiz_telephone2(http_request, doing) {
  var telephone2 = $("telephone2").value;
  var search_results = $("search_results_telephone2");
  var search_processing = $("search_processing_telephone2");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&telephone1=" + rus_escape(telephone2) + "&rand=" + Math.random();
  var mes_ok = "Физ. лица с таким номером телефона не существует.";
  var mes_bad = "Предупреждение: найдены записи физ. лиц с таким номером телефона.<br />Проверьте на идентичность эти физ лица.";
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (telephone2 != "") _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FFD700", fiz_line);
}

function _check_fiz_telephone3(http_request, doing) {
  var telephone3 = $("telephone3").value;
  var search_results = $("search_results_telephone3");
  var search_processing = $("search_processing_telephone3");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&telephone1=" + rus_escape(telephone3) + "&rand=" + Math.random();
  var mes_ok = "Физ. лица с таким номером телефона не существует.";
  var mes_bad = "Предупреждение: найдены записи физ. лиц с таким номером телефона.<br />Проверьте на идентичность эти физ лица.";
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (telephone3 != "") _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FFD700", fiz_line);
}

function _check_fiz_email1(http_request, doing) {
  var email1 = $("email1").value;
  var search_results = $("search_results_email1");
  var search_processing = $("search_processing_email1");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&email1=" + email1 + "&rand=" + Math.random();
  var mes_ok = "Физ. лица с таким e-mail не существует.";
  var mes_bad = "Предупреждение: найдены записи физ. лиц с таким e-mail.<br />Проверьте на идентичность эти физ лица.";
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (email1 != "") _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FFD700", fiz_line);
}

function _check_fiz_email2(http_request, doing) {
  var email2 = $("email2").value;
  var search_results = $("search_results_email2");
  var search_processing = $("search_processing_email2");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&email1=" + email2 + "&rand=" + Math.random();
  var mes_ok = "Физ. лица с таким e-mail не существует.";
  var mes_bad = "Предупреждение: найдены записи физ. лиц с таким e-mail.<br />Проверьте на идентичность эти физ лица.";
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (email2 != "") _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FFD700", fiz_line);
}

function _check_fiz_card(http_request, doing) {
  var card = $("card").value;
  var search_results = $("search_results_card");
  var search_processing = $("search_processing_card");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&card=" + card + "&rand=" + Math.random();
  var mes_ok = "Физ. лица с таким номером карты не существует.";
  var mes_bad = "Внимание! Найдено физ. лицо с таким же номером карты.<br />Добавление нового физ. лица не возможно.<br />Проверьте на идентичность эти физ лица, либо зарегистрируйте другую карту.";
  var check_card = $("check_card");
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (card != "" && is_numeric(card)) {
    var _data = _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FF0000", fiz_line);
    if (_data != undefined) {
      if (_data.find_fiz)
        check_card.value = "0"
      else
        check_card.value = "1";
    }
  }
}

function _check_fiz_ref_card(http_request, doing) {
  var ref_card = $("ref_card").value;
  var search_results = $("search_results_ref_card");
  var search_processing = $("search_processing_ref_card");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&card=" + ref_card + "&rand=" + Math.random();
  var mes_ok = "Найдено физ. лицо c номером карты " + ref_card + ":";
  var mes_bad = "Внимание! Физ. лица с таким номером карты не существует.<br />Внесение этого номера как реферального не возможно.<br />Введите другой номер.";
  var check_ref_card = $("check_ref_card");
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (ref_card != "" && is_numeric(ref_card)) {
    var _data = _fiz_data(http_request, doing, request, search_results, search_processing, 1, mes_ok, mes_bad, "#008000", "#FF0000", fiz_line);
    if (_data != undefined) {
      if (_data.find_fiz)
        check_ref_card.value = "1"
      else
        check_ref_card.value = "0";
    }
  }
}

function _check_fiz_names(http_request, doing) {
  var first_name = $("first_name").value;
  var second_name = $("second_name").value;
  var last_name = $("last_name").value;
  var search_results = $("search_results_names");
  var search_processing = $("search_processing_names");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&first_name=" + rus_escape(first_name) + "&second_name=" + rus_escape(second_name) + "&last_name=" + rus_escape(last_name) + "&rand=" + Math.random();
  var mes_ok = "Записи физ. лица с такими ФИО нет.";
  var mes_bad = "Предупреждение: найдены записи физ. лиц с такими ФИО.<br />Проверьте на идентичность эти физ лица.";
  var fiz_line = "Запись от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (first_name == "" || second_name == "" || last_name == "") return 0;
  _fiz_data(http_request, doing, request, search_results, search_processing, 0, mes_ok, mes_bad, "#008000", "#FFD700", fiz_line);
}

function check_fiz_data(data) {
  $("search_processing_" + data).innerHTML = __progresses["search_processing_" + data];
  ajax_request("_check_fiz_" + data);
}

function _find_fiz_card(http_request, doing) {
  var card = $F("card");
  var search_results = $("search_results_card");
  var search_processing = $("search_processing_card");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&card=" + card + "&rand=" + Math.random();
  var mes_ok = "";
  var mes_bad = "Записи физ. лица с такими ФИО нет.";
  var find_card = $("find_card");
  var fiz_line = "<a href=\"javascript: set_varible('" + $F("__find_fiz_data_id_name") + "', '!id_cl')\" title=\"Ввести ID в поле ниже\">Запись</a> от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

  if (card == "" || !is_numeric(card)) return 0;
  var _data = _fiz_data(http_request, doing, request, search_results, search_processing, 1, mes_ok, mes_bad, "#008000", "#FF0000", fiz_line);
  if (_data != undefined &&_data.find_fiz) $($F("__find_fiz_data_id_name")).value = _data.results_fiz[0].id_cl;
}

function _find_fiz_names(http_request, doing) {
  var first_name = $F("first_name");
  var second_name = $F("second_name");
  var last_name = $F("last_name");
  var search_results = $("search_results_names");
  var search_processing = $("search_processing_names");
  var request = "user_cab.php?do=findfiz&page_type=ajax_json&page=all&first_name=" + rus_escape(first_name) + "&second_name=" + rus_escape(second_name) + "&last_name=" + rus_escape(last_name) + "&rand=" + Math.random();
  var mes_ok = "";
  var mes_bad = "Записи физ. лица с такими ФИО нет.";
  var fiz_line = "<a href=\"javascript: set_varible('" + $F("__find_fiz_data_id_name") + "', '!id_cl')\" title=\"Ввести ID в поле ниже\">Запись</a> от !date года, !region - <a href=user_cab.php?do=showfiz&id_cl=!id_cl title=\"Посмотреть полную информацию\">!first_name !second_name !last_name</a>";

// закоментировано: в старой версии нет. может нужно где для проверки по раздельным полям. не нашел (
//  if (first_name == "" || second_name == "" || last_name == "") return 0;
  var _data = _fiz_data(http_request, doing, request, search_results, search_processing, 1, mes_ok, mes_bad, "#008000", "#FF0000", fiz_line);
  if (_data != undefined &&_data.find_fiz) $($F("__find_fiz_data_id_name")).value = _data.results_fiz[0].id_cl;
}

function find_fiz_data(data) {
  $("search_processing_" + data).innerHTML = __progresses["search_processing_" + data];
  ajax_request("_find_fiz_" + data);
}

function set_varible(varible, value) {
  $(varible).value = value;
}

function serialize_varible(varible_id) {
  if ($(varible_id) == undefined)
    return varible_id + "="
  else
    return varible_id + "=" + rus_escape($F(varible_id));
}

function show_blog(_page, _id_tag) {
  $("search_results").hide();
  screen_lock_for_waiting();
  new Ajax.Updater("blog_search_results", "blog.php", {
    evalScripts: true,
    method: "get",
    parameters: {
      "page_type": "ajax_prototype",
      "id_tag": _id_tag == undefined ? 0 : _id_tag,
      "page": _page == undefined ? 1 : _page,
      "rand": Math.random()
    },
    onSuccess: function () {
      screen_unlock();
      $("search_results").show();
    },
    onFailure: function () {
      $('blog_search_results').innerHTML = "<h1 class=\"block\">При поиске возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
      $("blog_search_results").show();
      $("blog_search_progress_bar").hide();
    }
  });
}

function search_fiz(_page) {
  if ($F("first_name") != "" || $F("second_name") != "" || $F("last_name") != "" ||
      (!empty($F("birth_date_day")) &&  !empty($F("birth_date_month")) && !empty($F("birth_date_year"))) ||
      (!empty($F("birth_date_from_day")) &&  !empty($F("birth_date_from_month")) && !empty($F("birth_date_from_year"))) ||
      (!empty($F("birth_date_to_day")) && !empty($F("birth_date_to_month")) && !empty($F("birth_date_to_year"))) ||
      !empty($F("region")) || !empty($F("id_cl")) || !empty($F("card")) || $F("is_password_null") != "" ||
      (!empty($F("add_date_day")) && !empty($F("add_date_month")) && !empty($F("add_date_year"))) ||
      (!empty($F("add_date_from_day")) && !empty($F("add_date_from_month")) && !empty($F("add_date_from_year"))) ||
      (!empty($F("add_date_to_day")) && !empty($F("add_date_to_month")) && !empty($F("add_date_to_year"))) ||
      !empty($F("ref_card")) || $F("is_ref") != "" ||
      $F("email1") != "" || $F("telephone1") != "" ||
      !empty($F("work_id_as")) || $F("work_place") != "" || $F("work_position") != "" ||
      $F("is_consultant") != "" ||
      (!empty($F("consultant_agr_date_day")) && !empty($F("consultant_agr_date_month")) && !empty($F("consultant_agr_date_year"))) ||
      (!empty($F("consultant_agr_date_from_day")) && !empty($F("consultant_agr_date_from_month")) && !empty($F("consultant_agr_date_from_year"))) ||
      (!empty($F("consultant_agr_date_to_day")) && !empty($F("consultant_agr_date_to_month")) && !empty($F("consultant_agr_date_to_year"))) ||
      !empty($F("testdrive_id_as")) || $F("is_testdrived") != "" ||
      (!empty($F("testdrive_date_day")) && !empty($F("testdrive_date_month")) && !empty($F("testdrive_date_year"))) ||
      (!empty($F("testdrive_date_from_day")) && !empty($F("testdrive_date_from_month")) && !empty($F("testdrive_date_from_year"))) ||
      (!empty($F("testdrive_date_to_day")) && !empty($F("testdrive_date_to_month")) && !empty($F("testdrive_date_to_year"))) ||
      $F("is_client") != "") {
    $("search_results").hide();
    screen_lock_for_waiting_for("поиск");
    new Ajax.Updater("search_results", "user_cab.php", {
      evalScripts: true,
      method: "get",
      parameters: {
	"do": "findfiz",
	page_type: "ajax_prototype",
	first_name: rus_escape($F("first_name")),
	second_name: rus_escape($F("second_name")),
	last_name: rus_escape($F("last_name")),
	birth_date_day: $F("birth_date_day"),
	birth_date_month: $F("birth_date_month"),
	birth_date_year: $F("birth_date_year"),
	birth_date_from_day: $F("birth_date_from_day"),
	birth_date_from_month: $F("birth_date_from_month"),
	birth_date_from_year: $F("birth_date_from_year"),
	birth_date_to_day: $F("birth_date_to_day"),
	birth_date_to_month: $F("birth_date_to_month"),
	birth_date_to_year: $F("birth_date_to_year"),
	region: $F("region"),
	id_cl: $F("id_cl"),
	card: $F("card"),
	is_password_null: $F("is_password_null"),
	add_date_day: $F("add_date_day"),
	add_date_month: $F("add_date_month"),
	add_date_year: $F("add_date_year"),
	add_date_from_day: $F("add_date_from_day"),
	add_date_from_month: $F("add_date_from_month"),
	add_date_from_year: $F("add_date_from_year"),
	add_date_to_day: $F("add_date_to_day"),
	add_date_to_month: $F("add_date_to_month"),
	add_date_to_year: $F("add_date_to_year"),
	ref_card: $F("ref_card"),
	is_ref: $F("is_ref"),
	email1: rus_escape($F("email1")),
	telephone1: rus_escape($F("telephone1")),
	work_id_as: $F("work_id_as"),
	work_place: $F("work_place"),
	work_position: $F("work_position"),
	is_consultant: $F("is_consultant"),
	consultant_agr_date_day: $F("consultant_agr_date_day"),
	consultant_agr_date_month: $F("consultant_agr_date_month"),
	consultant_agr_date_year: $F("consultant_agr_date_year"),
	consultant_agr_date_from_day: $F("consultant_agr_date_from_day"),
	consultant_agr_date_from_month: $F("consultant_agr_date_from_month"),
	consultant_agr_date_from_year: $F("consultant_agr_date_from_year"),
	consultant_agr_date_to_day: $F("consultant_agr_date_to_day"),
	consultant_agr_date_to_month: $F("consultant_agr_date_to_month"),
	consultant_agr_date_to_year: $F("consultant_agr_date_to_year"),
	testdrive_id_as: $F("testdrive_id_as"),
	is_testdrived: $F("is_testdrived"),
	testdrive_date_day: $F("testdrive_date_day"),
	testdrive_date_month: $F("testdrive_date_month"),
	testdrive_date_year: $F("testdrive_date_year"),
	testdrive_date_from_day: $F("testdrive_date_from_day"),
	testdrive_date_from_month: $F("testdrive_date_from_month"),
	testdrive_date_from_year: $F("testdrive_date_from_year"),
	testdrive_date_to_day: $F("testdrive_date_to_day"),
	testdrive_date_to_month: $F("testdrive_date_to_month"),
	testdrive_date_to_year: $F("testdrive_date_to_year"),
	is_client: $F("is_client"),
	order_by: $F("order_by"),
	order_how: $F("order_how"),
	logic: $F("logic"),
	pages_count: $F("pages_count"),
	page: _page == undefined ? 1 : _page,
	rand: Math.random()
      },
      onSuccess: function () {
        screen_unlock();
        $("search_results").show();
      },
      onFailure: function () {
        $('search_results').innerHTML = "<h1 class=\"block\">При поиске возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
        $("search_results").show();
        $("search_processing").hide();
      }
    });
  } else
    alert("Не выбраны условия для поиска!");
}

function search_jur(_page) {
  if ((!empty($F("add_date_day")) && !empty($F("add_date_month")) && !empty($F("add_date_year"))) ||
      (!empty($F("add_date_from_day")) && !empty($F("add_date_from_month")) && !empty($F("add_date_from_year"))) ||
      (!empty($F("add_date_to_day")) && !empty($F("add_date_to_month")) && !empty($F("add_date_to_year"))) ||
      $F("is_partner") != "" ||  $F("partner_agr_num") != "" || 
      (!empty($F("partner_agr_date_day")) && !empty($F("partner_agr_date_month")) && !empty($F("partner_agr_date_year"))) ||
      (!empty($F("partner_agr_date_from_day")) && !empty($F("partner_agr_date_from_month")) && !empty($F("partner_agr_date_from_year"))) ||
      (!empty($F("partner_agr_date_to_day")) && !empty($F("partner_agr_date_to_month")) && !empty($F("partner_agr_date_to_year"))) ||
      $F("is_partner_service") != "" ||  $F("partner_service_agr_num") != "" || 
      (!empty($F("partner_service_agr_date_day")) && !empty($F("partner_service_agr_date_month")) && !empty($F("partner_service_agr_date_year"))) ||
      (!empty($F("partner_service_agr_date_from_day")) && !empty($F("partner_service_agr_date_from_month")) && !empty($F("partner_service_agr_date_from_year"))) ||
      (!empty($F("partner_service_agr_date_to_day")) && !empty($F("partner_service_agr_date_to_month")) && !empty($F("partner_service_agr_date_to_year"))) ||
      $F("is_partner_consultant") != "" ||  $F("partner_consultant_agr_num") != "" || 
      (!empty($F("partner_consultant_agr_date_day")) && !empty($F("partner_consultant_agr_date_month")) && !empty($F("partner_consultant_agr_date_year"))) ||
      (!empty($F("partner_consultant_agr_date_from_day")) && !empty($F("partner_consultant_agr_date_from_month")) && !empty($F("partner_consultant_agr_date_from_year"))) ||
      (!empty($F("partner_consultant_agr_date_to_day")) && !empty($F("partner_consultant_agr_date_to_month")) && !empty($F("partner_consultant_agr_date_to_year"))) ||
      $F("is_jur_client") != "" ||  $F("jur_client_agr_num") != "" || 
      (!empty($F("jur_client_agr_date_day")) && !empty($F("jur_client_agr_date_month")) && !empty($F("jur_client_agr_date_year"))) ||
      (!empty($F("jur_client_agr_date_from_day")) && !empty($F("jur_client_agr_date_from_month")) && !empty($F("jur_client_agr_date_from_year"))) ||
      (!empty($F("jur_client_agr_date_to_day")) && !empty($F("jur_client_agr_date_to_month")) && !empty($F("jur_client_agr_date_to_year"))) ||
      !empty($F("royalties")) || $F("is_to_clients") != "" || $F("is_to_parts") != "" || $F("is_to_breaks") != "" ||
      $F("name") != "" || !empty($F("region")) || !empty($F("district")) || !empty($F("id_as")) || $F("id_mrs") != "" ||
      $F("types") != "" || !empty($F("rating")) || !empty($F("sto_category")) || !empty($F("sto_work_places")) ||
      !empty($F("sto_is_metalwork")) || !empty($F("sto_is_bodywork")) || !empty($F("sto_is_breakdown")) ||
      !empty($F("sto_is_tire_fitting")) || !empty($F("sto_is_carwash"))) {
    $("search_results").hide();
    screen_lock_for_waiting_for("поиск");
    new Ajax.Updater("search_results", "user_cab.php", {
      evalScripts: true,
      method: "get",
      parameters: {
	"do": "findjur",
	page_type: "ajax_prototype",
	name: rus_escape($F("name")),
	region: $F("region"),
	district: $F("district"),
	id_as: $F("id_as"),
	"types[]": $F("types"),
	rating: $F("rating"),
	add_date_day: $F("add_date_day"),
	add_date_month: $F("add_date_month"),
	add_date_year: $F("add_date_year"),
	add_date_from_day: $F("add_date_from_day"),
	add_date_from_month: $F("add_date_from_month"),
	add_date_from_year: $F("add_date_from_year"),
	add_date_to_day: $F("add_date_to_day"),
	add_date_to_month: $F("add_date_to_month"),
	add_date_to_year: $F("add_date_to_year"),
	id_mrs: $F("id_mrs"),
	is_partner: $F("is_partner"),
	partner_agr_num: rus_escape($F("partner_agr_num")),
	partner_agr_date_day: $F("partner_agr_date_day"),
	partner_agr_date_month: $F("partner_agr_date_month"),
	partner_agr_date_year: $F("partner_agr_date_year"),
	partner_agr_date_from_day: $F("partner_agr_date_from_day"),
	partner_agr_date_from_month: $F("partner_agr_date_from_month"),
	partner_agr_date_from_year: $F("partner_agr_date_from_year"),
	partner_agr_date_to_day: $F("partner_agr_date_to_day"),
	partner_agr_date_to_month: $F("partner_agr_date_to_month"),
	partner_agr_date_to_year: $F("partner_agr_date_to_year"),
	is_partner_service: $F("is_partner_service"),
	partner_service_agr_num: rus_escape($F("partner_service_agr_num")),
	partner_service_agr_date_day: $F("partner_service_agr_date_day"),
	partner_service_agr_date_month: $F("partner_service_agr_date_month"),
	partner_service_agr_date_year: $F("partner_service_agr_date_year"),
	partner_service_agr_date_from_day: $F("partner_service_agr_date_from_day"),
	partner_service_agr_date_from_month: $F("partner_service_agr_date_from_month"),
	partner_service_agr_date_from_year: $F("partner_service_agr_date_from_year"),
	partner_service_agr_date_to_day: $F("partner_service_agr_date_to_day"),
	partner_service_agr_date_to_month: $F("partner_service_agr_date_to_month"),
	partner_service_agr_date_to_year: $F("partner_service_agr_date_to_year"),
	is_partner_consultant: $F("is_partner_consultant"),
	partner_consultant_agr_num: rus_escape($F("partner_consultant_agr_num")),
	partner_consultant_agr_date_day: $F("partner_consultant_agr_date_day"),
	partner_consultant_agr_date_month: $F("partner_consultant_agr_date_month"),
	partner_consultant_agr_date_year: $F("partner_consultant_agr_date_year"),
	partner_consultant_agr_date_from_day: $F("partner_consultant_agr_date_from_day"),
	partner_consultant_agr_date_from_month: $F("partner_consultant_agr_date_from_month"),
	partner_consultant_agr_date_from_year: $F("partner_consultant_agr_date_from_year"),
	partner_consultant_agr_date_to_day: $F("partner_consultant_agr_date_to_day"),
	partner_consultant_agr_date_to_month: $F("partner_consultant_agr_date_to_month"),
	partner_consultant_agr_date_to_year: $F("partner_consultant_agr_date_to_year"),
	is_jur_client: $F("is_jur_client"),
	jur_client_agr_num: rus_escape($F("jur_client_agr_num")),
	jur_client_agr_date_day: $F("jur_client_agr_date_day"),
	jur_client_agr_date_month: $F("jur_client_agr_date_month"),
	jur_client_agr_date_year: $F("jur_client_agr_date_year"),
	jur_client_agr_date_from_day: $F("jur_client_agr_date_from_day"),
	jur_client_agr_date_from_month: $F("jur_client_agr_date_from_month"),
	jur_client_agr_date_from_year: $F("jur_client_agr_date_from_year"),
	jur_client_agr_date_to_day: $F("jur_client_agr_date_to_day"),
	jur_client_agr_date_to_month: $F("jur_client_agr_date_to_month"),
	jur_client_agr_date_to_year: $F("jur_client_agr_date_to_year"),
	royalties: $F("royalties"),
	is_to_clients: $F("is_to_clients"),
	is_to_parts: $F("is_to_parts"),
	is_to_breaks: $F("is_to_breaks"),
	sto_category: $F("sto_category"),
	sto_work_places: $F("sto_work_places"),
	sto_is_metalwork: $F("sto_is_metalwork"),
	sto_is_bodywork: $F("sto_is_bodywork"),
	sto_is_breakdown: $F("sto_is_breakdown"),
	sto_is_tire_fitting: $F("sto_is_tire_fitting"),
	sto_is_carwash: $F("sto_is_carwash"),
	order_by: $F("order_by"),
	order_how: $F("order_how"),
	logic: $F("logic"),
	pages_count: $F("pages_count"),
	page: _page == undefined ? 1 : _page,
	rand: Math.random()
      },
      onSuccess: function () {
        screen_unlock();
        $("search_results").show();
      },
      onFailure: function () {
        $('search_results').innerHTML = "<h1 class=\"block\">При поиске возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
        $("search_results").show();
        $("search_processing").hide();
      }
    });
  } else
    alert("Не выбраны условия для поиска!");
}

function search_car(_page) {
  if (!empty($F("id_cl")) || !empty($F("id_as")) ||
      $F("car_country_num") != "" || $F("car_vin") != "" ||
      !empty($F("car_manuf")) || $F("car_model") != "" ||
      !empty($F("car_year")) || !empty($F("car_colour")) || $F("agr_num") != "" ||
      (!empty($F("agr_date_from_day")) && !empty($F("agr_date_from_month")) && !empty($F("agr_date_from_year"))) ||
      (!empty($F("agr_date_to_day")) && !empty($F("agr_date_to_month")) && !empty($F("agr_date_to_year")))) {
    $("search_results").hide();
    screen_lock_for_waiting_for("поиск");
    new Ajax.Updater("search_results", "user_cab.php", {
      evalScripts: true,
      method: "get",
      parameters: {
	"do": "findcars",
	page_type: "ajax_prototype",
        id_cl: $F("id_cl"),
        id_as: $F("id_as"),
        car_country_num: $F("car_country_num"),
        car_vin: $F("car_vin"),
        car_manuf: $F("car_manuf"),
        car_model: $F("car_model"),
        car_year: $F("car_year"),
        car_colour: $F("car_colour"),
        agr_num: $F("agr_num"),
        agr_date_from_day: $F("agr_date_from_day"),
        agr_date_from_month: $F("agr_date_from_month"),
        agr_date_from_year: $F("agr_date_from_year"),
        agr_date_to_day: $F("agr_date_to_day"),
        agr_date_to_month: $F("agr_date_to_month"),
        agr_date_to_year: $F("agr_date_to_year"),
	order_by: $F("order_by"),
	order_how: $F("order_how"),
	logic: $F("logic"),
	pages_count: $F("pages_count"),
	page: _page == undefined ? 1 : _page,
	rand: Math.random()
      },
      onSuccess: function () {
        screen_unlock();
        $("search_results").show();
      },
      onFailure: function () {
        $('search_results').innerHTML = "<h1 class=\"block\">При поиске возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
        $("search_results").show();
        $("search_processing").hide();
      }
    });
  } else
    alert("Не выбраны условия для поиска!");
}

function search_sp(_page) {
  $("search_results").hide();
  screen_lock_for_waiting();

  new Ajax.Updater("search_results", "sp.php", {
    evalScripts: true,
    method: "get",
    parameters: {
      page_type: "ajax_prototype",
      region: $F("region"),
      district: $F("district"),
      "types[]": $F("types"),
//      order_by: $F("order_by"),
//      order_how: $F("order_how"),
//      pages_count: $F("pages_count"),
      page: _page == undefined ? 1 : _page,
      rand: Math.random()
    },
    onSuccess: function () {
      screen_unlock();
      $("search_results").show();
    },
    onFailure: function () {
      screen_unlock();
      $('search_results').innerHTML = "<h1 class=\"block\">При поиске возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
      $("search_results").show();
    }
  });
}

function save_groups_of_fiz(id_cl) {
  if (!empty(id_cl)) {
    $("search_results").hide();
    screen_lock_for_waiting_for("сохранение списка групп");
    new Ajax.Request("user_cab.php", {
      method: "get",
      parameters: {
	"do": "savegroupsoffiz",
	"page_type": "ajax_json",
	"id_cl": id_cl,
	"id_group[]": $F("group_access_" + id_cl),
	"rand": Math.random()
      },
      onSuccess: function (http_request) {
        screen_unlock();
        $("search_results").show();
        var json = http_request.responseText.evalJSON();
        if (json.save_groups) {
	  alert("Список групп был успешно сохранен.");
	} else {
	  alert("При сохранении списка групп возникли ошибки. Попробуйте еще раз или обратитесь к администратору.");
	}
      },
      onFailure: function () {
        $('search_results').innerHTML = "<h1 class=\"block\">При сохранении групп возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
        $("search_results").show();
        $("search_processing").hide();
      }
    });
  }
}

function search_rights() {
  $("search_results").hide();
  screen_lock_for_waiting_for("поиск");
  new Ajax.Updater("search_results", "user_cab.php", {
    evalScripts: true,
    method: "get",
    parameters: {
      "do": "userrights",
      page_type: "ajax_prototype",
      rand: Math.random()
    },
    onSuccess: function () {
      screen_unlock();
      $("search_results").show();
    },
    onFailure: function () {
      $('search_results').innerHTML = "<h1 class=\"block\">При поиске возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
      $("search_results").show();
      $("search_processing").hide();
    }
  });
}

function save_right() {
  if ((!empty($F("module")) || $F("add_module_key") != "" && $F("add_module_name") != "") &&
      (!empty($F("action")) || $F("add_action_key") != "" && $F("add_action_name") != "") &&
      (!empty($F("user")) || $F("add_user_key") != "" && $F("add_user_name") != "") &&
      (!empty($F("level")) || $F("add_level_key") != "" && $F("add_level_name") != "") &&
      $F("check_type") != "") {
    $("search_results").hide();
    screen_lock_for_waiting_for("сохранение прав доступа");
    new Ajax.Request("user_cab.php", {
      method: "get",
      parameters: {
        "do": "userrights",
        "what": "save",
        "module": rus_escape($F("module")),
        "action": rus_escape($F("action")),
        "user": rus_escape($F("user")),
        "level": rus_escape($F("level")),
        "check_type": rus_escape($F("check_type")),
        "add_check_function_id": rus_escape($F("add_check_function_id")),
        "add_module_key": rus_escape($F("add_module_key")),
        "add_module_name": rus_escape($F("add_module_name")),
        "add_action_key": rus_escape($F("add_action_key")),
        "add_action_name": rus_escape($F("add_action_name")),
        "add_user_key": rus_escape($F("add_user_key")),
        "add_user_name": rus_escape($F("add_user_name")),
        "add_level_key": rus_escape($F("add_level_key")),
        "add_level_name": rus_escape($F("add_level_name")),
        "add_add_check_function": rus_escape($F("add_add_check_function")),
        rand: Math.random()
      },
      onSuccess: function (http_request) {
        screen_unlock();
        var json = http_request.responseText.evalJSON();
        if (json.save_right) {
          search_rights();
	  if ($F("add_module_key") != "" && $F("add_module_name") != "") load_select("module", "modules", "0");
	  if ($F("add_action_key") != "" && $F("add_action_name") != "") load_select("action", "modules[" + $F("module") + "][actions]", "0");
	  if ($F("add_user_key") != "" && $F("add_user_name") != "") load_select("user", "user_types", "0");
	  if ($F("add_level_key") != "" && $F("add_level_name") != "") load_select("level", "user_types[" + $F("user") + "][levels]", "0");
	  if ($F("add_add_check_function") != "") load_select("add_check_function_id", "check_functions", "0");
        }
      },
      onFailure: function () {
        $('search_results').innerHTML = "<h1 class=\"block\">При сохранении возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
        $("search_results").show();
        $("search_processing").hide();
      }
    });
  } else {
    alert("Не заполены все поля для добавления права!");
  }
}

function del_right(id) {
  if (!empty(id) && confirm("Удалить запись?")) {
    $("search_results").hide();
    screen_lock_for_waiting_for("удаление прав доступа");
    new Ajax.Request("user_cab.php", {
      method: "get",
      parameters: {
        "do": "userrights",
        "what": "delete",
        "id": id,
        rand: Math.random()
      },
      onSuccess: function (http_request) {
        screen_unlock();
        var json = http_request.responseText.evalJSON();
        if (json.delete_right) {
          search_rights();
        }
      },
      onFailure: function () {
        $('search_results').innerHTML = "<h1 class=\"block\">При удалении возникли ошибки.</h1><div class=\"columnbig-unit\"><p>Возможно, проблемы с соединением. Попробуйте отправить запрос заново.<br />Если ошибка повторится, обратитесь в службу поддержки.</p></div>";
        $("search_results").show();
        $("search_processing").hide();
      }
    });
  }
}

function edit_right(id) {
  if (user_rights[id] == undefined) {
    alert("Ошибка: записи с ID " + id + " не существует!");
    return 0;
  }
  set_selected_option("module", user_rights[id]["module"]);
  load_select("action", "modules[" + user_rights[id]["module"] + "][actions]", user_rights[id]["action"]);
  set_selected_option("user", user_rights[id]["user"]);
  load_select("level", "user_types[" + user_rights[id]["user"] + "][levels]", user_rights[id]["level"]);
  set_selected_option("add_check_function_id", user_rights[id]["add_check_function_id"]);
  $("check_type").options[user_rights[id]["check_type"]].selected = true;
}

function set_selected_option(select_id, option_value) {
  var select = $(select_id);
  for (var c = 0; c < select.options.length; c++)
    if (select.options[c].value == option_value) select.options[c].selected = true;
}

function add_event_handler(element, event, handler) {
  if (element.attachEvent) 
    element.attachEvent("on" + event, handler);
  else 
    if (element.addEventListener) element.addEventListener(event, handler, false);
}

function prevent_selection(element) {
  var prevent_selection = false;

  function removeSelection() {
    if (window.getSelection) 
      window.getSelection().removeAllRanges();
    else if (document.selection && document.selection.clear)
      document.selection.clear();
  }

  function killCtrlA(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;

    if (sender.tagName.match(/INPUT|TEXTAREA/i)) return;
    var key = event.keyCode || event.which;
    if (event.ctrlKey && key == "A".charCodeAt(0)) {
      removeSelection();
      if (event.preventDefault) 
        event.preventDefault();
      else
        event.returnValue = false;
    }
  }

  add_event_handler(element, "mousemove", function() {
    if(prevent_selection) removeSelection();
  });
  add_event_handler(element, "mousedown", function(event) {
    var event = event || window.event;
    var sender = event.target || event.srcElement;
    prevent_selection = !sender.tagName.match(/INPUT|TEXTAREA/i);
  });
  add_event_handler(element, "mouseup", function() {
    if (prevent_selection) removeSelection();
    prevent_selection = false;
  });
  add_event_handler(element, "keydown", killCtrlA);
  add_event_handler(element, "keyup", killCtrlA);
}

function object_show(object_name) {
  var object = $(object_name);
  object.style.display = "block";
  var width = get_element_position(object).width;
  var height = get_element_position(object).height;
  var clip = object.style.clip;
  var clips = new Array (0, 0, 0, 0);
  if (clip != undefined && clip != "") clips = substr(object.style.clip.replace(/px/g, "").replace(/,/g, ""), 5, -1).split(" ");

  if (clips[1] < width || clips[2] < height) {
    if (clips[1] < width) clips[1] = parseInt(clips[1]) + 10;
    if (clips[2] < height) clips[2] = parseInt(clips[2]) + 10;
    object.style.clip = "rect(auto, " + clips[1] + "px, " + clips[2] + "px, auto)";
    setTimeout("object_show(\"" + object_name + "\")", 7);
  }
}

function object_hide(object_name) {
  var object = $(object_name);

  var width = get_element_position(object).width;
  var height = get_element_position(object).height;
  var clip = object.style.clip;
  var clips = new Array (0, 0, 0, 0);
  if (clip != undefined && clip != "") clips = substr(object.style.clip.replace(/px/g, "").replace(/ /g, ""), 5, -1).split(",");

  if (clips[1] > 0 || clips[2] > 0) {
    if (clips[1] > 0) clips[1] = parseInt(clips[1]) - 10;
    if (clips[2] > 0) clips[2] = parseInt(clips[2]) - 10;
    object.style.clip = "rect(auto, " + clips[1] + "px, " + clips[1] + "px, auto)";
    setTimeout("object_hide(\"" + object_name + "\")", 7);
  } else {
    object.style.display = "none";
    object.style.clip = "rect(auto, 0px, 0px, auto)";
  }
}

function calendar_show(varibles) {
  var cur_date = new Date();
  var cur_year = cur_date.getFullYear();
  var cur_month = cur_date.getMonth();
  var cur_day = cur_date.getDate();
  if (!empty(varibles._year) && (!empty(varibles._month) || varibles._month == 0) && !empty(varibles._day))
    var date = new Date(varibles._year < 1970 ? 1970 : varibles._year, varibles._month, varibles._day)
  else
    var date = cur_date;
  var max_year = varibles._max_year == undefined ? cur_year : varibles._max_year;
  var min_year = varibles._min_year == undefined || varibles._min_year < 1970 ? 1970 : varibles._min_year;
  var year = date.getFullYear();
  var month = date.getMonth();
  var day = date.getDate();
  var days_in_month = new Array(31, (!(year & 3) && (year % 1e2 || !(year % 4e2))) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  var month_begin_date = new Date(year, month, 1);
  var month_begin_week_day = month_begin_date.getDay();
  var week_days = new Array("пн","вт","ср","чт","пт","сб","вс");
  var months = new Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
  var months_r = new Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
  if (!month_begin_week_day) month_begin_week_day = 7;
  var previous_month = month ? month - 1 : 11;
  var following_month = month < 11 ? month + 1 : 0;
  var weeks = Math.round(days_in_month[month] / 7) + 1 + ((month_begin_week_day > 4 || month_begin_week_day == 1) && days_in_month[month] > 28 ? 1 : 0) + (month_begin_week_day == 1 && days_in_month[month] == 28 ? 1 : 0);
  var _day = month_begin_week_day > 1 ? 1 - month_begin_week_day : -7;
  var _is_cur_month = 0;
  if (varibles._left == undefined) varibles._left = cursor_x + 20;
  if (varibles._top == undefined) varibles._top = cursor_y + 20;
  var calendar = $("calendar");
  var s = "";

  function get_varibles(year, month, day) {
    var _varibles = "{ ";
    _varibles += "_year: " + year + ", _month: " + month + ", _day: " + day;
    _varibles += varibles._max_year == undefined ? "" : ", _max_year: " + varibles._max_year;
    _varibles += varibles._min_year == undefined ? "" : ", _min_year: " + varibles._min_year;
    _varibles += varibles._left == undefined ? "" : ", _left: " + varibles._left;
    _varibles += varibles._top == undefined ? "" : ", _top: " + varibles._top;
    _varibles += ", set_date: '" + varibles.set_date.replace(/\'/g, "\\'") + "'";
    _varibles += " }";
    return _varibles;
  }

  function select_months(year, month, day) {
    var _months = "";
    _months += "<select onChange=\"calendar_show(" + get_varibles(year, "this.value", day) + ");\">";
    for (var _month = 0; _month < 12; _month++)
      _months += "<option value=\"" + _month + "\"" + (month == _month ? " selected class=\"op_selected\"" : " class=\"op_default\"") + ">" + months[_month] + "</option>";
    _months += "</select>";
    return _months;
  }

  function select_years(year, month, day) {
    var _years = "";
    _years += "<select onChange=\"calendar_show(" + get_varibles("this.value", month, day) + ");\">";
    for (var _year = cur_year; _year > 1969; _year--)
      _years += "<option value=\"" + _year + "\"" + (year == _year ? " selected class=\"op_selected\"" : " class=\"op_default\"") + ">" + _year + "</option>";
    _years += "</select>";
    return _years;
  }

  function get_set_date(year, month, day) {
    var set_date = varibles.set_date;
    set_date = set_date.replace(/\!year/g, year);
    set_date = set_date.replace(/\!month/g, month);
    set_date = set_date.replace(/\!day/g, day);
    return set_date;
  }

  s += "<table class=\"title\"><tr class=\"title\" id=\"calendar_title\" onmouseup=\"$('calendar_is_moving').innerHTML = '0'; this.style.cursor = 'default';\" onmousedown=\"$('calendar_is_moving').innerHTML = '1'; this.style.cursor = 'move'; $('calendar_div_x').innerHTML = (cursor_x - get_element_position($('calendar')).left); $('calendar_div_y').innerHTML = (cursor_y - get_element_position($('calendar')).top);\"><th colspan=\"6\">&nbsp;<a href=\"javascript: " + get_set_date(cur_year, cur_month + 1, cur_day) + "\" class=\"type1\">" + cur_day + " " + months_r[cur_month] + " " + cur_year + " г.</a></th><th><input type=\"button\" class=\"button\" value=\"X\" onClick=\"object_hide('calendar');\" /></th></tr>";
  s += "<tr class=\"title\"><td colspan=\"7\">" + (year > min_year ? "<a href=\"javascript: calendar_show(" + get_varibles((year - 1), month, day) + ");\" class=\"type1\" style=\"font-size: 130%; font-weight: normal;\">&laquo;</a>" : "<span style=\"font-size: 130%; font-weight: normal;\" >&laquo;</span>") + "&nbsp;" + (month > 0 || (!month && year > min_year) ? "<a href=\"javascript: calendar_show(" + get_varibles((month ? year : year - 1), previous_month, day) + ");\" class=\"type1\">&lt;</a>" : "&lt;") + "&nbsp;" + select_months(year, month, day) + " " + select_years(year, month, day) + "&nbsp;" + (month < 11 || (month == 11 && year < max_year) ? "<a href=\"javascript: calendar_show(" + get_varibles((month < 11 ? year : year + 1), following_month, day) + ");\" class=\"type1\">&gt;</a>" : "&gt;") + "&nbsp;" + (year < max_year ? "<a href=\"javascript: calendar_show(" + get_varibles((year + 1), month, day) + ");\" class=\"type1\" style=\"font-size: 130%; font-weight: normal;\">&raquo;</a>" : "<span style=\"font-size: 130%; font-weight: normal;\">&raquo;</span>") + "</td></tr>";
  s += "<tr>";
  for (var _week_day = 0; _week_day < 7; _week_day++)
    s += "<th class=\"week_day_name\">" + week_days[_week_day] + "</th>";
  s += "</tr></table><table class=\"all\">";
  for (var _week = 0; _week < weeks; _week++) {
    s += "<tr>";
    for (var _week_day = 1; _week_day < 8; _week_day++) {
      if (!_day && _week_day == month_begin_week_day && !_is_cur_month) _is_cur_month = 1;
      if (_day == days_in_month[month]) _is_cur_month = 2;
      s += "<td class=\"" + (_is_cur_month == 1 ? (++_day == day ? ("cur_day\"><a href=\"javascript: " + get_set_date(year, month + 1, _day) + "\" class=\"type1\">" + _day) : ("cur_month\"><a href=\"javascript: " + get_set_date(year, month + 1, _day) + "\" class=\"type1\">" + _day)) : (_is_cur_month == 2 ? ("following\"><a href=\"javascript: " + get_set_date(year, following_month + 1, ++_day - days_in_month[month]) + "\" class=\"type2\">" + (_day - days_in_month[month])) : ("previous\"><a href=\"javascript: " + get_set_date(year, previous_month + 1, days_in_month[previous_month] + ++_day) + "\" class=\"type2\">" + (days_in_month[previous_month] + _day)))) + "</a></td>";
    }
    s += "</tr>";
  }
  s += "</table>";
  s += "<div id=\"calendar_div_x\" style=\"display: none;\">0</div><div id=\"calendar_div_y\" style=\"display: none;\">0</div><div id=\"calendar_is_moving\" style=\"display: none;\">0</div>";

  if (calendar == undefined) {
    calendar = document.createElement("div");
    document.getElementsByTagName("body")[0].appendChild(calendar);
    calendar.id = "calendar";
    calendar.className = "calendar";
    calendar.style.display = "none";
    prevent_selection(calendar);
    add_event_handler(document, "mouseup", function () {
      if ($("calendar_is_moving") != undefined) $("calendar_is_moving").innerHTML = "0";
      if ($("calendar_title") != undefined) $("calendar_title").style.cursor = "default";
    });
    add_event_handler(document, "mousemove", function (event) {
      var event = event || window.event;
      if ($("calendar_is_moving") != undefined && $("calendar_is_moving").innerHTML == "1") {
        $("calendar").style.left = cursor_x - parseInt($("calendar_div_x").innerHTML) + "px";
        $("calendar").style.top  = cursor_y - parseInt($("calendar_div_y").innerHTML) + "px";
      }
    });
  }
  calendar.innerHTML = s;
  if (calendar.style.display == "none") {
    calendar.style.left = varibles._left + "px";
    calendar.style.top = varibles._top + "px";
  }
  object_show("calendar");
}

function set_date(varible, year, month, day) {
  var _year = $(varible + "_year");
  var _month = $(varible + "_month");
  var _day = $(varible + "_day");

  _year.value = year;
  _month.value = month;
  _day.value = day;
  if ($("calendar") != undefined) object_hide("calendar");
}

add_event_handler(document, "mousemove", function (event) {
  if (document.attachEvent != null) {
    cursor_x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    cursor_y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
  } else if (!document.attachEvent && document.addEventListener) {
    cursor_x = event.clientX + window.scrollX;
    cursor_y = event.clientY + window.scrollY;
  }
});

function block_change(block_name) {
  var block_title = $(block_name + "_title");
  var block_data = $(block_name + "_data");

  block_title.style.display = block_title.style.display == "none" ? "block" : "none";
  block_data.style.display = block_data.style.display == "none" ? "block" : "none";
}

function block_hide(block_name) {
  $(block_name + "_title").style.display = "block";
  $(block_name + "_data").style.display = "none";
}

function block_show(block_name) {
  $(block_name + "_title").style.display = "none";
  $(block_name + "_data").style.display = "block";
}

function add_class(element, class_name) {
  if(!element.className) {
    element.className = class_name;
  } else {
    var newCl = element.className;
    newCl += (" " + class_name);
    element.className = newCl;
  }
}

function get_user_agent() {
  var u = navigator.userAgent.toLowerCase();
  var p = "undefined";
  var a = "undefined";
  var v = 0;

  if (/msie (\d)/i.test(u)) { a = "ie"; v = RegExp.$1; }
  if (/opera\/(\d)/i.test(u)) { a = "opera"; v = RegExp.$1; }
  if (/firefox\/(\d)/i.test(u)) { a = "firefox"; v = RegExp.$1; }
  if (/safari/i.test(u)) { a = "safari"; /version\/(\d)/i.test(u); v = RegExp.$1; }
  if (/chrome\/(\d)/i.test(u)) { a = "chrome"; v = RegExp.$1; }

  if (/windows/i.test(u)) p = "windows";
  if (/mac/i.test(u)) p = "mac";
  if (/x11/i.test(u) || /linux/i.test(u)) p = "linux";

  return { agent: a, version: v, platform: p };
}

function load_css(n, a, v, p) {
  var u = get_user_agent();
  document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + n + (a ? "." + get_user_agent().agent : "") + (v ? "." + get_user_agent().version : "") + (p ? "." + get_user_agent().platform : "") + ".css" + "\" />");
}

function show_block_date(block_date, type, show_date, link_num) {
  $(block_date + "_" + type).style.display = "block";
  $(block_date + "_" + (type == "exact" ? "interval" : "exact")).style.display = "none";
  for (var c = 1; c < 5; c++)
    $(block_date + "_link_" + c).className = c == link_num ? "linkselected" : "linkdeselected";
  if (show_date != "noempty") {
    $(block_date + "_day").value = 0;
    $(block_date + "_month").value = 0;
    $(block_date + "_year").value = 0;
    $(block_date + "_from_day").value = 0;
    $(block_date + "_from_month").value = 0;
    $(block_date + "_from_year").value = 0;
    $(block_date + "_to_day").value = 0;
    $(block_date + "_to_month").value = 0;
    $(block_date + "_to_year").value = 0;
  }
  var to_date = new Date();
  var to_year = to_date.getFullYear();
  var to_month = to_date.getMonth() + 1;
  var to_day = to_date.getDate();
  var days_in_month = new Array(31, (!(to_year & 3) && (to_year % 1e2 || !(to_year % 4e2))) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  var from_year = to_year;
  var from_month = to_month;
  if (show_date == "last_week") var from_day = to_day - 7;
  if (show_date == "last_month") var from_day = to_day - 30;
  if (show_date == "last_week" || show_date == "last_month") {
    if (from_day < 1) {
      from_month--;
      if (from_month < 1) {
        from_year--;
        from_month = 12;
      }
      from_day += days_in_month[from_month - 1];
    }
    set_date(block_date + "_to", to_year, to_month, to_day);
    set_date(block_date + "_from", from_year, from_month, from_day);
  }
}

function mt_set_sale_info() {
  $('mt_sale_info').innerHTML = "Стоимость карты составляет 300 рублей. Срок действия 12 месяцев с момента активации. Территория действия по состоянию на ноябрь 2009 года  - Санкт-Петербург, с декабря 2009 года подключается Казань. Территория действия карты постоянно расширяется. Приобрести дисконтную карту Мегаполис ТЕХКОНТРОЛЬ можно у партнеров сети, предоставляющих скидки. Чтобы заказать карту с доставкой, заполните следующую заявку.";
}

function check_buy_card() {
  if ($F("full_name") != "" && $F("telephone") != "" && $F("email") != "" && $F("adress") != "") {
//    $("button_submit").disabled = true; работает только в FF по ДЗ
    return true;
  } else {
    alert ("Не заполнены все обязательные поля!");
    return false;
  }
}

function mt_check_buy_card() {
  if ($F("full_name") != "" && $F("telephone") != "" && $F("email") != "" && $F("adress") != "") {
//    $("button_submit").disabled = true;
    return true;
  } else {
    alert ("Не заполнены все обязательные поля!");
    return false;
  }
}

function check_feedback() {
  if ($F("full_name") != "" && $F("city") != "" && $F("telephone") != "" && $F("email") != "" && $F("text") != "") {
//    $("button_submit").disabled = true;
    return true;
  } else {
    alert ("Не заполнены все обязательные поля!");
    return false;
  }
}

function check_creditcard() {
  if ($F("full_name") != "" && $F("city") != "" && $F("telephone") != "" && $F("email") != "") {
    return true;
  } else {
    alert ("Не заполнены все обязательные поля!");
    return false;
  }
}

function banner_show_big(banner) {
  $(banner).src = banners[banner + "_" + banners_main_now_count]["big"].src;
  banners_main_status = 1;
}

function banner_show_small(banner) {
  $(banner).src = banners[banner + "_" + banners_main_now_count]["small"].src;
  banners_main_status = 0;
}

function banner_change(banner) {
  banners_main_now_count++;
  if (banners_main_now_count > banners_main_max_count) banners_main_now_count = 1;
  $(banner + "_href").href = banners[banner + "_" + banners_main_now_count]["href"];
  if (banners_main_status)
    $(banner).src = banners[banner + "_" + banners_main_now_count]["big"].src;
  else
    $(banner).src = banners[banner + "_" + banners_main_now_count]["small"].src;
  setTimeout("banner_change(\"banner_main\")", 10000);
}

function banner_change_start(banner) {
  setTimeout("banner_change(\"" + banner + "\")", 10000);
}

function get_client_width() {
  return document.compatMode == "CSS1Compat" && !window.opera ? document.documentElement.clientWidth : document.body.clientWidth;
}
 
function get_client_height() {
  return document.compatMode == "CSS1Compat" && !window.opera ? document.documentElement.clientHeight : document.body.clientHeight;
} 
 
function get_page_scroll() {
  var scrollX, scrollY;

  if (typeof window.pageYOffset == "number") {
    scrollX = window.pageXOffset;
    scrollY = window.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop) {
    scrollX = document.documentElement.scrollLeft;
    scrollY = document.documentElement.scrollTop;
  } else if (document.body && document.body.scrollTop) {
    scrollX = document.body.scrollLeft;
    scrollY = document.body.scrollTop;
  } else if (window.scrollY) {
    scrollX = window.scrollX;
    scrollY = window.scrollY;
  }

  return [scrollX, scrollY];
}

function get_page_size() {
  var xScroll, yScroll;

  if (window.innerHeight && window.scrollMaxY) {
    xScroll = document.body.scrollWidth;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight) {
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } else if (document.documentElement && document.documentElement.scrollHeight > document.documentElement.offsetHeight) {
    xScroll = document.documentElement.scrollWidth;
    yScroll = document.documentElement.scrollHeight;
  } else {
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }

  var windowWidth, windowHeight;
  if (self.innerHeight) {
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) {
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) {
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  }

  if (yScroll < windowHeight){
    pageHeight = windowHeight;
  } else {
    pageHeight = yScroll;
  }

  if (xScroll < windowWidth){
    pageWidth = windowWidth;
  } else {
    pageWidth = xScroll;
  }

  return [pageWidth, pageHeight, windowWidth, windowHeight];
}

function screen_lock(message) {
  var lock = document.getElementById("screen_lock");
  var screen_locked_box = document.getElementById("screen_locked_box");
  var page_size = get_page_size();
  var page_scroll = get_page_scroll();

  lock.className = "screen_locked";
  lock.style.height = page_size[1] - 270 + "px";
  document.getElementById("screen_locked_message").innerHTML = message;
  screen_locked_box.style.left = Math.round((get_client_width() - screen_locked_box.clientWidth) / 2) + "px";
  screen_locked_box.style.top = Math.round((get_client_height() - screen_locked_box.clientHeight) / 2) + page_scroll[1] + "px";
}

function screen_unlock() { 
  var lock = document.getElementById("screen_lock"); 
  lock.className = "screen_unlocked"; 
} 

function screen_lock_for_waiting() {
  var message = "<br /><br /><br /><img src=\"../img/ajax-loader.gif\"><br /><br /><b>Пожалуйста, подождите...</b>";

  screen_lock(message);
}

function screen_lock_for_waiting_for(what) {
  var message = "<br /><br /><br /><img src=\"../img/ajax-loader.gif\"><br /><br /><b>Идет " + what + ".<br/>Пожалуйста, подождите...</b>";

  screen_lock(message);
}

function check_jur_www_logo_delete() {
  if ($("www_logo_delete").checked == true)
    if ($F("www_is_to_do") == 0) {
      alert("При удалении логотипа необходимо обязательно перегенерировать WWW страницы!");
      return false;
    }
  return true;
}

