﻿/*
gen_msg_directed = "<li id=\"update-3566046\" class=\"update message\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl\/users\/kambuz\/dashboard\" class=\"author\"><img alt=\"kambuz - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n    <a href=\"http:\/\/www.blip.pl\/users\/kambuz\/dashboard\" class=\"recipient\"><img alt=\"kambuz - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl\/users\/kambuz\/dashboard\">kambuz<\/a> > <a href=\"http:\/\/www.blip.pl\/users\/kambuz\/dashboard\">kambuz<\/a>:\n        <\/span>\n        tst tst\n        \n        \n    <\/div>\n    \n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">13\/09 00:56:44<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none\">1221260204<\/span>\n      <\/span>\n\n      <span class=\"transport\">\n        przez WWW\n      <\/span>\n\n      \n        <a href=\"#\" onclick=\"if(confirm('Na pewno skasowa\u0107?')) { new Ajax.Request('\/directed_messages\/3566046' + '?' + BLIP.Util.token('c97e1ef8817a3ba09e9fa14846304bf6d2f15edd'), {asynchronous:true, evalScripts:true, method:'delete'}); return false; }\" class=\"close\"><img alt=\"Close\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close.gif?1188286795\" \/><\/a>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/dm\/3566046\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <span class=\"respond\">odpowiedz<\/span>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";
gen_msg_status = "<li id=\"update-3564422\" class=\"update status\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl\/users\/tomasztopa\/dashboard\" class=\"author\"><img alt=\"tomasztopa - avatar\" src=\"http:\/\/static2.blip.pl\/user_generated\/avatars\/70242_pico.jpg?1230073200\" \/><\/a>\n\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl\/users\/tomasztopa\/dashboard\">tomasztopa<\/a>:\n        <\/span>\n\n        \n          A teraz usuwam raporty Analitics dla tych wywalonych stronek. Kiedy\u015b przestan\u0119 kupowa\u0107 mas\u0119 domen &quot;bo to podbije \u015bwiat&quot;. Wybior\u0119 kilka i wtedy zawojuj\u0119.\n        \n\n        \n        \n    <\/div>\n\n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">12\/09 23:11:02<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none;\">1221253862<\/span>\n      <\/span>\n\n      \n        <span class=\"transport\">przez Jabber<\/span>\n      \n\n      \n        <span class=\"close\"><img alt=\"Close-inactive\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close-inactive.gif?1195457197\" \/><\/span>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/s\/3564422\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <a class=\"respond\" href=\"#\" onclick=\"window.BLIP.dashboardInput.respondTo('tomasztopa');; return false;\">odpowiedz<\/a>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";


gen_msg_directed = "<li id=\"update-3566046\" class=\"update message\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl%user_path%\/dashboard\" class=\"author\"><img alt=\"%user_path% - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n    <a href=\"http:\/\/www.blip.pl%recipient_path%\/dashboard\" class=\"recipient\"><img alt=\"kambuz - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl%user_path%\/dashboard\">kambuz<\/a> > <a href=\"http:\/\/www.blip.pl%recipient_path%\/dashboard\">kambuz<\/a>:\n        <\/span>\n        %body%\n        \n        \n    <\/div>\n    \n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">%created_at%<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none\">1221260204<\/span>\n      <\/span>\n\n      <span class=\"transport\">\n        %transport_name%\n      <\/span>\n\n      \n        <a href=\"#\" onclick=\"if(confirm('Na pewno skasowa\u0107?')) { new Ajax.Request('\/directed_messages\/3566046' + '?' + BLIP.Util.token('c97e1ef8817a3ba09e9fa14846304bf6d2f15edd'), {asynchronous:true, evalScripts:true, method:'delete'}); return false; }\" class=\"close\"><img alt=\"Close\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close.gif?1188286795\" \/><\/a>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/dm\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <span class=\"respond\">odpowiedz<\/span>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";
gen_msg_status = "<li id=\"update-3564422\" class=\"update status\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl%user_path%\/dashboard\" class=\"author\"><img alt=\"tomasztopa - avatar\" src=\"http:\/\/static2.blip.pl\/user_generated\/avatars\/70242_pico.jpg?1230073200\" \/><\/a>\n\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl%user_path%\/dashboard\">%user_path%<\/a>:\n        <\/span>\n\n        \n          %body%\n        \n\n        \n        \n    <\/div>\n\n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">%created_at%<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none;\">1221253862<\/span>\n      <\/span>\n\n      \n        <span class=\"transport\">%transport_name%<\/span>\n      \n\n      \n        <span class=\"close\"><img alt=\"Close-inactive\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close-inactive.gif?1195457197\" \/><\/span>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/s\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <a class=\"respond\" href=\"#\" onclick=\"window.BLIP.dashboardInput.respondTo('tomasztopa');; return false;\">odpowiedz<\/a>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";

gen_msg_directed = "<li id=\"update-3566046\" class=\"update message\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\" class=\"author\"><img alt=\"%user_path% - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n    <a href=\"http:\/\/www.blip.pl%recipient_path%\/dashboard\" class=\"recipient\"><img alt=\"kambuz - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl%user_path%\/dashboard\">%user_path%<\/a> > <a href=\"http:\/\/www.blip.pl%recipient_path%\/dashboard\">%recipient_path%<\/a>:\n        <\/span>\n        %body%\n        \n        \n    <\/div>\n    \n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">%created_at%<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none\">1221260204<\/span>\n      <\/span>\n\n      <span class=\"transport\">\n        %transport_name%\n      <\/span>\n\n      \n        <a href=\"#\" onclick=\"if(confirm('Na pewno skasowa\u0107?')) { new Ajax.Request('\/directed_messages\/3566046' + '?' + BLIP.Util.token('c97e1ef8817a3ba09e9fa14846304bf6d2f15edd'), {asynchronous:true, evalScripts:true, method:'delete'}); return false; }\" class=\"close\"><img alt=\"Close\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close.gif?1188286795\" \/><\/a>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/dm\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <span class=\"respond\">odpowiedz<\/span>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";
gen_msg_status = "<li id=\"update-3564422\" class=\"update status\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\" class=\"author\"><img alt=\"%user_path% - avatar\" src=\"http:\/\/static5.blip.pl\/user_generated\/avatars\/110532_pico.jpg?1220451045\" \/><\/a>\n\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl%user_path%\/dashboard\">%user_path%<\/a>:\n        <\/span>\n\n        \n          %body%\n        \n\n        \n        \n    <\/div>\n\n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">%created_at%<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none;\">1221253862<\/span>\n      <\/span>\n\n      \n        <span class=\"transport\">%transport_name%<\/span>\n      \n\n      \n        <span class=\"close\"><img alt=\"Close-inactive\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close-inactive.gif?1195457197\" \/><\/span>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/s\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <a class=\"respond\" href=\"#\" onclick=\"window.BLIP.dashboardInput.respondTo('tomasztopa');; return false;\">odpowiedz<\/a>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";

gen_msg_directed = "<li id=\"update-3566046\" class=\"update message\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\" class=\"author\">                                                                                                                           <\/a>\n    <a href=\"http:\/\/www.blip.pl/users/%recipient_path%\/dashboard\" class=\"recipient\">                                                                                                                      <\/a>\n\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\">%user_path%<\/a> > <a href=\"http:\/\/www.blip.pl/users/%recipient_path%\/dashboard\">%recipient_path%<\/a>:\n        <\/span>\n        %body%\n        \n        \n    <\/div>\n    \n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">%created_at%<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none\">1221260204<\/span>\n      <\/span>\n\n      <span class=\"transport\">\n        %transport_name%\n      <\/span>\n\n      \n        <a href=\"#\" onclick=\"if(confirm('Na pewno skasowa\u0107?')) { new Ajax.Request('\/directed_messages\/3566046' + '?' + BLIP.Util.token('c97e1ef8817a3ba09e9fa14846304bf6d2f15edd'), {asynchronous:true, evalScripts:true, method:'delete'}); return false; }\" class=\"close\"><img alt=\"Close\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close.gif?1188286795\" \/><\/a>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/dm\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <span class=\"respond\">odpowiedz<\/span>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";
gen_msg_status = "<li id=\"update-3564422\" class=\"update status\">\n  <div class=\"background-top\">&nbsp;<\/div>\n  <div class=\"container clearfix\">\n    <a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\" class=\"author\">                                                                                                                           <\/a>\n\n    <div class=\"content\">\n        <span class=\"nick\">\n          <a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\">%user_path%<\/a>:\n        <\/span>\n\n        \n          %body%\n        \n\n        \n        \n    <\/div>\n\n    <div class=\"toolbar clearfix clearer\">\n      <span class=\"clock\">\n        <span class=\"created-ago\">%created_at%<\/span>\n        <span class=\"created-ago-calculated\" style=\"display: none\"><\/span>\n        <span class=\"created-at-epoch\" style=\"display: none;\">1221253862<\/span>\n      <\/span>\n\n      \n        <span class=\"transport\">%transport_name%<\/span>\n      \n\n      \n        <span class=\"close\"><img alt=\"Close-inactive\" src=\"http:\/\/static5.blip.pl\/images\/icons\/close-inactive.gif?1195457197\" \/><\/span>\n      \n\n      <span class=\"observe\"><\/span>\n\n      <a class=\"permalink\" href=\"http:\/\/blip.pl\/s\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a>\n\n      \n        <a class=\"respond\" href=\"#\" onclick=\"window.BLIP.dashboardInput.respondTo('tomasztopa');; return false;\">odpowiedz<\/a>\n      \n    <\/div>\n  <\/div>\n  <div class=\"background-bottom\">&nbsp;<\/div>\n<\/li>\n";


gen_msg_directed = "<div class=\"message\"><div class=\"message-avatars\"><a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\"><img src=\"img/126901_pico.jpg\" /></a> <img src=\"img/directed.gif\" /> <a href=\"http:\/\/www.blip.pl/users/%recipient_path%\/dashboard\"><img src=\"img/13806_pico.jpg\" /></a></div><div class=\"message-body\"><a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\">%user_path%</a> > <a href=\"http:\/\/www.blip.pl/users/%recipient_path%\/dashboard\">%recipient_path%</a>: %body%</div><div class=\"message-details\">%created_at% // przez: %transport_name% // <a href=\"http:\/\/blip.pl\/dm\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a> </div></div>";
gen_msg_status = "<div class=\"message\"><div class=\"message-avatars\"><a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\"><img src=\"img/126901_pico.jpg\" /></a> </div><div class=\"message-body\"><a href=\"http:\/\/www.blip.pl/users/%user_path%\/dashboard\">%user_path%</a>: %body%</div><div class=\"message-details\">%created_at% // przez: %transport_name% //<a href=\"http:\/\/blip.pl\/s\/%id%\"><img alt=\"Permalink\" src=\"http:\/\/static1.blip.pl\/images\/icons\/permalink.gif?1188286795\" \/><\/a> </div></div>";
*/

