﻿var doDelayClose = false

function pausecomp(millis) {
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); }
    while (curDate - date < millis);
}

$(document).ready(function() {

    $('[name="Qty"]').click(function() {
        this.focus();
        this.select();
    });

    $("#intobasket").bind("dialogbeforeclose", function(event, ui) {
        $(this).css('position', 'absolute');
    })
    .dialog({
        bgiframe: true,
        title: 'Add to basket',
        width: 200,
        autoOpen: false,
        modal: true,
        open: function(event, ui) {
            $(this).css({ 'position': 'relative' });
        }
    });

    $("#intoMatrix").bind("dialogbeforeclose", function(event, ui) {
        $(this).css('position', 'absolute');
    })
    .dialog({
        bgiframe: true,
        title: 'Add to basket',
        width: 500,
        height: 300,
        autoOpen: false,
        modal: true,
        open: function(event, ui) {
            $(this).css({ 'position': 'relative' });
        }
    });


    $("#basketConfirm").bind("dialogbeforeclose", function(event, ui) {
        $(this).css('position', 'absolute');
    })
    .html("The Product has been added to your basket")
    .dialog({
        bgiframe: true,
        title: 'Add to basket',
        width: 200,
        autoOpen: false,
        modal: true,
        open: function(event, ui) {
            $(this).css({ 'position': 'relative' });
        }
    });

    //TOPNAV VISUALS
    var controlId
    function showTab() {
        $("#" + controlId + "Nav").show();

        if (controlId == "conceptStore") {
            $("#" + controlId + " a").css('background-position', '0px -38px');
        }
        else {
            $("#" + controlId + " a").css('background-position', '0px -34px');
        }
    }

    //END TOP NAV

    var $sects = $(".section").equalizeCols().find(".b, .bl, .br").each(function(i) {
        var thisHeight = $(this).parents(".section").height();
        $(this).height(thisHeight);
    });

    // requires jquery.onfontresize.js
    $(document).bind("fontresize", function() {
        $sects.equalizeCols().find(".b, .bl, .br").each(function(i) {
            var thisHeight = $(this).parents(".section").height();
            $(this).height(thisHeight);
        });
    });

    //quicksearch validation
    $("#quicksearchlink").click(function() {
        if ($("#keyword").val() != $("#defaultSearch").val()) {
            if ($("#keyword").val() != "") {
                $("#quickSearchForm").submit();
            }
        }
    });

    var $askQ = $("#askQ")
		   .dialog({
		       bgiframe: true,
		       title: 'Ask a Question',
		       buttons: {
		           "Close": function() {
		               $(this).dialog("close");
		           }
		       },
		       width: 600,
		       autoOpen: false,
		       modal: true
		   });

    var $eFnd = $("#eFnd")
		   .dialog({
		       bgiframe: true,
		       title: 'Send an Email to a Friend',
		       buttons: {
		           "Close": function() {
		               $(this).css('position', 'absolute').dialog("close");
		           }
		       },
		       width: 600,
		       autoOpen: false,
		       modal: true
		   });

    $("#sendfriendLink").click(function() {
        $eFnd.css('position', 'relative').dialog('open');
        return false;
    });
    $("#askquestionlink").click(function() {
        $askQ.css('position', 'relative').dialog('open');
        return false;
    });

    $(function() {
        var zoomoptions = {
            zoomWidth: 366,
            zoomHeight: 348,
            xOffset: -34,
            yOffset: -25,
            position: "left"
        };
        $(".jqzoom").jqzoom(zoomoptions);
    });

    $("#friendSend").click(function() {
        if (ValidateCustomForm('TellFriendForm', 'TellFriendValidationResult')) {
            $(".errortable").hide();
            var hasError = false;
            var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

            var emailToVal = $("#FriendEmail").val();
            if (!emailReg.test(emailToVal)) {
                $("#FriendEmail").after('<span class="errortable">&nbsp;Invalid email</span>');
                hasError = true;
            }
            var emailFromVal = $("#Text1").val();
            if (!emailReg.test(emailFromVal)) {
                $("#Text1").after('<span class="errortable">&nbsp;Invalid email</span>');
                hasError = true;
            }

            if (hasError == false) {
                $("#friendSend").hide();
                $("#friendSend").after('<img src="/js/images/loading-bar-black.gif" alt="Loading" class="loading" />');

                var url = $("#formaction").val();
                var _YourName = $("#YourName").val();
                var _FriendName = $("#Text2").val();
                var Message = $("#Message").val();
                var ProductID = $("#ProductID").val();

                pausecomp(1000);

                $.post(url,
                  { _FriendEmail: emailToVal, _YourEmail: emailFromVal, Message: Message, ProductID: ProductID, _YourName: _YourName, _FriendName: _FriendName },
   	                    function(data) {
   	                        $("#friendSend").hide();
   	                        $(".loading").hide();
   	                        $("#submitFriendCell").append('<span class="errortable">&nbsp;Success, your email has been sent</span>');
   	                    }
                );

            }

        }
    });


    $("#questionSend").click(function() {
        if (ValidateCustomForm('AskQuestionForm', 'SendQuestionValidationResult')) {
            $(".errortable").hide();
            var hasError = false;
            var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

            var questionEmail = $("#questionEmail").val();
            if (!emailReg.test(questionEmail)) {
                $("#questionEmail").after('<span class="errortable">&nbsp;Invalid email</span>');
                hasError = true;
            }

            if (hasError == false) {
                $("#questionSend").hide();
                $("#questionSend").after('<img src="/js/images/loading-bar-black.gif" alt="Loading" class="loading" />');

                var url = $("#questionformaction").val();
                var questionName = $("#questionName").val();
                var questionTel = $("#questionTel").val();
                var questionComments = $("#questionComments").val();
                var Subject = $("#questionSubject").val();
                var ProductID = $("#questionProductID").val();
                var StockCode = $("#questionStockCode").val();
                var Validate = "false";
                var EmailTemplateName = $("#QuestionEmailTemplateName").val();
                var Recipients = $("#questionRecipients").val();


                pausecomp(1000);

                //alert("_name " + questionName +
                //"\n _email " + questionEmail +
                //"\n _comments " + questionComments +
                //"\n telephone " + questionTel +
                //"\n StockCode " + StockCode +
                //"\n Subject " + Subject +
                //"\n Validate " + Validate +
                //"\n EmailTemplateName " + EmailTemplateName +
                //"\n Recipients " + Recipients +
                //"\n url " + url +
                //"\n ProductID " + ProductID);

                $.post(url,
                  { _name: questionName,
                      _email: questionEmail,
                      _comments: questionComments,
                      telephone: questionTel,
                      ProductID: ProductID,
                      StockCode: StockCode,
                      Subject: Subject,
                      Validate: Validate,
                      EmailTemplateName: EmailTemplateName,
                      Recipients: Recipients

                  },
   	                    function(data) {
   	                        // alert(data);
   	                        $("#questionSend").hide();
   	                        $(".loading").hide();
   	                        $("#submitQuestionCell").append('<span class="errortable">&nbsp;Success, your email has been sent</span>');
   	                    }
                );

            }

        }
    });

    function getVals(link) {

        var qty = '';
        var pid = '';
        var action = '';
        var doAction = false;

        if (link.indexOf("?") != -1) {
            var query = link.split("?")[1];

            eval("query = {" + query.replace(/&/ig, "\",").replace(/=/ig, ":\"") + "\"};");

            doAction = true;

            if (query.action) {
                action = unescape(query.action);
                if (query.id) {
                    pid = unescape(query.id);
                }
            }
            else {
                doAction = false;
            }
            switch (action) {
                case "add":
                    if (pid == '') {
                        doAction = false;
                    }
                    break;
                case "change":
                    if (pid == '') {
                        doAction = false;
                    }
                    else {
                        if (query.qty) {
                            qty = unescape(query.qty);
                        }
                        else {
                            qty = 0;
                        }
                    }

                    break;
                default:
            }
        }
        return { pid: pid, qty: qty, action: action, doAction: doAction };
    }

    // ADD TO BASKET 
    $(".basket_action").click(function() {

        var link = $(this).attr('href');
        var vals = getVals(link);

        if (vals.doAction == true) {


            $("#intobasket").dialog('open');
            var url = "/Ajax/basket.asp";

            jQuery.post(url,
                  {
                      action: vals.action,
                      Id: vals.pid,
                      qty: vals.qty

                  },
                    function(data) {

                        //alert("data: " + data);

                        var bits = data.split("~");

                        $("#spnBasketTotal").html(bits[0]);
                        $("#spnBasketCount").html(bits[1]);

                        if (bits[1] > 0) {
                            $("#MiniCheckoutButtons").show();
                        }
                        else {
                            $("#MiniCheckoutButtons").hide();
                        }

                        jQuery.post(url,
                       {
                           action: "getbasket"
                       },
                            function(data) {
                                $("#minibasket_rows").html(data);
                                showBasket();
                                $("#intobasket").dialog('close');

                            }
                        );

                    }
                );
        }
        return false;
    });

    // ADD TO BASKET MATRIX
    $(".basket_action_matrix").click(function() {

        var link = $(this).attr('href');
        var vals = getVals(link);

        if (vals.doAction == true) {

            $("#intobasket").dialog('open');
            var url = "/Ajax/miniMatrix.asp";

            jQuery.post(url,
              {
                  EventType: vals.action,
                  ProductID: vals.pid,
                  Quantity: vals.qty

              },
                function(data) {
                    if (data.substr(0, 5) != 'error') {
                        $("#intobasket").dialog('close');
                        $("#intoMatrix").html(data);
                        $("#intoMatrix").dialog('open');
                    }
                    else {
                        alert(data);
                        $("#intobasket").dialog('close');
                    }
                }
            );
        }
        return false;
    });

    // ADD TO BASKET MATRIX FOR TRADE
    $(".basket_action_matrix_multi").click(function() {
        return false;
    });


    $("#basket_details").hoverIntent(
        function() { $(this).css('cursor', 'pointer'); },
        function() { $(this).css('cursor', 'auto'); }
    );

    $("#basket_details").click(function() {
        var open = $("#basket-inner").css("display");
        //alert("open: " + open);
        if (open == "none") {
            showBasket();
        }
        else {
            hideBasket();
        }
    });

    $("#basket-inner").mouseenter(
        function() { doDelayClose = false; }
    );


    $("#basket-inner").mouseleave(
        function() { doDelayClose = true; }
    );

});

