function change_block(id) {
	var full_description = document.getElementById('full_description_' + id),
	full_link = document.getElementById('full_link_' + id);
	if(full_description.style.display != 'block') {
		full_link.style.display = 'none';
		full_description.style.display = 'block';
	}
	else {
		full_description.style.display = 'none';
		full_link.style.display = 'block';
	}
}
function show_image(source, id, real_width) {
	var big_image = document.getElementById('big_image_' + id);
	big_image.src = source;
  if(real_width > 220) {
    big_image.style.width = "220px";
  } else {
    big_image.style.width = "auto";
  }
}
function image_big(src) {
	var image = window.open("","","width=600,height=600,scrollbars=yes");
	image.document.write("<html><body><div align = 'center'><img src = "+src+" onclick = 'window.close()' /></div></body></html>");
}
// Добавить в Избранное
function add_favorite(a) {
  title=document.title;
  url=document.location;
  try {
    // Internet Explorer
    window.external.AddFavorite(url, title);
  }
  catch (e) {
    try {
      // Mozilla
      window.sidebar.addPanel(title, url, "");
    }
    catch (e) {
      // Opera
      if (typeof(opera)=="object") {
        a.rel="sidebar";
        a.title=title;
        a.url=url;
        return true;
      }
      else {
        // Unknown
        alert('Нажмите Ctrl-D чтобы добавить страницу в закладки');
      }
    }
  }
  return false;
}
function check_telephone(num) {
  var re = /^[0-9\-()\+\s]+$/
  if(!num.match(re)) {
    return (false);
  }
  return(true);
}
function trim(str) {
  spec = new Array("_"," ","`");
  var fbreak;
  while(true) {
    fbreak = false;
    for(j=0;j<spec.length;j++) {
       if(str.search(spec[j])==0){fbreak = true; str = str.substring(1, str.length); break;}
    }
    for(j=0;j<spec.length;j++) {
       if(spec[j]==str.substring(str.length-1, str.length)){fbreak = true; str = str.substring(0, str.length-1); break;}
    }
    if(!fbreak) break;
  }
  return str;
}
function add_order(product_form_id, method) {
  var product_form = document.getElementById(product_form_id),
      product_id = product_form.product_id.value,
      product_count = trim(product_form.product_count.value);
  product_form.product_count.value = product_count;
  var pattern = /^[0-9]+$/
  if(product_count == "") {
    alert("Пожалуйста, укажите кол-во заказываемого товара!");
    return false;
  } else if(!product_count.match(pattern)) {
    alert("Неверно указано кол-во заказываемого товара!");
    return false;
  }
  if(method == "pay") {
    var url = "/order/add?product_id="+product_id+"&product_count="+product_count;
    makeRequest(url,"shopping_cart_content");
  } else if(method == "order") {
    product_form.submit();
  }
}
function change_captcha() {
  var url = "/get_captcha";
  makeRequest(url,"captcha_img");
}
function check_contact_form() {
  var contact_form = document.getElementById('contact_form'),
      fio = contact_form.fio,
      phone = contact_form.phone,
      usermail = contact_form.usermail,
      message = contact_form.message,
      captcha = contact_form.captcha,
      error_message = "";
  fio.value = trim(fio.value);
  phone.value = trim(phone.value);
  usermail.value = trim(usermail.value);
  message.value = trim(message.value);
  captcha.value = trim(captcha.value);

  if(fio.value == "") {
    error_message = error_message + "Заполните поле 'Фамилия, имя, отчество'\r\n";
  }
  if(phone.value != "") {
    if(!check_telephone(phone.value)) {
      error_message = error_message + "Поле 'Контактный телефон' заполнено неверно\r\n";
    }
  }
  if(usermail.value == "") {
    error_message = error_message + "Заполните поле 'Электронный адрес (e-mail)'\r\n";
  } else if(usermail.value.indexOf('@', 0) == -1 || usermail.value.indexOf('.', 0) == -1) {
    error_message = error_message + "Поле 'Электронный адрес (e-mail)' заполнено неверно\r\n";
  }
  if(message.value == "") {
    error_message = error_message + "Заполните поле 'Текст сообщения'\r\n";
  }
  if(captcha.value == "") {
    error_message = error_message + "Заполните поле 'Защитный код'\r\n";
  }

  if(error_message != "") {
    alert(error_message);
  } else {
    contact_form.submit();
  }
}

function order_display() {
  if(document.getElementById("ur_div").className=="order_ur_none") {
    document.getElementById("ur_div").className="order_ur_block";
    document.getElementById("phisical_div").className="order_ur_none";
  } else {
    document.getElementById("ur_div").className="order_ur_none";
    document.getElementById("phisical_div").className="order_ur_block";
  }
}

function registration_display()
{
  if (document.getElementById("fiz_div").className=="order_ur_none") {  
     document.getElementById("fiz_div").className="order_ur_block";
     document.getElementById("ur_div").className="order_ur_none";
  }
  else {
    document.getElementById("fiz_div").className="order_ur_none";
    document.getElementById("ur_div").className="order_ur_block"; 
  }
}

