  
function init(){
           
               
                    
}

var Rotator = new Class({
      Implements: [Events, Options],
      options: {          
        cur: 0,          
        timeout: 3000,
        effect: 'slider'
      },
    
     initialize: function(list, options,events){
            this.setOptions(options);
             this.list=list;
             this.length=list.length; 
             if (this.options.effect=='rotator')
              this.list[0].setStyle('opacity', 1); 
          this.f.delay(this.options.timeout, this);  
          this.scroll = $$('.banner-slider .hidden');   
    },
    start: function() {
              this.active=true;

    },
    stop: function() {
              this.active=false;
    },
    setpos: function(pos) {
            this.options.cur = pos;
            this.slide();            
    },
   getpos: function(pos) {             
           return   this.options.cur;            
    },
    f: function() {
        if (this.active) {
            this.options.cur++;
            this.slide();  
        } 
        
        this.f.delay(this.options.timeout, this);
               
    },
  
    slide: function() {   
       	if(this.options.effect == 'slider'){
          		if(this.options.cur == this.length){
          		   
          		   $$('.banner-slider__arrbot').setStyle('display','block')
          		   var scroll       = new Fx.Scroll('banner-hidden', {
          				wait: false,
          				duration: 2000,
          				opacity: true,
          				transition: Fx.Transitions.Expo.easeInOut
          			}); 
          			scroll.start(0, 0)   
          		      this.options.cur = 0
          	   }else{
          		   if((this.length-this.options.cur) == 1)
          			$$('.banner-slider__arrbot').setStyle('display','none')
          			$$('.banner-slider__arrtop').setStyle('display','block')
          		   var scroll       = new Fx.Scroll('banner-hidden', {
          				wait: false,
          				duration: 2000,
          				opacity: true,
          				transition: Fx.Transitions.Expo.easeInOut
          			}); 
          			scroll.start(0, this.options.cur*235)
          	   }
          	   if(!this.options.cur) $$('.banner-slider__arrtop').setStyle('display','none')     
                    this.public.slideAfter();
         };
         if(this.options.effect == 'rotator'){
            if (this.options.cur >=this.length  ) this.options.cur = 0;
          if (this.options.cur < 0) this.options.cur = this.length-1;
          
          for(i=0;i<this.length;i++) {
           this.list[this.options.cur].morph({
                   
                     'opacity' : '0'
                    
                     
                                 
               });
           this.list[i].set('morph', {duration: 2000, transition: Fx.Transitions.Sine.easeOut});
       
            this.list[i].morph({
                   
                     'opacity' : '0'
                    
                     
                                 
               });
          }                 
          if (this.options.cur >=this.length  ) this.options.cur = 0;
          if (this.options.cur < 0) this.options.cur = this.length-1; 
          this.list[this.options.cur].set('morph', {duration: 2500, transition: Fx.Transitions.Sine.easeOut});
       
         this.list[this.options.cur].morph({                    
                     'opacity' : '1'                   
                                 
               });
         //this.list[this.options.cur].setStyle('opacity', 1).set('tween', {duration: 700});
          this.public.slideAfter();         
         
         }                    
    },
    
 public: { slideAfter: function() { 
    
    }   
  } 

})
//Скроллер плагин
var Scroller = new Class({

  Implements: [Events, Options],

  options: {
    area: 110,
    velocity: 1,
    onChange: function(x, y){
       
      this.element.scrollTo(x, y);
    
        
    },
    fps: 50,
    horizontal: false, //v3 modified
    vertical: true
  },

  initialize: function(element, options){
    this.setOptions(options);
    this.element = document.id(element);    
    this.listener = ($type(this.element) != 'element') ? document.id(this.element.getDocument().body) : this.element;
    this.timer = null;
    this.bound = {
      attach: this.attach.bind(this),
      detach: this.detach.bind(this),
      getCoords: this.getCoords.bind(this)
    };
  },

  start: function(){
   
    this.listener.addEvents({
      mouseenter: this.bound.attach, //v3 modified
      mouseleave: this.bound.detach
    });
  },

  stop: function(){
    this.listener.removeEvents({
      mouseenter: this.bound.attach,
      mouseleave: this.bound.detach
    });
    this.detach();
    this.timer = $clear(this.timer);
  },

  attach: function(){
    this.listener.addEvent('mousemove', this.bound.getCoords);
  },

  detach: function(e){
    var node = this;
    this.detachTimer = (function() {
      node.listener.removeEvent('mousemove', node.bound.getCoords);
      node.timer = $clear(node.timer);
    }).delay(50);
    
  },

  getCoords: function(event){  
    this.page = (this.listener.get('tag') == 'body') ? event.client : event.page;
    if (!this.timer) this.timer = this.scroll.periodical(Math.round(100 / this.options.fps), this);
        
  },

  scroll: function(){
    
    var size = this.element.getSize(),
      scroll = this.element.getScroll(),
      pos = this.element.getOffsets(),
      scrollSize = this.element.getScrollSize(),
      change = {x: 0, y: 0};
    
    // v3 modified
    if (!this.options.horizontal) delete this.page.x;
    if (!this.options.vertical) delete this.page.y;

    for (var z in this.page){  
    
      if (this.page[z] < (this.options.area + pos[z]) ) {      
        change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;        
      }
      else if (this.page[z] + this.options.area > (size[z] + pos[z]) ) {      
        change[z] = (this.page[z] - size[z] + this.options.area - pos[z]) * this.options.velocity;
      }
    }
    
    
    
    //if ($chk($('slide'))) {
  
         var node =this;
        
          if (scroll.y==110)  {
              $$('.ar-bot').setStyle('visibility','hidden');
            
        }
        else {
             $$('.ar-bot').setStyle('visibility','visible');
              
        };
        if (scroll.y==0)  {
              $$('.ar-top').setStyle('visibility','hidden');
            
        } 
        else {
            $$('.ar-top').setStyle('visibility','visible');
              
        }
       
  //  }
    
    if (change.y || change.x) {       
      this.fireEvent('change', [scroll.x + change.x, scroll.y + change.y]);      
    } 
  }

});



