$.fn.pager = function(clas, options) {
var settings = {
navId: 'nav',
navId2: 'nav2',
navClass: 'nav',
navAttach: 'both',
highlightClass: 'highlight',
prevText: './img/arrow_uc_left.gif',
nextText: './img/arrow_uc_right.gif',
linkText: null,
linkWrap: null,
height: null
}
if(options) $.extend(settings, options);
return this.each( function () {
var me = $(this);
var size;
var i = 0;
var navid = '#'+settings.navId;
var navid2 = '#'+settings.navId2;
function init () {
size = $(clas, me).not(navid).size();
if(settings.height == null) {
settings.height = getHighest();
}
if(size > 1) {
makeNav();
show();
highlight();
}
//sizePanel();
if(settings.linkWrap != null) {
linkWrap();
}
}
function makeNav ()
{
var str = '
';
var str2 = '
';
switch (settings.navAttach) {
case 'before':
$(me).before(str);
break;
case 'after':
$(me).after(str);
break;
case 'prepend':
$(me).prepend(str);
break;
case 'both':
$(me).prepend(str);
$(me).append(str2);
break;
default:
$(me).append(str);
break;
}
}
function show () {
$(me).find(clas).not(navid).hide();
var show = $(me).find(clas).not(navid).get(i);
$(show).show();
$(navid2).show();
}
function highlight (){
var as = null;
var toset = [navid, navid2];
for(y in toset)
{
as = $(me).find(toset[y]).find('a');
for(x = 1; x < as.length; x++)
{
//if(as.get(x).rel == 'prev' || as.get(x).rel == 'next') continue;
as.get(x).className = 'page';
if(x == i+1)
{
as.get(x).className += ' active';
}
else
{
as.get(x).className = 'page';
}
}
}
}
function sizePanel () {
if($.browser.msie) {
$(me).find(clas).not(navid).css( {
height: settings.height
});
$(navid).css("height","20px");
$(navid2).css("height","20px");
} else {
$(me).find(clas).not(navid).css( {
minHeight: settings.height
});
$(navid).css("height","20px");
$(navid2).css("height","20px");
}
}
function getHighest () {
var highest = 0;
$(me).find(clas).not(navid).each(function () {
if(this.offsetHeight > highest) {
highest = this.offsetHeight;
}
});
highest = highest + "px";
return highest;
}
function getNavHeight () {
var nav = $(navid).get(0);
return nav.offsetHeight;
}
function linkWrap () {
$(me).find(navid).find("a").wrap(settings.linkWrap);
}
init();
$(this).find(navid).find("a").click(function () {
if($(this).attr('rel') == 'next') {
if(i + 1 < size) {
i = i+1;
}
} else if($(this).attr('rel') == 'prev') {
if(i > 0) {
i = i-1;
}
} else {
var j = $(this).attr('rel');
i = j-1;
}
show();
highlight();
return false;
});
$(this).find(navid2).find("a").click(function () {
if($(this).attr('rel') == 'next') {
if(i + 1 < size) {
i = i+1;
}
} else if($(this).attr('rel') == 'prev') {
if(i > 0) {
i = i-1;
}
} else {
var j = $(this).attr('rel');
i = j-1;
}
show();
highlight();
return false;
});
});
}