var CHECKFORNEWARTICLESEVERYSECONDS=30;

var forumNo=0;
var forumNoFromDomainName=0;
var moderating=false;
var startNo=0;
var threadLinksOnLeft=false;

var doesIgnores=false;
var doesReads=false;
var doesWatches=false;

var firstThreadNo=0;
var newestArticleNo=0;
var updateOldestArticle=false;
var threadNo=0;

var newArticles=0;
var title="forums.footballwebpages.co.uk";

var thisArticleLikes=0;
var thisArticleDislikes=0;

function initialise(f,fdn,m,s,t,i,r,w) {

	forumNo=f;
	forumNoFromDomainName=fdn;
	moderating=m;
	startNo=s;
	threadLinksOnLeft=t;
	
	doesIgnores=i;
	doesReads=r;
	doesWatches=w;
	
	title=document.title;

}

function ignoreThread(threadNo) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"ignore=thread&thread="+threadNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processIgnoreThreadRequest;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processIgnoreThreadRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				var threadElement=document.getElementById("thread"+response);
				
				//thread element found
				if (threadElement!=null) {
		
					//hide thread element
					threadElement.style.display="none";
					
					var threadBottomElement=document.getElementById("thread"+response+"bottom");
				
					//thread bottom element found
					if (threadBottomElement!=null) {
					
						//hide thread bottom element
						threadBottomElement.style.display="none";
						
					}
					
					var ignoredThreadsSpan=document.getElementById("ignoredThreadsSpan");
					
					//ignored thread span found
					if (ignoredThreadsSpan!=null) {
					
						//make sure ignored threads span is shown
						ignoredThreadsSpan.style.display="";
						
					}

				}
			
			}

		}

	}

}

function unignoreThread(threadNo) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"unignore=thread&thread="+threadNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processUnignoreThreadRequest;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processUnignoreThreadRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {

				var threadElement=document.getElementById("thread"+response);
				
				//thread element found
				if (threadElement!=null) {
				
					//hide thread element
					threadElement.style.display="none";
				
				}
			
			}

		}

	}

}

function markThreadAsRead(threadNo) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"mark=read&thread="+threadNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processMarkThreadAsReadRequest;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processMarkThreadAsReadRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				//mark thread as read
				actuallyMarkThreadAsRead(response);
			
			}

		}

	}

}

function actuallyMarkThreadAsRead(threadNo) {

	var articlesElement=document.getElementById("thread"+threadNo+"articles");

	//articles element found (list)
	if (articlesElement!=null) {

		var articleNos=articlesElement.innerHTML.split(",");

		for (var a=0; a<articleNos.length; a++) {

			var articleElement=document.getElementById("article"+articleNos[a]);

			//article element found
			if (articleElement!=null) {

				//mark article as read
				articleElement.className="fwpForumsRead";

			}

		}
		
	//articles element not found (summary)
	} else {
	
		var threadLinkElement=document.getElementById("thread"+threadNo+"link");

		//thread link element found
		if (threadLinkElement!=null) {

			//mark thread link as read
			threadLinkElement.className="fwpForumsRead";

		}
	
	}

	var markAsReadSpan=document.getElementById("thread"+threadNo+"markRead");
	var markAsUnreadSpan=document.getElementById("thread"+threadNo+"markUnread");

	//mark as read span and mark as unread span found
	if ((markAsReadSpan!=null)&&(markAsUnreadSpan!=null)) {

		//hide mark as read span
		markAsReadSpan.style.display="none";

		//show mark as unread span
		markAsUnreadSpan.style.display="";

	}

}

function markThreadAsUnread(threadNo) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"mark=unread&thread="+threadNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processMarkThreadAsUnreadRequest;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processMarkThreadAsUnreadRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				//mark thread as unread
				actuallyMarkThreadAsUnread(response);
			
			}

		}

	}

}

