<!--

			// trimite un mesaj nou
			var sendMessageObj = getXmlHttpRequestObject();
			// citeste mesajele noi ale celorlalti useri
			var rcvMessagesObj = getXmlHttpRequestObject();
			// citeste userii online
			var rcvUsersObj = getXmlHttpRequestObject();
			// id-ul ultimului mesaj receptionat
			var lastMessage = 0;
			// timere pentru solicitarea de mesaje noi si useri online
			var msgTimer;
			var usrTimer;
			// credentialele user-ului curent
			var user_id = document.getElementById('user_id').value;
			var user_name = document.getElementById('user_name').value;
			// pagina cu serverul de chat
			var chat_page = 'class.chatserver.php';
			// numarul maxim de caractere afisat in fereastra chat-ului
			var maxChars = 10000;
			
			
			// iconite
			var ico_pics = new Array();
			var ico_signs = new Array();
			var ico_coms = new Array();
			ico_signs[0] = ':))';
			ico_pics[0] = 'emo/ras.gif';
			ico_coms[0] = 'ras';
			ico_signs[1] = ':)';
			ico_pics[1] = 'emo/vesel.gif';
			ico_coms[1] = 'zambet';
			ico_signs[2] = ':((';
			ico_pics[2] = 'emo/plans.gif';
			ico_coms[2] = 'plans';
			ico_signs[3] = ':(';
			ico_pics[3] = 'emo/trist.gif';
			ico_coms[3] = 'tristete';
			ico_signs[4] = ';;)';
			ico_pics[4] = 'emo/clipit.gif';
			ico_coms[4] = 'clipit';
			ico_signs[5] = ';)';
			ico_pics[5] = 'emo/face_cu_ochiul.gif';
			ico_coms[5] = 'facut cu ochiul';
			ico_signs[6] = '-:D-';
			ico_pics[6] = 'emo/imbratisare.gif';
			ico_coms[6] = 'imbratisare';
			ico_signs[7] = ':D';
			ico_pics[7] = 'emo/ranjet.gif';
			ico_coms[7] = 'ranjet';
			ico_signs[8] = '=))';
			ico_pics[8] = 'emo/ras_in_hohote.gif';
			ico_coms[8] = 'ras in hohote';
			ico_signs[9] = ':-O';
			ico_pics[9] = 'emo/uimire.gif';
			ico_coms[9] = 'uimire';
			ico_signs[10] = '=;';
			ico_pics[10] = 'emo/vorbeste_cu_mana.gif';
			ico_coms[10] = 'vorbeste cu mana';
			ico_signs[11] = ':-?';
			ico_pics[11] = 'emo/intrebare.gif';
			ico_coms[11] = 'intrebare';
			ico_signs[12] = ':P';
			ico_pics[12] = 'emo/scoate_limba.gif';
			ico_coms[12] = 'scoate limba';
			ico_signs[13] = ':-*';
			ico_pics[13] = 'emo/sarut.gif';
			ico_coms[13] = 'sarut';
			ico_signs[14] = ':-lov';
			ico_pics[14] = 'emo/indragostit.gif';
			ico_coms[14] = 'indragostit';
			ico_signs[15] = ':muz';
			ico_pics[15] = 'emo/asculta_muzica.gif';
			ico_coms[15] = 'asculta muzica';
			ico_signs[16] = ':-n';
			ico_pics[16] = 'emo/muzica2.gif';
			ico_coms[16] = 'fluierat';
			ico_signs[17] = ':p';
			ico_pics[17] = 'emo/strambatura.gif';
			ico_coms[17] = 'strambatura';
			ico_signs[18] = ':-pls';
			ico_pics[18] = 'emo/rugaminte.gif';
			ico_coms[18] = 'rugaminte';
			ico_signs[19] = ':-fum';
			ico_pics[19] = 'emo/fumat.gif';
			ico_coms[19] = 'fumat';
			ico_signs[20] = ':-tel';
			ico_pics[20] = 'emo/la_telefon.gif';
			ico_coms[20] = 'la telefon';
			ico_signs[21] = ':-m';
			ico_pics[21] = 'emo/muzica1.gif';
			ico_coms[21] = 'cantat';
			ico_signs[22] = ':-T';
			ico_pics[22] = 'emo/forta.gif';
			ico_coms[22] = 'forta';
			ico_signs[23] = ':-8';
			ico_pics[23] = 'emo/bicicleta.gif';
			ico_coms[23] = 'pe bicicleta';
			ico_signs[24] = ':-@';
			ico_pics[24] = 'emo/bici.gif';
			ico_coms[24] = 'biciuit';
			ico_signs[25] = ':-w';
			ico_pics[25] = 'emo/drac.gif';
			ico_coms[25] = 'drac';
			ico_signs[26] = ':-iep';
			ico_pics[26] = 'emo/iepuras.gif';
			ico_coms[26] = 'iepuras';
			ico_signs[27] = ':_pin';
			ico_pics[27] = 'emo/pinguin.gif';
			ico_coms[27] = 'pinguin';
			ico_signs[28] = ':II';
			ico_pics[28] = 'emo/inchis.gif';
			ico_coms[28] = 'inchis';
			ico_signs[29] = ':-r';
			ico_pics[29] = 'emo/razboinic.gif';
			ico_coms[29] = 'razboinic';
			ico_signs[30] = ':-arc';
			ico_pics[30] = 'emo/arcas.gif';
			ico_coms[30] = 'arcas';
			ico_signs[31] = ':-clc';
			ico_pics[31] = 'emo/la_calculator.gif';
			ico_coms[31] = 'la calculator';
			ico_signs[32] = ':-1';
			ico_pics[32] = 'emo/calculator.gif';
			ico_coms[32] = 'la calculator';
			ico_signs[33] = ':-z';
			ico_pics[33] = 'emo/ziar.gif';
			ico_coms[33] = 'ziar';
			ico_signs[34] = '[dans1';
			ico_pics[34] = 'emo/dans1.gif';
			ico_coms[34] = 'dans';
			ico_signs[35] = '[dans2';
			ico_pics[35] = 'emo/dans2.gif';
			ico_coms[35] = 'dans';
			ico_signs[36] = '[dans3';
			ico_pics[36] = 'emo/dans3.gif';
			ico_coms[36] = 'dans';
			ico_signs[37] = '[:caine';
			ico_pics[37] = 'emo/caine.gif';
			ico_coms[37] = 'caine';
			ico_signs[38] = '[.porc';
			ico_pics[38] = 'emo/porc.gif';
			ico_coms[38] = 'porc';
			ico_signs[39] = '[:gaina';
			ico_pics[39] = 'emo/gaina.gif';
			ico_coms[39] = 'gaina';
			ico_signs[40] = '[:bat2';
			ico_pics[40] = 'emo/bataie_ciocan.gif';
			ico_coms[40] = 'bataie';
			ico_signs[41] = '[:vaca';
			ico_pics[41] = 'emo/vaca.gif';
			ico_coms[41] = 'vaca';
			ico_signs[42] = '[:stea';
			ico_pics[42] = 'emo/stea.gif';
			ico_coms[42] = 'stea';
			ico_signs[43] = '[.pup';
			ico_pics[43] = 'emo/pupat.gif';
			ico_coms[43] = 'pupic';
			ico_signs[44] = '[:bat3';
			ico_pics[44] = 'emo/bataie_bata.gif';
			ico_coms[44] = 'bataie';
			ico_signs[45] = '[:cowb';
			ico_pics[45] = 'emo/cowboy.gif';
			ico_coms[45] = 'cowboy';
			ico_signs[46] = '[:lupt';
			ico_pics[46] = 'emo/luptator.gif';
			ico_coms[46] = 'terorist';
			ico_signs[47] = '[:bat1';
			ico_pics[47] = 'emo/bataie_topor.gif';
			ico_coms[47] = 'bataie';
			ico_signs[48] = '[.pir';
			ico_pics[48] = 'emo/pirat.gif';
			ico_coms[48] = 'pirat';
			ico_signs[49] = '[.preot';
			ico_pics[49] = 'emo/preot.gif';
			ico_coms[49] = 'preot';
			ico_signs[50] = '[:idiot';
			ico_pics[50] = 'emo/idiot.gif';
			ico_coms[50] = 'idiot';
			ico_signs[51] = '[:nerv';
			ico_pics[51] = 'emo/nervos.gif';
			ico_coms[51] = 'nervos';
			ico_signs[52] = '[:nebun';
			ico_pics[52] = 'emo/nebun.gif';
			ico_coms[52] = 'nebun';
			ico_signs[53] = '[:acadea';
			ico_pics[53] = 'emo/acadea.gif';
			ico_coms[53] = 'acadea';
			ico_signs[54] = '[:majoreta';
			ico_pics[54] = 'emo/majoreta.gif';
			ico_coms[54] = 'majoreta';
			ico_signs[55] = '[:dans4';
			ico_pics[55] = 'emo/dans4.gif';
			ico_coms[55] = 'dans';
			ico_signs[56] = '[:dinti';
			ico_pics[56] = 'emo/dinti.gif';
			ico_coms[56] = 'spalat dinti';
			ico_signs[57] = '[:ametit';
			ico_pics[57] = 'emo/ametit.gif';
			ico_coms[57] = 'ametit';
			
			
			
			// creaza un obiect XmlHttpRequest specific browserului
			function getXmlHttpRequestObject()
			{
				if (window.XMLHttpRequest)
					return new XMLHttpRequest();
				else if(window.ActiveXObject)
					return new ActiveXObject("Microsoft.XMLHTTP");
				else
					document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
			}
			
			
			
			// porneste chat-ul, se apeleaza la incarcarea paginii
			function startChat()
			{
				// focus pe Message Box.
				document.getElementById('txt_message').focus();
				// pornesc primirea de mesaje noi
				askForNewMessages();
				// pornesc primirea listei cu useri online
				askForUsers();
				// afisez emoticonurile disponibile
				ShowEmoticons(document.getElementById('emos_div'), 'txt_message');
			}
			
			
			
			// cere mesajele noi de pe server
			function askForNewMessages()
			{
				if (rcvMessagesObj.readyState == 4 || rcvMessagesObj.readyState == 0)
				{
					var params = 'cmd=askmsgs';
					params += '&lastmsg=' + lastMessage;
					rcvMessagesObj.open("POST", chat_page, true);
					rcvMessagesObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					rcvMessagesObj.setRequestHeader('Content-length', params.length);
					rcvMessagesObj.onreadystatechange = handleReceiveNewMessages; 
					rcvMessagesObj.send(params);
				}
			}
			// afiseaza mesaje noi primite de la server
			function handleReceiveNewMessages()
			{
				if (rcvMessagesObj.readyState == 4)
				{
					var chat_div = document.getElementById('chat_div');
					var xmldoc = rcvMessagesObj.responseXML;
					//var resp = rcvMessagesObj.responseText;
					//alert(resp);
					var message_nodes = xmldoc.getElementsByTagName("message"); 
					var n_messages = message_nodes.length;
					for (i = 0; i < n_messages; i++)
					{
						var user_node = message_nodes[i].getElementsByTagName("user")[0].firstChild;
						var text_node = message_nodes[i].getElementsByTagName("text")[0].firstChild;
						var time_node = message_nodes[i].getElementsByTagName("time")[0].firstChild;
						if( user_node!=null && text_node!=null && time_node!=null )
						{
							chat_div.innerHTML += '<b style=\"color:#660033\">' + user_node.nodeValue + '</b>&nbsp;';
							chat_div.innerHTML += '<span style=\"font-size:9px\">[' + time_node.nodeValue + ']</span><br/>';
							
							for(j=0;j<ico_signs.length;j++)
							{
								var text = RegExp.escape(ico_signs[j]);
								var reg = new RegExp(text,'g');
								text_node.nodeValue = text_node.nodeValue.replace(reg,"<img src='" + ico_pics[j] + "' alt='" + ico_coms[j] + "' />");
							}
							chat_div.innerHTML += '&nbsp;' + text_node.nodeValue + '<br/>';
						}
						chat_div.scrollTop = chat_div.scrollHeight;
						lastMessage = message_nodes[i].getAttribute('id');
					}
					// refresh in 2 secunde
					msgTimer = setTimeout('askForNewMessages()',2000);
					// daca este prea mult text in textbox il reduc
					if( chat_div.innerHTML.length>maxChars )
						chat_div.innerHTML = chat_div.innerHTML.substring(chat_div.innerHTML.length-maxChars);
				}
				
			}
			
			
			
			// cere lista cu userii online
			function askForUsers()
			{
				if (rcvUsersObj.readyState == 4 || rcvUsersObj.readyState == 0)
				{
					var params = 'cmd=askusrs';
					params += '&id=' + user_id;
					rcvUsersObj.open("POST", chat_page, true);
					rcvUsersObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					rcvUsersObj.setRequestHeader('Content-length', params.length);
					rcvUsersObj.onreadystatechange = handleReceiveUsers; 
					rcvUsersObj.send(params);
				}
			}
			// afiseaza lista de useri primita de la server
			function handleReceiveUsers()
			{
				if (rcvUsersObj.readyState == 4)
				{
					var users_div = document.getElementById('users_div');
					var xmldoc = rcvUsersObj.responseXML;
					//var resp = rcvUsersObj.responseText;
					//alert(resp);
					var user_nodes = xmldoc.getElementsByTagName("user"); 
					var n_users = user_nodes.length;
					users_div.innerHTML = '';
					for (i = 0; i < n_users; i++)
					{
						users_div.innerHTML += '<b><a href="../personal/detalii_cont.php?user='+user_nodes[i].firstChild.nodeValue+'">' + user_nodes[i].firstChild.nodeValue + '</a></b>';
						users_div.innerHTML += '<br/>';
						users_div.scrollTop = users_div.scrollHeight;
					}
					// refresh in 10 secunde
					usrTimer = setTimeout('askForUsers()',10000);
				}
			}
			
			
			
			// trimite un mesaj propriu catre server cand se apasa butonul de trimitere
			function sendMessage()
			{
				if( document.getElementById('txt_message').value.replace(/^\s+|\s+$/g,'') == '' )
					return;
				if (sendMessageObj.readyState == 4 || sendMessageObj.readyState == 0)
				{
					var params = 'cmd=sndmsg';
					params += '&msg=' + document.getElementById('txt_message').value;
					params += '&id=' + user_id;
					params += '&name=' + user_name;
					//alert(params);
					sendMessageObj.open("POST", chat_page, true);
					sendMessageObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					sendMessageObj.setRequestHeader('Content-length', params.length);
					sendMessageObj.onreadystatechange = handleSendMessage; 
					sendMessageObj.send(params);
					
					document.getElementById('txt_message').value = '';
				}
			}
			// confirmarea ca mesajul propriu a fost receptionat de server
			function handleSendMessage()
			{
				//Clear out the existing timer so we don't have multiple timer instances running.
				clearInterval(msgTimer);
				// citesc mesajele noi
				askForNewMessages();
			}
			// trimite un mesaj propriu catre server cand se apasa tasta enter
			function sendFormMessage()
			{
			 sendMessage();
			 return false;
			}
			
			
			
			// afisez in 'div_display' toate emoticonurile disponibile
			// la evenimentul de click pe emoticon adaug semnul acestuia in elementulHTML cu id-ul dat in 'div_input'
			function ShowEmoticons(div_display,div_input)
			{
				div_display.innerHTML = "";
				for(i=0;i<ico_signs.length;i++)
				{
					div_display.innerHTML += "<img src=\'" + ico_pics[i] + "\' alt=\'" + ico_coms[i] + "\' title=\'" + ico_coms[i] + "\' onclick=\"javascript:document.getElementById(\'" + div_input + "\').value += \'" + ico_signs[i] + "\'; document.getElementById(\'" + div_input + "\').focus()\" />";
				}
			}
			
			
			
			// escape special regular expression characters
			RegExp.escape = function(text)
			{
				if (!arguments.callee.sRE)
				{
					var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
					arguments.callee.sRE = new RegExp('(\\' + specials.join('|\\') + ')', 'g');
				}
				return text.replace(arguments.callee.sRE, '\\$1');
			}


			
			/*/This cleans out the database so we can start a new chat session.
			function resetChat() {
				if (reqMessages.readyState == 4 || reqMessages.readyState == 0) {
					reqMessages.open("POST", 'chat_serv.php?last=' + lastMessage, true);
					reqMessages.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					reqMessages.onreadystatechange = handleResetChat; 
					var param = 'action=reset';
					reqMessages.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}*/
			
			/*/This function handles the response after the page has been refreshed.
			function handleResetChat() {
				document.getElementById('chat_div').innerHTML = '';
				getChatText();
			}*/
-->
