﻿/**
* Author: Doan Truong Son
* Description: create box of error
* Date Create: 17, Apr, 2010
*
*/
var _callback = null;

function errorBox(text, title) {
    // logo currently not use
	if (title == '' || title == undefined) {
		error_box_buildInterface(text, 'Thông báo', 'alert');
	} else {
		error_box_buildInterface(text, title, 'alert');
	}
}

function confirmBox(text, callback, title) {
    _callback = callback;
    if (title == '' || title == undefined) {
        error_box_buildInterface(text, 'Thông báo', 'confirm');
    } else {
        error_box_buildInterface(text, title, 'confirm');
    }
}

function error_box_buildInterface(textVal, title, type) {
    var div_error_box = '<div id="error-box-overlay"></div>' +
					'<div id="error-box" style="width: 500px;">' +
						'<div id="error-box-header">' +
							'<span id="error-box-title">' + title + '</span>' +
						'</div>' +
						'<div id="error-box-content">' + textVal + '</div>' +
						'<div id="error-box-bottom">' +
						'<div id="error-box-close">';
                        if (type == 'alert') {
                            div_error_box += '<a href="javascript:void(0);" onclick="error_box_CloseBox()" class="error-box-confirm">Đóng lại</a>';
                        } else {
                            div_error_box += '<a href="javascript:void(0);" onclick="error_box_CloseBox()" class="error-box-confirm">Không</a>' +
                                        '<a href="javascript:void(0);" onclick="error_box_Confirm()" class="error-box-confirm">Có</a>';
                        }
						div_error_box += '</div></div>' +
					'</div>';
	// clear the old one
	$("#error-box-overlay").remove();
	$("#error-box").remove();
	
	$('body').append(div_error_box);
	// page size
	var arrPageSizes = error_box_getPageSize();
	// black out view
	$('#error-box-overlay').css({
				backgroundColor:	'#000',
				opacity:	0.8,
				position:	'absolute',
				top:	0,
				left:	0,
				'z-index':	1001,
				width:	arrPageSizes[0],
				height:	arrPageSizes[1]
	}).fadeIn();
	// box position
	var arrPageScroll = error_box_getPageScroll();

	// show box in position
	$('#error-box').css({
		position:	'fixed',
		'z-index':	1002,
		top: 150,
		_position: 'absolute',
		left: arrPageScroll[0] + (arrPageSizes[0] / 2) - ($('#error-box').width() / 2)
	}).show();
	$(window).resize(function() {
	    // Get page sizes
	    var arrPageSizes = error_box_getPageSize();
	    // Style overlay and show it
	    $('#error-box-overlay').css({
	        width: arrPageSizes[0],
	        height: arrPageSizes[1]
	    });
	    // Get page scroll
	    var arrPageScroll = error_box_getPageScroll();
	    
	    // Calculate top and left offset for the jquery-lightbox div object and show it
	    $('#error-box').css({
	        top: 150,
	        left: arrPageScroll[0] + (arrPageSizes[0] / 2) - ($('#error-box').width() / 2)
	    });
	});
}

function error_box_CloseBox() {
	$('#error-box').remove();
	$('#error-box-overlay').fadeOut(function() { $('#error-box-overlay').remove(); });
	// Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
	$('embed, object, select').css({ 'visibility' : 'visible' });
}

function error_box_Confirm() {
    if (_callback) {
        error_box_CloseBox();
        _callback(true);
    }
}

// bought from lightbox
function error_box_getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
}

// bought from lightbox
function error_box_getPageScroll() {
	var xScroll, yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}
	arrayPageScroll = new Array(xScroll,yScroll);
	return arrayPageScroll;
}
