//Options for Everyone:
DisplayShippingColumn = true;
TaxByRegion = false;
TaxPrompt = '';
TaxablePrompt = '';
NonTaxablePrompt = '';
MinimumOrderPrompt = strMinOrder;

//Payment Processor Options:
PaymentProcessor = '';

//Options for Programmers:
OutputItemId = 'ID_';
OutputItemQuantity = 'QUANTITY_';
OutputItemPrice = 'PRICE_';
OutputItemName = 'NAME_';
OutputItemShipping = 'SHIPPING_';
OutputItemAddtlInfo = 'ADDTLINFO_';
OutputOrderSubtotal = 'SUBTOTAL';
OutputOrderShipping = 'SHIPPING';
OutputOrderTax = 'TAX';
OutputOrderTotal = 'TOTAL';
OutputOrderDiscountNum = 'DISCOUNTNUM';
OutputOrderDiscount = 'DISCOUNT';
OutputOrderDiscountSize = 'DISCOUNTSIZE';

AppendItemNumToOutput = true;
HiddenFieldsToCheckout = false;


function testKey(e) {
    var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);

    if (e.ctrlKey || e.altKey || key < 32) return true;

    key = String.fromCharCode(key);
    return /[\d]/.test(key);
}

function ShowWindow(text, width, height) {
    var width;
    var height;
    var text;
    var top;
    var left;

    if (width == "") width = "150";
    if (height == "") height = "100";
    if (text == "") text = "";

    // --------------- Browsers
    isDOM = document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
    isOpera = isOpera5 = window.opera && isDOM //Opera 5+
    isOpera6 = isOpera && window.print //Opera 6+
    isOpera7 = isOpera && document.readyState //Opera 7+
    isMSIE = document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+
    isMSIE5 = isDOM && isMSIE //MSIE 5+
    isNetscape4 = document.layers //Netscape 4.*
    isMozilla = isDOM && navigator.appName == "Netscape" //Mozilla & Netscape 6.*
    // -- Get height

    function getHeight() { // Получаем высоту рабочей области браузера
        if (isMSIE || isMozilla || isMSIE) send = document.documentElement.clientHeight;
        if (isOpera6 || isOpera7 || isOpera || isNetscape4) send = window.innerHeight;
        return send;
    }

    // -- Get width

    function getWidth() { // Получаем высоту рабочей области браузера
        if (isMSIE || isMozilla || isMSIE) send = document.documentElement.clientWidth;
        if (isOpera6 || isOpera7 || isOpera || isNetscape4) send = window.innerWidth;
        return send;
    }
    //-----------------------------
    if (document.getElementById('log') == null) {
        document.getElementsByTagName('body')[0].innerHTML += '<div id="log"></div>';
    }
    if (document.getElementById('notice') == null) {
        document.getElementsByTagName('body')[0].innerHTML += '<div id="notice"></div>';
    }


    var w = getWidth();
    var h = getHeight();
    var t = parseInt(document.documentElement.scrollTop, 10) + document.body.scrollTop;
    top = (h / 2) - (height / 2);
    left = (w / 2) - (width / 2);


    document.getElementById('log').style.height = h + 'px';
    document.getElementById('log').style.visibility = 'visible';
    document.getElementById('notice').style.visibility = 'visible';
    document.getElementById('notice').style.height = height + 'px';
    document.getElementById('notice').style.width = width + 'px';
    document.getElementById('log').style.top = t + 'px';
    document.getElementById('notice').style.top = t + top + 'px';
    document.getElementById('notice').style.left = left + 'px';
    document.getElementById('notice').innerHTML = text;
}

function HideWindow() {
    document.getElementById('notice').style.visibility = 'hidden';
    document.getElementById('log').style.visibility = 'hidden';
}

function replace_string(txt, cut_str, paste_str) {
    var reg = /cut_str/g
    var ht = txt.replace(reg, paste_str)
    return ht
}

//---------------------------------------------------------------------||
// FUNCTION:    CKquantity                                             ||

function CKquantity(checkString) {
    var strNewQuantity = "";

    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i + 1);
        if ((ch >= "0" && ch <= "9") || (ch == '.')) strNewQuantity += ch;
    }

    if (strNewQuantity.length < 1) strNewQuantity = "1";

    return (strNewQuantity);
}

//---------------------------------------------------------------------||
// FUNCTION:    getCookieVal                                           ||

function getCookieVal(offset) {
    var endstr = document.cookie.indexOf(";", offset);

    if (endstr == -1) endstr = document.cookie.length;
    return (unescape(document.cookie.substring(offset, endstr)));
}


//---------------------------------------------------------------------||
// FUNCTION:    FixCookieDate                                          ||

function FixCookieDate(date) {
    var base = new Date(0);
    var skew = base.getTime();

    date.setTime(date.getTime() - skew);
}


//---------------------------------------------------------------------||
// FUNCTION:    GetCookie                                              ||

function GetCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;

    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) return (getCookieVal(j));
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }

    return (null);
}


//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||

function SetCookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}


//---------------------------------------------------------------------||
// FUNCTION:    DeleteCookie                                           ||

function DeleteCookie(name, path, domain) {
    if (GetCookie(name)) {
        document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}


//---------------------------------------------------------------------||
// FUNCTION:    MoneyFormat                                            ||

function moneyFormat(input) {
    var dollars = Math.floor(input);
    var tmp = new String(input);

    for (var decimalAt = 0; decimalAt < tmp.length; decimalAt++) {
        if (tmp.charAt(decimalAt) == ".") break;
    }

    var cents = "" + Math.round(input * 100);
    cents = cents.substring(cents.length - 2, cents.length)
    dollars += ((tmp.charAt(decimalAt + 2) == "9") && (cents == "00")) ? 1 : 0;

    if (cents == "0") cents = "00";

    if (PriceFormat == "0,00") return (dollars + "." + cents)
    else return (dollars);

}


//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                         ||

function RemoveFromCart(RemOrder) {
    if (confirm(strRemove)) {
        NumberOrdered = GetCookie("NumberOrdered");
        for (i = RemOrder; i < NumberOrdered; i++) {
            NewOrder1 = "Order." + (i + 1);
            NewOrder2 = "Order." + (i);
            database = GetCookie(NewOrder1);
            SetCookie(NewOrder2, database, null, "/");
        }
        NewOrder = "Order." + NumberOrdered;
        SetCookie("NumberOrdered", NumberOrdered - 1, null, "/");
        DeleteCookie(NewOrder, "/");
        location.href = location.href;
    }
}
//---------------------------------------------------------------------||
// FUNCTION:    Clenineg the Cart                 ||
//---------------------------------------------------------------------||

function delCookie(name) {
    var expireNow = new Date();
    document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT" + "; path=/";
}



//---------------------------------------------------------------------||
// FUNCTION:    ChangeQuantity                                         ||

function ChangeQuantity(OrderItem, NewQuantity) {
    if (isNaN(NewQuantity)) {
        alert(strErrQty);
    } else {
        NewOrder = "Order." + OrderItem;
        database = "";
        database = GetCookie(NewOrder);

        Token0 = database.indexOf("|", 0);
        Token1 = database.indexOf("|", Token0 + 1);
        Token2 = database.indexOf("|", Token1 + 1);
        Token3 = database.indexOf("|", Token2 + 1);
        Token4 = database.indexOf("|", Token3 + 1);

        fields = new Array;
        fields[0] = database.substring(0, Token0);
        fields[1] = database.substring(Token0 + 1, Token1);
        fields[2] = database.substring(Token1 + 1, Token2);
        fields[3] = database.substring(Token2 + 1, Token3);
        fields[4] = database.substring(Token3 + 1, Token4);
        fields[5] = database.substring(Token4 + 1, database.length);

        dbUpdatedOrder = fields[0] + "|" + NewQuantity + "|" + fields[2] + "|" + fields[3] + "|" + fields[4] + "|" + fields[5];
        strNewOrder = "Order." + OrderItem;
        DeleteCookie(strNewOrder, "/");
        SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
        location.href = location.href;
    }
}


//---------------------------------------------------------------------||
// FUNCTION:    GetFromCart                                            ||

function GetFromCart(fShipping) {
    ManageCart();
}


//---------------------------------------------------------------------||
// FUNCTION:    RadioChecked                                           ||

function RadioChecked(radiobutton) {
    var bChecked = false;
    var rlen = radiobutton.length;
    for (i = 0; i < rlen; i++) {
        if (radiobutton[i].checked) bChecked = true;
    }
    return bChecked;
}


//---------------------------------------------------------------------||
// FUNCTION:    QueryString                                            ||
QueryString.keys = new Array();
QueryString.values = new Array();

function QueryString(key) {
    var value = null;
    for (var i = 0; i < QueryString.keys.length; i++) {
        if (QueryString.keys[i] == key) {
            value = QueryString.values[i];
            break;
        }
    }
    return value;
}

//---------------------------------------------------------------------||
// FUNCTION:    QueryString_Parse                                      ||

function QueryString_Parse() {
    var query = window.location.search.substring(1);
    var pairs = query.split("&");
    for (var i = 0; i < pairs.length; i++) {
        var pos = pairs[i].indexOf('=');
        if (pos >= 0) {
            var argname = pairs[i].substring(0, pos);
            var value = pairs[i].substring(pos + 1);
            QueryString.keys[QueryString.keys.length] = argname;
            QueryString.values[QueryString.values.length] = value;
        }
    }
}


//---------------------------------------------------------------------||
// FUNCTION:    ManageCart                                             ||

function ManageCart() {
    var iNumberOrdered = 0; //Number of products ordered
    var fTotal = 0; //Total cost of order
    var fTax = 0; //Tax amount
    //var fShipping      = 0;    //Shipping amount
    var strTotal = "0.00"; //Total cost formatted as money
    var strTax = "0.00"; //Total tax formatted as money
    var strShipping = "0.00"; //Total shipping formatted as money
    var strOutput = ""; //String to be written to page
    var bDisplay = true; //Whether to write string to the page (here for programmers)
    var Discount = "";


    if (DisplayDiscount) {
        // определяем скидку и номер дисконта
        Discount = GetCookie("Discount");
        if (Discount == null) Discount = 0;

        var Discount_num = GetCookie("Discount_num");
        if (Discount_num == null) Discount_num = 0;

        if (Discount == 0) Discount_num = 0;
    }
    //--
    iNumberOrdered = GetCookie("NumberOrdered");
    if (iNumberOrdered == null) iNumberOrdered = 0;

    if (bDisplay) strOutput = "<table class=\"nopcart\" border=0><thead><tr>" +
    /* "<th class=\"nopheader\"><b>N</b></th>" +*/
    "<th class=\"nopheader\"><b>" + strILabel + "</b></th>" + "<th class=\"nopheader\"><b>" + strDLabel + "</b></th>" + "<th class=\"nopheader\"><b>" + strQLabel + "</b></th>";
    if (DisplayPrice) {
        strOutput += "<th class=\"nopheader\"><b>" + strPLabel + "</b></th>";
    }
    //(DisplayShippingColumn?"<TD CLASS=\"nopheader\"><B>*"+strSLabel+"</B></TD>":"") +
    strOutput += "<th class=\"nopheader\"></th></tr></thead><tbody>";

    if (iNumberOrdered == 0) {
        strOutput += "<tr><td colspan=\"5\" class=\"nopentry\"><center><br><b>" + strEmpty + "</b><br /><br /></center></td></tr>";
    }

    for (i = 1; i <= iNumberOrdered; i++) {
        NewOrder = "Order." + i;
        database = "";
        database = GetCookie(NewOrder);

        Token0 = database.indexOf("|", 0);
        Token1 = database.indexOf("|", Token0 + 1);
        Token2 = database.indexOf("|", Token1 + 1);
        Token3 = database.indexOf("|", Token2 + 1);
        Token4 = database.indexOf("|", Token3 + 1);

        fields = new Array;
        fields[0] = database.substring(0, Token0); // Product ID
        fields[1] = database.substring(Token0 + 1, Token1); // Quantity
        fields[2] = database.substring(Token1 + 1, Token2); // Price
        fields[3] = database.substring(Token2 + 1, Token3); // Product Name/Description
        fields[4] = database.substring(Token3 + 1, Token4); // Shipping Cost
        fields[5] = database.substring(Token4 + 1, database.length); //Additional Information
        fTotal += (parseInt(fields[1]) * parseFloat(fields[2]));
        //fShipping  += (parseInt(fields[1]) * parseFloat(fields[4]) );
        fTax = (fTotal * TaxRate);
        strTotal = moneyFormat(fTotal);
        strTax = moneyFormat(fTax);
        strShipping = moneyFormat(fShipping);

        if (strTotal>5000) strShipping="0.00";

        if (bDisplay) {
            /*strOutput += "<tr><td class=\"nopentry\">"+i+"</td>";*/
            strOutput += "<td class=\"nopentry\">" + fields[0] + "</td>";
            if (fields[5] == "") strOutput += "<td class=\"nopentry\"><a href=\"/index.php?id=" + fields[0] + "\">" + fields[3] + "</td>";
            else strOutput += "<td class=\"nopentry\">" + fields[3] + " - <i>" + fields[5] + "</i></td>";

            strOutput += "<td class=\"nopentry\"><input type=\"text\" name=\"q\" size=\"3\" class=\"nopinput\" value=\"" + fields[1] + "\" onkeypress=\"return testKey(event)\" onChange=\"ChangeQuantity(" + i + ", this.value);\"></td>";

            if (DisplayPrice) {
                strOutput += "<td class=\"nopentry\">" + moneyFormat(fields[2]) + MonetarySymbol + "</td>";
            }

            /*if ( DisplayShippingColumn ) {
            if ( parseFloat(fields[4]) > 0 )
               strOutput += "<td class=\"nopentry\">" + strShipping+ MonetarySymbol + "</td>";
            else
               strOutput += "<td class=\"nopentry\">-</td>";
         }*/

            strOutput += "<td class=\"nopentry\" align=\"center\"><a class=\"shop_button\" href=\"#\" title=" + strRButton + " onClick=\"RemoveFromCart(" + i + "); return false\"></a></td></tr>";
        }

        if (AppendItemNumToOutput) {
            strFooter = i;
        } else {
            strFooter = "";
        }
        if (HiddenFieldsToCheckout) {
            strOutput += "<input type=hidden name=\"" + OutputItemId + strFooter + "\" value=\"" + fields[0] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemQuantity + strFooter + "\" value=\"" + fields[1] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemPrice + strFooter + "\" value=\"" + fields[2] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemName + strFooter + "\" value=\"" + fields[3] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemShipping + strFooter + "\" value=\"" + fields[4] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">";
        }

    }

    if (DisplayPrice) {
        strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strSUB + "</b></td>";
        strOutput += "<td class=\"noptotal\" colspan=\"2\"><b>" + strTotal + MonetarySymbol + "</b></td>";
        strOutput += "</tr>";

        if (DisplayShippingRow) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strSHIP + "</b></td>";
            strOutput += "<td class=\"noptotal\" colspan=\"2\"><b>" + strShipping + MonetarySymbol + "</b></td>";
            strOutput += "</tr>";
        }

        if (DisplayTaxRow || TaxByRegion) {
            if (TaxByRegion) {
                strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strTAX + "</b></td>";
                strOutput += "<td class=\"noptotal\" colspan=\"2\"><b>";
                strOutput += "<input type=\"radio\" name=\"" + OutputOrderTax + "\" value=\"" + strTax + "\">";
                strOutput += TaxablePrompt + ": " + strTax + MonetarySymbol;
                strOutput += "<br /><input type=\"radio\" name=\"" + OutputOrderTax + "\" value=\"0.00\">";
                strOutput += NonTaxablePrompt + ": " + "0.00" + MonetarySymbol;
                strOutput += "</b></td>";
                strOutput += "</tr>";
            } else {
                strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strTAX + "</b></td>";
                strOutput += "<td class=\"noptotal\" colspan=\"2\"><b>" + strTax + MonetarySymbol + "</b></td>";
                strOutput += "</tr>";
            }
        }


        // Discount
        if (DisplayDiscount) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"2\"><b>" + strHasDiscount + "</b> <input type=\"text\" id=\"dnum\" align=\"right\" size=\"22\" value=\"" + Discount_num + "\" onkeypress=\"return testKey(event)\" onChange=\"javascript:GetDiscount();\"/></td>";
            strOutput += "<td class=\"noptotal\" colspan=\"1\">" + strDiscount + " <b id=\"discount\">" + Discount + "</b>%</td>";
            strOutput += "<td class=\"noptotal\" colspan=\"2\"><b> - " + moneyFormat((((fTotal + moneyFormat(strShipping) + fTax) * Discount) / 100)) + MonetarySymbol + "</b></td>";
            strOutput += "</tr>";
        }
        //--
        if (!TaxByRegion || DisplayPrice) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"2\"><b>" + '' + "</b></td>";
            strOutput += "<td class=\"noptotal nopitog\" colspan=\"3\"><span>"+strTOT +"</span> <b>"+ moneyFormat((fTotal + moneyFormat(strShipping) + fTax) - (((fTotal + moneyFormat(strShipping) + fTax) * Discount) / 100)) + MonetarySymbol + "</b></td>";
            strOutput += "</TR>";
        }
        strOutput += "<tbody></table>";

        if (HiddenFieldsToCheckout) {
            strOutput += "<input type=hidden name=\"" + OutputOrderSubtotal + "\" value=\"" + strTotal + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderShipping + "\" value=\"" + strShipping + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderTax + "\"      value=\"" + strTax + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderTotal + "\"    value=\"" + moneyFormat((fTotal + moneyFormat(strShipping) + fTax)) + MonetarySymbol + "\">";
        }
    }
    g_TotalCost = (fTotal + moneyFormat(strShipping) + fTax);

    document.getElementById('basket_cont').innerHTML = strOutput;
    //document.write(strOutput);
    document.close();
}

