// Modal Dialog Box
// copyright 8th July 2006 by Stephen Chapman
// http://javascript.about.com/
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration

// Object written by: Wittaya Piyawannarat
// Requirement: prototype.js

var ModalDBox = {
	ol_id:		"ol",
	mbox_id:	"mbox",
	mbm_id:		"mbm",
	box_id:		"box",
	box_w:		200,
	box_h:		0,
	idn:		"",
	is_init:	false,
	yoffset:	150,

	rand: function() {
		var n = Math.floor(Math.random() * 99999);
		return n;
	},

	pageWidth: function() {
		if( Prototype.Browser.IE )
			return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
		else
			return document.viewport.getWidth();//$(document.body).clientWidth;
	},

	pageHeight: function() {
		if( Prototype.Browser.IE )
			return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
		else
			return document.viewport.getHeight();//$(document.body).clientHeight;
	},

	posLeft: function() {
		if( Prototype.Browser.IE )
			return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;
		else
			return document.viewport.getScrollOffsets().left;
	},

	posTop: function () {
		if( Prototype.Browser.IE )
			return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
		else
			return document.viewport.getScrollOffsets().top;
	},

	inf: function(h){
		//tag=document.getElementsByTagName('select');
		//for(i=tag.length-1;	i>=0; i--) tag[i].style.visibility=h;
		tag=document.getElementsByTagName('iframe');
		for(i=tag.length-1;	i>=0; i--) tag[i].style.visibility=h;
		tag=document.getElementsByTagName('object');
		for(i=tag.length-1; i>=0; i--) tag[i].style.visibility=h;
		tag=document.getElementsByTagName('embed');
		for(i=tag.length-1; i>=0; i--) tag[i].style.visibility=h;
	},

	sm: function(){
		$(this.mbm_id).update( $(this.box_id).innerHTML );
		$(this.ol_id).setStyle({
			top:		this.posTop()+'px',
			left:		this.posLeft()+'px',
			width:		this.pageWidth()+'px',
			height:		this.pageHeight()+'px',
			display:	'block'
		});

		//if(this.box_h < $(this.mbox_id).getHeight())
		//	this.box_h = $(this.mbox_id).getHeight();

		//var tp=this.posTop()+((this.pageHeight()-this.box_h)/2)-12;
		var tp=this.posTop()+this.yoffset;
		var lt=this.posLeft()+((this.pageWidth()-this.box_w)/2)-12;
		this.inf('hidden');
		$(this.mbox_id).setStyle({
			top:		(tp<0?0:tp)+'px',
			left:		(lt<0?0:lt)+'px',
			width:		this.box_w+'px',
			/*height:		this.box_h+'px',*/
			display:	'block'
		});
		if(this.box_h>0) {
			$(this.mbox_id).setStyle({
				height:		this.box_h+'px'
			});
		}
		
		if(typeof this.onCreate == 'function')
			this.onCreate();

		//document.onkeypress = ModalDBox.kp

		return false;
	},

	hm: function (){
		$(this.ol_id, this.mbox_id).invoke('hide');
		this.inf('visible');
		document.onkeypress=''

		if( typeof this.onComplete == 'function' )
			this.onComplete();

		this.is_init = false;
	},

	init: function(box_id, styles) {

		this.onConfirm = function() { this.hm(); }
		this.onCreate = function() { }
		this.onComplete = function() { }
		this.onCancel = function() { this.hm(); }
		this.onOK = function() { this.hm(); }
		
		var box_w = 250;
		var box_h = 0;
		if( styles !== undefined ) {
			if(styles.width)		box_w = styles.width || 250
			if(styles.height)		box_h = styles.height || 50
			if(styles.onConfirm)	this.onConfirm = styles.onConfirm
			if(styles.onCreate)		this.onCreate = styles.onCreate
			if(styles.onComplete)	this.onComplete = styles.onComplete
			if(styles.onOK)			this.onOK = styles.onOK
			if(styles.onCancel)		this.onCancel = styles.onCancel
		}
	
		this.box_id	= box_id;
		this.box_w	= box_w;
		this.box_h	= box_h;

		var obody=document.getElementsByTagName('body')[0];
		var frag=document.createDocumentFragment();
		var obol=document.createElement('div');

		//var idn = this.rand()
		//this.idn = idn;
		//this.ol_id = 'ol'+idn;
		//this.mbox_id = 'mbox'+idn;
		//this.mbm_id = 'mbm'+idn;

		obol.setAttribute('id',this.ol_id);
		//obol.setAttribute('class','ol');
		$(obol).setStyle({
			display:	'none',
			position:	'absolute',
			top:		0,
			left:		0,
			width:		'100%',
			zIndex:		998
		});
		frag.appendChild(obol);
		var obbx=document.createElement('div');
		obbx.setAttribute('id',this.mbox_id);
		//obbx.setAttribute('class','mbox');
		$(obbx).setStyle({
			display:	'none',
			position:	'absolute',
			zIndex:		999
		});
		var obl=document.createElement('span');
		obbx.appendChild(obl);
		var obbxd=document.createElement('div');
		obbxd.setAttribute('id',this.mbm_id);
		//obbxd.setAttribute('class','mbm');
		obl.appendChild(obbxd);
		frag.insertBefore(obbx,obol.nextSibling);
		obody.insertBefore(frag,obody.firstChild);
		
		this.is_init = true;

		window.onscroll = ModalDBox.scrollFix
		
		window.onresize = ModalDBox.sizeFix
	},

	scrollFix: function(){
		$(ModalDBox.ol_id).setStyle({
			top:	ModalDBox.posTop()+'px',
			left:	ModalDBox.posLeft()+'px'
		});
	},

	sizeFix: function(){
		$(ModalDBox.ol_id).setStyle({
			height:	ModalDBox.pageHeight()+'px',
			width:	ModalDBox.pageWidth()+'px'
		});
	},

	kp: function(e){
		ky=e?e.which:event.keyCode;
		window.status=ky
		if(ky==13||ky==0) ModalDBox.hm();//Enter or ESC key
		if(ky==88||ky==120) ModalDBox.hm();
			return false
	},

	update: function ( contents ) {
		$(this.box_id).update( contents );
	},

	onCreate: function() { },

	onConfirm: function() { this.hm(); },
	
	onCancel: function() { this.hm(); },

	onOK: function() { this.hm(); },

	emptyFunction: function() { }
};
/*
//window.onload = this.init;
MB_ShowModalDialogBox = function ( msg, styles, btns ) {
	if( !ModalDBox.is_init )
		ModalDBox.init('box', styles);

	var confirmText = "Confirm";
	var cancelText = "Cancel";
	if( typeof btns != 'undefined' ) {
		confirmText = btns.confirm || "Confirm";
		cancelText = btns.cancel || "Cancel";
	}
	var contents = '<p>'+msg+'</p>';
	contents += '<div align="center" style="padding:10px;">';
	contents += '<button onclick="ModalDBox.onConfirm()">'+confirmText+'</button>\n';
	contents += '<button onclick="ModalDBox.onCancel();">'+cancelText+'</button>\n';
	contents += '</div>';
	
	ModalDBox.update( contents );

	ModalDBox.sm();
}

MB_ShowCenterMessage = function ( msg, styles ) {
	if( !ModalDBox.is_init )
		ModalDBox.init('box', styles);

	var contents = '';
	contents += '<div style="float:right;position:absolute;right:0;top:0;magin:0px;padding:2px;"><span class=rlink onclick="ModalDBox.onOK();">';
	contents += '<img src="'+cfg.urlImages+'/close.gif" border=0 width=10 height=10 alt="[X]">';
	contents += '</span></div>';
	contents += '<p>'+msg+'</p>';
	
	ModalDBox.update( contents );

	ModalDBox.sm();
}*/

