	function dealWithReference(operation)
	{
		var f=window.document.editMessageForm;
		var s1, s2, e;	
		var i,j, count=0;
		var canAdd=true;
	
		if(operation == "Add")
		{
			s1=f.sel_forums_avail;
			s2=f.sel_forums_used;
			for(i=0;i<s1.options.length;i++)
			{
				e=s1.options[i];
				if((e.selected))
					count++;
				if(count > 5)
					break;
			}
			count=count+s2.options.length;
			if(count > 5)
				canAdd=false;
		}else 
		{
			s2=f.sel_forums_avail;
			s1=f.sel_forums_used;
		}
		
		if (canAdd)
		{
			for(i=0;i<s1.options.length;i++)
			{
				e=s1.options[i];
				if((e.selected)||(operation=="RemoveAll"))
				{
					add_Element(s2, e);
					s1.options[i]=null;
					i--;
				}
			}
/*			if (f.sel_forums_used.options.length < 5)
				f.btn_add_one.style.display="inline";
			else
				f.btn_add_one.style.display="none"; */
		}
		else
			alert("You can make 5 references here only!")
	}
 
	function add_Element(SelBox, NewItem)
	{
		var e = new Option();
		e.text=NewItem.text;
		e.value=NewItem.value;
		SelBox.options[SelBox.length]=e;
	}
	
	function preSubmit(isReply)
	{
		var msgBody = window.document.editMessageForm.messageBody.value;
		var subjectText = window.document.editMessageForm.subject.value;
		var limit=6000, i;
		var sel_forums_used=window.document.editMessageForm.sel_forums_used;
		var msgBodyLen = msgBody.length;

		if (subjectText == "")
		{
			alert("Please input Subject !");
			return false;
		}	
		else
		{
			if (isSpaceOnly(subjectText))
			{
				alert("Please input Subject !");
				return false;
			}
		}
		if (msgBodyLen > limit)
		{
			alert("Please limit the number of characters in "+limit+" !");
			return false;
		}else
		{
			if (msgBodyLen > 1)
			{
				msgBody = correctHTML(msgBody);
				if (msgBody.length != msgBodyLen)
				{
					window.document.editMessageForm.messageBody.value = msgBody;
					return false;
				}
			}
			if (isReply == 2)
				for(i=0;i<sel_forums_used.options.length;i++)
					if(sel_forums_used.options[i].selected==false) sel_forums_used.options[i].selected=true;
			return true;
		}
	}
	
	function isSpaceOnly(s)
	{
		var i, firstCharIndex=-1;
		
		for (i=0; i < s.length; i++)
		{
			if(s.charAt(i)==" ")
				;
			else
			{
				firstCharIndex=i;
				break;
			}
		}
		
		if (firstCharIndex != -1)
			return false;
		else
			return true;
	}
	
	function correctHTML(msgBody){
		var msgBodyLen=msgBody.length;
		var l2=0;
		var Tag="";
		var TagName="";
		var TagExtra="";
		var doneTagName=false;
		var t2="";
		var c;
		var cc;
		var lcTag="";
		var inTag=false;
		var SkipParameter=true;
		var ccc;
		for(var p=0;p<msgBodyLen;p++)
		{
			c=msgBody.charAt(p);
			if(c=="<")
				inTag=true;
			else  // c != "<"
				if(c==">")
				{
					if((doneTagName==true)&&(SkipParameter==false))
					{
						TagExtra+=" "+Tag;
					}
					if(TagName=="")
						TagName=Tag;
					if(TagName=="b")t2+="<b>";
					else if(TagName=="i")t2+="<i>";
					else if(TagName=="u")t2+="<u>";
					else if(TagName=="br")t2+="<br>";
					else if(TagName=="hr")t2+="<hr>";
					else if(TagName=="h1")t2+="<h2>";//h1->h2
					else if(TagName=="h2")t2+="<h2>";
					else if(TagName=="h3")t2+="<h3>";
					else if(TagName=="h4")t2+="<h4>";
					else if(TagName=="h5")t2+="<h5>";
					else if(TagName=="ul")t2+="<ul"+TagExtra+">";
					else if(TagName=="ol")t2+="<ol"+TagExtra+">";
					else if(TagName=="li")t2+="<li>";
					else if(TagName=="center")t2+="<center>";
					else if(TagName=="pre")t2+="<pre>";
					else if(TagName=="font")t2+="<font"+TagExtra+">";
					else if(TagName=="img")t2+="<img"+TagExtra+">";
					else if(TagName=="a")t2+="<a"+TagExtra+">";
					else if(TagName=="p")t2+="<p"+TagExtra+">";
					else if(TagName=="/b")t2+="</b>";
					else if(TagName=="/i")t2+="</i>";
					else if(TagName=="/u")t2+="</u>";
					else if(TagName=="/p")t2+="</p>";
					else if(TagName=="/a")t2+="</a>";
					else if(TagName=="/h1")t2+="</h2>";//h1->h2
					else if(TagName=="/h2")t2+="</h2>";
					else if(TagName=="/h3")t2+="</h3>";
					else if(TagName=="/h4")t2+="</h4>";
					else if(TagName=="/h5")t2+="</h5>";
					else if(TagName=="/pre")t2+="</pre>";
					else if(TagName=="/ul")t2+="</ul>";
					else if(TagName=="/ol")t2+="</ol>";
					else if(TagName=="/li")t2+="</li>";
					else if(TagName=="/font")t2+="</font>";
					else if(TagName=="/center")t2+="</center>";
					Tag="";
					TagName="";
					TagExtra="";
					doneTagName=false;
					SkipParameter=true;
					inTag=false;
				}
				else // c != ">" and c != "<"
					if(inTag==true) // beween "<" and ">"
					{
						if(c=="=")
						{
							lcTag=Tag.toLowerCase();
							if(TagName=="p")
							{
								if(lcTag=="align")
									SkipParameter=false;								
							}else 
								if(TagName=="img")
								{
									if((lcTag=="width")||(lcTag=="height")||(lcTag=="border")||(lcTag=="align"))
										SkipParameter=false;
									if((lcTag=="alt")||(lcTag=="src")||(lcTag=="title"))
										SkipParameter=false;
								}else 
									if(TagName=="a")
									{
										if((lcTag=="href")||(lcTag=="target"))
											SkipParameter=false;
									}else 
										if(TagName=="font")
										{
											if((lcTag=="color")||(lcTag=="size"))
												SkipParameter=false;
										}else 
											if((TagName=="ul")||(TagName=="ol"))
											{
												if(lcTag=="type")
													SkipParameter=false;
											}
							Tag+=c;
							ccc=msgBody.charAt(p+1);
							if((ccc=="'")||(ccc=='"'))
							{
								Tag+=ccc;
								p++;
								c=msgBody.charAt(p+1);
								while(c!=ccc)
								{
									Tag+=c;
									p++;
									c=msgBody.charAt(p+1);
								}
								Tag+=c;
								p++;
							}
						}else // between "<" and ">" AND != "="
							if(c==" ")
							{				
								if(doneTagName==false)
									doneTagName=true;
								else
								{
									if(SkipParameter==false)
										TagExtra+=" "+Tag;
								}
								Tag="";
								SkipParameter=true;
							}else
							{
								c=c.toLowerCase();
								if(doneTagName==false)
									TagName+=c;
								Tag+=c;
							}
				}else // outside "<" and ">"
				{
					if(p<msgBodyLen-1)
					{
						cc=msgBody.substr(p,2);
					/*	if((cc==". ")||(cc==".<"))
						{
							c=".&nbsp;";
							l2+=6;
						}else 
							if((cc=="! ")||(cc=="!<"))
							{
								c="!&nbsp;";
								l2+=6;
							}else 
								if((cc=="? ")||(cc=="?<"))
								{
									c="?&nbsp;";
									l2+=6;
								} */
					}
					cc=msgBody.charCodeAt(p);
					if(cc>8000)
					{
						if((cc==8220)||(cc==8221))
							c='"';
						else 
							if((cc==8216)||(cc==8217))
								c="'";
					}
					t2+=c;
				}
		} // end for 
		msgBody=t2;
		if(msgBody.length != msgBodyLen)
		{
//			alert((msgBodyLen-t2.length)+" bytes ("+parseInt((msgBodyLen+l2-t2.length)*100/msgBodyLen) +"%) of your message was useless junk and has been deleted!");
		}
		return msgBody;
	}

	function checkForumUserName()// For forumUserProfile.asp
	{	
		var forumUserName = window.document.forumUserProfile.forumUserName.value;

		if (forumUserName == "")
		{
			alert("Please input forum user name !");
			return false;
		}	
		else
		{
			if (isSpaceOnly(forumUserName))
			{
				window.document.forumUserProfile.forumUserName.value="";
				alert("Please input forum user name !");
				return false;
			}
			else
			{
				return true;
			}
		}
	}
	
	function rateMsg(subMsgId, subject) // For displayMessages.asp
	{
		var winAttr = "height=350,width=300,status=no,scrollbars=yes,resizable=yes,menubar=no";
	    window.open("setRateToMessage.asp?subMsgId="+subMsgId+"&subject="+subject, "", winAttr);
	}

	function explainStarsMeaning() // For displayMessages.asp and listForums.asp
	{
	    var winAttr = "height=400,width=350,status=no,scrollbars=yes,resizable=yes,menubar=no";
	    window.open("starsMeaning.asp", "", winAttr);
	}
	
	function accPolicyWin(fromAsp, disMsgId, msgId, pageNumber, forumId) // For listMessages.asp and displayMessages.asp
	{
	    var winAttr = "height=560,width=650,status=no,scrollbars=yes,resizable=yes,menubar=no";
		var winContent = "forumsAcceptPage.asp?fromASP=" + fromAsp + "&toASP=editMessage.asp&disMsgId="+disMsgId+"&msgId="+msgId+"&pageNumber="+pageNumber+"&forumId=" + forumId;
	    window.open(winContent, "", winAttr);
	} 
	
	function explainTopRankedPitMeaning() // For listForums.asp
	{
	    var winAttr = "height=500,width=350,status=no,scrollbars=yes,resizable=yes,menubar=no";
	    window.open("topRankedPitMeaning.asp", "", winAttr);
	}
	
	function closeSubWin(winRef) // For forumsAcceptPage.asp
	{		
		winRef.document.agreeForm.submit();
		winRef.close();
	}
	
	function sendEmailToFriend(msgId, forumId) // For displayMessages.asp
	{
	    var winAttr = "height=570,width=600,status=no,scrollbars=yes,resizable=yes,menubar=no";
	    window.open("sendEmailtoFriend.asp?msgId="+msgId+"&forumId="+forumId, "", winAttr);
	}

	function doSendEmail(winRef) // For sendEmailtoFriend.asp
	{	
		var fromEmail, toEmail, fromEmailFalse, toEmailFalse, errMsg, errNo;
		
		fromEmail = winRef.document.emailToFriend.fromEmail.value;
		toEmail = winRef.document.emailToFriend.toEmail.value;
		
		fromEmailFalse = isEmail(fromEmail);		
		toEmailFalse = isEmail(toEmail);

		errMsg="";
		errNo=1;
		if (fromEmailFalse==false)
		{
			errMsg=errNo+". Please correct Your Email Address.\n";
			errNo = errNo + 1;
		}
		
		if (toEmailFalse==false)
			errMsg = errMsg+errNo+". Please correct Your Friend's Email Address.\n";	

		if (errMsg!="")
		{
			alert(errMsg);
			winRef.document.emailToFriend.doItReally.value="NO"
//			return false;
		}
		else
		{
			winRef.document.emailToFriend.doItReally.value="YES"
			winRef.document.emailToFriend.target="thePitHome"
			if (navigator.appName=="Netscape")
				winRef.document.emailToFriend.submit();
			winRef.close();
		}
	}

	function isEmail(s)
	{   
		if (s=="")
			return false;
		else
		{
			if (isSpaceOnly(s)) 
				return false;
    
			var i = 1;
			var sLength = s.length;

			// look for @
			while ((i < sLength) && (s.charAt(i) != "@"))
			{ 
				i++
			}

			if ((i >= sLength) || (s.charAt(i) != "@")) 
				return false;
			else 
				i += 2;

			// look for .
			while ((i < sLength) && (s.charAt(i) != "."))
			{ 
				i++
			}

			// there must be at least one character after the .
			if ((i >= sLength - 1) || (s.charAt(i) != ".")) 
				return false;
			else 
				return true;
		}
	}