﻿    var CurrentCollection = "All";
    var CurrentCategory = "";
    var CurrentColor = "";
    $(function () {
        FixDesign();
        RoundButtons();
        /***************************** Quick Search **************************/
        $("#SearchKeyword").focus(function () {
            if ($(this).val() == "Find the perfect image…") $(this).val("");
        }).blur(function () {
            if ($(this).val() == "") $(this).val("Find the perfect image…");
        }).autocomplete(BasePath + "Controller.ashx", {
            extraParams: { Action: "Search" },
            width: 236,
            minChars: 1,
            max: 20,
            autoFill: true,
            //mustMatch: 1,
            scrollHeight: 400,
            selectFirst: true,
            parse: function (data) {
                var results = [];
                if (data.ResultSet && data.ResultSet.Result) {
                    for (var o in data.ResultSet.Result) {
                        var FormattedHtml = "<div class='NormalItem'>" + data.ResultSet.Result[o].P + "</div>"; // "<span>" + data.ResultSet.Result[o].C + " image(s)</span></div>";
                        var ResultTitle = data.ResultSet.Result[o].P;
                        results[results.length] = {
                            'data': { "ResultTitle": ResultTitle, "FormattedHtml": FormattedHtml },
                            'result': ResultTitle,
                            'value': ResultTitle
                        };
                    }
                }
                return results;
            },
            formatItem: function (data, i, j) {
                return data.FormattedHtml;
            },
            formatResult: function (data) {
                return data.ResultTitle;
            },
            cacheLength: 0
        }).result(function (event, item) {
            if (item && item.ResultTitle.length > 0) {
                UpdateResults(item.ResultTitle,'', CurrentCollection, 0, -1);
            }
            return false;
        });
        /**************************************************************/
    });

    $(window).resize(function () { FixDesign(); });

    function RoundButtons() {
        if (jQuery.browser.msie || jQuery.browser.opera) {
            $(".AllTenRounded").corner("round 10px");
            $(".TopTenRounded").corner("round tl tr 10px");
            $(".AllFiveRounded").corner("round 5px");
            $(".TopFiveRounded").corner("round tl tr 5px");
            $(".Button").corner("round 5px");
        }
    }
    function PhotoSearch() {
        UpdateResults($("#SearchKeyword").val(),'', CurrentCollection, 0, -1);
        return false;
    }

    function ShowBestSellers() {
        UpdateResults("BestSellers", '', "All", 0, -1);
        return false;
    }

    function ColorSearch(clr) {
        if (clr == CurrentColor && CurrentCategory!="") clr = "Remove";
        UpdateResults(CurrentCategory, clr, CurrentCollection, 0, -1);
        return false;
    }

    function FixDesign() {
        if ($(window).width() > 1200) $(".TopHeader .TopSearchPanel").width("640px");
        else $(".TopHeader .TopSearchPanel").width("470px");
        if ($(window).width() < 1000) $("#form1").width("1004px")
        else $("#form1").width("100%");
    }

    function UpdateResults(Category, Color, Collection, PageNumber, PageSize) {
        GetView("Categories", "Category=" + Category + "&Color=" + Color + "&Collection=" + Collection + "&PageNo=" + PageNumber + "&PageSize=" + PageSize, function (data) {
            DisableOverlay();
            $("#MainContentArea").html(data);
            AlignImages($("#MainContentArea"));
            $("#MainContentArea .Disabled").attr("disabled", "disabled").css("opacity", "0.5").css("cursor", "default");
            $("html,body").animate({ scrollTop: 0 }, 1500);
        });
        return false;
    }

    function UpdateResultsDirect(e, Category, Color, Collection, TotalPages, PageSize) {
        if (e.keyCode == 13) {
            var inputBox = e.srcElement ? e.srcElement:e.target;
            PageNumber = parseInt(inputBox.value);
            if(PageNumber > 0 && PageNumber <= TotalPages){
                PageNumber -= 1;
                UpdateResults(Category, Color, Collection, PageNumber, PageSize);
            }else{
                var msg = "Invalid page number. Page number must be between 1 and " + TotalPages;
                ShowDialog(msg,"Error",function(){
                    inputBox.focus();
                });
            }
            return false;
        }        
    }

    function CustomizeMe(ImageID) {
        ShowFlashOnOverlay({
            FlashFile: BasePath + "Flash/loader.swf", 
            Title: "Art 4 Life Builder&trade;",
            Width: 960,
            Height: 477,
            Background: "#ffffff",
            Params: { "ImageID": ImageID, "BasePath": BasePath },
            CloseButton: false
        });
        return false;
    }


    function SignInStatic() {
        ClearValidations();
        $("#StaticEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#StaticPassword").rules("add", { required: true, minlength: 6, messages: { required: "Please enter your Password", minlength: "Password must atleat 6 characters long"} });
        if (FormValidator.form()) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            SubmitForm({ Action: "SignInForm", LoginEmail: $("#StaticEmail").val(), LoginPassword: $("#StaticPassword").val() }, function (data) {
                ShowResult(data, null, function () {
                    $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                    DisableOverlay();
                    $("#StaticEmail").select();
                });
            });
        } else { ShowDialog(Errors, "Error"); }
        return false;
    }

    function SignIn() {
        ClearValidations();
        $("#LoginEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#LoginPassword").rules("add", { required: true, minlength: 6, messages: { required: "Please enter your Password", minlength: "Password must atleat 6 characters long"} });
        if (FormValidator.form()) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            SubmitForm("SignInForm", function (data) {
                ShowResult(data, null, function () {
                    $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                    $("#LoginEmail").select();
                });
            });
        } else { ShowDialog(Errors, "Error"); }
        return false;
    }

    function ResetPassword() {
        ClearValidations();
        $("#fpwdEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        if (FormValidator.form()) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            SubmitForm("RecoverPassword", function (data) {
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                ShowResult(data, null, function () {
                    $("#fpwdEmail").focus();
                    $("#fpwdEmail").select();
                });
            });
        } else { ShowDialog(Errors, "Error"); }
        return false;
    }

    function ShowRegisterStep2() {
        ClearValidations();
        $("#FirstName").rules("add", { required: true, messages: { required: "Please enter your First Name"} });
        $("#LastName").rules("add", { required: true, messages: { required: "Please enter your Last Name"} });
        $("#Address1").rules("add", { required: true, messages: { required: "Please enter your Address1"} });
        $("#City").rules("add", { required: true, messages: { required: "Please enter your Town/City"} });
        $("#State").rules("add", { required: true, messages: { required: "Please select your State"} });
        $("#ZipCode").rules("add", { required: true, messages: { required: "Please enter your Postal/ZipCode"} });
        $("#Phone").rules("add", { required: true, messages: { required: "Please enter your Telephone"} });
        if (FormValidator.form()) {
            $("#FirstStep").slideToggle();
            $("#SecondStep").slideToggle(function () {
                $("#Email").select();
            });
        } else { ShowDialog(Errors,"Error"); }
        return false;
    }

    function ShowRegisterStep1() {
        $("#FirstStep").slideToggle(function () {
            $("#FirstName").focus();
        });
        $("#SecondStep").slideToggle();
        return false;
    }

    function RegisterMe() {
        ClearValidations();
        $("#Email").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#ConfirmEmail").rules("add", { equalTo: "#Email", messages: { equalTo: "Email and Confirm Email must match"} });
        $("#Password").rules("add", { required: true, minlength: 6, messages: { required: "Please enter your Password", minlength: "Password must atleat 6 characters long"} });
        $("#ConfirmPassword").rules("add", { equalTo: "#Password", messages: { equalTo: "Password and Confirm Password must match"} });
        $("#Terms").rules("add", { required: true, messages: { required: "You must agree to the Terms of use"} });

        if (FormValidator.form()) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            SubmitForm("RegistrationForm", function (data) {
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                ShowResult(data, function () {
                    DisableOverlay();
                }, function () {
                    $("#Email").focus();
                    $("#Email").select();
                });
            });
        } else { ShowDialog(Errors, "Error"); }
        return false;
    }

    function AddNewAddress() {
        ClearValidations();
        $("#Email").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#FirstName").rules("add", { required: true, messages: { required: "Please enter your First Name"} });
        $("#LastName").rules("add", { required: true, messages: { required: "Please enter your Last Name"} });
        $("#Address1").rules("add", { required: true, messages: { required: "Please enter your Address1"} });
        $("#City").rules("add", { required: true, messages: { required: "Please enter your Town/City"} });
        $("#State").rules("add", { required: true, messages: { required: "Please select your State"} });
        $("#ZipCode").rules("add", { required: true, messages: { required: "Please enter your Postal/ZipCode"} });
        $("#Phone").rules("add", { required: true, messages: { required: "Please enter your Telephone"} });
        if (FormValidator.form()) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            SubmitForm("AddNewAddressForm", function (data) {
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                ShowResult(data, function () {
                    document.location.reload();
                }, function () {
                    
                });
            });
        } else { ShowDialog(Errors, "Error"); }
        return false;
    }

    function AddAnotherAddress() {
        RemoveDialog();
        $("#Email").val("");
        $("#FirstName").val("");
        $("#LastName").val("");
        $("#Address1").val("");
        $("#Address2").val("");
        $("#City").val("");
        $("#State").val("");
        $("#Country").val("");
        $("#ZipCode").val("");
        $("#Phone").val("");
        $('#Email').focus();
    }

    function MakeSame(s) {
        $("#ShippingForm input[type=text],#ShippingForm select").each(function () {
            if (s) $(this).val($("#" + $(this).attr("id").replace("Shipping", "Billing")).val());
            else $(this).val("");
        });
        UpdateShippingOptionsByName($("#ShippingState").val());
    }

    function AddOrder() {
        if ($("#CheckoutType").val() == "WithLogin") {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            var Params = {
                Action: "AddOrder",
                BillingID: $("input[name='BillingAddressID']").filter("[checked=true]").val(),
                ShippingID: $("input[name='ShippingAddressID']").filter("[checked=true]").val(),
                ShippingOption: $(".ShippingOptions input").filter("[checked=true]").val()
            };
            SubmitForm(Params, function (data) {
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                ShowResult(data, function () {}, function () {
                    DisableOverlay();
                });
            });
        } else {
            ClearValidations();
            $("#BillingEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Billing Email Address", email: "Invalid billing email!! Please try user@domain.com"} });
            $("#BillingFirstName").rules("add", { required: true, messages: { required: "Please enter your Billing First Name"} });
            $("#BillingLastName").rules("add", { required: true, messages: { required: "Please enter your Billing Last Name"} });
            $("#BillingAddress1").rules("add", { required: true, messages: { required: "Please enter your Billing Address1"} });
            $("#BillingCity").rules("add", { required: true, messages: { required: "Please enter your Billing Town/City"} });
            $("#BillingState").rules("add", { required: true, messages: { required: "Please enter your Billing State"} });
            $("#BillingZipCode").rules("add", { required: true, messages: { required: "Please enter your Billing Postal/ZipCode"} });
            $("#BillingPhone").rules("add", { required: true, messages: { required: "Please enter your Billing Telephone"} });

            $("#ShippingEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Shipping Email Address", email: "Invalid shipping email!! Please try user@domain.com"} });
            $("#ShippingFirstName").rules("add", { required: true, messages: { required: "Please enter your Shipping First Name"} });
            $("#ShippingLastName").rules("add", { required: true, messages: { required: "Please enter your Shipping Last Name"} });
            $("#ShippingAddress1").rules("add", { required: true, messages: { required: "Please enter your Shipping Address1"} });
            $("#ShippingCity").rules("add", { required: true, messages: { required: "Please enter your Shipping Town/City"} });
            $("#ShippingState").rules("add", { required: true, messages: { required: "Please select your Shipping State"} });
            $("#ShippingZipCode").rules("add", { required: true, messages: { required: "Please enter your Shipping Postal/ZipCode"} });
            $("#ShippingPhone").rules("add", { required: true, messages: { required: "Please enter your Shipping Telephone"} });

            if (FormValidator.form()) {
                SubmitForm("AddOrder", function (data) {
                    $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                    ShowResult(data, function () {}, function () {
                        DisableOverlay();
                    });
                });
            } else { ShowDialog(Errors, "Error"); }
        }
        return false;
    }


    function SubmitContactUs() {
        ClearValidations();
        $("#YourName").rules("add", { required: true, messages: { required: "Please enter your name"} });
        $("#YourEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#YourSubject").rules("add", { required: true, messages: { required: "Please enter your subject"} });
        $("#YourEnquiry").rules("add", { required: true, messages: { required: "Please select nature of enquiry"} });    
        $("#YourMessage").rules("add", { required: true, messages: { required: "Please enter your message"} });    
        if (FormValidator.form()) {
            SubmitForm("ContactUsForm", function (data) {
                DisableOverlay();
                ShowResult(data, function () {
                    theForm.reset();
                    $("#YourName").focus();
                });
            });
        } else {
            ShowDialog(Errors,"Error");
        }
        return false;
    }


    function RecommendFriend(){
        ClearValidations();
        $("#YourName").rules("add", { required: true, messages: { required: "Please enter your name"} });
        $("#FriendsName").rules("add", { required: true, messages: { required: "Please enter your Friend's name"} });
        $("#FriendsEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Friend's Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#YourMessage").rules("add", { required: true, messages: { required: "Please enter your message"} });    
        if (FormValidator.form()) {
            SubmitForm("RecommendFriendForm", function (data) {
                DisableOverlay();
                ShowResult(data, function () {
                    theForm.reset();
                    $("#YourName").focus();
                });
            });
        } else {ShowDialog(Errors,"Error");}
        return false;
    }

    function UpdatePassword() {
        ClearValidations();
        $("#OldPassword").rules("add", { required: true, minlength: 6, messages: { required: "Please enter your old Password", minlength: "Old Password must atleat 6 characters long"} });
        $("#NewPassword").rules("add", { required: true, minlength: 6, messages: { required: "Please enter your new Password", minlength: "New Password must atleat 6 characters long"} });
        $("#ConfirmPassword").rules("add", { required: true, equalTo: "#NewPassword", messages: { required: "Please confirm your new Password", equalTo: "New Password and Confirm Password must be same"} });

        if (FormValidator.form()) {
            SubmitForm("ChangePasswordForm", function (data) {
                ShowResult(data, function () {
                    DisableOverlay();
                },function(){
                    $("#OldPassword").focus();
                    $("#OldPassword").select();
                });
            });
        } else {ShowDialog(Errors,"Error");}
        return false;
    }

    function SignOut(){
        ShowDialog("Are you sure, you want to signout from your account","Question",function(r){
            if(r=="Yes"){
                SubmitForm({Action:"SignOut"}, function (data) {
                    ShowResult(data);
                });
            }
        },"Yes,No");
        return false;
    }

    function DeleteFromCart(CartID){
        ShowDialog("Are you sure, you want to remove this item from your cart?","Question",function(r){
            if(r=="Yes"){
                ShowMessageOnOverlay();
                __doPostBack('Delete',CartID);
            }
        },"Yes,No");
        return false;
    }

    var curCatHover = null;
    function SetupMouseHovers() {
        $("#MainContentArea .Disabled").attr("disabled", "disabled").css("opacity", "0.5").css("cursor", "default");
        $(".CategoryImage .ImageHolder").hover(function (event) {
            if (curCatHover != $(this).attr("id")) {
                curCatHover = $(this).attr("id");
                var obj = this;
                var handle = setTimeout(function () { ShowHoverTipImage(obj, event); }, 1000);
            }
        }, function () {
            curCatHover = null;
        });
    }


    function ShowHoverTipImage(obj, e) {
        if (curCatHover != $(obj).attr("id") || curCatHover == null)
            return false;
        
        if ($(obj).find("img").width() == 0 || $(obj).find("img").height() == 0)
            return false;

        curCatHover = null;
        
        var bgUrl = $(obj).find("img").attr("src");
        var longdesc = $(obj).find("img").attr("longdesc");
        var width = parseInt(longdesc.split(',')[0]);
        var height = parseInt(longdesc.split(',')[1]);
        var imgUrl = longdesc.split(',')[2];
        var ImageID = longdesc.split(',')[3];
        var Caption = longdesc.split(',')[4];
        var Ref = $(obj).attr("id");

        var Left = $(obj).position().left - (width / 2) + 80;
        var Top = $(obj).position().top - (height / 2) + 80;
        var Right = Left + width + 25;
        var Bottom = Top + height + 25;

        if (Bottom > ($(window).height() + $(document).scrollTop() - 260))
            Top -= (Bottom - ($(window).height() + $(document).scrollTop() - 260)) + 10;

        if ((Top + $(obj).position().top) < $(document).scrollTop() - 260)
            Top += $(document).scrollTop() - (Top + $(obj).position().top) - 260;

        if (Right > ($(window).width() - 260))
            Left -= (Right - ($(window).width() - 260)) + 20;

        $("#MouseHoverTipDiv").css({
            left: Left + "px",
            top: Top + "px",
            border: "solid 2px #000000",
            width: (width+20) + "px"
        }).click(function () {
            $("#Watermark").hide();
            $("#ImageCaption").html("");
            $("#NormalImage").hide();

            $("#MouseHoverTipDiv").css({
                left: "0px",
                top: "0px",
                border: "none"
            }).hide();
            return CustomizeMe(ImageID);
        });

        $("#ImageReference").html(Ref + " Art 4 Life Images").css("visibility","hidden");
        $("#ImageCaption").html(Caption);
        $("#NormalImage").css({"width": width, "height": height, background: "url(" + BasePath + "images/Loading.png) no-repeat center center" }).show();

        $("#MouseHoverTipDiv").fadeIn(500, function () {
            img = new Image();
            $(img).load(function () {
                $("#NormalImage").hide().css({
                    "background": "url(" + imgUrl + ")",
                    "width": width, 
                    "height": height
                }).fadeIn(500);
                $("#ImageReference").css("visibility", "visible");
                setTimeout(function () {                    
                    $("#Watermark").css({
                        width: width + "px",
                        height: height + "px"
                    }).fadeIn(100);
                }, 500);
            });
            img.src = imgUrl;
        }).hover(function () {
            //to do    
        }, function () {
            $("#Watermark").css({
                width: "0px",
                height: "0px"
            }).hide();

            $("#ImageCaption").html("");

            $("#NormalImage").css({
                width: "0px",
                height: "0px",
                background: "none"
            }).hide();

            $("#MouseHoverTipDiv").css({
                left: "0px",
                top: "0px",
                border: "none"
            }).hide();
        });
    }


    function Add2Gallery(iID, rID) {
        if (UserLoginStatus) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            var Params = {
                Action: "Add2Gallery",
                ImageID: iID,
                ReferenceID: rID
            };
            SubmitForm(Params, function (data) {
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                DisableOverlay();
                ShowResult(data);
            });
        } else {
            PostHandler = function (data) {
                UserLoginStatus = true;
                Add2Gallery(iID, rID);
            }
            ShowFormOnOverlay('Login', 600);
        }
        return false;
    }

    function RemoveFromGallery(gID, rID) {
        ShowDialog("Are you sure, you want to remove this image from your gallery?", "Question", function (r) {
            if (r == "Yes") {
                $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
                var Params = {
                    Action: "RemoveFromGallery",
                    GalleryID: gID
                };
                SubmitForm(Params, function (data) {
                    $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                    DisableOverlay();
                    ShowResult(data, function () {
                        $("#" + rID).fadeOut(1000);
                    });
                });
            }
        }, "Yes,No");        
        return false;
    }



    function ShowCart() {
        if ($("#shipping_draft").css("width") == "0px")
            $("#shipping_draft").animate({ width: "515px", height: "352px" }, 300, function () { $(this).css({ padding: "20px" }); });
        else
            $("#shipping_draft").css({ padding: "0px" }).animate({ width: "0px", height: "0px" }, 300);
        return false;
    }
    var i = 0;
    function UpdateShippingDays(state) {
        if (i < ShippingDays.length) {
            document.getElementById(ShippingDays[i][1]).innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;";
            $.post(BasePath + "Controller.ashx", {
                Action: "GetShippingDays",
                StateName: state,
                ShippingID: ShippingDays[i][0]
            }, function (r) {
                if (r != null) {
                    document.getElementById(ShippingDays[i][1]).innerHTML = r;
                    i += 1;
                    UpdateShippingDays(state);
                }
            });
        }
        else
            i = 0;
    }

    function UpdateShippingOptions(AddressID) {
        $(".ShippingOptions input").each(function () {
            var ip = $(this);
            $.post(BasePath + "Controller.ashx", {
                Action: "GetShippingDaysByShippingID",
                AddressID: AddressID,
                ShippingID: $(this).val()
            }, function (r) {
                if (r != null) {
                    ip.next().html(r);
                }
            });
        });
    }

    function UpdateShippingOptionsByName(StateName) {
        $(".ShippingOptions input").each(function () {
            var ip = $(this);
            $.post(BasePath + "Controller.ashx", {
                Action: "GetShippingDaysByStateName",
                StateName: StateName,
                ShippingID: $(this).val()
            }, function (r) {
                if (r != null) {
                    ip.next().html(r);
                }
            });
        });
    }

    function DeleteAddress(aID) {
        ShowDialog("Are you sure, you want to remove this address from your address book?", "Question", function (r) {
            if (r == "Yes") {
                $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
                var Params = {
                    Action: "DeleteAddress",
                    AddressID: aID
                };
                SubmitForm(Params, function (data) {
                    $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                    DisableOverlay();
                    ShowResult(data, function () {
                        $("#Add" + aID).fadeOut(1000);
                    });
                });           
            }
        }, "Yes,No");
        return false;
    }

    function MakeDefault(aID, aT) {
        ShowDialog("Are you sure, you want to make this address as your default " + aT.toLowerCase() + " address?", "Question", function (r) {
            if (r == "Yes") {
                $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
                var Params = {
                    Action: "MakeDefaultAddress",
                    AddressID: aID,
                    AddressType: aT
                };
                SubmitForm(Params, function (data) {
                    $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                    DisableOverlay();
                    ShowResult(data, function () {
                        document.location.reload();
                    });
                });
            }
        }, "Yes,No");
        return false;
    }

    function SubmitQuestion() {
        ClearValidations();
        $("#QuestionName").rules("add", { required: true, messages: { required: "Please enter your Name" } });
        $("#QuestionEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
        $("#Question").rules("add", { required: true, messages: { required: "Please enter your Question"} });
        if (FormValidator.form()) {
            $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
            SubmitForm("SubmitQuestion", function (data) {
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                DisableOverlay();
                ShowResult(data, function () {
                    $("#QuestionName").val("");
                    $("#QuestionEmail").val("");
                    $("#Question").val("");
                });
            });
        } else { ShowDialog(Errors, "Error"); }
        return false;
    }
