window.addEvent('domready', function() {

    if ($('liqpay')) {
        $('liqpay').submit();
    }

    $$($('srs_id'), $('payment_monthes')).addEvent('change', function() {
        var price = $('srs_id').getSelected()[0].get('title').toFloat();
        var monthes = $('payment_monthes').getSelected()[0].get('title').toInt();
        $('payment_summ').set('text', price*monthes);
    });

    $$('#roller > p').each(function(p) {
        var element = $(p);

        if (p.getElement('a')) {
            element = p.getElement('a');
        }

        var roller = Asset.image(element.get('text'), {onLoad: function(img) {
            var container = new Element('div');
            if (element.get('tag') == 'a') {
                container = new Element('a', {'href': element.get('href')});
            }
            container.set('html', '&nbsp;');
            container.setStyles({
                'height': $(img).get('height') + 'px',
                'background': 'url(' + $(img).get('src') + ') repeat-x center',
                'text-decoration': 'none'
            });
            $('roller').grab(container);
            container.get('slide').hide();
            container.set('slide', {duration: 300});
            container.slide('in');
        }});
    });

    if ($('lifetime')) {
        var startTime = new Date($('lifetime').getElement('span').get('text'));
        var minutes = new String(((new Date() - startTime)/1000/60).toInt());
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(minutes)) {
            minutes = minutes.replace(rgx, '$1' + ' ' + '$2');
        }
        $('lifetime').getElement('span').set('text', minutes);
    }

    if ($('content').getElement('table.statistic')) {
        $('content').getElements('table.statistic table.monthes tr[rel]').each(function(e) {
            e.addEvent('click', function() {
                var month = $('statistic').getElement('select[name=month]');
                selectedIndex = month.getElement('option[value=' + e.get("rel") + ']').getAllPrevious('option').length;
                month.selectedIndex = selectedIndex;
                $('statistic').submit();
            });
        });
    }

    if ($('content').getElement('table.statistic')) {
        $('content').getElements('table.statistic table.days tr[rel]').each(function(e) {
            e.addEvent('click', function() {
                if (!e.hasClass('detail')) {
                    e.getParent('table').getElements('table.detailed').getParent('tr').destroy();
                    e.getParent('table').getElements('tr.detail').removeClass('detail');
                    e.addClass('detail');
                    td = new Element('td', {'colspan': 5, 'text': 'загрузка...'});
                    e.grab((new Element('tr', {'class': 'detail'})).grab(td), 'after');
                    td.load(e.get('rel'));
                }
            });
        });
    }
    
    if ($('street-title')) {
        var valuesDiv = $('street-values');
        var streetDiv = $('houses').getElement('.street');
        var housesDiv = $('houses').getElement('.numbers');

        var nulledDivs = $$(valuesDiv, streetDiv, housesDiv);

        $('request-street').get('send').addEvents({
            'onRequest': function() {
                Array.each(nulledDivs, function (e) { e.empty() });
                $('request-street').getElement("input[name=title]").set('value', $('street-title').get('value').trim());
                $('request').getElement('input[name=house]').set('value', '');
            },
            'onComplete': function(response) {
                var streets = JSON.decode(response);
                Object.each(streets, function(title, value) {
                    valuesDiv.grab(new Element('a', {'text': title,
                        'events': {
                            "click": function(e) {
                                e.stop();
                                $('street-title').set('value', title);
                                $('request-houses').getElement('input[name=street]').set('value', value);
                                $('request-houses').get("send").setHeader("X-CSRFToken", Cookie.read('csrftoken'));
                                $('request-houses').send();
                                streetDiv.set('text', title);
                            }
                        },
                        'styles': {
                            'display': 'block',
                            'cursor': 'pointer',
                        }
                    }));
                });
                $('noHouse').removeClass('hidden');
            }
        });

        $('request-houses').get('send').addEvents({
            'onRequest': function() {
                Array.each(nulledDivs, function (e) { e.empty() });
            },
            'onComplete': function(response) {
                var houses = JSON.decode(response);
                Object.each(houses, function(house, value) {
                    var link = new Element('a', {'text': house.number + ' ', 'href': '#content',
                        'events': {
                            "click": function(e) {
                                e.stop();
                                this.getParent().getElements('a').removeClass('selected');
                                this.addClass('selected');
                                $('request').getElement('input[name=house]').set('value', value);
                                document.placemarks[value].openBalloon();
                            }
                        }
                    });
                    housesDiv.grab(link);
                });
            }
        });
        
        $('request').addEvent('submit', function(e) {
            if (!$('request').getElement('input[name=house]').get('value')) {
                e.stop();
                alert('Укажите улицу и дом');
            }
        });

        $('street-title').addEvent("keyup", function() {
            var value = $('street-title').get('value').trim();
            if (value) {
                $('request-street').send();
            } else {
                Array.each(nulledDivs, function (e) { e.empty() });
                $$('#request-street input[name=title], #request-houses input[name=street]').set('value', '');
                $('request').getElement('input[name=house]').set('value', '');
            }
        });
    }
});
