﻿
//friendsMenu
(function($)
{
    $.fn.showGroupFriendsMenu = function(options)
    {
        
        var optionsDefault = 
        {
            groupid:""
            ,baseURL:"/"
        };
        
         
        options = $.extend({},optionsDefault,options);
        if (options.groupid == "" || options.groupid == undefined) { alert("require groupid"); return; }
        
        var arrMenu = ['All Friends'
                      ,'Online now'
                      ,'Recently Update'
                      ,'Recently Added'
                      //,'Question & Answer Today'
                      //,'Best Answer Today'
                      
//                      ,'Received ur best answer'
//                      ,'Gave u best answer'
//                      ,'Gave u cool answer'
//                      ,'Gave u cool question'
//                      ,'Invite Friends'
                      ];
                      
        var arrMenuOnclick = [
            'javascript:doOpenGroupFriends(\''+options.groupid+'\',0);'
            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',1);'
            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',2);'
//            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',3);'
//            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',4);'
//            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',5);'
//            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',6);'
            ,'javascript:doOpenGroupFriends(\''+options.groupid+'\',7);'
            //,'javascript:doOpenGroupFriends(\''+options.groupid+'\',8);'
            //,'javascript:doOpenGroupFriends(\''+options.groupid+'\',9);'
            //,options.baseURL+'register/invite'
        ];
        
        return $(this).each(function()
        {
            var cmdPopupID = this.id + "_popup";
            
            //if don't have element cmdPopupID
            if (!document.getElementById(cmdPopupID) || document.getElementById(cmdPopupID) == null)
            {
                //then create element cmdPopupID
                var newdiv = document.createElement("div");
        		newdiv.id = cmdPopupID;
        		$(document.body).append(newdiv);
            }
            
            //create friends menu
            var menuHTML = "<div class=\"menuGroupPopup\">\r\n";
            
            for (var i=0;i<arrMenu.length;i++)
            {
                if (arrMenuOnclick[i] == null)
                    arrMenuOnclick[i] = "";
                
                if (arrMenuOnclick[i].search(/^javascript:/i) != -1)
                {
                    menuHTML += "<span><a href=\"javascript:void(0);\" title=\""+arrMenu[i]+"\" onclick=\""+arrMenuOnclick[i]+"\">"+arrMenu[i]+"</a></span>\r\n";
                }else{
                    menuHTML += "<span><a href=\""+arrMenuOnclick[i]+"\" title=\""+arrMenu[i]+"\">"+arrMenu[i]+"</a></span>\r\n";
                }
            }
            menuHTML += "</div>\r\n";
            var $offset = $(this).offset();
            $("#"+cmdPopupID)
            .css({ top : parseInt($offset.top)+20
                 , left : parseInt($offset.left)
                 , position : "absolute"
            });
            
            $("#"+cmdPopupID).html(menuHTML);
            $("#"+cmdPopupID).fadeIn("fast");
            
            //event
            var timeout;
            $(this).mouseout(function()
            {
                timeout = setTimeout(function()
                {
                    $("#"+cmdPopupID).fadeOut("fast");
                },500);
            })
            .mouseover(function()
            {
                clearTimeout(timeout);
            });
            
            $("#"+cmdPopupID).mouseover(function()
            {
                clearTimeout(timeout);
            })
            .mouseout(function()
            {
                timeout = setTimeout(function()
                {
                    $("#"+cmdPopupID).fadeOut("fast");
                },500);
            });
            
            $("#"+cmdPopupID+" a").click(function()
            {
                clearTimeout(timeout);
                $("#"+cmdPopupID).fadeOut("fast");
            });
        });
    };
})(jQuery);

//========== Pre-load image
if (document.images)
{
    var glzImgLoading = new Image();
    glzImgLoading.src = "/content/st/im/waiting.gif";
}

//========== Get Query String
function queryString(ji) 
{
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) 
    {
        ft = gy[i].split("=");
        if (ft[0] == ji) 
        {
            return ft[1];
        }
    }
    return null;
}
function GroupMemberAutoLoad(qs,gid)
{
    if (qs == null) qs = "";
    var item = qs.split(";");
        
    var friendsid = null;
    var loadingid = "BoxProfileGroupFriends";
    var alphabet = "%";
    var type = "0";
    var page = 1;
    
    for (var i = 0 ;i < item.length; i++)
    {
        var kv = item[i].split(":");
        if (kv[0] == "id")
        {
            friendsid = kv[1];
        }else if (kv[0] == "cid")
        {
            loadingid = kv[1];
        }else if (kv[0] == "al")
        {
            alphabet = kv[1];
        }else if (kv[0] == "type")
        {
            type = kv[1];
        }else if (kv[0] == "page")
        {
            page = kv[1];
        } 
    }
    if (friendsid == null && gid != null) friendsid = gid;
    if (friendsid != null) 
    {
        if (alphabet == "%" && page == "1")
        {
            doOpenGroupFriends(friendsid,type);
        }else
            GGZGroupFriendGoPage(loadingid,alphabet,type,page,friendsid);
    }
}
//========= Check Query string onLoad
$(document).ready(function()
{
    var qs = queryString("doGroupFriends");
    var gid = queryString("gid");
    if (qs != null)
    {
        GroupMemberAutoLoad(qs,gid);
    }
});

//========= doGroupFriendsMenu
function doGroupFriendsMenu(id,groupid)
{
    $(document).ready(function()
    {
        $("#"+id).showGroupFriendsMenu({ groupid: groupid });
    });
}

function urlDecode(str)
{
    str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}
function urlEncode(str)
{
    str=escape(str);
    str=str.replace(new RegExp('\\+','g'),'%2B');
    return str.replace(new RegExp('%20','g'),'+');
}


