/**
 * Application - Core Design Ajax Pagebreak plugin
 */

(function($) {
	
	$.cdAjaxPagebreak = {
		
		initiator: function() {
			
			var container = $('body').find('.cdajaxpagebreak_article'); // !!! neccessasry - set container
			
			if (container.length) {
				
				var pagenavbar = container.find('.pagenavbar');
				if (pagenavbar.length) {
					$.cdAjaxPagebreak.initPagenavbar(container, pagenavbar); // init Pagenavbar
				}
				var contenttoc = container.find('.contenttoc');
				if (contenttoc.length) {
					$.cdAjaxPagebreak.initContenttoc(container, contenttoc); // init Pagenavbar
				}
			}
			
		},
		
		initPagenavbar: function(container, pagenavbar) {			
			var links = pagenavbar.find('a');
			links.click( function (event) {
				event.preventDefault();
				$.cdAjaxPagebreak.loadPage(container, $(this).attr('href'));
			});
		},
		
		initContenttoc: function (container, contenttoc) {
			var links = contenttoc.find('a.toclink');
			links.click( function (event) {
				event.preventDefault();
				$.cdAjaxPagebreak.loadPage(container, $(this).attr('href'));
			});
		},
		
		insertLoading: function(element, image) {
			if (image == true) {
				element.append('<div class="cdajaxpagebreak_loading"></div>');
			} else {
				element.append('Loading...');
			}
		},
		
		loadPage: function(container, url) {
			
			var container_html = container.html();
			
			$.ajax({
				type: 'POST',
				dataType: 'html',
				url: url,
				beforeSend: function() {
					container.empty();
					$.cdAjaxPagebreak.insertLoading(container, true);
				},
				error: function() {
					container.html(container_html);
					return false;
				},
				async: true,
				cache: false,
				success: function(msg) {	
					var new_container = $(msg).find('.cdajaxpagebreak_article').html();
					container.empty().append(new_container).html();
				},
				complete: function() {
					$.cdAjaxPagebreak.initiator();
				}
			});
		}
	};
})(jQuery);

// starting the script
jQuery(document).ready(function($){
	$.cdAjaxPagebreak.initiator();
});