//*****************************************************************************
// Jquery ui modal box - validation
//*****************************************************************************
$(document).ready(function() {

    function updateTips(t) {
        $("#validateTips").text(t).effect("highlight", {}, 1500);
    }

    function notEmpty(o, m) {
        if (!o.val()) {
            o.addClass('ui-state-error');
            updateTips(m);
            return false;
        }
        else {
            return true;
        }
    }

    function checkRegexp(o, regexp, n) {
        if (!( regexp.test(o.val()) )) {
            o.addClass('ui-state-error');
            updateTips(n);
            return false;
        } else {
            return true;
        }
    }

    $("#tipfrienddialog").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        buttons: {
            'Send': function() {
                var tipToEmail = $("#tipToEmail");
                var tipFromEmail = $("#tipFromEmail");
                var tipFrom = $("#tipFrom");
                var tipComment = $("#tipComment");
                var tipTitle = $("#tipTitle");
                var tipCaptcha = $("#tipCaptcha");

                var docTitle = $.trim($("h1:first").text());
                if (!docTitle) {
                    docTitle = document.title;
                }
                tipTitle.val(docTitle);

                var emailCheck = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
                var emailMessage = "Ugyldig e-postadresse.";
                if (notEmpty(tipFrom, "Navn ikke utfyllt") && notEmpty(tipCaptcha, "Captcha må fylles ut") && checkRegexp(tipToEmail, emailCheck, emailMessage) && (!tipFromEmail.val() || checkRegexp(tipFromEmail, emailCheck, emailMessage))) {
                    $.ajax({
                        type: 'POST',
                        url: $("#tipfriendform").attr('action'),
                        data: $.param($('#tipfriendform input, #tipfriendform textarea')),
                        success: function() {
                            $("#tipfrienddialog").dialog('close');
                        },
                        error: function() {
                            updateTips("Kunne ikke sende tips, vennligst prøv igjen.");
                        }
                    });
                }
            },
            Avbryt: function() {
                $(this).dialog('close');
            }
        }
    });

    $('.tip-friend').click(function() {
        $.ajax({
            url: contextPath + "/tip-friend-dialog.action",
            success: function(data, status, request) {
                $('#tipfrienddialog').html($(data));
                $('#tipfrienddialog').dialog('open');
                $('#tipfrienddialog').find('form')[0].reset();

                function reloadCaptcha() {
                    var img = $("#tipCaptchaImg");
                    img.attr("src", img.attr("src") + "?" + new Date().getTime());
                }

                $('#tipCaptchaReload').click(reloadCaptcha);
            }
        });
    })
});

