if(typeof(jslib.messagebox) == 'undefined'){
	jslib.namespace("jslib.messagebox");

	jslib.messagebox.__overdiv = null;
	jslib.messagebox.__iframe = null;
	jslib.messagebox.__div = null;
	jslib.messagebox.__title = null;
	jslib.messagebox.__message = null;
	jslib.messagebox.__buttonDiv = null;
	jslib.messagebox.__okButton = null;
	jslib.messagebox.__cancelButton = null;
	jslib.messagebox.__noButton = null;

	jslib.messagebox.okText = '';
	jslib.messagebox.cancelText = '';
	jslib.messagebox.noText = '';

	jslib.messagebox.__init = function(){
		jslib.messagebox.__iframe = document.createElement('iframe');
		jslib.messagebox.__iframe.style.display = 'none';
		jslib.messagebox.__iframe.style.position = 'absolute';
		jslib.messagebox.__iframe.style.zIndex = 99;
		jslib.messagebox.__iframe.style.top = '0px';
		jslib.messagebox.__iframe.style.left = '0px';
		jslib.messagebox.__iframe.style.width = '100%';
		jslib.messagebox.__iframe.style.height = '100%';
		jslib.messagebox.__iframe.style.backgroundColor = '#ffffff';
		jslib.messagebox.__iframe.style.filter = 'alpha(opacity=0)';
		jslib.messagebox.__iframe.style.opacity = 0;

		jslib.messagebox.__div = document.createElement('div');
		jslib.messagebox.__div.style.display = 'none';
		jslib.messagebox.__div.id = "jslib_messagebox";
		jslib.messagebox.__div.style.zIndex = "200";
		jslib.messagebox.__div.style.position = "absolute";

		jslib.messagebox.__title = document.createElement('h2');
		jslib.messagebox.__title.id = "jslib_messagebox_title";
		jslib.messagebox.__title.className = "jslib_messagebox_title";
		jslib.messagebox.__div.appendChild(jslib.messagebox.__title);

		jslib.messagebox.__message = document.createElement('h3');
		jslib.messagebox.__message.id = "jslib_messagebox_message";
		jslib.messagebox.__message.className = "jslib_messagebox_message";
		jslib.messagebox.__div.appendChild(jslib.messagebox.__message);

		jslib.messagebox.__buttonDiv = document.createElement('div');
		jslib.messagebox.__buttonDiv.id = "jslib_messagebox_button";

		jslib.messagebox.__cancelButton = document.createElement('div');
		jslib.messagebox.__cancelButton.id = "jslib_messagebox_cancel";
		jslib.messagebox.__cancelButton.innerHTML = jslib.messagebox.cancelText;
		jslib.messagebox.__buttonDiv.appendChild(jslib.messagebox.__cancelButton);

		jslib.messagebox.__noButton = document.createElement('div');
		jslib.messagebox.__noButton.id = "jslib_messagebox_no";
		jslib.messagebox.__noButton.innerHTML = jslib.messagebox.noText;
		jslib.messagebox.__buttonDiv.appendChild(jslib.messagebox.__noButton);

		jslib.messagebox.__okButton = document.createElement('div');
		jslib.messagebox.__okButton.id = "jslib_messagebox_ok";
		jslib.messagebox.__okButton.innerHTML = jslib.messagebox.okText;
		jslib.messagebox.__buttonDiv.appendChild(jslib.messagebox.__okButton);

		jslib.messagebox.__div.appendChild(jslib.messagebox.__buttonDiv);

		jslib.messagebox.__overdiv = document.createElement('div');
		jslib.messagebox.__overdiv.style.display = 'none';
		jslib.messagebox.__overdiv.style.position = 'absolute';
		jslib.messagebox.__overdiv.style.zIndex = 100;
		jslib.messagebox.__overdiv.style.top = '0px';
		jslib.messagebox.__overdiv.style.left = '0px';
		jslib.messagebox.__overdiv.style.width = '100%';
		jslib.messagebox.__overdiv.style.height = '100%';
		jslib.messagebox.__overdiv.style.backgroundColor = '#000000';
		jslib.messagebox.__overdiv.style.filter = 'alpha(opacity=75)';
		jslib.messagebox.__overdiv.style.opacity = 0.75;

		document.body.appendChild(jslib.messagebox.__iframe);
		document.body.appendChild(jslib.messagebox.__overdiv);
		document.body.appendChild(jslib.messagebox.__div);

		jslib.event.attach(window,"onscroll",jslib.messagebox.__setposition);
	}

	jslib.messagebox.__position = function(){
		var p ={};
			
		if(window.innerWidth){
			p.width = window.innerWidth - 18;
		}else if(document.documentElement && document.documentElement.clientWidth){
			p.width = document.documentElement.clientWidth;
		}else{
			p.width = document.body.clientWidth;
		}

		if(window.innerHeight){
			p.height = window.innerHeight - 18;
		}else if(document.documentElement && document.documentElement.clientHeight){
			p.height = document.documentElement.clientHeight;
		}else{
			p.height = document.body.clientHeight;
		}

		if(typeof(window.pageXOffset) == "number"){
			p.left = window.pageXOffset;
		}else if(document.documentElement){
			p.left = document.documentElement.scrollLeft;
		}else if(document.body){
			p.left = document.body.scrollLeft;
		}else if(window.scrollX){
			p.left = window.scrollX;
		}

		if(typeof(window.pageYOffset) == "number"){
			p.top = window.pageYOffset;
		}else if(document.documentElement){
			p.top = document.documentElement.scrollTop;
		}else if(document.body){
			p.top = document.body.scrollTop;
		}else if(window.scrollY){
			p.top = window.scrollY;
		}
		return p;
	}

	jslib.messagebox.__showoverlay = function(){
		var height;
		if (window.innerHeight && window.scrollMaxY) {	
			height = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){
			height = document.body.scrollHeight;
		} else {
			height = document.body.offsetHeight;
		}
		jslib.messagebox.__iframe.style.height = height + 'px';
		jslib.messagebox.__iframe.style.display = '';
		jslib.messagebox.__overdiv.style.height = height + 'px';
		jslib.messagebox.__overdiv.style.display = '';
		
	}

	jslib.messagebox.hidden = function(){
		if(jslib.messagebox.__div){
			jslib.messagebox.__div.style.display = 'none';
			jslib.messagebox.__overdiv.style.display = 'none';
			jslib.messagebox.__iframe.style.display = 'none';
		}
	}

	jslib.messagebox.__setposition = function(){
		if(jslib.messagebox.__div.style.display != 'none'){
			var p = jslib.messagebox.__position();
			var w = jslib.messagebox.__div.offsetWidth;
			var h = jslib.messagebox.__div.offsetHeight;
			jslib.messagebox.__div.style.left = ((p.width - w) / 2) + 'px';
			jslib.messagebox.__div.style.top = (p.top + (p.height - h) / 2) + 'px';
		}
	}

	jslib.messagebox.show = function(width, height, title, message, okhandler,  nohandler, cancelhandler){
		if(jslib.messagebox.__div == null){
			jslib.messagebox.__init();
		}
		if(title){
			jslib.messagebox.__title.style.display = '';
			jslib.messagebox.__title.innerHTML = title;
		}else{
			jslib.messagebox.__title.style.display = 'none';
		}
		if(message){
			jslib.messagebox.__message.style.display = '';
			jslib.messagebox.__message.innerHTML = message;
		}else{
			jslib.messagebox.__message.style.display = 'none';
		}
		if(okhandler){
			jslib.messagebox.__okButton.style.display = '';
			jslib.messagebox.__okButton.onclick = okhandler;
		}else{
			jslib.messagebox.__okButton.style.display = 'none';
		}
		if(nohandler){
			jslib.messagebox.__noButton.style.display = '';
			jslib.messagebox.__noButton.onclick = nohandler;
		}else{
			jslib.messagebox.__noButton.style.display = 'none';
		}
		if(cancelhandler){
			jslib.messagebox.__cancelButton.style.display = '';
			jslib.messagebox.__cancelButton.onclick = cancelhandler;
		}else{
			jslib.messagebox.__cancelButton.style.display = 'none';
		}
		//position
		var p = jslib.messagebox.__position();
		if(width > 0)jslib.messagebox.__div.style.width = width + 'px';
		if(height > 0)jslib.messagebox.__div.style.height = height + 'px';
		
		var w = width || jslib.messagebox.__div.offsetWidth;
		var h = height || jslib.messagebox.__div.offsetHeight;

		jslib.messagebox.__div.style.left = ((p.width - w) / 2) + 'px';
		jslib.messagebox.__div.style.top = (p.top + (p.height - h) / 2) + 'px';
		jslib.messagebox.__div.style.display = 'block';
		jslib.messagebox.__showoverlay();
	}
}

function messagebox(title,message,width,height){
	width = width || 600;
	height = height || 400;
	jslib.messagebox.show(width,height,title,message,function(){
		jslib.messagebox.hidden();
	});
}
