window.addEvent('domready', function() {
	var tehbody = $(document.body);
	
	$chk($('mail')) && $('mail').set({
		href: 'mailto:mail@artyfarty.ru',
		text: 'mail@artyfarty.ru'
	});

	
	$('dhead').trueSize = $('dhead').getScrollSize();
	
	Slick.definePseudo('displayed', function(value){
		return Element.getStyle(this, 'display') == 'block';
	});
	
	var transform_page = function(ame) {
		var old_dbody = $$('.dbody:displayed')[0];
		var dbody = aid2bid(ame.id);
		
		if (old_dbody == dbody) return;
		//$$('.dbody').setStyle('display', 'none');
		
		if (tehbody.hasClass('initial')) {
			var span = $$('#dhead span')[0];
			var dhead = $('dhead');
			var dhead_sz = dhead.trueSize;
			
			tehbody.removeClass('initial');
						
			dhead.set('morph', {
					onComplete: function() {
						var pos = span.getPosition(dhead);
						span.setStyles({
							position: 'absolute',
							left: pos.x,
							top: 5
						}).set('morph', {
							onComplete: function() {
								dbody.setStyles({
									opacity: 0,
									display: 'block'
								}).set('morph', {
									onComplete: function() {
										var sz = span.getScrollSize();
										
										span.setStyles({
											position: 'static',
											overflow: 'hidden',
											display: 'block',
											width: sz.x,
											height: sz.y
										});
										
										dhead.setStyles({
											'font-size': '',
											'height': ''
										});
										
										tehbody.removeClass('state');
										
										span.set('tween', {
											onComplete: function () {
												////////// УРА, конец! ////////
												new Elements (span, dhead, dbody, ame).set('style', 0);
											},
											duration: 'long'
										}).tween('width', dhead_sz.x);
									}
								}).morph({
									opacity: 1
								});
							}
						}).morph({
							left: 0
						});
					}
				})
				.morph({
					'font-size': [23, 10],
					height: dhead_sz.y
				});
		}
		else {
			old_dbody.setStyle('display', 'none');
			
			dbody.setStyle('display', 'block');
			dbody.morph({
				height: [0, dbody.getScrollSize().y],
				opacity: [0,1]
			});
		}
		
		$$('#menu a').removeClass('active');
		ame.addClass('active');
	}
	
	var aid2bid = function(anchor_id) {
		return $(anchor_id.replace("_link", "") + "_body");
	}
	
	if (tehbody.hasClass('index')) {
			tehbody.addClass('state');
			$$('.dbody').setStyle('display', 'none');
		
		if (document.location.hash) {
			var item = document.location.hash.replace('#','');
			var btn = $(item + "_link");
			if (btn)
				transform_page(btn);
		}
		
		$$('#menu a').addEvent('click', function(e){
			//e.stop();
			transform_page(e.target);
			$('hashfix').set('name', e.target.id);
		});
		
		// hash scrolling fix
		$$('a[name]').dispose();
	}
	
});
