
(function($){
	$.fn.news = function(settings){
		// Settings to configure the jQuery lightBox plugin how you like
		settings = jQuery.extend({
			// Configuration related to overlay
			page : 1,
			maximo : 3,
			offset : 2,
			transicion : "fade",
			nextButtonOn : "media/pics/news_next_on.jpg",
			nextButtonOff : "media/pics/news_next_off.jpg",
			prevButtonOn : "media/pics/news_prev_on.jpg",
			prevButtonOff : "media/pics/news_prev_off.jpg"
		}, settings);
		
		var container = this;

		function disablePrevious(){
			$(container).find('#controls .previous').remove();
			$(container).find('#controls .info')
			.before('<b class="previous"></b>')
		}
		
		function enablePrevious(){
			$(container).find('#controls .previous').remove();
			$(container).find('#controls .info')
			.before('<a class="previous" href="javascript:void(0);"></a>')
			.parent().find('.previous')
			.bind('click',getPreviousPage );
		}
		
		function disableNext(){
			$(container).find('#controls .next').remove();
			$(container).find('#controls .info')
			.after('<b class="next"></b>')
		}
		
		function enableNext(){
			$(container).find('#controls .next').remove();
			$(container).find('#controls .info')
			.after('<a class="next" href="javascript:void(0);"></a>')
			.parent().find('.next')
			.bind('click',getNextPage );
		}
		
		function createPagination(){
			var ant = settings.page - 1;
			var prox = settings.page + 1;
			var cur = settings.page;
			
			var bfr = "";
			var offs = settings.offset;
			var ttl = settings.maximo;
			var maxim = ( offs * 2 ) + 1;
			var itr; var limit;
			
			if( ttl < maxim ){
				itr = 1;
				limit = ttl;
			}else{
				itr = cur-offs;
				if( itr <= 0 ){
					offs += Math.abs(itr);
					itr = 1;
				}
				limit = cur+offs;
				if( limit > ttl ){
					itr -= Math.abs(ttl-limit);
					limit = ttl;
				}	
			}

			itr > 1 ?
				bfr += '<a href="javascript:void(0);" class="link-'+((cur-offs)-1)+'">&hellip;</a>':false;
			
			for (;itr<=limit;itr++) {
				cur != itr ?
					bfr += '<a href="javascript:void(0);" class="link-'+itr+'">'+itr+'</a>'
				:
					bfr += '<b>'+itr+'</b>'
				;
			}
			
			limit < ttl ?
				bfr += '<a href="javascript:void(0);" class="link-'+((cur+offs)+1)+'">&hellip;</a>':false;
				
			$(container).find('#controls .info').html(bfr);
			$(container).find('#controls .info').find('[class^=link]').bind('click',function(){
				var cls = $(this).attr('class');
				var pg = cls.split('-')[1];
				settings.page = parseInt(pg);
				getNews();
				return false;
			})
		}
		
		function reviewControls(){
			if( settings.page == 1 ){
				disablePrevious();
				enableNext();
			}else if( settings.page == settings.maximo ){
				enablePrevious();
				disableNext();
			}else{
				enablePrevious();
				enableNext();
			}
		}
		
		function init() {
			$(container).find('#controls').html('<a class="previous" href="javascript:;"></a><div class="info"></div><a class="next" href="javascript:;"></a>')
			reviewControls();
			createPagination();			
			return false; 
		}
		
		function getNextPage(){
			settings.page++;
			getNews();
			return false;
		}
		
		function getPreviousPage(){
			settings.page--;
			getNews();
			return false;
		}
		
		function getNews(){
			createCookie("xtranetAjaxNews","page="+parseInt(settings.page-1));
			$.get("/website2009/noticias/news.php",{
				page: settings.page-1
			},onNewsLoaded,"xml")
		}
		
		function onNewsLoaded(data){
			reviewControls();
			datos = $(data).find("noticias");
			var bfr = "";
			$(datos).find("noticia").each(function(i,nd){
				bfr += '<div class="noticia">';
				bfr += "<h1>"+$(nd).find("titular").text()+"</h1>";
				bfr += "<h2>"+$(nd).find("fecha").text()+"</h2>";
				bfr += $(nd).find("contenido").text();
				bfr += "</div>"
			});
			createPagination();
			$(container).find("#news").fadeOut("slow",function(){
				$(this).html(bfr).fadeIn("slow");
			})
		}
		
		init();
	};
})(jQuery); // Call and execute the function immediately passing the jQuery object