
function alertPopup(headerAllias, messageAllias, confirmAllias, cancelAllias, callbackTrue, callbackFalse) {

	this.headerText = phrases[headerAllias];
	this.messageText = phrases[messageAllias]; 
	this.confirmText = phrases[confirmAllias];
	this.cancelText = phrases[cancelAllias];
	
	this.callbackTrue = callbackTrue;

	if (!callbackFalse || (typeof callbackFalse) != 'function') {
	
		callbackFalse = function() { 
			this.hide();
		}
	}
	
	this.callbackFalse = callbackFalse;
	
	this.init();
}

alertPopup.prototype.init = function() { 
	
	this.whiteLayer = $('#' + whiteLayerId);
	this.container = $('#' + alertContainerId);
	
	this.countDownContainerId = whiteLayerId + '-count-down';
	this.countDownContainer = '';
}

alertPopup.prototype.hide = function() {
	
	this.hideBox();
	this.hideBackground();
}

alertPopup.prototype.hideBox = function() {

	this.container.addClass('hidden');
	this.container.html('');
}

alertPopup.prototype.hideBackground = function() {

	this.whiteLayer.addClass('hidden');
}

alertPopup.prototype.appendConfirmButton = function() { 
	
	var Owner = this;
	
	return $('<div></div>')
		.addClass('btn-red')
		.append(
			$('<a></a>')
				.attr('href', '#')
				.append(
					$('<span></span>')
						.text(this.confirmText)
				)
				.click(function(event) {
					
					event.preventDefault()
					Owner.callbackTrue()
				})
		)
}

alertPopup.prototype.appendDeclineButton = function() {
	
	var Owner = this;
	
	return 	$('<div></div>')
		.addClass('btn-blue')
		.append(
			$('<a></a>')
				.attr('href', '#')
				.append(
					$('<span></span>')
						.text(this.cancelText)
				)
				.click(function(event) {
					
					event.preventDefault()
					Owner.callbackFalse()
				})
		)
}

alertPopup.prototype.colorize = function(cssClass) {
	
	$('div.wrapper-popup', this.container).addClass('wrapper-popup-' + cssClass);
	$('div.wrapper-popup div.header', this.container).addClass('header-' + cssClass);
}	

alertPopup.prototype.appendDeclineIcon = function() { 

	var Owner = this;
	
	return $('<a></a>')
		.attr('href', '#')
		.addClass('adm_close')
		.text('X')
		.click(function(event) {
			
			event.preventDefault()
			Owner.callbackFalse()
		})
}

alertPopup.prototype.show = function(cssClass, hideConfirmButton, hideDeclineButton, showDeclineIcon) {
	
	this.whiteLayer.removeClass('hidden'); 
	
	this.countDownContainer = $('<span></span>').attr('id', this.countDownContainerId);
	
	this.container.append(
		
		$('<div></div>')
			.addClass('wrapper-popup')
			.append(
				$('<div></div>')
					.addClass('header')
						.append(
							$('<div></div>')
								.addClass('title')
								.append(
									$('<b></b>')
										.text(this.headerText)
								)
						)
						.append(showDeclineIcon ? this.appendDeclineIcon() : '')
			)
			.append(
				$('<div></div>')
					.addClass('content-popup')
					.append(
						$('<p></p>')
							.addClass('ac')
							.text(this.messageText + ' ')
							.append(
								this.countDownContainer
							)
					)
			)
			.append(
				$('<div></div>')
					.addClass('btn-ac')
					.append(hideConfirmButton ? '' : this.appendConfirmButton())
					.append(hideDeclineButton ? '' : this.appendDeclineButton())
			)
		)
		
		cssClass = cssClass ? cssClass : 'blue';
		this.colorize(cssClass);
	
		this.container.removeClass('hidden');
}

alertPopup.prototype.dialog = function(cssClass) {
	
	var Owner = this;
	
	this.whiteLayer.removeClass('hidden'); 
	this.countDownContainer = $('<span></span>').attr('id', this.countDownContainerId);
	
	this.container.append(
		
		$('<div></div>')
			.addClass('wrapper-popup')
			.append(
				$('<div></div>')
					.addClass('header')
					.append(
						$('<div></div>')
							.addClass('title')
							.append(
								$('<b></b>')
									.text(this.headerText)
							)
					)
			)
			.append(
				$('<div></div>')
					.addClass('content-popup')
					.append(
						$('<p></p>')
							.addClass('ac')
							.text(this.messageText + ' ')
							.append(
								this.countDownContainer
							)
					)
			)
			.append(
				$('<div></div>')
					.addClass('btn-ac')
					.append(
						$('<div></div>')
							.addClass('btn-blue')
							.append(
								$('<a></a>')
									.attr('href', '#')
									.append(
										$('<span></span>')
											.text(this.cancelText)
									)
									.click(function(event) {
										
										event.preventDefault()
										Owner.callbackFalse()
									})
							)
					)
			)
		)

		cssClass = cssClass ? cssClass : 'blue';
		this.colorize(cssClass);
		
		this.container.removeClass('hidden');
}
