﻿function Search() {
    document.location.href = $("#ResultPage").val();
    return false;
}

function PayNow(oID) {
    ShowMessageOnOverlay("Please wait...");
    $.get("Paypal.ashx?oID=" + oID, function (data) {
        $('body').append(data);
    });
    return false;
}

function AddOrder() {
    if ($("#CheckoutType").val() == "WithLogin") {
        ShowMessageOnOverlay("Please wait...");
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        $.post(BasePath + "Controller.ashx", {
            Action: "AddOrder",
            BillingID: $("input[name='BillingAddressID']:checked").val(),
            ShippingID: $("input[name='ShippingAddressID']:checked").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            ShowResult(data);
        });
    } else {
        Errors = "";
        $("form input,form select").each(function () {
            $(this).removeClass("error").rules("remove");
        });

        $("#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/County"} });
        $("#BillingZipCode").rules("add", { required: true, messages: { required: "Please enter your Billing Post/ZipCode"} });
        $("#BillingPhone").rules("add", { required: true, messages: { required: "Please enter your Billing Phone"} });

        $("#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 enter your Shipping State/County"} });
        $("#ShippingZipCode").rules("add", { required: true, messages: { required: "Please enter your Shipping Post/ZipCode"} });
        $("#ShippingPhone").rules("add", { required: true, messages: { required: "Please enter your Shipping Phone"} });

        if (FormValidator.form()) {
            ShowMessageOnOverlay("Please wait...");
            $.post(BasePath + "Controller.ashx", {
                Action: "AddOrderSkipLogin",
                BillingEmail: $("#BillingEmail").val(),
                BillingFirstName: $("#BillingFirstName").val(),
                BillingLastName: $("#BillingLastName").val(),
                BillingAddress1: $("#BillingAddress1").val(),
                BillingAddress2: $("#BillingAddress2").val(),
                BillingCity: $("#BillingCity").val(),
                BillingState: $("#BillingState").val(),
                BillingCountry: $("#BillingCountry").val(),
                BillingZipCode: $("#BillingZipCode").val(),
                BillingPhone: $("#BillingPhone").val(),

                ShippingEmail: $("#ShippingEmail").val(),
                ShippingFirstName: $("#ShippingFirstName").val(),
                ShippingLastName: $("#ShippingLastName").val(),
                ShippingAddress1: $("#ShippingAddress1").val(),
                ShippingAddress2: $("#ShippingAddress2").val(),
                ShippingCity: $("#ShippingCity").val(),
                ShippingState: $("#ShippingState").val(),
                ShippingCountry: $("#ShippingCountry").val(),
                ShippingZipCode: $("#ShippingZipCode").val(),
                ShippingPhone: $("#ShippingPhone").val()

            }, function (data) {
                DisableOverlayMessage();
                $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
                ShowResult(data);
            });
        } else { alert(Errors); }
    }
    return false;
}

function AddAnotherAddress() {
    RemoveDialog();
    ClearAddressFields(); 
    $('#Email').focus();
}
function ClearAddressFields() {
    $("#Email").val("");
    $("#FirstName").val("");
    $("#LastName").val("");
    $("#Address1").val("");
    $("#Address2").val("");
    $("#City").val("");
    $("#State").val("");
    $("#Country").val("");
    $("#ZipCode").val("");
    $("#Phone").val("");
}

function AddNewAddress() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    
    $("#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 enter your State/County"} });
    $("#ZipCode").rules("add", { required: true, messages: { required: "Please enter your Post/ZipCode"} });
    $("#Phone").rules("add", { required: true, messages: { required: "Please enter your Phone"} });

    if (FormValidator.form()) {
        ShowMessageOnOverlay("Please wait...");
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        $.post(BasePath + "Controller.ashx", {
            Action: "AddAddress",
            AddressType: $("#AddressType").val(),
            Email: $("#Email").val(),
            FirstName: $("#FirstName").val(),
            LastName: $("#LastName").val(),
            Address1: $("#Address1").val(),
            Address2: $("#Address2").val(),
            City: $("#City").val(),
            State: $("#State").val(),
            Country: $("#Country").val(),
            ZipCode: $("#ZipCode").val(),
            Phone: $("#Phone").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            ShowResult(data, function () {
                document.location.reload();
            });
        });
    } else { alert(Errors); }
    return false;
}

function Logout() {
    if (confirm("Are you sure, you want to logged out from your account?")) {
        ShowMessageOnOverlay("Please wait...");
        $.post(BasePath + "Controller.ashx", {
            Action: "Logout"
        }, function (data) {
            ShowResult(data);
        });
    }
    return false;
}

