$(document).ready(function() {
    c = 'country';
    
    $('#km_country').change(function () {
        $('#geo_km_ids_data').html("");
        var url = '/ajax/termslist/km_id/country/'+this.value;
        $.get(url, function(data) {
            var result = Drupal.parseJson(data);
            var resarr = result.cities;
            var cities = document.getElementById('km_city');
            if (cities)
            {
                var res;
                cities.length = 0;
                for (var i = 0; i < resarr.length; i++)
                {
                    cities.options[i] = new Option(resarr[i]['city'], resarr[i]['km_id']);
                }
                //hotels.options[0] = new Option('- Выберите -', 0);
            }
        });
    });
    
    $('#km_city').change(function () {
        $('#geo_km_ids_data').html("");
        $.get('/ajax/termslist/km_id/city/'+this.value, function(data) {
          $('#geo_km_ids_data').html(data);
        });
    });
    
    $('.km-wrap-ids input.subm_lt_km').click(function () {
        inp_tid = this.id.replace('subm_lt_km_','');
        inp_tid = parseInt(inp_tid);
        serq = '';
        inp_i = 0;
        $("ul#t3-"+inp_tid+" li input[type='text']").each(function(index){
            if (this.value != '')
            {
                //var inp_lt = this.id.replace('inp_km_','');
                //inp_lt = parseInt(inp_lt);
                inp_i++;
                if (inp_i>1) serq += ',';
                serq += this.id+":"+this.value+"";
            }
        });
        if (inp_i)
        {
            $("ul#t3-"+inp_tid+" li input").attr("disabled","disabled");
            $.post("/ajax/termslist/km_id/set", { pars: serq },
               function(data){
                 $("ul#t3-"+inp_tid+" li input").removeAttr("disabled");
                 $('#geo_km_ids_data').html("");
                    $.get('/ajax/termslist/km_id/city/'+$('#km_city').val(), function(data1) {
                      $('#geo_km_ids_data').html(data1);
                 });
            });
        }
    });
    
    $('#ls_country').change(function () {
        $('#geo_km_ids_data').html("");
        var url = '/ajax/termslist/ls_id/country/'+this.value;
        $.get(url, function(data) {
            var result = Drupal.parseJson(data);
            var resarr = result.cities;
            var cities = document.getElementById('ls_city');
            if (cities)
            {
                var res;
                cities.length = 0;
                for (var i = 0; i < resarr.length; i++)
                {
                    cities.options[i] = new Option(resarr[i]['city'], resarr[i]['km_id']);
                }
                //hotels.options[0] = new Option('- Выберите -', 0);
            }
        });
    });
    
    $('#ls_city').change(function () {
        $('#geo_km_ids_data').html("");
        $.get('/ajax/termslist/ls_id/city/'+this.value, function(data) {
          $('#geo_km_ids_data').html(data);
        });
    });
    
    $('.ls-wrap-ids input.subm_lt_km').click(function () {
        inp_tid = this.id.replace('subm_lt_km_','');
        inp_tid = parseInt(inp_tid);
        serq = '';
        inp_i = 0;
        $("ul#t3-"+inp_tid+" li input[type='text']").each(function(index){
            if (this.value != '')
            {
                //var inp_lt = this.id.replace('inp_km_','');
                //inp_lt = parseInt(inp_lt);
                inp_i++;
                if (inp_i>1) serq += ',';
                serq += this.id+":"+this.value+"";
            }
        });
        if (inp_i)
        {
            $("ul#t3-"+inp_tid+" li input").attr("disabled","disabled");
            $.post("/ajax/termslist/ls_id/set", { pars: serq },
               function(data){
                 $("ul#t3-"+inp_tid+" li input").removeAttr("disabled");
                 $('#geo_km_ids_data').html("");
                    $.get('/ajax/termslist/ls_id/city/'+$('#ls_city').val(), function(data1) {
                      $('#geo_km_ids_data').html(data1);
                 });
            });
        }
    });
    
    if ($('#edit-userfilter-geo').val() != 0)
    {
        t = $('#edit-userfilter-geo :selected').text();
        if (t.substr(0,2) == '--') t = t.substr(2);
        $('#userfilter-geo-label').text(t);
    }

    if ($('#edit-filterbox-countries').val() != 0)
    {
        c = 'country';
        t = $('#edit-filterbox-countries :selected').text();
        if (t.substr(0,2) == '--') t = t.substr(2);
        $('#filterbox-country-label').text(t);
    }

    if ($('#edit-filterbox-resorts').val() != 0)
    {
        c = 'resort';
        t = $('#edit-filterbox-resorts :selected').text();
        if (t.substr(0,2) == '--') t = t.substr(2);
        $('#filterbox-resort-label').text(t);
    }
    
    if ($('#edit-filterbox-hotels').val() != 0)
    {
        c = 'hotel';
        $('#filterbox-hotel-label').text($('#edit-filterbox-hotels :selected').text());
    }

    $('#filterbox-'+c).addClass("colored");

    if ($('#edit-filterbox-types').val() != 0)
    {
        $('#filterbox-type-label').text($('#edit-filterbox-types :selected').text());
    }

    $('div.bookmarks span').click(function() {
        $('div.bookmarks span.active').removeClass("active");
        $(this).addClass("active");

        var id = $(this).attr('id');

        $('table.visible').removeClass("visible").addClass("invisible");
        $('#table_'+id).removeClass("invisible").addClass("visible");
    });

    $('#link-countries').mouseover(function() {
        $('#geo-submenu').removeClass("invisible").addClass("visible");            
    }).mouseout(function() {
        var tm = setTimeout('$("#geo-submenu").removeClass("visible").addClass("invisible")', 500);

        $("#geo-submenu").attr("tmid", tm);
    });


    $('#geo-submenu').mouseover(function() {
        tm = $(this).attr("tmid");

        if (tm)
        {
            clearTimeout(tm);
        }

        $('#geo-submenu').removeClass("invisible").addClass("visible");            
    }).mouseout(function() {
        $(this).removeClass("visible").addClass("invisible");
    });

    $('#filterbox-country').click(function () {
        $('#filterbox-country-div').toggle();
        $('#filterbox-country-label').toggle();
    });

    $('#filterbox-resort').click(function () {
        $('#filterbox-resort-div').toggle();
        $('#filterbox-resort-label').toggle();
    });

    $('#filterbox-hotel').click(function () {
        $('#filterbox-hotel-div').toggle();
        $('#filterbox-hotel-label').toggle();
    });
    
    $('#filterbox-type').click(function () {
        $('#filterbox-type-div').toggle();
        $('#filterbox-type-label').toggle();
    });

    $('#filterbox-dates').click(function () {
        $('#filterbox-dates-div').toggle();
    });

    $('#userfilter-geo').click(function () {
        $('#userfilter-geo-div').toggle();
    });

    $('#edit-userfilter-geo').change(function () {
        t = $('#edit-userfilter-geo :selected').text();
        if (t.substr(0,2) == '--') t = t.substr(2);
        $('#userfilter-geo-label').text(t);
    });

    $('#edit-filterbox-countries').change(function () {
        t = $('#edit-filterbox-countries :selected').text();
        if (t.substr(0,2) == '--') t = t.substr(2);
        $('#filterbox-country-label').text(t);        
        var hotels = document.getElementById('edit-filterbox-hotels');
        if (hotels)
        {
            var res;

            hotels.length = 0;
            hotels.options[0] = new Option('- Выберите -', 0);
        }
        $('#filterbox-hotel-label').text('Выберите');
        $.get('ajax/termslist/'+ parseInt($('#edit-filterbox-countries').val(), 10), null, fillResorts);        
        $('#filterbox-country-div').toggle();
        $('#filterbox-country-label').toggle();
    });

    $('#edit-filterbox-resorts').change(function () {
        t = $('#edit-filterbox-resorts :selected').text();
        if (t.substr(0,2) == '--') t = t.substr(2);
        $('#filterbox-resort-label').text(t);        
        $.get('ajax/termslist/'+ parseInt($('#edit-filterbox-resorts').val(), 10), null, fillHotels);        
        $('#filterbox-resort-div').toggle();
        $('#filterbox-resort-label').toggle();
    });

    $('#edit-filterbox-hotels').change(function () {
        $('#filterbox-hotel-label').text($('#edit-filterbox-hotels :selected').text());
        $('#filterbox-hotel-div').toggle();
        $('#filterbox-hotel-label').toggle();
    });
    
    $('#edit-filterbox-types').change(function () {
        $('#filterbox-type-label').text($('#edit-filterbox-types :selected').text());
        $('#filterbox-type-div').toggle();
        $('#filterbox-type-label').toggle();
    });

    $('span.toggler').click(function () {
        $('#' + this.id + '-block').toggle();
    });
    
    $('#more-tags').click(function () {
        $('#more-tags-block').toggle();
    });

    $('a.toggler').click(function () {
        $('#' + this.id + '-block').toggle();
        return false;
    });
    
    //--------main geography-------------
    t1 = 0; t2 = 0; t3 = 0; t21 = 0;
    off_1 = 0; off_2 = 0; off_3 = 0;
    $('table.geo-all td.t1 span.dash').click(function () {
        if (t1 != 0)
        {
            $('#part-'+t1+'-block').toggle();        
        }
        t1 = this.id;
        t1 = t1.substr(5);
        return false;
    });
    $('table.geo-all td.t1 li a').click(function() {
        if (t2 != 0)
        {
            $('#t1-'+t2).removeClass('act');
            $('#li-'+t2).removeClass('act');
            $('#t2-'+t2).toggle();        
            if (t21 != 0)
            {
                $('#t2-'+t21+'-block').toggle(); 
                t21 = 0;    
            }
        }
        if (t3 != 0)
        {
            $('#t2-'+t3).removeClass('act');
            $('#t3-'+t3).toggle(); 
        }
        t2 = this.id;
        t2 = t2.substr(3);
        $('#t1-'+t2).addClass('act');
        $('#li-'+t2).addClass('act');
        $('#t2-'+t2).toggle();
        
        geo_link_set(1,t2);

        off = $('#li-'+t2).offset(); off_1 = off.top;
        if ($('#t2-'+t2).length)
        {
            off = $('#t2-'+t2).offset(); off_2 = off.top;
            if (off_1 != off_2)
            {
                d = off_1 - off_2;
                $('#t2-'+t2).css({'margin-top' : d+'px'});
            }
        }
        else
        off_2 = 0;
        
        t3 = 0;
        return false;
    });
    $('table.geo-all td.t1 a.country0').click(function () {
        if (t1 != 0)
        {
            document.getElementById('part-'+t1+'-block').style.display='none'; 
            t1 = 0;
        }
        if (t2 != 0)
        {
            $('#t1-'+t2).removeClass('act');
            $('#li-'+t2).removeClass('act');
            $('#t2-'+t2).toggle(); 
            if ($('#t2-'+t2).length)
            {
                $('#t2-'+t2).css({'margin-top' : '0px'});
            }
            if (t21 != 0)
            {
                $('#t2-'+t21+'-block').toggle(); 
                t21 = 0;    
            }       
        }
        if (t3 != 0)
        {
            $('#t2-'+t3).removeClass('act');
            $('#t3-'+t3).toggle(); 
        }
        t2 = this.id;
        t2 = t2.substr(3);
        $('#t1-'+t2).addClass('act');
        $('#li-'+t2).addClass('act');
        $('#t2-'+t2).toggle();
        
        geo_link_set(1,t2);
        
        off = $('#li-'+t2).offset(); off_1 = off.top;
        if ($('#t2-'+t2).length)
        {
            off = $('#t2-'+t2).offset(); off_2 = off.top;
            if (off_1 != off_2)
            {
                d = off_1 - off_2;
                $('#t2-'+t2).css({'margin-top' : d+'px'});
            }
        }
        else
        off_2 = 0;

        t3 = 0;
        return false;
    });
    $('table.geo-all td.t2 li a').click(function() {
        if (t3 != 0)
        {
            $('#t2-'+t3).removeClass('act');
            $('#t3-'+t3).toggle();        
            if ($('#t3-'+t3).length)
            {
                $('#t3-'+t3).css({'margin-top' : d+'px'});
            }
        }
        
        if ($('#t3-'+t3).length)
        {
            $('#t3-'+t3).css({'margin-top' : '0px'});
        }
        
        t30 = t3;
        t3 = this.id;
        t3 = t3.substr(3);
        $('#t2-'+t3).addClass('act');
        $('#t3-'+t3).toggle();
        
        geo_link_set(2,t3);
        
        off = $('#t2-'+t3).offset(); off_2 = off.top;
        if ($('#t3-'+t3).length)
        {
            off = $('#t3-'+t3).offset(); off_3 = off.top;
            if (off_2 != off_3)
            {
                d = off_2 - off_3 - 3;
                $('#t3-'+t3).css({'margin-top' : d+'px'});
            }
        }
        else
        off_2 = 0;
        
        if (document.getElementById('t2-'+t3).className == 't21 act')
        {
            
        }
        else
        if (t21 != 0)
        {
            $('#t2-'+t21+'-block').toggle(); 
            t21 = 0;    
        }


        if (document.getElementById('t2-'+t3).className == 'childs act')
        {
            t21 = t3;
            $('#t2-'+t3+'-block').toggle();     
        }
        
        return false;
    });
    
    //------------------------------

});

