var isNoted = false;
var note = 3;

dojox.Dialog.prototype.loadingMessage = '<img src="/images/ajax-loader.gif" alt="#"/>';

function setIO(u, target, callBack, formNode) {
    dojo.xhrPost({
        url: u,
        load: function(response, ioArgs) {
            if (target != null) {
                dijit.byId(target).setContent(response);
            }
            if (callBack != null)
                callBack(response);
        },
        form: dojo.byId(formNode)

    });
    if (target != null)
        dijit.byId(target).setContent('<img src="/images/ajax-loader.gif" alt="#"/>');
}
function setIOGet(u, target, callBack, formNode) {
    dojo.xhrGet({
        url: u,
        load: function(response, ioArgs) {
            if (target != null) {
                dijit.byId(target).setContent(response);
            }
            if (callBack != null)
                callBack(response);
        }
    });
    if (target != null)
        dijit.byId(target).setContent('<img src="/images/ajax-loader.gif" alt="#"/>');
}
function setIOAddProductToCart(u, target) {
    dojo.xhrPost({
        url: u + "&" + new Date().getTime(),
        load: function(response, ioArgs) {
            res = response.split("|");
            if (res[0] == 'ERROR') {
                aborted = true;
                if (dijit.byId('addToCartError') != null) {
                    dijit.byId('addToCartError').refresh();
                    dialog = dijit.byId('addToCartError');
                }
                else {
                    dialog = new dojox.Dialog({
                        closable:'none'
                    }, dojo.byId('addToCartError'));
                }
                dojo.byId('addToCartErrrorInfo').innerHTML = res[1];
                dialog.show();

            } else {
                dijit.byId(target).setContent(response);
            }
        }
    });
}
function showNode(id) {
    dojo.byId(id).style.display = '';
}
function hideNode(id) {
    dojo.byId(id).style.display = 'none';
}
function re() {
    return true;
}
function changeLocation(val) {
    window.location = val;
}
function checkZip(obj) {

    if (obj.value.length < 6) {
        if (dijit.byId('checkZipDialog') == null) {
            dialog = new dojox.Dialog({
                closable:'none'
            }, dojo.byId('checkZipDialog'));
        }
        else dialog = dijit.byId('checkZipDialog');
        dialog.show();
        return false;
    }

    return true;
}


function hideTooltips() {
    dojo.query("div.tooltip").forEach(function(node) {
        node.style.width = "0px";
        node.style.height = "0px";
        node.style.textIndent = "-99999px"
    });
}
function showTooltips() {
    dojo.query("div.tooltip").forEach(function(node) {
        node.style.width = "";
        node.style.height = "";
        node.style.textIndent = ""
    });
}
function checkContactForm(form, text) {
    if (text.value.length > 0) {
        profile = {
            trim: ["contactEmail", "contactFirstname","contactLastname", "contactPhone"],

            required: ["contactEmail"],

            constraints: {
                'contactEmail':[function() {
                    return dijit.byId('contactEmail').isValid()
                }],
                'contactPhone':[function() {
                    return dijit.byId('contactPhone').isValid()
                }]
            }
        }

        results = dojox.validate.check(form, profile);
        if (!results.isSuccessful()) {
            dialogFormError();

        }
        setIO('/ajax/wyslijEmailKontaktowy.do', 'dialogContactContentPane', null, 'dialogContactForm');
        return results.isSuccessful();
    }
    else {
        dialogFormError();
        return false;
    }
}

