DHTML_modalMessage = function() {
	var url;
	var htmlOfModalMessage;
	var divs_transparentDiv;
	var divs_content;
	var iframe;
	var layoutCss;
	var width;
	var height;
	var existingBodyOverFlowStyle;
	var dynContentObj;
	var cssClassOfMessageBox;
	var shadowDivVisible;
	var shadowOffset;
	var MSIE;
	this.url = '';
	this.htmlOfModalMessage = '';
	this.layoutCss = '';
	this.height = 100;
	this.width = 400;
	this.cssClassOfMessageBox = false;
	this.shadowDivVisible = false;
	this.shadowOffset = 5;
	this.MSIE = false;
	if(navigator.userAgent.indexOf('MSIE')>=0) this.MSIE = true;
}

DHTML_modalMessage.prototype = {
	setSource : function(urlOfSource) {
		this.url = urlOfSource;
	},
	setHtmlContent : function(newHtmlContent) {
		this.htmlOfModalMessage = newHtmlContent;
	},
	setSize : function(width,height) {
		if(width)this.width = width;
		if(height)this.height = height;
	},
	setCssClassMessageBox : function(newCssClass) {
		this.cssClassOfMessageBox = newCssClass;
		if(this.divs_content){
			if(this.cssClassOfMessageBox)
				this.divs_content.className=this.cssClassOfMessageBox;
			else
				this.divs_content.className='modalDialog_contentDiv';
		}
	},
	setShadowOffset : function(newShadowOffset) {
		this.shadowOffset = newShadowOffset
	},
	display : function() {
		if(!this.divs_transparentDiv) {
			this.__createDivs();
		}
		this.divs_transparentDiv.style.display='block';
		this.divs_content.style.display='block';
		this.divs_shadow.style.display='block';
		if(this.MSIE)this.iframe.style.display='block';
		this.__resizeDivs();
		window.refToThisModalBoxObj = this;
		setTimeout('window.refToThisModalBoxObj.__resizeDivs()',150);
		this.__insertContent();
	},
	setShadowDivVisible : function(visible) {
		this.shadowDivVisible = visible;
	},
	close : function() {
		this.divs_transparentDiv.style.display='none';
		this.divs_content.style.display='none';
		this.divs_shadow.style.display='none';
		if(this.MSIE)this.iframe.style.display='none';
	},
	addEvent : function(whichObject,eventType,functionName,suffix) {
	  if(!suffix)suffix = '';
	  if(whichObject.attachEvent){
	    whichObject['e'+eventType+functionName+suffix] = functionName;
	    whichObject[eventType+functionName+suffix] = function(){whichObject['e'+eventType+functionName+suffix]( window.event );}
	    whichObject.attachEvent( 'on'+eventType, whichObject[eventType+functionName+suffix] );
	  } else
	    whichObject.addEventListener(eventType,functionName,false);
	},
	__createDivs : function() {
		this.divs_transparentDiv = document.createElement('DIV');
		this.divs_transparentDiv.className='modalDialog_transparentDivs';
		this.divs_transparentDiv.style.left = '0px';
		this.divs_transparentDiv.style.top = '0px';
		document.body.appendChild(this.divs_transparentDiv);
		this.divs_content = document.createElement('DIV');
		this.divs_content.className = 'modalDialog_contentDiv';
		this.divs_content.id = 'DHTMLSuite_modalBox_contentDiv';
		this.divs_content.style.zIndex = 100000;
		if(this.MSIE) {
			this.iframe = document.createElement('');
			this.iframe.style.zIndex = 90000;
			this.iframe.style.position = 'absolute';
			document.body.appendChild(this.iframe);
		}
		document.body.appendChild(this.divs_content);
		this.divs_shadow = document.createElement('DIV');
		this.divs_shadow.className = 'modalDialog_contentDiv_shadow';
		this.divs_shadow.style.zIndex = 95000;
		document.body.appendChild(this.divs_shadow);
		window.refToModMessage = this;
		this.addEvent(window,'scroll',function(e){ window.refToModMessage.__repositionTransparentDiv() });
		this.addEvent(window,'resize',function(e){ window.refToModMessage.__repositionTransparentDiv() });
	},
	__getBrowserSize : function() {
    var bodyWidth = document.documentElement.clientWidth;
    var bodyHeight = document.documentElement.clientHeight;
		var bodyWidth, bodyHeight;
		if (self.innerHeight) {
		   bodyWidth = self.innerWidth;
		   bodyHeight = self.innerHeight;
		}  else if (document.documentElement && document.documentElement.clientHeight) {
		   bodyWidth = document.documentElement.clientWidth;
		   bodyHeight = document.documentElement.clientHeight;
		} else if (document.body) {
		   bodyWidth = document.body.clientWidth;
		   bodyHeight = document.body.clientHeight;
		}
		return [bodyWidth,bodyHeight];
	},
    __resizeDivs : function() {
    var topOffset = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(this.cssClassOfMessageBox)
			this.divs_content.className=this.cssClassOfMessageBox;
		else
			this.divs_content.className='modalDialog_contentDiv';
    	if(!this.divs_transparentDiv)return;
    	var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
    	var sl = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
    	window.scrollTo(sl,st);
    	setTimeout('window.scrollTo(' + sl + ',' + st + ');',10);
    	this.__repositionTransparentDiv();
		var brSize = this.__getBrowserSize();
		var bodyWidth = brSize[0];
		var bodyHeight = brSize[1];
   	this.divs_content.style.width = this.width + 'px';
   	var tmpWidth = this.divs_content.offsetWidth;
   	var tmpHeight = this.divs_content.offsetHeight;
   	this.divs_content.style.left = Math.ceil((bodyWidth - tmpWidth) / 2) + 'px';;
   	this.divs_content.style.top = (Math.ceil((bodyHeight - tmpHeight) / 2) +  topOffset) + 'px';
 		if(this.MSIE) {
 			this.iframe.style.left = this.divs_content.style.left;
 			this.iframe.style.top = this.divs_content.style.top;
 			this.iframe.style.width = this.divs_content.style.width;
 		}
    this.divs_shadow.style.left = (this.divs_content.style.left.replace('px','')/1 + this.shadowOffset) + 'px';
    this.divs_shadow.style.top = (this.divs_content.style.top.replace('px','')/1 + this.shadowOffset) + 'px';
    this.divs_shadow.style.width = tmpWidth + 'px';
   	if(!this.shadowDivVisible)this.divs_shadow.style.display='none';
  },
  __repositionTransparentDiv : function() {
    this.divs_transparentDiv.style.top = Math.max(document.body.scrollTop,document.documentElement.scrollTop) + 'px';
    this.divs_transparentDiv.style.left = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft) + 'px';
		var brSize = this.__getBrowserSize();
		var bodyWidth = brSize[0];
		var bodyHeight = brSize[1];
    this.divs_transparentDiv.style.width = bodyWidth + 'px';
    this.divs_transparentDiv.style.height = bodyHeight + 'px';
  },
  __insertContent : function() {
		if(this.url) {
			ajax_loadContent('DHTMLSuite_modalBox_contentDiv',this.url);
		} else {
			this.divs_content.innerHTML = this.htmlOfModalMessage;
		}
  }
}