//------------------------------------------------------------------------------
// Class:  Topic
//------------------------------------------------------------------------------
// Author:  CL
// Date:  2007/02/21
// Description:  This class defines the functions used by the Topic.
//------------------------------------------------------------------------------
function Topic()
{
	// Variables:
	var maxMsgLength = 4000;
	
	//--------------------------------------------------------------------------

	// Methods:
	this.updateCharCount = updateCharCount;
	this.showHide = showHide;
	this.moveTopic = moveTopic;
	this.addTopic = addTopic;
	this.goToMessage = goToMessage;
	this.popUpTopic = popUpTopic;
	this.moveTopicGroup = moveTopicGroup;
	this.stickTopic = stickTopic;
	this.submitNewTopic = submitNewTopic;
	this.goCancel = goCancel;
	this.reGen = reGen;
	this.submitCreateUpdatePoll = submitCreateUpdatePoll;
	this.showTopicTags = showTopicTags;

	//--------------------------------------------------------------------------
		
	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 showHide(idString)
	{
		theElement = document.getElementById(idString);
			
		if (theElement.style.display == "none")
		{
			theElement.style.display = "block";
		}
		else
		{
			theElement.style.display = "none";
		}
	}

	//--------------------------------------------------------------------------

	function moveTopic(idString, topicString, topicID)
	{
		theElement = document.getElementById(idString);
			
		if (theElement.style.display == "none")
		{
			theElement.style.display = "block";
			document.getElementById('newTopic').style.display = "none";
			document.getElementById('editCreatePoll').style.display = "none";
		}
	
		if(document.getElementById)
		{
			document.getElementById('moveTopicString').innerHTML = document.getElementById(topicString).value;
		}
		else
		{
			if(document.layers)
			{
				document.layers['moveTopicString'].innerHTML = document.getElementById(topicString).value;
			}
			else
			{
				document.all['moveTopicString'].innerHTML = document.getElementById(topicString).value;
			}
		}
			
		document.frmTopic.moveTopicID.value = topicID;
		document.frmTopic.moveToTopicGroupID.focus();
	}

	//--------------------------------------------------------------------------

	function addTopic(idString, iAddTopicNew, isPermit)
	{
		theNewTopic = document.getElementById(idString);
		
		if (theNewTopic.style.display == "none")
		{
			theNewTopic.style.display = "block";
			if(iAddTopicNew == 0)
			{
				document.getElementById('addTopicMsg').style.display = "none";
				document.getElementById('addWebPollInAddTopic').style.display="block";
				document.getElementById('addWebPollOriginalOutsideAddTopic').style.display="none";
				document.getElementById('createNewWebPoll').value = "Use No Web Poll";
				document.frmTopic.isShowPollArea.value = 1;
			}
			if(isPermit)
			{
				document.getElementById('moveTopic').style.display = "none";
			}
			document.frmTopic.subject.focus();
			//document.getElementById('iFrame_secImg').innerHTML = '<iframe src="/Forum/_var/inc_ForumSecurityImage.cfm" name="iFrame_secImg" style="visibility:hidden;" height="0"></iframe>';
		}
		else
		{
			if(iAddTopicNew == 0)
			{
				theNewTopic.style.display = "none";
				document.getElementById('addTopicMsg').style.display = "block";
				document.getElementById('addWebPollInAddTopic').style.display="none";
				document.getElementById('addWebPollOriginalOutsideAddTopic').style.display="none";
				document.getElementById('createNewWebPoll').value = "Create Web Poll";
				document.frmTopic.isShowPollArea.value = 0;
			}
		}
	}

	//--------------------------------------------------------------------------

	function goToMessage(tID, msgID, startID)
	{
		window.location.href="";
	}

	//--------------------------------------------------------------------------

	function popUpTopic(URL)
	{
		var popUp = window.open(URL, 'Forum', 'toolbar=no,scrollbars=0,location=0,status=0,menubar=0,resizable=yes,width=700,height=350,left=122,top=0');
		popUp.focus();
	}

	//--------------------------------------------------------------------------

	function moveTopicGroup()
	{
		document.frmTopic.isMoveTopic.value = "1";
		document.frmTopic.action = "";
		document.frmTopic.target = '_self';
		document.frmTopic.submit();
	}

	//--------------------------------------------------------------------------

	function stickTopic(tID, iSticky)
	{
		document.frmTopic.isSticky.value = "1";
		document.frmTopic.stickyStatus.value = iSticky;
		document.frmTopic.stickyTopicID.value = tID;
		document.frmTopic.action = "#" + tID;
		document.frmTopic.target = '_self';
		document.frmTopic.submit();
	}

	//--------------------------------------------------------------------------

	function submitNewTopic(isAttach,isCreatePoll,isLoggedIn,tgID)
	{
		var newTopicText = document.frmTopic.topicText.value;
		var newTopicSubject = document.frmTopic.subject.value;

		/*if(isAttach > 0)
		{
			imgObj = new Image();
			imgObj.src = document.frmTopic.filename.value;
			document.frmTopic.frmImgAttachmentWidth.value = imgObj.width;
			document.frmTopic.frmImgAttachmentHeight.value = imgObj.height;
		}
		*/				
		if((newTopicSubject.length == 0) || (newTopicSubject.match(/^\s+$/)))
		{
			//alert('Please enter a subject for the Topic.');
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Please enter a subject for the Topic.';
		}
		else if (newTopicSubject.length > 256)
		{
			document.getElementById('frmErr').style.display = "block";
			document.getElementById('frmErr').innerHTML = '* Your subject must have 255 chars or less.';
		}
		else
		{
			if((newTopicText.length == 0) || (newTopicText.match(/^\s+$/)))
			{
				//alert('Please enter a message for the Topic.');
				document.getElementById('frmErr').style.display = "block";
				document.getElementById('frmErr').innerHTML = '* Please enter a message for the Topic.';
			}
			else if (newTopicText.length > 4000)
			{
				document.getElementById('frmErr').style.display = "block";
				document.getElementById('frmErr').innerHTML = '* Your message must have 4000 chars or less.';
			}
			else
			{
				var sImageTxt = document.frmTopic.imageText.value;
						
				if(!isLoggedIn)
				{
					var sAlias = document.frmTopic.name.value;
					var sEmail = document.frmTopic.email.value;
					
					if((sAlias.length == 0) || (sEmail.length == 0) || (sAlias.match(/^\s+$/)) || (sEmail.match(/^\s+$/)))
					{
						//alert('Please ensure that you have entered your alias and email address.');
						document.getElementById('frmErr').style.display = "block";
						document.getElementById('frmErr').innerHTML = '* Please ensure that you have entered your alias and email address.';
					}
					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
						{
							document.frmTopic.isAddTopic.value = "1";
							document.frmTopic.isAddToList.value = "0";
							document.frmTopic.action = "../message/postmessage.cfm?topicgroupID=" + tgID + "&topicID=0&messageID=0&isPosting=0#status";
							document.frmTopic.target = '_self';
							document.frmTopic.submit();
						}
					}
				}
				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
					{
						document.frmTopic.isAddTopic.value = "1";
						document.frmTopic.isAddToList.value = "0";
						document.frmTopic.action = "../message/postmessage.cfm?topicgroupID=" + tgID + "&topicID=0&messageID=0&isPosting=0#status";
						document.frmTopic.target = '_self';
						document.frmTopic.submit();
					}
				}
			}
		}
	}

	//--------------------------------------------------------------------------

	function goCancel(tID,start)
	{
		window.location.href = "index.cfm?topicgroupID=" + tID + "&start=" + start;
	}
	
	//--------------------------------------------------------------------------
	
	function reGen(tID,start)
	{
		if(document.getElementById('editCreatePoll').style.display == "none")
		{
			document.frmTopic.isAddTopic.value = "1";
			document.frmTopic.isShowPollArea.value = 0;
		}
		else
		{
			document.frmTopic.isShowPollArea.value = 1;
		}
		document.frmTopic.isAddToList.value = "1";
		document.frmTopic.action = "index.cfm?topicgroupID=" + tID + "&start=" + start + "#add";
		document.frmTopic.target = '_self';
		document.frmTopic.submit();
	}

	//--------------------------------------------------------------------------

	function submitCreateUpdatePoll(iCurrentAns,tgID)
	{
		var pollQuest = document.frmTopic.pollQuestion.value;
		
		if(document.getElementById('createNewWebPoll').value == "Create Web Poll")
		{
			document.frmTopic.isShowPollArea.value = 0;
			submitNewTopic(1,0,1,tgID);
		}
		else
		{
			document.frmTopic.isShowPollArea.value = 1;

			if((pollQuest.length == 0) || (pollQuest.match(/^\s+$/)))
			{
				//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(iCurrentAns == 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
				{
					document.frmTopic.isCreateUpdatePoll.value = "1";
					submitNewTopic(1,1,1,tgID);
				}
			}
		}
	}

	//--------------------------------------------------------------------------

	function showTopicTags(idString)
	{
			theTags = document.getElementById(idString);
									
			if (theTags.style.display == "none")
			{
				theTags.style.display = "block";
				document.getElementById('topicTags').innerHTML = "Hide tags for this Forum";
				document.frmShowTagsImg.src = '/Forum/img/minus.gif';
			}
			else
			{
				theTags.style.display = "none";
				document.getElementById('topicTags').innerHTML = "Show tags for this Forum";
				document.frmShowTagsImg.src = '/Forum/img/plus.gif';
			}
	}
}

// Create Object
oTopic = new Topic();