//kolejka wiadomosci do pobrania
var msg_queue = [];
//lista wiadomosci ze statusem wyswietlenie (true - wyswietlona, false - nie)
var is_displayed = {};
var avatar_queue = [];

var current_user = "";
var obj_ready = false;

function show_help() {
    alert("przeciągnij ten link do panelu zakładek");
    return false;
}

var modal_window = 0;

//parametry: text
function show_modal_window(text) {
    var mw, mm, b1;
    if (modal_window ==0) {
        mw = document.getElementById("overlay");
        mm = document.getElementById("message");
        b1 = document.getElementsByTagName("body")[0];

        mm.innerHTML = text;
        mw.style.height = b1.clientHeight;
        mw.style.width = b1.clientWidth;

        mw.style.display = "block";

        modal_window = 1;
    }
}


//debug
function logReport(a, b) {
    if (window.console)
        console.info(a+': '+b);
}

function add_msg_queue(msg_id) {
    msg_queue.push(msg_id);
    is_displayed[msg_id] = 0;
}



function show_next(e, user) {


    ln = document.getElementById("load-next-panel");
    
    ln.style.display = "none";
        
    //TODO
    
    var len = favs_array.length;
    var min_id = 0;
        
    if (favs_array.length != 0) {
        var min_id = favs_array[len-1];
        for (var i = 0; i<len-1; i++) {
            if (parseInt(favs_array[i], 10) < min_id) {
                min_id = parseInt(favs_array[i], 10);
            }    
        }
    
    }
    

    //var min_id = favs_array[len-1];
    
    //if (typeof(user) == "undefined") {
    //    fetch_older(min_id, current_user);        
    //} else {
    //    fetch_older(min_id, user);
    //}
    fetch_older(min_id, current_user);        
    

    return false;
}

