/*
function avatar_image_check(){

    var img  = $('img').filter('.avatar > a > img');
    var len = $(img).size();
    for(var i=0; i < len; i++){
        var comp = $(img).eq(i)[0].complete;
        if(!comp) loadImage($(img).eq(i));
    }
}
*/

function avatar_image_check(){

    var img  = $('img').filter('.avatar > a > img');
    var len = $(img).size();
    for(var i=0; i < len; i++){
        $(img).eq(i).load(avatar_image_load_check);
    }
}

var avatar_image_load_check = function(e){
    var img  = $(e.currentTarget);
    var comp = $(img)[0].complete;
    if(!comp) loadImage(img);
};

function loadImage(img_this){
    // 이미지 로딩에 실패하셨썀!!!
    var id = $(img_this).attr('id');
    var array_id = id.split('-');
    var ur = "/ajax/image/" + id + "/" + array_id[1] + "/";
    httpcall_ajax(ur, img_res);
}
    
function img_res(res)
{
    var img_id = res.get("img_id");
    var img_source = res.get("img_source");
    var img_obj = document.getElementById(img_id);
    
    if (res.error_code > 0 || !img_source)
    {
        $(img_obj).attr('src','/images/noImage_48.gif');
    }
    else
    {
        $(img_obj).attr('src',img_source);
    }
}

var preview_event= function(_obj){
    
    var el = $(_obj);
    var id = "";

    if(typeof(_obj) == "string"){
        id = _obj;
        
    }else{
        id = el.attr('id');
        
    }

    var w = $('.preview_window');
    
    var animation = false;
    //var animation = true;
    if(animation){
        preview_animate(w);
        
    }else{

        w.height($(document).height());
        w.width('100%');
        w.css('opacity','0.8');
        w.show();
        //로딩 화면 만들기
        
        var loading = $('.preview_loding');
        var loading_top = ($(window).height() / 2)+$(document).scrollTop();
        var loading_left = $(window).width() / 2;

        loading_top = loading_top - (loading.height()/2);
        loading_left = loading_left - (loading.width()/2);
        
        loading.css('top',loading_top+'px');
        loading.css('left',loading_left+'px');
        loading.show();
        preview_content_init(id);
    }
    
};

var preview_content_init= function(_id){
    var len = $('.pane-tweet').length;
    if( len == 0 ){
        $('<div class="pane-tweet"></div>').insertBefore('body');
        
    }
    preview_content_setting(_id);
    
};

var preview_content_setting= function(_id){
    
    var con = $('.pane-tweet');
    var url = '/ajax/preview_get_link/' + _id.replace('preview_', '');
    
    var top_margin = 100;

    var check = $(document).height() - con.height();
    var init_top = top_margin + $(document).scrollTop();
    var init_left = ($(window).width() / 2) - (con.width()/2);
    
    if(check < init_top){
        init_top = check;
    }
    
    con.css('top',init_top+'px');
    con.css('left',init_left+'px');
    con.hide();

    $.get(url, function(data){
        assemble(data, con);
        con.show();
    });
};

var imge_load_check = function(e){
    var img  = $(e.currentTarget);
    var comp = $(img)[0].complete;
    if(comp) {

        var p_top = $('.pane-tweet').css('top').replace('px', '');
        var p_h =  $('.pane-tweet').height();
        var w_h = $('.preview_window').height();

        var check = parseInt(p_h,10) + parseInt(p_top,10);

        if(check > w_h){
            $('.preview_window').height(check + 10);
        }
    }
    $('.preview_window').bind('click',preview_close);
};

var event_ignore = function(e){
    var tagName = e.target.nodeName;
    if(tagName=="A"){
        e.preventDefault();
    }
};

var assemble = function(_data, _obj){
    
    _obj.append(_data);
    $('img').load(imge_load_check);
    
    //$('.tweet-media > img').bind('click',preview_close);
    var id = $("#preview_id").val();
    var tid = $("#preview_tid").val();
    preview_get_related_tweet(tid,id, 0);
};

var preview_close = function(){
    //$('.pane-tweet').remove();
    $('.pane-tweet').hide();
    $('.pane-tweet').html('')
    //$('.preview_loding').remove();
    $('.preview_loding').hide();
    $('.preview_window').hide();
};

var _prv_rt_page_count = 5;