window.addEvent('domready', function() {

	
	var box = new CeraBox({
		group: true,
		errorLoadingMessage: 'The requested content cannot be loaded. Please try again later.'
	}); 

	list = $$(document.links);
	list = list.filter(function(item){
		//if (item.hasClass('no')) return false;
		return item.href.test(/\.(jpe?g|png|gif|swf)$/)
	});
	if (list && list.length) {
		box.addItems(list, {
			animation: 'ease'
		});
	} 
	
	
	// Pawel - get an order
		
	if ($chk('.btn_buy')) {
		$$('.btn_buy').addEvent('click', function(e) {
			e.preventDefault();
			var node = this;
			// cool animation start
			var img_src = $("img_"+node.id).getProperty('src');
			var width = $('img_container').getSize().x;
			var height = $('img_container').getSize().y;

			$('basket_container').setStyle('display', 'block');
			$('basket_preloader').setStyle('display', 'block');
			$('img_container').setStyle('display', 'block');
			$('img_container').setStyle('opacity', '1');
			$('img_container').set('src', img_src);
			$('img_container').position({relativeTo: "img_"+node.id});		// move this to 2nd stage
			
			var img_clone = $('img_container').clone(true, true).inject('img_container','after');
			$('img_container').setStyle('display', 'none');		
			var anim = new Fx.Morph(img_clone, {
				duration: 1100,
				transition: Fx.Transitions.Sine.easeOut
			});
			var mover = new Fx.Move(img_clone, {							// move the clone to 3rd stage
				relativeTo: $('basket_text'),
				position: 'right',
				edge: 'right',
				offset: {x: 0, y: 0}
			});
			
			anim.start({
				'height': 0,
				'width': 0,
				'opacity': 0,
			});
			mover.start();
			// cool animation end
			var count = $('count_'+node.id).get('value');
			var jsonRequest = new Request.JSON({
				url: node.href,
				onSuccess: function(response){		
					$('basket').set('class', 'basket full');					
					$('basket_text').set('html', '<a href="/shop/"><p>Товаров в корзине: '+response.count+'</p><p>на сумму '+response.total+' руб.</p></a>');
				}
			}).post({'ajax': 1, 'count': count});

			e.stop();

		});
	
	}
		
	//
	// for regions
	if ($chk('region')) {
		$('region').addEvent('change', function(e) {
			e.preventDefault();
			var node = this;
			$('delivery').set('html', ' + ' + this.getSelected().get("class") + ' (доставка)');
			var price = parseInt($('without_delivery').get('text'));
			var delivery = parseInt(this.getSelected().get("class"));
			$('with_delivery').set('html', 'Сумма с доставкой ' + '<h3>' + (price + delivery) + ' руб. </h3>' );
			//this.getSelected().get("value");
			
			
		});
	
	}	
	//
	
		 //Ротатор фоток в галерее
if ($chk($('rotator1'))) {
    var  gallerylist1 = $$('#rotator1 > img').setStyle('opacity', 0).set('tween', {duration: 200});
       
    if (gallerylist1.length>0) {
      gallerylist1.Rotator = new Rotator(gallerylist1, {timeout: 5000,effect:'rotator'});
        
         
      gallerylist1.Rotator.start();    
    } 
    
    $('rotator1').addEvent('mouseenter', function(e) {
               
         gallerylist1.Rotator.stop();    

    }).addEvent('mouseleave', function(e) {
           gallerylist1.Rotator.start();  
    });       
}

if ($chk($('rotator2'))) {
    var  gallerylist2 = $$('#rotator2 > img').setStyle('opacity', 0).set('tween', {duration: 200});
       
    if (gallerylist2.length>0) {
      gallerylist2.Rotator = new Rotator(gallerylist2, {timeout: 5000,effect:'rotator'});
        
         
      gallerylist2.Rotator.start();    
    } 
    
    $('rotator2').addEvent('mouseenter', function(e) {
               
         gallerylist2.Rotator.stop();    

    }).addEvent('mouseleave', function(e) {
           gallerylist2.Rotator.start();  
    });       
}

if ($chk($('rotator3'))) {
    var  gallerylist3 = $$('#rotator3 > img').setStyle('opacity', 0).set('tween', {duration: 200});
       
    if (gallerylist3.length>0) {
      gallerylist3.Rotator = new Rotator(gallerylist3, {timeout: 5000,effect:'rotator'});       
         
      gallerylist3.Rotator.start();    
    } 
    
    $('rotator3').addEvent('mouseenter', function(e) {
               
         gallerylist3.Rotator.stop();    

    }).addEvent('mouseleave', function(e) {
           gallerylist3.Rotator.start();  
    });       
}
	
if ($chk($('rotator4'))) {
    var  gallerylist4 = $$('#rotator4 > img').setStyle('opacity', 0).set('tween', {duration: 200});
       
    if (gallerylist4.length>0) {
      gallerylist4.Rotator = new Rotator(gallerylist4, {timeout: 5000,effect:'rotator'});
        
         
      gallerylist4.Rotator.start();    
    } 
    
    $('rotator4').addEvent('mouseenter', function(e) {
               
         gallerylist4.Rotator.stop();    

    }).addEvent('mouseleave', function(e) {
           gallerylist4.Rotator.start();  
    });       
}
		
	
	
	
	if ($chk($("q"))) {	
		
		$$('.togler').each(function(item) {
			var v = item.value
			item.addEvent('focus',function(){
				if(this.value == v) this.set('value','')
			})
			item.addEvent('blur',function(){
				if(this.value == '') this.set('value',v)
			})
		})
		
		$("q").addEvents({
			'keydown': function(e){
				if(e.code == 13){ 
					e.stop(); 
					if($$('.curtag').length) $('q').set('value',$$('.curtag').get('text'))
					document.forms.search.submit()
				}
			},
			'keyup': function(e){
				if(e.code == 188){ tag(e,this) }
				else if(e.code == 40){
					
					if($$('.curtag').length){
						var next = parseInt($$('.curtag').get('rel')) + 1
						$$('.tagitem').removeClass('curtag')
						
						if($$('.tagitem[rel='+next+']').get('rel').length){
							$$('.tagitem[rel='+next+']').addClass('curtag')
						}else{
							$$('.tagitem:first-child').addClass('curtag')
						}
					}
					else{
						$$('.tagitem:first-child').addClass('curtag')
					}
				}else if(e.code == 38){
					if($$('.curtag').length){
						var next = parseInt($$('.curtag').get('rel')) - 1
						$$('.tagitem').removeClass('curtag')
						
						if($$('.tagitem[rel='+next+']').get('rel').length){
							$$('.tagitem[rel='+next+']').addClass('curtag')
						}else{
							$$('.tagitem:last-child').addClass('curtag')
						}
					}
					else{
						$$('.tagitem:last-child').addClass('curtag')
					}
					
				}else{
					if(this.value.length){
						$$('.ajax_loader').setStyle('display','block')
						var myAJAXRequest = new Request.HTML({
							url: '/search/',
							onSuccess: function(a,b,c,d) {
								if(c.length){
									$$('.ajax-search-results').set('html',c).setStyle('visibility','visible')
									
									$$(".tagitem").addEvent('click',function(e){
										$('q').set('value',this.get('text'))
										document.forms.search.submit()
									})
								}else
									$$('.ajax-search-results').set('html','').setStyle('visibility','hidden')
								$$('.ajax_loader').setStyle('display','none')
							}
						}).get({'q':this.value, 'ajax':1});
						
					}else{
						$$('.ajax-search-results').set('html','').setStyle('visibility','hidden')
					}
				}
			},
			'focus': function(e){
				if($$(".tagitem").length){
					$$('.ajax-search-results').setStyle('visibility','visible')
				}
			},
			/*'blur': function(e){
				if($$(".tagitem").length){
					$$('.ajax-search-results').setStyle('visibility','hidden')
				}
			},*/
		})
		
		$(document).addEvent('click',function(e){
			if(e.target.getAttribute('id') != 'q'){
				if($$('.ajax-search-results')){
					$$('.ajax-search-results').setStyle('visibility','hidden')
				}
			}
		})
	}
      
  //Запускаем функцию исправления багов по верстке и всякой лобуды
window.onresize=function(){
	 init();
}      



 
});

