﻿var __chat_get_counter = null;
var __chat_get_list = null;
var __num_rows_current = 0;
var __num_rows_last = -1;


// window.setInterval("__show_chat()",1000);

// window.setTimeout("__show_chat()", 500);


function get_request_object() {

                 //erstellen des requests
                 var req = null;

                try{
                    req = new XMLHttpRequest();
                }
                catch (ms){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (nonms){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }
	return req;
}



function __show_chat(){

             
		var req;

		// alert('Start');
		req = get_request_object();
		// alert(req);

                if (req == null)
                      { alert("Error creating request object! Your browser does not support XMLHttpRequests"); return }
                  
                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron      
                req.open("GET", '/queries/' + __chat_get_counter + '/data.xml', true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = function(){            
                    switch(req.readyState) {
                            case 4:
                            if(req.status!=200) {
                                // alert("Fehler:"+req.status); 
                            } else {    
                                // alert(req.responseText);

				response = req.responseText;


				m_list = response.match(/<num_rows>(\d+)<\/num_rows>/);

				if (!m_list) { /* alert('Error counting rows: \n\n' + response); */ return; }

				__num_rows_current = parseInt(m_list[1]);


				if (__num_rows_current == __num_rows_last) { /* alert('Gleiche Zeilenzahl'); */ 
					window.setTimeout("__show_chat()", 1000);
					return; 
				}

				__num_rows_last = __num_rows_current;

				var req2;
				req2 = get_request_object();
		                req2.open("GET", '/queries/' + __chat_get_list + '/data.xml', true);


		                req2.onreadystatechange = function(){            
                		    switch(req2.readyState) {
		                    case 4:
                		            if(req2.status!=200) {
                                		// alert("Fehler:"+req2.status); 
		                            } else {    
                		                // alert(req2.responseText);

		                                //schreibe die antwort in den div container mit der id content 

						// _rE_search = "<" + __chat_get_list + ">((.+?))"; //(.+?)<\/' + __chat_get_list + '>';

						var _rE_search = "<" + __chat_get_list + ">\\s*<id>(\\d+)</id>\\s*<owner>(.+?)</owner>\\s*<dt_written>(.+?)</dt_written>\\s*<message>(.+?)</message>\\s*</" + __chat_get_list + ">";

						// alert(_rE_search);

						var _rE = new RegExp(_rE_search, "g");


						m_list = _rE.exec(req2.responseText); // .match(_rE);
						// alert(m_list);
						i = 0;

						str_erg = '';

						while ((m_list) && (i < 50)) {
							i += 1;
							
							str_erg += "<tr><td class='chat-datetime'>" + m_list[3] + "</td><td class='chat-delim-date-owner'><br/></td><td class='chat-owner'>" + (m_list[2] != "not-registered-user-group" ? m_list[2] : "<br/>") + "</td><td class='chat-delim-owner-message'><br/></td><td class='chat-message'>" + m_list[4] + "</td></tr>\n";

							m_list = _rE.exec(req2.responseText);
						}

						// alert(i);
						// alert(str_erg);


	                	                document.getElementById('showResult').innerHTML = "<table class='chat-table' cellpadding='0' cellspacing='0'>\n" + str_erg + "</table>\n";

						window.setTimeout("__show_chat()", 1000);
                        		    }
		                            break;
                    
		                            default:
                		                return false;
		                            break;     
                		        }
		                    };





		                req2.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                		req2.send(null);

                                //schreibe die antwort in den div container mit der id content 
                                // document.getElementById('showResult').innerHTML = '<strong>'+
                                //                                        req.responseText
                                //                                        +'</strong>';
                            }
                            break;
                    
                            default:
                                return false;
                            break;     
                        }
                    };
  
                req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);

}
