var price_val, check_price;

$(function() {    view_catalog();
    infoscroll(100, 1);

    check_price = function(t) {        var v = Number($(t).val()) || 0;
        var step = Number($(t).attr('step'));
        return (!v > 0 || v % step > 0) ? (v + step - v % step) : v;
    }

    price_val = function() {        $('.price-val').focus(function() {            $(this).select();
        }).blur(function() {            $(this).val(check_price(this));
            $('.price-val-el', $(this).parent()).hide();        })
        .keydown(function(e) {            if(e.keyCode == 13) {
                $(this).val(check_price(this));
                $(this).next('.price-basket').click();
                return false;
            }        })
        .keyup(function() {            var p = $(this).parent();            var v = check_price($('.price-val', p));
            var el = $('.price-val-el', p);
            if($(el).length == 0) {                el = $('<div class="price-val-el"></div>').appendTo(p);
            }
            $(el).html('= '+v).show();        });
    }

    price_val();

    function check_price_table(t) {
        var v = Number($(t).val()) || 0;
        if(v <= 0) return 0;
        var step = Number($(t).attr('step'));
        return (!v > 0 || v % step > 0) ? (v + step - v % step) : v;
    }

    $('.price-val-table').focus(function() {
        $(this).select();
    }).blur(function() {
        $(this).val(check_price_table(this));
        $('.price-val-el', $(this).parent()).hide();
    })
    .keydown(function(e) {
        if(e.keyCode == 13) {
            $(this).val(check_price_table(this));
            $('.price-send', $(this).closest('tr')).click();
            $('.price-save').click();
            return false;
        }
    })
    .keyup(function() {
        var p = $(this).parent();
        var v = check_price_table($('.price-val-table', p));
        var el = $('.price-val-el', p);
        if($(el).length == 0) {
            el = $('<div class="price-val-el"></div>').appendTo(p);
        }
        $(el).html('= '+v).show();
    });

    $('.price-basket').click(function() {        //$(this).closest('form').submit();
        var d = $(this).closest('.priceObj');
        var b = $(".basket-count");
        $('.price-val', d).val(check_price($('.price-val', d)));
        $.post('ajax.php?d=addbasket', $('form', d).serialize(), function(res) {
                 if(res != '[]'){
                     $(b).text(res.sh_count);
                 }
             }, 'json'
        );
        $(d)
         .clone()
         .css({'position' : 'absolute', 'z-index' : '6000'})
         .prependTo(d)
         .animate({
                 left: 0,
                 top: 0,
                 opacity: 0.5,
                 marginLeft: b.offset().left,
                 marginTop: b.offset().top,
                 width: 27,
                 height: 27
             }, 700, function() {
                 $(this).remove();
             }
         );
         return false;    });

    $(document).click(hide_catalog);});

var urlData = {};
var ctl, str, ctlUl, strUl, clickUl;

function pm(el) {
        var m = el.parentNode.getElementsByTagName('ul')[0];
        if(m) toggle(m);
}

function pmMenu(el) {
        var m = el.parentNode.getElementsByTagName('ul')[0];
        if(m) {
                var c = getOffsetSum(el);
                if(c.top > 300) {
                        if(m.offsetWidth > 0) hide(m);
                        else {
                                show(m);
                                m.style.marginTop = (-m.offsetHeight)+'px';
                        }
                } else toggle(m);
        }
}

function pmDop(el) {
        var ul = el.parentNode.getElementsByTagName('ul')[0];
        if(ul) {
                toggle(ul);
                //ul.top = 100; //el.offsetTop - ul.offsetHeight;
        }
}

function toggleID(el) {
        var elm = document.getElementById(el);
        if(elm) toggle(elm);
}

function loadDataUrl() {
        var uri = decodeURIComponent(location.search.substr(1)).split('&');
        for(var inst in uri)
        {
                var dan = uri[inst].split('=');
                urlData[dan[0]] = dan[1];
        }
}

loadDataUrl();

function createLI(ul, text) {
        var li = document.createElement('li');
        li.innerHTML = text;
        ul.appendChild(li);
}

function createOption(select, value, text, selected) {
        var option = document.createElement('option');
        option.value = value;
        if(text.length > 100) option.innerHTML = text.substr(0, 100)+'...';
        else option.innerHTML = text;
        option.selected = selected;
        select.appendChild(option);
}

function hide_catalog() {
        if(ctl && str && !clickUl)
        {
                var ctl_ul = ctl.getElementsByTagName('ul')[0];
                if(ctl_ul) {
                        if(!isHidden(ctl_ul)) hide(ctl_ul);
                } else {
                        var str_ul = str.getElementsByTagName('ul')[0];
                        if(str_ul) {
                                if(!isHidden(str_ul)) hide(str_ul);
                        }
                }
        }
        clickUl = false;
}

