

function getCookie(name) { // use: getCookie("name");
    var index = document.cookie.indexOf(name + "=");
    if (index == -1) return null;
    index = document.cookie.indexOf("=", index) + 1;
    var endstr = document.cookie.indexOf(";", index);
    if (endstr == -1) endstr = document.cookie.length;
    result = unescape(document.cookie.substring(index, endstr));
    return ((result != ' ')?result:null);
}


function setCookie(name, value, set) { // use: setCookie("name", value);
    today = new Date();
    expiry = new Date();
    if (set != null)
        expire= new Date(today.getTime() - 24 * 60 * 60 * 1000);
    else
        expiry = new Date(today.getTime() + 28 * 24 * 60 * 60 * 1000); // plus 28 days
    if (value != null /*&& value != ""*/)
        document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString();
}


function setCookieDoor()
{
    len = 0;
    for (key_door in _Door) len++;
    for (var i = 0; i < len; i++) {
        key_door = getAttributeByValue(_Door, 'number', String(i));
        if (key_door) {
                _Door[key_door]['on'] = false;
                cookie_label = getCookie(key_door+'-label');
                cookie_data = getCookie(key_door+'-data');
                if ((cookie_label != null) && (cookie_data != null)) {
                    changeElementText('label'+key_door, cookie_label);
                    changeElementText('data'+key_door, cookie_data);
                    if (_Door[key_door]['enable'])
                        _Door[key_door]['on'] = true;
                    setAttributeByElement(key_door, 'enable', 'on', true);
                    setAttributeByElement(key_door, 'disable', 'on', false);

                }
            }
    }
}

function getDoorItemTitle(name, isurl)
{
    html = '';
//    if (_Door[name]['number'])
//        html += '<b>'+_Door[name]['number']+'</b> ';
    if (isurl)
        html += '<a class="doorelement" href="#select" onclick="return changeSelect(\''+name+'\');"> '+_Door[name]['label']+'</a>';
    else {
        html += '<span ';
        if (_Door[name]['enable']) html += 'class="doorelementenable">';
        else html += 'class="doorelementdisable">';
        html += _Door[name]['label'];
        html += '</span>';
    }
    return html;
}

function getDoorItem(name)
{
    html = '<tr><td id="title'+name+'" colspan="3">';
    html += getDoorItemTitle(name, false);
    html += '</td></tr>';
    html += '<tr><td class="dooritem" id="label'+name+'" width="90%">';
    if (_Door[name]['enable'] && (value = getCookie(name+'-label')))
        html += value;
    else html += ' ';
    html += '</td>'
    html += '<td width="0"><img src="/images/1x1.gif" width="0" height="16"></td>';
    html += '<td class="doorvalue" id="data'+name+'" align="right"> </td></tr>';
    return html;
}

function getSelectItem(name, id, attribs, subname)
{
    if (attribs == null) return false;
    if (subname == null)
        subname = '';
    else
        subname = ', \''+subname+'\'';
    html = '<tr>';
    sub = '';
    filter = 'null';
    desc = '';
    image = false;
    tekst = '';
    for (attr in attribs)
        switch (attr) {
            case 'sub':
                sub = attribs['sub'];
                break;
            case 'filter':
                filter = '\''+attribs['filter']+'\'';
                break;
            case 'desc':
                desc = '<br><br><small> '+attribs['desc']+' </small>';
                break;
            case 'image':
                image = true;
                break;
            case 'text':
                tekst = attribs['text'];
                break;
        }
    html += '<td width="1%" align="right">';
    if (image)
        html += '<a href="'+attribs['image']+'.jpg" target="_blank" onClick="return openDoorItem(\''+attribs['image']+'.jpg\', \''+tekst+'\');"><img src="'+attribs['image']+'_sm.jpg" border"0" alt="открыть описание и фото"></a>';
    else
        html += ' ';
    html += '</td>';
    if (sub != '') {
        html += '<td class="selectitem"> '+attribs['label']+' [<a class="item" href="" onclick="return changeSelect(\''+name+'\', '+filter+', \''+sub+'\');" alt="открыть список">список</a>...] '+desc+'</td>';
        html += '<td class="selectitem" width="1%" align="right"> </td>';
    } else {
        html += '<td class="selectitem"> '+attribs['label']+' [<a class="selectitem" href="" onclick="return changeDoorItem(\''+name+'\', \''+id+'\''+subname+')" alt="сделать выбор">выбрать</a>] '+desc+'</td>';
        if (_Door[name]['price'])
            html += '<td class="selectitem" width="1%" align="right"> '+((attribs['value']!='0')?attribs['value']:'&nbsp;')+' </td>';
        else
            html += '<td width="1%" > </td>';
    }
    html += '</tr>';
    return html;
}

