ModalMessage = function() {
	var htmlOfModalMessage;					// html of modal message
	
	var divs_transparentDiv;				// Transparent div covering page content
	var divs_content;						// Modal message div.
	var width;								// Width of message box
	var height;								// Height of message box
	
	var cssClassOfMessageBox;				// Alternative css class of message box - in case you want a different appearance on one of them
	var shadowDivVisible;					// Shadow div visible ? 
	var shadowOffset; 						// X and Y offset of shadow(pixels from content box)
	
	this.htmlOfModalMessage = '';			// Default message is blank
	this.height = 250;						// Default height of modal message
	this.width = 250;						// Default width of modal message
	this.cssClassOfMessageBox = false;		// Default alternative css class for the message box
	this.shadowDivVisible = true;			// Shadow div is visible by default
	this.shadowOffset = 5;					// Default shadow offset.
}

ModalMessage.prototype = {
	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';
		this.__resizeDivs();
		
			
		
		
		/* Call the __resizeDivs method twice in case the css file has changed. The first execution of this method may not catch these changes */
		window.refToThisModalBoxObj = this;		
		//setTimeout('window.refToThisModalBoxObj.__resizeDivs()',150);
		
		this.__insertContent();	// Calling method which inserts content into the message div.
	}
	,
	setShadowDivVisible : function(visible) {
		this.shadowDivVisible = visible;
	}
	,
	close : function() {
		document.documentElement.style.overflow = '';
		//this.divs_transparentDiv.style.display='none';
		//this.divs_content.style.display='none';
		//this.divs_shadow.style.display='none';
		
		this.divs_shadow.parentNode.removeChild(this.divs_shadow);
		this.divs_content.parentNode.removeChild(this.divs_content);
	}
	,
	__createDivs : function() {
		/*this.divs_transparentDiv = document.createElement('DIV');
		this.divs_transparentDiv.className='modalDialog_transparentDivs';
		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';
		document.body.appendChild(this.divs_content);
		this.divs_shadow = document.createElement('DIV');
		this.divs_shadow.className = 'modalDialog_contentDiv_shadow';
		document.body.appendChild(this.divs_shadow);

	}
	,
    __resizeDivs : function() {
		document.documentElement.style.overflow = 'hidden';
    	window.scrollTo(0,0);
    	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; 
		}
		
      	this.divs_content.style.width = this.width + 'px';
    	this.divs_content.style.height= this.height + '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)) + 'px';
    	
 	
    	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.height = tmpHeight + 'px';
    	this.divs_shadow.style.width = tmpWidth + 'px';
    	
    	
    	if(!this.shadowDivVisible)this.divs_shadow.style.display='none';
    }	
	,
    __insertContent : function() {
		this.divs_content.innerHTML = this.htmlOfModalMessage;	
    }		
}