function actuallyMarkThreadAsUnread(threadNo) {

	var articlesElement=document.getElementById("thread"+threadNo+"articles");

	//articles element found (list)
	if (articlesElement!=null) {

		var articleNos=articlesElement.innerHTML.split(",");

		for (var a=0; a<articleNos.length; a++) {

			var articleElement=document.getElementById("article"+articleNos[a]);

			//article element found
			if (articleElement!=null) {

				//mark article as read
				articleElement.className="fwpForumsUnread";

			}

		}
		
	//articles element not found (summary)
	} else {
	
		var threadLinkElement=document.getElementById("thread"+threadNo+"link");

		//thread link element found
		if (threadLinkElement!=null) {

			//mark thread link as read
			threadLinkElement.className="fwpForumsUnread";

		}
	
	}

	var markAsReadSpan=document.getElementById("thread"+threadNo+"markRead");
	var markAsUnreadSpan=document.getElementById("thread"+threadNo+"markUnread");

	//mark as read span and mark as unread span found
	if ((markAsReadSpan!=null)&&(markAsUnreadSpan!=null)) {

		//show mark as read span
		markAsReadSpan.style.display="";

		//hide mark as unread span
		markAsUnreadSpan.style.display="none";

	}
		
}

function watchThread(threadNo) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"watch=thread&thread="+threadNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processWatchThreadRequest;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processWatchThreadRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				var watchingElement=document.getElementById("thread"+response+"watching");
				var watchSpan=document.getElementById("thread"+response+"watch");
				var unwatchSpan=document.getElementById("thread"+response+"unwatch");

				//watching element, watch span and unwatch span found
				if ((watchingElement!=null)&&(watchSpan!=null)&&(unwatchSpan!=null)) {

					//show watching element
					watchingElement.style.display="";
					
					//hide watch span
					watchSpan.style.display="none";

					//show unwatch span
					unwatchSpan.style.display="";

					var watchedThreadsSpan=document.getElementById("watchedThreadsSpan");
					
					//watched thread span found
					if (watchedThreadsSpan!=null) {
					
						//make sure watched threads span is shown
						watchedThreadsSpan.style.display="";
						
					}

				}

			
			}

		}

	}

}

function unwatchThread(threadNo) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"unwatch=thread&thread="+threadNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processUnwatchThreadRequest;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processUnwatchThreadRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				var watchingElement=document.getElementById("thread"+response+"watching");
				var watchSpan=document.getElementById("thread"+response+"watch");
				var unwatchSpan=document.getElementById("thread"+response+"unwatch");

				//watching element, watch span and unwatch span found
				if ((watchingElement!=null)&&(watchSpan!=null)&&(unwatchSpan!=null)) {

					//hide watching element
					watchingElement.style.display="none";
					
					//show watch span
					watchSpan.style.display="";

					//hide unwatch span
					unwatchSpan.style.display="none";

				}

			
			}

		}

	}

}

function likeArticle(articleNo,likes,dislikes) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"like=article&article="+articleNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processLikeArticleRequest;
	req.open("GET",url,true);
	req.send(null);
	
	//store likes and dislikes for later
	thisArticleLikes=likes;
	thisArticleDislikes=dislikes;
	
	return false;

}

function processLikeArticleRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				var articleLikeLinkElement=document.getElementById("article"+response+"likeLink");
				
				//article like link element found
				if (articleLikeLinkElement!=null) {
				
					//hide article like link element
					articleLikeLinkElement.style.display="none";

				}
				
				var articleLikesElement=document.getElementById("article"+response+"likes");
				
				//article likes element found
				if (articleLikesElement!=null) {
				
					//set content
					articleLikesElement.innerHTML="<img src=\"graphics/like.png\" style=\"height:12px;width:13px\" alt=\""+(thisArticleLikes+1)+" "+((thisArticleLikes+1)==1?"person likes":"people like")+" this article\" title=\""+(thisArticleLikes+1)+" "+((thisArticleLikes+1)==1?"person likes":"people like")+" this article\" /> "+(thisArticleLikes+1)+" "+((thisArticleLikes+1)==1?"person":"people");
					
					//show article likes element
					articleLikesElement.style.display="";
				
				}
			
			}

		}

	}

}

function dislikeArticle(articleNo,likes,dislikes) {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"dislike=article&article="+articleNo+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processDislikeArticleRequest;
	req.open("GET",url,true);
	req.send(null);
	
	//store likes and dislikes for later
	thisArticleLikes=likes;
	thisArticleDislikes=dislikes;
	
	return false;

}

