var chat_message=[];
var chat_message_get=[];
var chat_message_get_from_session=[];
// ----------------------------------
var chat_remove_opened=[];
var chat_has_new_message=[];
var chat_get_message_from_session=[];
var chat_get_message=[];
var chat_submit_message=[];
var timeoutID2=[];
var timeoutID3;
var selected_window;
var windows_of_chat=[];
var chat_save_positions=[];
// ----------------------------------
var is_alredy_running=0;
var ajax_index=0;
// ----------------------------------

function save_positions(left,top,width,height,user_id)
{
//  alert("width: "+width+" - Height: "+height+" - Left: "+left+" - Height: "+height);
var url="/ajax_chat_functions.php";
url=url+"?action=save_window_position";
url=url+"&left="+left;
url=url+"&top="+top;
url=url+"&width="+width;
url=url+"&height="+height;
url=url+"&user_id="+user_id;
chat_save_positions[user_id]=GetXmlHttpObject();
chat_save_positions[user_id].open("GET",url,true);
chat_save_positions[user_id].onreadystatechange = function(){};
chat_save_positions[user_id].send(null);
}

function has_new_message_state_change(user_id)
{
    if (chat_has_new_message[user_id].readyState == 1) {
    }
    if (chat_has_new_message[user_id].readyState == 4) {
    if (chat_has_new_message[user_id].status == 200) {
    if(chat_has_new_message[user_id].responseText!='1')
        {


var myArray2 = chat_has_new_message[user_id].responseText.split('<--message-->');
for(i=1;i<myArray2.length;i++)
{
        message=myArray2[i].split('<--id-->');
        openmypage(message[0],'','',0,'width=500px,height=200px,left=10px,top=100px,resize=1,scrolling=1','');
        document.getElementById('text_message_'+message[0]).innerHTML+=message[1];
        set_title(message[0]);
        scrolling('text_message_'+message[0]);
}

/*        var myArray = chat_has_new_message[user_id].responseText.split('|');
        for(i=0;i<myArray.length-1;i++)
        {
        openmypage(myArray[i],'','','','width=500px,height=200px,left=10px,top=100px,resize=1,scrolling=1');
        openmypage(myArray[i],'','',0,'width=500px,height=200px,left=10px,top=100px,resize=1,scrolling=1',document.getElementById('text_message_'+myArray[i]).innerHTML+chat_has_new_message[user_id].responseText);
*/
        }
      }
}
}



function has_new_message(user_id)
{
var url="/ajax_chat_functions.php";
url=url+"?action=has_new_message";
chat_has_new_message[user_id]=GetXmlHttpObject();
chat_has_new_message[user_id].open("GET",url,true);

if(typeof has_new_message_state_change == 'function') {
chat_has_new_message[user_id].onreadystatechange = function(){has_new_message_state_change(user_id);};
}
chat_has_new_message[user_id].send(null);
}






function set_selected_window(user_id)
{
  if(user_id!=-1)
document.getElementById('chat_window_titles_'+user_id).className='drag-handle';
//alert('window is set to '+user_id);
selected_window=user_id;
}

function has_to_scroll(name)
{
    if(document.getElementById(name).scrollTop==document.getElementById(name).scrollHeight-document.getElementById(name).clientHeight || document.getElementById(name).scrollTop==0 )
    return true;
    else
    return false;

}
function scrolling(name)
{
  document.getElementById(name).scrollTop=document.getElementById(name).scrollHeight-document.getElementById(name).clientHeight;
}


function openmypage(user_id,title,button_message,start_status,default_position,default_value)
{
  selected_window=user_id;
if(is_alredy_running==0)
{
timeoutID = window.setInterval(function(user_id) {get_message(user_id);}, 1000);
window.clearInterval(timeoutID3);
is_alredy_running=1;
}

//alert("length: "+windows_of_chat.length);
if(windows_of_chat[user_id]==null)
{
windows_of_chat[user_id]=dhtmlwindow.open(user_id,"ajaxbox"+user_id, "default_value", default_value, title, default_position,start_status)
windows_of_chat[user_id].onclose=function(){ remove_opened_chat(user_id); window.clearTimeout(timeoutID2[user_id]); set_selected_window(-1); return true; };
document.getElementById('chat_button_'+user_id).value=button_message;
//get_message_from_session(user_id,0);
}
else
{
  windows_of_chat[user_id].show();
  scrolling('text_message_'+user_id);
}
scrolling('text_message_'+user_id);
}


