/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var timer;

function ajaxpage(url, containerid)
{
	var page_request = false;
	if(window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
	else if(window.ActiveXObject) // if IE
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){}
		}
	}
	else
		return false;
	page_request.onreadystatechange = function()
	{
		loadpage(page_request, containerid);
	}
	page_request.open('GET', url, true);
	page_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	page_request.send(null);
}

function ajaxpagemultiple(url, containerid)
{
	var page_request = false;
	if(window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
	else if(window.ActiveXObject) // if IE
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){}
		}
	}
	else
		return false;
	page_request.onreadystatechange = function()
	{
		loadpage(page_request, containerid);
	}
	page_request.open('GET', url, true);
	page_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	page_request.send(null);

	var seconds = parseInt(readCookie('refreshtime'));
	if(seconds == 0)
		seconds = 30;

	timer = setTimeout("ajaxpagemultiple('"+url+"', '"+containerid+"')", seconds * 1000);
}

function ajaxsubmit(url, params, loadURL, loadID)
{
	var page_request = false;
	if(window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
	else if (window.ActiveXObject) // if IE
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){}
		}
	}
	else
		return false;
		
	var encodedParams = '';
	if(isArray(params))
	{
		var q = 0;
		for(q = 0; q < params.length; q += 2)
		{
			encodedParams += encodeURIComponent(params[q]) + '=' + encodeURIComponent(params[q + 1]);
			if(q < params.length - 2)
			{
				encodedParams += '&';
			}
		}
	}
	else
		encodedParams = params;

	page_request.onreadystatechange = function()
	{
		checkpost(page_request, loadURL, loadID);
	}
	page_request.open('POST', url, true);
	page_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	page_request.send(encodedParams);
}

function loadpage(page_request, containerid)
{
	if(page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1))
	{
		var pagetext = page_request.responseText;
		var bodysearch = /<body[^>]*>/;
		var textsplit = pagetext.split(bodysearch, 2)
		
		if(textsplit.length != 1)
			document.getElementById(containerid).innerHTML = textsplit[1].substr(0, textsplit[1].indexOf('</body>'));
		else
			document.getElementById(containerid).innerHTML = pagetext;
		
		if(containerid == 'contentarea')
		{
			if(document.getElementById('floodwrapper') && document.getElementById('topicarea') && document.getElementById('postarea'))
			{
				setPaneHeight('floodwrapper', 'topicarea', 'postarea');
				scrollPane('postarea');
			}
		}
		else if(containerid == 'viewall')
		{
			window.scrollTo(0,99999);
		}
	}
}

function checkpost(page_request, loadURL, loadID)
{
	if(page_request.readyState == 4 && page_request.status != 200)
	{
		document.getElementById('errmessage').innerHTML = 'HTML Error: ' + page_request.status;
	}
	else if(page_request.readyState == 4 && page_request.status == 200)
	{
		if(loadURL != '' && loadID != '')
		{
			ajaxpage(loadURL, loadID);
		}
		var params = new Array();
		params = page_request.responseText.split('&');
		for(var q = 0; q < params.length; q++)
		{
			var bits = new Array();
			bits = params[q].split('=');
			var destination = decodeURIComponent(bits[0]);
			if(document.getElementById(destination).nodeName == 'INPUT')
				document.getElementById(destination).value = decodeURIComponent(bits[1]);
			else
				document.getElementById(destination).innerHTML = decodeURIComponent(bits[1]);
		}
	}
}

function setPaneHeight(parentid, pane1id, pane2id)
{
	parentpane = document.getElementById(parentid);
	pane1 = document.getElementById(pane1id);
	pane2 = document.getElementById(pane2id);

	pane2.style.height = (parentpane.offsetHeight - pane1.offsetHeight) + 'px';
}

function scrollPane(containerid)
{
	pane = document.getElementById(containerid);

	while(pane.scrollTop < pane.scrollHeight - pane.offsetHeight)
		pane.scrollTop = pane.scrollTop + 500;
}

function isArray(obj)
{
   if(obj.constructor.toString().indexOf('Array') == -1)
      return false;
   else
      return true;
}