function geo_link_set(n,t)
{
    $('#geo-set-'+n).remove();
    if (n == 1)
    $('#geo-set-2').remove();
    lnk = document.getElementById('t'+n+'-'+t).href;
    txt = document.getElementById('t'+n+'-'+t).innerHTML;
    tmp = '<p id="geo-set-'+n+'" class="title"><a href="'+lnk+'">Описание</a></p>';
    //tmp1 = '<ul id="geo-set-'+n+'"><li><a href="'+lnk+'" class="title">Описание</a></li></ul>';
    //if ($('#t'+(n+1)+'-'+t).length)
    //$('#t'+(n+1)+'-'+t).prepend(tmp);
    
    $('#t'+n+'-'+t).after(tmp);
    
    /*else
    {
        $('#geo-all-'+(n+1)).prepend(tmp1);
        if (n == 1)
        {
            off = $('#li-'+t).offset(); off_1 = off.top;
            off = $('#geo-set-1').offset(); off_2 = off.top;
            if (off_1 != off_2)
            {
                d = off_1 - off_2;
                $('#geo-set-1').css({'margin-top' : d+'px'});
            }
        }
        if (n == 2)
        {
            off = $('#t2-'+t).offset(); off_1 = off.top;
            off = $('#geo-set-2').offset(); off_2 = off.top;
            if (off_1 != off_2)
            {
                d = off_1 - off_2;
                $('#geo-set-2').css({'margin-top' : d+'px'});
            }
        }
    }
    */
    //window.location.href = '/geography/#geo-to-top';
}

var fillResorts = function(data) {
    var result = Drupal.parseJson(data);

    var resarr = result.resorts;

    var resorts = document.getElementById('edit-filterbox-resorts');

    if (resorts)
    {
        var res;

        resorts.length = 0;

        for (var i = 0; i < resarr.length; i++)
        {
            resorts.options[i] = new Option(resarr[i]['tname'], resarr[i]['tid']);
        }
    }

    $('#filterbox-resort-label').text('Выберите');
}

var fillHotels = function(data) {
    var result = Drupal.parseJson(data);

    var resarr = result.resorts;

    var hotels = document.getElementById('edit-filterbox-hotels');

    if (hotels)
    {
        var res;

        hotels.length = 0;

        for (var i = 0; i < resarr.length; i++)
        {
            hotels.options[i] = new Option(resarr[i]['tname'], resarr[i]['tid']);
        }
        hotels.options[0] = new Option('- Выберите -', 0);
    }

    $('#filterbox-hotel-label').text('Выберите');
}


