DHTML_modalMessage = function()
{
	//My Vars
	var ModalType;
	var ModalType = '';	
	var PostedValues='';
	var AjaxFilename='';
	var AjaxCheckFormData='';
	var ModalStaticContent='';
	var ModalStaticContentTitle='';
	var ModalRedirectCondition='';
	//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://
	var url;								// url of modal message
	var htmlOfModalMessage;					// html of modal message
	
	var divs_transparentDiv;				// Transparent div covering page content
	var divs_content;						// Modal message div.
	var iframe;								// Iframe used in ie
	var layoutCss;							// Name of css file;
	var width;								// Width of message box
	var height;								// Height of message box
	
	var existingBodyOverFlowStyle;			// Existing body overflow css
	var dynContentObj;						// Reference to dynamic content object
	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)
	var MSIE;
		
	this.url = '';							// Default url is blank
	this.htmlOfModalMessage = '';			// Default message is blank
	this.layoutCss = 'modal-message.css';	// Default CSS file
	//this.height = 312;						// Default height of modal message
	this.width = '';						// Default width of modal message
	this.height = '';						// Default height of modal message
	//this.height = '';						// Default height of modal message
	//this.width = '';						// 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 = 10;					// Default shadow offset.
	this.MSIE = false;
	this.ModalRedirectCondition='';
	if(navigator.userAgent.indexOf('MSIE')>=0) this.MSIE = true;
	

}

DHTML_modalMessage.prototype = {
	setSource : function(ModalType)	{
		this.ModalType=ModalType;
	}
	,
	setRedirectPath : function(ModalStaticRedirectPath)	{
		this.ModalRedirectCondition=ModalStaticRedirectPath;
	}
	,
	
	setModalStaticContent: function(ModalStaticContent_1) {
		
		this.ModalStaticContent=ModalStaticContent_1;
		
	}
	,
	
	setModalStaticContentTitle: function(ModalStaticContentTitle) {
		
		this.ModalStaticContentTitle=ModalStaticContentTitle;
		
	}
	,
	
	setAjaxFileNames : function(AjaxFilename,AjaxCheckFormData)	{ 
		this.AjaxFilename=AjaxFilename; 
		this.AjaxCheckFormData=AjaxCheckFormData;
			
	}	
	,
	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();
		}	
		
		// Redisplaying divs
		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();
		
		/* 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 = '';	// Setting the CSS overflow attribute of the <html> tag back to default.
		if(document.getElementById('Table_Whole_Container')) 
			document.getElementById('Table_Whole_Container').innerHTMl='';
		/* Hiding divs */		
		if(document.getElementById("period")) {
			document.getElementById("period").style.visibility = "visible";
		}
		if(document.getElementById("barchart")) {
			document.getElementById("barchart").style.visibility = "visible";
		}
		if(document.getElementById("piechart")) {
			document.getElementById("piechart").style.visibility = "visible";
		}
		if(document.getElementById("scrollflash")) {
			document.getElementById("scrollflash").style.visibility = "visible";
		}
		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';
	}	
	,
	 setPostValues : function(PostValues) {
		if(PostValues!='')
			this.PostedValues=PostValues;
	}	
	,
	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() {
		// Creating transparent div
		this.divs_transparentDiv = document.createElement('DIV');
		this.divs_transparentDiv.className='modalDialog_transparentDivs';
		this.divs_transparentDiv.style.left = '0px';
		this.divs_transparentDiv.style.top = '2px';
		
		document.body.appendChild(this.divs_transparentDiv);
		// Creating content div
		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('<IFRAME src="about:blank" frameborder=0>');
			this.iframe.style.zIndex = 90000;
			this.iframe.style.position = 'absolute';
			document.body.appendChild(this.iframe);	
		}
			
		document.body.appendChild(this.divs_content);
		// Creating shadow div
		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) { // all except Explorer 
		 
		   bodyWidth = self.innerWidth; 
		   bodyHeight = self.innerHeight; 
		}  else if (document.documentElement && document.documentElement.clientHeight) {
		   // Explorer 6 Strict Mode 		 
		   bodyWidth = document.documentElement.clientWidth; 
		   bodyHeight = document.documentElement.clientHeight; 
		} else if (document.body) {// other Explorers 		 
		   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;
    	
    	// Preserve scroll position
    	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];
    	
		
		if(this.width &&  this.height) {
      		this.divs_content.style.width = this.width + 'px';
    		this.divs_content.style.height= this.height + 'px'; 
		}
    	// Creating temporary width variables since the actual width of the content div could be larger than this.width and this.height(i.e. padding and border)
    	var tmpWidth = this.divs_content.offsetWidth;	
    	var tmpHeight = this.divs_content.offsetHeight;
    	
    	// Setting width and height of left transparent div
    	
    	this.divs_content.style.left = Math.ceil((bodyWidth - tmpWidth) / 2) + 'px';;
    	this.divs_content.style.top = (Math.ceil((bodyHeight - tmpHeight) / 4) +  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.iframe.style.height = this.divs_content.style.height;
 		}
 		
    	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';	// Hiding shadow if it has been disabled
    	
    }
    ,
    __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.ModalType!='' && this.ModalStaticContent=='') {	// url specified - load content dynamically
			ShowModalWindowContent('DHTMLSuite_modalBox_contentDiv',this.ModalType,this.PostedValues,this.AjaxFilename,this.AjaxCheckFormData);
		} else {	
			this.ModalStaticContent='<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td width="8" height="30"><img src="'+SiteImagePath +'boxes/modal/curve1.png" width="8" height="30" align="absmiddle"></td><td width="90%" background="'+SiteImagePath +'boxes/modal/curvebg.png"  class="WhiteNormalFont"><strong>'+this.ModalStaticContentTitle+'</strong></td><td width="10%" align="right" background="'+SiteImagePath +'boxes/modal/curvebg.png"><img src="'+SiteImagePath +'icons/close_grey.gif" alt="Close" align="absmiddle" border="0" onClick="closeMessage(\''+this.ModalRedirectCondition+'\');" onmouseover="this.src=\''+SiteGlobalPath+'images/icons/close_grey.gif\'" onmouseout="this.src=\''+SiteGlobalPath+'images/icons/close_grey.gif\'"style="cursor:pointer;" /></td><td width="8" height="30"><img src="'+SiteImagePath +'boxes/modal/curve2.png" width="8" height="30" align="absmiddle"></td></tr><tr bgcolor="#FFFFFF"><td width="8">&nbsp;</td><td  colspan="2"><div class="ContentLayer" style="width:'+this.width+'px;height:'+this.height+'px">'+this.ModalStaticContent+'</div></td><td width="8">&nbsp;</td></tr><tr><td width="8" height="19"><img src="'+SiteImagePath +'boxes/modal/curved1.gif" width="8" height="19" align="absbottom"></td><td colspan="2" bgcolor="#FFFFFF">&nbsp;</td><td width="8" height="19"><img src="'+SiteImagePath +'boxes/modal/curved2.gif" width="8" height="19" align="absbottom"></td></tr></table>';
			this.divs_content.innerHTML =this.ModalStaticContent;
		}
    }		
}

