(function($){

$.fn.carousel = function(options){
		
	/* carousel_types : 'image_with_text', 'only_image' */
	
	var defaults = {
			carousel_type		: 'image_with_text',
			carousel_width 		: '100%',
			carousel_height 	: '100%',
			carousel_delay		: 5000,
			carousel_timeout 	: 0,
			carousel_next		: 1,
			carousels			: 0,
			speed				: 20,
			max_image_height	: 200,
			carousel_active		: 1
		};
		
	options 		= $.extend(defaults, options);
	var obj 		= $(this), numbers_id = Math.random() + '';
	numbers_id 		= numbers_id.replace(".", "");
	
	obj.css({
				width			: options.carousel_width,
				height			: options.carousel_height,
				overflow		: 'hidden',
				left			: '0px',
				top				: '0px',
				position		: 'relative',
				//font		 	: 'bold 14px lucida sans,trebuchet ms,tahoma,sans-serif',
				padding			: '0px'
		});

	// Carousel Type
	if(options.carousel_type == 'image_with_text'){
		options.carousels = obj.children('div');
	}
	else if(options.carousel_type == 'only_image'){
		options.carousels = $('img', obj);
		options.carousels.each(function(){
			$(this).click(function(){
				if($(this).attr('rel')) window.location.href = $(this).attr('rel');
			});
		});
	}

	obj.find('*').click(function(){
		goto();
	});
	
	options.carousel_active = 0;
	
	if(options.carousels.length > 1){
	
		obj.mouseover(function(){ mouseEvent('in');}).mouseout(function(){ mouseEvent('out') });

		var itemcount = options.carousels.length;
		obj.append('<div id="' + numbers_id + '" class="kk_dugmeler"></div>');
		generateNumbers();
		
		options.carousel_timeout = setTimeout(slideShow, options.carousel_delay);	
	
	}

	// Public Functions
	function mouseEvent(e){
		if(e == 'out') options.carousel_timeout = setTimeout(slideShow, options.carousel_delay);
		else clearTimeout(options.carousel_timeout);
	}

	function slideShow(){

		showCarousel(options.carousel_next);	

		options.carousel_next++;

		if(options.carousel_next >=  options.carousels.length) options.carousel_next = 0;

		clearTimeout(options.carousel_timeout);
		options.carousel_timeout = setTimeout(slideShow, options.carousel_delay);	

	}	
	
	function goto(){
		var linkz = options.carousels.eq((options.carousel_active)).attr('link'); 
		if(linkz) window.location.href = linkz;																															
		
	}

	function showCarousel(id){
		
		if(id == undefined) id = options.carousel_active;
		else {
			options.carousel_next = id;
		}
		
		var show = options.carousels.eq(options.carousel_next);
		show.fadeIn(500);
		options.carousels.filter(':not(:eq(' + options.carousel_next + '))').fadeOut(0);
		$('#' + numbers_id + ' div').removeClass('aktif').filter(':eq(' + id + ')').addClass('aktif');
		options.carousel_active = options.carousel_next;

	}
	
	function generateNumbers(){
		for(var i = 1; i < options.carousels.length + 1; i++){
			$('#' + numbers_id).append('<div class="' + (i == 1 ? ' aktif' : '')+ '">' + i + '</div>');
		}
		
		$('#' + numbers_id).find('div').each(function(n){
			$(this).click(function(){
				showCarousel(n);
			});	
			
		});
	}
}


})(jQuery)

