
//到使用者主畫面
function toUserPage() {
    location.href = 'userpage.php';
}

//檢查Email格式
function verifyEmail(email1){
    var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
    return (email1.search(emailRegEx) != -1);
}

//設定所有login相關的coolies
function setAllCookies(uid, is_fb, sb_uid, session_key, email, show_tip) {
    $.cookie('uid', uid, { path:"/", expires:300 });
    $.cookie('is_fb', is_fb, { path:"/", expires:300 });
    $.cookie('sb_uid', sb_uid, { path:"/", expires:300 });
    $.cookie('sb_session_key', session_key, { path:"/", expires:300 });
    $.cookie('email', email, { path:"/", expires:300 });
    $.cookie('show_tip', show_tip, { path:"/", expires:300 }); //1=show, 0=hide, none=show
}

//清除所有login相關的coolies
function clearAllCookies() {
    $.cookie('uid', null, { path:"/" });
    $.cookie('email', null, { path:"/" });
    $.cookie('is_fb', null, { path:"/" });
    $.cookie('sb_uid', null, { path:"/" });
    $.cookie('sb_session_key', null, { path:"/" });
}

//為新使用者，增加預設頁面 (顯示選單，新增頁面)
function newUserDefaultDataProcess(uid, jobDoneCbFn) {
    $(document.body).html('');
    
    //新增選取的頁面到DB
    function addTopicList(uid, topics) {
        var topicJsonStr = array2json(topics);
        $.post('dojob.php', {job:'default_topic', topicjsonstr:topicJsonStr, uid:uid}, function() {
            jobDoneCbFn();
        }, 'json');
    }
    
    //主題選單
    var showTopicSelector = function(cbFn) {
        var div = document.getElementById('topic_panel');
        if (!div) {
            div = document.createElement('div');
            $(div).attr('id', 'topic_panel');
        }
        var txt = "<div id='topic_panel'>";
        txt += "<input type='checkbox' class='topic' id='Tech' checked><label FOR='Tech'>Tech</label></input>";
        txt += "<input type='checkbox' class='topic' id='News' checked><label FOR='News'>News</label></input>";
        txt += "</div>";
        $(div).html(txt);
        document.body.appendChild(div);
        var send_pick = function() {
            var topicArr = $(".topic");
            var selectedTopics = new Array();
            for(var i=0; i<topicArr.length; i++) {
                var aTopic = topicArr[i];
                if ($(aTopic).attr('checked')) {
                    selectedTopics[selectedTopics.length] = $(aTopic).attr('id');
                }
            }
            if (cbFn) {
                cbFn(selectedTopics);
            }
            $(div).dialog('destroy');
        }
        var cancel_pick = function() {
            $(div).dialog('destroy');
            if (cbFn) {
                cbFn(new Array());
            }
        }
        $(div).dialog({width:'520px',  title:lang.SELECT_TOPIC,  buttons:{"Ok":send_pick, 'Cancel':cancel_pick}});
    }
    
    chkAppPermission(function() {
        showTopicSelector(function(topics) {
            addTopicList(uid, topics);
        })
    });
}

////////
//登入成功後判斷新舊使用者
function afterLogin(uid, isNewUser) {
    if (isNewUser) {
alert(2)
        newUserDefaultDataProcess(uid, toUserPage);
    } else {
        toUserPage();
    }
}

//通過Facebook登入後的系統登入或註冊動作
function facebook_onlogin() {
    FB_RequireFeatures(["Connect"], function(){
        FB.ensureInit(function() {
            try {
                var api = FB.Facebook.apiClient;
                var sb_uid = api.get_session().uid;
                var session_key = api.get_session().session_key;
            } catch (err) {}
            //檢查uid是新的使用者還是舊使用者
            var facebookloginCbFn = function(json) {
                if ('OK' == json.status || 'NEW' == json.status || 'ADD_FB' == json.status) {
                    setAllCookies(json.uid, 1, sb_uid, session_key, '', json.show_tip);
                    var isNewUser = ('NEW' == json.status);
                    afterLogin(json.uid, isNewUser);
                }
            }
            $.post('dojob.php', {'job':'facebook_login', 'uid':sb_uid, 'facebook_session_key':session_key}, facebookloginCbFn, 'json');
        });
    });
}

//facebook是否已經checkin
function chkFnLogin(cbFn) {
    FB_RequireFeatures(["Api"], function(){
        FB.ensureInit(function() {
            var api = FB.Facebook.apiClient;
            try {
                FB.Connect.ifUserConnected(function() {cbFn(true);}, function() {cbFn(false);});
            } catch(err) { 
                setTimeout("checkAutoLogin();", 500);
            }
            
        });
    });
}

//自動登入
function checkAutoLogin(cbFn) {
    var uid = $.cookie('uid');
    var is_fb = $.cookie('is_fb');
    var sb_uid = $.cookie('sb_uid');
    var sb_session_key = $.cookie('sb_session_key');
    var email = $.cookie('email');      
    if (uid) {
        $.post('dojob.php', {'job':'autologin', 'email':email, 'is_fb':is_fb, 'sb_uid':sb_uid, 'sb_session_key':sb_session_key}, 
                function(json) {
                     if ('OK' == json.status) {
                        setAllCookies(uid, is_fb, sb_uid, sb_session_key, email); //re-new cookies lifetime
                        toUserPage();
                     } else {
                        if (cbFn) {
                            cbFn(false);
                        }
                     }
                }, 'json');
    } else {
        if (cbFn) {
            cbFn(false);
        }
    }
}