﻿var productID_current = 0;
var productUrl_current = "";
var hidePrice = 0;

$().ready(function() {
    LoadMiniCart();
});
//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(msg) {
    //alert(msg);
    var nodes = msg.split(';');
    var hlCart = 'My Cart ' + nodes[0] + ' items';
    var content = nodes[1];
    $('#MiniCart_hlCart').html(hlCart);
    $('#ctl00_MiniCart_hlCart').html(hlCart);
    $('#MiniCart').html(content);
}
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: "{'usrname':'" + username + "', 'ProductID':'" + productID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: AjaxProductSucceeded,
        error: AjaxProductFailed
    });
}
function AjaxProductSucceeded(msg) {
    var content = msg;
    //alert(msg);
    $('#quicklook').html(content);
    quantity = $('#quantity');
    tips = $('#validateTips');
    allFields = $([]).add(quantity).add(tips);
    //var buttons = $("#dialogEmail").dialog('option', 'buttons');
    //alert(buttons);
    //var firstButton = $('#dialogEmail button:first');
    //firstButton.addClass('ui-state-disabled');
    //$(":button:contains('Add to Cart')").attr("disabled", "disabled");
    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');
}
function AjaxProductFailed(result) {
    alert(result.status + ' ' + result.statusText);
}


function InitDialog() {
    $("#dialogEmail").dialog({
        bgiframe: true,
        height: 500,
        width: 720,
        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 + '/product/' + productUrl_current + '.aspx';
		                },
		                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 = 0;
    $("input[name*='rdlPriceOptions']").each(function() {
        if (this.checked == true) {
            inStock = 1;
            defaultValue = $("label[for*='" + this.id + "']").html();
            price = $(this).val();
            var ctl = 'rdlWeightOptions_' + index;
            weight = $("#" + ctl).attr('value');
            //alert(weight);
        }
        index += 1;
    });
    qt = $('#quantity').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: "{'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: AjaxAddSucceeded,
        error: AjaxAddFailed
    });
}
function AjaxAddSucceeded(msg) {
    //alert(msg);
    $('#msg_2').html(msg);
    //$("#dialogEmail").dialog('close');
    LoadMiniCart();
    var options = {};
    var selectedEffect = 'blind';
    $("#msg_1").show(selectedEffect, options, 500, callback);
    //$('#loading').hide();
    //$("#load").html(msg);
}
function AjaxAddFailed(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);
}