(function($) {
	$.fn.jkPageLoader = function (options) {
		var opts = $.extend({}, $.fn.jkPageLoader.defaults, options);

		return this.each(function() {
			var container = jQuery(this);
			
			var loading = jQuery("<p align='center'><img border='0' src='images/loading.gif'>");
			/*
			if (opts.showLoading) {
				container.append(loading);
				loading.hide();
			}
			*/

			$(this).bind("loadPage", function(e, dta) {
				_loadPage(dta.url);
			});
			$(this).bind("loadPagePost", function(e, dta) {
				_loadPagePost(dta.url, dta.data);
			});
			
			var _loadPagePost = function(url, data) {
				/*
				if (opts.showLoading) {
					container.html(loading);
				}
				*/

				$.ajax ({
					cache: false,
					url: url,
					type: "POST",
					dataType: "html",
					data: data,
					success: function (data, textStatus) {
						container.html(data);
						if (opts.anim) {
							container.show(opts.animSpeed);
						}
						if (opts.callBack != undefined) {
							eval(opts.callBack);
						}
					},
					error: function(XMLHttpStatus, textStatus, errorThrown) {
						container.html("<p style='text-align: center; color: red;'>Nem tudom betölteni a kért oldalt!</p>");
					}
				});
				
			}

			var _loadPage = function(url) {
				if (opts.showLoading) {
					//loading.show();
					container.html(loading);
				}
				/*
				if (opts.anim) {
					container.hide(opts.animSpeed);
				}
				*/
				$.ajax ({
					cache: false,
					url: url,
					dataType: "html",
					success: function(data, textStatus) {
						//alert("success: " + data);
						/*
						if (opts.showLoading) {
							loading.hide();
						}
						*/
						container.html(data);
						if (opts.anim) {
							container.show(opts.animSpeed);
						}
						if (opts.callBack != undefined) {
							eval(opts.callBack);
						}
					},
					error: function(XMLHttpStatus, textStatus, errorThrown) {
						container.html("<p style='text-align: center; color: red;'>Nem tudom betölteni a kért oldalt!</p>");
					}
				});
			};

			if (opts.initLoad) {
				//alert("initload: " + opts.initLoad);
				_loadPage(opts.initLoad);

			}
		});
	};
	$.fn.jkPageLoader.defaults = {
		initLoad: "",
		anim: true,
		animSpeed: "fast",
		callBack: undefined,
		showLoading: true
	};
})(jQuery);

