var kiloImg = new Class({
		Implements: Options,
		options: {
			
		},
		initialize: function( options ) {
			
			this.setOptions(options);
			
			this.preloader = new Element('div', {
				'class': 'preloader'
			});
			
		},
		
		loadImg: function( target, src, container ) {
			target.removeEvents('load');
			if ( src != target.src ) {
				target.addEvent('load', this.finished.bindWithEvent(this, {
						container:container
				}));
				var d = container.getSize();
				this.preloader.setStyles({
						width: d.x,
						height: d.y
				});
				container.adopt( this.preloader.clone() );
				target.src = src;
			}
		},
		
		finished: function(e, arg)	{
			var p = arg.container.getElement('div.preloader');
			var img = arg.container.getElement('img');
			//var a = arg.container.getElement('a');
			//a.href = '/files/image/'+img.src.substring( img.src.lastIndexOf("/") +1 );
			p.destroy();
			if ( arg.container.getElement('div.preloader') ) {
				arg.container.getElement('div.preloader').destroy();
			}
		}
});


var kilo = new Class({
		Implements: Options,
		options: {
			speed:1000
		},

		initialize: function( options )	{
			this.setOptions(options);
			
			this.goer = new Fx.Scroll(window, {
				duration:1000,
				transition:'quint:out'//'elastic:out'
			});
			
			this.active = 'home';
			this.imgLoader = new kiloImg({});
			//this.initPosition();
		},
		
		initPosition: function( ) {
			
			this.win_size = window.getSize();
			
			var pos = ['home','architektura', 'design', 'projektarchitektura', 'projektdesign', 'kontakt', 'onas', 'aktualnosci' ];
			this.positions = [];
			
			pos.each( function(p) {
				var dim = $(p).getCoordinates();
				this.positions[p] = {
					x:dim.left - (this.win_size.x-dim.width)/2,
					y:dim.top - (this.win_size.y-dim.height)/2
				};
				
			}.bind(this) );
			
			var loc = window.location.toString();
			if ( loc.indexOf('#') > 0 ) {
				var s = loc.substring( loc.lastIndexOf('#')+1, loc.length );
				var to = s.split('_');
				var dest = to[0];
				var id = to[1];

				if ( dest == 'projektarchitektura' ) {
					dest = 'projektarchitektura';
				} else if ( dest == 'projektdesign' ) {
					dest = 'projektdesign';
				} else {
					dest = s;
				}
				this.active = dest;

				if ( dest == 'projektarchitektura' || dest == 'projektdesign' ) {
					var p = $( s );
					$$('div.projekt').each( function(el) {
						el.setStyle('display','none');
					});
					p.setStyle('display','block');
				
					// wgranie pierwszego zdjęcia
					var img_cont = p.getElement('div.big_img');
					var img = img_cont.getElement('img');
					var first_link = p.getElement('div.numbers a');
					first_link.addClass('selected');
					this.imgLoader.loadImg( img, first_link.href, img_cont );
				}
			}
			this.goer.set( this.positions[this.active].x, this.positions[this.active].y );
			
		},
		
		goTo: function( dest ) {
			this.active = dest;
			this.goer.start( this.positions[this.active].x, this.positions[this.active].y );
		}
});


window.addEvent('load', function()	{
	
	var anim = new kilo();
	
	anim.initPosition.delay(10, anim);
	
	window.addEvent('resize', anim.initPosition.bind(anim) );

	var links = $$('a.link');
	links.each( function(l){
		l.addEvent( 'click', function(e) {
			e.stop();
			var dest = l.href.substring( l.href.indexOf('#')+1 );
			anim.goTo(dest);
		});
	})

	var projekt_links = $$('a.projekt_link');
	projekt_links.each( function(l) {
		l.addEvent( 'click', function(e) {
			e.stop();
			var p = $( l.href.substring( l.href.indexOf('#')+1 ) );
			hide_projekt();
			p.setStyle('display','block');

			// wgranie pierwszego zdjęcia
			var img_cont = p.getElement('div.big_img');
			var img = img_cont.getElement('img');
			var first_link = p.getElement('div.numbers a');
			
			deselect_links ( first_link.getParent('div').getChildren('a') );
			first_link.addClass('selected');
			
			// ukrycie opisu
			var opis = first_link.getParent('div.browser').getLast();
			if ( opis.hasClass('opis_text') ) {
				opis.setStyle('display','none');
			}

			anim.imgLoader.loadImg( img, first_link.href, img_cont );
			var dest = l.href.substring( l.href.indexOf('#')+1, l.href.indexOf('_') );
			anim.goTo( dest );
		});
		
		//zapisanie tytulu:
		var tt = l.get('title');
		if ( tt != undefined  && tt != null ) {
			var tp = tt.substring( 0, tt.lastIndexOf('/') );
			var te = tt.substring( tt.lastIndexOf('/')+2, tt.length );
			l.store('tip:title', tp );
			l.store('tip:text', te );
		}
		
	});

	var plist = $$('div.projekt');
	var hide_projekt = function() {
		plist.each( function(el) {
			el.setStyle('display','none');
		})
	};
	
	var deselect_links = function( lista ) {
		lista.each( function(l) {
				l.removeClass('selected');
		});
	}
	
	
	$$('.numbers a.l').each( function(l) {
			l.addEvent('click', function(e) {
					e.stop();
					var opis = l.getParent('div.browser').getLast();
					if ( opis.hasClass('opis_text') ) {
						opis.setStyle('display','none');
					}

					var p = l.getParent('div').getPrevious();
					var img = p.getElement('img');
					
					deselect_links ( l.getParent('div').getChildren('a') );
					l.addClass('selected');
					
					anim.imgLoader.loadImg( img, l.href, p );
			});
	});
	$$('.numbers a.opis').each( function(l) {
			l.addEvent('click', function(e) {
					e.stop();
					var opis = l.getParent('div.browser').getLast();
					opis.setStyle('display','block');
					deselect_links ( l.getParent('div').getChildren('a') );
					l.addClass('selected');
			});
	});
	
	plist[0].setStyle('display','block');

	// linki i tło 137
	var h = $('home_links');
	$$('#home_links a').each( function(l,i) {
			l.addEvent('mouseover', function( e ) {
					h.setStyle('background-position', '0px -'+(i+1)*318+'px' );
			});
			l.addEvent('mouseout', function( e ) {
					h.setStyle('background-position', '0px 0px');
			});
	});
	
	
	// tooltios
	var myTips = new Tips('a.pl_style', {
		className:'tipsy'
	});
	
});