//Modal Window Script
var LoadingStatus="<img src='"+SiteThemeImagePath+"ajax_loader_small.gif'/>";
//var LoadingStatusBar="<img src='"+SiteThemeImagePath+"ajax_bar_red_loader.gif'/>"; 
var ModalStaticContent='';
var ModalStaticContentTitle='';
var ModalStaticRedirectPath='';
var CommonDisplayVar='';

messageObj = new DHTML_modalMessage();	
messageObj.setShadowOffset(5);

function ShowModalWindow(ModalType,width,height,PostValues,AjaxFilename,AjaxCheckFormData) { 
	if(ModalStaticContent!='') { 
		messageObj.setModalStaticContentTitle(ModalStaticContentTitle);
		messageObj.setModalStaticContent(ModalStaticContent);
		ModalStaticContent='';
		ModalStaticContentTitle='';
		messageObj.setRedirectPath(ModalStaticRedirectPath);
		messageObj.setAjaxFileNames(AjaxFilename,AjaxCheckFormData);
		messageObj.setSource(ModalType);
		messageObj.setPostValues(PostValues);
		messageObj.setCssClassMessageBox(false);
		messageObj.setSize(width,height);
		messageObj.setShadowDivVisible(false);	// Enable shadow for these boxes
		messageObj.display();
	} else { 
		ModalStaticContent='';
		ModalStaticContentTitle='';
		ModalStaticRedirectPath='';
		messageObj.setModalStaticContentTitle(ModalStaticContentTitle);
		messageObj.setModalStaticContent(ModalStaticContent);
		messageObj.setRedirectPath(ModalStaticRedirectPath);
		messageObj.setAjaxFileNames(AjaxFilename,AjaxCheckFormData);
		messageObj.setSource(ModalType);
		messageObj.setPostValues(PostValues);
		messageObj.setCssClassMessageBox(false);
		messageObj.setSize(width,height);			
		messageObj.setShadowDivVisible(false);	// Enable shadow for these boxes
		messageObj.display();
	}
}
function ShowModalWindowContent(ModalMasterID,ModalType,PostValues,AjaxFilename,AjaxCheckFormData) {
	var Filename=AjaxFilename;

	ModalMasterID_public=ModalMasterID;
	document.getElementById(ModalMasterID).innerHTML = '<table align="center" height="100%"><tr><td colspan="2" valign="middle">'+LoadingStatus+'</td></tr></table>';
	var success = function(t){ShowModalWindowCont_Complete(t,ModalMasterID,ModalType,PostValues,AjaxFilename,AjaxCheckFormData);}
	var failure = function(t){ShowOnFailure(t);}
	var url = Filename;
	if(ModalType=='PreviewImoportMessage') {
		var GetIds=PostValues.split('|');
		var PreviewSubjectID=GetIds[0];
		var PreviewMessageID=GetIds[1];
		if(document.getElementById(PreviewSubjectID))
			var DisplaySubject=document.getElementById(PreviewSubjectID).value;
		if(document.getElementById(PreviewMessageID))
			var DisplayMessage=document.getElementById(PreviewMessageID).value;
		DisplayMessage=DisplayMessage.replace("\n","<br />");
		DisplayMessage=DisplayMessage.replace("\r","<br />");
		PostValues=DisplaySubject+"^^"+DisplayMessage;
	}
	var pars = '&ModalTypeCondition='+ModalType+'&PostValues='+PostValues;
	var myAjax = new Ajax.Request(url, {method:'post',postBody:pars, onSuccess:success, onFailure:failure});
}

function ShowModalWindowCont_Complete(t,ModalMasterID,ModalType,PostValues,AjaxFilename,AjaxCheckFormData) {
	var strValue = t.responseText;
	document.getElementById(ModalMasterID).innerHTML =strValue;
}
function closeModal() {
	messageObj.close();
}