function ResetPassword() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#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()) {
        ShowMessageOnOverlay("Please wait..");
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        $.post(BasePath + "Controller.ashx", {
            Action: "RecoverPassword",
            Email: $("#fpwdEmail").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            ShowResult(data, function () {
                DisableOverlay();
            }, function () {
                $("#fpwdEmail").focus();
                $("#fpwdEmail").select();
            });
        });
    } else { alert(Errors); }
    return false;
}

function ChangePassword() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#cpwdOldPassword").rules("add", { required: true, messages: { required: "Please enter your old Password"} });
    $("#cpwdNewPassword").rules("add", { required: true, messages: { required: "Please enter your new Password"} });
    $("#cpwdCNewPassword").rules("add", { equalTo: "#cpwdNewPassword", messages: { equalTo: "Password and Confirm Password must match"} });
    if (FormValidator.form()) {
        ShowMessageOnOverlay("Please wait..");
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        $.post(BasePath + "Controller.ashx", {
            Action: "ChangePassword",
            OldPassword: $("#cpwdOldPassword").val(),
            NewPassword: $("#cpwdNewPassword").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            ShowResult(data, function () {
                DisableOverlay();
            }, function () {
                $("#cpwdOldPassword").focus();
                $("#cpwdOldPassword").select();
            });
        });
    } else { alert(Errors); }
    return false;
}

function ContactUs() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#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 Name"} });
    $("#LastName").rules("add", { required: true, messages: { required: "Please enter your Surname"} });
    $("#Message").rules("add", { required: true, messages: { required: "Please enter your Comments"} });
    $("#Phone").rules("add", { required: true, messages: { required: "Please enter your Telephone"} });
  
    if (FormValidator.form()) {
        ShowMessageOnOverlay("Please wait...");
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        $.post(BasePath + "Controller.ashx", {
            Action: "ContactUs",
            Email: $("#Email").val(),
            FirstName: $("#FirstName").val(),
            LastName: $("#LastName").val(),
            Message: $("#Message").val(),
            Phone: $("#Phone").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            ShowResult(data, function () {
                DisableOverlay();
            }, function () {
                $("#FirstName").focus();
                $("#FirstName").select();
            });
        });
    } else { alert(Errors); }
    return false;
}

function SkipLogin() {
    ShowMessageOnOverlay("Please wait...");
    $.post(BasePath + "Controller.ashx", {
        Action: "GuestLogin"
    }, function (data) {
        ShowResult(data);
    });
    return false;
}

function SignIn() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#LoginEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your user name", email: "Invalid user name!! Please try user@domain.com"} });
    $("#LoginPassword").rules("add", { required: true, messages: { required: "Please enter your Password"} });
    if (FormValidator.form()) {
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        ShowMessageOnOverlay("Please wait...");
        $.post(BasePath + "Controller.ashx", {
            Action: "SignIn",
            Email: $("#LoginEmail").val(),
            Password: $("#LoginPassword").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            if ($(".OverlayBox").length == 0) DisableOverlay();
            ShowResult(data, function () { }, function () {
                $("#LoginEmail").select();
            });
        });
    } else { alert(Errors); }
    return false;
}


function RegisterMe() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#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, messages: { required: "Please enter your Password"} });
    $("#ConfirmPassword").rules("add", { equalTo: "#Password", messages: { equalTo: "Password and Confirm Password must match"} });

    if (FormValidator.form()) {
        ShowMessageOnOverlay("Please wait...");
        $("form input,form select").attr("disabled", "disabled").css({ opacity: "0.3" });
        $.post(BasePath + "Controller.ashx", {
            Action: "RegisterMe",
            Email: $("#Email").val(),
            Password: $("#Password").val(),
            FirstName: $("#FirstName").val(),
            LastName: $("#LastName").val(),
            Address1: $("#Address1").val(),
            Address2: $("#Address2").val(),
            City: $("#City").val(),
            State: $("#State").val(),
            Country: $("#Country").val(),
            ZipCode: $("#ZipCode").val(),
            Phone: $("#Phone").val()
        }, function (data) {
            DisableOverlayMessage();
            $("form input,form select").removeAttr("disabled").css({ opacity: "1" });
            ShowResult(data, function () {
                DisableOverlay();
            }, function () {
                $("#Email").focus();
                $("#Email").select();
            });
        });
    } else { alert(Errors); }
    return false;
}



function ShowSecond() {
    Errors = "";
    $("form input,form select").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#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 enter your State/County"} });
    $("#ZipCode").rules("add", { required: true, messages: { required: "Please enter your Post/ZipCode"} });
    $("#Phone").rules("add", { required: true, messages: { required: "Please enter your Phone"} });
    if (FormValidator.form()) {
        $("#FirstStep").slideToggle();
        $("#SecondStep").slideToggle(function () {
            $("#Email").select();
        });
    } else { alert(Errors); }
    return false;
}

