// JavaScript Document
var GOrderForm = {
	
	  init: function(){
			
			this.wrapper = $('overlay-order-form');
			this.form = document.getElementById('overlay-order-main-form');
			
			// wrapper init
			this.wrapper.setStyles({
			  'display' : 'block',
				'z-index' : 99,
				'left' : $('page-wrapper').getPosition().x + 225
			});
			this.wrapperFx = new Fx.Tween(this.wrapper, { property: 'opacity', duration: 200, link: 'cancel' });
			this.wrapperFx.set(0);
			
			// form nodes
			this.formData = {
				title: this.wrapper.getElement('h3'),
				img: this.wrapper.getElement('img'),
				points: this.wrapper.getElement('p.points strong'),
				id: this.wrapper.getElement('#form-product-id')
			};
			
			// button event
			$$('#gift-list .button').each(function(button){
				var node = button.getParent('div.item');
        var gift = {
					title: node.getElement('h2').get('text'),
					img: node.getElement('img').get('src'),
					points: node.getElement('p.points strong').get('text'),
					id: node.getElement('a.button').get('href').replace(/.*auto\=([0-9]+).*/, '$1')
				}
				button.addEvent('click', function(event){
				  event.stop();
					this.open(gift);
				}.bind(this));
			}, this);
			
			// close button
			this.wrapper.getElement('a.btn-close').addEvent('click', function(event){
			  event.stop();
				this.close();
			}.bind(this));
			
			
		},
		
		open: function(gift){
      this.formData.title.set('text', gift.title);
			this.formData.img.set('src', gift.img);
			this.formData.points.set('text', gift.points);
			this.formData.id.set('value', gift.id);
			this.wrapper.setStyle('top', $(document.body).getScroll().y + 200);
			overlay.show();
			this.wrapperFx.start(1);
		},
		
		close: function(){
			this.wrapperFx.start(0);
			overlay.hide();
		}
		
};

var GOverlay = new Class({
	
	  Implements: [Options],
		
	  options: {
			opacity: 0.2,
			duration: 300,
			click: false
		},
		
	  initialize: function(options){
			this.overlay = new Element('div', {
			  'id': 'overlay',
				'styles': {
					'height' : $('page-wrapper').getHeight()
				}
			});
			this.overlay.inject(document.body);
			this.overlayFx = new Fx.Tween(this.overlay, { property: 'opacity', duration: this.options.duration, link: 'cancel' });
			this.overlayFx.set(0);
			
			// clickable
			if (this.options.click){
				this.overlay.addEvent('click', function(event){
					this.overlayFx.start(0);
				}.bind(this));
		  }

		},
		
		show: function(){
			this.overlayFx.start(this.options.opacity);
		},
		
		hide: function(){
			this.overlayFx.start(0);
		}
		
});

var Kanzelsberger = {
	
	  init: function(){
			
			// clickable boxes
			$$('.clickable').each(function(element){
				element.setStyle('cursor', 'pointer');
				element.addEvents({
					'click' : function(event){
						this.getElement('a').addEvent('click', function(event){
							event.stop();
						});
            window.location = this.getElement('a').get('href');
					},
					
					'mouseenter' : function(){
						this.addClass('hover');
					},
					
					'mouseleave' : function(){
						this.removeClass('hover');
					}
				});
			});
			
			// overlay init
			overlay = new GOverlay();
			
			// image zooming
			$$('.item .img a').each(function(element){
			  new ReMooz(element, {
					resizeOptions : {
						duration: 400,
						transition: Fx.Transitions.Quart.easeOut
					},
					opacityResize: 0,
					cutOut: false,
					centered: true,
					onOpen: function(){
						overlay.show();
					},
					onClose: function(){
						overlay.hide();
					}
			  });			
			});
			
			// order form init
			if ($('overlay-order-form')){
				GOrderForm.init();
			}
			
		}
		
};

window.addEvent('domready', function(){
  Kanzelsberger.init();
});
