function alertContents(http_request) {

        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                HandleResponse(http_request.responseText);
				//alert(http_request.responseText);
            } else {
                alert('There was a problem with the request.');
            }
        }
    }


function makeRequest(url) {

        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                //http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }


		http_request.onreadystatechange = function() { alertContents(http_request); }
        http_request.open('GET', url, true);
        http_request.send(null);
    }



function HandleResponse(text) {
//	alert(text);
	var separator = String.fromCharCode(1);
	var params = text.split(separator);
	switch (params[0]) {
		case "cmd_update_msg":
			if (params[1] == "UPDATE") {
				var txt = GetObj("textarea");
					txt.value = params[2];
					setCaretToEnd(txt);
					chatmsg.focus();
			} //if
		break;
		
		case "cmd_new_msgs":
			if (params.length > 1) {
				var i;
				for (i=1; i<params.length; i++) {
					var details = params[i].split("|");
					if ((details[0] != "") && (details[1] != "")) {
						var id = GetObj("user_id").value;
						var dest = "conversation.php?id=" + id + "&id_friend=" + details[1] + "&file=" + details[0];
						NewWindow(dest);
					}
				}
			}
		break;
		
		
		case "cmd_create_msg":
			if (params[1] != "CREATED") {
				alert('Cannot create conversation! User is offline or there is already an opened conversation with this user');
			}
		break;
		
		case "cmd_update_activity":
			if (params.length > 1) {
				var i;
				for (i=1; i<params.length; i++) {
					var details = params[i].split("|");

					var span = GetObj("status_" + details[0]);
						if (span)
						span.innerHTML = details[1];
				}
			}
		break;
		
		
		case "cmd_leave":
			intUpdate=window.setTimeout("CloseWindow()", 1);
		break;
	} //switch

} //fct HandleResponse





function LeaveChat(filename, who) {
	makeRequest("include/chat.php.module.leave.php?filename=" + filename + "&who=" + who);
}



function setCaretToEnd (control) {
		if (!control) return;
        var length = control.value.length;
        if (control.createTextRange) {
            var range = control.createTextRange();
            range.collapse(false);
            range.select();
        }
        else if (control.setSelectionRange) {
            control.focus();
            control.setSelectionRange(length, length);
        }
        control.scrollTop = length ;
    }
	
function CloseWindow() {
	window.close();
}