function checkFormPerson(form) {

    if (dojo.byId('user.statute').checked) {
        profile = {
            trim: ["user.email", "user.password","user.passwordConfirm",'user.loyalityCode'
                ,"user.firstname", "user.lastname"],
            required: ["user.email","user.password","user.passwordConfirm","user.firstname"
                ,"user.lastname"],
            constraints: {
                'user.email':[function() {
                    return !dojo.byId('user.email').invalidEmail && dijit.byId('user.email').isValid()
                }],
                'user.password':[function() {
                    return dijit.byId('user.password').isValid()
                }],
                'user.passwordConfirm':[function() {
                    return dijit.byId('user.passwordConfirm').isValid()
                }],
                'user.loyalityCode':[function() {
                    return dijit.byId('user.loyalityCode').isValid()
                }]
            }
        }

        results = dojox.validate.check(form, profile);
        if (!results.isSuccessful()) {
            dialogFormError();

        }

        return results.isSuccessful();
    }
    else {
        statuteErrorDialog();
        return false;
    }
}
function checkFormCompany(form) {
    if (dojo.byId('user.statute').checked) {
        profile = {
            trim: ["user.email", "user.password","user.passwordConfirm","user.loyalityCode","user.name","user.nip"
                ,"user.firstname", "user.lastname"],
            required: ["user.email", "user.password","user.passwordConfirm","user.name","user.nip"
                ,"user.firstname", "user.lastname"],

            constraints: {
                'user.email':[function() {
                    return !dojo.byId('user.email').invalidEmail && dijit.byId('user.email').isValid()
                }],
                'user.password':[function() {
                    return dijit.byId('user.password').isValid()
                }],
                'user.passwordConfirm':[function() {
                    return dijit.byId('user.password').isValid()
                }],
                'user.loyalityCode':[function() {
                    return dijit.byId('user.loyalityCode').isValid()
                }],
                'user.nip':[function() {
                    return dijit.byId('user.nip').isValid()
                }]
            }
        }
        results = dojox.validate.check(form, profile);
        if (!results.isSuccessful()) {
            dialogFormError();
        }
        return results.isSuccessful();
    }
    else {
        statuteErrorDialog();
        return false;
    }


}
dojo.declare(
        "dijit.form.ConfirmTextBox",
        dijit.form.ValidationTextBox,
{

    source: "",
    // Over-ride for integer validation
    isValid: function() {
        if (dojo.byId(this.source).value != this.domNode.value)
            return false;
        return true;
    }
}
        );
dojo.declare(
        "dijit.form.ZipCodeTextBox",
        dijit.form.ValidationTextBox,
{

    postCreate: function() {
        dijit.form.ZipCodeTextBox.superclass.postCreate.apply(this, arguments);
        MaskInput(this.domNode, '99-999');
    }
}
        );
dojo.declare(
        "dijit.form.EmailCheckTextBox",
        dijit.form.ValidationTextBox,
{
    current:null,
    postCreate: function() {
        c = this.current
        dijit.form.EmailCheckTextBox.superclass.postCreate.apply(this, arguments);
        this.domNode.onblur = function() {
            checkMail(c)
        };
    }
}
        );
function checkMail(current) {
    v = dijit.byId('user.email')
    if (v.isValid() && v.domNode.value != current && v.domNode.value.length > 0) {
        dojo.xhrPost({
            url: "/ajax/sprawdzMail.do?email=" + v.domNode.value,
            load: function(response, ioArgs) {
                if (response == "true") {
                    dojo.byId(v.messageId).innerHTML = "<span class=\"invalid\">E-mail istnieje już w bazie.</span>";
                    v.domNode.invalidEmail = true;
                } else {
                    dojo.byId(v.messageId).innerHTML = "";
                    v.domNode.invalidEmail = false;
                }
            }
        });
    } else if (v.domNode.value == current) {
        dojo.byId(v.messageId).innerHTML = "";
        v.domNode.invalidEmail = false;
    }
}
dojo.declare(
        "dijit.form.LoginCheckTextBox",
        dijit.form.ValidationTextBox,
{
    current:null,
    processing:false,
    postCreate: function() {
        c = this.current
        dijit.form.LoginCheckTextBox.superclass.postCreate.apply(this, arguments);
        this.domNode.onblur = function() {
            checkLogin(c)
        };
    }
}
        );