function delivery_display_delivery_method(param) {
  if(param == 1) {
    document.getElementById("delivery_address_block").style.display = "block";
    document.getElementById("region_div").className="order_ur_block";
    document.getElementById("town_div").className="order_ur_block";
    document.getElementById("town_div_select").className="order_ur_none"; 
  } else if(param == 2) {
    document.getElementById("delivery_address_block").style.display = "block";
    document.getElementById("region_div").className="order_ur_none";
    document.getElementById("town_div").className="order_ur_none";
    document.getElementById("town_div_select").className="order_ur_block";
  } else {
    document.getElementById("delivery_address_block").style.display = "none";
  }
}

function order_info() {
  var order_info_form = document.getElementById('order_info_form');
  order_info_form.submit();
}

function order_delivery() {
  var order_delivery_form = document.getElementById('order_delivery_form');
  order_delivery_form.submit();
}

function registration_completion() {
  var registration_form = document.getElementById('registration_form');
  registration_form.submit();
}

function questions_answers() {
  var questions_answers_form = document.getElementById('questions_answers_form');
  questions_answers_form.submit();
}

function profile_completion() {
  var profile_form = document.getElementById('profile_form');
  profile_form.submit();
}
function password_reminder() {
  var password_reminder_form = document.getElementById('password_reminder_form');
  password_reminder_form.submit();
}

function password_change() {
  var password_change_form = document.getElementById('password_change_form');
  password_change_form.submit(); 
}

function go_to(url) {
  window.location.href=url;
}
function choice_accept(checked) {
  document.getElementById('order_send_button').disabled = !checked;
}
function change_delivery_price(region_id, target_block_id) {
  var url = "/order/delivery_price?region_id="+region_id,
      continue_button = document.getElementById('continue_button');
  continue_button.disabled = true;
  makeRequest(url, target_block_id);
}
//----------------------------------------------------------------------------------------------------------------------------------------------------

function check_pass_strength() {
    var pass = document.getElementById('registration_password').value;
    var user = document.getElementById('registration_email').value;
    var strength;

    //alert('it works!!!');
    
    //document.getElementById('pass-strength-result').removeClassName('short').removeClassName('bad').removeClassName('good').removeClassName('strong');
   
    
    if(pass=='') {
      document.getElementById('pass-strength-result').className="pass_nothing";
      document.getElementById('pass-strength-result').innerHTML='Индикатор надежности'; 
      return;
    }
    
    strength = passwordStrength(pass, user); 
      //strength = 4;
      //alert(strength);  
    switch( strength ) {
      case 2:
        document.getElementById('pass-strength-result').className="pass_bad";
        document.getElementById('pass-strength-result').innerHTML='Плохой пароль'; 
        break;
      case 3:
        document.getElementById('pass-strength-result').className="pass_good";
        document.getElementById('pass-strength-result').innerHTML='Хороший пароль';
        break;
      case 4:
        document.getElementById('pass-strength-result').className="pass_strong";
        document.getElementById('pass-strength-result').innerHTML='Надежный пароль';
        break;
      default:
        document.getElementById('pass-strength-result').className="pass_short";
        document.getElementById('pass-strength-result').innerHTML='Слишком короткий';
    }
}

function passwordStrength(password,username) {
    var shortPass = 1, badPass = 2, goodPass = 3, strongPass = 4, symbolSize = 0, score;

  //password < 4
  if (password.length < 4 ) { return shortPass };
    
  //password == username
  if (password.toLowerCase()==username.toLowerCase()) return badPass; 
  
  if (password.match(/[0-9]/)) symbolSize +=10;
  if (password.match(/[a-z]/)) symbolSize +=26;
  if (password.match(/[A-Z]/)) symbolSize +=26;
  if (password.match(/[^a-zA-Z0-9]/)) symbolSize +=31;
  
  natLog = Math.log( Math.pow(symbolSize,password.length) );
  score = natLog / Math.LN2;
   
  if (score == natLog / Math.LN2)
   // alert('it works too');
  if (score < 40 )  return badPass
  if (score < 56 )  return goodPass
    return strongPass;
}

function other_town(town_id) {
  var order_town = document.getElementById('order_town');
  if(town_id=="0") {
    order_town.style.display = "inline";
  } else {
    order_town.style.display = "none";
  }
}
function change_town_list(region_id) {
  var url = "/order/town_list?region_id="+region_id;
  makeRequest(url, 'town_list');
}

function site_map_change_block(site_map_plus_obj, block_id) {
  var block_obj = document.getElementById(block_id);
  if(block_obj.style.display == "block") {
    site_map_plus_obj.innerHTML = "+";
    block_obj.style.display = "none";
  } else {
    site_map_plus_obj.innerHTML = "&ndash;";
    block_obj.style.display = "block";
  }
}
function registration_user_agreement_change(is_accept) {
  var registration_submit = document.getElementById("registration_submit");
  if(is_accept) {
    registration_submit.disabled = "";
  } else {
    registration_submit.disabled = "disabled";
  }
}
