//
//******************************
//
// Copyright by
// SNAZ Technology <biuro@snaz.pl>
// http://www.snaz.pl/
//
// Author:
// Micha³ Grabania <michal@grabania.net>
// http://michal.grabania.net/
//
//******************************
//
// Jquery Slider 1.3
//
// 2010-09-16
//
//******************************
//
//	<div id="xxx">
//		<div class="slide"></div>
//		<div class="slide" style="display: none"></div>
//		<div class="slide" style="display: none"></div>
//	</div>
//
//	$('#xxx').SNAZslider();
//
//******************************

(function($) {
	$.fn.SNAZslider = function(options) {

		var obj = this;

		obj.defaults = {
			speed: 5000,
			firstSlideSpeed: 7000,
			slideName: '.slide',
			random: false
		};
		
		obj.defaults = $.extend(obj.defaults, options);

		obj.sliders_checker = new Array();
		obj.sliders_item = new Array();
		obj.sliders_buffor = new Array();
		obj.sliders_loader = new Array();
		obj.sliders_najechany = false;
		obj.sliders_iterator = 0;

		obj.sliders = obj.children(obj.defaults.slideName)

		jQuery.each(obj.sliders, function() {
			obj.sliders_item.push(this);
		});

		if (obj.sliders_item.length > 1) {

			if (obj.defaults.random) {
				try {
					obj.temp = obj.sliders_item.shift();
					fisherYates(obj.sliders_item);
					obj.sliders_item.unshift(obj.temp);
				}
				catch(e) {}
			}

			jQuery.each(obj.sliders_item, function() {
				var img = $(this).children("img");
				var temp = new Array();
				jQuery.each(img, function() { temp.push($(this).attr('src')); });
				obj.sliders_buffor.push(temp);
			});
			for(var i = 0; i < obj.sliders_buffor.length; ++i) {
				obj.sliders_loader[i] = new Array();
				for(var ii = 0; ii < obj.sliders_buffor[i].length; ++ii) {
					if (!obj.sliders_checker[obj.sliders_buffor[i]]) {
						obj.sliders_checker[obj.sliders_buffor[i]] = false;
						obj.sliders_loader[i][ii] = new Image();
						obj.sliders_loader[i][ii].onload = function() { obj.sliders_checker[this.src] = true; }
						obj.sliders_loader[i][ii].src = obj.sliders_buffor[i];
					}
				}
			}
			obj.children('.slide').hover(function() { obj.sliders_najechany = true; }, function() { obj.sliders_najechany = false; });
			if (start) window.setTimeout(function(){ obj.slider_anim_fade(); }, obj.defaults.firstSlideSpeed); else window.setTimeout(function(){ obj.slider_anim_fade(); }, obj.defaults.speed);
		}
		obj.slider_anim_fade = function() {
			try {
				if (obj.sliders_najechany) window.setTimeout(function(){ obj.slider_anim_fade(); }, 1000); else {
					var temp = obj.sliders_iterator;
					temp++;
					if (obj.sliders_item[temp] == undefined) temp = 0;
					if (temp) {
						for(var ii = 0; ii < obj.sliders_buffor[temp].length; ++ii) {
							if (!obj.sliders_checker[obj.sliders_buffor[temp]]) {
								window.setTimeout(function(){ obj.slider_anim_fade(); }, 1000);
								return false;
							}
						}
					}
					$(obj.sliders_item[obj.sliders_iterator]).fadeOut(1000, function() {
						obj.sliders_iterator++;
						if (obj.sliders_item[obj.sliders_iterator] == undefined) obj.sliders_iterator = 0;
						$(obj.sliders_item[obj.sliders_iterator]).fadeIn(1000, function() {
							if (obj.sliders_iterator) window.setTimeout(function(){ obj.slider_anim_fade(); }, obj.defaults.speed); else window.setTimeout(function(){ obj.slider_anim_fade(); }, obj.defaults.firstSlideSpeed);
						});

					});
				}
			}
			catch(e) { }
		}
	};
})(jQuery);

//******************************
//
// Copyright by
// SNAZ Technology <biuro@snaz.pl>
// http://www.snaz.pl/
//
// Author:
// Micha³ Grabania <michal@grabania.net>
// http://michal.grabania.net/
//