//TODO przerobic na ajax
function fetch_older(id, user) {
    //TODO - do pobrania jest potrzebne auth. a nie mamy.
    document['fObject'].customURL('/get-user-msg?user='+user+'&before='+id, 'receive_older', 'GET', '', '', '');
}

function receive_older(msg, delay, msg_id) {
	try {

        if (msg.slice(0,10).indexOf("%3C!DOCTYP") == 0) {
            logReport("throw", "not logged"+msg.indexOf("błąd 404"));
            throw "not logged";        
        }
        if (msg_id.error) {
            logReport("throw", "błąd w pobieraniu");
            throw "not found";            
        }
        
	    eval('var reply='+decodeURI(msg));
	    
	    if (reply['response']) {
	        new_fav_array = reply['response']['favourites'] || [];
	        
	        if (new_fav_array.length == 0) {
	            //nie ma wiecej ulubionych
	            if (favs_array.length == 0) {
	                document.getElementById("load-next-panel").innerHTML = "";
	                document.getElementById("first-time").style.display = "block";
	            } else {
	                document.getElementById("load-next-panel").innerHTML = "Jesteś już na końcu listy.";
	            }
	        } else {
	            for (var i = 0; i < reply.response.favourites.length; i++) {
	                var f = reply.response.favourites[i];
	                create_msg_frame(f.fav[0]);
    	            
	                favs_array.push(f.id);
    	        
  	            }
            }	    
	    }
	    
	    process_msg_queue();

        ln = document.getElementById("load-next-panel");
        fb = document.getElementById("fav-blips");
                
        fb.appendChild(ln);
        ln.style.display = "block";
	    
	    
    } 	
	catch(e) {
	    switch (e) {
	    
	        case "not logged":
	            not_logged_error();
	            logReport("catch", "not logged");
	            break;
	        case "not found":
	            logReport("catch", "not found");
	            e1 = document.getElementById("msg"+msg_id.msg_id || "");
                e1.innerHTML = "blip nie chce nam wysłać wiadomości " + msg_id.msg_id + ". spróbój później. "+ msg;
                //e1.style.display = "block";                
                //is_displayed[msg_id.msg_id] = 1;
                break;
	            
	        default:
	            logReport("CATCH", "FATAL");
	            //show_modal_window("I CAN HAS WORKIN PAGE");
	    
	    }
	}
}

