﻿if (window.jQuery) {
    jQuery(document).ready(function() {
        jQuery(".soc.print").bind("click", function() {
            window.open("product-print.aspx?product_id=" + $(this).attr("rel"), "",
                "location=no, height=800, width=1024, scrollbars=yes, resizable=yes, toolbar=yes");
        });
        jQuery(".soc.email-friend").bind("click", emailAFriend.EmailAFriend);
        jQuery(".soc.report-error").bind("click", reportError.showForm);
        jQuery(".submit-question").bind("click", EmailQuestion);
    });
}
var emailAFriend = {
    EmailAFriend: function() {
        var $flyform, shadow;
        if (this.flyform == null) {
            $flyform = $("<div class='flyform'>" +
                "<fieldset>" +
                "<legend>Email a friend</legend>" +
                "<table>" +
                    "<tr>" +
                        "<td><label>To (email)</label></td>" +
                        "<td><input type='text' class='to_address' size='40' /></td>" +
                    "</tr>" +
                    "<tr>" +
                        "<td><label>Message</label></td>" +
                        "<td><textarea class='mail_message' rows='5' cols='40'></textarea></td>" +
                    "</tr>" +
                    "<tr>" +
                        "<td><label>Your name</label></td>" +
                        "<td><input type='text' class='from_name' size='40' /></td>" +
                    "</tr>" +
                    "<tr>" +
                        "<td><labe>Your email address</label></td>" +
                        "<td><input type='text' class='from_address' size='40' /></td>" +
                    "</tr>" +
                "</table>" +
                "<input type='button' class='send button' value='Send Message' />" +
                "<input type='button' class='cancel button' value='Cancel Message' />" +
                "</fieldset>" +
                "</div>");
            $flyform.appendTo("body");
            $flyform.data("opened", true);
            this.flyform = $flyform;
            $(".send.button", $flyform).click(emailAFriend.SendEmail).data("productId", $(this).attr("rel"));
            $(".cancel.button", $flyform).click(emailAFriend.CancelEmail);

            ToCenter($flyform).css("visibility", "visible");
            pinShadow($flyform);
        }
        else {
            $flyform = $(this.flyform);
            if (!$flyform)
                return;
            if ($flyform.data("opened") == true)
                return;
            ToCenter($flyform);
            $flyform.fadeIn(function() { pinShadow($(this)) });
            pinShadow($flyform);
        }
    },
    ClearForm: function(flyform) {
        $("input.to_address", flyform).val("");
        $(".mail_message", flyform).val("");
    },
    SendEmail: function() {
        if ($(this).hasClass("try")) {
            alert("System already tries to send email. Please wait");
            return;
        }
        var $flyform = $(this).parents(".flyform");
        var $toaddress = $("input.to_address", $flyform);
        if (!$toaddress.val()) {
            alert("To address field should be filled");
            $toaddress.get(0).focus();
            return;
        }
        if (!isValidEmailAddress($toaddress.val())) {
            alert('Please enter valid email address');
            $toaddress.get(0).focus();
            return;
        }
        var $mailmessage = $(".mail_message", $flyform);
        if (!$mailmessage.val()) {
            alert("Mail message should be filled");
            $mailmessage.get(0).focus();
            return;
        }
        var $frommail = $("input.from_address", $flyform);
        if (!$frommail.val()) {
            alert("Please fill your email address.");
            $frommail.get(0).focus();
            return;
        }
        if (!isValidEmailAddress($frommail.val())) {
            alert('Please enter valid email address');
            $frommail.get(0).focus();
            return;
        }
        var $fromname = $("input.from_name", $flyform);
        if (!$fromname.val()) {
            alert("Please fill your name.");
            $fromname.get(0).focus();
            return;
        }
        jQuery.post(
            "tools/emailafriend.ashx",
            {
                "to": $toaddress.val(),
                "from": $frommail.val(),
                "fromname": $fromname.val(),
                "message": $mailmessage.val(),
                "productId": $(this).data("productId")
            },
            function(data) {
                jQuery(".soc.email-friend").removeClass("try");
                try {
                    eval("var result = " + data + ";");
                    if (result.success) {
                        jQuery(".soc.email-friend").addClass("success");
                    } else if (result.error) {
                        if (result.error.code == 5) {
                            alert('You try to send emails too often. Please wait a bit.');
                        }
                        jQuery(".soc.email-friend").addClass("failed");
                    } else {
                        alert('Something strange happened');
                        jQuery(".soc.email-friend").addClass("failed");
                    }
                }
                catch (ex) {
                    jQuery(".soc.email-friend").addClass("failed");
                }
            }
        );
        jQuery(".soc.email-friend").addClass("try");
        emailAFriend.closeEmailForm(this);
    },
    CancelEmail: function() {
        emailAFriend.closeEmailForm(this);
    },
    closeEmailForm: function(btn) {
        var $flyform = $(btn).parents(".flyform");
        $flyform.data("opened", false);
        removeShadow($flyform);
        $flyform.fadeOut();
        emailAFriend.ClearForm($flyform);
    }
}