function set_title_state_change(user_id)
{
    if (set_title[user_id].readyState == 1) {
    }
    if (set_title[user_id].readyState == 4) {
    if (set_title[user_id].status == 200) {
    if(document.getElementById('chat_window_title_'+user_id))
    {
    var myArray = set_title[user_id].responseText.split('|');
    document.getElementById('chat_window_title_'+user_id).innerHTML=myArray[0];
    if(document.getElementById('chat_button_'+user_id))
    document.getElementById('chat_button_'+user_id).value=myArray[1];
    }
}
}
}

function set_title(user_id)
{
var url="/ajax_chat_functions.php";
url=url+"?action=set_title";
url=url+"&user_id="+user_id;
set_title[user_id]=GetXmlHttpObject();
set_title[user_id].open("GET",url,true);
set_title[user_id].onreadystatechange = function(){set_title_state_change(user_id);};
set_title[user_id].send(null);
}


function add_to_full_message(user_id)
{
var url="/ajax_chat_functions.php";
url=url+"?action=add_to_full_message";
url=url+"&user_id="+user_id;
chat_remove_opened[user_id]=GetXmlHttpObject();
chat_remove_opened[user_id].open("GET",url,true);
chat_remove_opened[user_id].onreadystatechange = function(){};
chat_remove_opened[user_id].send(null);
}

function remove_full_message(user_id)
{
var url="/ajax_chat_functions.php";
url=url+"?action=remove_full_message";
url=url+"&user_id="+user_id;
chat_remove_opened[user_id]=GetXmlHttpObject();
chat_remove_opened[user_id].open("GET",url,true);
chat_remove_opened[user_id].onreadystatechange = function(){};
chat_remove_opened[user_id].send(null);
}

function remove_opened_chat(user_id)
{
var url="/ajax_chat_functions.php";
url=url+"?action=remove_opened_chat";
url=url+"&user_id="+user_id;
chat_remove_opened[user_id]=GetXmlHttpObject();
chat_remove_opened[user_id].open("GET",url,true);
chat_remove_opened[user_id].onreadystatechange = function(){remove_opened_chat_state_change(user_id);};
chat_remove_opened[user_id].send(null);
}


function remove_opened_chat_state_change(user_id)
{
    if (chat_remove_opened[user_id].readyState == 1) {
    }
    if (chat_remove_opened[user_id].readyState == 4) {
    if (chat_remove_opened[user_id].status == 200) {
    if(chat_remove_opened[user_id].responseText=='1')
    {
    timeoutID3 = window.setInterval(function(){ has_new_message(user_id);}, 1000);
    window.clearInterval(timeoutID);
    is_alredy_running=0;
  }
      window.clearInterval(timeoutID2[user_id]);
  }
}
}



function get_message_from_session(user_id,type_of_show)
{
var url="/ajax_chat_functions.php";
url=url+"?action=get_my_message";
url=url+"&user_id="+user_id;
chat_get_message_from_session[user_id]=GetXmlHttpObject();
chat_get_message_from_session[user_id].open("GET",url,true);
chat_get_message_from_session[user_id].onreadystatechange = function(){get_message_from_session_state_change(user_id,type_of_show);};
chat_get_message_from_session[user_id].send(null);
}


function get_message_from_session_state_change(user_id,type_of_show)
{
    if (chat_get_message_from_session[user_id].readyState == 1) {
    }
    if (chat_get_message_from_session[user_id].readyState == 4) {
    if (chat_get_message_from_session[user_id].status == 200) {
    var hastoscroll=true;
    if(document.getElementById('text_message_'+user_id))
    {
    hastoscroll=has_to_scroll('text_message_'+user_id);
    var myArray = chat_get_message_from_session[user_id].responseText.split('<--result-->');
    if((myArray[0]==1) && (selected_window==user_id) && hastoscroll==false)
    document.getElementById('chat_window_titles_'+user_id).className='drag-handle_new_message';
    if((myArray[0]==1) && (selected_window!=user_id))
        document.getElementById('chat_window_titles_'+user_id).className='drag-handle_new_message';
    document.getElementById('text_message_'+user_id).innerHTML=myArray[1];

    if(hastoscroll==true)
    scrolling('text_message_'+user_id);
    }

    if(type_of_show==1)
      windows_of_chat[user_id].show();
//      timeoutID2[user_id] = window.setTimeout(function(){ get_message_from_session(user_id,0);}, 1000);
}
}
}


