function OpenPhotoInDiv( Sender, HRef, Section, width, height ) {

  var Body = document.body;
  // Делаем видимой картинку
  $("image-window").style.width = width+"px";
  $("image-window").show();
  $("title").innerHTML = Sender.title;
  $("image-div").innerHTML = "<img border='0' style='cursor: hand' title='"+Sender.title+"' width='"+width+"' height='"+height+"' src='"+HRef+"' onClick='$(\"image-window\").hide();'/>";

  var x = Position.page(Sender)[0];
  var y = Position.page(Sender)[1];
  
  // Теперь распологаем ее по центру превьюшки.
  var divX = x + (Sender.getWidth() - width)/2;
  var divY = y + (Sender.getHeight() - height)/2;
    
  if((divX + width) > $(Body).getWidth()) 
    divX = $(Body).getWidth() - width - 10;
    
  if((divY + height- Position.page($(Body))[1]) > $(Body).getHeight()){ 
    divY = $(Body).getHeight() - height - 10 + Position.page($(Body))[1];
  }
  
  if(divX < 0)
    divX = 10;
    
  if(divY < 0)
    divY = 10;
  
  $(Section).style.left = divX + 'px';
  $(Section).style.top  = (divY - Position.page($(Body))[1])+'px'; 
}

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 CreatePopup(Parent) {

  var oNode = document.createElement("div");
  oNode.className = "sspopup";
  oNode.style.width = "200px";
  oNode.style.height = "100px";

  oNode.innerHTML = "<ul><li>Раз</li><li>Два</li><li>Десять тысяч пятьсоть семьдесят семь</li><li>1234</li></ul>";

  //document.body.appendChild(oNode);
  Parent.appendChild(oNode);

  oNode.onclick = function() {
    Parent.removeChild(oNode)
  };

  /*document.onclick = function() {
    Parent.removeChild(oNode)
  }*/
}

var designTopPosition = 0;
var lastScrollTop = 0;

function beginFloatMenu(Sender) {

  designTopPosition = Position.cumulativeOffset($("menu"))[1];
  //lastScrollTop = -designTopPosition;

  new PeriodicalExecuter(doFloatMenu, 0.05, $("menu"));
}

function doFloatMenu(Sender) {

 var Obj = $("menu");

 //Position.relativize(Obj);

 //alert(Obj);
 
 var scrollTop = (document.documentElement.scrollTop || document.body.scrollTop);

 var Correct = -designTopPosition;

 if( scrollTop < designTopPosition )
   Correct = -scrollTop;

 if( scrollTop != lastScrollTop ) {

  var Percent = 0.2 * (scrollTop - lastScrollTop + Correct);

  if( Percent > 0 )
    Percent = Math.ceil(Percent);
  else
    Percent = Math.floor(Percent);

  var Top = (parseInt(Obj.getStyle("top")||0) + Percent);

  Top += "px";

  //window.status = Top;

  Obj.setStyle({top: Top});

  lastScrollTop = lastScrollTop + Percent;
 }
}

function CloseOpen(Item, Parent){

  if($(Item).visible()){
    $(Item).hide();
  }
  else{
    $(Item).show();
    
    // Ширина списка combo-box должна быть как минимум равной ширине его строчки значений
    if( Parent ){
      if($(Item).getWidth() < $(Parent).getWidth())
        $(Item).setStyle({
          width: $(Parent).getWidth()+'px'});
    } 
  }
    
  return false;
}

function CalcGoods(Sender){

  var result = 0;

  $(("price-"+Sender.id)).innerHTML = number_format(Sender.value*(data[Sender.id].replace(',', '.')), 0, '', ' ');
  
  $$(".price").each(function(e){
    result += parseInt(e.innerHTML.replace(/[^0-9|\.|,]/gi, ""));
  });
  
  $("result-price").innerHTML = number_format(result, 0, '', ' ');
  
  SetValue( Sender.name , Sender.value, 'string');
}

