window.addEvent('domready', function(){
	// Add discount lightbox
	if ($('add-discount')){
		// Form validation
		var validator = new Form.Validator.Inline($('add-discount-form'), {
			errorPrefix: ''
		});
		
		validator.addAllThese([
			['vehicle-required', {
				errorMsg: 'Выберите хотя бы одну марку и модель.',
				test: function(){
					if (!$('add-discount-all-vehicles').get('checked')){
						return $('first-mark').value != -1;
					}
					return true;
				}
			}],
			
			['discount-required', {
				errorMsg: 'Укажите значение скидки.',
				test: function(){
					switch($('add-discount-type').value){
						case 'equal':
						case 'max':
							return $('discount-max').value.length > 0;
							break;
						
						case 'min':
							return $('discount-min').value.length > 0;
							break;
						
						case 'minmax':
							return ($('discount-max').value.length > 0 && $('discount-min').value.length > 0);
							break;
					}
				}
			}]
		]);
		
		var lightbox = new Lightbox('add-discount-lightbox', 'add-discount', {
			message: '<p>Спасибо. После проверки редактором, информация о скидке появится на сайте.</p>',
			validator: validator
		});

		var removeOption = function(){
			this.getParent().destroy();
			lightbox.updatePosition();
		};
		
		// Discount value
		$('add-discount-type').addEvent('change', function(){
			var shown_fields = [];
			switch(this.value){
				case 'equal':
				case 'max':
					$('discount-min').value = '';
					shown_fields = ['max'];
					break;
				
				case 'min':
					$('discount-max').value = '';
					shown_fields = ['min'];
					break;
				
				case 'minmax':
					shown_fields = ['min', 'min-label', 'max', 'max-label'];
					break;
			}
			
			['min', 'max', 'min-label', 'max-label'].each(function(chunk){
				$('discount-' + chunk).setStyle('display', shown_fields.contains(chunk) ? '' : 'none');
			});
		});
		
		$('add-discount-all-vehicles').addEvent('change', function(){
			$$('#add-discount-lightbox .mark', '#add-discount-lightbox .model').set('disabled', this.checked);
			$('vehicles-container').setStyle('display', this.checked ? 'none' : 'block');
			lightbox.updatePosition();
		});
		
		$('add-discount-all-clubs').addEvent('change', function(){
			$$('#add-discount-lightbox .club').set('disabled', this.checked);
			$('clubs-container').setStyle('display', this.checked ? 'none' : 'block');
			lightbox.updatePosition();
		});
		
		['locations', 'clubs', 'rubrics', 'vehicles'].each(function(field){
			$('more-' + field).addEvent('click', function(){
				var old_field = $(field).getLast();
				var new_field = old_field.clone();
				
				if(new_field.getLast().match('span'))
					new_field.getLast().destroy();
				
				new_field.adopt(new Element('span', {'class': 'remove-option', text: 'удалить', events: {click: removeOption}})).inject($(field));
				
				var old_selects = old_field.getChildren('select');
				var new_selects = new_field.getChildren('select');
				
				for (var i = 0; i < old_selects.length; i++){
					if (old_selects[i].retrieve('onchange'))
						new_selects[i].addEvent('change', new_selects[i].retrieve('onchange', old_selects[i].retrieve('onchange')));
				}
				
				lightbox.updatePosition();
			});
		});
		
		
		/*
		
		$('add-discount-form').addEvent('submit', function(e){
			e.stop();
			
			if(validator.validate()){
				new Element('div', {'class': 'overlay', 'html': '<p>Спасибо. После проверки редактором, информация о скидке появится на сайте.</p>'}).injectTop($('add-discount-lightbox'));
				new Form.Request(this, {spinner: false}).send();
			}
		});*/
	}
});

function reduceDiscountList(){
	// Discounts
	if ($('discounts-rubrics')){
		var height = $('discounts-rubrics').getChildren().length;
		
		$$('.discounts-list').each(function(list){
			var items = list.getChildren();
			if (items.length > height){
				var full_list = list.clone();
				for(var item = height; item < items.length; item++) {
					items[item].destroy();
				}
				
				var popup = new Element('div', {'class': 'popup'}).setStyles({
					display: 'none',
					width: (list.getSize().x.toInt() + 15) + 'px'
				});
				
				var collapse = function(e){
					popup.fade('out');
					$('mainframe').removeEvent('click', collapse);
				};
				
				var expand = function(e){
					e.stop();
					popup.setStyles({
						visibility: 'hidden',
						display: '',
						opacity: 0
					}).fade('in');
					$('mainframe').addEvent('click', collapse);
				};
				
				popup.adopt(new Element('div', {'class': 'list-container'}).adopt(full_list.addClass('full'))).adopt(new Element('div', {'class': 'more', events: {click: collapse}}).adopt(new Element('span', {'class': 'collapser'}).adopt(new Element('span', {'class': 'js', 'text': 'свернуть список'})))).inject(list, 'before');
				list.getParent().adopt(new Element('span', {'class': 'expander', events: {click: expand}}).adopt(new Element('span', {'class': 'js', 'text': 'остальные ' + (list.id == 'discounts-models' ? 'модели' : 'города')})));
			}
		});
	}
}