function bind_buttons() {
    //dodaj zdarzenie onclick przycisku pobierania nast. wiaodmosc
    if (document.getElementById("load-next")) {
        la = document.getElementById("load-next");
        la.onclick = show_next;
    
    }    
}


function create_msg_frame(msg_id) {
    var div = document.createElement("div");
    div.setAttribute("id", "msg"+msg_id);
    div.setAttribute("class", "message");
    
    var msg_container = document.getElementById("fav-blips");
    msg_container.appendChild(div);
    
    add_msg_queue(msg_id);
}

/* start */
function process_msg_queue(last) {
    //
    if (msg_queue.length != 0) {
        if (document.getElementById("load-next")) 
            document.getElementById("load-next").style.display = "block";
    }
        
    //pobierz template
    gen_msg_directed = document.getElementById('directed').innerHTML;
    gen_msg_status = document.getElementById('status').innerHTML;

    var unfinished = false;
    for (var i=0; i<msg_queue.length; i++) {
        if ( (is_displayed[msg_queue[i]] != 1) && (is_displayed[msg_queue[i]] > -3) ) {
            is_displayed[msg_queue[i]] -= 1;
            window.setTimeout("display_message('"+msg_queue[i]+"');", i*100);
            unfinished = true;
        }
    }
    if (unfinished == true) {
        //nie wszytsko zaladowane.
        if (typeof last == "undefined") {
            window.setTimeout("process_msg_queue("+2+")", 4000);
        } else {
            //jesli mozesz to sprobuj pobrac updejt
            if (last != 0) {
                window.setTimeout("process_msg_queue("+(last-1)+")", 5000);
            }
        }
    }
}

function not_logged_error() {
    for (var i=0; i<msg_queue.length; i++) {
        //console.info(msg_queue[i]);
        elem = document.getElementById("msg"+msg_queue[i]);
        elem.style.display = "none";
    }
    
    msg_queue = [];
       
    ep = document.getElementById("error-panel");
    ep.style.display = "block";

}
function fetch_update(msg_id) {
    
    document['fObject'].customURL('http://api.blip.pl/updates/'+msg_id, 'receiveMsg', 'GET', '', '', msg_id);
}