function getSelectTable(name, filter, subname)
{
    html = '';
    html += '<table width="100%" cellspacing="4" border="0" cellpadding="2">';
    html += '<tr><td colspan="3" align="left"><h1>'+_Door[name]['label']+   
//'</h2></td>'+_Door['Otkrivanie']['com']+ '</tr>';
  '</h1>'+_Door[name]['com']+ '</td></tr>';
    html += '<tr><td> </td><th><!--Наименование-->&nbsp;</th><th width="1%">';
    if (_Door[name]['price']) html += 'Цена';
    html += '</th></tr>';
    if (subname == null)
        massiv = eval('_'+name);
    else
        massiv = eval('_'+subname);
    if (filter != null)
        filter_massiv = filter.split(',');

    if (massiv != null)
        for (row in massiv) {
            if (filter == null)
                html += getSelectItem(name, row, massiv[row], subname);
            else
                for (index in filter_massiv)
                    if (filter_massiv[index] == row)
                        html += getSelectItem(name, row, massiv[row], subname);
        }
    html += '</table>';
    return html;
}




function changeElementText(id, html)
{
    if (html == null) return false;
    element = document.getElementById(id);
    if (element != null)
        element.innerHTML = html;
    return false;
}

function changeDoorItem(name, id, subname)
{
    if (subname == null)
        massiv = eval('_'+name);
    else
        massiv = eval('_'+subname);
    changeElementText('label'+name, massiv[id]['label']);
    changeElementText('data'+name, (massiv[id]['value']!='0')?massiv[id]['value']:'&nbsp;');
    changeElementText('help', '');
       //Изменения 13.02.07
        switch (name)
    {
    case 'Otkrivanie': changeElementText('select', '<P><FONT color=#aa0000>Теперь необходимо выбрать конструкцию петель: на опорных подшипниках или скрытые (невидимые)');   
           break;
    case 'Petli': changeElementText('select', '<P><FONT color=#aa0000>Для выбора внешнего вида наружной стороны двери щелкните курсором мышки по ссылке «Отделка снаружи»');
           break;
    case 'OtdelkaOut': changeElementText('select', '<P><FONT color=#aa0000>Для выбора внешнего вида   внутренней стороны двери щелкните курсором мышки по ссылке «Отделка внутри»');
           break;
    case 'OtdelkaIn': changeElementText('select', '<P><FONT color=#aa0000>Выбор замков для двери начинается с замка с защелкой, удерживающей не запертую дверь в закрытом состоянии. Щелкните курсором мышки по ссылке «Замок основной».');    
           break;
    case 'ZamokA': changeElementText('select', '<P><FONT color=#aa0000>Мы рекомендуем иметь в двери не менее двух замков разных систем. Для выбора второго замка щелкните курсором мышки по ссылке «Замок дополнительный (верхний)»');    
           break;
    case 'ZamokB': changeElementText('select', '<P><FONT color=#aa0000>Для увеличения взломостойкости двери желательно установить в дверь замок-невидимку FlashLock. Щелкните курсором мышки по  ссылке «Электронный замок»');    
           break;
    case 'ElectoZamki': changeElementText('select', '<P><FONT color=#aa0000>Для выбора ручки двери щелкните курсором мышки по ссылке «Ручки»');    
           break;
    case 'Ruchki': 
key_ZamokA = getAttributeByValue(_ZamokA, 'label', ZamokA, 'enable');
key_ZamokB = getAttributeByValue(_ZamokB, 'label', ZamokB, 'enable');
    if (key_ZamokA == '10,11') 
changeElementText('select', '<P><FONT color=#aa0000>Для выбора цилиндра (личинки) к замку щелкните курсором мышки по ссылке «Цилиндры к замку с защелкой»')
else
    if (key_ZamokB == '12,13')
changeElementText('select', '<P><FONT color=#aa0000> Для выбора цилиндра (личинки) к дополнительному замку щелкните курсором мышки по ссылке «Цилиндры к замку дополнительному (верхнему)»')
else
changeElementText('select', '<P><FONT color=#aa0000>Для выбора задвижки, не имеющей доступа снаружи, щелкните курсором мышки по ссылке «Задвижки»');
               break;
    case 'CilindrA': changeElementText('select', '<P><FONT color=#aa0000>Для защиты цилиндра от механического воздействия выбирите броненакладку. Щелкните курсором мышки по ссылке «Броненакладки к замку c защелкой»');  
           break;
    case 'BronenakladkaA':
key_ZamokB = getAttributeByValue(_ZamokB, 'label', ZamokB, 'enable');
    if (key_ZamokB == '12,13')
changeElementText('select', '<P><FONT color=#aa0000> Для выбора цилиндра (личинки) к дополнительному замку щелкните курсором мышки по ссылке «Цилиндры к замку дополнительному (верхнему)»')
else
changeElementText('select', '<P><FONT color=#aa0000>Для выбора задвижки, не имеющей доступа снаружи, щелкните курсором мышки по ссылке «Задвижки»');
           break;
    case 'CilindrB': changeElementText('select', '<P><FONT color=#aa0000>Для защиты цилиндра от механического воздействия выбирите броненакладку. Щелкните курсором мышки по ссылке «Броненакладки к замку дополнтельному (верхнему)»');           
           break;
    case 'BronenakladkaB': changeElementText('select', '<P><FONT color=#aa0000>Для выбора задвижки, не имеющей доступа снаружи, щелкните курсором мышки по ссылке «Задвижки»');    
           break;
    case 'Zadvijki': changeElementText('select', '<P><FONT color=#aa0000>Для выбора глазка щелкните курсором мышки по ссылке «Глазок»');    
           break;
    case 'Glazki': changeElementText('select', '<P><FONT color=#aa0000>Если Вы хотите иметь возможность пообщаться с посетителем через приоткрытую дверь, то выберите «Ограничитель открывания», щелкнув по нему курсором мышки');    
           break;   
    default: changeElementText('select',intro);
           break;
    } 
   //


    updateDoor(name);
    return false;
}