function doOpenGroupFriends(groupid,type)
{
    if (type == undefined) type = "0";
    getGroupFriendList(undefined,type,groupid);
}

function getGroupFriendList(controlid,type,groupid)
{
    $(document).ready(function()
    {
        GGZGroupFriendGoPage(controlid,'%',type,1,groupid);
    });
}

function hasControlid(id)
{
    return document.getElementById(id) == null ? false : true;
}

function GGZGroupFriendGenPage(loadingId,alphabet,type,page,groupid)
{
    setTimeout(function()
    {
        var location = "/home/group/GroupMembers.aspx?gid="+groupid+"&doGroupFriends=";
        location += "id:"+groupid+";";
        if (loadingId != "BoxProfileGroupFriends") location += "cid:"+loadingId+";";
        if (alphabet != "%") location += "al:"+alphabet+";";
        try
        {
            if (parseInt(type) != 0) location += "type:"+type+";";
            if (parseInt(page) != 1) location += "page="+page+";";
        }catch(ex)
        {
        }
        window.location = location;
    },20);
}

function GGZGroupFriendGoPage(loadingId,alphabet,type,page,groupid)
{   
    if (loadingId == undefined || loadingId == "" || loadingId == null) loadingId = "BoxProfileGroupFriends";
    if (!hasControlid(loadingId))
    {
        GGZGroupFriendGenPage(loadingId,alphabet,type,page,groupid);
        return false;
    }
    //alert("test");
    $("#ctl00_GGZTempate01Content_Box1").hide();
    $("#ctl00_GGZTempate01Content_Box2").hide();
    $("#ctl00_GGZTempate01Content_Box3").hide();
    $("#ctl00_GGZTempate01Content_Box4").hide();
    $("#ctl00_GGZTempate01Content_BoxIncomming").empty().hide();
    $("#BoxProfileText").hide();
    //$("#"+loadingId).insertAfter("#BoxProfileText");
    $(".BoxProfileText").html("");
    
    if ($("#" + loadingId).height() < 100) $("#" + loadingId).height(100);
      $("#" + loadingId).unblock().block('<img src="/content/jc/pi/ui/im/bigWaiting.gif" />',{ background:'transparent'});
      
    //$("#" + loadingId).unblock().block(loading,{ border:'1px solid #CCCCCC' , fontSize: '10px', color: '#777' });

    
    var key = urlEncode(document.getElementById("ctl00_Key").value);
    var params = "key=" + key + "&controlid=" + loadingId + "&page=" + page + "&by=" + alphabet + "&action=getfriends&type=" + type;
    if (groupid != undefined) params += "&groupid=" + groupid;
    
    $.ajaxRetry(
    {//begin ajax
        type: "POST",
        url: "/service/members/GLZGetGroupFriends.ashx",
        data: params,
        dataType: "json",
        cache: false,
        timeout: 10000,
        numRetry: 10,
        increaseTimeout: 1000,
        loadingId: loadingId,
        error: GLZGroupFriend_onFailed,
        success: GLZGroupFriend_onSuccess
    });//end ajax

    var targetOffset = $("#"+loadingId).offset().top;
    $("html,body").animate( { scrollTop:targetOffset-15 },1000 );
    
}//end function GGZGroupFriendGoPage

function GLZGroupFriend_onSuccess(xml)
{
    //alert("ok");
    $("#" + xml.controlid).height("auto");
    var result = unescape(xml.scripts);
    $("#" + xml.controlid).hide();
    document.getElementById(xml.controlid).innerHTML = result;
     if (xml.hidealph && xml.hidealph == "true") { $("#ul_" + xml.controlid + " .listAlphabet").hide(); }
    $("#" + xml.controlid).fadeIn("slow");
    var paging = unescape(xml.paging);
    $("#"+xml.pagingid).paging(
    {
        currentPage: xml.currentpage,
        totalPages: xml.totalpages,
        pageLimit: xml.pagelimit,
        adjacents: 2,
        linkTemplate: "javascript:GGZGroupFriendGoPage('{0}','{1}','{2}','{page}','{3}');",
        linkArgs: eval("new Array("+xml.args+")")
    });
    
    
    $(document).ready(function()
    {
        var fix = 5;
        if ($("#"+xml.controlid).width() < 600) fix = 3;
        $(".FriendList ul li:nth-child("+fix+"n)").after("</ul><ul>");
    });
    $.unblockUI();
}
function GLZGroupFriend_onFailed(result)
{
    var loading = "";
    try{
        if (this.retry == undefined) return;
        if(this.retry > this.numRetry)
        {
            loading = "<br /><b>" + this.errorRetry + "</b><br />";

            $("#" + this.loadingId).unblock().block(loading,{ border:'1px solid #CCCCCC' , fontSize: '10px', color: '#777' }); //border:'1px solid #CCCCCC' , fontSize: '12px'

            return;
        }
        loading = "<br /><img src=\"/content/st/im/waiting.gif\" alt=\"Loading\" /><br /><b>Connection Timeout.<br />Trying connect to service. #" + this.retry + "</b><br />";
        if (!document.getElementById("div_" + this.loadingId))
            $("#" + this.loadingId).unblock().block(loading,{ border:'1px solid #CCCCCC' , fontSize: '10px', color: '#777' });
        else
            $("#div_" + this.loadingId).unblock().block(loading,{ border:'1px solid #CCCCCC' , fontSize: '10px', color: '#777' });

    }catch(ex)
    {
        loading = "<br /><b>Service error.</b><br />";

            //document.getElementById(this.loadingId).innerHTML = loading;
          $("#" + this.loadingId).unblock().block(loading,{ border:'1px solid #CCCCCC' , fontSize: '10px', color: '#777' });

    }
    //end error
    $.unblockUI();
}