function caniclose() {
    if (doDelayClose == true) {
        hideBasket();
    }
    else {
        ajaxDelay(3);
    }
}

function hideBasket() {
    $("#basket-inner").hide('slow');
    doDelayClose = false;
}

function showBasket() {
    $("#basket-inner").show('slow');
    doDelayClose = true;
    ajaxDelay(3);
}

function ajaxDelay(secs) {
    var url = "/Ajax/wait.asp";

    jQuery.post(url,
      {
          wait: secs

      },
        function(data) {
            //alert(data);
            if (data == "ok") {
                caniclose();
            }

        }
    );
}


function SelectMiniMatrix() {
    var url = "/Ajax/basket.asp";
    var productId = $("#id").val();
    var matrixid = $("#MatrixID").val();
    var qty = $("#Qty").val();

    jQuery.post(url,
      {
          action: "add",
          Id: productId,
          matrixID: matrixid,
          qty: qty

      },
        function(data) {

            //alert("data: " + data);

            var bits = data.split("~");

            $("#spnBasketTotal").html(bits[0]);
            $("#spnBasketCount").html(bits[1]);

            if (bits[1] > 0) {
                $("#MiniCheckoutButtons").show();
            }
            else {
                $("#MiniCheckoutButtons").hide();
            }

            jQuery.post(url,
           {
               action: "getbasket"
           },
                function(data) {
                    $("#minibasket_rows").html(data);
                    showBasket();

                    $("#basketConfirm").dialog('open').dialog("moveToTop");
                    $("#intoMatrix").dialog('close');
                    $("#basketConfirm").dialog('close');

                }
            );
        }
    );

    $("#intoMatrix").dialog('close');
}

