function initSlideShow() {
	jQuery('div.gallery').slideShow({
		slideEl:'ul > li',
		linkNext:'a.next',
		linkPrev:'a.prev',
		autoSlideShow:false,
		switchTime:3000,
		duration:650
	});
}

function initDatePickers() {
	jQuery('div.datepicker-holder').each(function(){
		var _holder = jQuery(this);
		var _picker = _holder.find('input[type="text"]');
		_picker.datepicker({
			dayNamesMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
			buttonImageOnly: false,
			dateFormat: 'dd/mm/yy',
			prevText: '&lt;',
			nextText: '&gt;',
			showOn: 'both'
		});
	});
}

jQuery(function() {
	initSlideShow();
	initDatePickers();
});

/* slideshow plugin */
jQuery.fn.slideShow = function(_options){
	var _options = jQuery.extend({
		slideEl:'div.img-hold img',
		linkNext:'a.next',
		linkPrev:'a.prev',
		linkPause:'a.pause',
		numElementLink:'div.nav li a',
		duration:500,
		autoSlideShow:false,
		autoHeight:false,
		switchTime:3000,
		event:'click',
		currentEl:'#footer span.cur',
		allEl:'#footer span.all'
	},_options);

	return this.each(function(){
		var _THIS = jQuery(this);
		var _slideEl = jQuery(_options.slideEl, _THIS);
		var _elTagName = _options.slideEl;
		var _linkNext = jQuery(_options.linkNext, _THIS).length ? jQuery(_options.linkNext, _THIS) : false;
		var _linkPrev = jQuery(_options.linkPrev, _THIS).length ? jQuery(_options.linkPrev, _THIS) : false;
		var _linkPause = jQuery(_options.linkPause, _THIS).length ? jQuery(_options.linkPause, _THIS) : false;
		var _numElementLink = jQuery(_options.numElementLink, _THIS).length ? jQuery(_options.numElementLink, _THIS) : false;
		var _numElement = jQuery(_options.numElementLink, _THIS).length ? _numElementLink.parent() : false;
		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _numElActive, _n, _timer = false, _hover = false;
		
		if (!_slideEl.filter('.active').length)
			_slideEl.eq(0).addClass('active');
		jQuery(_slideEl).not(".active").css('display','none');

		if (jQuery(_numElement).length) {activeNumEl()}

		if (_options.autoSlideShow) {
			_timer = setTimeout(function(){nextEl()},_switchTime);
			contentHover();
		}
		if (_linkNext) {
			jQuery(_linkNext).click(function(){
				if (_timer) {
					clearTimeout(_timer);
					_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				if (jQuery(_slideEl).filter(".active").next().is(_elTagName)) {
					jQuery(_slideEl).filter(".active").next().addClass("next");
				} else {
					jQuery(_slideEl).eq(0).addClass("next");
				}
				fadeElement();
				activeNumEl();
				return false;
			});
		}
		if (_linkPrev) {	
			jQuery(_linkPrev).click(function(){
				if (_timer) {
					clearTimeout(_timer);
					_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				if (jQuery(_slideEl).filter(".active").prev().is(_elTagName)) {
					jQuery(_slideEl).filter(".active").prev().addClass("next");
				} else {
					jQuery(_slideEl).filter(":last-child").addClass("next");
				}
				fadeElement();
				activeNumEl();
				return false;
			});
		}
		if (_linkPause) {	
			if (!_options.autoSlideShow) {
				_linkPause.addClass('play');
				_options.autoSlideShow = true;
				if (!_hover) contentHover();
			}
			jQuery(_linkPause).click(function(){
				if (!_linkPause.is('.play')) {
					clearTimeout(_timer);
					_linkPause.addClass('play');
				} else {
					_linkPause.removeClass('play');
					_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				return false;
			});
		}
		if (_numElementLink) {
			jQuery(_numElementLink).bind(_options.event, function(){
				if (_timer) {
					clearTimeout(_timer);
					_timer = setTimeout(function(){nextEl()},_switchTime);
				}
				_n = _numElement.index(jQuery(this).parent());
				if (!jQuery(_slideEl).eq(_n).hasClass("active")){
					jQuery(_slideEl).eq(_n).addClass("next");
					fadeElement();
					activeNumEl();
				}
				return false;
			});
		}
		if (_options.currentEl || _options.allEl) {
			_THIS.all = _slideEl.length;
			jQuery(_options.allEl, _THIS).html(_THIS.all);
			function currentNum() {
				var _index = _slideEl.index(_slideEl.filter('.active')) + 1;
				jQuery(_options.currentEl, _THIS).html(_index);
			}
			currentNum();
		}
		function contentHover() {
			_hover = true;
			_slideEl.hover(function() {
				if (_timer) clearTimeout(_timer);
			}, function(){
				if (_linkPause && !_linkPause.is('.play'))
					_timer = setTimeout(function(){nextEl()},_switchTime);
				else if (!_linkPause)
					_timer = setTimeout(function(){nextEl()},_switchTime);
			});
		}
		function nextEl(){
			if (jQuery(_slideEl).filter(".active").next().is(_elTagName)){
				jQuery(_slideEl).filter(".active").next().addClass("next");
			} else {
				jQuery(_slideEl).eq(0).addClass("next");
			}
			fadeElement();
			activeNumEl();
			_timer = setTimeout(function(){nextEl()},_switchTime);
		};		
		function activeNumEl() {
			jQuery(_numElement).removeClass("active");
			_numElActive = jQuery(_slideEl).index(jQuery(_slideEl).filter(".active")[0]);
			jQuery(_numElement).eq(_numElActive).addClass("active");
		};
		function fadeElement(){
			jQuery(_slideEl).filter(".active").fadeOut(_duration).removeClass("active");
			jQuery(_slideEl).filter(".next").fadeIn(_duration).addClass("active").removeClass("next");
			if (_options.autoHeight) jQuery(_slideEl).filter(".active").eq(0).parent().animate({height:jQuery(_slideEl).filter(".active").eq(0).height()},{duration:_duration});
			if (_options.currentEl || _options.allEl) currentNum();
		};
	});
}

jQuery.noConflict();