// JavaScript Document

var chat_busy = false;
var chat_interval = .5; // aantal seconden interval tussen update van online users
chat_interval *= 1000; // 2*1000 = 2000 miliseconden = 2 sec

// periodieke controle op nieuwe berichten (door eerst in chatroomcheck te checken of user in de chatbox is) aanzetten:
chatroom = setInterval("chatroomcheck()", chat_interval);


function NewMessage(bericht, send)
{
 if (bericht)
 {
   document.book_chat.chatmessage.value = ''; // resetten van het input formulier
 }


 if (((bericht != "null") && (bericht != "undefined") && (bericht != "") && (send)) || (!send)) // checkt of 't te verzenden bericht iets is
 {

//   if ((!send && !chat_busy) || send) // beveiliging tegen het tegelijk ophalen van berichten (geldt niet voor het verzenden van berichten)
//   {  
     if (!send)
     {
		 chat_busy = true;
	 }

	if (send) // voorkomen dat er tegelijk info wordt opgehaald
	{
		var Sending_state = document.getElementById('chat_sm');
		Sending_state.innerHTML = "<!--VERZENDEN-->";
	}
	 
     var xmlhttp=false;

	  /*@cc_on @*/
	  /*@if (@_jscript_version >= 5)
	  // JScript gives us Conditional compilation, we can cope with old IE versions.
	  // and security blocked creation of the objects.
    try {
     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
     try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (E) {
      xmlhttp = false;
     }
    }
    @end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
	{
  	  xmlhttp = new XMLHttpRequest();  
	}


	  if(xmlhttp) 
	  {
  	    var chatstate = document.getElementById('chatreadystate');		// haalt de weergegeven status op
		var obj = document.getElementById('chatvenster');
		var chat_dataSource = '/content/bandsite/chatbox/message.php?' + Math.random(); 
	    if (bericht)
		{
		  var chat_dataSource = chat_dataSource + "&message=" + escape(bericht);
		}

		xmlhttp.open("GET", chat_dataSource);

		xmlhttp.onreadystatechange = function()
		{
		  if (xmlhttp.readyState == 4 && 
		    xmlhttp.status == 200) 
		  {
			if (xmlhttp.responseText)
			{
				obj.innerHTML += xmlhttp.responseText;

				var browser=navigator.appName;
				if (browser == 'Netscape')
				{
					obj.scrollTop = -900000000;
				} else
				{
					var version = defineVersion();
					if (version != "8") // IE8, scrollen net als firefox
					{
						obj.scrollTop = 900000000;
					} else {
						obj.scrollTop = -900000000;
					}
				}
				if(!send)
				{
				  MessageAlert();
				}
 			}

   			if (send) // voorkomen dat er tegelijk info wordt opgehaald
			{
				var Sending_state = document.getElementById('chat_sm');
				Sending_state.innerHTML = "<!--VERZONDEN-->";
				chatstate.innerHTML = 'Status: verzonden en ontvangen';					
			}

			if (!send)
     			{
		 		chat_busy = false;
     			}
  	        
			delete xmlhttp;
			xmlhttp = null;
		  } else if (xmlhttp.readyState == 1 && send)
		  {
  	         chatstate.innerHTML = 'Status: bezig met verzenden <img src=\'/assets/ajax-loader.gif\' />';		    

	if (send) // voorkomen dat er tegelijk info wordt opgehaald
	{
	var Sending_state = document.getElementById('chat_sm');
	Sending_state.innerHTML = "<!--VERZENDEN-->";
	}

		  } else if ((xmlhttp.readyState == 2 || xmlhttp.readyState == 3) && send)
		  {
  	         chatstate.innerHTML = 'Status: bezig met verzenden <img src=\'/assets/ajax-loader.gif\' />';		    

	if (send) // voorkomen dat er tegelijk info wordt opgehaald
	{
	var Sending_state = document.getElementById('chat_sm');
	Sending_state.innerHTML = "<!--VERZENDEN-->";
	}

		  } else if ((xmlhttp.readyState != 1 && xmlhttp.readyState != 2 && xmlhttp.readyState != 3))
		  {
			  obj.innerHTML += '<span class="chat_robot">Ophalen berichten helaas niet gelukt.</span>', xmlhttp.responseText;
			  
	if (send) // voorkomen dat er tegelijk info wordt opgehaald
	{
	var Sending_state = document.getElementById('chat_sm');
	Sending_state.innerHTML = "<!--VERZONDEN-->";
	}

     		  	  if (!send)
     		  	  {
			 		chat_busy = false;
     		  	  }
		  }
		}
		xmlhttp.send(null);
	  }
   }
// } else { alert("wrong"); }
}


function chatroomcheck()
{
//alert('chatroomcheck');
  // checken of er mag worden gecheckt (en er niet al een bestand wordt verzonden dat tegelijk checkt):
	var Sending_state = document.getElementById('chat_sm');

if (chatbox.switcher && Sending_state.innerHTML != '<!--VERZENDEN-->')
  {
    update_chatvenster();
  }
}

function update_chatvenster()
{
	NewMessage();
}

function MessageAlert()
{
	if (document.ma_form.ma.checked)
	{
	  muziek = document.getElementById('chat_sound');
	  muziek.innerHTML = '<embed autostart="true" hidden="true" src="/assets/chat.wav">';
//	  putFocus(0,2); // focus terugbrengen bij het chatvenster
	}
	return;
}


// help functie (weergeven en verbergen van help informatie)
function ChatroomVerbergen(action)
{
	if(action == 'toon')
	{
		changeRule(9, 'visible');
		changeRule(10, 'hide');
	} else 
	{
		changeRule(9, 'hide');
		changeRule(10, 'visible');
	}
}