var reportError = {
    showForm: function() {
        var $flyform, shadow;
        if (this.flyform == null) {
            $flyform = $("<div class='flyform'>" +
                "<fieldset>" +
                "<legend>Report Error</legend>" +
                "<table>" +
                    "<tr>" +
                        "<td><label>Message</label></td>" +
                        "<td><textarea class='mail_message' rows='5' cols='40'></textarea></td>" +
                    "</tr>" +
                    "<tr>" +
                        "<td><labe>Your email address</label></td>" +
                        "<td><input type='text' class='from_address' size='40' /></td>" +
                    "</tr>" +
                "</table>" +
                "<input type='button' class='send button' value='Send Message' />" +
                "<input type='button' class='cancel button' value='Cancel Message' />" +
                "</fieldset>" +
                "</div>");
            $flyform.appendTo("body");
            $flyform.data("opened", true);
            this.flyform = $flyform;
            $(".send.button", $flyform).click(reportError.SendEmail).data("productId", $(this).attr("rel"));
            $(".cancel.button", $flyform).click(reportError.CancelEmail);

            ToCenter($flyform).css("visibility", "visible");
            pinShadow($flyform);
        }
        else {
            $flyform = $(this.flyform);
            if (!$flyform)
                return;
            if ($flyform.data("opened") == true)
                return;
            ToCenter($flyform);
            $flyform.fadeIn(function() { pinShadow($(this)) });
            pinShadow($flyform);
        }
    },
    ClearForm: function(flyform) {
        $("input.to_address", flyform).val("");
        $(".mail_message", flyform).val("");
    },
    SendEmail: function() {
        if ($(this).hasClass("try")) {
            alert("System already tries to send email. Please wait");
            return;
        }
        var $flyform = $(this).parents(".flyform");
        var $mailmessage = $(".mail_message", $flyform);
        if (!$mailmessage.val()) {
            alert("Mail message should be filled");
            $mailmessage.get(0).focus();
            return;
        }
        var $frommail = $("input.from_address", $flyform);
        if (!$frommail.val()) {
            alert("Please fill your email address.");
            $frommail.get(0).focus();
            return;
        }
        if (!isValidEmailAddress($frommail.val())) {
            alert('Please enter valid email address');
            $frommail.get(0).focus();
            return;
        }
        jQuery.post(
            "tools/reporterror.ashx",
            {
                "from": $frommail.val(),
                "message": $mailmessage.val(),
                "productId": $(this).data("productId")
            },
            function(data) {
                jQuery(".soc.report-error").removeClass("try");
                try {
                    eval("var result = " + data + ";");
                    if (result.success) {
                        jQuery(".soc.report-error").addClass("success");
                    } else if (result.error) {
                        if (result.error.code == 5) {
                            alert('You try to send emails too often. Please wait a bit.');
                        }
                        jQuery(".soc.report-error").addClass("failed");
                    } else {
                        jQuery(".soc.report-error").addClass("failed");
                    }
                }
                catch (ex) {
                    jQuery(".soc.report-error").addClass("failed");
                }
            }
        );
            jQuery(".soc.report-error").addClass("try");
        emailAFriend.closeEmailForm(this);
    },
    CancelEmail: function() {
        emailAFriend.closeEmailForm(this);
    },
    closeEmailForm: function(btn) {
        var $flyform = $(btn).parents(".flyform");
        $flyform.data("opened", false);
        removeShadow($flyform);
        $flyform.fadeOut();
        emailAFriend.ClearForm($flyform);
    }
}

function EmailQuestion() {
    if ($(this).hasClass("try")) {
        alert("System already tries to send email. Please wait");
        return;
    }
    var $mailmessage = $("#pageMessage");
    if (!$mailmessage.val()) {
        alert("Mail message should be filled");
        $mailmessage.get(0).focus();
        return;
    }
    var $frommail = $("#customerEmail");
    if (!$frommail.val()) {
        alert("Please fill your email address.");
        $frommail.get(0).focus();
        return;
    }
    if (!isValidEmailAddress($frommail.val())) {
        alert("Please enter valid email address");
        $frommail.get(0).focus();
        return;
    }
    jQuery.post(
        "tools/emailquestion.ashx",
        {
            "from": $frommail.val(),
            "referrer": document.referrer,
            "message": $mailmessage.val(),
            "url": document.location.href
        },
        function(data) {
            jQuery(".submit-question").removeClass("try");
            try {
                eval("var result = " + data + ";");
                if (result.success) {
                    alert('Email has been sent!');
                    jQuery(".submit-question").addClass("success");
                } else if (result.error) {
                    if (result.error.code == 5) {
                        alert('You try to send emails too often. Please wait for some time!');
                    }
                    jQuery(".submit-question").addClass("failed");
                } else {
                    alert('Something strange happened');
                    jQuery(".submit-question").addClass("failed");
                }
            }
            catch (ex) {
                jQuery(".submit-question").addClass("failed");
            }
        }
    );
    jQuery(".submit-question").addClass("try");
}
