/*******************************************
*  TALKBOX                                 *
*                                          *
*  by AnzuMerc (http://dmzfu.com)          *
*  and SunKing (http://empireofthesun.net) *
*                                          *
*  Special thanks to:                      *
*  BxK (http://mattcworld.com)             *
*  mrtrc266 (http://monsters-mansion.com)  *
*******************************************/
// Add scroll to the onload
if (window.attachEvent)
{
	window.attachEvent('onload', scroll);
}
else if (window.addEventListener)
{
	window.addEventListener('load', scroll, false);
}
else
{
	document.addEventListener('load', scroll, false);
}
function getXMLHttp(){
	var xmlHttp

	try {
	// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch(e) {
	// Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
				alert(no_ajax)
				return false;
			}
		}
	}
	return xmlHttp;
}

// Post scroll
function scroll2(){
	var objDiv = document.getElementById("shouts");
	objDiv.scrollTop = objDiv.scrollHeight;
}
// Set intial scroll
var a = 1;

// Scroll
function scroll(){
// If var = 1 (if scroll is at bottom)
	if(a == 1)
	{
		var objDiv = document.getElementById("shouts");
		objDiv.scrollTop = objDiv.scrollHeight;
		setTimeout("scroll()",900)
	}
}

function GetXmlHttpObject(){
	if (window.XMLHttpRequest)
	{
		// Code for IE7+, Firefox, Chrome, Opera, Safari
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject)
	{
		// Code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

// Get shouts
function GetShouts(getcheck,rfshout){
	var xmlHttp = getXMLHttp();
	if(getcheck == 1){
	getcheck = "&firstget=1&";
	full = 1;
	var d=new Date();
	rfshout = d.getTime();
	}
	else{
	getcheck = "&";
	full = 0;
	}

	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			HandleResponsed(xmlHttp.responseText,full);
			scroll();
			checkscroll();
		}
	}

	// For IE cache
	nocache = Math.random();
	xmlHttp.open("GET", boardurl+"/talkbox/shout.php?getshout"+getcheck+'nocache = '+nocache+'&rfshout='+rfshout, true);
	xmlHttp.send(null);
}

// Check to see what the scroll postition is.
function checkscroll(){
	var objDiv = document.getElementById("shouts");
	// If scroll at bottom set a = 1 (initialize auto scroll)
	if (objDiv.scrollTop + objDiv.clientHeight === objDiv.scrollHeight)
	{
		a = 1;
	}
	// Else set var = 2 (terminate auto scroll)
	if (objDiv.scrollTop + objDiv.clientHeight !== objDiv.scrollHeight)
	{
		a = 2;
	}
	setTimeout("checkscroll()",500);
}

var id;
var md=1;
var idle = 0;
// Check to see if content has changed
function CheckShouts(){
if(idle != 1)
{
	var xmlHttp = getXMLHttp();

	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			b = xmlHttp.responseText;
			if(b.substr(0,1) == 2)
			{
			if(md != b.replace("2 ", ""))
			{
			md = b.replace("2 ", "");
			GetShouts(0,md);
			title();
			b = 1;
			}
			}
			if(b == 1){
			}
			if(b == 3)
			{
			GetShouts(1,0);
			title();
			}

		}
	}
	xmlHttp.open("GET", boardurl+"/talkbox/check.php?check=1");
	xmlHttp.send(null);
	}
}

// Edit post start
function Edit(eid){
	var xmlHttp = getXMLHttp();

	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			EditPost(xmlHttp.responseText,eid);
		}
	}
	xmlHttp.open("GET", boardurl+"/talkbox/functions.php?single=1&"+'id='+eid);
	xmlHttp.send(null);
}

// Edit post function
function EditPost(get,id){
	var xmlHttp = getXMLHttp();

	var update
	update = prompt(update_shout,get);
	if(update || update == "")
	{
		xmlHttp.open('POST', boardurl+'/talkbox/functions.php?update=1');
		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHttp.send('id='+id+'&update='+update);
		return true;
	}
	else
        return false;
}

// Delete shout
function Delete(id){
	if(confirm(delete_prompt))
	{
		var xmlHttp = getXMLHttp();
		xmlHttp.open('POST', boardurl+'/talkbox/functions.php?del=1');
		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHttp.send('id='+id);
	}
}

function HandleResponsed(response,full){
if(full == 1)
{
document.getElementById('shouts').innerHTML = response;
}
else
{
	document.getElementById('shouts').innerHTML += response;
	}
}

// Ban feature
function Ban(ip,user){
	if(confirm(ban_prompt+user+"?"))
	{
		var xmlHttp = getXMLHttp();
		xmlHttp.open('POST', boardurl+'/talkbox/functions.php?ban=1');
		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHttp.send('banip='+ip);
	}
}

// Unban feature
function Unban(ipb,user){
	if(confirm(unban_prompt+user+"?"))
	{
		var xmlHttp = getXMLHttp();
		xmlHttp.open('POST', boardurl+'/talkbox/functions.php?unban=1');
		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHttp.send('unbanip='+ipb);
	}
}

// Send message and username via ajax
function SendShout(){
	var xmlHttp = getXMLHttp();
	xmlHttp.open('POST', boardurl+'/talkbox/shout.php?sendshout');
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	message = escape(document.talkbox.shout.value)
	message = encodeURIComponent(message)
	xmlHttp.send('message='+message);
	document.talkbox.shout.value = '';
	scroll2();
}

// Titlebar notification
var titlet = document.title;
function title1(){
	document.title = title_notify;
	setTimeout("title2()", 2000);

	//soundManager.play("sound");
}

function title2(){
	document.title = titlet;
}

var focus = true;
window.onblur = function(){focus = false;}
window.onfocus = function(){focus = true;}
document.onblur = window.onblur;
document.focus = window.focus;

function title(){
	if(focus){}
	else {
		title1();
	}
}

// Get media data
function GetMedia(){
	var xmlHttp = getXMLHttp();

	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			HandleMedia(xmlHttp.responseText);
		}
	}
	// For IE cache
	nocache = Math.random();
	xmlHttp.open("GET", boardurl+"/talkbox/functions.php?mget;"+'nocache = '+nocache, true);
	xmlHttp.send(null);
}

function HandleMedia(response){
	document.getElementById('mbox').innerHTML = response;
}

// Check for updated media
function CheckMedia(){
if(idle != 1)
{
	var xmlHttp = getXMLHttp();

	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			c = xmlHttp.responseText;
			if(c == 2)
			{
				GetMedia();
			}
			if(c == 1){}
		}
	}
	xmlHttp.open("GET", boardurl+"/talkbox/mcheck.php?mcheck=1");
	xmlHttp.send(null);
	}
}
var seconds=300; //5 min
var idle = 0;
function countDown() {
if (seconds <= 0)
       {

document.getElementById('shouts').innerHTML="<font style=\"color:#ddd;font-weight:bold;font-size:1.5em;text-align:center;margin-top:80px;\">Sorry, you have timed out...</font>";
document.title = "[IDLE]";
idle = 1;

       }
	   else
	   {
       seconds--;
	   }
	         window.setTimeout("countDown()",1000);
}



function resetCounter()
{
if (seconds <= 0)
{
GetShouts(1);
}
      seconds=300;
	  idle = 0;
	  document.title = titlet;


}
// Call whats needed.
GetShouts(1);
GetMedia();
CheckShouts();
//setInterval("CheckShouts()",800);
setInterval("CheckMedia()",5000);
setInterval("CheckShouts()",1200);
