var ajaxObj = new XMLHTTP("/ajax.php");
ajaxObj.debug=0;
ajaxObj.abort_timeout = -1;

var msg_received = false;
var msg_received_array = Array();

var hash = hash_calc();
var msg_open_them = hash=='messages' || hash=='messages_get' || hash=='messages_sent'?hash:false;

var count_msg_received_new = 0;
var count_msg_received_old = 0;
var count_msg_send = 0;

var semafor=false;

function sendMessage(form){
    if (semafor==false){
        semafor = true;
        var message = form.message.value;
        ajaxObj.call('action=sendmessage&message='+message,respSendMessage);
    }
}

function replyMessage(msgid){
    if (semafor==false){
        semafor = true;
        document.getElementById('replyMsg'+msgid).style.color="blue";
        document.getElementById('replyMsg'+msgid).innerHTML = 'Wysyłanie wiadomości';
        document.getElementById('msg_reply_send_btn'+msgid).style.display = 'none'
        document.getElementById('msg_reply_close_btn'+msgid).style.display = 'none'

        var message= document.getElementById('reply' + msgid).value;
        ajaxObj.call('action=replymessage&id_message='+msgid+'&message='+message,respReplyMessage);
    }
}

function respReplyMessage(resp){
    if (resp.error){
        document.getElementById('replyMsg'+resp.divid).style.color="red";
        document.getElementById('replyMsg'+resp.divid).innerHTML = resp.error;
    }else{
        document.getElementById('replyMsg'+resp.divid).style.color="green";
        document.getElementById('replyMsg'+resp.divid).innerHTML = 'Wiadomość wysłana';
    }
    semafor = false;

    document.getElementById('msg_reply_close_btn'+resp.divid).style.display = ''
}

function respSendMessage(resp){
    try {
    var err_message = document.getElementById('err_message');
    err_message.innerHTML = '';
    if (resp) {
        if (resp.error){
            if (resp.error=='NOLOGIN'){
                err_message.innerHTML = '<font color="red">Nie jesteś zalogowany.</font><br><a href="http://logowanie.mojastrefa.pl">Zaloguj się</a> lub <a href="http://rejestracja.mojastrefa.pl">załóż swoją wizytowkę</a> a będziesz mógł wysłać wiadomość';
            }

            if (resp.error=='SELFSEND'){
                err_message.style.color='red';
                err_message.innerHTML = 'Sam do siebie nie możesz wysłać wiadomości';
            }

        } else{
            err_message.style.color='green';
            err_message.innerHTML = 'Wiadomość została wysłana';
        }
    }

    semafor = false;
    }
    catch (x) { alert('respSendMessage:error:\n'+x); }
}function getMsg(divid,id,msgtype){
    if (semafor==false){

        changeMenu(divid);

        if (msg_received_array[id]){
            if (msg_received_array[id] == 'open')
                msg_received_array[id] = 'close';
            else
                msg_received_array[id] = 'open';
        } else{
            semafor = true;
            document.getElementById(divid).style.color='green';
            document.getElementById(divid).innerHTML = '<small style="color: #28631D"><B>wczytywanie</B>...</small>';

            ajaxObj.call('action=getmessage&id_message='+id+'&divid='+divid+'&msgtype='+msgtype,respGetMsg);
            msg_received_array[id] = 'open';
        }
    }
}

function respGetMsg(resp){
    if (resp.error){
        document.getElementById(resp.divid).style.color='red';
        document.getElementById(resp.divid).innerHTML = resp.error;
    }else{
        var mess = toPL(switchDecode64(resp.result.toString()));
        document.getElementById(resp.divid).innerHTML = mess;
    }
    semafor = false;
}function changeMenu(n){
    var elem = document.getElementById(n);

    if (elem.style.display=='none' ||  elem.style.display=='')
        elem.style.display='';
    else
        elem.style.display='none';
}

function showNew(){
    document.getElementById('new').style.display = '';
    document.getElementById('read').style.display = 'none';
    document.getElementById('new_a').className='msg_menu_receive_on';
    document.getElementById('read_a').className='msg_menu_receive_off';
    document.getElementById('all_a').className='msg_menu_receive_off';}

