var Preload = {
	activePreload: true,
	smallImg: false,
	imgLoadingBig: '<img id="preloadImg" src="template/images/loading.gif" />',
	imgLoadingSmall: 'Small image not exist',

	/**
	 * Switch image loading
	 */
	switchLoadImg: function () {
		return (this.smallImg == true) ? this.imgLoadingSmall : this.imgLoadingBig;
	},
	/**
	 * Create effect loading for one element
	 * param {String} id
	 */
	runOneLoading: function (id) {
		if (document.getElementById(id)) {
			var imgLoading = Preload.switchLoadImg();
			var posElem = $("#" + id).offset();
			var sizeElem = Size.getSizeElement(id);
			var topOff = (sizeElem.h / 2) + posElem.top - 16;
			var leftOff = (sizeElem.w / 2) + posElem.left - 16;

			var div = $('<div>' + imgLoading + '</div>').addClass('loading').attr('id', 'one-loading-' + id);
			div.css({
				top: topOff,
				left: leftOff,
				position: "absolute",
				display: "none"
			});

			$("#" + id).append(div);
			$("#one-loading-" + id).fadeIn(200);
		}
	},
	/**
	 * Destroy effect loading for one element
	 */
	stopOneLoading: function (id) {
		if (document.getElementById(id)) {
			$("#" + id).find("#one-loading-" + id).remove();
		}
	},
	/**
	 * Run effect loading for one element
	 * param {String} id
	 */
	standartOneLoading: function (id) {
		$(document).ready(function () {
			if (Preload.activePreload) {
				if (document.getElementById("one-loading-" + id)) {
					Preload.stopOneLoading(id);
				} else {
					Preload.runOneLoading(id);
				}
			}
		});
	},
	/**
	 * Create loading element of page
	 */
	runLoading: function () {
		var imgLoading = Preload.switchLoadImg();
		var div = $('<div></div>').addClass('loading').attr('id', 'layer-loading');
		var imgDiv = $('<div>' + imgLoading + '</div>').addClass('imagePreload');
		div.append(imgDiv);
		//div.css("height", Size.screenHeight());
		//div.css("width", Size.screenWidth());
		div.appendTo(document.body);

		$("#layer-loading").fadeIn("fast");
		return ;
	},
	/**
	 * Destroy loading element
	 */
	stopLoading: function () {
		$("#layer-loading").remove();

	},
	/**
	 * Run standart preloader
	 */
	standartPreload: function () {
		$(document).ready(function () {
			if (Preload.activePreload) {
				if (document.getElementById("layer-loading")) {
					Preload.stopLoading();
				} else {
					Preload.runLoading();
				}
			}
		});
	},
	/**
	 * Run effect loading for Ajax
	 */
	ajaxRunPreload: function (id) {
		$(document).ready(function () {
			if (Preload.activePreload) {
				$("#" + id).ajaxStart(function () {
					Preload.runLoading();
				});

				$("#" + id).ajaxSuccess(function (evt, request, settings) {
				 	Preload.stopLoading();
				});
			}
		});
	}
}
