function shopProductChangePicture(imageId, productId)
{
        productImages = $("shopProductImages_" + productId).childNodes;
        for (i=0; i<productImages.length; i++) {
            if (productImages[i].nodeName == "IMG") {
                $(productImages[i].id).style.display = productImages[i].id == "shopProductImage_" + productId + "_" + imageId ? "block" : "none";
            }
        }
}

function shopProductChangeLanguage(language, productId)
{
    languageList = $("shopLanguageList").childNodes;
    for (i = 0; i < languageList.length; i++) {
        if(languageList[i].nodeName == "LI"){
            $(languageList[i].id).style.backgroundColor = "white";
        }
    }
    $("shopFieldsLanguage_" + language).style.backgroundColor = "#ebebeb";
    table = $("shopProductFieldsDetails_" + productId);
    for (i = 0; i < table.rows.length; i++) {
        for (j = 1; j < table.rows[i].cells.length; j++) {
            currentCell = table.rows[i].cells[j];
            if (currentCell.id.substr(0,19) == "shopFieldDetails_" + language) {
                currentCell.style.display = "block";
            } else {
                currentCell.style.display = "none";
            }
        }
    }
}

function shopProductInit(productId)
{
    var productForm = $("shopProductForm" + productId);
    for (i = 0; i < productForm.length; i++) {
        currentField = productForm.elements[i];
        if (currentField.onfocus) {
            currentField.onfocus();
        }
    }
}

function shopProductSave(additionalData)
{
    shopProductInit(additionalData["productId"]);
    var productDetails = new Array();
    var fieldDetails = new Array();
    var productForm = $("shopProductForm" + additionalData["productId"]);
    for (i = 0; i < productForm.length; i++) {
        currentField = productForm.elements[i];

        if (currentField.isChanged) {
            if (!fieldDetails[currentField.fieldId]) {
                fieldDetails[currentField.fieldId] = new Array();
            }
            if (currentField.type == "checkbox") {
                fieldDetails[currentField.fieldId]["checked"] =currentField.checked;
                fieldDetails[currentField.fieldId]["fieldName"] = currentField.fieldName;
            } else {
                if (currentField.language) {
                    if (!fieldDetails[currentField.fieldId]["language"]) {
                        fieldDetails[currentField.fieldId]["language"] = new Array();
                    }
                    fieldDetails[currentField.fieldId]["language"][currentField.language] = currentField.value;
                } else {
                    if (!fieldDetails[currentField.fieldId]["value"]){
                        fieldDetails[currentField.fieldId]["value"] = new Array();
                    }
                    fieldDetails[currentField.fieldId]["value"] = currentField.value;
                }
            }
        } else {
            if (currentField.id == "shopComingSoon_" + additionalData["productId"]) {
                productDetails["comingSoon"] = currentField.checked;
            }
            if (currentField.id == "shopIsOffer_" + additionalData["productId"]) {
                productDetails["specialOffer"] = currentField.checked;
            }
        }
    }
    productDetails["fieldDetails"] = fieldDetails;
    return productDetails;
}

function shopProductUpdateFields(productId, fieldId, dependsOnLanguage, fieldObject)
{
    fieldObject.isChanged = true;
    var fieldDetails = new Array();
    var fieldValueId = new RegExp("shopFieldValue_[a-zA-Z]{2}_" + productId + "_" + fieldId, "g");
    var productForm = $("shopProductForm" + productId);
    for (i = 0; i < productForm.length; i++) {
        updatedField = productForm.elements[i];
        if (updatedField.id.match(fieldValueId)) {
            if (!dependsOnLanguage) {
                updatedField.value = fieldObject.value;
            }
            $(productId + "_" + fieldId).checked = true;
            $(productId + "_" + fieldId).onchange();
        }
    }


}

function shopProductUpdate(additionalData, productDetails)
{
    var productId = additionalData["productId"];
    var language = additionalData["language"];

    if (productDetails["comingSoon"] == true) {
        $("shopComingSoon_" + productId).style.display = "block";
        $("shopCart_" + productId).style.display = "none";
    } else {
        $("shopComingSoon_" + productId).style.display = "none";
        $("shopCart_" + productId).style.display = "block";
    }
    var detailHtml = "";

    var productForm = $("shopProductForm" + productId);
    for (i = 0; i < productForm.length; i++) {
        field = productForm.elements[i];
        if (field.type == "checkbox") {
            if (field.checked) {
                if (field.fieldId) {
                    if ($("shopFieldValue_" + language + "_" + productId + "_" + field.fieldId).value) {
                        detailHtml += field.fieldName + ": " + $("shopFieldValue_" + language + "_" + productId + "_" + field.fieldId).value + "<br>";
                    }
                }
            }
        }
    }
    $("shopProductDetails_" + productId).innerHTML = detailHtml;
}

function addNewProduct()
{
    ApOnListAddEditor.add("shopProducts", "first");
}

function shopAddNewPicture(productId)
{
    ApOnListAddEditor.add("shopProductImages_" + productId, "first");
}

function addToCart(productId, quantity, confirmMessage)
{
    if (confirm(confirmMessage)) {
        ApOnAjax.addProductToCart(productId, quantity, addToCartCallback);
    }
}

function addToCartCallback(response)
{
    if ($("shoppingCartItems")) {
        $("shoppingCartItems").innerHTML = ($("shoppingCartItems").innerHTML - 0) + 1;
    }
}

function shopUpdateQuantityAndPrice(price)
{
    $('shopCartTotalPrice').innerHTML = ($('shopCartTotalPrice').innerHTML - 0) + (price - 0);
}

function shopOptionValues()
{
    var values = new Array();
    values["before"] = $("txtShopCurrencyBefore").value;
    values["after"]  = $("txtShopCurrencyAfter").value;
    //payment
    values["shopPaymentMode"]                     = $("shopPaymentMode").options[$("shopPaymentMode").selectedIndex].value;
    values["shopPaymentGoogleCheckout"]           = $("paymentOptionGoogleCheckout").checked;
    values["shopPaymentGoogleCheckoutMerchantId"] = $("paymentOptionGoogleCheckoutMerchantId").value;
    values["shopPaymentPaypal"]                   = $("paymentOptionPaypal").checked;
    values["shopPaymentPaypalId"]                 = $("paymentOptionPaypalId").value;
    values["shopPaymentCreditCard"]               = $("paymentOptionCreditCard").checked;
    values["shopPaymentBankTransfer"]              = $("paymentOptionBankTransfer").checked;
    return values;
}

function shopOptionValidate()
{
    if (!($("paymentOptionGoogleCheckout").checked || $("paymentOptionPaypal").checked || $("paymentOptionCreditCard").checked || $("paymentOptionBankTransfer").checked)) {
        alert("Please choose at least one payment method");
        return false;
    }
    return true;
}
