﻿(function ($) {

    function init() {
        $('.share').attr("href", function () {
            var pageparams = location.search.substring(1);
            if (pageparams.indexOf("auth=") > -1) {

                var authremove = pageparams.substring(pageparams.indexOf("auth="), pageparams.length);
                                pageparams=pageparams.replace(authremove, "");
                
            }
            pageparams = pageparams.replace(/&/g, ";");
            pageparams = pageparams.replace(/=/g, ":");
            return $(this).attr("href") + pageparams;

        });
        //alert($('#lnkShare').attr("href"));
        //$('#lnkShare').attr("href") + location.search.substring(1).replace();
        $('.share').live('click', function (e) {
            e.preventDefault();
            if ($('#sharePop').length == 0) {
                $('body').prepend($('<div id="sharePop" style="display:none;"></div>'));
            }
            var $share = $('#sharePop').empty();
            var emailfilter = /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/;
            FRdialogueInit($share);
            $('#sharePop').append('<div class="dialogueLoading"><img src="/webimage/popuploader.gif"/> Loading...</div>').show();
            $.post(
                    $(this).attr('href'),
                    {},
                    function (data, textStatus) {
                        $share.html(data);
                        // $.blockUI({ message: $('#sharePop') });
                        FRdialoguePosition($share);
                        $share.fadeIn();
                        $share.find('a.CLOSE').click(function (e) {
                            e.preventDefault();
                            // $.unblockUI({ fadeOut: 200 });
                            FRdialogueClose($('#sharePop'));
                        });
                        $("#tmpSave").click(function (e) {
                            var selItems = '';
                            $('#friendslist').children('.selected').each(function (e) {
                                if (selItems.length > 0) {
                                    selItems = selItems + ':' + $(this).find('INPUT').attr("value");
                                }
                                else {
                                    selItems = $(this).find('INPUT').attr("value");
                                }

                            });
                            if (selItems.length > 0) {
                                var args = '';
                                args = '"memberKeys":"' + selItems + '",';
                                args += '"pageParams":"' + $('#PageParams').attr("value") + '"';
                                $.ajax({
                                    type: "POST",
                                    url: "/Services/ProfileService.asmx/" + "SharePageInternal",
                                    data: "{" + args + "}",
                                    contentType: "application/json; charset=utf-8",
                                    dataType: "json",
                                    success: function (msg) {

                                        var selItems = '';

                                        if (msg.d > 0) {
                                            $('#friendslist').children('.selected').each(function (e) {
                                                selItems = selItems + '<li>' + $(this).find('SPAN').text() + '</li>';
                                            });
                                            //alert(selItems);
                                            $('#divSelFriends').show();
                                            $('#ulEmailSent').html(selItems);
                                            $('#divInternal').hide();
                                        }
                                    }
                                });
                            }
                            else {
                                $("#pFriendsSelected").html('<div>Please select at least one friend</div>');
                            }
                        });
                        $("#tmpSave2").click(function (e) {
                            var selItems = '';
                            var memberEmails = '';
                            if (!$(".invalidEmail").length > 0) {
                                $('#divEmailList').children('INPUT').each(function (e) {
                                    if ($(this).attr("value").toLowerCase() != "friend@website.com") {
                                        if (memberEmails.length > 0) {
                                            memberEmails = memberEmails + ':' + $(this).attr("value");
                                        }
                                        else {
                                            memberEmails = $(this).attr("value");
                                        }
                                        selItems = selItems + '<li>' + $(this).attr("value") + '</li>';
                                    }
                                });
                                if (selItems.length > 0) {
                                    var args = '';
                                    args = '"memberEmails":"' + memberEmails + '",';
                                    args += '"pageParams":"' + $('#PageParams').attr("value") + '"';
                                    $.ajax({
                                        type: "POST",
                                        url: "/Services/ProfileServicePublic.asmx/" + "SharePageExternal",
                                        data: "{" + args + "}",
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        success: function (msg) {
                                            if (msg.d > 0) {
                                                $('#divSelEmails').show();
                                                $('#ulEmailSentExternal').html(selItems);
                                                $('#divExternal').hide();
                                            }
                                        }
                                    });
                                }
                                else {
                                    $("#EmailReq").show();
                                }
                            }
                        });

                        $('#tmpSave2').after('<p id="invalidWarning">please correct any invalid email address</p>');

                        $('.swap_value').live('keyup', function () {
                            var email = Trim($(this).val());
                            var textlen = email.length;
                            var emailvalid = false;
                            if (textlen > 5) {
                                if (emailfilter.test(email)) {
                                    emailvalid = true;
                                }
                            }
                            if (emailvalid) {
                                $(this).removeClass('invalid').addClass('valid');
                            } else {
                                if ($(this).is('.valid')) {
                                    $(this).removeClass('valid').addClass('invalid');
                                }
                            }
                            if ($('#divEmailList .invalid').length) {
                                $('#invalidWarning').show();
                                $('#tmpSave2').css('visibility', 'hidden');
                            } else {
                                $('#invalidWarning').hide();
                                $('#tmpSave2').css('visibility', 'visible');
                            }
                            $("#EmailReq").hide();
                        }).focus(function () {
                            focusProcess($(this));
                        }).blur(function () {
                            blurProcess($(this));
                        });

                        function focusProcess(x) {
                            if (x.is('.watermarked')) {
                                x.removeClass('watermarked').val('');
                            }
                        }

                        function blurProcess(x) {
                            var email = Trim(x.val());
                            var textlen = email.length;
                            var emailvalid = false;
                            if (textlen > 5) {
                                if (emailfilter.test(email)) {
                                    emailvalid = true;
                                }
                            }
                            var nextelem;
                            if (emailvalid == false && textlen > 0 && !x.is('watermarked')) {
                                x.addClass('invalid').removeClass('valid');
                            } else if (emailvalid) {
                                x.removeClass('invalid').addClass('valid');
                            }
                            else {
                                x.removeClass('invalid').removeClass('valid');
                            }
                            if ($.trim(x.val()) == "") {
                                x.val('friend@website.com').addClass('watermarked');
                            }
                            if (!$('#divEmailList .watermarked').length) {
                                $('#divEmailList').append('<input value="" class="swap_value"/>');
                                $('#divEmailList input:last').focus();
                                $("#divEmailList").animate({ scrollTop: $("#divEmailList").attr("scrollHeight") }, 500);
                            }
                            if ($('#divEmailList').height() > 150) {
                                $('#divEmailList').css({ 'height': '150px', 'overflow': 'auto' });
                            }
                            if ($('#divEmailList .invalid').length) {
                                $('#invalidWarning').show();
                                $("#EmailReq").hide();
                                $('#tmpSave2').css('visibility', 'hidden');
                            } else {
                                $('#invalidWarning').hide();
                                $('#tmpSave2').css('visibility', 'visible');
                            }
                        }

                        function Trim(str) {
                            return str.replace(/^s+|s+$/g, "");
                        }

                        $("#lnkExternal").click(function (e) {
                            e.preventDefault();
                            if (!($(this).parent().hasClass("current"))) {
                                $(this).parent().addClass("current");
                                $("#lnkInternal").parent().removeClass("current");
                            }
                            $("#divTabTwo").show();
                            $("#divTabOne").hide();

                        });
                        $("#lnkInternal").click(function (e) {
                            e.preventDefault();
                            if (!($(this).parent().hasClass("current"))) {
                                $(this).parent().addClass("current");
                                $("#lnkExternal").parent().removeClass("current");
                            }
                            $("#divTabOne").show();
                            $("#divTabTwo").hide();

                        });
                        $(".SELECTFRIEND").click(function (e) {
                            e.preventDefault();
                            if ($(this).parent().hasClass("selected")) {
                                $(this).parent().removeClass("selected");
                            }
                            else {
                                $(this).parent().addClass("selected");
                            }
                            updateSelectCount();
                        });
                        $("#lnkSelectAll").click(function (e) {
                            e.preventDefault();
                            var listitems = $('#friendslist').children();
                            listitems.addClass("selected");
                            updateSelectCount();
                        });
                        $("#lnkReset").click(function (e) {
                            e.preventDefault();
                            var listitems = $('#friendslist').children();
                            listitems.removeClass("selected");
                            updateSelectCount();
                        });
                        $("#btnIntClose, #btnExtClose").click(function (e) {
                            e.preventDefault();
                            FRdialogueClose($('#sharePop'));

                        });
                        function updateSelectCount() {
                            var listitems = $('#friendslist').children('.selected');
                            if (listitems.length > 1) {
                                $("#pFriendsSelected").text(listitems.length + ' friends selected');
                            }
                            else if (listitems.length == 1) {
                                $("#pFriendsSelected").text('1 friend selected');
                            }
                            else {
                                $("#pFriendsSelected").text('No friends selected');

                            }

                        }
                        $('#sharePop').find('form').submit(function (e) {

                            e.preventDefault();
                            $.post(
                                $(this).attr('action'),
                                $(this).serialize(),
                                function (data, textStatus) {
                                    $.unblockUI();
                                },
                                "json"
                            );
                        });
                    },
                    "text"
                );
        });
    }

    FR.onLoad.addLoadSetup(init);
})(jQuery);






