/*
	Class:    	slider
	Author:   	Gerard Corr
	Website:    http://www.gerardcorr.com
	Version:  	0.0.1
	Date:     	12/01/2010
	Built For:  MooTools 1.2
*/


var slider = new Class({

	//implements
	Implements: [Options,Events],

	//options
	options: {
		cssVar: 'slider',
		slideSize: '',
		currentSlide: 'slide'
	},

	//initialization
	initialize: function(options) {
		//set options
        this.setOptions(options);

		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var nextSlide = this.options.nextSlide;
		var slideSize = this.options.slideSize;
		
		//this.fadder = function(){ this.fadeSlide(); this.fireEvent('fadeSlide'); }.bind(this);
        //this.periodical = this.fadder.periodical(this.options.slideDelay);
		//this.popup();
		if(direction=='left'){
			this.left();
		}
		
		if(direction=='right'){
			this.right();
		}
		
		if(direction=='down'){
			this.down();
		}
		
		if(direction=='up'){
			this.down();
		}
		
		if(direction=='slideHorz'){
			this.slideHorz();
		}
		
		if(direction=='slideHorz'){
			this.slideHorz();
		}
		
		if(direction=='slideVert'){
			this.slideVert();
		}
		
		
	},
	
	
	
	left: function(){
		
		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var currentSlide = this.options.direction;
		var slideSize = this.options.slideSize;

		var currentLeft = $('sliderSlides'+cssVar).getStyle('left').toInt();
		var slideElements = $('sliderSlides'+cssVar).getChildren();
		var numberSlides = (slideElements.length);

		currentSlide = 0
		//---------- work out number --------
		for(i=0;i<numberSlides;i++){
			checkSlideLeft = (i*slideSize);
			if(currentLeft<=checkSlideLeft){
				currentSlide = i;
			}
		}

		//---------- next slide -------------

		var nextSlide = currentSlide+1;

		//---------- work out new left -----
		var newLeft = (nextSlide*slideSize);

		//---------- check size --------

		var sizeCheck = (numberSlides*slideSize);

		if(newLeft>sizeCheck){
			$('sliderSlides'+cssVar).tween('left', newLeft);
		}else{
			$('sliderSlides'+cssVar).tween('left', 0);
		}
		
		
	},
	
	right: function(){
		
		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var slideSize = this.options.slideSize;

		var currentLeft = $('sliderSlides'+cssVar).getStyle('left').toInt();
		var slideElements = $('sliderSlides'+cssVar).getChildren();
		var numberSlides = (slideElements.length);

		currentSlide = 0
		//---------- work out number --------
		for(i=0;i<numberSlides;i++){
			checkSlideLeft = (i*slideSize)*-1;
			if(currentLeft<=checkSlideLeft){
				currentSlide = i;
			}
		}

		//---------- next slide -------------

		var nextSlide = currentSlide+1;

		//---------- work out new left -----
		var newLeft = (nextSlide*slideSize)*-1;

		//---------- check size --------

		var sizeCheck = (numberSlides*slideSize)*-1;

		if(newLeft>sizeCheck){
			$('sliderSlides'+cssVar).tween('left', newLeft);
		}else{
			$('sliderSlides'+cssVar).tween('left', 0);
		}

		
	},
	
	down: function(){
		
		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var slideSize = this.options.slideSize;

		var currentLeft = $('sliderSlides'+cssVar).getStyle('top').toInt();
		var slideElements = $('sliderSlides'+cssVar).getChildren();
		var numberSlides = (slideElements.length);

		currentSlide = 0
		//---------- work out number --------
		for(i=0;i<numberSlides;i++){
			checkSlideLeft = (i*slideSize)*-1;
			if(currentLeft<=checkSlideLeft){
				currentSlide = i;
			}
		}

		//---------- next slide -------------

		var nextSlide = currentSlide+1;

		//---------- work out new left -----
		var newLeft = (nextSlide*slideSize)*-1;

		//---------- check size --------

		var sizeCheck = (numberSlides*slideSize)*-1;

		if(newLeft>sizeCheck){
			$('sliderSlides'+cssVar).tween('top', newLeft);
		}else{
			$('sliderSlides'+cssVar).tween('top', 0);
		}
		
	},
	
	up: function(){
		
		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var currentSlide = this.options.direction;
		var slideSize = this.options.slideSize;

		var currentLeft = $('sliderSlides'+cssVar).getStyle('top').toInt();
		var slideElements = $('sliderSlides'+cssVar).getChildren();
		var numberSlides = (slideElements.length);

		currentSlide = 0
		//---------- work out number --------
		for(i=0;i<numberSlides;i++){
			checkSlideLeft = (i*slideSize);
			if(currentLeft<=checkSlideLeft){
				currentSlide = i;
			}
		}

		//---------- next slide -------------

		var nextSlide = currentSlide+1;

		//---------- work out new left -----
		var newLeft = (nextSlide*slideSize);

		//---------- check size --------

		var sizeCheck = (numberSlides*slideSize);

		if(newLeft>sizeCheck){
			$('sliderSlides'+cssVar).tween('top', newLeft);
		}else{
			$('sliderSlides'+cssVar).tween('top', 0);
		}
	},
	
	slideVert: function(){
		
		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var slideSize = this.options.slideSize;
		var nextSlide = this.options.nextSlide;
		
		var currentLeft = $('sliderSlides'+cssVar).getStyle('top').toInt();
		
		var currentSlide = $('sliderSlides'+cssVar).getChildren();
		
		var numberSlides = (currentSlide.length);
		
		var sizeCheck = (numberSlides*slideSize)*-1;

		var newLeft = ((nextSlide-1)*slideSize)*-1;
		
		if(newLeft>sizeCheck){
			
			$('sliderSlides'+cssVar).tween('top', newLeft);
		}
		
	}	
	
	,
	
	slideHorz: function(){
		
		var cssVar = this.options.cssVar;
		var direction = this.options.direction;
		var slideSize = this.options.slideSize;
		var nextSlide = this.options.nextSlide;
		
		var currentLeft = $('sliderSlides'+cssVar).getStyle('left').toInt();
		
		var currentSlide = $('sliderSlides'+cssVar).getChildren();
		
		var numberSlides = (currentSlide.length);
		
		var sizeCheck = (numberSlides*slideSize)*-1;

		var newLeft = ((nextSlide-1)*slideSize)*-1;
		
		if(newLeft>sizeCheck){
			
			$('sliderSlides'+cssVar).tween('left', newLeft);
		}
		
	}
	
});