function checkLogin(current) {
    v = dijit.byId('user.login')
    v.processing = true;
    if (v.isValid() && v.domNode.value != current && v.domNode.value.length > 0) {
        dojo.xhrPost({
            url: "/ajax/sprawdzLogin.do?login=" + v.domNode.value,
            load: function(response, ioArgs) {
                if (response == "true") {
                    dojo.byId(v.messageId).innerHTML = "<span class=\"invalid\">Login istnieje już w bazie.</span>";
                    v.domNode.invalidEmail = true;
                } else {
                    dojo.byId(v.messageId).innerHTML = "";
                    v.domNode.invalidEmail = false;
                }
                v.processing = false;
            }
        });
    } else if (v.domNode.value = current) {
        dojo.byId(v.messageId).innerHTML = "";
        v.domNode.invalidEmail = false;
        v.processing = false;
    }
}

function submitAddAdress(form, formId, target) {
    profile = {
        trim: ["address.zipCode", "address.street","address.city","address.houseNr","address.appartmentNr", "address.phone","address.phoneTwo","address.personFirstname", "address.personLastname"],
        required: ["address.zipCode", "address.street","address.city","address.houseNr", "address.phone","address.personFirstname", "address.personLastname"],
        constraints: {
            'address.houseNr':[function() {
                return dijit.byId('address.houseNr').isValid()
            }],
            'address.zipCode':[function() {
                return dijit.byId('address.zipCode').isValid()
            }],
            'address.phone':[function() {
                return dijit.byId('address.phone').isValid()
            }],
            'address.phoneTwo':[function() {
                return dijit.byId('address.phoneTwo').isValid()
            }]
        }
    }
    results = dojox.validate.check(form, profile);
    if (!results.isSuccessful()) {
        dialogFormError();
    }
    else {
        if (formId == "editAddressForm") {
            setIO("/ajax/aktualizujAdres.do", "content_profile", null, formId);
        } else {
            addAdress(formId, target);
        }
    }

}

