/*
 * jQuery slideShow v1.0.0 
 *
 * Copyright (c) 2008 Taranets Aleksey
 * email: aleks_tar@ukr.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

jQuery.fn.slideShow = function(_options){
    // defaults options	
    var _options = jQuery.extend({
		galleryEl:'div.image a',
		elTagName:'a',
		linkNext:'li.next a',
		linkPrev:'li.prev a',
		numElementLink:'ul.imagelist li a',
		duration: 0,
		autoSlideShow: false,
		switchTime: 0,
		event:'click'
    },_options);

    return this.each(function(){
	    var _THIS = jQuery(this);
		
		var _galleryEl = $(_options.galleryEl, _THIS);
		var _elTagName = _options.elTagName;
		var _linkNext = $(_options.linkNext, _THIS);
		var _linkPrev = $(_options.linkPrev, _THIS);
		var _numElementLink = $(_options.numElementLink, _THIS);
		var _numElement = _numElementLink.parent();
		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _numElActive, _n, _timer = false;
		
		if (!_galleryEl.filter('.active').length)
				_galleryEl.eq(0).addClass('active');
				
		$(_galleryEl).not(".active").css('display','none');
		
		if ($(_numElement).length) {activeNumEl()}
		
		if (_options.autoSlideShow) {
				_timer = setTimeout(function(){nextEl()},_switchTime);
				_galleryEl.hover(function() {
						if (_timer) clearTimeout(_timer);
				}, function(){
						_timer = setTimeout(function(){nextEl()},_switchTime);
				});
				_linkPrev.hover(function() {
						if (_timer) clearTimeout(_timer);
				}, function(){
						_timer = setTimeout(function(){nextEl()},_switchTime);
				});
				_linkNext.hover(function() {
						if (_timer) clearTimeout(_timer);
				}, function(){
						_timer = setTimeout(function(){nextEl()},_switchTime);
				});
		}
		
		$(_linkNext).click(function(){
				if (_timer) {
						clearTimeout(_timer);
						_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				if ($(_galleryEl).filter(".active").next().is(_elTagName)) {
					$(_galleryEl).filter(".active").next().addClass("next");
				} else {
					$(_galleryEl).eq(0).addClass("next");
				}
				fadeElement();
				activeNumEl();
				return false;
		});
			
		$(_linkPrev).click(function(){
				if (_timer) {
						clearTimeout(_timer);
						_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				if ($(_galleryEl).filter(".active").prev().is(_elTagName)) {
					$(_galleryEl).filter(".active").prev().addClass("next");
				} else {
					$(_galleryEl).filter(":last-child").addClass("next");
				}
				fadeElement();
				activeNumEl();
				return false;
		});
		$(_numElementLink).bind(_options.event, function(){
				if (_timer) {
						clearTimeout(_timer);
						_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				_n = _numElement.index($(this).parent());
				if (!$(_galleryEl).eq(_n).hasClass("active")){
					$(_galleryEl).eq(_n).addClass("next");
					fadeElement();
					activeNumEl();
				}
				return false;
		});
		
		function nextEl(){
				if ($(_galleryEl).filter(".active").next().is(_elTagName)){
					$(_galleryEl).filter(".active").next().addClass("next");
				} else {
					$(_galleryEl).eq(0).addClass("next");
				}
				fadeElement();
				activeNumEl();
				_timer = setTimeout(function(){nextEl()},_switchTime);
		};		
		function activeNumEl() {
				$(_numElement).removeClass("active");
				_numElActive = $(_galleryEl).index($(_galleryEl).filter(".active")[0]);
				$(_numElement).eq(_numElActive).addClass("active");
		};
		function fadeElement(){
				$(_galleryEl).filter(".active").hide().removeClass("active");
				$(_galleryEl).filter(".next").show().addClass("active").removeClass("next");
                $('#slideshow-current').text($($(_galleryEl).filter(".active").children()[0]).attr("rel"));
				
				// Old Gallery Transition for slideshow
                // $(_galleryEl).filter(".active").fadeOut(_duration).removeClass("active");
                // $(_galleryEl).filter(".next").fadeIn(_duration).addClass("active").removeClass("next");
				
		};
    });
}

$(document).ready(function(){
    $('#slideshow-total').text($('div.gallery .imageblock .image a img').length);
    $('#slideshow-current').text(1);
	$('div.gallery').slideShow({duration: 2000, switchTime: 5000});
});

