
var amiddio;

if (!amiddio) {
	amiddio = {};
}
else if (typeof amiddio != "object") {
	throw new Error("amiddio ought to be a object");
}

amiddio.Common = {};


/* =========================================================== */
/**
 * Simple Modal lightbox
 * 
 * url - URL for AJAX [String:'']
 * param - Object with some settings parameters
 * param.opacity - The opacity value for the overlay div, from 0 - 100 [Number:80]
 * param.width - The width for the container [String:'500px']
 * param.height - The height for the container [String:'500px']
 * param.backgroundColor - The background color for the overlay div [String:'black']
 * param.overlayClose - Allow click on overlay to close the dialog? [Boolean:false]
 * param.preloaderSrc - The Path to preloader image [String:'http://...']
 * 
 **/
amiddio.Common.simpleModalOpen = function(url, param) {
	if (url) {
		var popup;
		if (!param) param = {};
		popup = $('<div id="simpleModalPopup"></div>').css({
			width: '100%', height: '100%', 	position: 'relative'
		});
		popup.modalClose = function(message) {
			popup.empty();
			if (message) {
				alert(message);
			}
			$.modal.close();
		}
		popup.modal({
			opacity: param.opacity || 80,
			top: 0, left: 0,
			autoResize: false,
			autoPosition: true,
			overlayClose: param.overlayClose || false,
			overlayCss: { 
				backgroundColor: param.backgroundColor || 'black'
			},
			containerCss: {
				top: 0, left: 0, 
				width: param.width || '100%', 
				height: param.height || '100%'
			},
			onOpen: function(dialog) {
				dialog.overlay.show();
				dialog.container.show();
				dialog.data.show();
				if (param.preloaderSrc) {
					imageloader = new Image();
					imageloader.src = param.preloaderSrc;
					preloader = $(imageloader);
					popup.append(preloader);
					preloader.css({
						top: '50%', left: '50%',
						marginLeft: (-Math.floor(preloader.width()  / 2)) + 'px',
						marginTop:  (-Math.floor(preloader.height() / 2)) + 'px',
						position: 'absolute'
					});
				}
				try {
					$.ajax({
						url: url,
						type: "POST",
						dataType: 'html',
						success: function(data, textStatus, XMLHttpRequest) {
							if (XMLHttpRequest.status == 200) {
								popup.html(data);
								popup.find('#closePopup').click(function() {
									popup.modalClose();
									return false;
								});
							} 
							else {
								popup.modalClose(XMLHttpRequest.status ? XMLHttpRequest.statusText : 'Permision denied');
							}
						},
						error: function(XMLHttpRequest, textStatus, errorThrown) {
							popup.modalClose(XMLHttpRequest.statusText);
						}
					});
				} 
				catch (e) {
					popup.modalClose(e.message);
				}
			},
			onClose: function(dialog) {
				popup.modalClose();
			}
		});
	}
}