//---------------------------------------------------------------------||
// FUNCTION:    ValidateCart                                           ||
var g_TotalCost = 0;

function ValidateCart(theForm) {
    if (TaxByRegion) {
        if (!RadioChecked(eval("theForm." + OutputOrderTax))) {
            alert(TaxPrompt);
            return false;
        }
    }

    if (MinimumOrder >= 0.01) {
        if (g_TotalCost < MinimumOrder) {
            alert(MinimumOrderPrompt);
            return false;
        }
    }

    return true;
}

//---------------------------------------------------------------------||
// FUNCTION:    CheckoutCart                                           ||

function CheckoutCart() {
    var iNumberOrdered = 0; //Number of products ordered
    var fTotal = 0; //Total cost of order
    var fTax = 0; //Tax amount
    //var fShipping      = 0;    //Shipping amount
    var strTotal = ""; //Total cost formatted as money
    var strTax = ""; //Total tax formatted as money
    var strShipping = ""; //Total shipping formatted as money
    var strOutput = ""; //String to be written to page
    var bDisplay = true; //Whether to write string to the page (here for programmers)
    var strPP = ""; //Payment Processor Description Field
    var Discount = "";


    if (DisplayDiscount) {
        // определяем скидку и номер дисконта
        Discount = GetCookie("Discount");
        if (Discount == null) Discount = 0;

        var Discount_num = GetCookie("Discount_num");
        if (Discount_num == null) Discount_num = 0;

        if (Discount == 0) Discount_num = 0;
        //--
    }

    iNumberOrdered = GetCookie("NumberOrdered");
    if (iNumberOrdered == null) iNumberOrdered = 0;

    if (TaxByRegion) {
        QueryString_Parse();
        fTax = parseFloat(QueryString(OutputOrderTax));
        strTax = moneyFormat(fTax);
    }

    if (bDisplay) strOutput = "<table class=\"nopcart\"><thead><tr>" + "<th class=\"nopheader\"><b>" + strILabel + "</b></th>" + "<th class=\"nopheader\"><b>" + strDLabel + "</b></th>" + "<th class=\"nopheader\"><b>" + strQLabel + "</b></th>";
    if (DisplayPrice) {
        strOutput += "<th class=\"nopheader\"><b>" + strPLabel + "</b></th>";
    }
    //(DisplayShippingColumn?"<TD CLASS=\"nopheader\"><B>*"+strSLabel+"</B></TD>":"") +
    strOutput += "</tr></thead><tbody>";

    for (i = 1; i <= iNumberOrdered; i++) {
        NewOrder = "Order." + i;
        database = "";
        database = GetCookie(NewOrder);

        Token0 = database.indexOf("|", 0);
        Token1 = database.indexOf("|", Token0 + 1);
        Token2 = database.indexOf("|", Token1 + 1);
        Token3 = database.indexOf("|", Token2 + 1);
        Token4 = database.indexOf("|", Token3 + 1);

        fields = new Array;
        fields[0] = database.substring(0, Token0); // Product ID
        fields[1] = database.substring(Token0 + 1, Token1); // Quantity
        fields[2] = database.substring(Token1 + 1, Token2); // Price
        fields[3] = database.substring(Token2 + 1, Token3); // Product Name/Description
        fields[4] = database.substring(Token3 + 1, Token4); // Shipping Cost
        fields[5] = database.substring(Token4 + 1, database.length); //Additional Information
        fTotal += (parseInt(fields[1]) * parseFloat(fields[2]));
        //fShipping  += (parseInt(fields[1]) * parseFloat(fields[4]) );
        if (!TaxByRegion) fTax = (fTotal * TaxRate);
        strTotal = moneyFormat(fTotal);
        if (!TaxByRegion) strTax = moneyFormat(fTax);
        strShipping = moneyFormat(fShipping);

        if (strTotal>5000) strShipping="0.00";

        if (bDisplay) {
            strOutput += "<tr><td class=\"nopentry\">" + fields[0] + "</td>";

            if (fields[5] == "") strOutput += "<td class=\"nopentry\"><a href=\"/index.php?id=" + fields[0] + "\">" + fields[3] + "</td>";
            else strOutput += "<td class=\"nopentry\">" + fields[3] + " - <i>" + fields[5] + "</i></td>";

            strOutput += "<td class=\"nopentry\">" + fields[1] + "</td>";
            if (DisplayPrice) {
                strOutput += "<td class=\"nopentry\">" + moneyFormat(fields[2]) + MonetarySymbol + "</td>";
            }

            if (DisplayShippingColumn) {
                if (parseFloat(fields[4]) > 0) strOutput += "<td class=\"nopentry\">" + moneyFormat(fields[4]) + MonetarySymbol + "</td>";
                // else
                // strOutput += "<TD CLASS=\"nopentry\">N/A</TD>";
            }

            strOutput += "</tr>";
        }

        if (AppendItemNumToOutput) {
            strFooter = i;
        } else {
            strFooter = "";
        }
        if (PaymentProcessor != '') {
            //Process description field for payment processors instead of hidden values.
            //Format Description of product as:
            // ID, Name, Qty X
            strPP += fields[0] + ", " + fields[3];
            if (fields[5] != "") strPP += " - " + fields[5];
            strPP += ", Qty. " + fields[1] + "\n";
        } else {
            strOutput += "<input type=hidden name=\"" + OutputItemId + strFooter + "\" value=\"" + fields[0] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemQuantity + strFooter + "\" value=\"" + fields[1] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemPrice + strFooter + "\" value=\"" + fields[2] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemName + strFooter + "\" value=\"" + fields[3] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemShipping + strFooter + "\" value=\"" + fields[4] + "\">";
            strOutput += "<input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">";
        }

    }

    if (DisplayPrice) {
        strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strSUB + "</b></td>";
        strOutput += "<td class=\"noptotal\" colspan=\"2\" align=\"right\"><b>" + strTotal + MonetarySymbol + "</b></td>";
        strOutput += "</tr>";

        if (DisplayShippingRow) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strSHIP + "</b></td>";
            strOutput += "<td class=\"noptotal\" colspan=\"2\" align=\"right\"><b>" + strShipping + MonetarySymbol + "</b></td>";
            strOutput += "</TR>";
        }

        if (DisplayTaxRow || TaxByRegion) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strTAX + "</b></td>";
            strOutput += "<td class=\"noptotal\" colspan=\"2\" align=\"right\"><b>" + strTax + MonetarySymbol + "</b></td>";
            strOutput += "</TR>";
        }


        // Discount
        if (DisplayDiscount) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"2\"><b>" + strDiscountNum + ":</b> " + Discount_num + "</td>";
            strOutput += "<td class=\"noptotal\" colspan=\"1\">" + strDiscount + " <b id=\"discount\">" + Discount + "</b>%</td>";
            strOutput += "<td class=\"noptotal\" colspan=\"2\"><b> - " + moneyFormat((((fTotal + moneyFormat(strShipping) + fTax) * Discount) / 100)) + MonetarySymbol + "</b></td>";
            strOutput += "</tr>";
        }
        //--
        if (DisplayPrice) {
            strOutput += "<tr><td class=\"noptotal\" colspan=\"3\"><b>" + strTOT + "</b></td>";
            strOutput += "<td class=\"noptotal nopitog\" colspan=\"2\">"+strTOT +" <b>"+ moneyFormat((fTotal + moneyFormat(strShipping) + fTax) - (((fTotal + moneyFormat(strShipping) + fTax) * Discount) / 100)) + MonetarySymbol + "</b></td>";
            strOutput += "</tr>";
        }

        strOutput += "</tbody></table>";


        if (PaymentProcessor == 'an') {
            //Process this for Authorize.net WebConnect
            strOutput += "<input type=hidden name=\"x_Version\" value=\"3.0\">";
            strOutput += "<input type=hidden name=\"x_Show_Form\" value=\"PAYMENT_FORM\">";
            strOutput += "<input type=hidden name=\"x_Description\" value=\"" + strPP + "\">";
            strOutput += "<input type=hidden name=\"x_Amount\" value=\"" + moneyFormat((fTotal + fShipping + fTax)) + "\">";
        } else if (PaymentProcessor == 'wp') {
            //Process this for WorldPay
            strOutput += "<input type=hidden name=\"desc\" value=\"" + strPP + "\">";
            strOutput += "<input type=hidden name=\"amount\" value=\"" + moneyFormat((fTotal + fShipping + fTax)) + "\">";
        } else if (PaymentProcessor == 'lp') {
            //Process this for LinkPoint
            strOutput += "<input type=hidden name=\"mode\" value=\"fullpay\">";
            strOutput += "<input type=hidden name=\"chargetotal\" value=\"" + moneyFormat((fTotal + fShipping + fTax)) + "\">";
            strOutput += "<input type=hidden name=\"tax\" value=\"" + strTax + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"subtotal\" value=\"" + strTotal + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"shipping\" value=\"" + strShipping + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"desc\" value=\"" + strPP + "\">";
        } else {
            strOutput += "<input type=hidden name=\"" + OutputOrderSubtotal + "\" value=\"" + strTotal + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderShipping + "\" value=\"" + strShipping + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderTax + "\"      value=\"" + strTax + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderDiscountNum + "\"      value=\"" + Discount_num + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderDiscount + "\"      value=\"" + Discount + "%\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderDiscountSize + "\"      value=\"" + moneyFormat((((fTotal + moneyFormat(strShipping) + fTax) * Discount) / 100)) + MonetarySymbol + "\">";
            strOutput += "<input type=hidden name=\"" + OutputOrderTotal + "\"    value=\"" + moneyFormat((fTotal + moneyFormat(strShipping) + fTax) - (((fTotal + moneyFormat(strShipping) + fTax) * Discount) / 100)) + MonetarySymbol
        }
    }

    document.write(strOutput);
    document.close();
}

