var slideBg=new Class({Implements:[Options,Events],options:{primaryBg:"primaryBackground",secondaryBg:"secondaryBackground",fade:2000,state:"primary",kaman:Class.empty},initialize:function(b,a){this.setOptions(a);this.backgrounds=b;this.state=this.options.state;this.preloader=preloader;this.loading=true;this.primaryBg=$(this.options.primaryBg);this.secondaryBg=$(this.options.secondaryBg);this.startFx=new Fx.Tween(this.primaryBg,{property:"opacity",duration:500,transition:Fx.Transitions.Expo.easeInOut,onComplete:function(){this.options.kaman.delay(100)}.bind(this)});this.primaryFx=new Fx.Tween(this.primaryBg,{property:"opacity",duration:this.options.fade,transition:Fx.Transitions.Expo.easeInOut,wait:false,onComplete:function(){this.loading=false}.bind(this)});this.secondaryFx=new Fx.Tween(this.secondaryBg,{property:"opacity",duration:this.options.fade,transition:Fx.Transitions.Expo.easeInOut,wait:false});if(this.backgrounds.length){this.firstBg=this.backgrounds.getRandom()}},getFirstImg:function(){if(this.backgrounds.length){return this.firstBg}},start:function(){if(this.backgrounds.length){new Asset.image(this.firstBg,{id:"myImage",title:"myImage",onload:function(){$("outerContainer").setStyle("opacity",1);bgFx=new Fx.Tween("mainContainer",{property:"opacity",duration:500,transition:Fx.Transitions.Expo.easeInOut,onComplete:function(){this.startFx.start(0,1);this.loading=false}.bind(this)});bgFx.start(0,1);this.primaryBg.setStyle("background-image","url("+this.firstBg+")");this.loading=false}.bind(this)});this.imagesTemp=new Array(this.firstBg)}},swap:function(a){if(this.state=="primary"){this.state="secondary";$(this.secondaryBg).setStyle("opacity",1);this.secondaryBg.setStyle("background-image","url("+a+")");this.primaryFx.start(1,0)}else{if(this.state=="secondary"){this.state="primary";this.primaryBg.setStyle("background-image","url("+a+")");this.primaryFx.start(0,1)}}},change:function(){if(this.loading==false){this.loading=true;var a=this.backgrounds.getRandom();if(this.backgrounds.length==this.imagesTemp.length){this.imagesTemp=new Array(a)}while(this.imagesTemp.contains(a)){a=this.backgrounds.getRandom()}this.imagesTemp.include(a);new Asset.image(a,{id:"myImage",title:"myImage",onload:function(){this.swap(a)}.bind(this)})}}});var preloader=new Class({Implements:[Options,Events],options:{preloaderId:"loader",progressBarId:"progressBar",progressBarBgId:"progressBarBg",progressBarMaxWidth:300,fade:600,kaman:function(){alert("brak")},begin:function(){}},initialize:function(b,a){this.setOptions(a);this.html=b;this.images=[];this.imagesTotal=0;$(this.options.progressBarId).setStyle("width","0px");this.startFx=new Fx.Tween(this.options.preloaderId,{property:"opacity",duration:1000,transition:Fx.Transitions.Expo.easeInOut,wait:false});this.progresBarFx=new Fx.Tween(this.options.progressBarId,{property:"opacity",duration:500,transition:Fx.Transitions.Expo.easeInOut,wait:false});this.progresBarBgFx=new Fx.Tween(this.options.progressBarBgId,{property:"opacity",duration:500,transition:Fx.Transitions.Expo.easeInOut,wait:false});this.progresBarBgFx.set(0);this.progresBarFx.set(0);this.options.begin()},addImages:function(a){this.images=a;this.imagesTotal=a.length},addOne:function(a){this.images.include(a)},show:function(){this.startFx.set(0.7)},hide:function(){this.startFx.start(0.7,0).chain(function(){this.options.kaman.delay(100);this.progresBarBgFx.set(0);this.progresBarFx.set(0)}.bind(this))},start:function(a){if(a){this.show()}if((this.images.length>0)&&(!(window.opera))){this.progresBarBgFx.start(0,0.5);this.progresBarFx.start(0,0.5);new Asset.images(this.images,{onProgress:function(b,c){progresBarWidth=(b+1)/this.imagesTotal*this.options.progressBarMaxWidth;$(this.options.progressBarId).setStyle("width",progresBarWidth.toInt()+"px")}.bind(this),onComplete:function(){$(this.options.progressBarId).setStyle("width",300+"px");this.hide()}.bind(this)})}else{$(this.options.progressBarId).setStyle("width","300px");this.hide()}}});var myScroll=new Class({Implements:[Options,Events],options:{horizontal:false,ignoreMouse:false,startOnInit:false},initialize:function(b,d,c,a){this.setOptions(a);this.content=b;this.scrollbar=d;this.handle=c;if(this.options.startOnInit){this.setScroll()}this.tempY=0;this.tempX=0;this.leftOffset=0},hide:function(){$(this.scrollbar).setStyle("opacity",0);$(this.handle).setStyle("opacity",0)},show:function(){$(this.scrollbar).setStyle("opacity",0.8);$(this.handle).setStyle("opacity",0.8)},correct:function(){if($(this.content).getScrollSize().y!=this.tempY){this.setScroll(0)}},setScroll:function(a){if(a=="auto"){a=this.leftOffset}this.leftOffset=a;if(a>0){$(this.scrollbar).setStyle("left",a)}if($(this.content).getSize().y>=$(this.content).getScrollSize().y){$(this.scrollbar).setStyle("opacity",0);$(this.handle).setStyle("opacity",0);this.tempY=$(this.content).getScrollSize().y}else{$(this.scrollbar).setStyle("opacity",0.8);$(this.handle).setStyle("opacity",0.8);this.tempY=$(this.content).getScrollSize().y}this.steps=(this.options.horizontal?($(this.content).getScrollSize().x-$(this.content).getSize().x):($(this.content).getScrollSize().y-$(this.content).getSize().y));this.slider=new Slider(this.scrollbar,this.handle,{steps:this.steps,mode:(this.options.horizontal?"horizontal":"vertical"),onChange:function(c){var b=(this.options.horizontal?c:0);var d=(this.options.horizontal?0:c);$(this.content).scrollTo(b,d)}.bind(this)}).set(0);if(!(this.options.ignoreMouse)){$$($(this.content),$(this.scrollbar)).addEvent("mousewheel",function(c){c=new Event(c).stop();var b=this.slider.step-c.wheel*30;this.slider.set(b)}.bind(this))}$(document.body).addEvent("mouseleave",function(){this.slider.drag.stop()}.bind(this))}});

/*
---
description: provides the Element.Events.addKeySequence function to create custom events for sequences of key presses.

license: MIT-style

authors:
- Ben Lenarts

requires:
  core/1.2.4: '*'
# actually:
# - core/1.2.4: Element.Event

provides: [Element.Events.addKeySequence]

...
*/

(function() {

function keycombo(event) {
  var mods = '';
  if (event.shift) mods += 'shift-';
  if (event.control) mods += 'control-';
  if (event.alt) mods += 'alt-';
  if (event.meta) mods += 'meta-';
  return mods + event.key;
}

Element.Events.addKeySequence = function(name, sequence, options) {
  options = options || {};
  var withModifiers = options.withModifiers !== false;

  var buffer = new Array(sequence.length);
  var target = sequence.toString();

  Element.Events[name] = {
    base: 'keyup',
    condition: function(event) {
      if (!event.key || event.key.charCodeAt(0) < 32) return false;
      buffer.shift();
      buffer.push(withModifiers ? keycombo(event) : event.key);
      return buffer.toString() == target;
    }
  }
}

})();
