var shouting = false;
var initialized = false;
var page = 1;
var box_id = 0;


function ajaxHandler() {
	this.http_request = false;
	if(window.XMLHttpRequest) { // Mozilla, Safari,...
		this.http_request = new XMLHttpRequest();
//      if(this.http_request.overrideMimeType) {
//         this.http_request.overrideMimeType('text/xml');
//      }
   } else if(window.ActiveXObject) { // IE
      try {
			this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
			try {
				this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }

   if(!this.http_request) {
      //alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
      return false
   }
   
	this.onreadystatechange = 
		function(rdy_func_name) {
		   this.http_request.onreadystatechange = rdy_func_name;
		}
   this.send = 
		function(type, url, post_vars) {
					this.http_request.open(type, url);
					this.http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
					this.http_request.setRequestHeader("Pragma", "no-cache");
					this.http_request.setRequestHeader("Cache-Control", "must-revalidate");
					this.http_request.setRequestHeader("If-Modified-Since", document.lastModified);
					this.http_request.setRequestHeader("X_EMERGE", "XMLHttpRequest");
					this.http_request.send(post_vars);
					

		}
}

function doShout(formObj) {
	ajax_shout = new ajaxHandler();
	ajax_shout.onreadystatechange(done_shout);

   shout_text = formObj.shout_text.value
   if(shout_text.replace(/ /g, '') == '') {
      alert('You must enter a shout!');
      return false
	}
	
   if(shouting == true) {
      alert("Already shouting...");
      return false;
   }
   ajax_shout.send("POST", "/ajax.php", "action=jAddShout&box_id="+box_id+"&shout_text="+encodeURIComponent(shout_text));
   shouting = true;
   formObj.shout_text.value = '';

   return false
}

function done_shout() {
	if(ajax_shout.http_request.readyState == 4 && ajax_shout.http_request.status == 200) {
		shouting = false;
		page = 1;
		requestShouts();
	}
}

function shoutbox_prev() {
   page = page+1;
   requestShouts();
}

function shoutbox_next() {
   page = (page>1) ? page-1 : 1;
   requestShouts();
}

function shoutbox_swap() {
	box_id = (box_id == 0) ? 1 : 0;
	requestShouts();
}
function requestShouts() {
	if(!shouting) {
		ShoutRequest = new ajaxHandler();
		ShoutRequest.onreadystatechange(getShouts);
		ShoutRequest.send("POST", "/ajax.php", "action=jShoutbox&box_id="+box_id+"&page="+page);
	}
}

function fetchObject(A) {
	if(document.getElementById){
		return document.getElementById(A);
	} else {
		if(document.all){
			return document.all[A];
		} else {
			if(document.layers){
				return document.layers[A];
			} else {
				return null
			}
		}
	}
}

function getShouts()	{
	if(ShoutRequest) {
		if(ShoutRequest.http_request.readyState == 4 && ShoutRequest.http_request.status == 200 && ShoutRequest.http_request.responseText) {
			shouts = fetchObject("shout_cont");
			shouts.innerHTML = ShoutRequest.http_request.responseText;
			setTimeout('requestShouts()', 20000);
		}
	}
}


function initialize() {
	initialized = true;
	requestShouts();
}