function view_catalog() {
        ctl = document.getElementById('catalogName');
        str = document.getElementById('catalogList');
        if(ctl && str) {
                if(urlData.c) {
                        if(catalog[urlData.c] != undefined) {
                                ctl.getElementsByTagName('span')[0].innerHTML = catalog[urlData.c].name.substring(0, 20);
                                catalog.c = urlData.c;
                                if(catalog[urlData.c].data[urlData.s] != undefined) {
                                        str.getElementsByTagName('span')[0].innerHTML = catalog[urlData.c].data[urlData.s].substring(0, 20);
                                }
                        }
                }
                ctl.onclick = function() {
                        clickUl = true;
                        if(str.getElementsByTagName('ul')[0]) hide(str.getElementsByTagName('ul')[0]);
                        if(!ctl.getElementsByTagName('ul')[0]) {
                                var ul = document.createElement('ul');
                                ctl.appendChild(ul);
                                for(var c in catalog) {
                                        if(catalog[c].name) {
                                                createLI(ul, '<a href="#" onClick="view_catalog_str(\''+c+'\'); return false;">'+catalog[c].name+'</a>')
                                        }
                                }
                        } else {
                                toggle(ctl.getElementsByTagName('ul')[0]);
                        }
                }
                str.onclick = function() {
                        clickUl = true;
                        if(catalog[catalog.c]) {
                                if(catalog.c == catalog.old_c) {
                                        toggle(str.getElementsByTagName('ul')[0]);
                                } else {
                                        catalog.old_c = catalog.c;
                                        if(str.getElementsByTagName('ul')[0]) str.removeChild(str.getElementsByTagName('ul')[0]);
                                        var ul = document.createElement('ul');
                                        str.appendChild(ul);
                                        for(var s in catalog[catalog.c].data) {
                                                createLI(ul, '<a href="catalog.php?c='+catalog.c+'&s='+s+'">'+catalog[catalog.c].data[s]+'</a>');
                                        }
                                }
                        } else if(str.getElementsByTagName('ul')[0]) {
                                str.removeChild(str.getElementsByTagName('ul')[0]);
                        } else {
                                var ul = document.createElement('ul');
                                str.appendChild(ul);
                                createLI(ul, '==Выберите страницу==');
                        }
                }
        }
        ctlSelect = document.getElementById('catalogNameSelect');
        strSelect = document.getElementById('catalogListSelect');
        if(ctlSelect && strSelect) {
                var select = document.createElement('select');
                select.onchange = function() {
                        catalog.c_select = this.value;
                        if(strSelect.getElementsByTagName('select')[0]) strSelect.removeChild(strSelect.getElementsByTagName('select')[0]);
                        var select = document.createElement('select');
                        select.onchange = function() {
                                if(this.value) location.href="catalog.php?c="+catalog.c_select+"&s="+this.value;
                        }
                        strSelect.appendChild(select);
                        createOption(select, '', '== Выберите раздел == ', false);
                        if(catalog[catalog.c_select]) {
                                for(var s in catalog[catalog.c_select].data) {
                                        createOption(select, s, catalog[catalog.c_select].data[s], false);
                                }
                        }
                }
                ctlSelect.appendChild(select);
                for(var c in catalog) {
                        if(catalog[c].name) {
                                createOption(select, c, catalog[c].name, ((urlData.c != c) ? false : true));
                        }
                }
                var select = document.createElement('select');
                select.onchange = function() {
                        if(this.value) location.href="catalog.php?c="+catalog.c_select+"&s="+this.value;
                }
                strSelect.appendChild(select);
                if(urlData.c) {
                        if(catalog[urlData.c]) {
                                catalog.c_select = urlData.c;
                                createOption(select, '', '== Выберите раздел == ', false);
                                for(var s in catalog[catalog.c_select].data) {
                                        createOption(select, s, catalog[catalog.c_select].data[s], ((urlData.s != s) ? false : true));
                                }
                        }
                }
        }
        ptlSelect = document.getElementById('priceNameSelect');
        ptrSelect = document.getElementById('priceListSelect');
        if(ptlSelect && ptrSelect) {
                if(urlData.n) {
                        if(price['r'+urlData.n]) {
                                price.c_select = 'r'+urlData.n;
                        } else {
                                for(var c in price) {
                                        if(price[c].data) {
                                                if(price[c].data[urlData.n]) {
                                                        price.c_select = c;
                                                        break;
                                                }
                                        }
                                }
                        }
                }
                var select = document.createElement('select');
                select.onchange = function() {
                        price.c_select = this.value;
                        if(ptrSelect.getElementsByTagName('select')[0]) ptrSelect.removeChild(ptrSelect.getElementsByTagName('select')[0]);
                        var select = document.createElement('select');
                        select.onchange = function() {
                                if(this.value) {
                                        if(this.value == 'all') location.href="price.php?n="+price.c_select.substr(1)+"&d=all";
                                        else location.href="price.php?n="+this.value;
                                }
                        }
                        ptrSelect.appendChild(select);
                        createOption(select, '', '== Выберите раздел ==&nbsp;', false);
                        createOption(select, 'all', '== Все разделы ==&nbsp;', false);
                        if(price[price.c_select]) {
                                for(var s in price[price.c_select].data) {
                                        createOption(select, s, price[price.c_select].data[s], false);
                                }
                        }
                }
                ptlSelect.appendChild(select);
                var selected = false;
                for(var c in price) {
                        if(price[c].name) {
                                if(!price.c_select) price.c_select = c;
                                createOption(select, c, price[c].name, ((price.c_select == c) ? true : false));
                        }
                }
                var select = document.createElement('select');
                select.onchange = function() {
                        if(this.value) {
                                if(this.value == 'all') location.href="price.php?n="+price.c_select.substr(1)+"&d=all";
                                else location.href="price.php?n="+this.value;
                        }
                }
                ptrSelect.appendChild(select);
                createOption(select, '', '== Выберите раздел ==&nbsp;', false);
                if(price.c_select) {
                        createOption(select, 'all', '== Все разделы ==&nbsp;', ((urlData.d == 'all') ? true : false));
                        for(var s in price[price.c_select].data) {
                                createOption(select, s, price[price.c_select].data[s], ((urlData.n == s) ? true : false));
                        }
                }
        }
}