function processDislikeArticleRequest() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not zero
			if (response!=0) {
			
				var articleDislikeLinkElement=document.getElementById("article"+response+"dislikeLink");
				
				//article dislike link element found
				if (articleDislikeLinkElement!=null) {
				
					//hide article dislike link element
					articleDislikeLinkElement.style.display="none";

				}
				
				var articleDislikesElement=document.getElementById("article"+response+"dislikes");
				
				//article dislikes element found
				if (articleDislikesElement!=null) {
				
					//set content
					articleDislikesElement.innerHTML="<img src=\"graphics/dislike.png\" style=\"height:12px;margin-bottom:-4px;width:13px\" alt=\""+(thisArticleDislikes+1)+" "+((thisArticleDislikes+1)==1?"person dislikes":"people dislike")+" this article\" title=\""+(thisArticleDislikes+1)+" "+((thisArticleDislikes+1)==1?"person dislikes":"people dislike")+" this article\" /> "+(thisArticleDislikes+1)+" "+((thisArticleDislikes+1)==1?"person":"people");
					
					//show article dislikes element
					articleDislikesElement.style.display="";
				
				}
			
			}

		}

	}

}

function startCheckingForNewArticles() {

	//check for new articles in x seconds
	window.setTimeout("checkForNewArticles();",(CHECKFORNEWARTICLESEVERYSECONDS*1000));
	
}

function checkForNewArticles() {

	var url="ajax.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&":"")+"check=new&newest="+newestArticleNo+(threadNo==0?"":"&thread="+threadNo)+"&time="+new Date().getTime();

	//proper browser
	if (window.XMLHttpRequest)
		req=new XMLHttpRequest();

	//internet explorer 6 or earlier
	else if (window.ActiveXObject)
		req=new ActiveXObject("Microsoft.XMLHTTP");

	req.onreadystatechange=processCheckForNewArticles;
	req.open("GET",url,true);
	req.send(null);
	
	return false;

}

