//Javascript navigation shit
var Sailor = {
	init: function(divu){
		//Init lightbox links
		if(divu) allLinks = $$(divu + 'a');
		else allLinks = $$('a');
		allLinks.each(function(link){
			if(link.getProperty('rel') == "lightbox"){
				link.removeEvents('click');
				link.addEvent('click', function(e){
					e = new Event(e).stop();
					Popup.open(this.getProperty('href'));
				});
			}
		});
	},
	
	getUrl: function(segment){
		if(segment > -1){
			str = window.location.hash.split('/');
			return str[segment];
		}
		if(segment == "crumbs"){
			var newStr = '';
			str = window.location.hash.split('/');
			for(i = 0; i < str.length-1; i++){
				newStr += str[i] + ' / ';
			}
			return newStr.replace(/_/g, ' ').replace(/#/g, '').capitalize();
		}

		else {
			return window.location.hash;
		}
		
	},
	
	setSail: function(link){
		str = link.replace(_root_url, "");
		window.location.hash = str;		
		$('crumbs').set('html', '<li><a href="' + str + '" rel="lightbox">' + Sailor.getUrl('crumbs') + '</a></li>');
	},
	
	go: function(url){
		if(url){
			str = url.replace("#", "");
			Popup.open(_root_url + str);
		}
	}
}

//Popup / Lightbox
var Popup = {
	lightbox: $('lightbox'),
	win:  $('popup'),
	popupClose: $('popup-close'),
	popupPrev: $('popup-prev'),
	popupNext: $('popup-next'),
	
	preloader: function(elementu, metoda){
			unde = $(elementu);
			var gif_url = "css/images/loader-white.gif";
			
			switch(metoda){
				case 'on':
					unde.setStyles({
					   height: '200px',
					   background: 'url(' + gif_url + ') no-repeat center center'
					});
					unde.empty();
				break;
				
				case 'off':
					unde.setStyles({
					   height: 'auto',
					   background: 'none'
					});
				break;
			}
	},
	
	init : function(){
		this.popupClose.removeEvents('click');
		this.popupClose.addEvent('click', function(e){
			e = new Event(e).stop();
			Popup.close();
		});
		
		window.addEvent('keydown', function(event){
		    if (event.key == "esc") Popup.close();
		});
	},
	
	open: function(link){
		req = new Request.HTML({
			url: link + "/ajax",
			method: 'get',
			update: 'iframe',
			onRequest: function(){
				Popup.preloader('iframe', 'on');
			},
			onSuccess: function(){
				Popup.preloader('iframe', 'off');
				Sailor.setSail(link);
				Sailor.init('#iframe ');
				Sailor.init('#crumbs ');
			},
			onFailure: function(){
				$('iframe').set('html', '<div class="left"><h2>Error</h2><p>The page you are trying to access does not exist.</p></div>');
			}
		}).cancel().get();
	
		this.lightbox.setStyle('visibility', 'visible');
		$('footer').setStyle('height', 64);
	},
	
	close: function(){
		this.lightbox.setStyle('visibility', 'hidden');
		$('iframe').empty();
		//this.popupPrev.removeEvents('click');
		//this.popupNext.removeEvents('click');
	}
}

//Navigation animation
var Nav = {
	links: $$('#nav li a'),
	init: function(){
		this.links.each(function(link, index){
			link.anim = new Fx.Tween(link, {duration: 200});

			link.addEvent('click', function(e){
				e = new Event(e).stop();
				Popup.open(this.getProperty('href'));
			});
			link.addEvent('mouseover', function(){
				this.anim.cancel();
				this.anim.start('margin-top', 5, 0);
				$('nav-tooltip').set('text', this.get('text'));
				$('nav-tooltip').tween('left', this.getPosition($('site')).x - 47 + this.getSize().x/2);
			});
			link.addEvent('mouseout', function(){
				this.anim.cancel();
				this.anim.start('margin-top', 0, 5);
			});
		});
	}
}

//Cards slider
cardSlider = {
	
	init: function(divu, perPage){
		this.mask = $$(divu + ' div.mask');
		this.group = $$(divu + ' ul');
		this.items = $$(divu+ ' ul li');
		this.pages = Math.ceil(this.items.length/perPage);
		this.page = 1;
		this.pageWidth = this.items[1].getSize().x * perPage;
		this.direction = "forward";
		
		this.prev = $$(divu + ' a.prev-arrow');
		this.next = $$(divu + ' a.next-arrow');
		
		this.anim = new Fx.Scroll('mask', { //AICI AM RAMAS
			duration: 500,
			transition: Fx.Transitions.Expo.easeInOut,
			onStart: function(){
			
				if(cardSlider.direction == "forward"){
					cardSlider.page < cardSlider.pages ? cardSlider.page++ : cardSlider.page = 1;
				}
				if(cardSlider.direction == "backward"){
					cardSlider.page > 1 ? cardSlider.page-- : cardSlider.page = 1;
				}
			},
			onComplete: function(){
			}

		});		
		this.anim.toRight();
		cardSlider.page = cardSlider.pages;

		if (cardSlider.page == 1) {cardSlider.prev.fade(0.3);} else {cardSlider.prev.fade(1);}
		if (cardSlider.page == cardSlider.pages) {cardSlider.next.fade(0.3);} else {cardSlider.next.fade(1);}

		this.group.setStyle('width', cardSlider.items.length * cardSlider.items[1].getSize().x);
		
		this.prev.addEvent('click', function(e){
			e = new Event(e).stop();
			cardSlider.direction = "backward";
			if (cardSlider.page > 1) cardSlider.anim.start((cardSlider.page-2) * cardSlider.pageWidth, 0);
			if (cardSlider.page == 1) {cardSlider.prev.fade(0.3);} else {cardSlider.prev.fade(1);}
			if (cardSlider.page == cardSlider.pages) {cardSlider.next.fade(0.3);} else {cardSlider.next.fade(1);}
		});

		this.next.addEvent('click', function(e){
			e = new Event(e).stop();
			cardSlider.direction = "forward";
			if (cardSlider.page < cardSlider.pages) cardSlider.anim.start(cardSlider.page * cardSlider.pageWidth, 0);
			if (cardSlider.page == 1) {cardSlider.prev.fade(0.3);} else {cardSlider.prev.fade(1);}
			if (cardSlider.page == cardSlider.pages) {cardSlider.next.fade(0.3);} else {cardSlider.next.fade(1);}
		});
	}
}

function resize(){
	//Resize fake body
	size = Window.getSize();
	$('fakeBody').setStyle('height', size.y - 52);
}

Images = {
	preload: function(){
		var cssImages = new Asset.images(
			[
				'css/images/bg-body.jpg'
			],
		{
	    	onComplete: function(){
	        	$('background').setStyles({
	        		'background-image': 'url(css/images/bg-body.jpg)',
	        		'background-position': 'top center'
	        	});
	        	$('fakeBody').setStyle('visibility', 'visible');
	        	$('footer').setStyle('visibility', 'visible');
		    }
		});
	}
}

window.addEvents({
	'domready': function(){
	
		Images.preload();
	
		resize();
		Popup.init();
		Nav.init();
		cardSlider.init('#cards', 5);
		Sailor.go(Sailor.getUrl());
		
		//Footer drag
		$('footer').makeResizable({
			modifiers: {x: false, y: 'height'},
			limit: {y: [64, 290]},
			invert: true,
			handle: 'footer'
		});
		
		//Open footer on links focus		
		$$('#footer a').each(function(link){
			link.addEvent('focus', function(){
				$('footer').setStyle('height', 290);
			});
		});
		
		Sailor.init();
		
	},
	
	'resize': function(){
		resize();
	}
});