function view_catalog_str(c) {
        catalog.c = c;
        ctl.getElementsByTagName('span')[0].innerHTML = catalog[c].name.substring(0, 20);
        str.getElementsByTagName('span')[0].innerHTML = '==Выберите страницу=';
}

var XMLHttpRequestObjectMap = false;

function imageMap(id, elem, l, t, w, h)
{
        if(!XMLHttpRequestObjectMap){
                if (window.XMLHttpRequest) {
                        XMLHttpRequestObjectMap = new XMLHttpRequest();
                } else if (window.ActiveXObject) {
                        XMLHttpRequestObjectMap = new ActiveXObject("Microsoft.XMLHTTP");
                }
        }

        var data = document.getElementById("infoMap");
        if(XMLHttpRequestObjectMap) {
                XMLHttpRequestObjectMap.open("GET", "ajax.php?d=price&s="+id);
                XMLHttpRequestObjectMap.onreadystatechange = function() {
                        if (XMLHttpRequestObjectMap.readyState == 4 &&
                            XMLHttpRequestObjectMap.status == 200) {
                                var data = document.getElementById("infoMap");
                                data.innerHTML = XMLHttpRequestObjectMap.responseText;
                                var img = document.getElementById("imagemap");
                                var c = getOffset(img);
                                data.style.display = 'block';
                                data.style.top = ((c.top + t + h + data.offsetHeight <= c.top + img.offsetHeight) ? c.top + t + h : c.top + t - data.offsetHeight) + 'px';
                                data.style.left = ((c.left + l + data.offsetWidth <= c.left + img.offsetWidth) ? left = c.left + l : c.left + l + w - data.offsetWidth) + 'px';
                                price_val();
                                $('.price-basket').click(function() {
                                    //$(this).closest('form').submit();
                                    var d = $(this).closest('.priceObj');
                                    var b = $(".basket-count");
                                    $('.price-val', d).val(check_price($('.price-val', d)));
                                    $.post('ajax.php?d=addbasket', $('form', d).serialize(), function(res) {
                                             if(res != '[]'){
                                                 $(b).text(res.sh_count);
                                             }
                                         }, 'json'
                                    );
                                    $(d)
                                     .clone()
                                     .css({'position' : 'absolute', 'z-index' : '6000'})
                                     .prependTo(d)
                                     .animate({
                                             left: 0,
                                             top: 0,
                                             opacity: 0.5,
                                             marginLeft: b.offset().left,
                                             marginTop: b.offset().top,
                                             width: 27,
                                             height: 27
                                         }, 700, function() {
                                             $(this).remove();
                                         }
                                 );
                                 return false;
                            });
                        }
                }
                XMLHttpRequestObjectMap.send(null);
        }
}