function CleanCart() {
    var iNumberOrdered = GetCookie("NumberOrdered");
    if (iNumberOrdered == null) {
        iNumberOrdered = 0;
    }
    for (i = 1; i <= iNumberOrdered; i++) {
        NewOrder = "Order." + i;
        DeleteCookie(NewOrder, "/");
    }
    DeleteCookie("NumberOrdered", "/");

}

//----------------------------------------------||
// FUNCTION:    EmptyCart

function EmptyCart() {
    if (confirm(strClear)) {
        NumberOrdered = 0;
        SetCookie("NumberOrdered", NumberOrdered, null, "/");
        location.href = location.href;
    }
}

// FUNCTION:   EmptyOrderCart

function EmptyOrderCart() {
    NumberOrdered = 0;
    SetCookie("NumberOrdered", NumberOrdered, null, "/");
    location.href = location.href;
}






//---------------------------------------------------------------------||
// FUNCTION:    AddToCart                                              ||

function AddToCart(ID_NUM, PRICE, NAME, thisForm) {
    var iNumberOrdered = 0;
    var bAlreadyInCart = false;
    var notice = "";
    var SHIPPING = "";
    strADDTLINFO = "";
    var strQuant = "";
    var q = "";
    var errornan = false;
    iNumberOrdered = GetCookie("NumberOrdered");

    if (document.getElementById('QUANTITY' + ID_NUM) == null) {
        strQUANTITY = "1";
    } else {
        q = document.getElementById('QUANTITY' + ID_NUM).value;
        if (isNaN(q)) {
            alert(strErrQty);
            errornan = true;
            //document.getElementById('QUANTITY'+ID_NUM).value = "1";
            //strQUANTITY = "1";
        } else {
            strQUANTITY = q;
        }
    }
    if (iNumberOrdered == null) iNumberOrdered = 0;

    if (ID_NUM == null) strID_NUM = "";
    else strID_NUM = ID_NUM;

    if (PRICE == null) strPRICE = "0.00";
    else strPRICE = PRICE.replace(' ', '');
    strPRICE = strPRICE.replace(',', '.');

    if (NAME == null) strNAME = "";
    else strNAME = NAME;

    //   if ( SHIPPING == null )
    //      strSHIPPING  = "0.00";
    //   else
    //      strSHIPPING  = SHIPPING;
    if (SHIPPING == "" || SHIPPING == null) strSHIPPING = "0";
    else strSHIPPING = "0";


    if (errornan == false) {

        //Is this product already in the cart?  If so, increment quantity instead of adding another.
        for (i = 1; i <= iNumberOrdered; i++) {
            NewOrder = "Order." + i;
            database = "";
            database = GetCookie(NewOrder);

            Token0 = database.indexOf("|", 0);
            Token1 = database.indexOf("|", Token0 + 1);
            Token2 = database.indexOf("|", Token1 + 1);
            Token3 = database.indexOf("|", Token2 + 1);
            Token4 = database.indexOf("|", Token3 + 1);

            fields = new Array;
            fields[0] = database.substring(0, Token0);
            fields[1] = database.substring(Token0 + 1, Token1);
            fields[2] = database.substring(Token1 + 1, Token2);
            fields[3] = database.substring(Token2 + 1, Token3);
            fields[4] = database.substring(Token3 + 1, Token4);
            fields[5] = database.substring(Token4 + 1, database.length);

            if (fields[0] == strID_NUM && fields[2] == strPRICE && fields[3] == strNAME && fields[5] == strADDTLINFO) {
                bAlreadyInCart = true;
                dbUpdatedOrder = strID_NUM + "|" + (parseInt(strQUANTITY) + parseInt(fields[1])) + "|" + strPRICE + "|" + strNAME + "|" + strSHIPPING + "|" + strADDTLINFO;
                strNewOrder = "Order." + i;
                DeleteCookie(strNewOrder, "/");
                SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
                if (strQUANTITY == 1) strQuant = strQuant1;
                if (strQUANTITY == 2) strQuant = strQuant2;
                if (strQUANTITY == 3) strQuant = strQuant3;
                if (strQUANTITY == 4) strQuant = strQuant4;
                if (strQUANTITY > 4) strQuant = strQuant5;
                notice = strAdded + strQUANTITY + strQuant + " " + "&laquo;" + strNAME + "&raquo;";
                break;
            }
        }


        if (!bAlreadyInCart) {
            iNumberOrdered++;

            if (iNumberOrdered > 12) alert(strSorry);
            else {
                dbUpdatedOrder = strID_NUM + "|" + strQUANTITY + "|" + strPRICE + "|" + strNAME + "|" + strSHIPPING + "|" + strADDTLINFO;

                strNewOrder = "Order." + iNumberOrdered;
                SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
                SetCookie("NumberOrdered", iNumberOrdered, null, "/");

                if (strQUANTITY == 1) strQuant = strQuant1;
                if (strQUANTITY == 2) strQuant = strQuant2;
                if (strQUANTITY == 3) strQuant = strQuant3;
                if (strQUANTITY == 4) strQuant = strQuant4;
                if (strQUANTITY > 4) strQuant = strQuant5;
                notice = strAdded + strQUANTITY + strQuant + " " + "&laquo;" + strNAME + "&raquo;";
            }
        }

        Infoblock();
        if (DisplayNotice) {
            //ShowWindow(notice,300,60);
            ShowWindow("", 100, 100);

            setTimeout("HideWindow()", 1000);
        }
        return false;

    }

}

