﻿
var secureURL = "/";


     $(document).ready(function() {
     
         $(document).ready(function() {
           $('li.extender a').click(function() {
             $(this).next('ul').slideToggle();
           });
         });

        // START bind image selectors
        var jSelector = $( ".selector" );
        jSelector.change(
            function(objEvent){
               doPricing(this);
            }
        );
        // END bind image selectors
        
        
        
        var jSelector = $( ".select" );
        jSelector.change(
            function(objEvent){
                    var filterID = $('option:selected', this).val();
                    if (filterID != "NULL") {
                        $(this).removeClass('blank');
                    }
                    else {
                        $(this).addClass('blank');
                    }
                    doPricing($("#_materials"));
            }
        );    
        
        $("#showType").change(
            function(objEvent){
                    var filterID = $('option:selected', this).val();
                    if (filterID != "") {
                        if (filterID == "ALL") {
                            document.location = "/page.aspx?pointerID=" + $("#pID").val();
                        }
                        else {
                            document.location = "/page.aspx?pointerID=" + $("#pID").val() + "&type=" + filterID;
                        }
                    }
            }
        );  
        
        $("#showCounty").change(
            function(objEvent){
                    var filterID = $('option:selected', this).text();
                    if (filterID != "") {
                        document.location = "/page.aspx?pointerID=" + $("#pID").val() + "&county=" + filterID;
                    }
            }
        );  
        
        // START ajax smallbasket
        ajaxPost("topboxitems", "/ajax/ajaxSmallBasket.aspx");
        // END ajax smallbasket
        
        // START ajax basket
        if ($("#ajaxbasket").length > 0) {
             ajaxPost("ajaxbasket", "/ajax/ajaxBasket.aspx?oid=" + gup("oid"));
        }
        
          if ($("#ajaxContact").length > 0) {
             ajaxPost("ajaxContact", "/ajax/ajaxContact.aspx");
        }
        
        // END ajax basket
    });
    
    function offers() {
        if ($(".offerCode").val() != "") {
          $.post("/ajax/ajaxOffer.aspx?code=" + $(".offerCode").val(), function(data){
            if (data) {
                updateBasket();
            }
            else {
                notifications('basketErrors', '<p class="error">sorry.. the offer code you entered is not recognised.</p>');
            }
          });    
        }
    }
    
    
    function doPricing(inSelect) {
    
        if (inSelect.length > 0) {
            var filterID = $('option:selected', inSelect).val();
            if (filterID != "NULL" && filterID != "undefined") {
                $(inSelect).removeClass('blank');
                var versionID = $('#cVid').val();
                var itemPointerID = $('#pID').val();
                var imageUrl = "/ajax/ajaxPimage.aspx?filterID=" + filterID + "&versionID=" + versionID;
                ajaxPost('loadarea', imageUrl);
                var materials = $('#materials').val();
                var itemInOfferIDs = $('#oIDs').val();
                var percentagePointers = getPercentageChanges();
                var priceUrl = "/ajax/ajaxPrice.aspx?percentagePointers=" + percentagePointers + "&itemInOfferIDs=" + itemInOfferIDs + "&filterID=" + filterID + "&materials=" + materials + "&itemPointerID=" + itemPointerID;
                ajaxPost('item_cost', priceUrl);
                var priceUrl = "/ajax/ajaxPrice.aspx?percentagePointers=" + percentagePointers + "&itemInOfferIDs=" + itemInOfferIDs + "&filterID=" + filterID + "&materials=" + materials + "&itemPointerID=" + itemPointerID + "&isPriceOnly=true";
                ajaxPost('item_Price', priceUrl);
            }
            else {
                $(inSelect).addClass('blank');
            }
        }
    }
    
    function checkOut() {
    
    var doPost = true;
        var postageID = "";
        postageID = $(".postage").val();
        if (postageID == "") {
            notifications('basketErrors', '<p class="error">please select a postage method..</p>');
            inerror = true;
            doPost = false;
        }
        if (doPost) {
         ajaxPost("ajaxbasket", "/ajax/ajaxCheckout.aspx");
         window.scrollTo(0,0);
        }
    }
    
    var paymentResponse = "";
    
    function pay() {
        $('body').css('cursor', 'wait');
        
        var errorStr = "";
        var isValid = true;
        
        if ($("#__cardtype").val() == "") {
           errorStr = errorStr + "<p class=\"error\">!! Please select your card type</p>";
           $("#__cardtype").addClass('invalid');
           isValid = false;
        }
        
        if ($("#__cardnumber").val() == "") {
           errorStr = errorStr + "<p class=\"error\">!! Please enter your card number</p>";
           $("#__cardnumber").addClass('invalid');
           isValid = false;
        }
        else {
            if (!checkCreditCard($("#__cardnumber").val(),$("#__cardtype").val()))  {
               errorStr = errorStr + "<p class=\"error\">!! Please fill in your card number correctly</p>";
                $("#__cardnumber").addClass('invalid');
               isValid = false;
            }
        }
        
        if ($("#__startdate_month").val() == "") {
           errorStr = errorStr + "<p class=\"error\">!! Please fill in your card valid from date (month)</p>";
           $("#__startdate_month").addClass('invalid');
           isValid = false;  
        }

        if ($("#__startdate_year").val() == "") {
           errorStr = errorStr + "<p class=\"error\">!! Please fill in your card valid from date (year)</p>";
           $("#__startdate_year").addClass('invalid');
           isValid = false;  
        } 
        
        if ($("#__enddate_month").val() == "") {
           errorStr = errorStr + "<p class=\"error\">!! Please fill in your card valid to date (month)</p>";
           $("#__enddate_month").addClass('invalid');
           isValid = false;  
        }

        if ($("#__enddate_year").val() == "") {
           errorStr = errorStr + "<p class=\"error\">!! Please fill in your card valid to date (year)</p>";
           $("#__enddate_year").addClass('invalid');
           isValid = false;  
        }                   

        if ($("#__cardtype").val() == "9" || $("#__cardtype").val() == "10") {
            if ($("#__issue").val() == "") {
                errorStr = errorStr + "<p class=\"error\">!! Please select your card issue number</p>";
                $("#__issue").addClass('invalid');
                isValid = false;
            }
        }    
        
        if ($("#__CVV").val() == "") {
            errorStr = errorStr + "<p class=\"error\">!! Please select your card CVV number (last 3 digits)</p>";
            $("#__CVV").addClass('invalid');
            isValid = false;
        }       
        
        if (errorStr.length > 0) {
            notifications('#cc .errorDiv', '<p class=\"error\">!! Please fill in all mandatory (*) fields</p>' + errorStr);
        }
        else {
        
        toggleDialog(true, '');
        ajaxPost("dialog", "/ajax/ajaxProcessing.aspx");

          var str = $("#ajaxForm").serialize();
          $.post(secureURL + "ePDQresponse.aspx?" + str, function(data){
            if (data) {
                paymentResponse = data;
                setTimeout("showResponse()", 5000);
            }
            else {
                paymentResponse = "NORESPONSE";
                setTimeout("showResponse()", 5000);
            }
          });
        }

    }
    
    function password() {
        toggleDialog(true, '');
        ajaxPost("dialog", "/ajax/ajaxPassword.aspx");
    }
    
    function doAjaxPassword(inEmail) {
        
        var isValid = true;

        $("#password .errorDiv").empty();
        $("#password .errorDiv").hide();
        if (!verifyEmailAddress("pemail", "password", false)) {
           isValid = false;
        }
        
        if (isValid) {
            ajaxPost("dialog", "/ajax/ajaxPassword.aspx?email=" + inEmail);
        }

    }    
    
    
    
    function showResponse() {
        $('body').css('cursor', 'default');
        toggleDialog(false, '');
        $("#ajaxbasket").empty();
        $("#ajaxbasket").html(paymentResponse);
        ajaxPost("topboxitems", "/ajax/ajaxSmallBasket.aspx");
    }
    
    function contcatSubmit() {
    
        $('body').css('cursor', 'wait'); 
        $("#contact .errorDiv").empty();
 
         var isValid = true;
        $("#contact .mand").each(function() { 
            if ($(this).val() == "") {
                isValid = false;
                $(this).addClass('invalid');
            }
            else {
               $(this).removeClass('invalid'); 
            }
        });      
        
        if (!verifyEmailAddress("email", "contact", false))
        {
           isValid = false;
        }
        
        if (isValid) {
          var str = $("#ajaxForm").serialize();
          $.post("/ajax/ajaxContact.aspx?action=sendMail&" + str, function(data){
            if (data) {
                $("#ajaxContact").empty();
                $("#ajaxContact").append(data);
            }
            else {
                notifications('#ajaxContact .errorDiv', '<p class="error">!! Sorry, there was an error sending your enquiry, please try again</p>');
            }
          });    
        }
        else {
            notifications('#contact .errorDiv', '<p class="error">!! Please fill in all mandatory (*) fields</p>');
        }
        
        $('body').css('cursor', 'default');
    
    }
    
    function createAccount(checkEmailIsUnique) {
    
        $('body').css('cursor', 'wait'); 
    
        $("#register .errorDiv").empty();
        var isValid = true;
        $("#register input.mand").each(function() { 
            if ($(this).val() == "") {
                isValid = false;
                $(this).addClass('invalid');
            }
            else {
               $(this).removeClass('invalid'); 
            }
        });
        
        if (!verifyEmailAddress("__email", "register", checkEmailIsUnique))
        {
           isValid = false;
        }
        if (!verifyEmail())
        {
           isValid = false;
        }
        if (!verifyPassword())
        {
           isValid = false;
        }
        
        if (!isValid) {
            window.scrollTo(0,0);
            notifications('#register .errorDiv', '<p class="error">!! Please fill in all mandatory (*) fields</p>');
        }
        else {
          var str = $("#ajaxForm").serialize();
          $.post("/ajax/oManager.aspx?action=createAccount&" + str, function(data){
            if (data) {
                window.scrollTo(0,0);
                ajaxPost("ajaxbasket", "/ajax/ajaxCheckout.aspx");
            }
            else {
                window.scrollTo(0,0);
                notifications('#register .errorDiv', '<p class="error">!! Sorry, there was an error creating your customer account, please try again later</p>');
            }
          });           
        }
        
        $('body').css('cursor', 'default');
        
    }
    
    
    function login() {
        $('body').css('cursor', 'wait'); 
        $("#login .errorDiv").empty();
        var isValid = true;
        $("#login input.mand").each(function() { 
            if ($(this).val() == "") {
                isValid = false;
                $(this).addClass('invalid');
            }
            else {
               $(this).removeClass('invalid'); 
            }
        });
        
        if (!verifyEmailAddress("email", "login", false))
        {
           isValid = false;
        }    
        
        if (!isValid) {
            notifications('#login .errorDiv', '<p class="error">!! Please fill in all mandatory (*) fields</p>');
        }
        else {
            $.post("/ajax/ajaxLogin.aspx?email=" + $("#email").val() + "&password=" + $("#password").val(), function(data){
                if (data) {
                    window.scrollTo(0,0);
                    ajaxPost("ajaxbasket", "/ajax/ajaxCheckout.aspx");                 
                }
                else {
                    $("#password").val("");
                    notifications('#login .errorDiv', '<p class="error">!! Login failed, please check your email and password</p>');
                }
             });
         }
       $('body').css('cursor', 'default')
    }
    
    function proceedToCheckout() {
      $.post("/ajax/ajaxPurchaseForm.aspx", function(data){
        if (data.length > 0) {
            window.scrollTo(0,0);
            $("#ajaxbasket").empty();
            $("#ajaxbasket").append(data);
            //$("#ePDQform").submit();
        }
        });
    }
    
    function editAccount() {
//      $.post("/ajax/ajaxCheckout.aspx?action=edit", function(data){
//        if (data.length > 0) {
//            window.scrollTo(0,0);
//        }
//        });
        ajaxPost("ajaxbasket", "/ajax/ajaxCheckout.aspx?action=edit");
        window.scrollTo(0,0);
    }
    
    
    var waspostage = false;
    var inerror = false;
    
    function ajaxPost(inID, inURL) {
        $.post(inURL, function(data){
            if (data.length > 0) {
                if (inID == "item_Price") {
                     $("#priceDynamic").val(data);
                     return false;
                }
                $("#" + inID).empty();
                $("#" + inID).html(data);
                if (inID == "ajaxbasket") {
                    $("#useInvoice").click(
                    function(objEvent){
                        autoPopDeliveryAddress(this.checked);
                    }
                    );
                    // START bind postage selector
                    var jSelector = $(".postage");
                    jSelector.change(
                        function(objEvent){
                            var postageID = $('option:selected', this).val();
                            $.post("/ajax/ajaxDelivery.aspx?postageID=" + postageID, function(data){
                                if (data) {
                                    wasupdate = true;
                                    waspostage = true;
                                    ajaxPost("ajaxbasket", "/ajax/ajaxBasket.aspx");
                                    ajaxPost("topboxitems", "/ajax/ajaxSmallBasket.aspx");
                                }
                            });    
                        }
                    );
                    // END bind postage selector         
                    if (wasupdate) {
                        if (waspostage) {
                            notificationsSlide('basketErrors', '<p class="error">your order has been updated (postage method changed)...</p>')
                            waspostage = false;
                        }
                        else {
                            notificationsSlide('basketErrors', '<p class="error">your order has been updated...</p>')
                        }
                        wasupdate = false;
                     }                       
                }

                
            }
        });              
    }
    
    function signUp() {
            window.scrollTo(0,0);
            toggleDialog(true, '');
            ajaxPost("dialog", "/ajax/ajaxSignUp.aspx");
    }
    
    function subscribe() {
            document.ajaxForm.action = "http://news.aztecevents.co.uk/interface/list.php";
            document.ajaxForm.submit();
    }
    
    function addToBasket(isTicketSale, inPointerID) {
      
      if (isTicketSale) {
            window.scrollTo(0,0);
            toggleDialog(true, '');
            ajaxPost("dialog", "/ajax/ajaxDialog.aspx?action=tickets&pointerid=" + inPointerID);
      }
      else {
          var str = $("#ajaxForm").serialize(); 
          $.post("/ajax/oManager.aspx?" + str, function(data){
            if (data) {
                window.scrollTo(0,0);
                toggleDialog(true, '');
                var pid = inPointerID;
                if (pid == "" || pid == "undefined") {
                    pid = $('#pID').val();
                }
                ajaxPost("dialog", "/ajax/ajaxDialog.aspx?action=added&pointerid=" + pid + "&qty=" + $('#qty').val() + "&" + str);
            }
          });
      }
    }
    
    function removeItem(inID) {
        $.post("/ajax/oManager.aspx?oIID=" + inID + "&qty=0", function(data){
            if (data) {
                ajaxPost("topboxitems", "/ajax/ajaxSmallBasket.aspx");
                ajaxPost("ajaxbasket", "/ajax/ajaxBasket.aspx");
            }
          });
    }
    
    function logOut() {
        $.post("/ajax/logOut.aspx", function(data){
            if (data) {
                document.location = "/page.aspx";
            }
          });
    }

    var wasupdate = false;

    
    function updateBasket() {
    
        var doPost = true;
    
        $("input.qty").each(function() { 
            if (!isInt($(this).val())) {
                notifications('basketErrors', '<p class="error">please enter a valid order quantity..</p>');
                inerror = true;
                doPost = false;
            }
        }); 
        
       if (doPost) {
          var str = $("#ajaxForm").serialize();
          $.post("/ajax/oManager.aspx?action=update&" + str, function(data){
            if (data) {
                wasupdate = true;
                ajaxPost("ajaxbasket", "/ajax/ajaxBasket.aspx");
            }
          });
      }
    }
    
    function notifications(inTarget, inMessage) {
        $("#" + inTarget).slideUp(250);
        $("#" + inTarget).html(inMessage);
        $("#" + inTarget).slideDown(250);
    }
    
    function notificationsSlide(inTarget, inMessage) {
        $("#" + inTarget).html(inMessage);
        $("#" + inTarget).slideDown(250);
        setTimeout("clearNotification()", 4000);
    }
    
    function clearNotification(inTarget) {
     $('#basketErrors').slideUp(350);
    }
    
    function doToggleDialog(which) {
        if (which) {
            $("#darkside").removeClass('hidden');
            $("#dialogWrapper").removeClass('hidden');
        }
        else {
            $("#darkside").addClass('hidden');
            $("#dialogWrapper").addClass('hidden');
        }
    }
    
    function toggleDialog(which, moveToID) {
        doToggleDialog(which);
        if (moveToID.length > 0) {
            location.replace(moveToID);
        }
    }
    
    function priceSet(percentage) {
        alert(percentage);
    }
    
    function getPercentageChanges() {
        var valArray = $('input.percentageSwitch:radio').serializeArray();
        var pointerStr = "";
        jQuery.each(valArray, function(i, field){
        if (pointerStr.length > 0) {
            pointerStr = pointerStr + ",";
        }
        pointerStr = pointerStr + field.value;
        });
        
        $(".select").each(function(index){
            if ($('option:selected', this).val() != "NULL") {
                if (pointerStr.length > 0) {
                    pointerStr = pointerStr + ",";
                }
                pointerStr = pointerStr + $('option:selected', this).val()
            }
        });
        
        return pointerStr;
    }
 

