var Last_ID = null;
var Reading_Last_ID = false;
var Party_admin = false;
var Timeout = false;


window.addEvent('domready' , function(){

    if(typeof(party_id) == "undefined") return;
    if($('write_form')){
        ReadChat();
        
        $('write_form').addEvent('submit' , function(ev){
            new Event(ev).stop();
            //alert("test");
            AjaxSubmit();
            
        });
        
        $('write_text').addEvent('keydown', function(e){ 
            e = new Event(e);
            if(e.key == "enter" && e.shift){
                AjaxSubmit();
                //this.form.submit();
                e.stop();
            }
        });
    }
});

function AjaxSubmit(){
    $('write_form').send({
            onComplete:function(text){
            	//$clear(ReadChat);
                //PopulateChat(Json.evaluate(text));
                var inp = $('write_text');
                inp.value = "";
                inp.focus();
            }
    });
}

function ReadChat(){
    //Get Last ID here
    var url = '/ajax_chat.php?party_id='+party_id+'&date_mod=true';
    
    new Ajax(url, {
        method: 'get' , 
        'onComplete' : Last_ID_Recived
    }).request();

    
}

function ReadMessages(){
    
    new Json.Remote('/ajax_chat.php?party_id='+party_id, {
        method: 'get',
        'onComplete': PopulateChat
    }).send();

    
}

function PopulateChat(json_data){
    
    var OutPut = $('chat');
    var Public_Quest = $('PublicOnly');
    var Public_Arch = $('ArcPublicOnly');
    /*$ES('tr', OutPut).each(function(tr) {
        tr.remove();
    });*/
    OutPut.empty();
    Public_Quest.empty();
    Public_Arch.empty();
    
    var cdown = 10;
    
    Party_admin = json_data.admin == 1;
    
    var users = {};
    $each(json_data.users , function(usr){
        users[usr.id] = { 'name' : usr.first + " " + usr.last };
    });
    
    
    
    $each(json_data.messages , function(msg , num){
    
        
    
        var msg_tr = new Element('div',{'class':'tr'});
        
        var time = new Date();
        time.setTime(msg.date * 1000);
        var time_str = time.getHours() + ":" + ZeroPad(time.getMinutes());
        var user_str = "";
        if(msg.reply == "1")
            user_str = "מנהל המסיבה"
        else{
            user_id = msg.user_id;
            
                user_str = users[user_id].name;
            
            //var usr = json_data.users[user_id];
        }
        
        
        var NameTD = new Element('div', {'class':'head_data'} );
        if(msg['public'] == 1 && msg['archive'] == 0 && cdown > 0){ 
            msg_tr.addClass('public');
            
                var Quest = new Element("b").injectInside(
                    new Element("div" , {'class' : 'event_date'}).injectTop(Public_Quest)
                ).setHTML(user_str + ": " + msg.text + "&nbsp;");
            if(Party_admin){
                new Element("a" , {"href":"javascript:void(0)"}).injectInside(Quest).appendText("מחק").addEvent('click' , function(){
                    new Ajax('/ajax_chat.php?party_id=' + party_id + '&delete=' + msg.msg_id , { 'method':'get' , 'onComplete':function(cont){return true;} }).request();
                });
                Quest.appendText(' ');
                new Element("a" , {"href":"javascript:void(0)"}).injectInside(Quest).appendText("העבר לשאלות שנשאלו").addEvent('click' , function(){
                    new Ajax('/ajax_chat.php?party_id=' + party_id + '&archive=' + msg.msg_id , { 'method':'get' , 'onComplete':function(cont){return true;} }).request();
                });
            }
            
            cdown--;
        } else if(msg['public'] == 1 && cdown > 0){
            var Quest = new Element("b").injectInside(
                new Element("div" , {'class' : 'event_date'}).injectTop(Public_Arch)
            ).setHTML(user_str + ": " + msg.text + "&nbsp;");
            if(Party_admin){
                new Element("a" , {"href":"javascript:void(0)"}).injectInside(Quest).appendText("מחק").addEvent('click' , function(){
                    new Ajax('/ajax_chat.php?party_id=' + party_id + '&delete=' + msg.msg_id , { 'method':'get' , 'onComplete':function(cont){return true;} }).request();
                });
            }
        }
        
        
        NameTD.setHTML(time_str + "<br />" + user_str).injectInside(msg_tr);
        
        var ContTd = new Element('div',{'class':'message'}).setHTML(msg.text).injectInside(msg_tr);
        
        
        if(Party_admin && msg['public'] == 0){
            new Element('br').injectInside(NameTD);
            var MakePublic = new Element('a',{'href':'javascript:void(0)'}).appendText('פרסם שאלה').injectInside(NameTD)
            .addEvent('click' , function(){
                new Ajax('/ajax_chat.php?party_id=' + party_id + '&public=' + msg.msg_id , { 'method':'get' , 'onComplete':function(cont){return true;} }).request();
            });
            NameTD.appendText(' ');
            new Element("a" , {"href":"javascript:void(0)"}).injectInside(NameTD).appendText("מחק").addEvent('click' , function(){
            	new Ajax('/ajax_chat.php?party_id=' + party_id + '&delete=' + msg.msg_id , { 'method':'get' , 'onComplete':function(cont){return true;} }).request();
            });
        } else if (Party_admin) {
        	new Element('br').injectInside(NameTD);
        	new Element("a" , {"href":"javascript:void(0)"}).injectInside(NameTD).appendText("מחק").addEvent('click' , function(){
            	new Ajax('/ajax_chat.php?party_id=' + party_id + '&delete=' + msg.msg_id , { 'method':'get' , 'onComplete':function(cont){return true;} }).request();
            });
		}
        //msg_tr.injectInside(tbody);
        msg_tr.injectInside(OutPut);
    });
    //tbody.injectInside(OutPut);
    
    var tOption = $('reply_user_select');
    if(tOption){
        //alert(tOption);
        var OldVal = tOption.value;
        if(!OldVal) OldVal = 0;
        tOption.options.length = 0;
        tOption.options[0] = new Option('כולם','0');
        $each(json_data.users , function(usr){
            tOption.options[tOption.options.length] = new Option(usr.first + " " + usr.last,usr.id);
        });
        tOption.value = OldVal;
    }
    
    
    //logged_in section
    if(Party_admin){
        var LoggedIn = $('logged_in').empty();
        $each(json_data.stats.users , function(num_user){
            new Element("div").appendText(users[num_user].name).injectInside(LoggedIn);
        });
        new Element("div").appendText(json_data.stats.logged_users + " משתמשים רשומים").injectInside(LoggedIn);
        new Element("div").appendText(json_data.stats.logged_guests + " אורחים באתר").injectInside(LoggedIn);
    }
    
    Last_ID = Reading_Last_ID;
    ReadChat.delay(1000);
    
}

