/**************************************************************************************
*                                      TalkBox                                        *
*			Developed By: AnzuMerc(dmzfu.com) && SunKing(empireofthesun.net)          *
*       Special Thanks To: BxK(mattcworld.com) && mrtrc266(monsters-mansion.com)      *
**************************************************************************************/

var id;
var refresh = 2222; //initial shout refresh value
var seconds=300; //5 min to idle
var idle = 0; //set initial idle value
var s = 1; //start scroll check
var focus = true;
window.onblur = function(){focus = false;}
window.onfocus = function(){focus = true;}
document.onblur = window.onblur;
document.focus = window.focus;

// 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);
}

//Ajax Stuff
function TalkBox_Jax(){
	var talk_jax

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

//-----Start Scroll Stuff [001]-----

//Single Scroll
function Single_Scroll(){
	var objDiv = document.getElementById("shouts");
	objDiv.scrollTop = objDiv.scrollHeight;
}

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

// 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)
	{
		s = 1;
	}
	// Else set var = 2 (terminate auto scroll)
	if (objDiv.scrollTop + objDiv.clientHeight !== objDiv.scrollHeight)
	{
		s = 2;
	}
	setTimeout("checkscroll()",500);
}

//-----End Scroll Stuff-----

//-----Start Shout Stuff [003]------

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

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

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

// Check to see if content has changed
function CheckShouts(){
if(idle != 1)
{
	var talk_jax = TalkBox_Jax();

	talk_jax.onreadystatechange = function()
	{
		if(talk_jax.readyState == 4)
		{
			b = talk_jax.responseText;
			if(b != refresh)
			{
            if(refresh != 2222)
			{
			if(b == "clear")
			{
			GetShouts(1);
			refresh = b;
			}
			else
			{
			GetShouts(2,0);
			title();
			refresh = b;
			}
			}
			else
			{
			refresh = b;
			}
			}

		}
	}
	nocache = Math.random();
	talk_jax.open("GET", boardurl+"/talkbox/refresh.txt?nocache="+nocache);
	talk_jax.send(null);
	}

}

//handle response from GetShouts
function talkbox_reponse(response,full){
if(full == 1)
{
document.getElementById('shouts').innerHTML = response;
}
else
{
	document.getElementById('shouts').innerHTML += response;
	}
}

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

// Edit post start
function Edit(eid){
	var talk_jax = TalkBox_Jax();

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

// Edit post function
function EditPost(get,id){
	var talk_jax = TalkBox_Jax();

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

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

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

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



//-----Start Title Bar/Timeout Stuff [004]-----

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

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

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

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;

}

//-----End Title Bar/Timeout Stuff-----


// Call whats needed.
GetShouts(1);
CheckShouts();
setInterval("CheckShouts()",1000);