mboxClose = function() {
	ModalDBox.hm();
}

//Easy Dialog Box ////////////////////////////////////////////////////////
mboxAlert = function (msg, styles, btns ) {

	if( !ModalDBox.is_init )
		ModalDBox.init('box', styles);

	var okText = "OK";
	if( typeof btns != 'undefined' ) {
		okText = btns.ok || "OK";
	}
	var contents = '<p>'+msg+'</p>';
	contents += '<div align="center" style="margin:5px 0px 0px 2px;text-align:right;">';
	contents += '<button onclick="ModalDBox.onOK();">'+okText+'</button></div>';
	
	ModalDBox.update( contents );

	ModalDBox.sm();
}

mboxConfirm = function ( msg, styles, btns ) {
	
	if( !ModalDBox.is_init )
		ModalDBox.init('box', styles);

	var confirmText = "Confirm";
	var cancelText = "Cancel";
	if( typeof btns != 'undefined' ) {
		confirmText = btns.confirm || "Confirm";
		cancelText = btns.cancel || "Cancel";
	}
	var contents = '<p>'+msg+'</p>';
	contents += '<div align="center" style="margin:5px 0px 0px 2px;text-align:right;">';
	contents += '<button onclick="ModalDBox.onConfirm()">'+confirmText+'</button>\n';
	contents += '<button onclick="ModalDBox.onCancel();">'+cancelText+'</button>\n';
	contents += '</div>';
	
	ModalDBox.update( contents );

	ModalDBox.sm();
}

