Element.defineFilters({

	navigation: function(options){
		navigationGlobal = new FunkyNavigation({
			containerId: 'containerMainNavigation',
			activeLIIdentifier: '.mainnavigation-li-active',
			activeAIdentifier: '.mainnavigation-li-a-active',
			inactiveLIIdentifier: '.mainnavigation-li-inactive',
			inactiveAIdentifier: '.mainnavigation-li-a-inactive',
			activeLink: options.currentPage,
			onLinkClicked: function(link){
				//mySite.fireEvent('changePage', link);
				//...is handled by HistoryHandler
			}
		});
	},

	dim: function(){
		var idleTimer = new IdleTimer(this, {
			timeout: 3000,
			events: ['mouseenter', 'mousemove', 'mousedown', 'mouseup']
		}).addEvents({
			idle: function() {
				navigationGlobal.dim();
			},
			active: function() {
				navigationGlobal.dim(false);
			}
		});
		idleTimer.start();
	},

	collectionNavigation: function(){
		var collectionNavigation = new CollectionNavigation({
			dataURL: 'assets/helpers/collections.navigation.php',
			basePath: '/collections',
			container: 'containerCollectionNavigation'
		});
		collectionNavigation.addEvents({
		  linkClicked: function(url){
			  History.push(url);
		  },
		  dataLoaded: function(data){
		    //mySite.collectionNavigationData = data;
		  }
		});
	},

	animatepage:function(){
		var myChainsObserver = new ChainsObserver();
		myChainsObserver.addEvent('chainsCompleted', function(){
			//Nothing atm
		}.bind(this));

		var elementsChain = {
			container: {
				content: Array.from(this)
			},
			textContent: {
				content: Array.from(this.getFirst('div'))
			}
		};
		var chain = new Chains(elementsChain);
		myChainsObserver.add(chain);
		chain.startup();
	},

  wallpapersautoplay: function(){
    return;
    (function(){
      document.id('containerWallpapers').retrieve('filter:wallpapers').play();
    }).delay(2600);
  },

	wallpapers: function(options){
		if (options == null) return;

		var wallpapers = new Wallpapers.SlideShow(this, {
			dataURL: '/assets/helpers/wallpapers.php',
			stack: Array.from(options.stack),
			useCSS: Modernizr.backgroundsize,
			durationbar: true,
			onClick: function(current){
				/*if (this.isPlaying) this.pause();
					else this.play();*/
			}
		});

		/*
		if (Browser.Features.Touch){
      controls.destroy();
			document.addEvents({
				touchmove: function(event){
					event.preventDefault();
				},
				orientationchange: function(){
					//mylog(window.orientation);
					//setOrientation();
				}
			});

			this.addEvent('swipe', function(event){
				Element.disableCustomEvents(); 
				//mylog('swipe '+event.direction);
				if (event.direction == 'left'){
					wallpapers.show('next', {
						transition: 'pushLeft'
					});
				} else if (event.direction == 'right'){
					wallpapers.show('previous', {
						transition: 'pushRight'
					});
				}
				(function(){ 
					Element.enableCustomEvents(); 
				}).delay(200);
			});
		}
    */
		return wallpapers;
	},

	wallpapermask: function(){
		var mask = new Mask.Extended(this, {
			'class': 'maskExtended',
			opacity: 0.5,
			fxOptions: {
				duration: 250
			}
		});

		return mask;
	},

  wallpaperscontrols: function(){
    var wallpapers = document.id('containerWallpapers').retrieve('filter:wallpapers'),
      btnPlayPause = this.getElement('a[data-btn="play"] ! label');

	  this.addEvent('click:relay(a)', function(event){
			event.preventDefault();
	    var action = this.get('data-btn');
	    if (action == 'next' || action == 'previous'){
	      wallpapers.show(action);
	    } else if (action == 'play'){
	      wallpapers.play();
	      btnPlayPause.removeClass('play').addClass('pause').getElement('a').setData('btn', 'pause').getElement('span').set('text', 'Pause');
	    } else if (action == 'pause'){
	      wallpapers.pause();
	      btnPlayPause.removeClass('pause').addClass('play').getElement('a').setData('btn', 'play').getElement('span').set('text', 'Play');
	    }
	  });
  },

  floatingtips: function(options){
    var parentSelector = '#' + this.get('id'),
      elements = this.getElements('a'),
      positions = options.positions.split(',');

    elements.each(function(element, i){
      var stringSelector = parentSelector+' a[data-btn="'+element.get('data-btn')+'"]';
      new FloatingTips(stringSelector, {
		    position: positions[i],
		    offset: {x: 0, y: -1}
		  });
    });

    /*
    var e = controls.getElement('a[data-btn="previous"]');
    (function(){ tipPrevious.show(e); }).delay(1000);
    (function(){ tipPrevious.hide(e); }).delay(2000);
    */
  },

  newsletter: function(){
		$$('[data-btn="newsletter"]').addEvent('click', function(event){
			event.preventDefault();
			var containerPages = document.id('containerPages');
			containerPages.fade('out').retrieve('tween').chain(function(){
				containerPages.empty().set('opacity', 1);
				
				var url = '/newsletter/';
				mySite.fireEvent('changePage', url);
				if (!Browser.ie || (Browser.ie && Browser.version > 7)) {
					if (window.History) History.fakePush(url);
				}

				Newsletter.subscribe();
			});
		});
  }

});

window.addEvent('domready', Element.applyFilters);
