/*--------------------------------
Функции для раздела "Магазины"

Власов Павел
06.10.2006
---------------------------------*/

// Функция для создания URL
// с фильтрами вывода списка
// магазинов
function GetFltUrl( url )
{
    // TODO : Это бы переписать рекурсивно
    // TODO : А еще иногда возникает бага с появлением ;; но это база данных сама отсекает.
    var urlAdd = '';
    var lastPpid = "";
    var inputListElem = document.getElementsByTagName("div");

    if (inputListElem)
    {
        for (var k=0; k<inputListElem.length; k++)
        {
            var inputListStr = '';
            if (!inputListElem[k].getAttribute("pid")) continue;

            if (inputListElem[k].getAttribute("pid").substr(0,1) == '_')
            {
                var inputs = inputListElem[k].getElementsByTagName('input');
                for (var i=0; i < inputs.length; i++)
                {
                    if (inputs[i].type != 'checkbox' && inputs[i].type != 'radio') continue;
                    if (inputListElem[k].getAttribute("pid") == '_city' && inputs[i].type != 'radio') continue;
                    if (inputs[i].checked && (!inputs[i].getAttribute("noshow")))
                    {
                        if (inputs[i].value == 'all') break;
                        if (inputs[i].getAttribute("ppid"))
                        {
                            if (lastPpid == inputs[i].getAttribute("ppid"))
                            {
                                inputListStr += inputs[i].value + ',';
                            }
                            else
                            {
                                if ((lastPpid != "") && (inputListStr != "")) inputListStr += ';';
                                inputListStr += inputs[i].getAttribute("ppid") + ',' + inputs[i].value + ',';
                                lastPpid = inputs[i].getAttribute("ppid");
                            }
                        }
                        else
                        {
                            // заплатка для элементов без ppid (т.е. без items) -->
                            if (inputListElem[k].getAttribute("pid") == '_sitems')
                            {
                                inputListStr += inputs[i].value + ';';
                            }
                            else
                            {
                            // <--
                                inputListStr += inputs[i].value + ',';
                            } // zaplatka
                        }
                    }
                }
                if (inputListStr.length) // если есть, что заполнять
                {
                    urlAdd = urlAdd + '/' + inputListElem[k].getAttribute("pid").substr(1,inputListElem[k].getAttribute("pid").length-1) + '/' + inputListStr.substr(0,inputListStr.length-1);
                }
            }
        }
    }

    //aID = ["inputMetroFilter", "inputGroupFilter", "inputServiceFilter"];
    aID = ["inputGroupFilter"];
    //aUrl= ["metro_list", "gitems", "sitems"];
    aUrl= ["gitems"];
    var AllGood = true; // по-умолчанию считаем, что все нормально

    for (k=0;k<1;k++)
    {
        if (!AllGood) break;
        if ( document.getElementById(aID[k]) && document.getElementById(aID[k]).checked )
            AllGood = (urlAdd.search(aUrl[k]) != -1);
    }
    if (!AllGood) AllGood = confirm(MsgClass.get('all_good','shops'));

    if (AllGood) location.href = url + urlAdd
    return false;
}


function GetCheckedList( childElem )
{
    return "test";
}



///
///    это убожество вместо usable forms, зато быстро%)
///    Бельский Илья 13.05.2008
///



function formsInit()
{
    var inputs = shops.getElementsByTagName('input');
    
    clearInputs(shops);
    clearInputs(document.getElementById('divMetro'));
    
    for (var i=inputs.length; i--;) {
        var input = inputs[i];
        if (input.type == 'radio') {
            if (input.addEventListener) {
                input.addEventListener("change", onRadioClick, false);
            } else {
                input.attachEvent('onclick',
                    function(e) {
                        setTimeout(onRadioClick, 100);
                    }
                 );
            }
        
        }
    }
    
    var input = document.getElementById('addFltCheckBox');
    if (input.addEventListener) {
        input.addEventListener("click", onAddFltClick, false);
    } else {
        input.attachEvent('onclick',
            function(e) {
                setTimeout(onAddFltClick, 100);
            }
         );
    }

    input = document.getElementById('inputMetroFilter');
    if (input.addEventListener) {
        input.addEventListener("click", onMetroFilter, false);
    } else {
        input.attachEvent('onclick',
            function(e) {
                setTimeout(onMetroFilter, 100);
            }
         );
    }
    
    
    input = document.getElementById('inputGroupFilter');
    if (input.addEventListener) {
        input.addEventListener("click", onGroupFilter, false);
    } else {
        input.attachEvent('onclick',
            function(e) {
                setTimeout(onGroupFilter, 100);
            }
         );
    }
    var divGroups = document.getElementById('divFilterGroups');
    var grInputs = divGroups.getElementsByTagName('input');
    for (var i=grInputs.length; i--;) {
        var ii = grInputs[i];
        if (ii.getAttribute('noshow') == 1) {
            if (ii.addEventListener) {
                ii.addEventListener("click", onSubGroupFilter, false);
            } else {
                ii.attachEvent('onclick', onSubGroupFilter
                    //function() {
                       //onSubGroupFilter(ii);
                    //}
                 );
            }
        }
    }
    
    

    input = document.getElementById('inputServiceFilter');
    if (input.addEventListener) {
        input.addEventListener("click", onServiceFilter, false);
    } else {
        input.attachEvent('onclick',
            function(e) {
                setTimeout(onServiceFilter, 100);
            }
         );
    }
    
}
// formsInit


