Event.observe(window, 'load', function() {
        if ($('poll-container')){
                var poll_id = $('poll-container').className.replace(/\D+/, '');
                
                if (poll_id){
                        new Ajax.Request('/poll/display_' + poll_id + '.ajax', {
                                onSuccess: function(transport) {
                                        $('poll-container').update(transport.responseText);
                                        $$('a.prev-poll').each(function(link) {
                                                observeLink(link);
                                        });
										
										setupTileToggleAction($$('div#poll-container div.action a')[0]);
										
                                        // observe vote click
                                        vote_observe();
                                }
                        });
                }
                
                function vote_observe(){
                        if ($('pollform')){
                                return Event.observe('pollform', 'submit', function(e) {
                                        
                                        new Ajax.Request('/poll/vote.ajax', {
                                                parameters: Form.serialize('pollform'),
                                                onSuccess: function(transport) {
                                                        $$('div.poll_inards')[0].update(transport.responseText);
                                                }
                                        });
                                        
                                        Event.stop(e);
                                });
                        }
                }
        
                function observeLink(link){
                        Event.observe(link, 'click', function(e) {
                                Event.stop(e);
                                var pollID = $(Event.element(e)).identify().split('_')[1];
                                var prevPollHtml = '/poll/display_' + pollID + '.ajax';
                                var pollHeight = $('poll-container').getHeight();
                                new Effect.toggle($('poll-container'), 'appear', { 
                                        duration: 0.5, 
                                        afterFinish: function() {
                                                $$('a.prev-poll').each(function(link) { link.stopObserving() });
                                                $('poll-container').setStyle({ height: pollHeight + 'px' });
                                                $('poll-container').update('<span class="throbber">Loading poll, please wait...</span>');
                                                $('poll-container').show();
                                                new Ajax.Request(prevPollHtml, {
                                                        onSuccess: function(transport) {
                                                                Element.writeAttribute($('poll-container'), {style:''});
                                                                $('poll-container').hide();
                                                                $('poll-container').update(transport.responseText);
                                                                new Effect.toggle($('poll-container'), 'appear');
                                                                $$('a.prev-poll').each(function(link) { observeLink(link) });
                                                                // observe vote click
                                                                vote_observe();
                                                        }
                                                });
                                        }
                                });     
                        });
                }
        }
        // poll archive page
        if ($$('div.poll-container').length > 0 && typeof(nohide) == 'undefined' ){
                $$('div.poll_inards').each(function(result) {
                        result.hide().identify();
                        result.removeClassName('archive');
                });
                $$('p.poll-comments').each(function(question) {
                        var html = ' | <a href="#" class="view-result">view result</a>';
                        question.update(question.innerHTML + html);
                });
                $$('a.view-result').each(function(link) {
                        Event.observe(link, 'click', function(e) {
                                Event.stop(e);
                                Event.element(e).innerHTML = (Event.element(e).innerHTML != 'view result') ? 'view result' : 'hide result';
                                var resultBox = $(Event.element(e)).up('div.tile2').down('p.poll-question').next();
                                new Effect.toggle(resultBox, 'Blind', { duration: 0.4 });
                        });
                });
        }
        
});