/**
 * @author thomas
 */

Date.implement({
	'getUnixTs': function(){
		return Math.round(this.getTime() / 1000);
	}
});


window.addEvent('domready', function(){
	$$('.external-link').set('target', '_blank');
	
	var hero = $('hero-master-container');
	if(hero){
		var handles = hero.getElements('.page-links a');
		var gallery = new viewer(hero.getElements('.hero-container'),{
			mode: ['alpha'],
			onWalk: function(index){
				handles.removeClass('active');
				handles[index].addClass('active');
			}
		});
		gallery.play(true);
		
		handles.each(function(el, i){
			el.addEvent('click', function(){
				gallery.walk(i, true);
				gallery.play(true);
				return false;
			});
		});
	}
	
	var box = $$('.gallery')[0];
	var thumb_box = document.getElement('.thumbs');
	if(box && thumb_box){
		
		var car_gallery = new viewer(box.getFirst('ul').getElements('li'),{mode: 'alpha'});
		var car_handles = thumb_box.getFirst('ul').getElements('li a').addEvent('click', $lambda(false));
		car_handles.each(function(el, i){
			el.addEvent('click', car_gallery.walk.bind(car_gallery, [i, true]));
		});
		
		var thumbs = new noobSlide({
			box: thumb_box.getFirst('ul'),
			items: thumb_box.getFirst('ul').getElements('li'),
			size: 55
		});
		
		document.getElement('.prev').addEvent('click', function(){
			thumbs.walk((thumbs.currentIndex-7>-1 ? thumbs.currentIndex-7 : 0), true);
		});
		document.getElement('.next').addEvent('click', function(){
			thumbs.walk((thumbs.currentIndex+7<thumbs.items.length ? thumbs.currentIndex+7 : thumbs.items.length-1), true);
		});		
	}
	
	var newsletter_form = $('form-newsletter');
	if(newsletter_form){
		new FormValidator(newsletter_form, {
			onFormValidate: function(valid, form, e){
				if(valid){
					e.stop();
					form.set('send', {
						'onRequest': function(){
							form.fade(0.1);
						},
						'onSuccess': function(resp){
							form.fade(1);
							resp = JSON.decode(resp);
							if(resp.status == 'saved'){
								new Element('h1', {
									'text': 'Ihre Adresse wurde gespeichert. Vielen Dank!'
								}).set('fade', {duration: 3000}).fade('hide').replaces(form).fade(1);
							}
						}
					}).send();
				}
			}
		});
		$$('#nl-name, #nl-email').each(function(el){new OverText(el,{poll: true, positionOptions: {offset: {x: 5, y: 8}}});});
	}
	
	var car_search_form = $('car-search');
	if(car_search_form){
		car_search_form.addEvent('submit', function(e){
			e.stop();
			
			var time = 0;
			this.set('send', {
				'onRequest': function(){
					$('search-result').empty().adopt(new Element('div', {
						'styles': {
							'text-align': 'center'
						}
					}).adopt(new Element('img', {
						'src': 'img/icon-button/ajax-loader.gif'
					})));
					
					time = new Date().getTime();
				},
				'onSuccess': function(resp){
					(function(){
						$('search-result').set('html', resp);
					}).delay(350 - (new Date().getTime() - time));
				}
			}).send();
			
			return false;
		});

		var modelgroup = $('modelgroup');
		var modelgroup_data = $('modelgroup-data');
		
		car_search_form.getElement('#make').addEvent('change', function(){
			modelgroup.getElements('option[class!=default]').inject(modelgroup_data);
			modelgroup_data.getElements('option[class='+this.getSelected()[0].get('value')+']').inject(modelgroup);
			modelgroup.selectedIndex = 0;
		});
	}
	
	var contact_form = $('contact-form');
	if(contact_form){
		new FormValidator(contact_form, {
			onElementFail: function(el){
				el.getPrevious('label').addClass('validation-failed');
			},
			onElementPass: function(el){
				el.getPrevious('label').removeClass('validation-failed');
			}
		});		
	}
});
