var step = -1;
var thickImage = 1;
var currentImage = 0;
var countImage = 15;
var result = true;

function beginPromo(Sender, AData) {

  designPosition = Position.cumulativeOffset($("collage-block"));

  designPosition[0] += parseInt($("collage-block").getStyle("padding-left"));
  designPosition[1] += parseInt($("collage-block").getStyle("padding-top"));

  var Obj = $('collage-image-two');

  Obj.setStyle({display: "block"});
  Position.absolutize(Obj);
  Obj.className = "promo-" + currentImage;
  
  Obj.setStyle({top: designPosition[1]+"px",
                left: designPosition[0]+"px" });

  var nextImage = currentImage + 1;

  if( currentImage == countImage )
    nextImage = 0;

  var Obj = $('collage-image-one');
  Obj.setStyle({display: "block"});
  Position.absolutize(Obj);
  Obj.className = "promo-" + nextImage;

  Obj.setStyle({top: designPosition[1]+"px",
                left: designPosition[0]+"px" });

  currentImage = nextImage;

  Executer = new PeriodicalExecuter(showPromo, 0.01);
}

function showPromo(Sender) {

  // если это не стопкадр, то делаем действие  
  if( thickImage
      && thickImage < 10 ) {
    thickImage++;
    return;
  }

  thickImage = 0;

  var Obj = $('collage-image-two');

  if( Obj.getStyle('opacity') <= 0 )
    Obj.setStyle({display: "none"});
  else
    Obj.setStyle({display: "block"});

  Obj.setOpacity(Obj.getStyle('opacity')+(0.5 * step));

  if( Obj.getStyle('opacity') <= 0
      || Obj.getStyle('opacity') >= 1 ) {

    if( step > 0 )
      step = -1;
    else
      step = 1;

    thickImage = 1;

    if( currentImage >= countImage-1 ) {
      Sender.stop();
      currentImage = 0;
    }
    else
      currentImage++;

    if( step < 0 )
      var Obj = $('collage-image-one');

    if( Obj.getStyle('opacity') <= 0 )
      Obj.setStyle({display: "none"});
    else
      Obj.setStyle({display: "block"});

    Obj.className = "promo-" + currentImage;
  }
}

function BinCount(checked){

  if(checked){
    $("good-count").innerHTML = parseInt($("good-count").innerHTML)+1;
  }
  else{
    $("good-count").innerHTML = parseInt($("good-count").innerHTML)-1;
  }
}

function ValidateBuy(Href){
  if(parseInt($("good-count").innerHTML))
    location.href = Href;
  else{
    alert("Пожалуйста, выберите товары для покупки.");
    return false;
  }
}

function ValidateCompare(Href){
  
  new Ajax.Request('/json/?Name=comparecount',{
    onComplete: function(request) {
      
      var data;
      eval(request.responseText);
      
      if(data < 2 || data > 4){
        alert("Пожалуйста, выберите не менее 2 и не более 4 товаров для сравнения.");
      }
      else
        location.href = Href;    
      }
  });
    
  return false;
}

function ShowVote(Id){
  if($("vote-more-"+Id))
    $("vote-more-"+Id).show();
}

function HideVote(Id){
  if($("vote-more-"+Id))
    $("vote-more-"+Id).hide();
}

function ValidateRegistration(Sender){

  if($("PasswordAgain-reg").value != $("Password-reg").value){
    alert("Внимание! Поля «Пароль» и «Пароль повторно» не совпадают - пожалуйста, проверьте их внимательно.");
    return false;
  }

  return ValidateForm(Sender);
}

function ShowGoodPreview(Id, Action){

  if(Action == 1){
    $("good-img-"+Id).setStyle({
      display: 'block'
      //top: 110+'px',
      //left: 110+'px' 
    });
  }
  else{
    $("good-img-"+Id).setStyle({
      display: 'none'
    });
  }
}

function UserAuth(Sender){

  new Ajax.Updater('login-popup', '/json/?Name=auth&'+$(Sender).serialize(),{
    parameters: {
      SITE: 'index'
    }
  });
  
  return false;
}

