﻿///<reference path="global.js" />
///<reference path="server.js" />
///<reference path="engine.js" />
var $m = {

    Init: function () {

        $CS.init($G.GET("#defaultForm"));

        array_inp = $CS.getGroup("txt_validate");

        for (i = 0; i < array_inp.length; i++) {
            array_inp[i].addOnChange($m.change_validate);
        }

    },
    ticket: {
        getTicket: function () {
            var url = 'GetImages.ashx?Getticket=yes&name=' + encodeURI($G.Get.ById('txtName').value) + '&mail=' + encodeURI($G.Get.ById('txtMail').value) + '&fromwho=' + encodeURI($G.Get.ById('FromWhere').value) + '&' + Math.random();
            $server.Send(url, function (req) { $G.Get.ById('infoplace').innerHTML = req.responseText; });
        }
    },
    getImgs: function (id) {
        var prldr = document.getElementsByTagName('div');
        for (var i = 0; i < prldr.length; i++) {
            if (prldr[i].className == 'PreloaderPanel') {
                prldr[i].parentNode.removeChild(prldr[i]);
                break;
            }
        }
        var obj = document.getElementById('imgs');
        obj.innerHTML = "";
        var url = "getImages.ashx?action=getProductImg&contact_Id=" + id + "&rnd=" + Math.random();
        var request = new Request();
        request.Send(url, function callback(req) {
            var block = $G.Tag("div", "", "PhotoContainer");
            block.innerHTML = req.responseText;
            $G.Append(obj, block); Gallery.Show(obj.getElementsByTagName('img')[0]);
        } .bind(request), function () { } .bind(request));
    },
    hideshowObjs: function (oper) {
        var objs = $G.Get.ByTag(document.body, "object", true);
        for (var i = 0; i < objs.length; i++) {
            if (oper == "hide") {
                $G.Display.Hide(objs[i]);
            }
            else if (oper == "show") {
                $G.Display.Block(objs[i]);
            }
        }
    },
    NavBar: function (img) {
        img.src = '/resource/img/furnitur_m_arrow_a.jpg';
        var src = $G.GET(img, "up:2,div:1");
        var trg = $G.GET(img, "up:2,div:2");
        $G.Display.Hide(src);
        trg.className = 'open';
        $G.Display.Block(trg);
        trg.onmouseover = function () {
            $G.Display.Hide(this.trg);
            this.src.className = 'close';
            $G.Display.Block(this.src);
            img.src = '/resource/img/furnitur_m_arrow.jpg';
        } .bind({ img: img, src: src, trg: trg });
    },
    onunnav: function () {
        var menu = document.getElementById('dinMenu');
        if (menu) {
            var nds = menu.childNodes;
            for (var i = 0; i < nds.length; i++) {
                $m.hideandimgchange(nds[i]);
            }
        }
    },
    mynav: function (e) {
        var obj = $G.Event.Target(e);
        if (obj.tagName == "UL") {
        }
        else {
            while (obj.tagName != "LI") {
                obj = obj.parentNode;
            }
            var id = obj.id;

            var next = obj;
            var prev = obj.previousSibling;
            var k = -1;
            while (next) {
                if (k < 0) {
                    $m.showandimgchange(next);
                }
                else {
                    $m.hideandimgchange(next);
                }
                k++;
                next = next.nextSibling;
            }
            while (prev) {
                $m.hideandimgchange(prev);
                prev = prev.previousSibling;
            }
            if (!obj.previousSibling) {
                $m.showandimgchange(obj.nextSibling);
            }
        }
    },
    hideandimgchange: function (obj) {
        if (obj) {
            var div = $G.Get.ByTag(obj, 'div', false);
            if (div) {
                for (var i = 0; i < div.length; i++) {
                    if (div[i].id.indexOf("list_") != -1) {
                        div[i].style.display = "none";
                    }
                    var img = obj.getElementsByTagName('img');
                    if (img) {
                        img[0].src = '/resource/img/furnitur_m_arrow.jpg';
                    }
                }
            }
        }
    },
    showandimgchange: function (obj) {
        if (obj) {
            var div = obj.getElementsByTagName('div');
            if (div) {
                for (var i = 0; i < div.length; i++) {
                    if (div[i].id.indexOf("list_") != -1) {
                        div[i].style.display = "block";
                    }
                    var img = obj.getElementsByTagName('img');
                    if (img) {
                        img[0].src = '/resource/img/furnitur_m_arrow_a.jpg';
                    }
                }

            }
        }
    },
    _NavOn: function (obj) {
        var _obj = $G.GET($G.Next($G.GET(obj, "up:1"), 1), "div:0,img:0");
        if (_obj)
            $m.NavOn(_obj);
    },
    NavOn: function (img) {
        var src = $G.GET(img, "up:2,div:1");
        var trg = $G.GET(img, "up:2,div:2");
        if (window["trg"] != null && window["trg"] != trg)
            img.src = '/resource/img/furnitur_m_arrow_a.jpg';
        if (window["trg"]) {
            $m.NavChange(window["trg"], window["src"]);
            window["src"] = window["trg"] = null;
        }
        window["src"] = src;
        window["trg"] = trg;
        $m.NavChange(trg, src, true);
        trg.onmouseover = function () { $m.NavOff(trg); };
    },
    NavOff: function (trg) {
        window["CTime"] = setTimeout(function () {
            if (this.trg == window["trg"]) {
                $m.NavChange(window["trg"], window["src"]);
                window["src"] = window["trg"] = null;
            }
        } .bind({ trg: trg }), 300);
    },
    NavChange: function (trg, src, mode) {
        if (mode) {
            $G.Display.Hide(src);
            trg.className = 'open';
            $G.Display.Block(trg);
        }
        else {
            $G.Display.Hide(trg);
            src.className = 'close';
            $G.Display.Block(src);
            $G.GET($G.Previous(src, 1), "img:0").src = '/resource/img/furnitur_m_arrow.jpg';
        }
    },
    topList:
    {
        open: function (obj) {
            obj.onmouseout = function () { $m.item.hideall() };
            $G.Display.Block($G.GET(obj, "up:2,div:0"));
        }
    },
    item:
    {
        open: function (obj) {
            obj.onmouseout = function () { $m.item.hideall() };
            $G.Display.Block($G.GET(obj, "up:1,div:0"));
        },
        hideall: function () {
            var obj = $G.Get.ById('tl_cont');
            var _arr = $G.Get.ByTag(obj, "td");
            for (var i = 0; i < _arr.length; i++) {
                $G.Display.Hide($G.GET(_arr[i], "div:0"));
            }
        }
    },
    pc:
    {
        Close: function () {
            var obj = $G.Get.ById('PhotoContainer');
            if (obj)
                obj.parentNode.removeChild(obj);
        },
        Open: function (obj, id) {
            var url = "getImages.ashx?action=getProductImg&Id=" + id + "&rnd=" + Math.random();
            var request = new Request();
            request.Send(url, function callback(req) {
                var block = $G.Tag("div", "", "PhotoContainer");
                block.innerHTML = req.responseText;
                $G.Append(obj.parentNode.parentNode, block);
            } .bind(request), function () { } .bind(request));
        },
        HideAllPages: function (ContentBlockId, ContentObjType, NavigationBlockId, NavigationObjType, NavigationClearCssClass) {
            var _container = $G.Get.ById(ContentBlockId);
            if (_container) {
                var _arr = $global.GetElementsByTagName(_container, ContentObjType);
                for (var i = 0; i < _arr.length; i++)
                    $global.Display.Hide(_arr[i]);
            }
            var _cont = $G.Get.ById(NavigationBlockId);
            if (_cont) {
                var _arr = $G.Get.ByTag(_cont, NavigationObjType);
                for (var i = 0; i < _arr.length; i++)
                    _arr[i].className = NavigationClearCssClass;
            }
        },
        Pager: function (link, DisplayedId) {
            $m.pc.HideAllPages($G.GET(link, 'up:2,div:1').id, 'div', 'NavigationLinks', 'a', 'pager_all_def');
            $G.Display.Block($G.Get.ById(DisplayedId));
            link.className = "pager_all";
        },
        Desc: function (lnk, page) {
            var arr = $G.Get.ByTag($G.GET(lnk, "up:1"), "div");
            for (var i = 0; i < arr.length; i++)
                $G.Display.Hide(arr[i]);

            arr = $G.Get.ByTag($G.Get.ById("PI_Desc"), "span");
            for (var i = 0; i < arr.length; i++)
                arr[i].className = "PI_descTitle";

            $G.Display.Block($G.Get.ById("PI_Desc_" + page));
            lnk.className = "PI_descTitleA";
        }
    },
    IsChildOf: function (par, child, depth) {
        if (child) {
            var o = child.parentNode;
            for (var i = 0; i < depth; i++) {
                if (o == null)
                    return false;
                if (o == par)
                    return true;
                o = o.parentNode;
            }
        }
        return false;
    },
    //из скрипта  корзины
    checkInputs: {
        checkMail: function (input) {
            var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (filter.test(input.value))
                return true;
            else
                return false;
        },
        checkPhone: function (input) {
            var phonefilter = /^[+][0-9]{1,3} [0-9]{3,3} [0-9]{3} [0-9]{4}$/;
            if (phonefilter.test(input.value))
                return true;
            else
                return false;
        },
        checkIsEmpty: function (input) {
            if (input.value == null || input.value == "")
                return true;
            else
                return false;
        },
        checkIsDigit: function (obj, keycode) {
            var buf = obj.value;
            var digitFilter = /^([1-9]|[1-9]\d|100)$/;
            if (digitFilter.test(String.fromCharCode(keycode)))
                obj.value += String.fromCharCode(keycode);
            else
                obj.value = "";
        },
        valid: function (o, w) {
            var r = {
                'special': /[\W]/g,
                'quotes': /['\''&'\"']/g,
                'notnumbers': /[^\d]/g
            }
            o.value = o.value.replace(r[w], '');
        }

    },
    hideshowObjs: function (oper) {
        var objs = $G.Get.ByTag(document.body, "object", true);
        for (var i = 0; i < objs.length; i++) {
            if (oper == "hide") {
                $G.Display.Hide(objs[i]);
            }
            else if (oper == "show") {
                $G.Display.Block(objs[i]);
            }
        }
    },
    menu: {
        setClassNames: function (menu_id, QueryStringName, parentclass, childclass) {
            var menu = $global.Get.ById(menu_id);
            var currQuery = $m.menu.getQueryStringValue(QueryStringName);
            var div = $G.Get.ByTag(menu, 'div', null);
            if (currQuery == null) {
                for (var i = 0; i < div.length; i++) {
                    var divchildrens = div[i].childNodes;
                    for (var i_ = 0; i_ < divchildrens.length; i_++) {
                        if (divchildrens[i_].tagName) {
                            switch (divchildrens[i_].tagName.toLowerCase()) {
                                case 'a':
                                    divchildrens[i_].className = parentclass;
                                    break;
                                case 'div':
                                    var inputs = $G.Get.ByTag(divchildrens[i_], 'a', null);
                                    for (var i__ = 0; i__ < inputs.length; i__++) {
                                        inputs[i__].className = childclass;
                                    }
                                    break;
                                default:
                            }
                        }
                    }
                }
            }
            else {
                for (var i = 0; i < div.length; i++) {
                    var divchildrens = div[i].childNodes;
                    var parentmenu;
                    var showblock = false;
                    for (var i_ = 0; i_ < divchildrens.length; i_++) {
                        if (divchildrens[i_].tagName) {
                            switch (divchildrens[i_].tagName.toLowerCase()) {
                                case 'a':
                                    parentmenu = divchildrens[i_];
                                    parentmenu.className = parentclass;
                                    showblock = showblock == true ? true : (parentmenu.id == '_' + currQuery ? true : false);
                                    break;
                                case 'div':
                                    var inputs = $G.Get.ByTag(divchildrens[i_], 'a', null);
                                    for (var i__ = 0; i__ < inputs.length; i__++) {
                                        showblock = showblock == true ? true : (inputs[i__].id == '_' + currQuery ? true : false);
                                        if (inputs[i__].id == '_' + currQuery)
                                            inputs[i__].className = childclass + 'A';
                                        else
                                            inputs[i__].className = childclass;
                                    }
                                    if (showblock) {
                                        parentmenu.className = parentclass + 'A';
                                        $G.Display.Block(divchildrens[i_]);
                                    }
                                    break;
                                default:
                            }
                            if (showblock) {
                                parentmenu.className = parentclass + 'A';
                                $G.Display.Block(divchildrens[i_]);
                            }
                        }
                    }
                }
            }
        },
        getQueryStringValue: function (name) {
            var RawUrl = document.location.href;
            var QueryStrings = RawUrl.split('&');
            for (var i = 0; i < QueryStrings.length; i++) {
                if (QueryStrings[i].indexOf(name) != -1) {
                    return QueryStrings[i].split('=')[1];
                }
            }
            return null;
        }
    },
    mmh: {
        open: function (obj) {
            var objs = $G.Get.ByTag($G.GET(obj, "up:2"), "div");
            for (var i = 0; i < objs.length; i++) {
                var _curr = $G.GET(objs[i], "div:0");
                if (_curr)
                    _curr.style.display = "none";
            }
            var subm = $G.GET(obj, "up:1,div:0");
            if (subm)
                subm.style.display = "block"
        },
        arr: {},
        over: function (obj, id) {
            if (obj) {
                $m.mmh.arr[id] = true;
                var menu = $G.Next(obj, 1);
                $G.Display.Block(menu);
                menu.onmouseover = function () {
                    $m.mmh.arr[this.id] = true;
                } .bind({ obj: obj, id: id, menu: menu });
                menu.onmouseout = function () {
                    $m.mmh.arr[this.id] = false;
                    setTimeout(function () {
                        $m.mmh.out(this.id);
                    } .bind(this), 100);
                } .bind({ obj: obj, id: id, menu: menu });
                obj.onmouseout = function () {
                    $m.mmh.arr[this.id] = false;
                    setTimeout(function () {
                        $m.mmh.out(this.id);
                    } .bind(this), 100);
                } .bind({ obj: obj, id: id, menu: menu });
            }
        },
        out: function (id) {
            if (!$m.mmh.arr[id]) {
                var obj = $G.Get.ById(id);
                $G.Display.Hide(obj);
            }
        }
    },
    pm: {
        open: function (obj) {
            var objs = $G.Get.ByTag($G.GET(obj, "up:2"), "div");
            for (var i = 0; i < objs.length; i++) {
                var _div = $G.GET(objs[i], "div:0");
                if (_div)
                    _div.style.display = "none";
                $G.GET(obj, "up:1,div:0").style.display = "block";
            }
        }
    },
    pc: {
        Close: function () {
            $G.Display.Hide($G.Get.ById('PhotoContainer'));
        },
        OpenGallery: function (obj, id) {
            var obj = document.getElementById('imgs');
            obj.innerHTML = "";
            var url = "ajax.ashx?action=getProductImg_G&itemId=" + id + "&rnd=" + Math.random();
            var request = new Request();
            request.Send(url, function callback(req) {
                var block = $G.Tag("div", "", "PhotoContainer");
                block.innerHTML = req.responseText;
                $G.Append(obj, block); Gallery.Show(obj.getElementsByTagName('img')[0]);
            } .bind(request), function () { } .bind(request)
        );
        },
        Open: function (obj, id) {
            var url = "ajax.ashx?action=getProductImg&itemId=" + id + "&rnd=" + Math.random();
            var request = new Request();
            request.Send(url, function callback(req) {
                var block = $G.Tag("div", "PhotoContainer", "PhotoContainer");
                block.width = "300px";
                block.height = "400px";
                block.style.display = 'none';
                $G.Append($G.Get.ById('PI_Img'), block);
                block.innerHTML = req.responseText;
                $G.ShowInPageCenter(block);
            } .bind(request), function () { } .bind(request)
        );
        },
        HideAllPages: function (ContentBlockId, ContentObjType, NavigationBlockId, NavigationObjType, NavigationClearCssClass) {
            var _container = $G.Get.ById(ContentBlockId);
            if (_container) {
                var _arr = $global.GetElementsByTagName(_container, ContentObjType);
                for (var i = 0; i < _arr.length; i++)
                    $global.Display.Hide(_arr[i]);
            }
            var _cont = $G.Get.ById(NavigationBlockId);
            if (_cont) {
                var _arr = $G.Get.ByTag(_cont, NavigationObjType);
                for (var i = 0; i < _arr.length; i++)
                    _arr[i].className = NavigationClearCssClass;
            }
        },
        Pager: function (link, DisplayedId) {
            $m.pc.HideAllPages($G.GET(link, 'up:2,div:1').id, 'div', 'NavigationLinks', 'a', 'pager_all_def');
            $G.Display.Block($G.Get.ById(DisplayedId));
            link.className = "pager_all";
        },
        Desc: function (lnk, page) {
            var arr = $G.Get.ByTag($G.GET(lnk, "up:1"), "div");
            for (var i = 0; i < arr.length; i++)
                $G.Display.Hide(arr[i]);

            arr = $G.Get.ByTag($G.Get.ById("PI_Desc"), "span");
            for (var i = 0; i < arr.length; i++)
                arr[i].className = "PI_descTitle";

            $G.Display.Block($G.Get.ById("PI_Desc_" + page));
            lnk.className = "PI_descTitleA";
        }
    },
    im: {
        showalert: function () {
            alert("sdfsf");
        },
        Buy: function (itemId, itemSize, DoorDouble, DoorFrame, Addon, Clypeus, CountClypeus, Delivery, DeliveryType, DeliveryLenght
        , Installation, Metering) {
            if (!itemId || !itemSize || !DoorDouble || !DoorFrame || !Addon || !Clypeus || !CountClypeus || !Delivery || !DeliveryType || !DeliveryLenght || !Installation || !Metering)
                alert("Некоторые параметры отсутствуют. Товар не будет положен в корзину.");
            else {
                var req = new Request();
                req.Send("/ajax.ashx?action=im.Buy&itemId=" + itemId + "&itemSize=" + itemSize + "&itemDouble=" + DoorDouble + "&DoorFrame=" + DoorFrame + "&Addon=" + Addon + "&Clypeus=" + Clypeus + "&CountClypeus=" + CountClypeus + "&Delivery=" + Delivery + "&DeliveryType=" + DeliveryType + "&DeliveryLenght=" + DeliveryLenght + "&Installation=" + Installation + "&Metering=" + Metering + "&rnd=" + Math.random(),
                     function (req) {
                         //перезагрузка корзины                                              
                         var rec = eval(req.responseText);
                         $G.Get.ById("recycleContainer").innerHTML = rec.recycle1;
                         if (rec.recycle2.count > 0) {
                             if ($G.Get.ById("rec_count") && $G.Get.ById("rec_price")) {
                                 $G.Get.ById("rec_count").innerHTML = parseInt(rec.recycle2.count);
                                 $G.Get.ById("rec_price").innerHTML = parseFloat(rec.recycle2.price);
                                 $G.Get.ById("DoorSelectRecycle").style.display = "block";
                                 $G.Get.ById("DoorSelectRecycleEmpty").style.display = "none";
                             }
                         }
                         else {
                             $G.Get.ById("DoorSelectRecycle").style.display = "none";
                             $G.Get.ById("DoorSelectRecycleEmpty").style.display = "block";
                         }
                     } .bind(this), null, null, null, true);
            }
        },
        Clear: function () {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.Clear&rnd=" + Math.random(), function (req) {
                //очищаем всё на клиенте
                if ($G.Get.ById("recycleTbl")) {
                    var recycle_tbl = $G.Get.ById("recycleTbl");
                    recycle_tbl.parentNode.removeChild(recycle_tbl);
                }
                //перезагрузка корзины                                              
                var rec = eval(req.responseText);
                $G.Get.ById("recycleContainer").innerHTML = rec.recycle1;
                if ($G.Get.ById("DoorSelectRecycle") && $G.Get.ById("DoorSelectRecycleEmpty"))
                    if (rec.recycle2.count > 0) {
                        if ($G.Get.ById("rec_count") && $G.Get.ById("rec_price")) {
                            $G.Get.ById("rec_count").innerHTML = parseInt(rec.recycle2.count);
                            $G.Get.ById("rec_price").innerHTML = parseFloat(rec.recycle2.price);
                            $G.Get.ById("DoorSelectRecycle").style.display = "block";
                            $G.Get.ById("DoorSelectRecycleEmpty").style.display = "none";
                        }
                    }
                    else {
                        $G.Get.ById("DoorSelectRecycle").style.display = "none";
                        $G.Get.ById("DoorSelectRecycleEmpty").style.display = "block";
                    }
                //очищаем показатель цены
                $m.im.GetAllPrice();
            } .bind(this), null, null, null, true);
        },
        inOrder: function () {
            document.location.href = '/ProductRecycle.aspx';
        },
        doOrder: function () {
            //if ($m.im.Sum() > 0)
            document.location.href = '/Order.aspx';
            //else
            //  alert("Сумма вашего заказа равна 0, измените состояние заказа перед его формированием.");
        },
        Show: function () {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.Show&rnd=" + Math.random(), function (req) {
                //перезагрузка корзины                                              
                var rec = eval(req.responseText);
                $G.Get.ById("recycleContainer").innerHTML = rec.recycle1;
                if ($G.Get.ById("DoorSelectRecycleEmpty") && $G.Get.ById("DoorSelectRecycle")) {
                    if (rec.recycle2.count > 0) {
                        if ($G.Get.ById("rec_count") && $G.Get.ById("rec_price")) {
                            $G.Get.ById("rec_count").innerHTML = parseInt(rec.recycle2.count);
                            $G.Get.ById("rec_price").innerHTML = parseFloat(rec.recycle2.price);
                            $G.Get.ById("DoorSelectRecycle").style.display = "block";
                            $G.Get.ById("DoorSelectRecycleEmpty").style.display = "none";
                        }
                    }
                    else {
                        $G.Get.ById("DoorSelectRecycle").style.display = "none";
                        $G.Get.ById("DoorSelectRecycleEmpty").style.display = "block";
                    }
                }
            } .bind(this), null, null, null, true);
        },
        Count: function (oper, itemId, currency) {
            var inpt = $G.Get.ById('inp_' + itemId);
            if (oper == "del")
                inpt.value = 0;
            else {
                var precount = parseInt(inpt.value) + (oper == "up" ? 1 : -1);
                if (precount == 0) {
                    inpt.value = 1;
                    return;
                }
                else { inpt.value = precount; }
            }
            $m.im.ChangeCount(itemId, inpt.value);
            $m.im.Sum(currency);
            if (parseInt(inpt.value) == 0) {
                var tr = $G.GET(inpt, "up:2");
                var tbl = $G.GET(tr, "up:1");
                tr.parentNode.removeChild(tr);
            }
            if ($m.im.Sum() == 0) {
                tbl.parentNode.removeChild(tbl);
                alert("В корзине не осталось товаров.");
                document.location.href = "/";
            }
        },
        Sum: function (curency) {
            var sum = 0;
            var cont = $G.GET($G.Get.ById('recycleTbl'), "tbody:0");
            var firstLvl = $G.Get.ByTag(cont, 'tr');
            for (var i = 0; i < firstLvl.length; i++) {
                var secondLvl = $G.Get.ByTag(firstLvl[i], 'td');
                sum = sum + (parseInt($G.GET(secondLvl[1], 'input').value) * parseInt(secondLvl[2].innerHTML.replace(" " + curency, "").trim()));
            }
            $m.im.Show();

            if (curency != null) {
                var bin1 = $G.Get.ById("recycleSumUp");
                if (bin1)
                    bin1.innerHTML = sum + " " + curency;
                var bin2 = $G.Get.ById("recycleSumDown");
                if (bin2)
                    bin2.innerHTML = sum + " " + curency;
            }
            else
                return sum;
        },
        ChangeCount: function (itemId, count) {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.ChangeCount&itemId=" + itemId + "&itemCount=" + count + "&rnd=" + Math.random(), function (req) {
                // some code                
            } .bind(this), null, null, null, true);
        },
        Delete: function (itemId, obj) {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.Delete&unid=" + itemId + "&rnd=" + Math.random(),
            function (req) {
                $m.im.GetAllPrice();
                //удаление текущего комплекта                
                var tr1 = $G.GET(obj, "up:2");
                var tr2 = $G.GET(tr1, "next:1");
                var tr3 = $G.GET(tr2, "next:1");
                tr1.parentNode.removeChild(tr1);
                tr2.parentNode.removeChild(tr2);
                tr3.parentNode.removeChild(tr3);
                //перезагрузка корзины                 
                var rec = eval(req.responseText);
                $G.Get.ById("recycleContainer").innerHTML = rec.recycle1;
                var req = new Request();
                req.Send("/ajax.ashx?action=im.GetAllPrice&rnd=" + Math.random(),
                        function (req) {
                            var recycleSum = 0;
                            recycleSum = parseFloat(req.responseText);
                            //удаление доставки                                             
                            if (recycleSum == 0) {
                                var recycle_tbl = $G.Get.ById("recycleTbl");
                                recycle_tbl.parentNode.removeChild(recycle_tbl);
                                //удяляем доставку на сервере
                                var req = new Request();
                                req.Send("/ajax.ashx?action=im.DeleteOrderAttr&DeleteOrderAttr=Delivery&rnd=" + Math.random(),
                                function (req) { } .bind(this), null, null, null, true);
                                //удяляем установку на сервере
                                var req = new Request();
                                req.Send("/ajax.ashx?action=im.DeleteOrderAttr&DeleteOrderAttr=Installation&rnd=" + Math.random(),
                                function (req) { } .bind(this), null, null, null, true);
                                //удяляем вызов замерщика на сервере
                                var req = new Request();
                                req.Send("/ajax.ashx?action=im.DeleteOrderAttr&DeleteOrderAttr=Metering&rnd=" + Math.random(),
                                function (req) { } .bind(this), null, null, null, true);
                            }
                        } .bind(this), null, null, null, true);
            } .bind(this), null, null, null, true);
        },
        DeleteOrderAttr: function (attr, obj) {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.DeleteOrderAttr&DeleteOrderAttr=" + attr + "&rnd=" + Math.random(),
            function (req) {
                $m.im.GetAllPrice();
                var tr = $G.GET(obj, "up:2");
                var tbl = $G.GET(tr, "up:1");
                tr.parentNode.removeChild(tr);
                //перезагрузка корзины
                var rec = eval(req.responseText);
                $G.Get.ById("recycleContainer").innerHTML = rec.recycle1;
            } .bind(this), null, null, null, true);
        },
        DeleteAssemblyItem: function (unid, item, obj) {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.DeleteAssemblyItem&unid=" + unid + "&item=" + item + "&rnd=" + Math.random(),
            function (req) {
                //перезаписываем корзину
                var rec = eval(req.responseText);
                $G.Get.ById("recycleContainer").innerHTML = rec.recycle1;
                //unid
                var newunid = rec.newunid;
                //изменяем по unid всё
                //удляем строку с атрибутом
                var tr = $G.GET(obj, "up:2");
                tr.parentNode.removeChild(tr);
                //пересчитать все суммы
                $m.im.GetAllPrice();
                //пересчитать сумму комплекта               
            } .bind(this), null, null, null, true);
        },
        GetAllPrice: function () {
            var req = new Request();
            req.Send("/ajax.ashx?action=im.GetAllPrice&rnd=" + Math.random(),
            function (req) {
                if ($G.Get.ById("recycleSumUp")) {
                    $G.Get.ById("recycleSumUp").innerHTML = req.responseText;
                    $G.Get.ById("recycleSumDown").innerHTML = req.responseText;
                }
            } .bind(this), null, null, null, true);
        }
    },
    ddl: {
        ddlUStatChoice: function (obj) {
            $G.Get.ById("ddlSpan").innerHTML = obj.innerHTML;
            $G.Get.ById('DoorSelect').setAttribute('size', obj.getAttribute('size'));

            $G.Display.Hide($G.Get.ById("ddlValues"));
            //пересчёт цены
            $m.pi.ConversionPrice();
        },
        ddlUStatOpen: function () {
            if ($G.Get.ById("ddlValues").style.display == "none")
                $G.Display.Block($G.Get.ById("ddlValues"));
            else
                $G.Display.Hide($G.Get.ById("ddlValues"));
        },
        ddlUStatChoice_С: function (obj) {
            $G.Get.ById("ddlSpan_C").innerHTML = obj.innerHTML;
            $G.Get.ById("ddlSpan_C").setAttribute('value', obj.getAttribute('value'));

            if ($G.Get.ById("ddlSpan_C").getAttribute('value') == "1" && $G.Get.ById("DoorDoubleCheckBox").getAttribute('checked') == "false") {
                $G.Get.ById('СlypeusSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('priceclypeus1') + " руб.";
            }
            else if ($G.Get.ById("ddlSpan_C").getAttribute('value') == "1" && $G.Get.ById("DoorDoubleCheckBox").getAttribute('checked') == "true") {
                $G.Get.ById('СlypeusSpanPrice').innerHTML = (parseFloat($G.Get.ById('DoorSelect').getAttribute('priceclypeus1')) * 2).toString() + " руб.";
            }
            else if ($G.Get.ById("ddlSpan_C").getAttribute('value') == "2" && $G.Get.ById("DoorDoubleCheckBox").getAttribute('checked') == "true") {
                $G.Get.ById('СlypeusSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('priceclypeus2') + " руб.";
            }
            else if ($G.Get.ById("ddlSpan_C").getAttribute('value') == "2" && $G.Get.ById("DoorDoubleCheckBox").getAttribute('checked') == "true") {
                $G.Get.ById('СlypeusSpanPrice').innerHTML = (parseFloat($G.Get.ById('DoorSelect').getAttribute('priceclypeus2')) * 2).toString() + " руб.";
            }
            $G.Display.Hide($G.Get.ById("ddlValues_С"));
            $m.pi.ConversionPrice();
        },
        ddlUStatOpen_С: function () {
            if ($G.Get.ById("ddlValues_С").style.display == "none")
                $G.Display.Block($G.Get.ById("ddlValues_С"));
            else
                $G.Display.Hide($G.Get.ById("ddlValues_С"));
        },
        ddlUStatChoice_D: function (obj) {
            $G.Get.ById("ddlSpan_D").innerHTML = obj.innerHTML; //записываем новое название доставки                            

            $G.Get.ById("ddlSpan_D").setAttribute('value', obj.getAttribute('value')); //записываем код             
            $G.Display.Hide($G.Get.ById("ddlValues_D")); //убираем варианты              
            if ($G.Get.ById("ddlSpan_D").getAttribute('value') == '2') {
                $G.Get.ById("DeliveryDivLenght").style.display = 'block';
                $G.Get.ById("DeliverySpanLenght").setAttribute('value', '1');
            }
            else if ($G.Get.ById("ddlSpan_D").getAttribute('value') == '1') {
                $G.Get.ById("DeliveryDivLenght").style.display = 'none';
            }
            $m.pi.ConversionPrice();
        },
        ddlUStatOpen_D: function () {
            if ($G.Get.ById("ddlValues_D").style.display == "none")
                $G.Display.Block($G.Get.ById("ddlValues_D"));
            else
                $G.Display.Hide($G.Get.ById("ddlValues_D"));
        },
        ddlCloseAll: function (e) {

            if (!$G.IsChildOf($G.Get.ById("DoorSizeDivCheckBox"), $G.Event.Target(e), 5) && $G.Get.ById("ddlValues").style.display == "block")
                $G.Display.Hide($G.Get.ById("ddlValues"));

            if (!$G.IsChildOf($G.Get.ById("СlypeusDivCheckBox"), $G.Event.Target(e), 5) && $G.Get.ById("ddlValues_С").style.display == "block")
                $G.Display.Hide($G.Get.ById("ddlValues_С"));

            if (!$G.IsChildOf($G.Get.ById("Delivery"), $G.Event.Target(e), 5) && $G.Get.ById("ddlValues_D").style.display == "block")
                $G.Display.Hide($G.Get.ById("ddlValues_D"));
        }
    },
    pi: {
        OpenDoorSelect: function (id) {
            var url = "ajax.ashx?action=getSelectedForm&itemId=" + id + "&rnd=" + Math.random();
            var request = new Request();
            request.Send(url, function callback(req) {
                var block = $G.Get.ById('DoorForm');
                block.style.display = "block";
                var response = eval(req.responseText); //массив параметров с хендлера                                                

                $G.Get.ById('DoorImg').src = response.DoorImg;
                $G.Get.ById('DoorTitle').innerHTML = response.DoorTitle;

                $G.Get.ById('DoorSelect').setAttribute('idclient', response.itemId);
                $G.Get.ById('DoorSelect').setAttribute('doorprice', response.doorPrice);
                $G.Get.ById('DoorSelect').setAttribute('pricedoorframe1', response.priceDoorFrame1);
                $G.Get.ById('DoorSelect').setAttribute('pricedoorframe2', response.priceDoorFrame2);
                $G.Get.ById('DoorSelect').setAttribute('priceaddon1', response.priceAddon1);
                $G.Get.ById('DoorSelect').setAttribute('priceaddon2', response.priceAddon2);
                $G.Get.ById('DoorSelect').setAttribute('priceclypeus1', response.priceСlypeus1);
                $G.Get.ById('DoorSelect').setAttribute('priceclypeus2', response.priceСlypeus2);
                $G.Get.ById('DoorSelect').setAttribute('deliveryprice', response.deliveryPrice);
                $G.Get.ById('DoorSelect').setAttribute('deliverylongprice', response.deliveryLongPrice);
                $G.Get.ById('DoorSelect').setAttribute('deliveryflag', response.deliveryFlag);

                $G.Get.ById('DoorAllPriceSpan').innerHTML = response.doorPrice + " руб.";

                $G.Get.ById('Delivery').setAttribute('deliveryflag', response.deliveryFlag);
                $G.Get.ById('Delivery').setAttribute('deliverytype', response.deliveryType);
                $G.Get.ById('Delivery').setAttribute('deliverylenght', response.deliveryLenght);
                $G.Get.ById('Delivery').setAttribute('deliveryprice', response.deliveryPrice);
                $G.Get.ById('Delivery').setAttribute('deliverylongprice', response.deliveryLongPrice);

                //вывести все цены
                $G.Get.ById('DoorFrameDivPrice').style.display = 'block';
                $G.Get.ById('DoorFrameSpanPrice').innerHTML = response.priceDoorFrame1 + " руб.";

                $G.Get.ById('AddonDivPrice').style.display = 'block';
                $G.Get.ById('AddonSpanPrice').innerHTML = response.priceAddon1 + " руб.";

                $G.Get.ById('СlypeusDivPrice').style.display = 'block';
                $G.Get.ById('СlypeusSpanPrice').innerHTML = response.priceСlypeus1 + " руб.";

                $G.Get.ById('DeliveryDivPrice').style.display = 'block';
                $G.Get.ById('DeliverySpanPrice').style.display = 'block';
                $G.Get.ById('DeliverySpanPrice').innerHTML = response.deliveryPrice + " руб.";
                //5.Наличник убрать тип 
                $G.Get.ById('СlypeusDivCount').style.display = 'none';

                //6.Доставка
                if (response.deliveryFlag == "1") {
                    $G.Get.ById('DeliveryCheckBox').src = '../resource/img/btn_checkbox.png';
                    $G.Get.ById('DeliveryCheckBox').setAttribute('checked', 'true');

                    $G.Get.ById('DeliveryDivCount').style.display = "block";
                    $G.Get.ById('ddlSpan_D').setAttribute('value', response.deliveryType);

                    if ($G.Get.ById('ddlSpan_D').getAttribute('value') == '1')
                        $G.Get.ById('ddlSpan_D').innerHTML = $G.Get.ById('ddlItem_D_1').innerHTML;
                    else if ($G.Get.ById('ddlSpan_D').getAttribute('value') == '2') {
                        $G.Get.ById('ddlSpan_D').innerHTML = $G.Get.ById('ddlItem_D_2').innerHTML;
                        $G.Get.ById('DeliveryDivLenght').style.display = "block";
                        $G.Get.ById('DeliverySpanLenght').setAttribute('value', response.deliveryLenght);
                    }
                }
                else {
                    $G.Get.ById('DeliveryCheckBox').src = '../resource/img/btn_checkbox2.png';
                    $G.Get.ById('DeliveryCheckBox').setAttribute('checked', 'false');

                    $G.Get.ById('DeliveryDivCount').style.display = "none";
                    $G.Get.ById('DeliveryDivLenght').style.display = "none";
                }
                //8.Замерщик    
                if (response.metering == 'True') {
                    $G.Get.ById('MeteringCheckBox').src = '../resource/img/btn_checkbox.png';
                    $G.Get.ById('MeteringCheckBox').setAttribute('checked', 'true');
                }
                else {
                    $G.Get.ById('MeteringCheckBox').src = '../resource/img/btn_checkbox2.png';
                    $G.Get.ById('MeteringCheckBox').setAttribute('checked', 'false');
                }
                //7.Установка
                if ($G.Get.ById('Installation')) {
                    if (response.installation == 'True') {
                        $G.Get.ById('InstallationCheckBox').src = '../resource/img/btn_checkbox.png';
                        $G.Get.ById('InstallationCheckBox').setAttribute('checked', 'true');
                    }
                    else {
                        $G.Get.ById('InstallationCheckBox').src = '../resource/img/btn_checkbox2.png';
                        $G.Get.ById('InstallationCheckBox').setAttribute('checked', 'false');
                    }
                }
                //картинки комбобоксов

                $G.Get.ById('ddlChoiceBtn1').style.height = 21+"px";
                $G.Get.ById('ddlChoiceBtn1').style.width = 21;
                $G.Get.ById('ddlChoiceBtn2').style.height = 21;
                $G.Get.ById('ddlChoiceBtn2').style.width = 21;
                $G.Get.ById('ddlChoiceBtn3').style.height = 21;
                $G.Get.ById('ddlChoiceBtn3').style.width = 21;
                //картинки чекбоксов
                $G.Get.ById('DoorDoubleCheckBox').style.height = 21;
                $G.Get.ById('DoorDoubleCheckBox').style.width = 21;
                $G.Get.ById('DoorFrameCheckBox').style.height = 21;
                $G.Get.ById('DoorFrameCheckBox').style.width = 21;
                $G.Get.ById('AddonCheckBox').style.height = 21;
                $G.Get.ById('AddonCheckBox').style.width = 21;
                $G.Get.ById('СlypeusCheckBox').style.height = 21;
                $G.Get.ById('СlypeusCheckBox').style.width = 21;
                $G.Get.ById('DeliveryCheckBox').style.height = 21;
                $G.Get.ById('DeliveryCheckBox').style.width = 21;
                if ($G.Get.ById('Installation')) {
                    $G.Get.ById('InstallationCheckBox').style.height = 21;
                    $G.Get.ById('InstallationCheckBox').style.width = 21;
                }
                $G.Get.ById('MeteringCheckBox').style.height = 21;
                $G.Get.ById('MeteringCheckBox').style.width = 21;

                //размеры
                var sizes = response.sizes.split(',');
                if (sizes) {
                    $G.Get.ById('ddlSpan').innerHTML = sizes[0] + " мм.";
                    $G.Get.ById('DoorSelect').setAttribute('size', sizes[0]);

                    $G.Get.ById('ddlValues').innerHTML = '';
                    for (var i = 0; i < sizes.length; i++) {
                        $G.Get.ById('ddlValues').innerHTML += "<a class='ddlItem' href='javascript:void(0);' size='" + sizes[i] + "' onclick='$m.ddl.ddlUStatChoice(this)'>" + sizes[i] + " мм. </a>";
                    }
                }
                //закрыть все комбобоксы
                $G.Display.Hide($G.Get.ById("ddlValues"));
                $G.Display.Hide($G.Get.ById("ddlValues_С"));
                $G.Display.Hide($G.Get.ById("ddlValues_D"));

                //снять все чекбоксы                	            
                $G.Get.ById('DoorDoubleCheckBox').src = '../resource/img/btn_checkbox2.png';
                $G.Get.ById('DoorDoubleCheckBox').setAttribute('checked', 'false');
                $G.Get.ById('DoorFrameCheckBox').src = '../resource/img/btn_checkbox2.png';
                $G.Get.ById('DoorFrameCheckBox').setAttribute('checked', 'false');
                $G.Get.ById('AddonCheckBox').src = '../resource/img/btn_checkbox2.png';
                $G.Get.ById('AddonCheckBox').setAttribute('checked', 'false');
                $G.Get.ById('СlypeusCheckBox').src = '../resource/img/btn_checkbox2.png';
                $G.Get.ById('СlypeusCheckBox').setAttribute('checked', 'false');

                //изменение названия коробки
                $G.Get.ById('DoorFrameSpanCheckBox').innerHTML = "Коробка";
                //изменение названия добора
                $G.Get.ById('AddonSpanCheckBox').innerHTML = "Добор";
                //изменение названия наличника
                $G.Get.ById('СlypeusSpanCheckBox').innerHTML = "Наличник";

                //показ формочки выбора                
                DoorSelect.Show(block);

                //пересчёт цены
                $m.pi.ConversionPrice();

            } .bind(request), function () { alert('Сервер не отвечает.'); } .bind(request)
        );
        },
        DeliverySpanLenghtChange: function (action) {//изменение километража
            if (parseInt($G.Get.ById('DeliverySpanLenght').getAttribute('value')) >= 0) {
                if (action == "up")
                    $G.Get.ById('DeliverySpanLenght').setAttribute('value', (parseInt($G.Get.ById('DeliverySpanLenght').getAttribute('value')) + 1));
                else if (action == "down" && parseInt($G.Get.ById('DeliverySpanLenght').getAttribute('value')) > 1)
                    $G.Get.ById('DeliverySpanLenght').setAttribute('value', parseInt($G.Get.ById('DeliverySpanLenght').getAttribute('value')) - 1);

                // пересчёт цены
                $m.pi.ConversionPrice();
            }
        },
        DoorDoubleChange: function (objdiv) {
            obj = $G.GET(objdiv, "img:1");
            if (obj.getAttribute('checked') == 'false') {
                obj.src = '../resource/img/btn_checkbox.png';
                obj.setAttribute('checked', 'true');
            }
            else {
                obj.src = '../resource/img/btn_checkbox2.png';
                obj.setAttribute('checked', 'false');
            }
            if (obj.getAttribute('checked') == 'true') {
                //изменение названия коробки
                $G.Get.ById('DoorFrameSpanCheckBox').innerHTML = "Коробка распашная";
                //изменение названия добора
                $G.Get.ById('AddonSpanCheckBox').innerHTML = "Добор распашной";
                //изменение названия наличника
                $G.Get.ById('СlypeusSpanCheckBox').innerHTML = "Наличник распашной";
                //вывести все цены на распашную
                $G.Get.ById('DoorFrameDivPrice').style.display = 'block';
                $G.Get.ById('DoorFrameSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('pricedoorframe2') + " руб.";

                $G.Get.ById('AddonDivPrice').style.display = 'block';
                $G.Get.ById('AddonSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('priceaddon2') + " руб.";

                $G.Get.ById('СlypeusDivPrice').style.display = 'block';
                $G.Get.ById('СlypeusSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('priceclypeus2') + " руб.";
            }
            else {
                //изменение названия коробки
                $G.Get.ById('DoorFrameSpanCheckBox').innerHTML = "Коробка";
                //изменение названия добора
                $G.Get.ById('AddonSpanCheckBox').innerHTML = "Добор";
                //изменение названия наличника
                $G.Get.ById('СlypeusSpanCheckBox').innerHTML = "Наличник";

                //вывести все цены на не распашную
                $G.Get.ById('DoorFrameDivPrice').style.display = 'block';
                $G.Get.ById('DoorFrameSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('pricedoorframe1') + " руб.";

                $G.Get.ById('AddonDivPrice').style.display = 'block';
                $G.Get.ById('AddonSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('priceaddon1') + " руб.";

                $G.Get.ById('СlypeusDivPrice').style.display = 'block';
                $G.Get.ById('СlypeusSpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('priceclypeus1') + " руб.";
            }

            // пересчёт цены
            $m.pi.ConversionPrice();
        },
        DoorFrameChange: function (objdiv) {
            obj = $G.GET(objdiv, "img:1");
            if (obj.getAttribute('checked') == 'false') {
                obj.src = '../resource/img/btn_checkbox.png';
                obj.setAttribute('checked', 'true');
            }
            else {
                obj.src = '../resource/img/btn_checkbox2.png';
                obj.setAttribute('checked', 'false');
            }
            // пересчёт цены
            $m.pi.ConversionPrice();
        },
        AddonChange: function (objdiv) {
            obj = $G.GET(objdiv, "img:1");
            if (obj.getAttribute('checked') == 'false') {
                obj.src = '../resource/img/btn_checkbox.png';
                obj.setAttribute('checked', 'true');
            }
            else {
                obj.src = '../resource/img/btn_checkbox2.png';
                obj.setAttribute('checked', 'false');
            }
            $m.pi.ConversionPrice();
        },
        СlypeusChange: function (objdiv) {
            if ($G.Get.ById('СlypeusCheckBox').getAttribute('checked') == 'false') {
                $G.Get.ById('СlypeusCheckBox').src = '../resource/img/btn_checkbox.png';
                $G.Get.ById('СlypeusCheckBox').setAttribute('checked', 'true');
            }
            else {
                $G.Get.ById('СlypeusCheckBox').src = '../resource/img/btn_checkbox2.png';
                $G.Get.ById('СlypeusCheckBox').setAttribute('checked', 'false');
            }
            // вывод контрола для цены на наличник
            if ($G.Get.ById('СlypeusCheckBox').getAttribute('checked') == 'true') {
                $G.Get.ById('СlypeusDivCount').style.display = 'block';
                $G.Get.ById('ddlChoiceBtn2').style.height = 21;
                $G.Get.ById('ddlChoiceBtn2').style.width = 21;

                $G.Get.ById('ddlSpan_C').setAttribute('value', '1');

                $G.Get.ById('ddlSpan_C').innerHTML = $G.Get.ById('ddlItem_C_1').innerHTML;

            }
            else {
                $G.Get.ById('СlypeusDivCount').style.display = 'none';
            }
            // пересчёт цены
            $m.pi.ConversionPrice();
        },
        DeliveryChange: function (objdiv) {
            obj = $G.GET(objdiv, "img:1");
            // вывод контрола для цены на наличник
            if (obj.getAttribute('checked') == 'false') {
                obj.src = '../resource/img/btn_checkbox.png';
                obj.setAttribute('checked', 'true');
            }
            else {
                obj.src = '../resource/img/btn_checkbox2.png';
                obj.setAttribute('checked', 'false');
            }
            if (obj.getAttribute('checked') == 'true') {
                $G.Get.ById('DeliveryDivCount').style.display = 'block';
                $G.Get.ById('ddlChoiceBtn3').style.height = 21;
                $G.Get.ById('ddlChoiceBtn3').style.width = 21;

                $G.Get.ById('ddlSpan_D').setAttribute('value', '1');
                $G.Get.ById('ddlSpan_D').innerHTML = $G.Get.ById('ddlItem_D_1').innerHTML; //"по Москве";

                $G.Get.ById('DeliverySpanPrice').innerHTML = $G.Get.ById('DoorSelect').getAttribute('deliveryprice');
            }
            else {
                $G.Get.ById('DeliveryDivCount').style.display = 'none';
                $G.Get.ById('DeliveryDivLenght').style.display = 'none';
            }
            // пересчёт цены
            $m.pi.ConversionPrice();
        },
        DeliveryTypeChange: function (flag) {
            if (flag == "1") {
                $G.Get.ById('ddlSpan_D').setAttribute('value', '1');
                $G.Get.ById('ddlSpan_D').innerHTML = $G.Get.ById('ddlItem_D_1').innerHTML; //"по Москве";   
            }
            else if (flag == "2") {
                $G.Get.ById('ddlSpan_D').setAttribute('value', '2');
                $G.Get.ById('ddlSpan_D').innerHTML = $G.Get.ById('ddlItem_D_2').innerHTML; //"за МКАД";   
            }
        },
        InstallationChange: function (objdiv) {
            obj = $G.GET(objdiv, "img:1");
            if (obj.getAttribute('checked') == 'false') {
                obj.src = '../resource/img/btn_checkbox.png';
                obj.setAttribute('checked', 'true');
            }
            else {
                obj.src = '../resource/img/btn_checkbox2.png';
                obj.setAttribute('checked', 'false');
            }
            // пересчёт цены
            $m.pi.ConversionPrice();
        },
        MeteringChange: function (objdiv) {
            obj = $G.GET(objdiv, "img:1");
            if (obj.getAttribute('checked') == 'false') {
                obj.src = '../resource/img/btn_checkbox.png';
                obj.setAttribute('checked', 'true');
            }
            else {
                obj.src = '../resource/img/btn_checkbox2.png';
                obj.setAttribute('checked', 'false');
            }
            // пересчёт цены
            $m.pi.ConversionPrice();
        },
        ConversionPrice: function () {//пересчёт цены            

            var DoorSelect = $G.Get.ById('DoorSelect');

            var idClient = DoorSelect.getAttribute('idclient');
            //цены            
            var doorPrice = DoorSelect.getAttribute('doorprice');
            var priceDoorFrame1 = DoorSelect.getAttribute('pricedoorframe1');
            var priceDoorFrame2 = DoorSelect.getAttribute('pricedoorframe2');
            var priceAddon1 = DoorSelect.getAttribute('priceaddon1');
            var priceAddon2 = DoorSelect.getAttribute('priceaddon2');
            var priceСlypeus1 = DoorSelect.getAttribute('priceclypeus1');
            var priceСlypeus2 = DoorSelect.getAttribute('priceclypeus2');
            //цены на доставку
            var deliveryPrice = DoorSelect.getAttribute('deliveryprice');
            var deliveryLongPrice = DoorSelect.getAttribute('deliverylongprice');

            if ($G.Get.ById('DoorDoubleCheckBox').getAttribute('checked') == 'true') {
                var AllPrice = 0;

                $G.Get.ById('DoorCountSpan').innerHTML = "2";
                AllPrice = parseFloat(doorPrice) * 2;
                //2. Коробка             
                if ($G.Get.ById('DoorFrameCheckBox').getAttribute('checked') == 'true' && parseFloat(priceDoorFrame2)) {
                    $G.Get.ById('DoorFrameSpanPrice').innerHTML = priceDoorFrame2 + " руб.";
                    AllPrice = parseFloat(AllPrice) + parseFloat(priceDoorFrame2);
                }
                //3.Добор             
                if ($G.Get.ById('AddonCheckBox').getAttribute('checked') == 'true' && parseFloat(priceAddon2)) {
                    $G.Get.ById('AddonSpanPrice').innerHTML = priceAddon2 + " руб.";
                    AllPrice = parseFloat(AllPrice) + parseFloat(priceAddon2);
                }
                //4.Наличники 
                var countСlypeus = 1;
                countСlypeus = parseInt($G.Get.ById("ddlSpan_C").getAttribute("value"));
                if ($G.Get.ById('СlypeusCheckBox').getAttribute('checked') == 'true' && parseFloat(priceСlypeus2) && parseInt(countСlypeus)) {
                    $G.Get.ById('СlypeusSpanPrice').innerHTML = (parseFloat(priceСlypeus2) * parseInt(countСlypeus)) + " руб.";
                    AllPrice = parseFloat(AllPrice) + parseFloat(priceСlypeus2) * parseInt(countСlypeus);
                }
                //6.Доставка
                var typeDelivery = 1;
                typeDelivery = parseInt($G.Get.ById("ddlSpan_D").getAttribute("value"));
                if ($G.Get.ById('DeliveryCheckBox').getAttribute('checked') == 'true' && parseFloat(deliveryPrice) && parseInt(typeDelivery)) {
                    if ($G.Get.ById('ddlSpan_D').getAttribute('value') == "1") {
                        $G.Get.ById('DeliverySpanPrice').innerHTML = parseFloat(deliveryPrice) + " руб.";
                        AllPrice = (parseFloat(AllPrice) + parseFloat(deliveryPrice));
                    }
                    else {
                        $G.Get.ById('DeliverySpanPrice').innerHTML = (parseFloat(deliveryPrice) + (parseFloat($G.Get.ById('DeliverySpanLenght').getAttribute('value')) * parseFloat(deliveryLongPrice))) + " руб.";
                        AllPrice = (parseFloat(AllPrice) + parseFloat(deliveryPrice) + (parseFloat(deliveryLongPrice) * parseFloat($G.Get.ById('DeliverySpanLenght').getAttribute('value'))));
                    }
                }
                else {
                    $G.Get.ById('DeliverySpanPrice').innerHTML = parseFloat(deliveryPrice) + " руб.";
                }

                //Общая цена             
                $G.Get.ById('DoorAllPriceSpan').innerHTML = AllPrice + " руб.";
            }
            else {
                var AllPrice = 0;

                $G.Get.ById('DoorCountSpan').innerHTML = "1";
                AllPrice = parseFloat(doorPrice);
                //2. Коробка             
                if ($G.Get.ById('DoorFrameCheckBox').getAttribute('checked') == 'true' && parseFloat(priceDoorFrame1)) {
                    $G.Get.ById('DoorFrameSpanPrice').innerHTML = priceDoorFrame1 + " руб.";
                    AllPrice = parseFloat(AllPrice) + parseFloat(priceDoorFrame1);
                }
                //3.Добор             
                if ($G.Get.ById('AddonCheckBox').getAttribute('checked') == 'true' && parseFloat(priceAddon1)) {
                    $G.Get.ById('AddonSpanPrice').innerHTML = priceAddon1 + " руб.";
                    AllPrice = parseFloat(AllPrice) + parseFloat(priceAddon1);
                }
                //4.Наличники 
                var countСlypeus = 1;
                countСlypeus = parseInt($G.Get.ById("ddlSpan_C").getAttribute("value"));
                if ($G.Get.ById('СlypeusCheckBox').getAttribute('checked') == "true" && parseFloat(priceСlypeus1) && parseInt(countСlypeus)) {
                    $G.Get.ById('СlypeusSpanPrice').innerHTML = (parseFloat(priceСlypeus1) * parseInt(countСlypeus)) + " руб.";
                    AllPrice = parseFloat(AllPrice) + parseFloat(priceСlypeus1) * parseInt(countСlypeus);
                }
                //6.Доставка
                var typeDelivery = 1;
                typeDelivery = parseInt($G.Get.ById("ddlSpan_D").getAttribute("value"));
                if ($G.Get.ById('DeliveryCheckBox').getAttribute('checked') == 'true' && parseFloat(deliveryPrice) && parseInt(typeDelivery)) {
                    if ($G.Get.ById('ddlSpan_D').getAttribute('value') == "1") {
                        $G.Get.ById('DeliverySpanPrice').innerHTML = parseFloat(deliveryPrice) + " руб.";
                        AllPrice = (parseFloat(AllPrice) + parseFloat(deliveryPrice));
                    }
                    else {
                        $G.Get.ById('DeliverySpanPrice').innerHTML = (parseFloat(deliveryPrice) + (parseFloat($G.Get.ById('DeliverySpanLenght').getAttribute('value')) * parseFloat(deliveryLongPrice))) + " руб.";
                        AllPrice = (parseFloat(AllPrice) + parseFloat(deliveryPrice) + (parseFloat(deliveryLongPrice) * parseFloat($G.Get.ById('DeliverySpanLenght').getAttribute('value'))));
                    }
                }
                else {
                    $G.Get.ById('DeliverySpanPrice').innerHTML = parseFloat(deliveryPrice) + " руб.";
                }

                $G.Get.ById('DoorAllPriceSpan').innerHTML = AllPrice + " руб.";
            }
        },
        BuyDoor: function () {
            $m.im.Buy(
               $G.Get.ById('DoorSelect').getAttribute('idclient'),
               $G.Get.ById('DoorSelect').getAttribute('size'),
               $G.Get.ById('DoorDoubleCheckBox').getAttribute('checked'),
               $G.Get.ById('DoorFrameCheckBox').getAttribute('checked'),
               $G.Get.ById('AddonCheckBox').getAttribute('checked'),
               $G.Get.ById('СlypeusCheckBox').getAttribute('checked'),
               $G.Get.ById('ddlSpan_C').getAttribute('value'),
               $G.Get.ById('DeliveryCheckBox').getAttribute('checked'),
               $G.Get.ById('ddlSpan_D').getAttribute('value'),
               $G.Get.ById('DeliverySpanLenght').getAttribute('value'),
            //               $G.Get.ById('InstallationCheckBox').getAttribute('checked'),
                'false',
               $G.Get.ById('MeteringCheckBox').getAttribute('checked')
               );
        }
    },
    po: {
        change: function () {
            document.location.href = '/ProductRecycle.aspx';
        }
    },
    fb: {
        CheckFields: function () {
            var _form = document.getElementById('defaultForm');
            var objs = _form.getElementsByTagName("input");
            var result = true;
            for (var i = 0; i < objs.length; i++) {
                if (objs[i].name.indexOf("aqu_") > -1) {
                    if (objs[i].name.indexOf("_1x") > -1 && objs[i].value == "") {
                        alert("Одно или несколько обязательных полей незаполненны. Рассчет данных невозможен.");
                        result = false;
                        break;
                    }

                }
            }
            if (result) {
                var a = $G.GET($G.Get.ById("FB_hidenLink"), "a:0");
                __doPostBack(a.id.toString().replace("_", "$"), "");
            }
        },
        calculate: function () {
            var arrea = document.getElementById("checks_list");
            if (arrea) {
                var inputs = arrea.getElementsByTagName("input");
                var result = 0;
                var summ = document.getElementById("CountBox");
                for (var i = 0; i < inputs.length; i++) {
                    var input = inputs[i];
                    if (input.type == "radio" || input.type == "checkbox")
                        if (input.value != "")
                            if (input.checked)
                                result += parseInt(input.value);
                }
                if (summ)
                    summ.value = result.toString() + " руб.";
            }
        },
        _clear: function () {
            var arrea = document.getElementById("checks_list");
            if (arrea) {
                var inputs = arrea.getElementsByTagName("input");
                var summ = document.getElementById("CountBox");
                for (var i = 0; i < inputs.length; i++) {
                    var input = inputs[i];
                    if (input.type == "radio" || input.type == "checkbox")
                        input.checked = false;
                }
                if (summ)
                    summ.value = "0 руб.";
            }
        }
    },
    SetHiddenValuesForSearch: function () {
        var hiddenSearchValue = null;
        var txtSearchValue = null;

        for (var i = 0; i < document.all.length; i++) {
            var obj = document.all.item(i);
            if (obj.id != "") {
                if (obj.id.indexOf("hiddenSearchValue") > -1)
                    hiddenSearchValue = obj;

                if (obj.id.indexOf("txtSearchValue") > -1)
                    txtSearchValue = obj;
            }
        }
        if (hiddenSearchValue != null && txtSearchValue != null)
            hiddenSearchValue.value = txtSearchValue.value;
    },

    change_validate: function () {
        array_inp = $CS.getGroup("txt_validate");
        valid_error = false;

        for (i = 0; i < array_inp.length; i++) {

            v = array_inp[i].validate();
            if (!v.res) { array_inp[i].obj.parentNode.className = "ticket_feedback_error"; valid_error = true; } else
            { array_inp[i].obj.parentNode.className = "feedback_input"; }

        }

        txt_result = $G.GET("#ctl00$txt_result");

        if (txt_result == null) {
            txt_result = $G.GET("#ctl00_txt_result");
        }

        if (valid_error) {
            txt_result.value = "Проверьте правильность заполнения полей";
        } else {
            txt_result.value = "";
        }
    },

    validate: function () {
        array_inp = $CS.getGroup("txt_validate");
        valid_error = false;
        for (i = 0; i < array_inp.length; i++) {
            if (array_inp[i].obj.value != "") {
                v = array_inp[i].validate();
                if (!v.res) { array_inp[i].obj.parentNode.className = "ticket_feedback_error"; valid_error = true; } else
                { array_inp[i].obj.parentNode.className = "feedback_input"; }
            } else {
                array_inp[i].obj.parentNode.className = "ticket_feedback_error";
                valid_error = true;
            }
        }

        txt_result = $G.GET("#ctl00$txt_result");

        if (txt_result == null) {
            txt_result = $G.GET("#ctl00_txt_result");
        }

        if (valid_error) {
            txt_result.value = "Проверьте правильность заполнения полей";
        } else {
            txt_result.value = "";
            __doPostBack('ctl00$btnLinkButton', '');
        }
    }
}
var $M = $m;

var _oldmove = document.onmousemove;
document.onmousemove = function(e) {
    //    if (_oldmove)
    //        _oldmove(e);
    var t = $G.Event.Target(e);
    if (!$m.IsChildOf(document.getElementById('dinMenu'), t, 50)) {
        $m.onunnav();
    }
    if ($m.IsChildOf(window["trg"], t, 20) || $m.IsChildOf(window["Menu"], t, 20)) {

        if (window["CTime"])
            clearTimeout(window["CTime"]);
    }
}

//из скрипта корзины

// Скопировано из base.js
// Модуль, исправляющий ошибку, связаную с некорректным отображением PNG файлов в IE 6 и ниже
// и содержащий в себе все дополнения к конкретному сайту
function fixPNG() {
    for (var i = 0; i < document.images.length; i++) {
        var img = document.images[i];
        imgSrc = img.src;
        if (imgSrc.substr(imgSrc.length - 3).toLowerCase() == "png") {
            var w, h;
            w = img.width, h = img.height;
            img.src = "/resource/img/px.gif";
            img.width = w, img.height = h;
            img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + imgSrc + "\', SizingMethod='scale');";
        }
    }
}
function fixPNGBackground(id, src) {
    var obj = document.getElementById(id);
    if (obj) {
        obj.style.background = "url(/resource/img/px.gif) repeat left top";
        obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + src + "\', SizingMethod='scale');";
        obj.parentNode.style.background = "url(/resource/img/px.gif) repeat left top";
    }
}
function isIE() {
    return ((navigator.userAgent.indexOf("IE") != -1) && (navigator.userAgent.indexOf("Opera") == -1));
}
if (isIE()) {
    window.attachEvent("onload", fixPNG);
}
function isIE6() {
    return isIE() && (navigator.userAgent.indexOf("IE 6") != -1);
}
function isFirefox() {
    return (navigator.userAgent.indexOf("Firefox") != -1);
}