function changeSelect(name, filter, subname)
{
    changeElementText('help', _Door[name]['help']);
    changeElementText('select', getSelectTable(name, filter, subname));
    return false;
}




function printDoorItem(name)
{
    document.writeln(getDoorItem(name));
}

function setAttributeByElement(name, attr_search, attr_name, attr_value)
{
    element = document.getElementById('label'+name);
    if (element != null) {
        massiv = eval('_'+name);
        if (values = getAttributeByValue(massiv, 'label', element.innerHTML, attr_search)) {
            values_massiv = values.split(',');
            for (key_values in values_massiv) {
                key_door = getAttributeByValue(_Door, 'number', values_massiv[key_values]);
                _Door[key_door][attr_name] = attr_value;
            }
        }
    }
}

function clearElementByElement(name, attr_search)
{
    element = document.getElementById('label'+name);
    if (element != null) {
        massiv = eval('_'+name);
        if (values = getAttributeByValue(massiv, 'label', element.innerHTML, attr_search)) {
            values_massiv = values.split(',');
            for (key_values in values_massiv) {
                key_door = getAttributeByValue(_Door, 'number', values_massiv[key_values]);
	        changeElementText('label'+key_door, '');
        	changeElementText('data'+key_door, '');
            }
        }
    }
}

function getElementValueById(element_name)
{
    element_value = null;
    element = document.getElementById(element_name);
    if (element != null)
        if (element.innerHTML)
            element_value = element.innerHTML;
    if (element_value == ' ') element_value = null;
    return element_value;
}

