//------------------------------------------------------------------------------
// Class:  Message
//------------------------------------------------------------------------------
// Author:  CL
// Date:  2007/02/21
// Description:  This class defines the functions used by the Message
//------------------------------------------------------------------------------
function Message()
{
	// Variables:
	var maxMsgLength = 4000;
	var PositionX = 10;
	var PositionY = 10;
	var defaultWidth  = screen.width;
	var defaultHeight = screen.height;
	var AutoClose = false;

	//--------------------------------------------------------------------------

	// Methods:
	this.updateCharCount = updateCharCount;
	this.showManagePoll = showManagePoll;
	this.addWebPoll = addWebPoll;
	this.showPostReply = showPostReply;
	this.popUpMessage = popUpMessage;
	this.popImage = popImage;
	this.submitWebpoll = submitWebpoll;
	this.submitEditMessage = submitEditMessage;
	this.submitReply = submitReply;
	this.goEditMessage = goEditMessage;
	this.quoteMessage = quoteMessage;
	this.goCancel = goCancel;
	this.reGen = reGen;
	this.submitCreateUpdatePoll = submitCreateUpdatePoll;

	//--------------------------------------------------------------------------
	
	function updateCharCount(textarea, alertField)
	{
		if (textarea.value.length > maxMsgLength)
		{
			textarea.value = textarea.value.substr(0, maxMsgLength);
			alertField.value = maxMsgLength - textarea.value.length;
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Your message must have ' + maxMsgLength + ' chars or less.';
		}
		else
		{
			alertField.value = maxMsgLength - textarea.value.length;
		}
	}

	//--------------------------------------------------------------------------			

	function showManagePoll(idString)
	{
		thePoll = document.getElementById(idString);
			
		if(idString != 'webpollResults')
		{
			if (thePoll.style.display == "none")
			{
				thePoll.style.display = "block";
			}
			else
			{
				thePoll.style.display = "none";
			}
		}
		else
		{
			if (thePoll.style.display == "none")
			{
				thePoll.style.display = "block";
				document.getElementById('pollstatistic').value = "Hide Result";
			}
			else
			{
				thePoll.style.display = "none";
				document.getElementById('pollstatistic').value = "View Result";
			}
		}
		
		if(idString == 'editCreatePoll' && thePoll.style.display == 'block')
			document.frmForum.pollQuestion.focus();
	}

	//--------------------------------------------------------------------------			

	function addWebPoll(idString, iAddPollNew)
	{
		theNewPoll = document.getElementById(idString);
		
		if (theNewPoll.style.display == "none")
		{
			theNewPoll.style.display = "block";
			if(iAddPollNew == 0)
			{
				document.getElementById('addWebPollOriginalOutsideAddTopic').style.display="none";
				document.getElementById('createNewWebPoll').value = "Use No Web Poll";
				document.frmForum.isShowPollArea.value = 1;
			}
			document.frmForum.subject.focus();
		}
		else
		{
			if(iAddPollNew == 0)
			{
				theNewPoll.style.display = "none";
				document.getElementById('addWebPollOriginalOutsideAddTopic').style.display="none";
				document.getElementById('createNewWebPoll').value = "Create Web Poll";
				document.frmForum.isShowPollArea.value = 0;
			}
		}
	}

	//--------------------------------------------------------------------------			

	function showPostReply(idString)
	{
		theNewReply = document.getElementById(idString);
		if (theNewReply.style.display == "none")
		{
			theNewReply.style.display = "block";
			document.frmForum.subject.focus();
			//document.getElementById('iFrame_secImg').innerHTML = '<iframe src="/Forum/_var/inc_ForumSecurityImage.cfm" name="iFrame_secImg" style="visibility:hidden;" height="0"></iframe>';
		}
		else
		{
			theNewReply.style.display = "none";
		}
	}

	//--------------------------------------------------------------------------			

	/*
	function previewAttachment(msgID,w,h)
	{
		var isScroll = 'yes';
		var isResize = 'yes';

		if(w > screen.width)
		{
			w = screen.width;
		}
		if(h > screen.height)
		{
			h = screen.height;
		}
		
		var popUp = window.open('', 'PreviewAttachment', 'toolbar=no,scrollbars='+isScroll+',location=0,status=no,menubar=0,resizable='+isResize+',width='+w+',height='+h+',left=122,top=0');
		document.frmForum.action = "../message/previewAttachment.cfm?msgID=" + msgID;
		document.frmForum.submit();
		
		popUp.focus();
		
		return popUp;
	}
	*/
	
	//--------------------------------------------------------------------------
		
	function popImage(imageURL,imageTitle,isSignedIn)
	{
		  if(isSignedIn)
		  {
			  var imgWin = window.open('','PreviewAttachment','scrollbars=yes,resizable=yes,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
		  	  if( !imgWin ) { return true; } //popup blockers should not cause errors
			  imgWin.document.write('<html><head><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
				'function resizeWinTo() {\n'+
				'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
				'var oH = document.images[0].height, oW = document.images[0].width;\n'+
				'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
				'window.doneAlready = true;\n'+ //for Safari and Opera
				'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
				'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
				'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
				'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
				'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
				'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
				'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 200 ) - myH ) );\n'+
				'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
				'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
				'if( !window.opera ) { x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2)); }\n'+
				'}\n'+
				'<\/script>'+
				'<\/head><body style="overflow:auto;" onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
				(document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;display:table;">'))+
				'<img src="'+imageURL+'" alt="Loading image ..." title="" onload="resizeWinTo();">'+
				(document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
			  imgWin.document.close();
			  if( imgWin.focus ) { imgWin.focus(); }
		  }
		  else
		  {
			 var popUp = window.open('../message/previewAttachment.cfm', 'PreviewAttachment', 'toolbar=no,scrollbars=no,location=0,status=0,menubar=0,resizable=1,width=500,height=300,left=122,top=0');
			 if( !popUp ) { return true; }
			 popUp.focus();
		  }
		  return false;
	}

	//--------------------------------------------------------------------------			

	function popUpMessage(URL)
	{
		var popUp = window.open(URL, 'Forum', 'toolbar=no,scrollbars=1,location=0,status=0,menubar=0,resizable=yes,width=700,height=350,left=122,top=0');
		popUp.focus();
	}

	//--------------------------------------------------------------------------			

	function submitWebpoll()
	{
		document.frmForum.isSubmitWebpoll.value = "1";
		document.frmForum.action = "";
		document.frmForum.target = '_self';
		document.frmForum.submit();
	}

	//--------------------------------------------------------------------------			

	function submitEditMessage(isAttach,isFirstMsg,isWebpoll,iCurrentAnsTotal,mID)
	{
		var theMessage = document.frmForum.msgReply.value;
		var sImageTxt = document.frmForum.imageText.value;
		var theSubject = document.frmForum.subject.value;
		var regHTML = new RegExp("(<[a-z][^>]+>.*</[a-z][^>/]+>)|(<[a-z][^>/]+/*\s*>)", "i");
		/*if(theSubject.match(regHTML))
		{
			alert(theSubject.match(regHTML));
		}*/
		
		/*
		if(isAttach > 0)
		{
			imgObj = new Image();
			imgObj.src = document.frmForum.editfilename.value;
				
			document.frmForum.frmImgAttachmentWidth.value = imgObj.width;
			document.frmForum.frmImgAttachmentHeight.value = imgObj.height;
		}
		*/	
		if((theMessage.length == 0) || (theMessage.match(/^\s+$/)))
		{
			//alert('Please enter your message.');
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Please enter your message.';
		}
		else if (theMessage.length > 4000)
		{
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Your message must have 4000 chars or less.';
		}
		else
		{
			if( sImageTxt.length == 0)
			{
				//alert('Please ensure that you have entered the text displayed in the image before you submit.');
				document.getElementById('frmErr').style.display = "block";
				document.getElementById('frmErr').innerHTML = '* Please ensure that you have entered the text displayed in the image before you submit.';
			}
			else
			{
				if(!isWebpoll)
				{
					if (document.getElementById('createNewWebPoll') &&
						document.getElementById('createNewWebPoll').value == 'Use No Web Poll')
					{
						var pollQuest = document.frmForum.pollQuestion.value;
						document.frmForum.isShowPollArea.value = 1;
						if((pollQuest.length == 0))
						{
							//alert('Please enter the poll question.');
							document.getElementById('frmErr').style.display = "block";
							document.getElementById('frmErr').innerHTML = '* Please enter the poll question.';
						}
						else if (pollQuest.length > 256)
						{
							//alert('The Poll Question must have 256 characters or less');
							document.getElementById('frmErr').style.display = "block";
							document.getElementById('frmErr').innerHTML = '* The Poll Question must have 256 characters or less.';
						}
						else
						{
							if(iCurrentAnsTotal == 0)
							{
								//alert('Please enter your answers for the web poll.');
								document.getElementById('frmErr').style.display = "block";
								document.getElementById('frmErr').innerHTML = '* Please enter your answers for the web poll.';
							}
							else
							{
								if(isFirstMsg == 1)
								{
									if(theSubject.length == 0)
									{
										//alert('Please enter a subject for the message.');
										document.getElementById('frmErr').style.display = "block";
										document.getElementById('frmErr').innerHTML = '* Please enter a subject for the message.';
									}
									else if (theSubject.length > 256)
									{
										document.getElementById('frmErr').style.display = "block";
										document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
									}
									else
									{
										document.frmForum.isCreatePollInEditMessage.value = "1";
										document.frmForum.isEditMessageSubmit.value = "1";
										document.frmForum.action = "#" + mID;
										document.frmForum.target = '_self';
										document.frmForum.submit();
									
									}
								}
								else
								{
									if (theSubject.length > 256)
									{
										document.getElementById('frmErr').style.display = "block";
										document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
									}
									else
									{
										document.frmForum.isCreatePollInEditMessage.value = "1";
										document.frmForum.isEditMessageSubmit.value = "1";
										document.frmForum.action = "#" + mID;
										document.frmForum.target = '_self';
										document.frmForum.submit();
									}
								}
							}
						}
					}
					else
					{
						document.frmForum.isShowPollArea.value = 0;
						if(isFirstMsg == 1)
						{
							if((theSubject.length == 0) || (theSubject.match(/^\s+$/)))
							{
								//alert('Please enter a subject for the message.');
								document.getElementById('frmErr').style.display = "block";
								document.getElementById('frmErr').innerHTML = '* Please enter a subject for the message.';
							}
							else if (theSubject.length > 256)
							{
								document.getElementById('frmErr').style.display = "block";
								document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
							}
							else
							{
								document.frmForum.isEditMessageSubmit.value = "1";
								document.frmForum.action = "#" + document.frmForum.frmEditedMessageID.value;
								document.frmForum.target = '_self';
								document.frmForum.submit();
							}
						}
						else
						{
							if (theSubject.length > 256)
							{
								document.getElementById('frmErr').style.display = "block";
								document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
							}
							else
							{
								document.frmForum.isEditMessageSubmit.value = "1";
								document.frmForum.action = "#" + document.frmForum.frmEditedMessageID.value;
								document.frmForum.target = '_self';
								document.frmForum.submit();
							}
						}
					}
				}
				else
				{
					document.frmForum.isShowPollArea.value = 0;
					if(isFirstMsg == 1)
					{
						if((theSubject.length == 0) || (theSubject.match(/^\s+$/)))
						{
							//alert('Please enter a subject for the message.');
							document.getElementById('frmErr').style.display = "block";
							document.getElementById('frmErr').innerHTML = '* Please enter a subject for the message.';
						}
						else if (theSubject.length > 256)
						{
							document.getElementById('frmErr').style.display = "block";
							document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
						}
						else
						{
							document.frmForum.isEditMessageSubmit.value = "1";
							document.frmForum.action = "#" + document.frmForum.frmEditedMessageID.value;
							document.frmForum.target = '_self';
							document.frmForum.submit();
						}
					}
					else
					{
						if (theSubject.length > 256)
						{
							document.getElementById('frmErr').style.display = "block";
							document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
						}
						else
						{
							document.frmForum.isEditMessageSubmit.value = "1";
							document.frmForum.action = "#" + document.frmForum.frmEditedMessageID.value;
							document.frmForum.target = '_self';
							document.frmForum.submit();
						}
					}
				}
			}
		}
	}

	//--------------------------------------------------------------------------			

	function submitReply(isAttach,tgID,tID,mID)
	{
		var theReply = document.frmForum.msgReply.value;
		var theSubject = document.frmForum.subject.value;
		
		/*
		if(isAttach > 0)
		{
			imgObj = new Image();
			imgObj.src = document.frmForum.filename.value;
			
			document.frmForum.frmImgAttachmentWidth.value = imgObj.width;
			document.frmForum.frmImgAttachmentHeight.value = imgObj.height;
		}
		*/
		if((theReply.length == 0) || (theReply.match(/^\s+$/)))
		{
			//alert('Please enter your reply.');
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Please enter your reply.';
		}
		else if (theReply.length > 4000)
		{
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Your message must have 4000 chars or less.';
		}
		else
		{
			var sImageTxt = document.frmForum.imageText.value;
				
			if( sImageTxt.length == 0)
			{
				//alert('Please ensure that you have entered the text displayed in the image before you submit.');
				document.getElementById('frmErr').style.display = "block";
				document.getElementById('frmErr').innerHTML = '* Please ensure that you have entered the text displayed in the image before you submit.';
			}
			else
			{
				if (theSubject.length > 256)
				{
					document.getElementById('frmErr').style.display = "block";
					document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
				}
				else
				{					
					document.frmForum.isPostReply.value = "1";
					document.frmForum.action = "../message/postMessage.cfm?topicGroupID=" + tgID + "&topicID=" + tID + "&messageID=" + mID + "&isPosting=0";
					document.frmForum.target = '_self';
					document.frmForum.submit();
				}
			}
		}
	}

	//--------------------------------------------------------------------------			

	function goEditMessage(intID)
	{
		document.frmForum.isEditMessage.value = "1";
		document.frmForum.frmEditQuoteMsgNum.value = intID;
		document.frmForum.action = "#msg";
		document.frmForum.target = '_self';
		document.frmForum.submit();
	}

	//--------------------------------------------------------------------------			

	function quoteMessage(intID)
	{
		document.frmForum.isQuoteMessage.value = "1";
		document.frmForum.frmEditQuoteMsgNum.value = intID;
		document.frmForum.action = "#msg";
		document.frmForum.target = '_self';
		document.frmForum.submit();
	}

	//--------------------------------------------------------------------------			

	function goCancel(tgID,tID,mID,s,l)
	{
		window.location.href = "index.cfm?topicgroupID=" + tgID + "&topicID=" + tID + "&messageID=" + mID + "&start=" + s + "&last=" + l;
	}
	
	//--------------------------------------------------------------------------			

	function reGen(tgID,tID,mID,s,l,isPoll,isEdit,isQuote,intID)
	{
		if(document.getElementById('postReply1').style.display == "block")
		{
			if(isEdit == 1)
			{
				document.frmForum.isEditMessage.value = "1";
				if(isPoll)
				{
					if(document.getElementById('editCreatePoll').style.display == "block")
					{
						document.frmForum.isShowPollArea.value = 1;
					}
					else
					{
						document.frmForum.isShowPollArea.value = 0;
					}
					document.frmForum.isAddToList.value = "1";
				}
			}
			else if(isQuote == 1)
			{
				document.frmForum.isQuoteMessage.value = "1";
			}
			else
			{
				document.frmForum.isPostReply.value = "1";
			}
		}
		
		document.frmForum.isReGen.value = 1;
		document.frmForum.frmEditQuoteMsgNum.value = intID;
		document.frmForum.action = "#msg";
		document.frmForum.target = '_self';
		document.frmForum.submit();
	}

	//--------------------------------------------------------------------------			

	function submitCreateUpdatePoll()
	{
		var pollQuest = document.frmForum.pollQuestion.value;
		
		if((pollQuest.length == 0) || (pollQuest.match(/^\s+$/)))
		{
			//alert('Please enter the poll question.');
			document.getElementById('frmPollErr').style.display = "block";
			document.getElementById('frmPollErr').innerHTML = '* Please enter the poll question.';
		}
		else if (pollQuest.length > 256)
		{
			//alert('The Poll Question must have 256 characters or less');
			document.getElementById('frmPollErr').style.display = "block";
			document.getElementById('frmPollErr').innerHTML = '* The Poll Question must have 256 characters or less.';
		}
		else
		{
			if(document.frmForum.frmIsRemoveAnswerChecked.length)
			{
				for(var i = 0; i < document.frmForum.frmIsRemoveAnswerChecked.length; i++)
				{
					if(document.frmForum.frmIsRemoveAnswerChecked[i].checked)
					{
						document.frmForum.frmIsRemoveAnswer[i].value = 'yes';
					}
					else
					{
						document.frmForum.frmIsRemoveAnswer[i].value = 'no';
					}
				}
			}
			else
			{
				if(document.frmForum.frmIsRemoveAnswerChecked.checked)
				{
					document.frmForum.frmIsRemoveAnswer.value = 'yes';
				}
				else
				{
					document.frmForum.frmIsRemoveAnswer.value = 'no';
				}
			}
			document.frmForum.isCreateUpdatePoll.value = "1";
			document.frmForum.target = '_self';
			document.frmForum.submit();
		}
	}
		
}

// create object
oMessage = new Message();