//---------------------------------------------------------------------||
// FUNCTION: Infoblock ||

function Infoblock() {
    var strOutput = ""; //String to be written to page
    var strTotal = ""; //Total cost formatted as money
    var fTotal = 0;
    var iNumberOrdered = 0; //Number of products ordered
    var antal = 0;

    iNumberOrdered = GetCookie("NumberOrdered");
    if (iNumberOrdered == null) iNumberOrdered = 0;


    for (i = 1; i <= iNumberOrdered; i++) {

        NewOrder = "Order." + i;
        database = "";
        database = GetCookie(NewOrder);

        Token0 = database.indexOf("|", 0);
        Token1 = database.indexOf("|", Token0 + 1);
        Token2 = database.indexOf("|", Token1 + 1);
        Token3 = database.indexOf("|", Token2 + 1);
        Token4 = database.indexOf("|", Token3 + 1);

        fields = new Array;
        fields[0] = database.substring(0, Token0); // Product ID
        fields[1] = database.substring(Token0 + 1, Token1); // Quantity
        fields[2] = database.substring(Token1 + 1, Token2); // Price
        fields[3] = database.substring(Token2 + 1, Token3); // Product Name/Description
        fields[4] = database.substring(Token3 + 1, Token4); // Weight
        fields[5] = database.substring(Token4 + 1, database.length); //Additional Information
        fTotal += (parseInt(fields[1]) * parseFloat(fields[2]));
        antal = antal + parseFloat(fields[1])
    }

    strTotal = moneyFormat(fTotal);

    if (antal == 0) strOutput += strEmptyInfo;
    if (antal == 1) strOutput += "<span class='grc'>Блокнот:</span> <a href='index.php?id=9'><b>"+antal+"</b></a> " + strTovar1 +" "+ strSumma +"<span class='summa'>" +strTotal + "</span> " + MonetarySymbol;
    if (antal == 2) strOutput += "<span class='grc'>Блокнот:</span> <a href='index.php?id=9'><b>"+antal+"</b></a> " + strTovar2 +" "+ strSumma +"<span class='summa'>" +strTotal + "</span> " + MonetarySymbol;
    if (antal == 3) strOutput += "<span class='grc'>Блокнот:</span> <a href='index.php?id=9'><b>"+antal+"</b></a> " + strTovar3 +" "+ strSumma +"<span class='summa'>" +strTotal + "</span> " + MonetarySymbol;
    if (antal == 4) strOutput += "<span class='grc'>Блокнот:</span> <a href='index.php?id=9'><b>"+antal+"</b></a> " + strTovar4 +" "+ strSumma +"<span class='summa'>" +strTotal + "</span> " + MonetarySymbol;
    if (antal > 4) strOutput += "<span class='grc'>Блокнот:</span> <a href='index.php?id=9'><b>"+antal+"</b></a> " + strTovar5 +" "+ strSumma +"<span class='summa'>" +strTotal + "</span> " + MonetarySymbol;
    if (document.getElementById('infoblock') != null) document.getElementById('infoblock').innerHTML = strOutput;
}






