/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

$(document).ready(function () {
    hover_cards_init();
    
});
var popOverlayer_ck = false;
var popOverlayer = "";
var my_screen_name = "";
var currentTarget_screen_name = "";

function hover_cards_init(){
        
    get_article_by_screen_name();
    $('.user_hover_cards').hover(user_hover_cards_rollover, user_hover_cards_rollout);
    $('div.author > a').hover(user_hover_cards_rollover, user_hover_cards_rollout);
    $('span.author > a').hover(user_hover_cards_rollover, user_hover_cards_rollout);
}

function get_article_by_screen_name(){
    var article_size = $('.article').size();
    //var article_size = $('*').size();

    for(var i=0; i < article_size; i++){
        var contents = $('.article').eq(i).html()

        var regexp = new RegExp("\@{1}[_0-9a-zA-Z-]+",'g');

        var replace_str = contents.match(regexp);
            
        if(replace_str != null){

            for(var j=0; j < $(replace_str).size(); j++){

                var replace_value = replace_str[j].replace("@", "");
                var new_str = "@<a class='user_hover_cards' href='http://twitter.com/";
                    
                new_str = new_str +replace_value+"'>"+replace_value+"</a>";
                contents = contents.replace(replace_str[j], new_str);

            }
                
        }
            
        $('.article').eq(i).html(contents);
    }
}

function user_hover_cards_rollover(e){
    $('.popOverlayer').hide();
    my_screen_name = $('#userSign > .signed > .user > .name').text();
    currentTarget_screen_name = $(e.currentTarget).text();
    
    var layer_id = 'popOverlayer_' + currentTarget_screen_name;

    if(!$('#'+layer_id).is('div')){

        var url = '/ajax/get_user_by_friendships_target_user/';
        url = url + my_screen_name +'/';
        url = url + currentTarget_screen_name+'/';

        $.getJSON(url, function(data){

            if(data.error === undefined){
                if(data.relationship.source.following){
                    user_hover_cards_make(e.currentTarget , true)
                }else{
                    user_hover_cards_make(e.currentTarget , false)
                }
            }else{
                user_hover_cards_make(e.currentTarget , 'error');
            }
        });
        
    }else{
        user_hover_cards_offset(e.currentTarget);
        $('#'+layer_id).show();
        
    }
    
}

function user_hover_cards_make(_obj, _relationship_ck){
    
    var layer_id = 'popOverlayer_' + currentTarget_screen_name;
    
    var login_check_value = $('#login_check_value').val();
    var twitter_linked_check_value = $('#twitter_linked_check_value').val();

    var hovercard = "";
        hovercard = hovercard + "<div class='popOverlayer' id='"+layer_id+"' style='display:none;'>";
        hovercard = hovercard + "<div class='userlayer'>";
        hovercard = hovercard + "<div class='layerposition top'></div>";
        hovercard = hovercard + "<div class='userinfo'>";
        hovercard = hovercard + "<div class='username'>"+currentTarget_screen_name+"</div>";


        if(login_check_value){
            if(twitter_linked_check_value){
                
                    if(my_screen_name!=currentTarget_screen_name){

                        if(_relationship_ck==true){
                            hovercard = hovercard + "<div class='relstate'><button onclick='' class='follower' disabled='disabled'><span>Following</span></button></div>";

                        }else if(_relationship_ck == 'error'){
                            //hovercard = hovercard + "            <div class='relstate'><button onclick='' class='nofollow'><span>Follow</span></button></div>                               ";

                        }else{
                            hovercard = hovercard + "<div class='relstate'><button onclick='following_by_user();' class='nofollow'><span>Follow</span></button></div>";
                        }
                    }
                
            }else{
                hovercard = hovercard + "<div class='relstate'><button onclick='location_link_page();' class='nofollow'><span>Follow</span></button></div>";
            }
        }else{

            hovercard = hovercard + "<div class='relstate'><button onclick='location_login_page();' class='nofollow'><span>Follow</span></button></div>";
        }

        hovercard = hovercard + "<div class='clear'></div>";
        hovercard = hovercard + "</div>";
        hovercard = hovercard + "<div class='action'>";
        hovercard = hovercard + "<a href='/"+currentTarget_screen_name+"' class='usertweemix' title='Tweetmix'><span>Tweetmix</span></a>";
        hovercard = hovercard + "<a href='http://twitter.com/"+currentTarget_screen_name+"' class='usertwitter' title='Twitter'><span>Twitter</span></a>";
        hovercard = hovercard + "</div>";
        hovercard = hovercard + "<div class='layerposition bottom'></div>";
        hovercard = hovercard + "</div>";
        hovercard = hovercard + "</div>";

        $(_obj).after(hovercard);

        user_hover_cards_offset(_obj);

        $('#'+layer_id).show();
        $('.popOverlayer').hover(popOverlayer_over, popOverlayer_out);
}

function user_hover_cards_offset(_obj){
    
    var layer_id = 'popOverlayer_' + currentTarget_screen_name;

    var offset = $(_obj).offset();
    //var margin_x = $(event.currentTarget).width()/2
    var margin_y = $('#'+layer_id).height() + 10;

    var tPosX = offset.left;

    if(offset.top - $(document).scrollTop() < margin_y){

        var tPosY = offset.top + 25;
        $('.layerposition.bottom').hide();
        $('.layerposition.top').show();

    }else{

        var tPosY = offset.top - margin_y;
        $('.layerposition.top').hide();
        $('.layerposition.bottom').show();

    }

    $('#'+layer_id).css({
        top: tPosY,
        left: tPosX
    });

}

function user_hover_cards_rollout(){

    popOverlayer = setTimeout(layer_id_mouse_event_check, 200);
    
}

//clearTimeout

function layer_id_mouse_event_check(){

    if(!popOverlayer_ck){
        var id  = $('.popOverlayer:visible').attr('id');
        $('#'+id).hide();
        
    }else{
        
        popOverlayer_ck = false;
    }
}

function popOverlayer_over(){
    popOverlayer_ck = true;
}

function popOverlayer_out(){

    popOverlayer_ck = false;
    var id  = $('.popOverlayer:visible').attr('id');
    $('#'+id).hide();
    
}

function following_by_user(){

    var url = '/twitter/following/'+currentTarget_screen_name;

    $.getJSON(url, function(data){
        if(data.error==0){
            var layer_id = 'popOverlayer_' + currentTarget_screen_name;

            var chang_obj = "<button onclick='' class='follower' disabled='disabled'><span>Following</span></button>";
            $('#'+layer_id + '> .userlayer > .userinfo > .relstate').html(chang_obj);
            
        }else{

        }
    });
}


/*
function loding_frend_list(_curos){
    if(_curos){
        var url = '/ajax/get_user_friend_list/'+ $('#page_tid_userid').val()+'/'+_curos;
    }else{
        var url = '/ajax/get_user_friend_list/'+ $('#page_tid_userid').val();
    }

    $.getJSON(url, function(data){
        $('#friend_list').text('friend :'+ data.users.length + '/');
        for(var i=0; i < data.users.length; i++){

            var friend_list = $('#friend_list').text();
            $('#friend_list').text(friend_list + '\n' + (i+1) +':'+data.users[i].screen_name);
        }
        //$('#friend_list').text() =  $('#friend_list').text()+'<a href=''>다음친구들</a>'
        if(data.next_cursor!=0){
            loding_frend_list(data.next_cursor);
        }
    });
}
*/
