Slideshow = function(obj, type)
{
	this.obj			= obj;
	this.slides			= this.obj.find('.slide');
	this.nav			= this.obj.find('.nav');
	this.navPrev		= this.obj.find('.nav.prev');
	this.navNext		= this.obj.find('.nav.next');
	this.bulletNav		= this.obj.find('.bullet-nav');
	this.currentSlide	= null;
	this.slideInterval	= null;
	this.slideDelay		= (type == 'maxiteaser') ? 7000 : 6000;
	this.slideSpeed		= 500;
	this.type			= type;
	this.loadInterval	= null;

	this.init = function()
	{
		var _this = this;
		
		if (type == 'maxiteaser') {
			if (device == 'mobile') {
				var firstImage = this.slides.eq(0).find('.image.mobile');
			} else {
				var firstImage = this.slides.eq(0).find('.image.desktop');
			}
		} else {
			var firstImage = this.slides.eq(0).find('.image');
		}

		firstImage.each(function() {
			if ($(this).parent().hasClass('slide')) {
				_this.currentSlide = $(this).parent();
			} else {
				_this.currentSlide = $(this).parent().parent();
			}
			var image = $(this);
			_this.loadInterval = setInterval(function() {
				if (image.height()) {
					_this.processing();
					clearInterval(_this.loadInterval);
				}
			}, 100);
		});
	}

	this.processing = function() {
		var _this = this;

		this.currentSlide.fadeIn(500);
		if (this.slides.length > 1 && device != 'mobile') {
			this.nav.fadeIn(500);
		} else {
			this.nav.hide();
		}

		if (this.nav.length > 0) {
			this.navPrev.click(function() {
				_this.nextSlide(-1);
			})
			this.navNext.click(function() {
				_this.nextSlide(+1);
			})
		}
		if (this.bulletNav.length > 0) {
			this.bulletNav.find('.bullet').click(function() {
				var idx = $(this).index();
				var currentIdx = _this.currentSlide.index()
				if (idx < currentIdx) {
					_this.nextSlide(-1, idx);
				} else if (idx > currentIdx) {
					_this.nextSlide(+1, idx);
				}
			})
		}
		
		this.startAutoSlide();
	}

	this.startAutoSlide = function()
	{
		var _this = this;
		if (this.slides.length > 1) {
			this.slideInterval = setInterval(function() {
				_this.nextSlide(+1);
			}, this.slideDelay);
		}
	}

	this.stopAutoSlide = function()
	{
		clearInterval(this.slideInterval);
	}
	
	this.nextSlide = function(dir, nextIdx)
	{
		this.stopAutoSlide();
		var width = this.obj.width();
		var idx = this.currentSlide.index();

		if (dir == 1) {
			// next
			var zIndex1 = 2;
			var zIndex2 = 1;
			var nextSlide = (idx < this.slides.length-1) ? this.slides.eq(idx+1) : this.slides.eq(0);
		} else {
			// prev
			var zIndex1 = 1;
			var zIndex2 = 2;
			var nextSlide = (idx > 0) ? this.slides.eq(idx-1) : this.slides.eq(this.slides.length-1);
		}
		if (nextIdx != null) {
			var nextSlide = this.slides.eq(nextIdx);
		}
		
		if (this.type == 'maxiteaser') {
			this.currentSlide.css({zIndex: zIndex1}).animate({left: width * -dir}, this.slideSpeed);
			this.currentSlide = nextSlide;
			this.currentSlide.show().css({zIndex: zIndex2, left: width * dir}).animate({left: 0}, this.slideSpeed);
		} else if (this.type == 'content') {
			this.currentSlide.fadeOut(500);
			this.currentSlide = nextSlide;
			this.currentSlide.fadeIn(500);
			if (this.bulletNav.length) {
				var idx = this.currentSlide.index();
				this.bulletNav.find('.bullet').removeClass('active');
				this.bulletNav.find('.bullet').eq(idx).addClass('active');
			}
		}
		this.startAutoSlide();
	}

	this.refresh = function()
	{
		this.stopAutoSlide();
		var width = this.obj.width();
		
		this.slides.css({left: width});

		this.currentSlide = this.slides.eq(0);
		this.currentSlide.css({left: 0});

		if (this.slides.length > 1 && device != 'mobile') {
			this.nav.fadeIn(500);
		} else {
			this.nav.hide();
		}

		this.startAutoSlide();
	}

	this.init();
}

