/***********************************************************
Scriptname: 	slidebanner.1.0.js
Dependencies: 	jquery.1.4.3, php.full.min.js
Version: 		1.0 live
Description:	Webavance standard menu carrousel

Copyright: 		Webavance B.V. 2010 for CORPUS Experience
Legal: 			Any use of this script without Webavance B.V.
				express written consent is prohibited
************************************************************/

(function($) {
	
	$.fn.slidebanner = function(c) {
		var elm = $(this);
		var menu = elm.find('.slidebanner-menu');
		var frame = elm.find('.slidebanner-contentframe');
		var content = [];
		var loadcount = 0;
		var currentImg = 0;
		var forced = false;
		var slideTimer;
		
		c = $.extend({
			url: '#',
			interval: 5,
			forcedInterval: 10
		}, c);
		
		
		elm.find('.slidebanner-menu-link').each( function() {
			content.push({
				image: $(this).attr('rel'),
				link: $(this).attr('href'),
				title: '',
				text: ''
			});
		});
		
		
		$(content).each( function(x, item) {
			$('<a class="slidebanner-menu-link"/>') // set menu item
				.appendTo(menu)
				// .html('<span class="slidebanner-menu-title">' + item.title + '</span><span class="slidebanner-menu-text">' + item.text + '</span>')
				.attr({ 'slidebanner-item' : x })
				.click( function(e) { // set link action
					e.preventDefault();
					window.location.href = item.link;
				}).mouseenter( function(e) { // set link action
					e.preventDefault();
					forced = true;
					clearTimeout(slideTimer);
					MoveToImage(parseInt($(this).attr('slidebanner-item')));
				});
		});
		
		menu.find('.slidebanner-menu-link:eq(0)').addClass('active');
		
		if (content[0]!==undefined) frame.css({ backgroundImage: "url('" + content[0].image + "')"});
		
		BannerSlideTimer();
		
		
		function BannerSlideTimer() {
			clearTimeout(slideTimer);
				
			var timeout = (forced===true) ? // is the move forced by the user?
				c.forcedInterval : 
				c.interval ;
			
			forced=false;
			
			slideTimer = setTimeout( function() {
				var nextSlide = (parseInt(currentImg)+1 < content.length) ?
					parseInt(currentImg)+1 : 
					0 ;
				
				MoveToImage(nextSlide);
			}, timeout * 1000);
			
		}
		
		function MoveToImage(nmbr) {
			menu.find('.slidebanner-menu-link').removeClass('active');
			menu.find('.slidebanner-menu-link:eq('+ nmbr +')').addClass('active');
			
			if (content[nmbr]===undefined) nmbr = 0;
			
			frame.stop();
			frame.animate({
					opacity: 0
				},
				200,
				'linear',
				function() {
					frame.css({ backgroundImage: "url('" + content[nmbr].image + "')"});
					frame.animate({ opacity: 1 }, 200 );
					currentImg = nmbr;
				}
			);
			BannerSlideTimer();
		}
		
	};
	
})($);
