//
// Site -> USer Profile
//
; (function(window) {
    /**
    * Site Object
    **/
    window.Site = Site = new Object();
    Site.UserProfile = function() {

        /*******************************
        Variables
        */
        var captchaId = 1;
        /*******************************
        Page actions
        */
        var ajaxCall = function(functionToCall, dataToSend, successFunction) {
            $.ajax({
                url: functionToCall,
                type: "POST",
                cache: false,
                data: dataToSend,
                dataType: "json",
                success: function(returnMessage) {
                    successFunction(returnMessage);
                },
                error: function(request, error) {
                    alert(functionToCall + error);
                }
            });
        };
        /*******************************
        Handlers
        */

        var isValidEmailAddress = function(emailAddress) {
            var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
            return pattern.test(emailAddress);
        };

        var emptyFieldValidation = function(inputId) {
            var inputText = $("#" + inputId.toString()).attr('value');
            var partialId = inputId.substr(0, inputId.length - 5);

            if (inputText == "") {
                $("#" + inputId.toString()).addClass('error');
                $("#" + inputId.toString()).parent().addClass('error');
                return false;
            }
            return true;
        };

        var sendGiftClickHandler = function(self, sourceIdParam, sourceTypeParam, forUserNameParam, forUserIdParam) {
            if (noUserLogin == '') {
                tooltip.Show($(self));
            } else {
                sourceId = sourceIdParam;
                giftSourceType = sourceTypeParam;
                forUserName = forUserNameParam;
                forUserId = forUserIdParam;
                $('.overlay-gifts').show();
                window.scroll(0,0);
            }

            return false;
        };

        var setDialogClose = function(dialogClassName) {
            $(document).click(function() {
                
                tooltip.Hide();
                 
            });
        };

        /*******************************
        Initialize everything
        */
        (this.Init = function() {
            loadGiftPopup();

            $("img").each(function(){
                if ($(this).attr('src') == '')
                    $(this).attr('src', defaultUserImage)
            });

            $(".success").hide();

            $(".submit").click(function() {
                var inputValue = $("#verify-code").val();
                var validInputs = 0;
                var validEmail = isValidEmailAddress($("#email").attr('value'));
                var isValidEmail = emptyFieldValidation("email");

                if (isValidEmail == false) {
                    $("label[for=email][class=error]").show();
                    $("label[for=email][class!=error]").hide();
                    validInputs++;
                }
                else {
                    if (validEmail == true) {
                        $("label[for=email][class=error]").hide();
                        $("label[for=email][class!=error]").show();
                    }
                    else {
                        $("label[for=email][class=error]").show();
                        $("label[for=email][class!=error]").hide();
                        $("#email").addClass('error');
                        $("#email").parent().addClass('error');
                        $("#email").removeClass('complete');
                        validInputs++;
                    }
                }

                if (validInputs > 0) {

                }
                else {
                    var inputValue = $("#verify-code").attr('value');

                    $.ajax({
                        url: "/CaptchaAjax/VerifyCaptcha",
                        type: "POST",
                        cache: false,
                        data: { value: inputValue },
                        dataType: "json",
                        success: function(jsonData) {

                            validCode = jsonData.valid;

                            if (validCode == false) {

                                $(".first-step img").attr('src', "/Captcha/CreateCaptchaImage?id=" + (++captchaId).toString());
                                $("label[for=verify-code][class=error]").show();
                                $("label[for=verify-code][class!=error]").hide();
                                $("#verify-code").addClass('error');
                                $("#verify-code").parent().addClass('error');

                            } else {
                                ajaxCall("/UserProfile/ContactUser", { userName: $("div.details .title").html(), emailMessage: $("#body").val(), contactEmail: $("#email").val(), userEmail: currentUser }, contactUserSuccess);
                            }

                        }

                    });

                }
                return false;
            });

            var contactUserSuccess = function() {
                $("div.success").show();
                $("div.send-email").hide();
                $("div.send-message").hide();
            };

            $("a.code").click(function() {

                $("img.captcha").attr("src", "/Captcha/CreateCaptchaImage?id=" + (++captchaId).toString());

                return false;
            });

            $("div.search input").bind("click", searchInputClicked);

            $('div.search input').bind("keypress", searchInputKeypress);

            $("input").click(function() {
                $(this).removeClass('error');
                $(this).removeClass('complete');

                var sender = $(this).attr('id');

                $("label[for=" + sender + "][class=error]").hide();
                $("label[for=" + sender + "][class!=error]").show();
                $(this).parent().removeClass('error');

                return false;
            });

            $("input").blur(function() {
                var inputValue = $(this).val();
                if (inputValue != "") {
                    $(this).addClass('complete');
                }

            });

            $("textarea").blur(function() {
                var inputValue = $(this).val();
                if (inputValue != "") {
                    $(this).addClass('complete');
                }
            });

            $("textarea").click(function() {
                $(this).removeClass('complete');
            });

            $("#menu-bar div.search a").bind("click", menuSearchClicked);

            $('.send-gift').click(function(){
                sendGiftClickHandler(this, ownerId,'Profile',ownerName,ownerId);
                return false;
            });

            setDialogClose(".flag-dialog");

            var tooltipContainer = $("#dynamic-html div.tooltip-form-login:eq(0)");
            tooltip = new PipenoUI.ShowPanel(tooltipContainer, { placement: "bottom", align: "right" });
        })();
    };
})(window);


function loadGiftPopup() {
    var overlay = $('div.overlay-gifts');
    $(overlay).height($(document).height() + 'px');
    $(overlay).width($(document).width() + 'px');
}
/* End Of File */
