// размер окна браузера
function get_browser_size() {
 var int_h = 0;
 var int_w = 0;
 if ( typeof window.innerWidth == 'number' ) {
  int_h = window.innerHeight;
  int_w = window.innerWidth;
 } else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
  int_h = document.documentElement.clientHeight;
  int_w = document.documentElement.clientWidth;
 } else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
  int_h = document.body.clientHeight;
  int_w = document.body.clientWidth;
 }
 return { width: parseInt(int_w), height: parseInt(int_h) };
}

// координата по оси y
function get_scroll_y() {
 var scroll_y = 0;
 if ( document.documentElement && document.documentElement.scrollTop ) {
  scroll_y = document.documentElement.scrollTop;
 } else if ( document.body && document.body.scrollTop ) {
  scroll_y = document.body.scrollTop;
 } else if ( window.pageYOffset ) {
  scroll_y = window.pageYOffset;
 } else if ( window.scrollY ) {
  scroll_y = window.scrollY;
 }
 return scroll_y;
}

// координаты элемента
function get_element_pos(element) {
 var pos = new Object();
 if ( !element ) { return null; }
 var it;
 it = element;
 pos.x = 0;
 if ( it.offsetParent ) {
  while ( it.offsetParent ) {
   pos.x += it.offsetLeft;
   it = it.offsetParent;
  }
 } else if ( it.x ) {
  pos.x += it.x;
 }
 it = element;
 pos.y = 0;
 if ( it.offsetParent ) {
  while ( it.offsetParent ) {
   pos.y += it.offsetTop;
   it = it.offsetParent;
  }
 } else if ( it.y ) {
  pos.y += it.y;
 }
 return pos;
}

// подтверждение перехода по url
function url_action_confirm(message,url) {
 if ( confirm(message) ) {
  location.href = url;
 }
}

// смена src изображения
function change_img(id_name,src_url) {
 var elm = document.getElementById(id_name);
 elm.src = src_url;
}

// отображать / скрыть элемент
function elm_view_switch(elm_id) {
 var elm = document.getElementById(elm_id);
 if ( elm.style.display == 'none' ) {
  elm.style.display = 'block';
 } else {
  elm.style.display = 'none';
 }
}

// checkbox - изменение значения
function checkbox_elm_switch(elm_id) {
 var elm = document.getElementById(elm_id);
 if ( elm.disabled == false ) {
  elm.checked = ( elm.checked ? false : true );
 }
}

// http-запросы без перезагрузки страницы
function create_http_request() {
 var http_request;
 var browser = navigator.appName;
 if ( browser == "Microsoft Internet Explorer" ) {
  http_request = new ActiveXObject("Microsoft.XMLHTTP");
 } else {
  http_request = new XMLHttpRequest();
 }
 return http_request;
}

// запрос
var http = create_http_request();

// сервер
var http_server_url = 'https://znamenie.biz/';

// проверка логина
var prev_login_value = '';
function check_login() {
 var login = document.getElementById('login').value;
 if ( login != '' ) {
  if ( prev_login_value != login ) {
   document.getElementById('login_input_div').style.margin = '0px 0px 3px 0px';
   document.getElementById('login_message_div').style.display = 'block';
   document.getElementById('login_message_div').className = 'alarm_color';
   document.getElementById('login_message_div').innerHTML = 'проверка введённого логина ...';
   http.open('get',http_server_url + 'index.php?login=' + encodeURIComponent(login) + '&rand=' + Math.random());
   http.onreadystatechange = check_login_answer;
   http.send(null);
  }
 } else {
  document.getElementById('login_message_div').style.display = 'none';
  document.getElementById('login_input_div').style.margin = '0px 0px 10px 0px';
 }
}
function check_login_answer() {
 if ( http.readyState == 4 ) {
  var answer = http.responseText;
  if ( answer == '1' ) {
   document.getElementById('login_message_div').className = 'ok_color';
   document.getElementById('login_message_div').innerHTML = 'выбранный логин свободен';
  } else if ( answer == '2' ) {
   document.getElementById('login_message_div').className = 'error_color';
   document.getElementById('login_message_div').innerHTML = 'выбранный логин, к сожалению, занят';
  } else if ( answer == '3' ) {
   document.getElementById('login_message_div').className = 'error_color';
   document.getElementById('login_message_div').innerHTML = 'некорректный логин';
  } else {
   document.getElementById('login_message_div').style.display = 'none';
   document.getElementById('login_input_div').style.margin = '0px 0px 10px 0px';
  }
 }
}