function showRead(){
    document.getElementById('new').style.display = 'none';
    document.getElementById('read').style.display = '';
    document.getElementById('new_a').className='msg_menu_receive_off';
    document.getElementById('read_a').className='msg_menu_receive_on';
    document.getElementById('all_a').className='msg_menu_receive_off';

}

function showAll(){
    document.getElementById('new').style.display = '';
    document.getElementById('read').style.display = '';
    document.getElementById('new_a').className='msg_menu_receive_off';
    document.getElementById('read_a').className='msg_menu_receive_off';
    document.getElementById('all_a').className='msg_menu_receive_on';

}

function loadMessages(loadtype,openreceived){
    if (semafor==false){

        if (loadtype=='received'){
            changeMenu('messages_received');
            if (msg_received==false){
                semafor = true;
                msg_received = true;
                document.getElementById('messages_received').innerHTML = '<small style="color: #28631D"><B>wczytywanie</B>...</small>';
                if(typeof openreceived == 'undefined')
                    openreceived = false
                else
                    openreceived = openreceived==true
                ajaxObj.call('action=getmessages&type=received&open='+(openreceived?'1':'0'),respGetMessagesReceived);
            }
        }else if (loadtype=='send'){
            semafor = true;
            changeMenu('messages_send');
            document.getElementById('messages_send').innerHTML = '<small style="color: #28631D"><B>wczytywanie</B>...</small>';
            ajaxObj.call('action=getmessages&type=send',respGetMessagesSend);
        }
    }

}

function respGetMessagesReceived(resp) {
    if (resp.error){
        document.getElementById('messages_received').innerHTML = resp.error;
    }else{
        var messages = toPL(switchDecode64(resp.result.toString()));
        document.getElementById('messages_received').innerHTML = messages;
        document.getElementById('receive_count').innerHTML = resp.counter.send+ '/' +resp.counter.received;
    //  document.getElementById('receive_count_top').innerHTML = resp.counter.send==1?resp.counter.send+' wiadomość':resp.counter.send+' wiadomości';

        count_msg_received_new = resp.counter.send;
        count_msg_received_old = resp.counter.received;

        if (resp.counter.send>0)
            document.getElementById('receive_count').style.fontWeight="bold";
        else
            document.getElementById('receive_count').style.fontWeight="normal";
        if(resp.open)
            showAll()
    }

    semafor=false;

    if(msg_open_them) {
        sent = hash=='messages_sent'
        msg_open_them = false
        loadMessages(sent?'send':'received',true)
    }
}function respGetMessagesSend(resp) {
    if (resp.error){
        document.getElementById('messages_send').innerHTML = resp.error;
    }else{
        var messages = toPL(switchDecode64(resp.result.toString()));
        document.getElementById('messages_send').innerHTML = messages;
        document.getElementById('send_count').innerHTML = resp.counter;
        //document.getElementById('send_count_top').innerHTML = resp.counter==1?resp.counter+' wiadomość':resp.counter+' wiadomości';

        count_msg_send = resp.counter;
    }

    semafor=false;
}
function RemoveMessage(msgid,remtype,remtype2){
    if (semafor==false){
        semafor=true;
        document.getElementById('msgAll'+msgid).style.color='red';
        document.getElementById('msgAll'+msgid).innerHTML = 'Usuwanie wiadomości';
        ajaxObj.call('action=removemessage&id_message='+msgid+'&remtype='+remtype+'&remtype2='+remtype2,respRemoveMessage);
    }
}

function respRemoveMessage(resp){
    if (resp.error){
        document.getElementById('msgAll'+resp.divid).style.color='red';
        document.getElementById('msgAll'+resp.divid).style.color=resp.error;
    }else{
        if (resp.remtype=='send'){
            --count_msg_send;
            document.getElementById('send_count').innerHTML = count_msg_send;
        }else{
            if (resp.remtype2=='new'){
                count_msg_received_new--;

                if (count_msg_received_new>0)
                    document.getElementById('receive_count').style.fontWeight="bold";
                else
                    document.getElementById('receive_count').style.fontWeight="normal";

            }else if (resp.remtype2=='old'){
                count_msg_received_old--;
            }

            document.getElementById('receive_count').innerHTML = count_msg_received_new + '/' + count_msg_received_old;

        }

        document.getElementById('msgAll'+resp.divid).style.display='none';
    }
    semafor = false;
}function checkMessages(){
    if (semafor==false){
        semafor=true;
        ajaxObj.call('action=getmessages&type=received',respGetMessagesReceived);

    }
    setTimeout("checkMessages()",180000);
}

