
(function($){
$.fn.ticker=function(options){
var defaults={
max:6,
pageSize:2,
timing:10000
};
var options=$.extend(defaults,options);
return this.each(function(num){
obj=$(this);
controls='<div class="ntControls"><a href="#" class="ntPlayPause">Pause</a> <span class="ntPages"><a href="#" class="active">1</a> <a href="#">2</a> </span></div>';
var data=jQuery.data(obj.get(0),"ticker",{liArr:new Array()});
li=$('li',obj);
if(li.length>=options.pageSize){
obj.parent().append(controls);
li.each(function(){
data.liArr.push($(this).html());
});
if(data.liArr.length>options.max){
data.liArr=data.liArr.slice(0,options.max);
}
ntLength=data.liArr.length;
var pages=2;
if(ntLength>(options.max-options.pageSize)){
$('span.ntPages',obj.parent()).append('<a href="#">3</a>');
pages=3;
}
var content="";
for(i=0;i<2;i++){
content+='<li>'+data.liArr[i]+'</li>';
}
obj.html(content);
var count=2;
$('span.ntPages a',obj.parent()).click(function(){
object=$(this).parents('div.fbContent').find('ul');
pageNum=$(this).text();
par=$(this).parent();
fnChangePage(pageNum,par,object);
fnPause(object,$('a.ntPlayPause',par.parent()));
count=parseInt(pageNum)+1;
if(count>=pages){
count=1;
}
console.log(count);
return false;
});
obj.everyTime(options.timing,function(i){
fnChangePage(count,$('span.ntPages',$(this).parent()),$(this));
if(count>=pages){
count=1;
}else{
count++;
}
});
$('a.ntPlayPause',obj.parent()).click(function(){
list=$(this).parents('div.fbContent').find('ul');
if($(this).hasClass('paused')){
$(this).removeClass('paused').text('Pause');
list.everyTime(options.timing,function(i){
fnChangePage(count,$('span.ntPages',$(this).parent()),$(this));
if(count>=pages){
count=1;
}else{
count++;
}
});
}else{
fnPause(list,$(this));
}
return false;
});
}else{
return false;
}
function fnChangePage(x,par,object){
$('a',par).removeClass('active');
$('a:eq('+(x-1)+')',par).addClass('active');
object.fadeOut('normal',function(){
fnPopulate(object,x);
});
}
function fnPopulate(object,x){
finish=x*options.pageSize;
start=finish-options.pageSize;
if(finish>data.liArr.length){
finish=data.liArr.length;
}
content="";
for(i=start;i<finish;i++){
content+='<li>'+data.liArr[i]+'</li>';
}
object.html(content).fadeIn();
}
function fnPause(object,button){
button.text('play').addClass('paused');
object.stopTime();
}
});
};
})(jQuery);