// управление корзиной
// положить | убрать товар
var to_basket_good_id = 0;
var to_basket_good_nr = 0;
var info_to_table = 0;
function put_to_basket(good_id,inc,min_nr,itt,nr_limit) {
 itt = itt || 0;
 nr_limit = nr_limit || 0;
 info_to_table = itt;
 to_basket_good_id = good_id;
 var good_nr =  ( isNaN(parseInt(document.getElementById("good_nr_" + good_id).value)) ? 0 : parseInt(document.getElementById("good_nr_" + good_id).value) );
 if ( !( nr_limit > 0 && good_nr >= nr_limit ) || inc == 2 ) {
  if ( inc == 1 ) { good_nr = ( min_nr > 0 ? good_nr + min_nr : good_nr + 1 ); }
  if ( inc == 2 ) { good_nr = ( min_nr > 0 ? good_nr - min_nr : good_nr - 1 ); }
  if ( min_nr > 0 ) {
   var koeff = Math.ceil(good_nr/min_nr);
   good_nr = min_nr*koeff;
  }
  if ( good_nr < 0 ) { good_nr = 0; }
  to_basket_good_nr = good_nr;
  http.open("get",http_server_url + "index.php?basket=put&good_id=" + good_id + "&good_nr=" + good_nr + "&itt=" + itt + "&rand=" + Math.round( Math.random() * 1000000000000000 ));
  http.onreadystatechange = check_put_to_basket_answer;
  http.send(null);
 }
}
function check_put_to_basket_answer() {
 if ( http.readyState == 4 ) {
  var answer = http.responseText;
  if ( answer != "" ) {
   var add_nr = to_basket_good_nr - parseInt(document.getElementById("good_nr_" + to_basket_good_id).value);
   document.getElementById("good_nr_" + to_basket_good_id).value = to_basket_good_nr;
   var elm = document.getElementById("at_basket_block_" + to_basket_good_id);
   if ( elm ) {
    document.getElementById("at_basket_block_empty_" + to_basket_good_id).style.display = ( to_basket_good_nr > 0 ? "none" : "block" );
    document.getElementById("at_basket_block_nr_" + to_basket_good_id).style.display = ( to_basket_good_nr > 0 ? "block" : "none" );
    document.getElementById("at_basket_block_nr_val_" + to_basket_good_id).innerHTML = to_basket_good_nr;
   }
   if ( info_to_table == 0 ) {
    document.getElementById("top_basket_info").innerHTML = answer;
    var elm1 = document.getElementById("top_basket_short_info");
    if ( elm1 ) {
     http.open("get",http_server_url + "index.php?basket=short_info&rand=" + Math.round( Math.random() * 1000000000000000 ));
     http.onreadystatechange = check_basket_short_info_answer;
     http.send(null);
    }
   } else {
    document.getElementById("sum_basket_info").innerHTML = answer;
    var elm_av = document.getElementById("sum_basket_info_av"); if ( elm_av ) { elm_av.innerHTML = answer; }
    var old_nr = parseInt(document.getElementById("nr_basket_info").innerHTML);
    var new_nr = old_nr + add_nr;
    if ( new_nr < 0 ) { new_nr = 0; }
    document.getElementById("nr_basket_info").innerHTML = new_nr;
    var elm_nr_av = document.getElementById("nr_basket_info_av"); if ( elm_nr_av ) { elm_nr_av.innerHTML = new_nr; }
    if ( typeof recalc_basket_goods_prices == 'function' ) { recalc_basket_goods_prices(); }
    if ( typeof recalc_basket_sum_price == 'function' ) { recalc_basket_sum_price(); }
    if ( typeof recalc_basket_sections_prices == 'function' ) { recalc_basket_sections_prices(); }
   }
   //document.getElementById("to_basket_block_" + to_basket_good_id).innerHTML = '<A HREF="/basket/" TITLE="Оформить заказ"><IMG SRC="/images/to-basket-button-order.gif" WIDTH="80" HEIGHT="17" BORDER="0" /></A>';
  }
 }
}
function check_basket_short_info_answer() {
 if ( http.readyState == 4 ) {
  var answer = http.responseText;
  if ( answer != "" ) {
   document.getElementById("top_basket_short_info").innerHTML = answer;
  }
 }
}
// удаление всего кол-ва товара из корзины
var basket_good_id = 0;
function set_good_nr_to_zero(id,message) {
 basket_good_id = id;
 if ( confirm(message) ) {
  http.open('get',http_server_url + "index.php?basket=delete&good_id=" + basket_good_id + "&rand=" + Math.round( Math.random() * 1000000000000000 ));
  http.onreadystatechange = check_set_good_nr_to_zero_answer;
  http.send(null);
 }
}
function check_set_good_nr_to_zero_answer() {
 if ( http.readyState == 4 ) {
  var answer = http.responseText;
  if ( answer != '' ) {
   var delete_nr = parseInt(document.getElementById("good_nr_" + basket_good_id).value);
   var tb_tr_line = document.getElementById('good_id_' + basket_good_id);
   
   
   //tb_tr_line.parentElement.removeChild(tb_tr_line);
   tb_tr_line.style.display = "none";
   document.getElementById("good_nr_" + basket_good_id).value = 0;
   
   
   document.getElementById("sum_basket_info").innerHTML = answer;
   var elm_av = document.getElementById("sum_basket_info_av"); if ( elm_av ) { elm_av.innerHTML = answer; }
   
   var new_nr = parseInt(document.getElementById("nr_basket_info").innerHTML) - delete_nr;
   if ( new_nr < 0 ) { new_nr = 0; }
   document.getElementById("nr_basket_info").innerHTML = new_nr;
   
   if ( typeof recalc_basket_goods_prices == 'function' ) { recalc_basket_goods_prices(); }
   if ( typeof recalc_basket_sum_price == 'function' ) { recalc_basket_sum_price(); }
   if ( typeof recalc_basket_sections_prices == 'function' ) { recalc_basket_sections_prices(); }
  } else {
   alert("Ошибка при удалении записи :(");
  }
 }
}