function Last_ID_Recived(Recived){
    
    var no_error = new RegExp('^([a-f0-9]+)$','');
    if(!Recived.match(no_error)) {
        //alert("Error opening chat client, Error:\n" + Recived);
        alert(Recived);
		window.history.go(0) 
        return false;
    }
    var Res = Recived;
    
    if(Res != 0 && Last_ID != Res){
        Reading_Last_ID = Res;
        ReadMessages();
    } else {
        ReadChat.delay(1000);
    }
    
    
}
function human_readable(size){
    var loop = 0;
    var nsize = size;
    while(nsize > 1024){
        nsize = Math.floor(nsize / 102.4) / 10;
        loop += 1;
    }
    var sizes_pre = ["b" , "kb" , "mb"];
    return nsize + sizes_pre[loop];
}

function finfo_search(pk){
    var found = false;
    $each(files , function(elm){
        if(elm.pk == pk || elm.id == pk) found = elm;
    });
    return found;
}

function img_zoom(img_id){
    var file = finfo_search(img_id);
    //alert('test');
    
    if(file['class'] != "img") return false; 
    
    //var med_img = $('med_img');
    //med_img.src = "/media/parties/" + file.name.substring(0 , file.name.length - 4) + ".med.jpg";
    
    
    $('med_img').src="/media/parties/" + file.name.substring(0 , file.name.length - 4) + ".med.jpg";
    
    //$('med_img').getParent().setHTML("<img id='med_img' src='/media/parties/" + file.name.substring(0 , file.name.length - 4) + ".med.jpg' />");
    
    $('fulldownload').href = "/media/parties/" + file.name;
    $('fullsize').empty().appendText(human_readable(file.size));
}
function UpdateTTP(){
    ttp -= 1;
    
    if(ttp < 150){
        window.location.reload();
        return;
    }
    //console.log(ttp + " seconds left");
    
    var cdown = $('CountDown');
    if(cdown){
        var clock_str = "";
        /*if(ttp < 86400){
            clock_str = ZeroPad(Math.floor(ttp / 3600)) + ":" + ZeroPad(Math.floor(ttp / 60) % 60) + ":" + ZeroPad(ttp % 60);    
        } else {*/
            clock_str =  Math.floor(ttp / 86400) + " " + ZeroPad(Math.floor(ttp / 3600) % 24) + ":" + ZeroPad(Math.floor(ttp / 60) % 60);
        //}
        
        cdown.setHTML(clock_str);
    }
    
    setTimeout("UpdateTTP()" , 1000);
    
    
}
function ZeroPad(str){
    if(str.toString().length < 2)
        str = "0" + str;
    return str;
}
