var AJAX_NS = 'ajax',

	_ajaxCur,

	_removeAjaxCursor = function() {

		if(_ajaxCur) {

			$(document.body).removeClass(_ajaxCur);

		}

	},

	_destroyAjaxRequest = function() {

		_removeAjaxCursor();

		if(mfp.req) {

			mfp.req.abort();

		}

	};



$.magnificPopup.registerModule(AJAX_NS, {



	options: {

		settings: null,

		cursor: 'mfp-ajax-cur',

		tError: '<a href="%url%">The content</a> could not be loaded.'

	},



	proto: {

		initAjax: function() {

			mfp.types.push(AJAX_NS);

			_ajaxCur = mfp.st.ajax.cursor;



			_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);

			_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);

		},

		getAjax: function(item) {



			if(_ajaxCur) {

				$(document.body).addClass(_ajaxCur);

			}



			mfp.updateStatus('loading');



			var opts = $.extend({

				url: item.src,

				success: function(data, textStatus, jqXHR) {

					var temp = {

						data:data,

						xhr:jqXHR

					};



					_mfpTrigger('ParseAjax', temp);



					mfp.appendContent( $(temp.data), AJAX_NS );



					item.finished = true;



					_removeAjaxCursor();



					mfp._setFocus();



					setTimeout(function() {

						mfp.wrap.addClass(READY_CLASS);

					}, 16);



					mfp.updateStatus('ready');



					_mfpTrigger('AjaxContentAdded');

				},

				error: function() {

					_removeAjaxCursor();

					item.finished = item.loadError = true;

					mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));

				}

			}, mfp.st.ajax.settings);



			mfp.req = $.ajax(opts);



			return '';

		}

	}

});