function updateJSON(ajax)
{
  json = ajax.responseJSON;
  
  // cart refresh
  if (json.count)
  {
    $('cart_count').innerHTML=json.count;
    $('cart_total').innerHTML=json.total;
    $('cart_full').style.display="block";
    $('cart_empty').style.display="none";
  }
  else
  {
    $('cart_empty').style.display="block";
    $('cart_full').style.display="none";
  }

  // products refresh
  $$('.products').each(function(item) {
    if (item.id.startsWith('product_'))
    {
      if (json.inCart.indexOf(parseInt(item.id.slice(8)))==-1)
        item.innerHTML="Положить в корзину";
      else
        item.innerHTML="Удалить из корзины";
    }
  });
}

function activateCartForm(id)
{
  form=$(id);
  inp=form.getInputs('text');
  ch=form.getInputs('checkbox');

  function change(event)
  {
    if (this.checked)
    {
      this.input.value=0;
      this.input.disabled=true;
    }
    else
      this.input.disabled=false;
  }

  ch.each( function(check, index)
  {
    check.input=inp[index];
    check.onchange=change;
    check.onclick=change;
  } );
}

function activateRegisterForm()
{
  f0=$('user_registered_0');
  f1=$('user_registered_1');
  
  function doShowHide(show, hide)
  {
    hide.each( function(el) { Element.hide(el.parentNode.parentNode); } );
    show.each( function(el) { Element.show(el.parentNode.parentNode); } );
  }
  
  doShowHide([], f0show=[$('user_firstname'), $('user_lastname'), $('user_captcha')]);
  doShowHide([], f1show=[$('user_pass')]);

  function change()
  {
    if (f0.checked)
      doShowHide(f0show, f1show);
    else
      doShowHide(f1show, f0show);
  }
  f0.onchange=f0.onclick=
   f1.onchange=f1.onclick=change;
  change();
}

function activatePlaceForm()
{
  var fieldlist=new Hash();
  ['phone', 'zip', 'region', 'city', 'address'].each(function($k) { fieldlist.set($k, $('place_'+$k)); } );

  place=$('place_id');
  if (place.type!='hidden')
  {
    place.onchange=function()
    {
      if (this.selectedIndex==0)
        fieldlist.values().each( function($f) {$f.enable(); $f.value=''; });
      else
      {
        var selectedIndex=this.selectedIndex;
        fieldlist.each( function($i) { $i[1].disable(); $i[1].value=places[selectedIndex][$i[0]]; });
      }
    }
    place.onchange();
  }

  var city=$('place_city');
  var region=$('place_region');
  region.onchange=function()
  {
    if (this.selectedIndex in [77, 78])
    {
      city.disable(); city.value=this.options[this.selectedIndex].text;
    }
    else
    {
      city.enable(); city.value='';
    }
  };
  region.onchange();

  $('placeform').onsubmit=function(){city.enable(); return true;};
}
