﻿var productID_current = 0;
var productUrl_current = "";
var hidePrice = 0;

$().ready(function() {
LoadMiniCart();
HighlightMenu();
});
function HighlightMenu() {
    try {
        var ctl = "#nav" + navOn;
        //alert(ctl);
        $(ctl).addClass('on');
    }
    catch (err) {
        $("#ctl00_MiniCart_hlCart").addClass('on');
    }
}

function showMe(which) {
    show = document.getElementById(which);
    show.style.visibility = "visible";
}

function hideMe(which) {
    show = document.getElementById(which);
    show.style.visibility = "hidden";
}

//callback function to bring a hidden box back
function callback() {
    setTimeout(function() {
        $("#msg_1:visible").removeAttr('style').hide().fadeOut();
        $("#dialogEmail").dialog('close');
    }, 2000);
};
function checkMinLength(o, n, min, ctl) {

    if (o.val().length < min) {
        o.addClass('ui-state-error');
        updateTipsC("Field " + n + " is required!", ctl);
        return false;
    } else {
        return true;
    }

}

function checkLength(o, n, min, max) {

    if (o.val().length > max || o.val().length < min) {
        o.addClass('ui-state-error');
        updateTips("Length of " + n + " must be between " + min + " and " + max + ".");
        return false;
    } else {
        return true;
    }

}
function updateTipsC(t, ctl) {
    ctl.text(t);
}
function checkRegularExpression(o, regexp, n, ctl) {
    if (!(regexp.test(o.val()))) {
        o.addClass('ui-state-error');
        updateTipsC(n, ctl);
        return false;
    } else {
        return true;
    }
}

function checkRegexp(o, regexp, n) {
    if (!(regexp.test(o.val()))) {
        o.removeClass('quantity');
        o.addClass('ui-state-error');
        updateTips(n);
        return false;
    } else {
        return true;
    }
}

function InitCart() { }
function LoadMiniCart() {
    var carturl = MiniCartPath;
    $.ajax({
        type: "POST",
        url: carturl + '/GetCart',
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: AjaxSucceeded,
        error: AjaxFailed
    });
}

function AjaxSucceeded(result) {
    //alert(result);
    var myObject = eval('(' + result + ')');
    var count = myObject[0].Count;
    var data = myObject[1].Data;
    //var nodes = msg.split(';');
    var hlCart = 'shopping cart(' + count + ')';
    //var content = nodes[1];
    $('#MiniCart_hlCart').html(hlCart);
    $('#ctl00_MiniCart_hlCart').html(hlCart);
    if (count == 0) {
        data = "<h2>currently, your shopping cart is empty.</h2>";
        $('#MiniCart').html(data);
    }
    else {
        //alert(data[0].ID);
        $('#MiniCart').setTemplateURL('jTemplates/MiniCart.htm', [], {filter_data: false});
        $('#MiniCart').processTemplate(data);
    }
}
function AjaxFailed(result) {
    alert(result.status + ' ' + result.statusText);
}

function quickLook(productID, pageName) {
    productID_current = productID;
    productUrl_current = pageName;
    var serviceUrl = QuickLookPath;
    $.ajax({
        type: "POST",
        url: serviceUrl + '/GetProduct',
        data: "{'token':'" + serviceToken + "', 'usrname':'" + username + "', 'ProductID':'" + productID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(result) {
        //alert(result);
            var myObject = eval('(' + result + ')');
            var response = myObject[0].Response;
            if (response == 0) {
                var data = myObject[1].Data;
                $('#quicklook').html(data);
                quantity = $('#quantity');
                tips = $('#validateTips');
                allFields = $([]).add(quantity).add(tips);
                hidePrice = $('#hidePrice').attr('value');
                $(":button:contains('Add to Cart')").attr("disabled", false);
                $(":button:contains('Add to Cart')").show();
                if (hidePrice == 1) {
                    $(":button:contains('Add to Cart')").hide();
                }
                $("#dialogEmail").dialog('open');
            }
            else {
                var data = myObject[1].Data;
                //alert(data);
                return false;
            }
        },
        error: function(result) {
            //alert(result.status + ' ' + result.statusText);
            return false;
        }
    });
}



function InitDialog() {
    $("#dialogEmail").dialog({
        bgiframe: true,
        height: 520,
        width: 700,
        modal: false,
        autoOpen: false,
        buttons:
		            {
		                "Add to Cart": function() {
		                    var bValid = true;
		                    allFields.removeClass('ui-state-error');
		                    updateTipsC("", tips);
		                    bValid = bValid && checkRegularExpression(quantity, /^[-+]?[1-9]\d*.?[0]*.?$/i, "Invalid quantity!", tips);
		                    if (bValid) {

		                        AddItemToCart();

		                    }

		                },
		                "ViewDetails": function() {
		                    $(this).dialog('close');
		                    location.href = baseUrl + '/details.aspx?pid=' + productUrl_current + '';
		                },
		                Cancel: function() {
		                    $(this).dialog('close');
		                }
		            },
        close: function() { allFields.val('').removeClass('ui-state-error'); }
    });
}

function AddItemToCart() {
    //alert(productID_current);
    var defaultValue = '';
    var price = 0;
    var weight = 0;
    var qt = 0;
    var optionGroupsCount = 0;
    var options = '';
    optionGroupsCount = $('#1optionsQuantity').attr('value');
    if (optionGroupsCount > 0) {
        for (i = 0; i < optionGroupsCount; i++) {
            var ctl = '1idOption' + i;
            var option = $("#" + ctl + " option:selected").attr('value');
            options += option + ',';
        }
    }
    var index = 0;
    var inStock = 1;
    
    qt = $('#quantity').attr('value');
    price = $('#price').attr('value');
    weight = $('#weight').attr('value');
    if (inStock > 0) {
        SendToServer(defaultValue, price, qt, optionGroupsCount, options, weight);
    }
    else {
        $('#msg_2').html("Product cannot be added to cart!");
        var options = {};
        var selectedEffect = 'blind';
        $("#msg_1").show(selectedEffect, options, 500, callback);
    }
    return false;
}

function SendToServer(defaultValue, price, qt, groups, options, weight) {
    //$('#loading').show();

    var serviceUrl = QuickLookPath;
    $.ajax({
        type: "POST",
        url: serviceUrl + '/AddToCart',
        data: "{'token':'" + serviceToken + "', 'usrname':'" + username + "', 'productID':'" + productID_current + "', 'priceOption':'" + defaultValue + "', 'price':'" + price + "', 'quantity':'" + qt + "', 'groups':'" + groups + "', 'options':'" + options + "', 'weight':'" + weight + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(result) {
        //alert(result);
            var myObject = eval('(' + result + ')');
            var response = myObject[0].Response;
            if (response == 0) {
                var data = myObject[1].Data;
                $('#msg_2').html(data);
                LoadMiniCart();
                var options = {};
                var selectedEffect = 'blind';
                $("#msg_1").show(selectedEffect, options, 500, callback);
            }
            else {
                var data = myObject[1].Data;
                $('#msg_2').html(data);
                //LoadMiniCart();
                var options = {};
                var selectedEffect = 'blind';
                $("#msg_1").show(selectedEffect, options, 500, callback);
                //alert(data);
                return false;
            }
        },
        error: function(result) {
            //alert(result.status + ' ' + result.statusText);
            $('#msg_2').html(result.status + ' ' + result.statusText);
            var options = {};
            var selectedEffect = 'blind';
            $("#msg_1").show(selectedEffect, options, 500, callback);
            return false;
        }
    });
}

