﻿function GetID() {
    var id = gup("id");
    if (id == null || id == "") {
        var url = window.location.href;
        var arr = url.split("_");
        if (arr != undefined && arr != null)
            id = arr[arr.length - 1].replace(".aspx", "");
    }
    if (id != null && id != "") {
        return id;
    }
    return 0;
}

//test: 127649150617784
//online: 147320295303537
FB.init({ appId: '147320295303537', status: true, cookie: true,
    xfbml: true
});

FB.Event.subscribe('edge.create', function(response) {
    UpdateLikeCountInDB();
    //    var c = readCookie("cm-kk-" + GetID());
    //    if (c == null) {
    //        VoteService.Vote(GetID());
    //        createCookie("cm-kk-" + GetID(), GetID(), 300);
    //    }

});

FB.Event.subscribe('comments.add', function(response) {
    FacebookRssWebService.AddComment(GetID(), "Er is een nieuwe reactie toegevoegd voor het recept [RNAME]");
});

$(document).ready(function () {
    //alert("ID: " + GetID());

    $('#btnInvite').click(function() {
        FB.login(function(response) {
            if (response.session) {
                if (response.perms) {
                    var persons = $("#txtFriends").val();
                    var titleRecept = $("#lblReceptTitle").html().replace("<br/>", "");
                    if (persons == undefined)
                        persons = "";
                    var body = 'maakt ' + titleRecept + ' klaar en zoekt nog ' + persons + ' mensen om mee te eten. Wie heeft er zin in?';
                    FB.api('/me/feed', 'post', { message: body }, function(response) {
                        if (!response || response.error) {
                            $("#lblInviteMessage").html("Fout: je bericht is niet op Facebook geplaatst!");
                        } else {
                            $("#lblInviteMessage").html("Je bericht is op Facebook geplaatst");
                        }

                    });
                } else {
                    $("#lblInviteMessage").html("Facebook heeft geen permissie gekregen!");
                }
            } else {
                $("#lblInviteMessage").html("Je bent niet aangemeld bij Facebook!");
            }
        }, { perms: 'read_stream,publish_stream' });
    });

    $('#btnFacebookLogin').click(function() {
        FB.login(function(response) {
            if (response.session) {
                if (response.perms) {
                    FB.api('/me', function(response) {
                        var query = FB.Data.query('select first_name, last_name, email, birthday_date, hometown_location from user where uid={0}', response.id);
                        query.wait(function(rows) {
                            $('.LastnameField').val(rows[0].last_name);
                            $find("LastnameFieldId").set_Text(rows[0].last_name);

                            $('.FirstnameField').val(rows[0].first_name);
                            $find("FirstnameFieldId").set_Text(rows[0].first_name);

                            $('.EmailField').val(rows[0].email);
                            $find("EmailFieldId").set_Text(rows[0].email);

                            if (rows[0].birthday_date != null && rows[0].birthday_date != undefined) {
                                dateArray = rows[0].birthday_date.split('/');
                                dateStr = dateArray[1] + "/" + dateArray[0] + "/" + dateArray[2];
                                $('.BirthField').val(dateStr);
                                $find("BirthFieldId").set_Text(dateStr);
                            }

                            if (rows[0].hometown_location != null && rows[0].hometown_location != undefined) {
                                $('.CityField').val(rows[0].hometown_location[0]);
                                $find("CityFieldId").set_Text(rows[0].hometown_location[0]);
                            }

                        });
                    });
                } else {
                    //$("#lblInviteMessage").html("Facebook heeft geen permissie gekregen!");
                }
            } else {
                //$("#lblInviteMessage").html("Je bent niet aangemeld bij Facebook!");
            }
        }, { perms: 'user_about_me,user_birthday,email' });
    });

    UpdateLikeCountInDB();
    UpdateAllLikeCountInDBOnHomepage();

});

