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


    // run markup hacks
    // new Exm();
    
    var elements = $$('input[type=text], input[type=password], textarea');
    
    var input = function(e){
        if (e.get('value').length > 0) {
            e.store('defaultValue', e.get('value')).addEvents({
                    'focus': function(){
                        if( this.get('value') === this.retrieve('defaultValue'))
                            this.set('value', '');
                        return false;
                    },
                    'blur': function(){
                        if( this.get('value') === '')
                            this.set('value', this.retrieve('defaultValue'));
                        return false;
                    }
                });
        }
        return this;
    }
    
    elements.each(input);
    

    // ie 6 hacks
    // if (Browser.Engine.trident && Browser.Engine.version<=4) {
    //     $$('input').each(function(element){
    //         element.addClass(this.get('type'));
    //     });
    // }
    
    $$('button.disabled').addEvents({
        'click': $lambda(false),
        'mousedown': $lambda(false)
    });
    
    if ($('login_popup')) {
        $('login_popup').addEvent('click', function(){
            // $$('#login-form input[name=password], #login-form input[name=username]').set('value');
            $$('.reg_loginBlock p.login_quote').set('text', 'Чтобы войти, введите, пожалуйста:');
            $$('.reg_loginBlock').removeClass('hidden');
        });
    }
    
    $$(".ico_close").addEvent('click', function(){
        $$('.reg_loginBlock').addClass('hidden');
    });

    // tabulator on #bookroll
    if ($('b-bookroll')) {
        $$('#b-bookroll .tabs a').addEvent('click', function(){
            this.getParent().getElements('a').removeClass('this');
            this.addClass('this');
            $$('#b-bookroll .roll').addClass('x-none');
            $$('#b-bookroll .roll')[this.getParent().getElements('a').indexOf(this)].removeClass('x-none');
            return false;
        });
        $$('.roll-prev').addEvent('click', function(){
            var roll_ribbon = this.getParent().getElements('.roll-ribbon')[0];
            var books = roll_ribbon.getElements('.i');
            var first_book = roll_ribbon.getFirst(".i");
            
            var first = first_book;
            var moved = books.slice(6, 13).reverse();
            moved.each(function(item, index){
                item.inject(first, 'before');
                first = item;
            });
            roll_ribbon.set('left', parseInt(roll_ribbon.get('left'))+618);
            return false;
        });
        $$('.roll-next').addEvent('click', function(){
            var roll_ribbon = this.getParent().getElements('.roll-ribbon')[0];
            var books = roll_ribbon.getElements('.i');
            var last_book = roll_ribbon.getLast(".i");
            
            var last = last_book;
            var moved = books.slice(0, 6);
            moved.each(function(item, index){
                item.inject(last, 'after');
                last = item;
            });
            roll_ribbon.set('left', -618);
            return false;
        });
    }


    // 'Read review' buttons
    $$('#b-books .i button, #b-book button').addEvent('click', function(){
        location = this.get('href');
        return false;
    });


    // book stuff
    $$('#book-to a.disabled').addEvent('click', $lambda(false));

    if ($('book-audio')) {
        $$('#book-to a.tolisten').addEvent('click',function(){
            if ($('book-audio').hasClass('x-none')) {
                $('book-audio').removeClass('x-none');
                new Swiff('/static/uppod.swf', {
                    'id': 'book-audio-player',
                    'width': 440,
                    'height': 40,
                    'container': $('book-audio'),
                    'params': {
                        'wMode': 'opaque'
                    },
                    'vars': {
                        'st': '/static/uppod.skin.txt',
                        'file': $('book-audio').get('file')
                    }
                });
            } else {
                $('book-audio').addClass('x-none');
            }
            return false;
        });
    }
    if ($('issue')) {
        // var mask = new Mask($$("body"));
        $$('#book-to a.toread').addEvent('click', function(){
            // mask.show();
            // $$('.mask')
            //     .setStyle('cursor', 'pointer')
            //     .setStyle('display', 'block')
            //     .addEvent('click', function(){
            //         $('issue').addClass('x-none');
            //         mask.hide();
            //         return false;
            //     });
            
            $('issue').removeClass('x-none');
            (function(){$('issue-closebutton').removeClass('x-none');}).delay(2000);
            
            return false;
        });
        
        $('issue-closebutton').addEvent('click', function(){
            $$('#issue, #issue-closebutton').addClass('x-none');
            // mask.hide();
            return false;
        });
    }
    
    //vote stuff
    
    //initialize
    var vote_button = $('vote_button');
    var vote_form = $('vote_form');
    if (vote_form) {
        vote_form.addEvents({
            'submit': $lambda(false)
        });
    }
    
    $$('input.vote_variant').addEvent('click', function(){
        vote_button.erase('disabled');
    });
    
    if (vote_button) {
        vote_button.set('disabled', 'disabled');
        
        vote_button.addEvent('click', function(){
            var request = new Request.HTML({
                url:'/vote/',
                useSpinner: true,
                noCache: true,
                spinnerTarget: $('block_vote_form'),
                onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
                    $('block_vote_form').set('html', responseElements[0].get('html'));
                }
            }).post($('vote_form'));
        });
    }
    
    
    //registration form
    position = $('id_position');
    other_position = $('id_other_position')
    
    if (position) {
        if (position.get('value') == '0') {
            other_position.show();
        }

        position.addEvent('change', function(){
            if (this.get('value') == '0') {
                other_position.show();
            }else {
                other_position.hide();
            }
        });
    }
    
    if(typeof(String.prototype.trim) === "undefined")
    {
        String.prototype.trim = function() 
        {
            return String(this).replace(/^\s+|\s+$/g, '');
        };
    }
    
    //comments
    if ($('block_add_comm')) {
        var init_comments = function() {

            if ($$('#block_add_comm #comment')) {
                $$('#block_add_comm #comment').addEvent('focus', function(){
                    // $$('#login-form input[name=password], #login-form input[name=username]').set('value');
                    $$('.reg_loginBlock p.login_quote').set('text', 'Для того, чтобы оставить комментарий выполните вход:');
                    $$('.reg_loginBlock').removeClass('hidden');
                });
            }
            
            $$('#cancel_comment').addEvent('click', function() {
                $$('#block_add_comm textarea').setProperty('rows', '2');
            });
            
            $$('.block_add_comm textarea').addEvent('focus', function(){
                this.setProperty('rows', '15');
            });

            $$('.cancel_comment').addEvent('click', function() {
                this.getParent('div').destroy();
            })

            $$(".block_add_comm input[type='submit']").setProperty('disabled', 'disabled');

            $$('.block_add_comm textarea').addEvent('keyup', function(){
                if (this.get('value').trim().length == 0) {
                    this.getParent('form').getChildren("input[type='submit']").setProperty('disabled', 'disabled')
                }else {
                    this.getParent('form').getChildren("input[type='submit']").setProperty('disabled', '');
                }
            })
        }

        init_comments();

        reply = $$('.reply');
        reply.addEvent('click', function(){
            $$('ul .block_add_comm').destroy();
            var anchor = this
            var request = new Request.HTML({
                url:'/comment/' + this.get('object_id') + '/reply/',
                useSpinner: true,
                evalScripts: true,
                spinnerTarget: this.getParent('table'),
                onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
                    responseElements[0].inject(anchor.getParent('table'), 'after');
                    init_comments();
                }
            }).get();
        });
    }
    
    $$('#title_en_lang, #title_ru_lang').addEvent('click', function(){
        if (this.hasClass('clickable')) {
            $$('#title_en_lang, #title_ru_lang').toggleClass('clickable');
            $$('#title_en_lang, #title_ru_lang').toggleClass('active');
            $$('#text_en_lang, #text_ru_lang').toggleClass('hidden');
        }
    });
    
    if ($('submit')) {
        $('submit').addEvent('click', function(){
            if ($('page') && $('page').get('value').length > 0) {
                this.getParent('form').submit();
            }
        });
    }
    
    /* 22.12.2010 - calendar */
    $$('.activeDay').addEvent('click', function(){
    	$$('.activeDay').removeClass('active');
    	this.addClass('active');
    	var obj = this.getChildren('.popup');
    	if ( obj.getStyle('display')=='none' ) 
    	{
    	$$('.popup').setStyle('display','none');
    	obj.setStyles({
    		opacity:0,
    		display:'block'
    		}).fade('in');
    	}
    });	


    $$('.popupHeader span').addEvent('click', function(){
    	this.getParent('.popup').fade('out').setStyle('display','none');
    	$$('.activeDay').removeClass('active');
    	return false;
    });	

    /* 17.12.2010 - contextPopup */
    $$('.contextPopupClose').addEvent('click', function(){
    	this.getParent('.contextPopup').setStyle('display','none');
    });		

    /* 17.12.2010 - contextPopup */
    $$('.lang span').addEvent('click', function(){
    	if (!this.hasClass('active')){												
    	this.getParent('.lang').getChildren('span').toggleClass('active');
    	this.getParent('.contextPopup').getChildren('.contextPopupText').toggleClass('active');
    	}
    });	
    /* 22.12.2012  - contextPopup */
    $$('.infoPopup').addEvent('mouseover', function(){
    		var obj = this.getNext('.contextPopup');
    		if ( obj.getStyle('display')=='none' ) 
    		{
    		obj.setStyles({
    			opacity:0,
    			display:'inline'
    			}).fade('in');
    		}
    });

    var fx = new Fx.Slide('hiddenText').hide();
    $$('.showText').addEvent('click', function(event){
        fx.toggle();
        $(this).toggleClass('active');
        return false;
    });

   
