function rand ( n )
{
  return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

$.fn.pager = function(clas, options) {

	

	var settings = {		

		navId: 'nav',
		
		navId2: 'nav2',

		navClass: 'nav',

		navAttach: 'append',

		highlightClass: 'highlight',

		prevText: '<img src="themes/travelpass/images/prev.gif" class="nav" />',

		nextText: '<img src="themes/travelpass/images/next.gif" class="nav" />',

		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();
//			i = rand(size)-1;
			i = 0;

			if(settings.height == null) {			

				settings.height = getHighest();

			}

			if(size > 1) {

				makeNav();

				show();

				highlight();

			}			

			sizePanel();

			if(settings.linkWrap != null) {

				linkWrap();

			}

		}

		function makeNav () {		

//			var str = '<div id="'+settings.navId+'" class="'+settings.navClass+'">';

//			str += '<a href="#" rel="prev">'+settings.prevText+'</a>';

//			for(var i = 0; i < size; i++) {

//				var j = i+1;

//				str += '<a href="#" rel="'+j+'">';

//				str += (settings.linkText == null) ? j : settings.linkText[j-1];				

//				str += '</a>';

//			}

//			str += '<a href="#" rel="next">'+settings.nextText+'</a>';

//			str += '</div>';

//			switch (settings.navAttach) {		

//				case 'before':

//					$(me).before(str);

//					break;

//				case 'after':		

//					$(me).after(str);

//					break;

//				case 'prepend':

//					$(me).prepend(str);

//					break;

//				default:

//					$(me).append(str);

//					break;

//			}

			var str1 = '<div id="'+settings.navId+'" class="'+settings.navClass+'">';

			str1 += '<a href="#" rel="prev">'+settings.prevText+'</a>';

			str1 += '</div>';

			var str2 = '<div id="'+settings.navId2+'" class="'+settings.navClass+'">';

			str2 += '<a href="#" rel="next">'+settings.nextText+'</a>';

			str2 += '</div>';
			
			$(me).prepend(str1);
			$(me).append(str2);

		}

		function show () {

			$(me).find(clas).not(navid).not(navid2).hide();
			
			var show = $(me).find(clas).not(navid).not(navid2).get(i);

			$(show).show();

		}		

		function highlight () {

			$(me).find(navid).find('a').removeClass(settings.highlightClass);

			var show = $(me).find(navid).find('a').get(i+1);			

			$(show).addClass(settings.highlightClass);

		}



		function sizePanel () {

			if($.browser.msie) {

				$(me).find(clas).not(navid).not(navid2).css( {

					height: settings.height

				});	

			} else {

				$(me).find(clas).not(navid).not(navid2).css( {

					minHeight: settings.height

				});

			}

		}

		function getHighest () {

			var highest = 0;

			$(me).find(clas).not(navid).not(navid2).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 {
					i = 0;
				}

			} else if($(this).attr('rel') == 'prev') { 

				if(i > 0) {	

					i = i-1;

				} else {
					i = size - 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 {
					i = 0;
				}

			} else if($(this).attr('rel') == 'prev') { 

				if(i > 0) {	

					i = i-1;

				} else {
					i = size - 1;
				}

			} else {		

				var j = $(this).attr('rel');	

				i = j-1;		

			}

			show();

			highlight();

			return false;

		});

	});	

}