function getAttributeByValue(massiv, attr_name, attr_search, attr_result)
{
    for (attrib in massiv)
        if (massiv[attrib][attr_name] == attr_search) {
            if (attr_result != null)
                return massiv[attrib][attr_result];
            else return attrib;
        }
    return false;
}

function updateDoor(step)
{
    for (key in _Door) {
        element = document.getElementById('label'+key);
        if (element != null) eval(key+' = element.innerHTML');
        else eval(key+' = \'\'');
        on = false;
        for (attr in _Door[key])
            switch (attr) {
                case 'on':
                    on = _Door[key]['on'];
                    break;
            }
        if (!on) _Door[key]['on'] = _Door[key]['enable'];
    }
    key_petli = getAttributeByValue(_Petli, 'label', Petli, 'key')
        //Изменения 07.01.07 
    key_otdelki = getAttributeByValue(_OtdelkaOut, 'label', OtdelkaIn, 'key')
    if (!key_otdelki)
        //Изменения 07.07.08 
        key_otdelki = getAttributeByValue(_Otdelka, 'label', OtdelkaIn, 'key')       
    if (key_petli && key_otdelki) {
        Konstrukcia = key_petli + key_otdelki;

        //Изменения 22.01.07 

        element=document.getElementById('labelOtdelkaOut');
        element_value = element.innerHTML;
        
        Out = getAttributeByValue(_Otdelka,'label', element_value, 'value');       
        element=document.getElementById('labelOtdelkaIn');
        element_value = element.innerHTML;
        In = getAttributeByValue(_Otdelka,'label', element_value, 'value'); 
        changeElementText('labelKonstrukcia', _Konstrukcia[Konstrukcia]['label']);
        changeElementText('dataKonstrukcia', _Konstrukcia[Konstrukcia]['value']+Out+In);

        //
    } else {
        changeElementText('labelKonstrukcia', '');
        changeElementText('dataKonstrukcia', '');
    }
    labelOtdelkaA = getAttributeByValue(_Otkrivanie, 'label', Otkrivanie, 'a');
    labelOtdelkaB = getAttributeByValue(_Otkrivanie, 'label', Otkrivanie, 'b');
    itog = 0;
    lengh = 0;
    fill = 0;
    for (key_door in _Door) {
        lengh++;
        if (data_door = getElementValueById('data'+key_door)) {
            setCookie(key_door+'-data', data_door);
            if (_Door[key_door]['on']) {
                _Door[key_door]['on'] = true;
                fill = (_Door[key_door]['number']>fill)?_Door[key_door]['number']:fill;
            }
            if ((key_door != 'OtdelkaOut') && (key_door != 'OtdelkaIn'))
            if (!isNaN(data_door))
                itog += Number(data_door);
        }
        if (label_door = getElementValueById('label'+key_door))
            setCookie(key_door+'-label', label_door);
    }
    if (itog == 0) itog = '';
    if (!step) step = 'Nachalo';
    setAttributeByElement(step, 'enable', 'on', true);
    setAttributeByElement(step, 'disable', 'on', false);
    clearElementByElement(step, 'disable');
//    alert(fill);
    if (fill) step = getAttributeByValue(_Door, 'number', fill);
    number = Number(_Door[step]['number']);
    while (!(a_res = getAttributeByValue(_Door, 'number', Number(number+1), 'on')) && (number < lengh))
        number++;
    step_next = getAttributeByValue(_Door, 'number', Number(number));
    document.forms['podbor'].elements['0'].value = '';
    islink = true;
    isend = false;
    changeElementText('dataItog', itog);
    j = 1;
    for (var i = 0; i < lengh; i++) {
        key_door = getAttributeByValue(_Door, 'number', String(i));
        isedit = getAttributeByValue(_Door, 'number', String(i), 'on');
        if (key_door) changeElementText('title'+key_door, getDoorItemTitle(key_door, islink && isedit));
        if (isend) islink = false;
        if (key_door == step_next) isend = true;
        if (label_door = getElementValueById('label'+key_door)) {
            addition = '';
            switch (key_door) {
                case 'OtdelkaOut':
                    addition = ' ' + labelOtdelkaA;
                    break;
                case 'OtdelkaIn':
                    addition = ' ' + labelOtdelkaB;
                    break;
            }
           //Изменения 22.01.07
             if (j==1){
             today =  new Date();
             date = today.getDate();
             month = today.getMonth()+1;  
             year = today.getFullYear(); 
             document.forms['podbor'].elements['0'].value += j + ') ' + 'Дата: '+ date + '.'+ month + '.' + year+  ";\n";
                j++;}
             if (j<4) { 
            document.forms['podbor'].elements['0'].value += j + ') ' + _Door[key_door]['label'] + ': '+label_door +  ";\n";
                j++;}

            price = '';
            if (!isNaN(data_door = getElementValueById('data'+key_door)))
                price = '  ' + 'цена=' + Number(data_door) + ' руб.';
            if ((price != '')&& (j>2)) {          
               if (j == 4)
                document.forms['podbor'].elements['0'].value += j + ') ' +  label_door +': '+ price + ";\n";
                if ((j == 5) || (j == 6)) 
                document.forms['podbor'].elements['0'].value += j + ') ' + _Door[key_door]['label']+ ': ' + label_door  + ";\n";
                 if (j>6)
                //
                document.forms['podbor'].elements['0'].value += j + ') ' + _Door[key_door]['label'] + addition + ': ' + label_door + price + ";\n";
                j++;
              }
            }
        }
   // }
    document.forms['podbor'].elements['0'].value += 'Итого: ' + itog + " руб. \n";
    changeElementText('dataItog', itog);
    if (labelOtdelkaA) changeElementText('labelA', labelOtdelkaA);
    if (labelOtdelkaA) changeElementText('titleA', labelOtdelkaA);
    if (labelOtdelkaB) changeElementText('labelB', labelOtdelkaB);
    if (labelOtdelkaB) changeElementText('titleB', labelOtdelkaB);
    changeElementText('dataOtdelkaOut', '');
    changeElementText('dataOtdelkaIn','');

    return false;
}