function start(){
    getCounterSendMessages();
}

function getCounterSendMessages(){
    ajaxObj.call('action=getcountmessages',respGetCounterSendMessages);
}

function respGetCounterSendMessages(resp){
    document.getElementById('send_count').innerHTML = resp.result;
    //document.getElementById('send_count_top').innerHTML = resp.result==1?resp.result+' wiadomość':resp.result+' wiadomości';
    setTimeout("checkMessages()",100);
}//function setVisibility(){
//      for (x in msg_received_array){
//          if (msg_received_array[x]=='open')
//              changeMenu('w'+x);
//      }
//}
var err_message_div_name = 'err_message'

function sendMessageLayer(id) {
    if(document.all)
        eval('var layer = document.all.sendMessageLayer'+id)
    else
        var layer = document.getElementById('sendMessageLayer'+id)
    layer.style.display = layer.style.display==''?'none':''
    document.getElementById('tab_message_send_'+id).style.display = ''
    document.getElementById('tab_message_sent_'+id).style.display = 'none'
    document.forms['message'+id].message.value = ''
}

function sendMessageLayerClose(id) {
    document.getElementById('sendMessageLayer'+id).style.display = 'none'
}

function sendMessageFromLayer(form) {
    if (semafor==false){
        semafor = true;
        err_message_div_name = 'err_message_'+form.friendID.value
        document.getElementById(err_message_div_name).innerHTML = 'Wysyłanie wiadomości...'
        ajaxObj.call('action=sendmessage&message='+form.message.value+'&id='+form.friendName.value+'&layerID='+form.friendID.value,respSendMessageFromLayer);
    }
}

function respSendMessageFromLayer(resp){
    try {
    var err_message = document.getElementById(err_message_div_name);
    err_message.innerHTML = '';
    if (resp) {
        if (resp.error){
            err_message.style.color='red';
            if (resp.error=='NOLOGIN'){
                err_message.innerHTML = 'Nie jesteś zalogowany.<br><a href="http://logowanie.mojastrefa.pl">Zaloguj się</a> lub <a href="http://rejestracja.mojastrefa.pl">załóż swoją wizytowkę</a> a będziesz mógł wysłać wiadomość';
            }

            if (resp.error=='SELFSEND'){
                err_message.innerHTML = 'Sam do siebie nie możesz wysłać wiadomości';
            }

        } else{
            err_message.style.color='green';
            err_message.innerHTML = 'Wiadomość została wysłana';

            if (resp.layerID) {
                document.getElementById('tab_message_send_'+resp.layerID).style.display = 'none'
                document.getElementById('tab_message_sent_'+resp.layerID).style.display = ''
                setTimeout("sendMessageLayerClose('"+resp.layerID+"')", 3000)
            }
        }
    }

    semafor = false;
    }
    catch (x) { alert('respSendMessageFromLayer:error:\n'+x); }
}

function hash_calc() {
    if(!location.hash)
        return ''
    var hash = location.hash.substr(1)
    var pos = hash.indexOf('?')
    if(pos>-1)
        hash = hash.substr(0,pos)
    return hash
}

function clearTextArea(textarea,message_id,show_btn_id) {
    textarea.value = '';
    textarea.style.color = '';
    textarea.style.fontSize = '';
    document.getElementById(message_id).innerHTML = ''
    if(typeof show_btn_id != 'undefined')
        document.getElementById(show_btn_id).style.display = ''
}

function showhide(id) {
    if(typeof id != 'string' || id=='')
        return;
    elem = document.getElementById(id)
    if(!elem || !elem.style)
        return;
    elem.style.display = elem.style.display==''?'none':''
}