function fetch_asset(asset_id, msg_id) {
    document['fObject'].customURL('http://api.blip.pl'+asset_id, 'receiveAsset', 'GET', '', '', asset_id);

}

function fetch_user() {
    document['fObject'].customURL('http://api.blip.pl/updates?limit=1', 'receiveCurrentUser', 'GET', '', '', '');
}



function display_message(msg) {
    fetch_update(msg);
}


function receiveAsset(msg) {
	try {

        if (msg.slice(0,10).indexOf("%3C!DOCTYP") == 0) {
            throw not_logged_error("not logged");        
        }
        
        
	    eval('var reply='+decodeURI(msg));

        //console.info(reply);
        //TODO obsługa kilku obrazków (w tablicy)
        if (reply[0]['url']) {
            r1 = RegExp("/updates/", "g");
            var img_id = reply[0]['update_path'].replace(r1, "");
            
            
            var img = document.getElementById("img"+img_id);
            var link = document.getElementById("href"+img_id);
            
            var img_path = reply[0]['url'];
            
            var img_path_small = img_path.replace(/\.jpg/, "_inmsg.jpg");
            
            
            img.src = img_path_small;
            link.setAttribute("href", img_path);
            
            //_inmsg
        
        }
        
	}
	/*
	catch(e) {
	    //console.info("błąd. idź na blipa się zalogować :) "+e);
	    //alert("błąd. idź na blipa się zalogować :) "+e);
	    
	    if (e.indexOf("not logged") == 0) {
	        
	        //show_modal_window("Zaloguj się na blipie, a potem odśwież tę stronę.");
	        error_handler();
	    } else {
	        show_modal_window("I CAN HAS WORKIN PAGE");
	    }
	   	
	}
	*/
	catch (e) {
	    e();
	}
}


function receiveMsg(msg, delay, msg_id) {

    //msg_id.error - dodatkowy parametr zwracany przez adapter (wykrywa blad w pobieraniu i dodaje atrybut "Error"
    logReport("rec MSG", msg_id.error || "OK");
    
    
	try {

        if (msg.slice(0,10).indexOf("%3C!DOCTYP") == 0) {
            logReport("throw", "not logged"+msg.indexOf("błąd 404"));
            throw "not logged";        
        }
        if (msg_id.error) {
            logReport("throw", "błąd w pobieraniu");
            throw "not found";            
        }
	
	    //logReport("msg:", decodeURI(msg));
	    //alert(decodeURI("{\"user\": \"none\"}"));
	    eval('var reply='+decodeURI(msg));

	    var content = " ";

	    r1 = RegExp("/users/", "g");

	    r2 = RegExp("%user_path%", "g");
	    r3 = RegExp("%created_at%", "g");
	    r4 = RegExp("%recipient_path%", "g");
	    r5 = RegExp("%transport_name%", "g");
	    r6 = RegExp("%id%", "g");
	    r7 = RegExp("%body%", "g");
	    r8 = RegExp("%image%", "g");
	    r9_links = RegExp("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", "gi");

	    //r1 = RegExp("%body%", "g");


	    reply['user_path'] = reply['user_path'].replace(r1, "");

	    if (reply['recipient_path']) {
	        reply['recipient_path'] = reply['recipient_path'].replace(r1, "");
	    }
	    //alert('reg success');

        //links on content:
        reply['body'] = reply['body'].replace(r9_links, "<a href=\"$&\">$&</a>");

	    if (reply['type'] == "DirectedMessage") {
	        //r1 = RegExp("%user_path%");
	        content = gen_msg_directed.replace(r2, reply['user_path']);
	        content = content.replace(r3, reply['created_at']);
	        content = content.replace(r4, reply['recipient_path']);
	        content = content.replace(r5, reply['transport']['name']);
	        content = content.replace(r6, reply['id']);
	        content = content.replace(r7, reply['body']);

	    }

	    if (reply['type'] == "Status") {
	        content = gen_msg_status.replace(r2, reply['user_path']);
	        content = content.replace(r3, reply['created_at']);
	        //content = content.replace(/%recipient_path%/g, reply['recipient_path']);
	        content = content.replace(r5, reply['transport']['name']);
	        content = content.replace(r6, reply['id']);
	        content = content.replace(r7, reply['body']);

	    }
	    
	    //czy najnowsze?
	    if (window['newest_array']) {
            r_users = RegExp("%user_list%", "g");
            userlinks = [];
            for (var i=0; i<newest_array[reply['id']]['users'].length; i++) {
                userlinks[i] = "<a href=\"/user?user=" + newest_array[reply['id']]['users'][i] + "\">" + newest_array[reply['id']]['users'][i] + "</a>";
            }
            content = content.replace(r_users, userlinks.join(", "));
	    }
	    
	    //czy najlepsze?
	    if (window['best_array']) {
            r_users = RegExp("%user_list%", "g");
            r_count = RegExp("%msg_count%", "g");
            
            userlinks = [];
            for (var i=0; i<best_array[reply['id']]['users'].length; i++) {
                userlinks[i] = "<a href=\"/user?user=" + best_array[reply['id']]['users'][i] + "\">" + best_array[reply['id']]['users'][i] + "</a>";
            }

            content = content.replace(r_users, userlinks.join(", "));
            content = content.replace(r_count, best_array[reply['id']]['count']);
	    }
	    
	    if (reply['pictures_path']) {
	        content = content.replace(r8, "<a id=\"href"+ reply['id'] +"\"><img class=\"msg-photo\" id=\"img" + reply['id'] + "\"></a>");
	        fetch_asset(reply['pictures_path'], reply['id']);
	    } else {
	        content = content.replace(r8, "");
	    }

        e1 = document.getElementById("msg"+reply['id']);
        e1.innerHTML = content;

        e1.style.display = "block";
        is_displayed[reply['id']] = 1;

	    //display_message(reply);
	}
	catch(e) {
	    switch (e) {
	    
	        case "not logged":
	            not_logged_error();
	            logReport("catch", "not logged");
	            break;
	        case "not found":
	            logReport("catch", "not found");
	            e1 = document.getElementById("msg"+msg_id.msg_id || "");
                e1.innerHTML = "blip nie chce nam wysłać wiadomości " + msg_id.msg_id + ". spróbój później. "+ msg;
                //e1.style.display = "block";                
                //is_displayed[msg_id.msg_id] = 1;
                break;
	            
	        default:
	            logReport("CATCH", "FATAL");
	            //show_modal_window("I CAN HAS WORKIN PAGE");
	    
	    }
	}
}