function ShowFirst() {
    $("#FirstStep").slideToggle(function () {
        $("#FirstName").focus();
    });
    $("#SecondStep").slideToggle();
    return false;
}

function ShowLoginWindow4Checkout(rURL) {
    NewRedirectURL = rURL;
    ShowControlOnOverlay('Login', 650,0,false,'sc=1');
    return false;
}

function SubscribeNewsletter() {
    Errors = "";
    $("form input,form select,form textarea").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    $("#NewsletterName").rules("add", { required: true, messages: { required: "Please enter your Name"} });
    $("#NewsletterEmail").rules("add", { required: true, email: true, messages: { required: "Please enter your Email Address", email: "Invalid email!! Please try user@domain.com"} });
    if (FormValidator.form()) {
        ShowMessageOnOverlay("Please wait..");
        $.post(BasePath + "Controller.ashx", {
            Action: "SubscribeNewsletter",
            Name: $("#NewsletterName").val(),
            Email: $("#NewsletterEmail").val()
        }, function (data) {
            DisableOverlay();
            ShowResult(data);
            $("#NewsletterName").val("Enter your name");
            $("#NewsletterEmail").val("Enter your email address");
        });
    } else { alert(Errors); }
    return false;
}

 function SetColors(sID) {
        $("option", ddlProdColors).remove();
        ddlProdColors.append("<option value=''>Select a Color</option>");
        for (var o in ProdColors[sID]) {
            ddlProdColors.append("<option value='" + ProdColors[sID][o][0] + "'>" + ProdColors[sID][o][1] + "</option>");
        }
    }

function Add2Cart(pID) {
    Errors = "";
     $("form input,form select,form textarea").each(function () {
        $(this).removeClass("error").rules("remove");
    });
    ddlProdSizes.rules("add", { required: true, messages: { required: "Please choose a  size"} });
    ddlProdColors.rules("add", { required: true, messages: { required: "Please chooose a  color"} });
    if (FormValidator.form()) {
        if (ValidateQty("#qty")) {
            var Qty = $("#qty").val();
            ShowMessageOnOverlay("Please wait..");
            $.post(BasePath + "Controller.ashx", {
                Action: "Add2Cart",
                ProductID: pID,
                Quantity: Qty,
                AttributeId: ddlProdColors.val()
            }, function (data) {
                ShowResult(data, function () {
                    DisableOverlay();
                }, function () {
                    DisableOverlay();
                }); 
            });
        } else {
            alert("Invalid Quantity.");
            $("#" + qID).focus();
        }
     } else { alert(Errors); }
   return false;
}

function ValidateQty(o) {
    var Qty = $(o).val();
    if (isNaN(Qty) || parseInt(Qty) != Qty || parseInt(Qty)==0) {
        return false;
    }
    return true;
}


function parseXML(xml) {
    var results = [];
    $(xml).find('item').each(function () {
        var ResultTitle = $.trim($(this).find('ResultTitle').text());
        var FormattedHtml = $.trim($(this).find('FormattedHtml').text());
        var FileURL = $.trim($(this).find('FileURL').text());
        results[results.length] = { 'data': { "ResultTitle": ResultTitle, "FormattedHtml": FormattedHtml, "FileURL": FileURL },
            'result': ResultTitle, 'value': FileURL
        };
    });
    return results;
};

function formatItem(data, i, j) {
    return data.FormattedHtml;
};

function formatResult(data) {
    return data.ResultTitle;
};


$(function () {
    var browser = jQuery.browser;
    if (browser.msie) {
      /*  var Version = browser.version;
        if(Version < 8)
            alert("You are using ie " + Version + " . All the features of this website may not function properly on this browser. Please upgrade your browser to 8.0 version or above.");
       */
        $(".AllFiveRounded").corner("round 5px");
        $(".AllTenRounded").corner("round 10px");
        $(".AllTenRounded h2").corner("round 10px tl tr");
        $(".AllTenRounded .Body").corner("round 10px bl br");
    }
    FormValidator = $("#form1").validate({
        errorPlacement: function (error, element) {
            Errors += error.html() + "\n";
        }
    });

    /***************************** Quick Search **************************/
    $("#SearchKeyword").focus(function () {
        if ($(this).val() == "Search") $(this).val("");
    }).blur(function () {
        if ($(this).val() == "") $(this).val("Search");
    }).autocomplete("Controller.ashx", {
        extraParams: { Action: "Search" },
        width: 250,
        minChars: 1,
        max: 20,
        autoFill: false,
        mustMatch: 1,
        scrollHeight: 400,
        selectFirst: false,
        parse: parseXML,
        formatItem: formatItem,
        formatResult: formatResult,
        cacheLength: 0
    }).result(function (event, item) {
        if (item && item.FileURL.length > 0) window.location.href = item.FileURL;
        return false;
    });
    /**************************************************************/
});
