﻿

if (typeof (ceemeagain) == "undefined") { window.ceemeagain = new Object(); }
if (typeof (ceemeagain.contact) == "undefined") {
    ceemeagain.contact = {
        //get current row
        getCurrentRow: function(the) {
            var p = null;
            for (p = $(the).parent();
                    p != null && ((p[0] != null)
                                    ? (p[0].tagName.toLowerCase() != 'tr')
                                    : false);
                p = p.parent());
            return p;
        },
        //sort column
        sortBy: function(by, the) {
            $(the).removeAttr("onclick");
            var f = _getcurrentForm(the);
            f.find('input:hidden[name=sortname]').val(by);
            f.submit();
        },
        //set favourite
        setFavourite: function(the) {
            var row = this.getCurrentRow(the);
            var found = false;
            if (row != null) {
                var val = row.find("input:hidden[name=mailid]").val();
                if (typeof (val) != "undefined") {
                    found = true;
                    $.post("/Contact/SetFavourite"
                            , { id: val }
                            , function(data) {
                                if (data.IsError) alert(data.ErrorMessage);
                                else
                                    $(the).find("img").attr("src", data.ErrorMessage);

                                $(document.body).unblock();
                            }
                    , "json");
                }
            }
            //found = false;
            if (!found) alert("Ooops! DOM error!");

        },

        //jump group
        jumpGroup: function(groupname, the) {
            $(the).removeAttr("onclick");
            var f = _getcurrentForm(the);
            groupname = unescape(groupname);
            f.find('input:hidden[name=group]').val(groupname);
            var gopage = f.find("input:hidden[name=gopage]");
            if (gopage.length > 0) gopage.val(1);
            else
                $("<input type=\"hidden\" name=\"gopage\" />")
                .val(1)
                .appendTo(f);
            f.submit();
        },
        //delete group
        deleteGroup: function(groupname) {
            groupname = unescape(groupname);
            if (confirm("Do you want to delete '" + groupname + "'")) {
                $.blockUI("<img src=\"/Content/im/ico/loading_wh.gif\" alt=\"Loading...\" title=\"Loading...\" />", { cursor: 'default', zIndex: 10000 });
                $.post("/Contact/DeleteGroup/", { name: groupname }, function(data) {
                    if (data.IsError) alert(data.ErrorMessage);
                    else window.location = "/Contact";

                    $(document.body).unblock();
                }, "json");
            }
        },
        //search
        search: function(keyword, the) {
            var f = _getcurrentForm(the);
            f.find('input:hidden[name=keyword]').val(keyword);
            f.submit();
        },
        _newgroupdialog: null,
        //add new group
        newGroup: function(the) {
            if (this._newgroupdialog != null) this._newgroupdialog.dialog('close');
            var html = $("<div title=\"Add new group\" style=\"padding:10px;\"></div>").css({ fontSize: '13px' });
            var inputGroupname = $("<div>Group name:<br /><input type=\"text\" style=\"width:200px;\" maxlength=\"15\" /></div>");
            var inputOk = $("<div style=\"padding-top:10px;\"><input type=\"button\" value=\"Create\" /></div>");

            inputOk.find("input").click(function() {
                var text = $.trim(inputGroupname.find("input").val());
                if (text != "") {
                    $.blockUI("<img src=\"/Content/im/ico/loading_wh.gif\" alt=\"Loading...\" title=\"Loading...\" />", { cursor: 'default', zIndex: 10000 });
                    $.post("/Contact/NewGroup", { name: text }, function(data) {
                        if (data.IsError) alert(data.ErrorMessage);
                        else ceemeagain.contact.jumpGroup(text, the);

                        $(document.body).unblock();
                    }, "json");
                } else {
                    alert("Ooops! Group name cannot be empty.");
                    inputGroupname.find("input").focus();
                }
            });

            html.append(inputGroupname).append(inputOk);

            this._newgroupdialog = $(html).dialog();
            inputGroupname.find("input").focus();
        },
        deletecontact: function(the) {
            var selected = $(".contactlist .right table td input:checkbox:checked");
            $this = this;
            if (selected.length > 0) {
                if (confirm("Do you want to delete selected contacts?")) {
                    var ids = new Array();
                    selected.each(function() {
                        var cur_row = $this.getCurrentRow(this);
                        if (cur_row != null) {
                            var val = cur_row.find("input:hidden").val();
                            if (val != "")
                                ids[ids.length] = val;
                        }
                    });



                    if (ids.length > 0) {
                        $.blockUI("<img src=\"/Content/im/ico/loading_wh.gif\" alt=\"Loading...\" title=\"Loading...\" />", { cursor: 'default', zIndex: 10000 });
                        $.post("/Contact/DeleteContact", { contacts: ids }, function(data) {
                            if (data.IsError)
                                alert(data.ErrorMessage);
                            else {
                                var f = _getcurrentForm(the);
                                var gopage = f.find("input:hidden[name=gopage]");
                                if (gopage.length > 0) gopage.val(1);
                                else
                                    $("<input type=\"hidden\" name=\"gopage\" />")
                                    .val(1)
                                    .appendTo(f);

                                f.submit();
                            }

                            $(document.body).unblock();
                        }, "json");
                    }
                }
            }
        },
        movecontact: function(the) {
            var selected = $(".contactlist .right table td input:checkbox:checked");
            $this = this;
            if (selected.length > 0) {
                if (confirm("Do you want to move selected contacts?")) {
                    var ids = new Array();
                    var group = "";
                    var curr = this.getCurrentRow(the);
                    if (curr != null)
                        group = curr.find("select option:selected").text();
                    selected.each(function() {
                        var cur_row = $this.getCurrentRow(this);
                        if (cur_row != null) {
                            var val = cur_row.find("input:hidden").val();
                            if (val != "")
                                ids[ids.length] = val;
                        }
                    });



                    if (ids.length > 0) {
                        $.blockUI("<img src=\"/Content/im/ico/loading_wh.gif\" alt=\"Loading...\" title=\"Loading...\" />", { cursor: 'default', zIndex: 10000 });
                        $.post("/Contact/MoveContact", { contacts: ids, group: group }, function(data) {
                            if (data.IsError)
                                alert(data.ErrorMessage);
                            else {
                                var f = _getcurrentForm(the);
                                var gopage = f.find("input:hidden[name=gopage]");
                                if (gopage.length > 0) gopage.val(1);
                                else
                                    $this.jumpGroup($.trim(group), the);

                                f.submit();
                            }

                            $(document.body).unblock();
                        }, "json");
                    }
                }
            }
        },
        _newcontactdialog: null,
        //add new group
        newContact: function(the) {
            if (this._newcontactdialog != null) this._newcontactdialog.dialog('close');
            var html = $("<div title=\"Add new contact\" style=\"padding:10px;\"></div>").css({ fontSize: '13px' });
            var inputContactname = $("<div>Contact name:<br /><input type=\"text\" style=\"width:200px;\" /></div>");
            var inputEmail = $("<div>Email:<br /><input type=\"text\" style=\"width:200px;\" /></div>");
            var inputGroup = $("<div>Group:<br /><select><option>All Contacts</option><option>Favourite</option></select></div>");
            var inputOk = $("<div style=\"padding-top:10px;\"><input type=\"button\" value=\"Create\" /></div>");

            inputOk.find("input").click(function() {
                var contactname = $.trim(inputContactname.find("input").val());
                var email = $.trim(inputEmail.find("input").val());
                var group = $.trim(inputGroup.find("select").val());

                if (email != "") {
                    $.blockUI("<img src=\"/Content/im/ico/loading_wh.gif\" alt=\"Loading...\" title=\"Loading...\" />", { cursor: 'default', zIndex: 10000 });
                    $.post("/Contact/NewContact", { name: contactname, email: email, group: group }, function(data) {
                        if (data.IsError) alert(data.ErrorMessage);
                        else {
                            $(document.body).unblock();
                            alert(email + " is added.");
                            window.location = "/Contact/";
                        }

                        $(document.body).unblock();
                    }, "json");
                } else {
                    alert("Ooops! Email cannot be empty.");
                    inputEmail.find("input").focus();
                }
            });

            $.get("/Contact/GetGroup", {}, function(data) {
                if (data.length > 0) {
                    for (var g in data)
                        inputGroup.find("select").append("<option>" + (data[g]).replace(/</ig, "&lt;").replace(/>/ig, "&gt;") + "</option>");
                }

                inputGroup.find("select>option").each(function() {
                    if ($.trim($(this).val()).toLowerCase() == $("#groupname").text().toLowerCase()) {
                        $(this).attr("selected", "seleted");
                    }
                });
            }, "json");
            html.append(inputContactname)
            .append(inputEmail)
            .append(inputGroup)
            .append(inputOk);

            this._newcontactdialog = $(html).dialog();
            inputContactname.find("input").focus();
        }, importContact: {
            __return_url: '',
            __dialog: undefined,
            searchMyContactDialog: function() {

                $(function() {
                    //$("#customDialog").dialog("close");
                    if (ceemeagain.contact.importContact.__dialog !== undefined) $(ceemeagain.contact.importContact.__dialog).dialog('close');
                    var contactDialog = $("<div title=\"Search from my\" id=\"customDialog\" style=\"text-align:center;padding:30px;\"></div>");
                    contactDialog.append("<a href=\"javascript:ceemeagain.contact.importContact.WindowLiveClick('Hotmail');\"><img src=\"/Content/im/contact/hotmail.gif\" alt=\"Windows Live Hotmail\" title=\"Windows Live Hotmail\" style=\"border:0;\" /></a><br /><br />");
                    contactDialog.append("<a href=\"javascript:ceemeagain.contact.importContact.GmailAndYahoo('Yahoo');\"><img src=\"/Content/im/contact/yahoo.gif\" alt=\"Yahoo! Mail\" title=\"Yahoo! Mail\" style=\"border:0;\" /></a><br /><br />");
                    contactDialog.append("<a href=\"javascript:ceemeagain.contact.importContact.GmailAndYahoo('Gmail');\"><img src=\"/Content/im/contact/gmail.gif\" alt=\"Gmail\" title=\"Gmail\" style=\"border:0;\" /></a><br /><br />");
                    contactDialog.append("<a href=\"javascript:ceemeagain.contact.importContact.WindowLiveClick('Msn');\"><img src=\"/Content/im/contact/msn.gif\" alt=\"Msn\" title=\"Msn\" style=\"border:0;\" /></a>");
                    ceemeagain.contact.importContact.__dialog = $(contactDialog).dialog({
                        bgiframe: true,
                        modal: true
                    });

                });
            },
            WindowLiveClick: function(type) {
                $this = this;
                var html = $("<div style=\"padding:30px;\"><img src=\"/Content/im/contact/" + type + ".gif\" alt=\"" + type + "\" title=\"" + type + "\" style=\"border:0;\" /></div>");
                var emailBox = $("<div style=\"padding:10px;text-align:left;\">Email:<br /><input type=\"text\" style=\"width:200px;\" /></div>");
                var passwordBox = $("<div style=\"padding:10px;text-align:left;\">Password:<br /><input type=\"password\" style=\"width:200px;\" /></div>");
                var loginBox = $("<input type=\"button\" value=\"Login\" /><span>&nbsp;</span>");
                var cancelBox = $("<input type=\"button\" value=\"Cancel\" />");
                var buttonBox = $("<div style=\"padding:10px;text-align:center;\"></div>");

                buttonBox.append(loginBox).append(cancelBox);

                html.append(emailBox).append(passwordBox).append(buttonBox);

                cancelBox.click(function() { $(document.body).unblock(); });
                loginBox.click(function() {

                    var email = emailBox.find("input").val();
                    var pass = Base64.encode(passwordBox.find("input").val());


                    passwordBox.find("input").val('');

                    if ($.trim(email) === "" || $.trim(pass) === "") {
                        alert("Ooops! Email or Password cannot be empty!");
                    } else {
                        $(document.body).unblock();
                        $.blockUI('<div class="comic" style="padding:10px;padding-top:30px;width:150px;height:80px;text-align:center;font-size:16px;">Loading</div>', { cursor: 'default', width: '170px', height: '80px', border: '10px solid #DDD', color: '#333', zIndex: 9999 });
                        $.post('/live/verify.ashx', { email: email, pass: pass, return_url: $this.__return_url + "#sendtofriend" }, function(data) {
                            pass = "";
                            if (!data.isLogin) {
                                alert(data.ErrMsg);
                            } else {
                                window.location = data.URLRedirect;
                            }
                            setTimeout(function() { $(document.body).unblock(); }, 800);

                        }, "json");
                    }
                });
                if (ceemeagain.contact.importContact.__dialog != undefined) $(ceemeagain.contact.importContact.__dialog).dialog('close');
                $.blockUI(html, { cursor: 'default', width: '285px' });
            },
            GmailAndYahoo: function(type) {
                $this = this;
                var html = $("<div style=\"padding:30px;\" id=\"customDialog\"><img src=\"/Content/im/contact/" + type + ".gif\" alt=\"" + type + "\" title=\"" + type + "\" style=\"border:0;\" /></div>");
                var emailBox = $("<div style=\"padding:10px;text-align:left;\">Email:<br /><input type=\"text\" style=\"width:200px;\" /></div>");
                var passwordBox = $("<div style=\"padding:10px;text-align:left;\">Password:<br /><input type=\"password\" style=\"width:200px;\" /></div>");
                var loginBox = $("<input type=\"button\" value=\"Login\" /><span>&nbsp;</span>");
                var cancelBox = $("<input type=\"button\" value=\"Cancel\" />");
                var buttonBox = $("<div style=\"padding:10px;text-align:center;\"></div>");

                buttonBox.append(loginBox).append(cancelBox);

                html.append(emailBox).append(passwordBox).append(buttonBox);

                cancelBox.click(function() { $(document.body).unblock(); });
                loginBox.click(function() {

                    var email = emailBox.find("input").val();
                    var pass = Base64.encode(passwordBox.find("input").val());


                    passwordBox.find("input").val('');

                    if ($.trim(email) === "" || $.trim(pass) === "") {
                        alert("Ooops! Email or Password cannot be empty!");
                    } else {
                        $(document.body).unblock();
                        $.blockUI('<div class="comic" style="padding:10px;padding-top:30px;width:150px;height:80px;text-align:center;font-size:16px;">Loading</div>', { cursor: 'default', width: '170px', height: '80px', border: '10px solid #DDD', color: '#333', zIndex: 9999 });
                        $.post('/Contact/GmailYahooImport', { email: email, password: pass }, function(data) {
                            pass = "";
                            if (data.IsError) {
                                alert(data.Message); setTimeout(function() { $(document.body).unblock(); }, 1000);
                            } else {
                                window.location = $this.__return_url + "#sendtofriend";
                                window.location.reload();
                            }
                            $(document.body).unblock();
                        }, "json");
                    }
                });
                if (ceemeagain.contact.importContact.__dialog != undefined) $(ceemeagain.contact.importContact.__dialog).dialog('close');
                $.blockUI(html, { cursor: 'default', width: '285px' });
            }
        }
    }
}

$(document).ready(function() {
    var checkall = $(".contactlist .right table th input:checkbox");
    var checklists = $(".contactlist .right table td input:checkbox");
    var check_hilight = function(the) {
        if (the.checked) $(the).parent().parent().css({ backgroundColor: '#fffa7c' }); else $(the).parent().parent().css({ backgroundColor: 'transparent' });
    };
    checkall.click(function() {
        $this = this;
        checklists.each(function() { this.checked = $this.checked; check_hilight(this); });
    });

    checklists.click(function() {
        checkall[0].checked = (checklists.length == checklists.filter(":checked").length);
        check_hilight(this);
    });
});