function processCheckForNewArticles() {

	//loaded
	if (req.readyState==4) {

		//ok
		if (req.status==200) {

			var response=unescape(req.responseText);

			//not blank
			if (response!="") {
			
				var added;
				var articleNo;
				var articleThreadNo;
				var parentNo;
				var timePosted;
				var author;
				var shortSubject;
				var subject;
				
				var lines=response.split("\n");
				
				for (var a=0; a<(lines.length/7); a++) {
				
					added=false;
					articleNo=parseInt(lines[a*7]);
					articleThreadNo=parseInt(lines[a*7+1]);
					parentNo=parseInt(lines[a*7+2]);
					timePosted=lines[a*7+3];
					author=lines[a*7+4];
					shortSubject=lines[a*7+5];
					subject=lines[a*7+6];
				
					//new thread
					if (parentNo==0) {
					
						//get articles div
						var articlesDiv=document.getElementById("fwpArticles");
						
						//articles div found
						if (articlesDiv!=null) {
						
							//get no articles found p
							var noArticlesFoundP=document.getElementById("noArticlesFound");
						
							//get first thread div
							var firstThreadDiv=document.getElementById("thread"+firstThreadNo);
							
							//no articles found p or first thread div found
							if ((noArticlesFoundP!=null)||(firstThreadDiv!=null)) {
						
								//create new thread div
								var newThreadDiv=document.createElement("div");

								//set class and id
								newThreadDiv.className="fwpThread";
								newThreadDiv.id="thread"+articleThreadNo;

								//create new article div
								var newArticleDiv=document.createElement("div");

								//set id
								newArticleDiv.id="article"+articleNo+"div";
								
								//prepare content
								var innerHTML="";
								
								//moderating
								if (moderating) {
								
									//add edit/delete
									innerHTML+="<span class=\"fwpEditDelete fwpForumsSmallText\"><a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"&amp;action=edit\">edit</a>&nbsp;-&nbsp;<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"&amp;action=delete\">delete</a></span>";

								}

								//add article
								innerHTML+="<span class=\"fwpArticle\"><span class=\"fwpForumsText\"><a class=\"fwpForums"+(doesReads?"Unread":"")+"\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"\" id=\"article"+articleNo+"\">"+shortSubject+"</a></span> by "+author+", <span class=\"fwpForumsSmallText\">"+timePosted+"</span></span>";
								
								//set content
								newArticleDiv.innerHTML=innerHTML;

								//add new article div
								newThreadDiv.appendChild(newArticleDiv);
								
								//create new articles span
								var newArticlesSpan=document.createElement("span");
								
								//set class and id
								newArticlesSpan.className="fwpArticles";
								newArticlesSpan.id="thread"+articleThreadNo+"articles";
								
								//set content
								newArticlesSpan.innerHTML=articleNo;
								
								//add new articles span
								newThreadDiv.appendChild(newArticlesSpan);

								//create new thread bottom div
								var newThreadBottomDiv=document.createElement("div");

								//set class and id
								newThreadBottomDiv.className="fwpThreadBottom";
								newThreadBottomDiv.id="thread"+articleThreadNo+"bottom";
								
								//moderating
								if (moderating) {
								
									//create new thread bottom left div
									var newThreadBottomLeftDiv=document.createElement("div");
									
									//set class and float
									newThreadBottomLeftDiv.className="fwpThreadBottom"+(threadLinksOnLeft?"Right":"Left");
									newThreadBottomLeftDiv.style.cssFloat=(threadLinksOnLeft?"right":"left");
									newThreadBottomLeftDiv.style.styleFloat=(threadLinksOnLeft?"right":"left");
									
									//set content
									newThreadBottomLeftDiv.innerHTML=
										"<span class=\"fwpForumsSmallText\">"+
										"<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=close\">close&nbsp;thread</a>&nbsp;-&nbsp;"+
										"<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=stick\">stick&nbsp;thread</a>"+
										"</span>";
										
									//add new thread bottom left div
									newThreadBottomDiv.appendChild(newThreadBottomLeftDiv);
									
								}
								
								//create new thread bottom right div
								var newThreadBottomRightDiv=document.createElement("div");

								//set class
								newThreadBottomRightDiv.className="fwpThreadBottom"+(threadLinksOnLeft?"Left":"Right");

								//prepare content
								innerHTML="<span class=\"fwpForumsSmallText\">";

								//does watches
								if (doesWatches)
									innerHTML+="<span id=\"thread"+articleThreadNo+"watching\" style=\"display:none\"><img src=\"graphics/eyes.png\" style=\"cursor:pointer;height:9px;width:19px\" alt=\"You are currently watching this thread\" /> </span>";

								//does ignores
								if (doesIgnores)
									innerHTML+="<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=ignore\" onclick=\"return ignoreThread("+articleThreadNo+")\">ignore</a>&nbsp;-&nbsp;";

								//does watches
								if (doesWatches)
									innerHTML+=
										"<span id=\"thread"+articleThreadNo+"watch\">"+
										"<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=watch\" onclick=\"return watchThread("+articleThreadNo+")\">watch</a>&nbsp;-&nbsp;"+
										"</span><span id=\"thread"+articleThreadNo+"unwatch\" style=\"display:none\">"+
										"<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=stop\" onclick=\"return unwatchThread("+articleThreadNo+")\">don\'t&nbsp;watch</a>&nbsp;-&nbsp;"+
										"</span>";

								//does reads
								if (doesReads)
									innerHTML+=
										"<span id=\"thread"+articleThreadNo+"markRead\">"+
										"<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=read\" onclick=\"return markThreadAsRead("+articleThreadNo+")\">mark&nbsp;read</a>&nbsp;-&nbsp;"+
										"</span><span id=\"thread"+articleThreadNo+"markUnread\" style=\"display:none\">"+
										"<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+(startNo==0?"":"start="+startNo+"&amp;")+"thread="+articleThreadNo+"&amp;action=unread\" onclick=\"return markThreadAsUnread("+articleThreadNo+")\">mark&nbsp;unread</a>&nbsp;-&nbsp;"+
										"</span>";

								//add view all
								innerHTML+="<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"thread="+articleThreadNo+"\">view&nbsp;all</a></span>";
								
								//set content
								newThreadBottomRightDiv.innerHTML=innerHTML;

								//add new thread bottom right div
								newThreadBottomDiv.appendChild(newThreadBottomRightDiv);
								
								//add new thread bottom div
								newThreadDiv.appendChild(newThreadBottomDiv);
								
								//set to not displayed
								newThreadDiv.style.display="none";
								
								//no articles found p found
								if (noArticlesFoundP!=null) {
								
									//hide no articles found p
									noArticlesFoundP.style.display="none";
									
									//add new thread div
									articlesDiv.insertBefore(newThreadDiv,noArticlesFoundP);
									
									//set thread to appear
									new Effect.Appear(newThreadDiv,{duration:1,from:0,to:1.0});
									
								//first thread div found
								} else {
								
									//add new thread div
									articlesDiv.insertBefore(newThreadDiv,firstThreadDiv);
								
									//set thread to appear
									new Effect.Appear(newThreadDiv,{duration:1,from:0,to:1.0});
									
								}

								//update first thread no
								firstThreadNo=articleThreadNo;
								
								added=true;
								
							}
							
						}
					
					//not new thread
					} else {
				
						//get thread div
						var threadDiv=document.getElementById("thread"+articleThreadNo);
						
						//thread div found
						if (threadDiv!=null) {
						
							//thread div not hidden
							if (threadDiv.style.display!="none") {
						
								//get parent article div
								var parentArticleDiv=document.getElementById("article"+parentNo+"div");

								//parent article div found
								if (parentArticleDiv!=null) {
								
									//prepare padding-left
									var parentArticlePaddingLeft=0;
									
									//get spans
									var parentArticleDivSpans=parentArticleDiv.getElementsByTagName("span");
									
									for (var s=0; s<parentArticleDivSpans.length; s++) {
									
										//class is fwpArticle
										if (parentArticleDivSpans[s].className=="fwpArticle") {
										
											//padding-left found
											if (parentArticleDivSpans[s].style.paddingLeft!="")
												parentArticlePaddingLeft=parseInt(parentArticleDivSpans[s].style.paddingLeft);
												
											break;
											
										}
										
									}
								
									//create new article div
									var newArticleDiv=document.createElement("div");

									//set id
									newArticleDiv.id="article"+articleNo+"div";

									//prepare content
									var innerHTML="";
									
									//moderating
									if (moderating) {
									
										//add edit/delete
										innerHTML+="<span class=\"fwpEditDelete fwpForumsSmallText\"><a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"&amp;action=edit\">edit</a>&nbsp;-&nbsp;<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"&amp;action=delete\">delete</a></span>";
										
									}

									//add article
									innerHTML+="<span class=\"fwpArticle\" style=\"padding-left:"+(parentArticlePaddingLeft+16)+"px\"><span class=\"fwpForumsText\"><a class=\"fwpForums"+(doesReads?"Unread":"")+"\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"\" id=\"article"+articleNo+"\">"+shortSubject+"</a></span> by "+author+", <span class=\"fwpForumsSmallText\">"+timePosted+"</span></span>";
									
									//set content
									newArticleDiv.innerHTML=innerHTML;

									//set to not displayed
									newArticleDiv.style.display="none";
									
									var divToInsertBefore=null;
									
									var n=0;
									var nodesInThread=threadDiv.getElementsByTagName("div");

									while ((n<nodesInThread.length)&&(divToInsertBefore==null)) {

										//found parent article div
										if (nodesInThread[n].id=="article"+parentNo+"div") {

											foundParentArticleDiv=true;

											//next node is an article div
											if (nodesInThread[n+1].id.indexOf("article")==0) {

												var articleDivSpans=nodesInThread[n+1].getElementsByTagName("span");
												
												//article div spans found
												if (articleDivSpans!=null) {

													//article with the right padding found
													if (parseInt(articleDivSpans[0].style.paddingLeft)<=(parentArticlePaddingLeft+16)) {
													
														//insert before the next node
														divToInsertBefore=nodesInThread[n+1];
													
													}
												
												}
											
											//next node is not an article div
											} else {
											
												//insert before next node
												divToInsertBefore=nodesInThread[n+1];
											
											}
											
											
										}
										
										n++;
									
									}

									//div to insert before found
									if (divToInsertBefore!=null) {
									
										//add new article div
										threadDiv.insertBefore(newArticleDiv,divToInsertBefore);

									//div to insert before not found
									} else {
									
										//add new article div
										parentArticleDiv.appendChild(newArticleDiv);

									}

									//set thread to appear
									new Effect.Appear(newArticleDiv,{duration:1,from:0,to:1.0});

									//get new articles span
									var newArticlesSpan=document.getElementById("thread"+articleThreadNo+"articles");

									//add new article no
									newArticlesSpan.innerHTML=newArticlesSpan.innerHTML+","+articleNo;

									var markAsReadSpan=document.getElementById("thread"+articleThreadNo+"markRead");
									var markAsUnreadSpan=document.getElementById("thread"+articleThreadNo+"markUnread");

									//mark as read span and mark as unread span found
									if ((markAsReadSpan!=null)&&(markAsUnreadSpan!=null)) {

										//show mark as read span
										markAsReadSpan.style.display="";

										//hide mark as unread span
										markAsUnreadSpan.style.display="none";

									}

									added=true;

								}
								
							}
							
						}
					
					}
					
					//added
					if (added) {
					
						//get newest article left and right
						var newestArticleLeft=document.getElementById("newestArticleLeft");
						var newestArticleRight=document.getElementById("newestArticleRight");

						//newest article left and right found
						if ((newestArticleLeft!=null)&&(newestArticleRight!=null)) {

							//set content
							newestArticleLeft.innerHTML="Newest "+(doesReads?"unread":"article")+":&nbsp;";
							newestArticleRight.innerHTML="<span class=\"fwpForumsText\"><a class=\"fwpForums"+(doesReads?"Unread":"")+"\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"\">"+subject+"</a></span> by "+author+", <span class=\"fwpForumsSmallText\">"+timePosted+"&nbsp;<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleThreadNo+"\">view thread</a></span>";

						}

						//update oldest article
						if (updateOldestArticle) {

							//get oldest article left and right
							var oldestArticleLeft=document.getElementById("oldestArticleLeft");
							var oldestArticleRight=document.getElementById("oldestArticleRight");

							//oldest article left and right found
							if ((oldestArticleLeft!=null)&&(oldestArticleRight!=null)) {

								//set content
								oldestArticleLeft.innerHTML="Oldest "+(doesReads?"unread":"article")+":&nbsp;";
								oldestArticleRight.innerHTML="<span class=\"fwpForumsText\"><a class=\"fwpForums"+(doesReads?"Unread":"")+"\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleNo+"\">"+subject+"</a></span> by "+author+", <span class=\"fwpForumsSmallText\">"+timePosted+"&nbsp;<a class=\"fwpForums\" href=\"forum.jsp?"+(forumNoFromDomainName==0?"id="+forumNo+"&amp;":"")+"article="+articleThreadNo+"\">view thread</a></span>";

							}

							//do not update oldest article again
							updateOldestArticle=false;

						}

						//increase new articles
						newArticles++;
						
						//update title
						document.title="("+newArticles+") "+title;
						
					}

					//new newest article no
					if (articleNo>newestArticleNo) {
					
						//update newest article no
						newestArticleNo=articleNo;
						
					}
				
				}
			
			}
			
			//check for new articles in x seconds
			window.setTimeout("checkForNewArticles();",(CHECKFORNEWARTICLESEVERYSECONDS*1000));

		}

	}

}

