$$('a.add-cart').addEvent('click',function(ev){
  new Event(ev).preventDefault();
  parts = this.getProperty('href').match(/^(.*)\/(\d+)$/)
  
  var request = new Request.HTML({ update: $('cart'), url: parts[1]});
  request.addEvent('complete', function(){ 
    this.getFirst().setProperty('src','/images/add_to_cart.gif')
    new CartImageAnim(this.getFirst().getTop(),this.getFirst().getLeft()).animate()
  }.bind(this))
  
  this.getFirst().setProperty('src','/images/add_to_cart_progress.gif')
  
  request.post({product: parts[2]});
})

var CartImageAnim = new Class({
  initialize: function(x,y){
    this.elem = new Element('img', { src: '/images/add_to_cart.gif', 'styles': {position:'absolute', top:x, left:y} }).inject(document.body)
  },
  animate:function(){
    new Fx.Morph(this.elem, {transition:Fx.Transitions.Expo.easeIn})
      .addEvent('complete',function(el){ el.dispose(); $('cart-content').highlight() })
      .start({'top':$('cart').getTop(), 'left':$('cart').getLeft()})    
  }
})

var CategoryElem = new Class({
  initialize: function(elem, trigger){
    elem.set('slide').get('slide').addEvent('complete', function(el){ if(el.get('slide').open)el.get('slide').wrapper.setStyle('height','auto') })
    if(elem.getStyle('display') == 'none')elem.setStyle('display','').slide('hide')
    elem.store('trigger', trigger)
    
    trigger.addEvent('click', function(ev){
      new Event(ev).preventDefault();
      elem.slide('toggle').fireEvent('categoryToggle')
			this.toggleClass('open')
      //if(this.getProperty('src'))this.setProperty('src', elem.get('slide').open ? '/images/expand_btn.gif' : '/images/collapse_btn.gif')
    })
  }
})
if($('search')){
  $('search').getElement('form').addEvent('submit',function(ev){
    new Event(ev).preventDefault();
    window.location = this.getProperty('action')+'/q/'+this.q.value
  })
}
if($('job_positions')){
  $('job_positions').getElements('.text').each(function(el){
    new CategoryElem(el, el.getPrevious())
  })
}
if($('sort_brand'))
  $('sort_brand').addEvent('change', function(ev){this.form.submit()})

if($('sort_sport'))
  $('sort_sport').addEvent('change', function(ev){this.form.submit()})

if($('categories-tree')){
  var tree = $('categories-tree')
  var current = tree.getElement('li.selected .category-content')
  tree.getElements('.category-content').each(function(el){
    new CategoryElem(el, el.getPrevious())
    
    el.addEvent('categoryToggle', function(ev){
      if(current && this !== current)$(current).slide('out')
      current = this
    })
  })
}

if($('cart-items-container')){
  
  cart_update = new Request.HTML({update:$('cart-items-container'), url:'/cart'})
  cart_update.addEvent('request', function(){ $('cart-items').addClass('progress') })
  cart_update.addEvent('complete', function(){
    $('cart-items').getElements('input').addEvent('change',function(){ cart_update.post($('cart_list')) })
    $('cart-items').getElements('select').addEvent('change',function(){ cart_update.post($('cart_list')) })    
    $('cart-items').getElements('.delete a').addEvent('click', function(ev){
      new Event(ev).preventDefault();
      var cart_item = this.getProperty('id').replace('_delete','')
      var del_update = new Request.HTML({url:'/cart/delete', update:'cart_list_total'})
      $('cart-items').addClass('progress')
      del_update.addEvent('complete', function(){
        $('cart-items').removeClass('progress')
        var hide_fx = new Fx.Tween(cart_item).addEvent('complete', function(){ $(cart_item).dispose() });
        hide_fx.start('opacity',0);
      })
      del_update.post({cart_item: cart_item.replace('cart_','')})
    })
  })
  cart_update.fireEvent('complete')
  $('cart_list_update').setStyle('display','none')
}
if($('product_page')){
  $('product_page').getElements('select').addEvent('change',function(ev){
    var price = $('base_price').get('value').toFloat()
    $('product_page').getElements('select').each(function(e){
     if(e.selectedIndex)price+=$(e.options[e.selectedIndex]).get('title').toFloat()
    })
    $('product_page_total').set('html',$('product_page_total').get('html').replace(/[\d\,\.]+/, price.toFixed(2))).highlight()
  })

  $('product_page').addEvent('submit',function(ev){
    new Event(ev).preventDefault()
    var request = new Request.HTML({update: $('cart'), url: this.get('action')});
    $('product_page_add').addClass('progress').setStyle('position:relative')
    request.addEvent('complete',function(){
      $('product_page_add').removeClass('progress')
      new CartImageAnim($('product_page_add').getTop(),$('product_page_add').getLeft()).animate()
    })
    request.post(this);
  })
}
if($('product_images')){
  images_container = $('product_images').getElement('.images-list ul')
  images_container.set('tween', {property:'marginLeft'})
  images_container.getElements('a').each(function(el){
    elem = new Element('div',{'class': 'big-image'}).adopt(new Element('img',{src:el.get('href')})) .setStyle('opacity',0).inject(el.getParent())
    el.getParent().addEvents({
      click: function(ev){
        new Event(ev).preventDefault()
        el.fireEvent('click', ev)
      },
      mouseenter: function(ev){
        this.addClass('hover').getElement('.big-image').setStyle('opacity',1)
      },
      mousemove: function(ev){
        x = Math.max(Math.min(-(new Event(ev).client.x-this.getPosition().x+window.getScroll().x), -15), - this.getStyle('width').toInt() + 15)
        y = Math.max(Math.min(-(new Event(ev).client.y-this.getPosition().y+window.getScroll().y), -15), - this.getStyle('height').toInt() + 15)
        
        this.getElement('.big-image').setStyle('left',x)
        this.getElement('.big-image').setStyle('top',y)
      },
      mouseleave: function(ev){
        this.removeClass('hover').getElement('.big-image').setStyle('opacity',0)
      }
    })
  })
  
  $('product_images').getElements('.thumbnails a').each(function(el,index){
    el.set('image_index',index)
    el.addEvent('click',function(ev){
      new Event(ev).preventDefault()
      images_container.get('tween').start(-this.get('image_index')*243)
    })
  })
}

if($('cities') && $('cities-map')){
  $$('#cities-map a').extend($$('#cities-list a')).addEvent('click',function(ev){
    link = this.get('href').match(/\#(.*)$/)
    if(link){
      new Event(ev).preventDefault()
      new Fx.Scroll(window).toElement(link[1])
    }
  })
}

if($('products_feedback')){
  $('products_feedback_content').setStyles({ display: 'block', opacity: 0 })
  $('products_feedback').addEvent('click', function(ev){
    
    new Event(ev).preventDefault();
    $('products_feedback_content').tween('opacity',1)
  })
}


function showWindow(text) {
  var win = window.open(text,'Title','width=960,height=470,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes');
  win.focus();
}