function get_message_state_change(user_id)
{
    if (chat_get_message[ajax_index].readyState == 1) {
    }
    if (chat_get_message[ajax_index].readyState == 4) {
    if (chat_get_message[ajax_index].status == 200) {

if(chat_get_message[ajax_index].responseText!='0')
{
var myArray = chat_get_message[ajax_index].responseText.split('<--open-->');
var open=myArray[0];
var new_message=myArray[1];
var message="";

var myArray2 = open.split('<--message-->');
for(i=1;i<myArray2.length;i++)
{
        message=myArray2[i].split('<--id-->');
        openmypage(message[0],'','',0,'width=500px,height=200px,left=10px,top=100px,resize=1,scrolling=1','');
        document.getElementById('text_message_'+message[0]).innerHTML=message[1];
//        document.getElementById('text_message_'+message[0]).innerHTML+message[1];
        set_title(message[0]);
        scrolling('text_message_'+message[0]);
}


var myArray3 = new_message.split('<--message-->');
//alert("new_message: "+new_message);
var hastoscroll;
for(i=1;i<myArray3.length;i++)
{

        message=myArray3[i].split('<--id-->');
        hastoscroll=has_to_scroll('text_message_'+message[0]);
        document.getElementById('text_message_'+message[0]).innerHTML+=message[1];

        if((selected_window==message[0]))
        {
            if(hastoscroll==false)
            document.getElementById('chat_window_titles_'+message[0]).className='drag-handle_new_message';
            else
            scrolling('text_message_'+message[0]);
        }
        if(selected_window!=message[0])
        {
        document.getElementById('chat_window_titles_'+message[0]).className='drag-handle_new_message';
        scrolling('text_message_'+message[0]);
        }


}


}
}
}
}

function get_message(user_id)
{
var url="/ajax_chat_get_message.php";
url=url+"?action=get_message";
//if(chat_get_message[user_id]==null)
//    {
    ajax_index=ajax_index+1;
    chat_get_message[ajax_index]=GetXmlHttpObject();
    chat_get_message[ajax_index].open("GET",url,true);
    chat_get_message[ajax_index].onreadystatechange = function(){get_message_state_change(user_id);};
    chat_get_message[ajax_index].send(null);
//    }
}





function submit_message(user_id,value)
{
var value=document.getElementById('text_'+user_id).value;
if(value=="")
return true;
var url="/ajax_chat_functions.php";
url=url+"?action=send_message";
url=url+"&message="+ued_encode(document.getElementById('text_'+user_id).value);
url=url+"&user_id="+user_id;
chat_submit_message[user_id]=GetXmlHttpObject();
chat_submit_message[user_id].open("GET",url,true);
chat_submit_message[user_id].onreadystatechange = function(){submit_message_state_change(user_id);};
chat_submit_message[user_id].send(null);
}


function submit_message_state_change(user_id)
{
    if (chat_submit_message[user_id].readyState == 1) {
    }
    if (chat_submit_message[user_id].readyState == 4) {
    if (chat_submit_message[user_id].status == 200) {
    scrolling
    document.getElementById('text_message_'+user_id).innerHTML+=chat_submit_message[user_id].responseText;
    document.getElementById('text_'+user_id).value='';
    document.getElementById('text_'+user_id).focus();
    scrolling('text_message_'+user_id);
}
}
}

function check(e,user_id,value){
var unicode=e.charCode? e.charCode : e.keyCode
if (unicode==13){
submit_message(user_id,value);
}
}


function cyclic_chat_call(time2,user_id)
{
window.setTimeout('cyclic_chat_call(\''+time2+'\',\''+user_id+'\')' ,time2);
refresh_my_online_time();
//if(is_alredy_running==0)
//has_new_message(user_id);
}

function refresh_my_online_time()
{
var url="/ajax_chat_functions.php";
url=url+"?action=sign_online";
FT_chat=GetXmlHttpObject();
FT_chat.open("GET",url,true);
FT_chat.onreadystatechange = function(){chat_refresh_state_change();};
FT_chat.send(null);
}


function chat_refresh_state_change()
{
    if (FT_chat.readyState == 1) {
    }
    if (FT_chat.readyState == 4) {
    if (FT_chat.status == 200) {
    if(document.getElementById('chat_users'))
    document.getElementById('chat_users').innerHTML=FT_chat.responseText;
}
}
}


function GetXmlHttpObject()
{
  var xmlHtt=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHtt=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHtt=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHtt=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHtt;
}