function infoscroll(seed, looped) {
        var msg = "г. Москва, Варшавское шоссе, 132 (на территории МРТИ РАН), тел. (495) 921-39-22 многоканальный, факс (495) 315-44-91,. E-mail:info@protos.ru";
        var putout = " ";
        var c = 1;
        if (looped > 10) { window.status="<Thanks !>"; }
        else if (seed > 100) {
                seed--;
                var cmd = "infoscroll("+seed+","+looped+")";
                timerTwo = window.setTimeout(cmd, 100);
        } else if (seed <= 100 && seed > 0) {
                for(c = 0; c < seed; c++) { putout += " "; }
                putout += msg.substring(0, 100 - seed);
                seed--;
                var cmd = "infoscroll("+seed+","+looped+")";
                window.status = putout;
                timerTwo = window.setTimeout(cmd, 100);
        } else if (seed <= 0) {
                if (-seed < msg.length) {
                        putout += msg.substring(-seed, msg.length);
                        seed--;
                        var cmd = "infoscroll(" + seed + "," + looped + ")";
                        window.status = putout;
                        timerTwo = window.setTimeout(cmd, 100);
                } else {
                        infoscroll(100, 1);
                }
        } else {
                window.status = " ";
                looped++;
                var cmd = "infoscroll(100, "+looped+")";
                timerTwo = window.setTimeout(cmd, 75);
        }
}

function chAll(tip){
        var d = document.chT;
        var col = d.elements.length;
        if(d.chA.checked == tip){
                var tp = true;
                var tx = "Отменить все";
        }else{
                var tp = false;
                var tx = "Выделить все";
        }
        for(i = 0; i < col; i++){
                if(d.elements[i].type == "checkbox"){
                        d.elements[i].checked = tp;
                }
        }
        document.chT.chA.title = tx;
}

function chTest(){
        var d = document.chT;
        var col = d.elements.length;
        var c_true = new Array;
        var c_false = new Array;
        for(i = 0; i < col; i++){
                if((d.elements[i].type == "checkbox") && (d.elements[i].name != "chA")){
                        if(d.elements[i].checked == true){
                                c_true[c_true.length] = d.elements[i].name;
                        }else{
                                c_false[c_false.length] = d.elements[i].name;
                        }
                }
        }
        if((c_true.length > 0) && (c_false.length == 0)) d.chA.checked = true;
        else if(c_false.length > 0) d.chA.checked = false;
}

function chTestPov(){
        var d = document.chT;
        var col = d.elements.length;
        var c = false;
        for(i = 0; i < col; i++){
                if((d.elements[i].type == "checkbox") && (d.elements[i].name != "chA")){
                        if(d.elements[i].checked == true){
                                c = true;
                                break;
                        }
                }
        }
        return c;
}

function chID(name){
        var d = document.chT;
        var col = d.elements.length;
        var c_true = new Array;
        var c_false = new Array;
        for(i = 0; i < col; i++){
                if(d.elements[i].id == name){
                        if(d.elements[i].checked == true){
                                c_true[c_true.length] = d.elements[i].name;
                        }else{
                                c_false[c_false.length] = d.elements[i].name;
                        }
                }
        }
        if((c_true.length > 0) && (c_false.length == 0)){
                for(i = 0; i < c_true.length; i++){
                        d.elements[c_true[i]].checked = false;
                }
                chTest();
        }else if(c_false.length > 0){
                for(i = 0; i < c_false.length; i++){
                        d.elements[c_false[i]].checked = true;
                }
                chTest();
        }
}

function chTD(name){
        var d = document.chT;
        var col = d.elements.length;
        for(i = 0; i < col; i++){
                if(d.elements[i].name == name){
                        if(d.elements[i].checked == true) d.elements[i].checked = false;
                        else d.elements[i].checked = true;
                        chTest();
                        break;
                }
        }
}

function chOne(name){
        var d = document.chT;
        var col = d.elements.length;
        for(i = 0; i < col; i++){
                if(d.elements[i].type == "checkbox"){
                        if(d.elements[i].name == name) d.elements[i].checked = true;
                        else d.elements[i].checked = false;
                }
        }
}

function chAction(){
        if(chTestPov()) {
                var confirmed = confirm('Вы действительно хотите удалить выбранные строки?');
                if(confirmed) document.chT.submit();
        } else alert("Выберите строки для массового действия!");
}

function Open(url, w, h){
        var l = (screen.width / 2) - (w / 2);
        var t = (screen.height / 2) - (h / 2);
        h += 40;
        w += 40;
        windop = window.open(url,'','left='+l+', top='+t+', height='+h+', width='+w+', status=no, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no');
}

function OpenM(url, w, h){
        if(w > screen.width) w = screen.width - 20;
        if(h > screen.height) h = screen.height - 20;
        var l = (screen.width / 2) - (w / 2);
        var t = (screen.height / 2) - (h / 2);
        h += 40;
        w += 40;
        windop = window.open(url,'','left='+l+', top='+t+', height='+h+', width='+w+', status=no, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=yes');
}

function sendShop(id){
        document.forms.namedItem("shopForm"+id).submit();
}