var navSlideShow, curTrans;

	// cache the navigation elements
	var	navs = $('SlideItMoo_info_inner').getElements('ul a');

	// create a basic slideshow
	navSlideShow = new SlideShow('SlideItMoo_info_items', {
		selector: '.info_item', // only create slides out of the images
		autoplay: true,
		delay: 4000,
		onShow: function(data){
			// update navigation elements' class depending upon the current slide
			navs[data.previous.index].removeClass('current');
			navs[data.next.index].addClass('current');
		},
		showComplete: function(data){

		}
	});
	

	navs.each(function(item, index){
		// click a nav item ...
		item.addEvent('click', function(event){
			event.stop();
			// pushLeft or pushRight, depending upon where
			// the slideshow already is, and where it's going
			var transition = (navSlideShow.index < index) ? 'pushLeft' : 'pushRight';
			// call show method, index of the navigation element matches the slide index
			// on-the-fly transition option
			navSlideShow.show(index, {transition: transition});
		});
	});
	
	$('SlideItMoo_info_outer').addEvents({
		mouseenter: function(){navSlideShow.pause()},
		mouseleave: function(){navSlideShow.play()}
	});

	// tips, for pretty
	new Tips(navs, {
		fixed: true,
		text: '',
		offset: {
			x: -100,
			y: 20
		}
	});
	

});