function checkDoor()
{
    return (getElementValueById('dataItog') > 0);
}

function clearDoor()
{
    for (key_door in _Door) {
        setCookie(key_door+'-data', '', false);
        setCookie(key_door+'-label', '', false);
        _Door[key_door]['on'] = _Door[key_door]['enable'];
        changeElementText('label'+key_door, '');
        changeElementText('data'+key_door, '');
    }
    changeElementText('select', intro);
    updateDoor(null);
    return false;
}

function openDoorItem(image, tekst)
{
    var win = new PopupWindow();
    win.autoHide();
    html = '<html><head>';
    html += '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">';
    html += '<title>'+'</title>';
    html += '</head><body><div align="center"><a href="/" onclick="javascript: window.close(); return false;">закрыть</a></div><table border="0"><tr>';
    if (image != null)
        html += '<td><img src="' + image + '" alt="" align="left"></td>';
    if (tekst != null)
        html += '<td class="itemtext" valign="top"><p class="itemtext">' + tekst + '</p></td>';
    html += '</tr></table><div align="center"><a href="/" onclick="javascript: window.close(); return false;">закрыть</a></div></body></html>';
    win.populate(html);
    win.setSize(600, 610);
    win.showPopup('top');
    return false;
}

function printDoor()
{
    var win = new PopupWindow();
    win.autoHide();
    html = '<html><head>';
    html += '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">';
    html += '<title>Просмотр заказа</title>';
    html += '</head><body>';
    html += '<pre>' + document.forms['podbor'].elements['0'].value + '</pre>';
    html += '<style type="text/css" media=screen>.comments { display: none; }</style><div class="comments">Для распечатки заказа необходимо: <br>- нажать на клавиатуре клавиши "Ctrl" и "P" <br>или <br>- щелкнуть правой кнопкой мышки и выбрать в раскрывшемся контекстном меню команду "Печать" (Print).</div>';
    html += '</body></html>';
    win.populate(html);
    win.setSize(600, 500);
    win.showPopup('top');
    return false;
}


