/**
* Simple Carousel
* Copyright (c) 2010 Tobias Zeising, http://www.aditu.de
* Licensed under the MIT license
*
* http://code.google.com/p/simple-carousel/
* Version 0.3
*/
//EDITED BY ONETAREK
(function($){
$.fn.simplecarousel = function( params ) {
// set config
var defaults = {
width: 700,
height: 500,
next: false,
prev: false,
vertical: false,
auto: false,
fade: false,
current: 0,
items: 0,
slidespeed: 600,
visible: 1,
pagination: false,
hover:false//added by oneTarek
};
var config = $.extend(defaults, params);
// configure carousel ul and li
var ul = $(this);
var li = ul.children('li');
config.items = li.length;
var height = config.height;
var width = config.width;
if(config.visible>1) {
if(config.vertical)
height = height*config.visible;
else
width = width*config.visible;
}
ul.wrap('
');
var container = ul.parent('.carousel-frame');
if(!config.vertical) {
ul.width(config.items*config.width);
ul.height(config.height);
} else {
ul.width(config.width);
ul.height(config.items*config.height);
}
ul.css('overflow','hidden');
li.each(function(i,item) {
$(item).width(config.width);
$(item).height(config.height);
if(!config.vertical)
$(item).css('float','left');
});
// function for sliding the carousel
var slide = function(dir, click) {
if(typeof click == "undefined" & config.auto==false)
return;
if(config.hover==false)//added by oneTarek
{
if(dir=="next") {
config.current += config.visible;
if(config.current>=config.items)
config.current = 0;
} else if(dir=="prev") {
config.current -= config.visible;
if(config.current<0)
config.current = (config.visible==1) ? config.items-1 : config.items-config.visible+(config.visible-(config.items%config.visible));
} else {
config.current = dir;
}
// set pagination
if(config.pagination != false) {
container.next('.carousel-pagination').find('li').removeClass('carousel-pagination-active')
container.next('.carousel-pagination').find('li:nth-child('+(config.current+1)+')').addClass('carousel-pagination-active');
}
// fade
if(config.fade!=false) {
ul.fadeOut(config.fade, function() {
ul.css({marginLeft: -1.0*config.current*config.width});
ul.fadeIn(config.fade);
});
// slide
} else {
if(!config.vertical)
ul.animate( {marginLeft: -1.0*config.current*config.width}, config.slidespeed );
else
ul.animate( {marginTop: -1.0*config.current*config.height}, config.slidespeed );
}
}
if(typeof click != "undefined")
config.auto = false;
if(config.auto!=false)
setTimeout(function() {
slide('next');
}, config.auto);
}
// include pagination
if(config.pagination != false) {
container.after('');
var pagination = container.next('.carousel-pagination');
for(var i=0;i