/**
*
*	@author: SWAT (Rostovtsev Ruslan)
*	@url: http://www.jsysteam.ru
*	@version: 1.0.0
*
**/






var magnaweb = new Class({
	
	Implements: Options,
	
	options: {
		wrap: null,
		transition: Fx.Transitions.Quad.easeInOut
	},
	
	
	initialize: function(options) {
		this.setOptions(options);
		this.changeInput();
		this.makeMenu();
		this.makeGallery();
		this.makeSteps();
	},
	
	
	changeInput: function() {
		
		var of = $('order_form');
		
		if ($chk(of)) {
		
			of.getElements('input[type=text]').each(function(item) {
				item.setProperty('title', item.getProperty('value'));
				item.setProperty('id', item.getProperty('name'));

				item.addEvents({
					focus: function() {
						with(this) {
							value = (value == title) ? '' : value;
						}
					}, 
					blur: function() {
						with(this) {
							value = (value == '') ? title : value;
						}
					}
				});
			});
			
			
			var input = of.getElement('input[type=file]');
			var container = new Element('span', {
				'class': 'input_file_wrapper'
			});
			
			var fake_text = new Element('input', {
				'type': 'text',
				'class': 'fake-text',
				'value': 'Прикрепить файл'
			});
			
			input.setStyles({
				'opacity': 0.0001,
				'width': 235,
				'height': 30,
				'margin': 0,
				'padding': 0,
				'font-size': 24,
				'border': 'none',
				'z-index': 20
			});
			
			container.injectBefore(input).adopt([input, fake_text]);
			input.addEvents({
				'change': function(){
					fake_text.set({
						'value': input.get('value')
					});
				}

			});
                        var input = of.getElement('input[type=file]');
			of.addEvents({
				'submit': function(event){
                                      if($('form_text_1').get('value')==$('form_text_1').get('title')||$('form_text_3').get('value')==$('form_text_3').get('title'))
                                      {
					alert('Не заполнены обязательные поля!');
                                        event.stop();  
                                       }
				}

			});

		}
	},
	
	
	makeMenu: function() {
		
		try {
			
			var wrap = this.options.wrap;
			var lights = wrap.getElements('.b-fon1');
			var menu = new Array(wrap.getElement('.top-menu'), wrap.getElement('.footer'));
			
			lights.set('tween', {duration: 'long', transition: this.options.transition});
			
			var evt = function(event) {
				with (this) {
					if(a) l.tween('left', (a.getPosition(w).x + (a.getSize().x / 2)) - (l.getSize().x / 2));
				}
			};
			
			menu.each(function(m, n) {
			
				var active = m.getElement('.active');
				
				evt.run(null, {
					a: active,
					l: lights[n],
					w: wrap
				});
				
				m.getElements('a').each(function(a) {

					a.addEvents({
						mouseenter: evt.bind({
							a: a,
							l: lights[n],
							w: wrap
						}),
						mouseleave: evt.bind({
							a: active,
							l: lights[n],
							w: wrap
						})
					});
				});
			});
			
		} catch (E) {
			// alert(E);
		}
	},
	
	
	makeGallery: function() {
		
		var menu = this.options.wrap.getElement('.b-menu');
		
		if($chk(menu)) {
			
			menu = menu.getElements('b');
			var lw = this.options.wrap.getElement('.b-listworks');
			var img_list = lw.getElements('div');
			var scroll = 0;
			var left = lw.getElement('.left_arr');
			var right = lw.getElement('.right_arr');
			var images = lw.getElement('.images');
			var fx = new Fx.Scroll(images, {duration: 'long', transition: this.options.transition, link: 'cancel'});
			var size = images.getSize().x;
			
			img_list.each(function(list) {
				
				list.set('reveal', {duration: 'long', transition: this.options.transition});
				var img = list.getElements('img');
				
				if($chk(img) && img.length > 0) {
					list.setStyle('width', size * ((img.length / 3) + 1).toInt());
				}
				
			}.bind(this));
			

			var updArr = function() {
				/* Вот так всегда, на*уя я это делал спрашивается. */
				return false;
				
				if (scroll >= images.getScrollSize().x - size) {
					right.addClass('dis');
				} else {
					right.removeClass('dis');
				}
				
				if(scroll <= 1) {
					left.addClass('dis');
				} else {
					left.removeClass('dis');
				}
			};
			
			updArr();
			
			right.addEvent('click', function(event) {
				event.stop();
				if (scroll < images.getScrollSize().x - (size * 2)) {
					scroll += size;
				} else {
					scroll = 0;
				}
				
				fx.start(scroll, 0);
				updArr();
			});
			
			left.addEvent('click', function(event) {
				event.stop();
				if (scroll > 0) {
					scroll -= size;
				} else {
					scroll = images.getScrollSize().x - (size * 2);
				}
				fx.start(scroll, 0);
				updArr();
			});
			
			
			var dissolve = function(list) {
				list.each(function(item, n) {
					if(item.getStyle('display') == 'block') {
						item.setStyle('display', 'none');
					}
				});
			};
			
			menu.each(function(m, n) {
				
				m.addEvent('click', function(event) {
					
					event.stop();
					
					if(!this.hasClass('active')) {
						menu.removeClass('active');
						this.addClass('active');
						dissolve(img_list);
						img_list[n].reveal();
						active = n;
						updArr.delay(500);
					} 
				});
			});
		}
	},
	
	makeSteps: function() {
		
		var steps = $('site_steps');
		
		if ($chk(steps)) {
			
			var cur = 0;
			var left = steps.getElement('.left_arr');
			var right = steps.getElement('.right_arr');
			var steps_scroll = $('steps_scroll');
			var fx = new Fx.Scroll(steps_scroll, {duration: 'long', transition: this.options.transition, link: 'cancel'});
			var nums = steps_scroll.getElements('li');
			var cont_list = steps.getElement('.b-step-content').getChildren('div');
			
			cont_list.set('reveal', {duration: 'long', transition: this.options.transition});

			var updArr = function() {
				
				if (cur >= nums.length-1) {
					right.addClass('dis');
				} else {
					right.removeClass('dis');
				}
				
				if(cur < 1) {
					left.addClass('dis');
				} else {
					left.removeClass('dis');
				}
				
				dissolve();
				cont_list[cur].reveal();
				nums.removeClass('active');
				nums[cur].addClass('active');
			};
		
			
			var dissolve = function() {
				cont_list.each(function(item, n) {
					if(item.getStyle('display') == 'block') {
						item.setStyle('display', 'none');
					}
				});
			};
			
			updArr();
			
			right.addEvent('click', function(event) {
				event.stop();
				if (cur < (nums.length-1)) {
					cur++;
					fx.toElement(nums[cur]);
					updArr();
				} 
			});
			
			left.addEvent('click', function(event) {
				event.stop();
				if (cur > 0) {
					cur--;
					fx.toElement(nums[cur]);
					updArr();
				} 
			});
			
			nums.each(function(item, n) {
				item.addEvent('click', function() {
					cur = n;
					fx.toElement(nums[cur]);
					updArr();
				})
			});
		}
	}
});



var mw = mw || {};



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

	try {
		
		 mw = new magnaweb({wrap: $('wrap'), transition: Fx.Transitions.Expo.easeOut});


	} catch(E) {
		//alert(E);
	}
	
});