function clearInputs(container)
{
    var inputs = container.getElementsByTagName('input');
    for (var i=inputs.length; i--;) {
        inputs[i].checked = false;
    }
}


function onRadioClick()
{
    var inputs = shops.getElementsByTagName('input');
    var input;
    for (var i=inputs.length; i--;) {
        input = inputs[i];
        if (input.type == 'radio' && input.checked) {
            break;
        }
    }
    var divMetro = document.getElementById('divMetro');
    
    if (input.value == 125 || input.value==154) {
        Element.removeClassName(divMetro, 'disable');
    } else {
        Element.addClassName(divMetro, 'disable');
    }
    
    if (input.value == 125) {
        document.getElementById('divMetroList_125').style.display = '';
        document.getElementById('divMetroList_154').style.display = 'none';
    } else if (input.value == 154) {
        document.getElementById('divMetroList_125').style.display = 'none';
        document.getElementById('divMetroList_154').style.display = '';
    }
    
    onAddFltClick();
}


function onAddFltClick()
{
    var div = document.getElementById('addFltRel');
    var cbox = document.getElementById('addFltCheckBox');

    if (cbox.checked && !Element.hasClassName('divMetro', 'disable')) {
        div.style.display = '';
    } else {
        div.style.display = 'none';
        //clearInputs(div);
    }
}


function onMetroFilter()
{
    var div = document.getElementById('divFilterMetro');
    var cbox = document.getElementById('inputMetroFilter');

    if (cbox.checked && document.getElementById('addFltRel').style.display != 'none') {
        div.style.display = '';
    } else {
        div.style.display = 'none';
        clearInputs(div);
    }
}


function onGroupFilter()
{
    var div = document.getElementById('divFilterGroups');
    var cbox = document.getElementById('inputGroupFilter');

    if (cbox.checked && document.getElementById('addFltRel').style.display != 'none') {
        div.style.display = '';
    } else {
        div.style.display = 'none';
        clearInputs(div);
    }
}


function onSubGroupFilter(e)
{
    e = e || window.event;
    var elem = e.target || e.srcElement; 

    var group = elem.getAttribute('show');
    var div = document.getElementById('div_'+group);
    var cbox = elem;
    if (cbox.checked) {
        div.style.display = '';
    } else {
        div.style.display = 'none';
        clearInputs(div);
    }
   
}


function onServiceFilter()
{
    var div = document.getElementById('divFilterServices');
    var cbox = document.getElementById('inputServiceFilter');

    if (cbox.checked && document.getElementById('addFltRel').style.display != 'none') {
        div.style.display = '';
    } else {
        div.style.display = 'none';
        clearInputs(div);
    }
}


//window.onload = formsInit;
(function(i) {
  var u = navigator.userAgent.toLowerCase();
  var ie = /*@cc_on!@*/false;
  if (/webkit/.test(u)) {
    // safari
    timeout = setTimeout(function(){
			if ( document.readyState == "loaded" || 
				document.readyState == "complete" ) {
				i();
			} else {
			  setTimeout(arguments.callee,10);
			}
		}, 10); 
  } else if ((/mozilla/.test(u) && !/(compatible)/.test(u)) ||
             (/opera/.test(u))) {
    // opera/moz
    document.addEventListener("DOMContentLoaded",i,false);
  } else if (ie) {
    // IE
    (function (){ 
      var tempNode = document.createElement('document:ready'); 
      try {
        tempNode.doScroll('left'); 
        i(); 
        tempNode = null; 
      } catch(e) { 
        setTimeout(arguments.callee, 0); 
      } 
    })();
  } else {
    window.onload = i;
  }
})(formsInit);