//Ajax Discount
var http_request = false;

function makeRequest(url, parameters) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {}
        }
    }
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', url + parameters, true);
    http_request.send(null);
}

function alertContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            result = http_request.responseText;
            SetCookie("Discount", result);
            document.getElementById('discount').innerHTML = result;
            location.href = location.href;
        } else {
            SetCookie("Discount", "0", null);
            document.getElementById('discount').innerHTML = result;
        }
    }
}

function get(obj) {
    var getstr = "?";
    for (i = 0; i < obj.getElementsByTagName("input").length; i++) {
        if (obj.getElementsByTagName("input")[i].type == "text") {
            getstr += obj.getElementsByTagName("input")[i].name + "=" + obj.getElementsByTagName("input")[i].value + "&";
        }
        if (obj.getElementsByTagName("input")[i].type == "checkbox") {
            if (obj.getElementsByTagName("input")[i].checked) {
                getstr += obj.getElementsByTagName("input")[i].name + "=" + obj.getElementsByTagName("input")[i].value + "&";
            } else {
                getstr += obj.getElementsByTagName("input")[i].name + "=&";
            }
        }
        if (obj.getElementsByTagName("input")[i].type == "radio") {
            if (obj.getElementsByTagName("input")[i].checked) {
                getstr += obj.getElementsByTagName("input")[i].name + "=" + obj.getElementsByTagName("input")[i].value + "&";
            }
        }
        if (obj.getElementsByTagName("input")[i].tagName == "SELECT") {
            var sel = obj.getElementsByTagName("input")[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
        }

    }
    makePOSTRequest('post.php', getstr);
}

//---

function GetDiscount() {
    var Discount_num = 0;
    if (document.getElementById('dnum') == null) {
        SetCookie("Discount_num", "0"); //запоминаем номер дисконта
        makeRequest('/assets/snippets/shop/include/get.php', '?dnum=0');
        // location.href=location.href;
    } else {
        dnum = document.getElementById('dnum').value;
        SetCookie("Discount_num", dnum); //запоминаем номер дисконта
        makeRequest('/assets/snippets/shop/include/get.php', '?dnum=' + dnum);
        // location.href=location.href;
    }
}