function doBold() {
	return doCommand("[b]","[/b]");
}

function doItalic() {
	return doCommand("[i]","[/i]");
}

function doUnderline() {
	return doCommand("[u]","[/u]");
}

function doStrike() {
	return doCommand("[s]","[/s]");
}

function doImage() {
	return doCommand("[img]","[/img]");
}

function doUrl() {
	return doCommand("[url]","[/url]");
}

function doCommand(prefix,suffix) {

	var content=document.getElementById("content");
	
	//content found
	if (content!=null) {
	
		content.focus();
		
		var scrollPos;
		var sel;
		
		//document.selection
		if (document.selection)
			sel=document.selection.createRange().text;
			
		//content.setSelectionRange
		else if (content.setSelectionRange) {

			var start=content.selectionStart;
			var end=content.selectionEnd;
			
			scrollPos=content.scrollTop;
			sel=content.value.substring(start, end);

		}

		//excluding space character, if any
		if (sel.match(/ $/)) {
			
			sel=sel.substring(0,sel.length-1);
			suffix=suffix+" ";

		}

		var subst=prefix+sel+suffix;

		//document.selection
		if (document.selection) {
		
			var range=document.selection.createRange().text=subst;
			content.caretPos-=suffix.length;
			
		//content.setSelectionRange
		} else if (content.setSelectionRange) {
		
			content.value=content.value.substring(0,start)+subst+content.value.substring(end);
		
			//something selected
			if (sel)
				content.setSelectionRange(start+subst.length,start+subst.length);

			//nothing selected
			else
				content.setSelectionRange(start+prefix.length,start+prefix.length);

			//reset scroll position
			content.scrollTop=scrollPos;

		}
		
	}

	return false;
	
}