var preview_get_related_tweet= function(_tid_status, _id, _page, _obj){
    if(typeof(_obj) != "undefined"){
        $(_obj).addClass('loading');
    }

    var page_count = _prv_rt_page_count +1;
    var url = '/ajax/preview_get_link_related_tweet/';
        url = url + _tid_status +'/';
        url = url + _id +'/';
        url = url + _page +'/';
        url = url + page_count;
        
    //$('#preview_related_list').hide('slow');

    $.getJSON(url, function(data){
        
        var tt_url = "http://twitter.com";

        switch (data.error){
            case 0 :
                var len = data.tweets.length;
                $('#preview_related_list').html('');
                $('#preview_paging').html('');

                for(var i=0 ;i < len; i++){
                    
                    var str_tweets = '<li class="item">';
                    str_tweets = str_tweets + '    <div class="entrywrap">';
                    str_tweets = str_tweets + '        <div class="avatar"><a href="/'+data.tweets[i].screen_name+'"><img src="'+data.tweets[i].photo_url+'" alt="'+data.tweets[i].screen_name+'" /></a></div>';
                    str_tweets = str_tweets + '        <div class="entry">';
                    str_tweets = str_tweets + '            <div class="author"><a href="/'+data.tweets[i].screen_name+'">'+data.tweets[i].screen_name+'</a></div>';
                    str_tweets = str_tweets + '            <p class="article">'+data.tweets[i].contents+'</p>';
                    str_tweets = str_tweets + '            <div class="status"> <span class="date"><a href='+tt_url + '/'+data.tweets[i].screen_name + '/status/'+data.tweets[i].tid_status+'" target="_blank">'+data.tweets[i].ago_date_tweeted+'</a></span>';
                    str_tweets = str_tweets + '                <ul class="action">';
                    str_tweets = str_tweets + '                    <li><a href="#" class="reply" onclick="reply(\''+data.tweets[i].screen_name+'\',\''+data.tweets[i].tid_status+'\');return false;"><span>Reply</span></a></li>';
                    str_tweets = str_tweets + '                    <li><a href="#" class="retweet" onclick="retweet(\''+data.tweets[i].id+'\',\''+data.tweets[i].screen_name+'\');return false;"><span>Retweet</span></a></li>';
                    str_tweets = str_tweets + '                </ul>';
                    str_tweets = str_tweets + '            </div>';
                    str_tweets = str_tweets + '        </div>';
                    str_tweets = str_tweets + '        <div class="clear"></div>';
                    str_tweets = str_tweets + '    </div>';
                    str_tweets = str_tweets + '</li>';

                    str_tweets = str_tweets + '</li>';
                    //var original_contents = escap(data.tweets[i].original_contents);
                    //str_tweets = str_tweets + '<input type="hidden" id="retweet_content_'+data.tweets[i].id+'" value="'+original_contents+'"/>';
                    str_tweets = str_tweets + '<input type="hidden" id="retweet_content_'+data.tweets[i].id+'" value="'+data.tweets[i].original_contents+'"/>';

                    var contents = $('#preview_related_list').html()+str_tweets;
                    //$('#preview_related_list').html(contents).show('slow');
                    $('#preview_related_list').html(contents);
                }

                //paging
                var str_page ="";
                var str_next =" onclick ='preview_get_related_tweet("+_tid_status+","+ _id+","+(_page+_prv_rt_page_count)+",this);return false;' ";
                var str_prev =" onclick ='preview_get_related_tweet("+_tid_status+","+ _id+","+(_page-_prv_rt_page_count)+",this);return false;' ";
                var str_nothing =" onclick ='return false;'";

                
                if(data.page_end_check){
                    if(_page!=0){
                        str_page = $('#preview_paging').html() +'<a '+str_prev+' class="prev">이전</a>';
                        str_page = str_page +'<a '+str_nothing+' class="next disabled">다음</a>';
                    }else{
                        str_page ="";
                    }
                }else if(_page==0 && !data.page_end_check) {
                    str_page = $('#preview_paging').html() +'<a '+str_nothing+' class="prev disabled">이전</a>';
                    str_page = str_page +'<a '+str_next+' class="next">다음</a>';
                }else{
                    str_page = $('#preview_paging').html() +'<a '+str_prev+' class="prev">이전</a>';
                    str_page =  str_page +'<a '+str_next+' class="next">다음</a>';
                }
                $('#preview_paging').html(str_page);
                break;
            case 1 :
                $('#preview_related_list').html('');
                $('#preview_related_list').html('<li class="item">'+data.msg+'</li>');
                break;
            default :
                show_and_fadeout_status('ajax error', _duration);
                break;
        }

    });
};

var preview_animate= function(_obj){
    
        _obj.height(10);
        _obj.width(10);

        var init_top = ($(document).height() / 2)+$(document).scrollTop();
        var init_left = ($(window).width() / 2) - (_obj.width()/2);

        var ani_top = ($(window).height() / 2) - (_obj.height()/2);
        ani_top = ani_top + $(document).scrollTop();
        
        _obj.css('top',init_top+'px');
        _obj.css('left',init_left+'px');

        _obj.show('slow');

        _obj.animate({
            top: ani_top
        }, 1000, function() {
            preview_height_animate(_obj);
        });

};

var preview_height_animate= function(_obj){
    _obj.animate({
            top : 0,
            height: $(document).height()
    }, 1500, function() {
        preview_width_animate(_obj);
    });
};

var preview_width_animate= function(_obj){
    _obj.animate({
            left : 0,
            width: '100%'
    }, 1000, function() {
        // Animation complete.
        preview_content_init();
    });
};

function escap(str){
    var return_value = encodeURIComponent(str);
    return return_value;
};
