jQuery(document).ready(function() {
    jQuery.noConflict();
    jQuery('#contactDialog').dialog(
    {
        autoOpen: false,
        width: 600,
        modal: true,
        bgiframe: true,
        buttons:
        {
            "Cancel": function() {
                jQuery(this).dialog("close");
            },
            "Send": function() {
                if (contact_valid()) {
                    SendContact(jQuery(".txtName").val(),
                    jQuery(".txtEmail").val(),
                    jQuery(".txtContact").val(),
                    jQuery(".hdnEmailAddressToContact").text()); // see CallRatingsAndCommentsServiceMethods.js
                    jQuery(this).dialog("close");
                    jQuery(".txtContact").val('');
                }
            }
        }
    });

    jQuery(".ajax-fc-container-contact").captcha();
});

function openContactDialog(email) {
    jQuery('#contactDialog').css('visibility', 'visible');
    jQuery('.hdnEmailAddressToContact').text(email);
    jQuery('#contactDialog').dialog('open');
    return false;
}

function contact_valid() {
    var valid = true;
    jQuery(".lblNameError").css('visibility', 'hidden');
    jQuery(".lblEmailError").css('visibility', 'hidden');
    jQuery(".lblCommentError").css('visibility', 'hidden');
    jQuery(".lblCaptchaError").css('visibility', 'hidden');

    if (jQuery(".txtName").val().length == 0) {
        jQuery(".lblNameError").css('visibility', 'visible');
        valid = false;
    }
    if (!isContactValidEmailAddress(jQuery(".txtEmail").val())) {
        jQuery(".lblEmailError").css('visibility', 'visible');
        valid = false;
    }
    if (jQuery(".txtContact").val().length == 0) {
        jQuery(".lblContactError").css('visibility', 'visible');
        valid = false;
    }

    if (jQuery().find('*[aria-disabled]').size() == 0) {
        jQuery(".lblCaptchaError").css('visibility', 'visible');
        valid = false;
    }

    return valid;
}

function isContactValidEmailAddress(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);
}
