function getLayoutOffsets(){
	var de = document.documentElement;
	var screenWidth = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var screenHeight = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	return [screenWidth,screenHeight];
}

function getScrollOffsets() {
        var scrOfX=0, scrOfY=0;
        if(typeof(window.pageYOffset ) == 'number' ){
                scrOfY = window.pageYOffset;
                scrOfX = window.pageXOffset;
        }else if(document.body && (document.body.scrollLeft || document.body.scrollTop )){
                scrOfY = document.body.scrollTop;
                scrOfX = document.body.scrollLeft;
        }else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop )){
                scrOfY = document.documentElement.scrollTop;
                scrOfX = document.documentElement.scrollLeft;
        }
        return [scrOfX, scrOfY];
}

function centerOnScreen(obj){
	var scrollingWidth = getScrollOffsets()[0];
       var scrollingHeight = getScrollOffsets()[1];
       var screenOffsetWidth = getLayoutOffsets()[0];
	var screenOffsetHeight = getLayoutOffsets()[1];
	if(obj.style.position!='absolute') obj.style.position = 'absolute';
	obj.style.left = (screenOffsetWidth/2)-(obj.getWidth()/2)+(scrollingWidth)+'px';
	obj.style.top = (screenOffsetHeight/2)-(obj.getHeight()/2)+(scrollingHeight)+'px';
}

function initMsgBox(){
	var msgBox = document.createElement('div');
	msgBox.id = 'msgBox';
	msgBox.style.display = 'none';
	
	var header = document.createElement('div');
	header.className = 'header';
	header.id = 'msgBoxHandle';
	
	var btnClose = document.createElement('div');
	btnClose.className = 'close';
	btnClose.onmouseover = function(){
		this.style.backgroundPosition = 'bottom left';
	}
	btnClose.onmouseout = function(){
		this.style.backgroundPosition = 'top left';
	}
	btnClose.onclick = function(){
		closeMsgBox();
	}
	
	var content = document.createElement('div');
	content.id = 'msgBoxContent';
	
	var zoneBtn = document.createElement('div');
	zoneBtn.className = 'msgBoxZoneBtn';
	
	var btn = document.createElement('input');
	btn.type = 'button';
	btn.value = '';
	btn.onclick = function(){
		closeMsgBox();
	}
	
	var footer = document.createElement('div');
	footer.className = 'footer';
	
	var pN = $A(document.getElementsByTagName('body'))[0];
	
	msgBox.appendChild(header);
	header.appendChild(btnClose);
	msgBox.appendChild(content);
	zoneBtn.appendChild(btn);
	msgBox.appendChild(zoneBtn);
	msgBox.appendChild(footer);
	pN.appendChild(msgBox);
	
	new Draggable('msgBox', {revert:false, starteffect:false, endeffect:false, handle:'msgBoxHandle'});
	
	Event.observe(document, 'keypress', handleKeyPress);
	
	window.alert = function(msg){
		showMsgBox(msg);
	}
}

function showMsgBox(content){
	var lstInputs = $A(document.getElementsByTagName('INPUT'));
	lstInputs.each(function(input){
		if(input.focus){
			input.blur();
			throw $break;
		}
	});
	$('msgBoxContent').innerHTML = content;
	centerOnScreen($('msgBox'));
	new Effect.Appear('msgBox',{duration:0.2});
}

function closeMsgBox(){
	new Effect.Fade('msgBox',{duration:0.2});
}

function handleKeyPress(event){
	if((event.keyCode==27 || event.keyCode==13) && $('msgBox').visible()){
		closeMsgBox();
	}
}
