/* -----------------------------------------------------------------
	JQUERY CUSTOM FUNCTION -- SLIDE TOGGLE
----------------------------------------------------------------- */
jQuery.fn.slideToggle = function(speed, easing, callback) {
	return this.animate({width: 'toggle',opacity: 'toggle'}, speed, easing, callback);  
};
/* -----------------------------------------------------------------
	JQUERY CUSTOM FUNCTION -- SLIDE OUT
----------------------------------------------------------------- */
jQuery.fn.slideOut = function(speed, easing, callback) {
	return this.animate({width: 'hide',opacity: 'hide'}, speed, easing, callback);  
};
/* -----------------------------------------------------------------
	JQUERY CUSTOM FUNCTION -- SLIDE IN
----------------------------------------------------------------- */
jQuery.fn.slideIn = function(speed, easing, callback) {
	return this.animate({width: 'show',opacity: 'show'}, speed, easing, callback);  
};
/* -----------------------------------------------------------------
	JQUERY CUSTOM FUNCTION -- BANNER
----------------------------------------------------------------- */
jQuery.fn.banner = function(vars) {

	var element     = this;
	var pauseSeconds     = (vars.pauseSeconds*1000);
	var transitionSeconds     = (vars.transitionSeconds*1000);
	var current     = null;
	var timeOutFn   = null;
	var faderStat   = true;
	var mOver       = false;
	var items       = $("#" + element[0].id + "Content ." + element[0].id + "Image");
	var itemsDiv   = $("#" + element[0].id + "Content ." + element[0].id + "Image div");
	
	var fadeElement = function(isMouseOut) {
		var thisTimeOut = (isMouseOut) ? (pauseSeconds) : pauseSeconds;
		thisTimeOut = (faderStat) ? 10 : thisTimeOut;
		if(items.length > 0) {
			timeOutFn = setTimeout(makeSlider, thisTimeOut);
		}
	}
	
	var makeSlider = function() {
		current = (current != null) ? current : items[(items.length-1)];
		var currNo      = jQuery.inArray(current, items) + 1
		currNo = (currNo == items.length) ? 0 : (currNo - 1);
		var newMargin   = $(element).width() * currNo;
		if(faderStat == true) {
			$(items[currNo]).fadeIn((transitionSeconds));
			$(itemsDiv[currNo]).slideIn((transitionSeconds), function() {
				faderStat = false;
				current = items[currNo];
				if(!mOver) {
					fadeElement(false);
				}
			});
		} else {
			$(itemsDiv[currNo]).slideOut((transitionSeconds));
			$(items[currNo]).fadeOut((transitionSeconds), function() {
				faderStat = true;
				current = items[(currNo+1)];
				if(!mOver) {
					fadeElement(false);
				}
			});
		}
	}
	
	makeSlider();
	
};
/* -----------------------------------------------------------------
	JQUERY GERENRL FUNCTIONS
----------------------------------------------------------------- */
jQuery(document).ready(function() {

	$('#banner ul li').css({display: 'none'});
	
	/* Enable banner */
	if(jQuery('#banner').html() !== null) {
		$("#banner").banner({pauseSeconds: 6, transitionSeconds: 1});
	}

});
