FacebookManager = {
    API_ID: "de278de01304ef3cd00f66222412868b",

    finish_fb_login: function () {
        // register session
        $.ajax({
            type: "POST",
            url: "Services/FacebookService.asmx/SaveSession",
            contentType: "application/json; charset=utf-8",
            data: "{'fb_uid':'" + FacebookManager.uid + "'}",
            dataType: "json",
            success: function (data) {
                var res = data.d;
                if (res.success) {
                    if (location.href.indexOf("Home.aspx") < 0) {
                        location = "Home.aspx";
                    }
                    else {
                        location.reload(true);
                    }
                }
                else
                    alert('אירעה שגיאת התחברות. אנא נסה שנית במועד מאוחר יותר.');
            }
        });
    },

    logout: function (callback) {
        FB.logout(function (response) {
            if (callback) callback();
        });
    },

    save_user: function (callback) {
        var query = FB.Data.query("SELECT uid,email,first_name,last_name,pic_big,birthday,sex FROM user WHERE uid=" + FacebookManager.uid);
        query.wait(function (rows) {
            if (rows) {
                var d = rows[0];
                $.ajax({
                    type: "POST",
                    url: "Services/FacebookService.asmx/RegisterUser",
                    contentType: "application/json; charset=utf-8",
                    data: "{'birthday':'" + d.birthday + "','email':'" + d.email + "','first_name':'" + d.first_name + "','last_name':'" + d.last_name + "','pic_big':'" + d.pic_big + "','sex':'" + d.sex + "','uid':'" + d.uid + "'}",
                    dataType: "json",
                    success: function (data) {
                        var res = data.d;
                        if (res.success) {
                            if (callback)
                                callback();
                        }
                    }
                });
            }
        });
    },

    share: function (caption, img, link, callback) {
        var pub = {
            method: 'stream.publish',
            display: 'dialog',
            attachment: {
                caption: lbl_fb_share,
                media: [{
                    type: 'image',
                    src: fb_share_img,
                    href: link
                }]
            },
            action_links: [{
                text: 'לאתר',
                href: '{BASE_DOMAIN}'
            }]
        };

        FB.ui(pub, function (response) {
            if (callback) callback();
        });
    },

    show_invite_window: function () {
        var domain = 'http://www.ilove.co.il';
        var oldSize = FB.UIServer.Methods["fbml.dialog"].size;
        FB.UIServer.Methods["fbml.dialog"].size = { width: 630, height: 425 };
        var dlg = {
            method: 'fbml.dialog',
            fbml: '\
				<fb:request-form type="ILO" invite="true" method="POST" action="' + domain + '/" content="&lt;fb:req-choice url=\'' +domain + '\' label=\'הצטרף עכשיו אלינו !\' /&gt;">\
					<fb:multi-friend-selector actiontext="המלץ עלינו - iLove.co.il לעד 20 מחברייך בפייסבוק" showborder="true" rows="3" cols="4" />\
				</fb:request-form>',
            display: 'popup'
        }
        FB.ui(dlg);
        FB.UIServer.Methods["fbml.dialog"].size = oldSize;
        //fixInviteWindow(1);
    },

    show_login: function (callback) {
        FB.getLoginStatus(function (response) {
            if (response.session) {
                FacebookManager.uid = response.session.uid;
                FacebookManager.user_is_registered(
					function () {		// user is registered with us
					    FacebookManager.finish_fb_login();
					},
					function () {	// user is not registeed with us
					    FacebookManager.save_user(FacebookManager.finish_fb_login);
					}
				);
            }
            else {
                FB.login(function (response) {
                    if (response.session) {
                        if (response.perms.indexOf('email') > -1 && response.perms.indexOf('user_hometown') > -1 && response.perms.indexOf('user_birthday') > -1) {
                            FacebookManager.uid = response.session.uid;
                            FacebookManager.user_is_registered(
								function () {		// user is registered with us
								    FacebookManager.finish_fb_login();
								},
								function () {	// user is not registeed with us
								    FacebookManager.save_user(FacebookManager.finish_fb_login);
								}
							);
                        }
                    }
                }, { perms: 'email,user_birthday,user_hometown' });
            }
        });
    },

    user_is_registered: function (fn_registered, fn_not_registered) {
        $.ajax({
            type: "POST",
            url: "Services/FacebookService.asmx/IsRegistered",
            contentType: "application/json; charset=utf-8",
            data: "{'fb_uid':'" + FacebookManager.uid + "'}",
            dataType: "json",
            success: function (data) {
                var res = data.d;
                if (res.isRegistered) {
                    if (fn_registered)
                        fn_registered();
                }
                else {
                    if (fn_not_registered)
                        fn_not_registered();
                }
            }

        });
    },

    uid: -1
}