function postRecipe(recipeName) {
    FB.login(function(response) {
        if (response.session) {
            if (response.perms) {
                var titleRecept = recipeName;
                var body = 'heeft zonet het recept voor  ' + titleRecept + ' gepost op www.kokopkot.be';
                FB.api('/me/feed', 'post', { message: body }, function(response) {
                    if (!response || response.error) {
                        //$("#lblInviteMessage").html("Fout: je bericht is niet op faceboek geplaatst!");
                    } else {
                        //$("#lblInviteMessage").html("Je bericht is op faceboek geplaatst!");
                    }
                });
            } else {
                //$("#lblInviteMessage").html("Facebook heeft geen permissie gekregen!");
            }
        } else {
            //$("#lblInviteMessage").html("Je bent niet aangemeld bij Facebook!");
        }
    }, { perms: 'read_stream,publish_stream' });
};

function retrieveLatestComments(ids) {
    //FB.api('/', function(response) {
    var query = FB.Data.query("SELECT xid, text, fromid, username FROM comment where xid in (" + ids + ")");
    query.wait(function(rows) {
        var html = "";
        var counter = 0;
        for (var i in rows) {
            html += "<tr><td width='175px;' style='padding-bottom:17px;'><h3 style='color:#bf2a23;margin:0 0 2px;font:bold 13px Verdana, Arial, Helvetica, sans-serif;'>"
                                         + rows[i].text
                                         + "</h3><span style='color:#D08430;'>op: </span><a class='recipe_" + rows[i].xid + "' style='color:#bf2a23;' href='RecipeDetail.aspx?id=" + rows[i].xid + "'>gerecht</a> <span style='color:#444444;'>van <span class='user_" + rows[i].fromid + "'>" + rows[i].username + "</span></td></tr>";
            ++counter;
            if (counter == 10)
                break;

        }

        $('#pnlRecentComments').html(html);

        counter = 0;
        for (var u in rows) {
            var uquery = FB.Data.query("SELECT uid, first_name, last_name FROM user where uid={0}", rows[u].fromid);
            uquery.wait(function(urows) {
                if (urows != null && urows != undefined)
                    $('.user_' + urows[0].uid).html(urows[0].first_name);
            });

            GetRecipiName(rows[u].xid);

            ++counter;
            if (counter == 10)
                break;
        }
    });
};

function GetRecipiName(myId) {
    RecipeWebService.GetRecipeName(myId, OnSucceededCheckCode, OnFailed)
}

function OnSucceededCheckCode(result) {
    $('.recipe_' + result[1]).html(result[0]);
    CursorNormal();
}

function OnFailed() {
    CursorNormal();
}

function GetLikeCount(url) {
    alert("like function call: " + url);
    //select fan_count from page where page_id = page_id;
    //SELECT user_id FROM like WHERE object_id=
    var query = FB.Data.query("SELECT id FROM object_url WHERE url ='" + url + "'");
    query.wait(function(rows) {
        var oid;
        oid = rows[0].id;
        alert("url object_id: " + oid);

        var lquery = FB.Data.query("SELECT user_id FROM like WHERE object_id=" + oid + "");
        lquery.wait(function(lrows) {
            var counter = 0;
            for (var i in lrows) {
                counter = counter + 1;
            }
            alert(counter + " likes");
        });

    });
}

//GetLikeCount(window.location);
//GetLikeCount("http://www.kokopkot.be/RecipeDetail.aspx?id=6363");

function UpdateLikeCountInDB() {
    $(".fb_ltr").each(function(index) {
        var url = $(this).attr("src");
        if (url != undefined && url.indexOf("comments") == -1) {
            VoteService.UpdateVotes(GetID(), url);
        }
    });
}

function UpdateAllLikeCountInDB() {
    VoteService.UpdateAllVotes();
}

function UpdateAllLikeCountInDBOnHomepage() {
    if(window.location.toString().indexOf("Default") != -1)
        UpdateAllLikeCountInDB();
}

setTimeout("UpdateLikeCountInDB()", 5000);
