/* Slider Copyright Julian Tekook 2010 */

function GetRandom( min, max ) {
	if( min > max ) {
		return( -1 );
	}
	if( min == max ) {
		return( min );
	}
 
  return( min + parseInt( Math.random() * ( max-min+1 ) ) );
}
function getSize(obj) {
  var len = obj.length ? --obj.length : -1;
    for (var k in obj)
      len++;
  return len;
}

	var imager = {
		vars: {
			time: 100,
			timeouts: { }
		},
		i: function(elm, func) {
			if(elm.complete == true) {
				setTimeout(func, 0);
			} else {
				clearTimeout(imager.vars.timeouts[elm]);
				imager.vars.timeouts[elm] = setTimeout(function() {
					imager.i(elm, func);
				}, imager.vars.time);
			}
		}
	};
var slider = {
	conf: {
		div: 'slider',
		timeout : '',
		time: 10000,
		img: '',
		load_img: '',
		count: 15
	},
	getImg: function() {
		return $(slider.conf.img);
	},
	getLoadImg: function() {
		return $(slider.conf.load_img);
	},
	getDiv: function() {
		return $('div.'+slider.conf.div).find('div').find('a');
	},
	setLink: function(title) {
		$('a#slider_pointer')
			.attr('href', '?inc=slider_all#slider_img_'+(slider.conf.count+1))
			.attr('title', 'Bild: '+title);
	},
	getTextDiv: function() {
		return $('div.'+slider.conf.div);
	},
	images: { },
	init: function() {
		slider.conf.count = getcookie('sliderCount');
		var $div = slider.getDiv();
		var img = document.createElement('img');
		$div.append(img);
		//$div.append('<br /><a href="javascript: slider.prev();">Zurück</a> - <a href="javascript: slider.next();">Weiter</a>');
		this.conf.img = img;
		var load_img = document.createElement('img');
		load_img.style.position = 'absolute';
		load_img.style.left = '-10000px';
		$('body').append(load_img);
		slider.conf.load_img = load_img;
	},
	add: function(i, long, short) {
		var l = getSize(slider.images);
		slider.images[l++] = {'img': i, 'long': long, 'short': short};
	},
	prev: function() {
		clearTimeout(slider.conf.timeout);
		slider.conf.count--;
		slider.conf.count--;
		if(slider.conf.count < -1) {
			var size = getSize(slider.images);
			slider.conf.count = size - 1;
		}
		slider.slide();
	},
	next: function() {
		clearTimeout(slider.conf.timeout);
		slider.slide();
	},
	getRand: function() {
		var size = getSize(slider.images);
		slider.conf.count++;
		if(slider.conf.count > size - 1) {
			slider.conf.count = 0;
		}
		setcookie('sliderCount', slider.conf.count, 10000);
		return slider.images[slider.conf.count];
	},
	slide: function() {
		slider.getImg().fadeOut('fast', function() {
			var src = slider.getRand();
			slider.getLoadImg().attr('src', src.img);
			slider.getImg().attr('src', 'src/ajax-loader.gif').fadeIn('fast', function() {
				imager.i(slider.conf.load_img, function() {
					slider.getImg().fadeOut('fast', function() {
						$(this).attr('src', src.img).attr('alt', src.long).attr('title', src.short).fadeIn('fast');
						slider.setLink(src.short);
						slider.conf.timeout = setTimeout(function() {
							slider.slide();
						}, slider.conf.time);
					});
				});
			});
		});
		
		
	}
};