// выделение текста в поле формы
function select_this_text(field) { field.focus(); field.select(); }

// установка элементов checkbox или radio в checked по id, получаемому из кол-ва элементов и доп. значения
function set_cr_to_checked_by_id(elm_name,items_nr,num_add) {
 if ( items_nr > 0 && num_add > 0 ) {
  for ( i = 1; i <= items_nr; i++ ) {
   document.getElementById(elm_name+'_'+i+'_'+num_add).checked = true;
  }
 }
}

// открыть|закрыть блок левого меню
function u_section_switch(id) {
 state = document.getElementById('u_section_'+id).style.display;
 if ( state == 'block' ) {
  document.getElementById('u_section_'+id).style.display = 'none';
  document.getElementById('s_img_'+id).src = '/images/s-open.gif';
 } else {
  document.getElementById('u_section_'+id).style.display = 'block';
  document.getElementById('s_img_'+id).src = '/images/s-close.gif';
 }
}

// открыть|закрыть блок левого меню ( дублю для адаптивной верстки )
function av_u_section_switch(id) {
 state = document.getElementById('av_u_section_'+id).style.display;
 if ( state == 'block' ) {
  document.getElementById('av_u_section_'+id).style.display = 'none';
  document.getElementById('av_s_img_'+id).src = '/images/s-open.gif';
 } else {
  document.getElementById('av_u_section_'+id).style.display = 'block';
  document.getElementById('av_s_img_'+id).src = '/images/s-close.gif';
 }
}

// изменение статуса уведомления о поступлении товара в продажу
var cur_elm_checked_val_change_id = '';
function change_message_state_about_good_state(good_id,order_id) {
 var elm = document.getElementById('send_message_'+good_id);
 if ( elm ) {
  cur_elm_checked_val_change_id = 'send_message_'+good_id;
  if ( elm.checked ) {
   state = 1;
  } else {
   state = 0;
  }
  http.open('get',http_server_url + "index.php?message_state_about_good_state=" + state + "&good_id=" + good_id + "&order_id=" + order_id + "&rand=" + Math.round( Math.random() * 1000000000000000 ));
  http.onreadystatechange = change_message_state_about_good_state_answer;
  http.send(null);
 }
}
function change_message_state_about_good_state_answer() {
 if ( http.readyState == 4 ) {
  var answer = http.responseText;
  if ( answer != '' ) {
   var state = parseInt(answer);
   if ( state == 0 ) {
    document.getElementById(cur_elm_checked_val_change_id).checked = false;
   } else {
    document.getElementById(cur_elm_checked_val_change_id).checked = true;
   }
  }
 }
}

// запомнить значение поля в cookie
function set_input_value_to_cookie(form_var_name,form_var_value) {
 var date = new Date(new Date().getTime() + (3600 * 24 * 30 * 1000));
 document.cookie = form_var_name + "=" + encodeURIComponent(form_var_value) + "; path=/; expires=" + date.toUTCString();
}