function changeTypeForm(Group, Site, Page){

  new Ajax.Updater('form-block', '/json/?Name=RubricType',{
    parameters: {
      SITE: Site,
      RubricName: Group,
      RequestPage: Page
    }
  });
  
  return false;

}

function updateSearchForm(Sender, Group, Site){

  new Ajax.Updater('form-block', '/json/?Name=updateForm&'+$(Sender).up("form").serialize(),{
    parameters: {
      SITE: Site,
      RequestPage: Group
    }
  });
}

function Voting(Question, Answer, Site){

  new Ajax.Updater('vote-'+Question, '/json/?Name=VoteForGood',{
    parameters: {
      SITE: Site,
      Object: Question,
      Value: Answer
    }
  });
}

function SetValue(Key, Value, Type) {
  var Request = null;
  if( window.XMLHttpRequest )
    Request = new XMLHttpRequest();
  else if( window.ActiveXObject )
    Request = new ActiveXObject('MsXml2.XmlHttp');
  if( Request ) {
    Request.open('get', '/setvalue.html?Type='+Type+'&Key='+Key+'&Value='+Value+'&Active='+Math.random(), true);
    Request.send(null);
  }
}

document.observe("dom:loaded", function(){

  if($("demand-table")){
    
    // Вдруг пользовтель захочет изменит поле ручками
    $$("#demand-table input.item-count").each(function(e){
    
      Event.observe($(e), 'keyup', CalcPrice.curry($(e)));
    });
    
    // Обработчики для кнопок "+" и "-"
    $$("#demand-table table.up-down-tbl a.up-down").each(function(e){
     
      if($(e).hasClassName('up')){
        Event.observe($(e), 'click', UpClick);
      }
      else if($(e).hasClassName('down')){
        Event.observe($(e), 'click', DownClick);
      }
    });
  }

});

jQuery(function() {

  jQuery("#phone span.number").click(function(){
    jQuery(this).next("div.other").slideToggle();
  });
});

function UpCount(Obj) {
  
  if($(Obj).readAttribute("maxlength")
     && (parseInt(Obj.value))+1 >= Math.pow(10, $(Obj).readAttribute("maxlength"))){
    return;   
  }
  
  if( $(Obj).value >= 0 )
    $(Obj).value++;
  else
    $(Obj).value = 0;
}

function DownCount(Obj) {

  if( $(Obj).value > 0 )
    $(Obj).value--;
  else
    $(Obj).value = 0;
}

function UpClick(e){

  element = Event.element(e);
  
  var input = $(element).up('table.up-down-tbl').down('input');
  
  UpCount(input);
  CalcPrice(input);
  
  e.stop();
}

function DownClick(e){

  element = Event.element(e);
  
  var input = $(element).up('table.up-down-tbl').down('input');
  
  DownCount(input);
  CalcPrice(input);
  
  e.stop();
}

// Подсчитываем колличество выбранных товаров и сумму, которую они составляют
function CalcPrice(Sender){

  SetValue( Sender.name , Sender.value, 'string');

  if(!$("cost-"+Sender.id))
    return;

  var result = 0;
  
  var price = parseFloat($("cost-"+Sender.id).innerHTML.replace(',', '.').replace(' ', ''));
  
  $(("price-"+Sender.id)).innerHTML = number_format(Sender.value*price, 0, '', ' ');
  
  $$(".price").each(function(e){
    result += parseFloat(e.innerHTML.replace(',', '.').replace(' ', '').replace(/[^0-9|\.|,]/gi, ""));
  });
  
  if($("result-price"))
    $("result-price").update(number_format(result, 0, '', ' '));
}

function DeleteGood(id){
  
  if(!confirm("Вы действительно хотите удалить товар из заказа?")){
    return false;
  }
  
  var element = $("row-"+id);
  
  if(!element)
    return false;
  
  var input = $(element).down('input.item-count');
  
  input.value = 0;
  CalcPrice(input);
  
  $(element).remove();
  
  return false;
}