function updateFormLocation(Sender, ParamName){

  var Value = Sender.value;
  //$(ParamName).value = Value;
  var CurrentName = Sender.name;
  var fClose = false;
  var Order = {
    1: 'Town',
    2: 'District',
    3: 'Street',
    4: 'House'
  };
  
  var Select;
  
  $H(Order).each(function(e){
  
    if(!fClose
       && $(e.value).value){
      $(ParamName).value = $(e.value).value;
    }
  
    if(e.value == CurrentName){
      fClose = true;
      Select = $(Order[parseInt(e.key)+1]);
    }
    
    if(fClose
       && e.value != CurrentName){
       
      while($(e.value).options.length > 2)
        $(e.value).remove(2);
      
      $(e.value).disable();
    }
    else{
      $(e.value).enable();
    }
  }); 
  
  if(!Value
     || window.SearchForm)
    return;
  
  new Ajax.Request('/json/', {
  parameters: {
    'Name': 'updateLocation',
    'Object': Value
  },
  onComplete: function(request) {
  
    var data;
    //alert(request.responseText);
    eval(request.responseText);

    $H(data).each(function(e){
      $(Select).add(new Option(e.value, e.key), document.all ? 0 : null);
    });
    
    $(Select).enable();
  }});
}

function validateEmail(Sender){

  var result = "";
  var symbols = '~`!#$%^&*()_+|\=/<>,{}:"\';?[]«»ЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЁЯЧСМИТЬБЮйёцукенгшщзхъэждлорпавыфячсмитьбю';
  var errorSymbols = new Array();
  for(var i=0; i < symbols.length; i++){
    if(Sender.value.indexOf(symbols[i]) != -1){
     errorSymbols[i] = symbols[i];
    }
  }
  
  reg = /[\w-.]+@[\w]+(\.[\w-]+)*/.exec(Sender.value);

  if(errorSymbols.length){
    result = "используется недопустимые символы:\n "+errorSymbols.join('');
  }
  else if(!/@/.exec(Sender.value)){
    result = "нет символа @ в адресе.";
  }
  else if(reg == null || reg[0] != Sender.value){
    result = "неверный формат адреса.\n Пример: prefix.name@sub.domain.com";
  }
  
  if(result){
  
    if(!$(Sender).hasClassName("not-valid-email"))
      $(Sender).addClassName("not-valid-email");
      
    alert("Ошибка! Е-mail указан неверно - "+result);
    Sender.oldBorder = Sender.style.border;
    Sender.setStyle({
      'border': '2px red inset'
    });
  }
  else{
    Sender.style.border = Sender.oldBorder;
    
    if($(Sender).hasClassName("not-valid-email"))
      $(Sender).removeClassName("not-valid-email");
  }
  
  
}

function ChangeStateCheckox(Sender, ClassName){

  $(Sender).up("form").select('input.'+ClassName).each(function(e){
          
    if($(e).checked){
      $(e).checked = false;
    }
    else{
      $(e).checked = true;
    }
    
    $(e).onclick();  
  });
}

function CloseOpenBlock(Block){

  if(!$(Block))
    return false;
    
  if($(Block).visible())
    $(Block).hide();
  else
    $(Block).show();
}

LoadCss('/js/highslide/hs.css');
LoadScript('/js/highslide/highslide.js');

// Когда dom модель документа готова, вешаем на нее весь интерактив
// Подготавливаем Highslide галерею
document.observe("dom:loaded", function(){

  PrepareGallery();

  // открытие фотографии в hs
  $$("a.openInHs").each(function(Sender){
    
    $(Sender).observe("click", function(event){
    
      var element = Event.element(event);
      
      if(element.tagName.toUpperCase() == "IMG")
        element = $(element).up("a");
      
      if(!hs.expand(element))
        Event.stop(event);
    });
  });
});
