window.addEvent('domready', function(){
	MooTools.lang.setLanguage("ru-RU-unicode");
	
	// Shadows
	$$('.shadowed span').each(function(front){
		var text = front.get('html');
		front.addClass('front').getParent().adopt(new Element('span', {'class': 'shadow', html: text, opacity: 0.5}));
	});
	
	$$('.shadowed a').each(function(link){
		var text = link.get('html');
		link.empty().adopt(new Element('span', {html: text, 'class': 'front'})).adopt(new Element('span', {'class': 'shadow', html: text, opacity: 0.5}));
	});
	
	// Header gradients
	$$('.glass span').each(function(canvas){
		var text = canvas.get('html');
		canvas.empty().addClass('canvas').adopt(new Element('i', {html: text})).adopt(new Element('i', {'class': 'gradient'}));
	});
	
	$$('.glass a').filter(function(link){ return !link.hasClass('rss'); }).each(function(link){
		var text = link.get('html');
		link.empty().addClass('canvas').adopt(new Element('i', {html: text})).adopt(new Element('i', {'class': 'gradient'}));
	});
	
	// Marked links fix
	$$('a.highlited', 'span.highlited').each(function(link){
		var words = link.get('text').split(' ').map(function(word){return '<span class="word">' + word.replace('-', '&ndash;') + '</span>';})
		var wrap = '';
		
		for (var word = 0; word < words.length; word++){
			wrap += words[word];
			if (word != words.length - 1)
				wrap += '<span class="space"> </span>';
		}
		
		link.set('html', wrap);
	});
	
	// Scrolling
	$$('.items-container').each(function(container){
		new ListScroller(container);
	});
	
	// Comment articles
	if ($('add-comment-form')){
		$('add-comment-form').addEvent('submit', function(e){
			e.stop();
			
			var spinner = new Spinner('add-comment-message', {
				message: 'Отправка комментария...'
			});
			
			new Form.Request(this, false, {
				requestOptions: {
					useSpinner: false,
					evalScripts: false
				},
				
				useSpinner: false,
				evalScripts: false,
				
				onSend: function(){
					$('add-comment-submit').set('disabled', true);
					spinner.show();
				},
				
				onSuccess: function(){
					spinner.hide();
					
					$('add-comment-submit').set('disabled', false);
					
					var message = $('add-comment-message').value;
					var name = $('add-comment-name').get('text');
					
					var avatar = $('add-comment-avatar').clone();
					avatar.adopt(new Element('span', {'class': 'nickname', text: name}));
					
					if(!$('comments'))
						new Element('ul', {id: 'comments'}).replaces($('no-comments'));
					
					$('comments').adopt(new Element('li').adopt(avatar).adopt(new Element('p', {html: message})));
					
				},
				
				onFailure: function(){
					$('add-comment-submit').set('disabled', false);
				}
			}).send();
			/*
			new Request.HTML({
				url: this.get('action'),
				evalScripts: false
			}).post(this);
*/
		});
	}
	
	// Marks/models fields
	$$('.mark').each(function(select){
		var multiselect = select.getParent().match('li');
		var optional = select.hasClass('optional');
		select.addEvent('change', select.retrieve('onchange', function(){
			var models = this.getNext();
			if (this.value != -1){
				if (!models)
					this.getParent().adopt(models = new Element('select', {name: multiselect ? 'models[]' : 'model', 'class': 'model', 'disabled': 'disabled'}));
				
				models.empty();
				
				if (optional)
					models.adopt(new Element('option', {value: '', text: multiselect ? 'все модели' : 'любая модель'}));
				
				new Request.JSON({
					url: '/vehicles/' + this.value + '/',
					method: 'post',
					onSuccess: function(responce){
						models.set('disabled');
						responce.each(function(model){
							models.adopt(new Element('option', {value: model.value, text: model.label}));
						});
					}
				}).send();
			} else {
				if (models)
					models.destroy();
			}
		}));
	});
	
	// Location
	$$('.country').each(function(select){
		var optional = (select.getFirst().get('value') == '-1');
		select.addEvent('change', select.retrieve('onchange', function(){
			var regions = this.getNext();
			var cities = regions.getNext();
			
			regions.empty().set('disabled', true);
				
			if (optional)
				regions.adopt(new Element('option', {value: '-1', 'text': 'не выбрано'}));
			
			if (this.value != '-1'){
				new Request.JSON({
					url: '/discounts/geo/?country=' + this.value,
					method: 'post',
					onSuccess: function(responce){
						regions.set('disabled', false);
						responce.each(function(region){
							regions.adopt(new Element('option', {value: region.value, text: region.label}));
						});
					}
				}).send();
			}
			
			cities.empty().set('disabled', true);
			
			if (optional)
				cities.adopt(new Element('option', {value: '-1', 'text': 'не выбрано'}));
		}));
	});
	
	$$('.region').each(function(select){
		var optional = (select.getFirst().get('value') == '-1');
		select.addEvent('change', select.retrieve('onchange', function(){
			var cities = this.getNext();
			
			cities.empty().set('disabled', true);
			
			if (optional)
				cities.adopt(new Element('option', {value: '-1', 'text': 'не выбрано'}));
			
			if (this.value != '-1'){
				new Request.JSON({
					url: '/discounts/geo/?region=' + this.value,
					method: 'post',
					onSuccess: function(responce){
						cities.set('disabled', false);
						responce.each(function(region){
							cities.adopt(new Element('option', {value: region.value, text: region.label}));
						});
					}
				}).send();
			}
		}));
	});
	
	new Lightbox('login-form-lightbox', 'show-login-form', {async: false});
});

