/***********************************************
 * GXBanner Images Slideshow - (c) www.12leaves.com - ecommerce webdesign services
 * This notice must stay intact for legal use
 ***********************************************/


function prev_next() {
	var prev = $current.next(".slide");
	if(prev.length == 0) prev = $("#gslider .slide:first");
	$("#gslider .next.page").unbind("click").click(function() {
		slide_to(prev);
	});
	var next = $current.prev(".slide");
	if(next.length == 0) next = $("#gslider .slide:last");
	$("#gslider .prev.page").unbind("click").click(function() {
		slide_to(next);
	});
}

function slide_to(slide) {
	if(slide.is(".present")) return;

	$current.css("z-index", 100);
	slide.css("z-index", 99);

	$gslider_options.effects[$gslider_options.effect]($current.stop(true, true), slide.stop(true, true), $gslider_options.speed);

	try { $current.get(0).page_anchor.removeClass("present"); } catch(e) {}
	$current.removeClass("present");
	$current = slide;
	$current.addClass("present");
	try { $current.get(0).page_anchor.addClass("present"); } catch(e) {}

	prev_next();
	go_next(true);
}

function go_next(bind) {
	if($gslider_options.timer) clearTimeout($gslider_options.timer);
	if(bind) $gslider_options.timer = setTimeout(go_next, $gslider_options.pause);
	else $("#gslider .next.page").click();
}

var $gslider_defaults = {
	effects: {
		fadeOut: function(from, to, speed) {
			to.show();
			from.fadeOut(speed);
		},
		slideUp: function(from, to, speed) {
			to.show();
			from.slideUp(speed);
		},
		slideLeftBoth: function(from, to, speed) {
			to.css("left", to.width()).animate({left: 0}, speed);
			from.css("left", 0).animate({left: -from.width()}, speed);
		},
		slideLeft: function(from, to, speed) {
			to.css("left", 0);
			from.attr("left", 0).animate({left: -from.width()}, speed);
		},
		slideLeftOrRight: function(from, to, speed) {
			var sign = (to.prev(".present").length == 0) ? 1 : -1;
/*			if(to.prev(".slide").length == 0 && from.next(".slide").length == 0) sign = -1*sign;*/
			to.css("left", 0);
			from.attr("left", 0).animate({left: sign*from.width()}, speed);
		},
		slideLeftOrRightBoth: function(from, to, speed) {
			var sign = (to.prev(".present").length == 0) ? 1 : -1;
/*			if(to.prev(".slide").length == 0 && from.next(".slide").length == 0) sign = -1*sign;*/
			to.css("left", -sign*to.width()).animate({left: 0}, speed);
			from.css("left", 0).animate({left: sign*from.width()}, speed);
		}
	},
	pause: 3000,
	effect: "slideLeft",
	speed: "slow",
	pages_effects: {
		fade: [function(el, speed) {
			el.fadeIn(speed);
		}, function(el, speed) {
			el.fadeOut(speed);
		}],
		slide: [function(el, speed) {
			el.slideDown(speed);
		}, function(el, speed) {
			el.slideUp(speed);
		}]
	},
	pages_effect: "fade",
	pages_speed: "slow",
	pages_opacity: 0.8
};

$(function() {	$(".page").css({ opacity: $gslider_options.pages_opacity });});

$(function() {
	if($("#gslider").size == 0) return;
	if(typeof $gslider_options == "undefined")
		$gslider_options = $gslider_defaults;
	else
		$gslider_options = $.extend($gslider_defaults, $gslider_options);

	$("#gslider").hover(function() {
		if($gslider_options.pages_toggling_stopped) return;
		$gslider_options.pages_effects[$gslider_options.pages_effect][0]($("#gslider .pages"), $gslider_options.pages_speed);
	}, function() {
		if($gslider_options.pages_toggling_stopped) return;
		$gslider_options.pages_effects[$gslider_options.pages_effect][1]($("#gslider .pages"), $gslider_options.pages_speed);
	});

	$("#gslider .page").not(".prev, .next").each(function(i, n) {
		var slide = $("#gslider .slide:nth("+ i +")");
		slide.get(0).page_anchor = $(n);
		$(n).click(function() {
			slide_to(slide);
		});
	}).filter(":first").addClass("present");

	$("#gslider .slide").css("z-index", 1);
	$current = $("#gslider .slide:first").addClass("present").css("z-index", 100);

	prev_next();
	go_next(true);
});