function addAdress(formId, target) {
    if (target != 'content_shoping_cart')
        setIO("/ajax/dodajAdres.do", target, null, formId)
    else {
        setIO("/ajaxzamowienie/dodajAdresWKoszyku.do", target, null, formId)
    }
}
function addNewOpinion(text, id, target, formName, orderId, nr) {
    if (isNoted && text.value.length > 0) {
        if (nr != null) {
            hideDialog('addOpinionDialog');
            setIO("/ajax/dodajOpinieDoProduktu.do?id=" + id + "&note=" + note, target, function() {
                setIO('/ajax/pokazZrealizowaneZamowienie.do?id=' + orderId + '&orderHistoryNr=' + nr, 'content_profile')
            }, formName);
        }
        else {
            setIO("/ajax/dodajOpinieDoProduktu.do?id=" + id + "&note=" + note, target, null, formName);
        }
        dialogAddOpinionSuccess();
    }
    else {
        dialogAddOpinionError();
    }
}
function setNote(mark, noteId, currentRating) {
    isNoted = true;
    note = mark;
    dojo.byId(currentRating).style.width = mark * 12 + "px";
}
function checkNotificationShopForm(form) {

    profile = {
        trim: ["notification.email", "notification.zipCode"],

        required: ["notification.email","notification.zipCode"],

        constraints: {
            'notification.email':[function() {
                return dijit.byId('notification.email').isValid()
            }],
            'notification.zipCode':[function() {
                return dijit.byId('notification.zipCode').isValid()
            }]
        }
    }
    results = dojox.validate.check(form, profile);
    if (!results.isSuccessful()) {
        dialogFormError();
    }
    else {
        setIO('/ajax/powiadomienieOOtwarciu.do', 'zipErrorDialog', null, 'noticicationShop');
    }
    return results.isSuccessful();
}
function checkClub(form) {
    profile = {
        trim: ["connoisseur.firstname", "connoisseur.lastname","connoisseur.street","connoisseur.houseNr","connoisseur.appartmentNr","connoisseur.city","connoisseur.zipCode", "connoisseur.province","connoisseur.birthDate", "connoisseur.gender","connoisseur.nameDate", "connoisseur.phone", "connoisseur.hobbies"],
        required: ["connoisseur.firstname", "connoisseur.lastname","connoisseur.street","connoisseur.houseNr","connoisseur.city","connoisseur.zipCode", "connoisseur.province","connoisseur.birthDate", "connoisseur.gender", "connoisseur.phone"],
        constraints: {
            'connoisseur.zipCode':[function() {
                return dijit.byId('club.zipCode').isValid()
            }],
            'connoisseur.birthDate':[function() {
                return dijit.byId('club.birthdate').isValid()
            }],
            'connoisseur.nameDate':[function() {
                return dijit.byId('club.namedate').isValid()
            }],
            'connoisseur.province':[function() {
                return dojo.byId('club.region').selectedIndex > 0;
            }],
            'connoisseur.gender':[function() {
                return dojo.byId('club.gender').selectedIndex > 0;
            }],
            'connoisseur.phone':[function() {
                return (dijit.byId('club.phone').isValid()&&dijit.byId('club.mobilephone').isValid()) &&
                       (!dijit.byId('club.phone')._isEmpty(dijit.byId('club.phone').getValue)
                        || !dijit.byId('club.mobilephone')._isEmpty(dijit.byId('club.mobilephone').getValue()));
            }]

        }
    }
    results = dojox.validate.check(form, profile);
    if (!results.isSuccessful()) {
        dialogFormError();
        return;
    }
    if (!dojo.byId("reg").checked) {
        statuteErrorDialog();
        return;
    }
    setIO('/ajax/rejestracjaDoKlubu.do', 'content_shoping_cart', function(res) {
        dialogClubSummary()
    }, 'clubConnoisseurForm');
    return results.isSuccessful();
}
function setRate(inote, inputName, currentRating) {
    dojo.byId(inputName).value = inote;
    dojo.byId(currentRating).style.width = inote * 12 + "px";
}
function checkOpinionForm(form) {

    profile = {
        trim: ["orderVO.completerOpinion", "orderVO.courierOpinion","orderVO.completerNote", "orderVO.courierNote"],
        required: ["orderVO.completerOpinion", "orderVO.courierOpinion"]
    }
    results = dojox.validate.check(form, profile);
    res = results.isSuccessful() && dojo.byId('orderVO.completerNote').value.length > 0 && dojo.byId('orderVO.courierNote').value.length > 0;
    if (!res) {
        dialogFormError();
    }
    return res;
}
function submitOpinion() {
    if (checkOpinionForm(dojo.byId("orderOpinionForm"))) {
        setIO('/ajax/dodajOpinieOZamowieniu.do', 'content_profile', null, 'orderOpinionForm');
    }
}
function checkComplaintForm(form) {

    profile = {
        trim: ["complaintContentVO.content"],
        required: ["complaintContentVO.content"]
    }
    results = dojox.validate.check(form, profile);
    res = results.isSuccessful();
    if (form.elements["complaintContentVO.content"].value.replace(/^\s+|\s+$/g, '').toLowerCase() == 'brak')
        res = false;
    if (!res) {
        dialogFormError();
    }
    return res;
}
function submitComplaint() {
    if (checkComplaintForm(dojo.byId("complaintForm"))) {
        setIO('/ajax/dodajReklamacje.do', 'content_profile', null, 'complaintForm');
    }
}
function submitComplaintContent(id) {
    if (checkComplaintForm(dojo.byId(id))) {
        setIO('/ajax/dodajOdpowiedzReklamacji.do', 'content_profile', null, id);
    }
}
function setMark(val) {
    if (val != currentMark && val != 'Wybierz markę...') {
        refreshCategory(_url, 'mark', val, 'products');
        currentMark = val;
    }
}
function refreshCategory(url, key, val, target, obj, className, sort, all) {
    val = encodeURIComponent(val);
    if (sort != null) {
        if (val == orderBy) {
            orderBy = val.split('_')[0] + "_ASC";
            val = orderBy;
            obj.style.background = "url('/images/sort-asc.gif') no-repeat bottom left";

        } else {
            orderBy = val;
            if (className != null) {
                dojo.query("a." + className).forEach(function(node) {
                    node.style.display = "";
                    node.style.background = "";
                    node.style.paddingLeft = "0";
                });
                obj.style.background = "url('/images/sort-desc.gif') no-repeat center left";
                obj.style.paddingLeft = "9px";
            }
        }
    }
    else {
        if (className != null) {
            dojo.query("a." + className).forEach(function(node) {
                node.className = className;
            });
            dojo.query("a." + className + " selected").forEach(function(node) {
                node.className = className;
            });
            if (all == null) {
                obj.className = className + " selected";
            }
        }
    }
    if (key.indexOf("filter") != -1 || key == "mark") {
        re = new RegExp("&?page=[0-9]*");
        url = url.replace(re, "");
    }
    if (url.indexOf(key) != -1) {
        s = key.replace("[", "\\[").replace("]", "\\]");
        re = new RegExp(s + "=[^&]*");
        if (val == '')
            url = url.replace(re, '');
        else
            url = url.replace(re, key + "=" + val);
    }
    else {
        if (val != '')
            url += "&" + key + "=" + val;
    }
    setIO(url, target);
}
function refreshProductsInPromotion(res) {
    setIO('/ajax/produktyWPromocji.do', 'recommend');
}
function recalculate(val, p, id) {
    id = id.split("_")
    dojo.byId(id[1]).value = (val.toFixed(2) + "").replace(/\./, ",");
}
function addToCartList() {
    dojo.xhrPost({
        url: '/ajax/dodajListeToKoszyka.do',
        load: function(response, ioArgs) {
            res = response.split("|");
            if (res[0] == 'ERROR') {
                aborted = true;
                if (dijit.byId('addToCartError') != null) {
                    dijit.byId('addToCartError').refresh();
                    dialog = dijit.byId('addToCartError');
                }
                else {
                    dialog = new dojox.Dialog({
                        closable:'none'
                    }, dojo.byId('addToCartError'));
                }
                dojo.byId('addToCartErrrorInfo').innerHTML = res[1];
                dialog.show();
                dijit.byId("dialogOrderList").setContent('<span style="font-size: 18px; color: #7f7f7f;">Dodano produkty do koszyka </span><br /><br /><a href="/zamowienie/koszyk.do" target="_parent">Proszę przejść do koszyka </a>');
                dijit.byId('shopping_cart').setContent(res[2]);
            } else {
                dijit.byId("dialogOrderList").setContent('<span style="font-size: 18px; color: #7f7f7f;">Dodano produkty do koszyka </span><br /><br /><a href="/zamowienie/koszyk.do" target="_parent">Proszę przejść do koszyka </a>');
                 dijit.byId('shopping_cart').setContent(response);
            }
        },
        form: dojo.byId('addListToCartForm')
    });
    dijit.byId("dialogOrderList").setContent('<img src="/images/ajax-loader.gif" alt="#"/>');
}
function addToCart(productId, count) {
    if (dijit.byId('shopping_cart') != null) {
        dojo.xhrPost({
            url: '/ajax/dodajDoKoszyka.do?id=' + productId + '&count=' + count,
            load: function(response, ioArgs) {
                res = response.split("|");
                if (res[0] == 'ERROR') {
                    aborted = true;
                    if (dijit.byId('addToCartError') != null) {
                        dijit.byId('addToCartError').refresh();
                        dialog = dijit.byId('addToCartError');
                    }
                    else {
                        dialog = new dojox.Dialog({
                            closable:'none'
                        }, dojo.byId('addToCartError'));
                    }
                    dojo.byId('addToCartErrrorInfo').innerHTML = res[1];
                    dialog.show();
                } else {
                    dijit.byId('shopping_cart').setContent(response);
                    dijit.byId('addToCartDialog').hide();
                }
            }
        });
    }

}
function refreshSearchResult(url, key, val, target, obj, className) {
    if (val == orderBy && val != '') {
        orderBy = val.split('_')[0] + "_ASC";
        val = orderBy;
        obj.style.background = "url('/images/sort-asc.gif') no-repeat left 60%";

    } else {
        orderBy = val;
        if (className != null) {
            dojo.query("a." + className).forEach(function(node) {
                node.style.background = "";
                node.style.paddingLeft = "0";
            });
            obj.style.background = "url('/images/sort-desc.gif') no-repeat left 60%";
            obj.style.paddingLeft = "13px";
        }
    }
    if (url.indexOf(key) != -1) {
        s = key.replace("[", "\\[").replace("]", "\\]");
        re = new RegExp(s + "=[^&]*");
        url = url.replace(re, key + "=" + val);
    }
    else {
        if (val != '') {
            url += "&" + key + "=" + val;
        }
    }
    setIO(url, target);
}
function delProduct(id) {
    setIO("/ajax/usunZKoszyka.do?id=" + id, 'content_shoping_cart', function() {
        changeDisplayedPrice();
    });
}
function dialogSaveOrderAsOrderList() {
    if (dijit.byId('saveOrderAsOrderListDialog') != null) {
        dijit.byId('saveOrderAsOrderListDialog').refresh();
        dialog = dijit.byId('saveOrderAsOrderListDialog');
    }
    else {
        dialog = new dojox.Dialog({
            href: "/ajaxzamowienie/dialogZapiszZamowienieJakoListeZakupowa.do"
        }, dojo.byId('saveOrderAsOrderListDialog'));
    }
    dialog.show();
}
function changeCutting(e) {
    id = e.name.split('_')[1];
    old = dojo.byId('old_' + id);
    if (e.type == 'text') {
        dojo.byId('no_' + id).checked = "";
        dojo.byId('cut_' + id).checked = "";
    } else {
        if (old.value != e.value) {
            t = dojo.byId('other_' + id);
            t.value = "";
            setIO("/ajax/krojenie.do?id=" + id + "&comment=" + e.value);
        }
    }
    old.value = e.value;
}
function changeCuttingComment(e) {
    id = e.name.split('_')[1];
    old = dojo.byId('old_' + id);
    if (e.value != '' && old.value != e.value) {
        dojo.byId('no_' + id).checked = "";
        dojo.byId('cut_' + id).checked = "";
        setIO("/ajax/krojenie.do?id=" + id + "&comment=" + e.value);
        old.value = e.value;
    }
}
function checkCuttingOk() {
    dojo.xhrGet({
        url: '/ajax/krojoneOK.do?' + new Date().getTime(),
        load: function(response, ioArgs) {
            if (response == 'true') {
                changeLocation('/zamowienie/adresOdbiorcy.do');
            } else {
                dialogCuttingError();
            }
        }
    });
}
function recalculateCart(val, p, id) {
    if (!processing) {
        aborted = false;
        processing = true;
        val = (val.toFixed(2) + "").replace(/\./, ",");
        dojo.xhrPost({
            url: "/ajax/zmienIloscWKoszyku.do?id=" + id + "&count=" + val,
            sync: true,
            load: function(response, ioArgs) {
                res = response.split("|");
                if (res[0] == 'ERROR') {
                    if (dijit.byId('addToCartError') != null) {
                        dijit.byId('addToCartError').refresh();
                        dialog = dijit.byId('addToCartError');
                    }
                    else {
                        dialog = new dojox.Dialog({
                            closable:'none'
                        }, dojo.byId('addToCartError'));
                    }
                    dojo.byId('addToCartErrrorInfo').innerHTML = res[1];
                    dialog.show();
                    aborted = true;
                } else {
                    dojo.byId('price_' + id).value = res[0];
                    dojo.byId('priceTwo').innerHTML = res[1];
                    if (dojo.byId('toFree') != null) {
                        dojo.byId('toFree').innerHTML = res[2];
                        dojo.byId('toFreeBottom').innerHTML = res[2];
                    }
                }
                processing = false;
            },
            error: function(err) {
                aborted = true;
                processing = false;
            }
        });
        if (returnResult()) {
            return false;
        }
        return true;
    }
}
function removeProductFromOrderList(u,id,target) {	
		setIO(u,target,function(){
				setIO('/ajax/pokazListeZakupowa.do?id='+id,'content_profile');
			});	
}