function receiveCurrentUser(msg, delay, msg_id) {

    try {
    
        if (msg.slice(0,10).indexOf("%3C!DOCTYP") == 0) {
            logReport("throw", "not logged"+msg.indexOf("błąd 404"));
            throw "not logged";        
        }
        if (msg_id.error) {
            logReport("throw", "błąd w pobieraniu");
            throw "not found";            
        }
	
	    eval('var reply='+decodeURI(msg));


        r1 = RegExp("/users/", "g");      
        
        var curr_user = reply[0]['user_path'].replace(r1, "");
        
        current_user = curr_user;
        
        show_next(null, curr_user);        
        
    }
	catch(e) {
	    switch (e) {
	    
	        case "not logged":
	            not_logged_error();
	            logReport("catch", "not logged");
	            break;
	        case "not found":
	            logReport("catch", "not found");
	            e1 = document.getElementById("msg"+msg_id.msg_id || "");
                e1.innerHTML = "blip nie chce nam wysłać wiadomości " + msg_id.msg_id + ". spróbój później. "+ msg;
                //e1.style.display = "block";                
                //is_displayed[msg_id.msg_id] = 1;
                break;
	            
	        default:
	            logReport("CATCH", "FATAL");
	            //show_modal_window("I CAN HAS WORKIN PAGE");
	    
	    }
	}
        
}

function load_current_user() {
    fetch_user();
}

function adapter_ready() {
    logReport("ar", "adapter ready");
    obj_ready = true;
}

function start_main_process() {

    if (obj_ready == false) {
        window.setTimeout(start_main_process, 100);
    
    } else {
        //TODO ladowanie lipow biezacego usera, albo standardowe wczytanie blipow.
        if (window['find_logged_user']) {
            if (find_logged_user == true) {
                load_current_user();
            } else {
                process_msg_queue();
            
            }
        } else {
            process_msg_queue();
        }
    
    }
    
    
}

function bootstrap() {
    //przygotowanie interfejsu itd
    bind_buttons();
        
    start_main_process();


}
