Materials = {
  FromCalc: 0,
  FromCalcContainerClass: 'FromCalcContainer',
  NotFromCalcContainerClass: 'NotFromCalcContainer',
  Item: {
    WindowsStore: [],
    CurrentFocusedWindowId: 0,
    PrevTop: 0
  }
}

WindowCloseKey.init();

Windows.addObserver({
  onShow: function(){
    if (Materials.FromCalc == 1){
      $$('.' + Materials.FromCalcContainerClass).each(function(element){
        if (element.className.include('displayNone')){
          element.className = Materials.FromCalcContainerClass;
        }
      });
      $$('.' + Materials.NotFromCalcContainerClass).each(function(element){
        element.hide();
      });
    }
  },
  onFocus: function(event, window){
    Materials.Item.CurrentFocusedWindow = window;
  }
});


Materials.SearchFormSubmit = function(pageNumber){
  if (!pageNumber) {
    loadingText = 'Выполняется поиск подходящих тканей...';
    pageNumber = 1;
  }
  else
  {
    loadingText = 'Выполняется загрузка страницы...';
  }
  if ($('materialSelection')) {
    window.scrollTo(0, offsetPosition($('materialSelection')).top);
  }
  if ($('materialsListHolder')) {
    window.scrollTo(0, offsetPosition($('materialsListHolder')).top - 10);
  }
  
  $('pageNumber').value = pageNumber;
  $('materialsForm').request({
    method: 'post',
    onLoading: function(){
      $('materialsListHolder').innerHTML = loadingText +'<br /><img src="/res/frontend/img/common/preload.gif">';
    },
    onSuccess: function(transport){
      $('materialsListHolder').innerHTML = transport.responseText;
    }
  })
};

Materials.toggleAdvancedSelect = function(){
  $('advancedSelectTd').className == '' ? $('advancedSelectTd').className = 'displayNone' : $('advancedSelectTd').className = '';
  $('showAdvancedSelectTd').className == 'displayNone' ? $('showAdvancedSelectTd').className = '' : $('showAdvancedSelectTd').className = 'displayNone';
}

Materials.ShowItem = function(url, title){
  var windowsQuantity = Materials.Item.WindowsStore.length;
	
  var win = new Window({
    className: "alphacube",
    title: title,
    width:750,
    height:554,
    showEffectOptions: {
      duration:0.2
    },
    hideEffectOptions: {
      duration:0.2
    },
    maximizable: false,
    recenterAuto: false,
    destroyOnClose: true
  });

  win.setCloseCallback(function(win){
    Materials.Item.WindowsStore = Materials.Item.WindowsStore.without(win);
    return true;
  });
	
  win.toFront();
  win.setHTMLContent('<p style="color: #FFF; font-weight: bold; margin: 50px;">Выполняется загрузка данных...<br /><img src="/res/frontend/img/common/preload.gif"></p>');
	
  win.setAjaxContent(url);
	

	if (windowsQuantity > 0){
    var topPx = parseInt(Materials.Item.WindowsStore.last().getLocation().top.sub(/px/, ''));
    var leftPx = parseInt(Materials.Item.WindowsStore.last().getLocation().left.sub(/px/, ''));
        
    var newTop = topPx + 30;
    var newLeft = leftPx + 30;
		
    // если проскроллено вверх
    if ((Materials.Item.PrevTop + 100) > (document.viewport.getScrollOffsets().top + document.viewport.getHeight())){
      win.showCenter();
      new PeriodicalExecuter(function(pe) {
        if (win.visible){
          newTop = parseInt(win.getLocation().top.sub(/px/, ''));
          pe.stop();
        }
      }, 0.2);
    }
    // если проскроллено вниз
    else if(Materials.Item.PrevTop < document.viewport.getScrollOffsets().top){
      win.showCenter();
      new PeriodicalExecuter(function(pe) {
        if (win.visible){
          newTop = parseInt(win.getLocation().top.sub(/px/, ''));
          pe.stop();
        }
      }, 0.2);
    }
    else{
      win.setLocation(newTop, newLeft);
    }
    Materials.Item.PrevTop = newTop;
  }
  else{
    
    win.showCenter();
    new PeriodicalExecuter(function(pe) {
      if (win.visible){
        Materials.Item.PrevTop = parseInt(win.getLocation().top.sub(/px/, ''));
        pe.stop();
      }
    }, 0.2);
  }
  Materials.Item.WindowsStore.push(win);
};
Materials.keyPress = function(key) {
  if (key == 13)
  {
    Materials.SearchFormSubmit();
  }
  //alert(key);
}

function advancedSelect(headId, containerId) {
  headId.className == '' ? headId.className = 'active' : headId.className = '';
  $(containerId).className == 'displayNone' ? $(containerId).className = 'selectParams' : $(containerId).className = 'displayNone';
}
Materials.showImage = function(id, context) {

  var height = $('materialsImageShow').clientHeight;
  
  //alert(height);
  loadingText = '<div style="height:'+height+'px;color:#fff;text-align:right;font-weight:bold;"><div style="height:'+(height - 50)+'px">...</div>Идёт загрузка изображения...';
  new Ajax.Request(
    '/materialimage/'+id,
    {
      parameters: {
        context: context
      },
      onLoading: function(){
        $('materialsImageShow').innerHTML = loadingText +'<br /><img src="/res/frontend/img/common/preload.gif"></div>';
      },
      onSuccess: function(transport){
        $('materialsImageShow').innerHTML = transport.responseText;
      }
    })
}
function imageZoom(id) {
  $('imageZoomIn_'+id).className == 'displayNone' ? $('imageZoomIn_'+id).className = 'zoomIn' :$('imageZoomIn_'+id).className = 'displayNone';
  $('imageZoomOut_'+id).className == 'displayNone' ? $('imageZoomOut_'+id).className = 'zoomOut' :$('imageZoomOut_'+id).className = 'displayNone';
  $('imageZoomIn_'+id).className == 'displayNone' ? Materials.showImage(id,'pattern') :Materials.showImage(id,'main');

}
function imageInterior(id) {
  if ($('imageShowInterior_'+id).innerHTML == 'В интерьере')
  {
    $('imageShowInterior_'+id).innerHTML = 'Фото ткани';

    if ($('imageZoomIn_'+id)) {
      $('imageZoomIn_'+id).className = 'displayNone';
    }
    
    if ($('imageZoomOut_'+id)) {
      $('imageZoomOut_'+id).className = 'displayNone';
    }

    Materials.showImage(id,'interior')
  }
  else
  {
    $('imageShowInterior_'+id).innerHTML = 'В интерьере';
    
    if ($('imageZoomIn_'+id)) {
      $('imageZoomIn_'+id).className = 'zoomIn';
    }

    if ($('imageZoomOut_'+id)) {
      $('imageZoomOut_'+id).className = 'displayNone';
    }

    Materials.showImage(id,'main')
  }
  
}