//Quantity Selector Functions
function minusone(id) {

    var minQty = $("#minQty" + id).val();
    var Qty = $("#Qty" + id).val();
    if (Qty == "") { Qty = 0 }
    Qty = parseInt(Qty) - 1;
    if (parseInt(Qty) < parseInt(minQty)) { Qty = minQty }
    $("#Qty" + id).val(Qty);
}
function addone(id) {
    
    var maxQty = $("#maxQty" + id).val();
    var Qty = $("#Qty" + id).val();
    if (Qty == "") { Qty = 0 }
    Qty = parseInt(Qty) + 1;
    if (parseInt(Qty) > parseInt(maxQty)) { Qty = maxQty }
    $("#Qty" + id).val(Qty);
}

function checkQty(id) {

    var i;
    var s = $("#Qty" + id).val();
    var bag = '1234567890';
    var Qty = "";
    var minQty = $("#minQty" + id).val();
    var maxQty = $("#maxQty" + id).val();

    for (i = 0; i < s.length; i++) {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) Qty += c;
    }
    if (Qty == "") { Qty = 1 }
    if (parseInt(Qty) < parseInt(minQty)) { Qty = minQty }
    if (parseInt(Qty) > parseInt(maxQty)) { Qty = maxQty }

    $("#Qty" + id).val(Qty);
}
