/*
Script: website-0.1.js
	Website - JavaScript Core.
*/

/**
* Gestionnaire ajax
*/
var AjaxClass = new Class({

	Implements: [Options, Events],

	options: {
	},

	initialize: function(options){
		this.setOptions(options);

		/*this.history = HistoryManager.register(
			'',
			['/'],
			function(values) {
				this.ajax(values[0]);
			}.bind(this),
			function(values) {
				return ['', values[0]].join('');
			}.bind(this),
			'(.+)'
		);*/

		$('menu').getElements('a[target!=_blank]').each(function(el) {
			this.setLinksMenu(el);
		}.bind(this));
		$('content').getElements('a[target!=_blank]').each(function(el) {
			if (!el.hasClass('lightbox'))
				this.setLinksMenu(el);
		}.bind(this));
	},

	setLinksMenu: function(el) {
		el.addEvent('click', function(e) {
			e.stop();

			this.ajax(e.target);
		}.bind(this))
	},

	ajax: function(el) {
		if ($type(el) != 'string') {
			el = el.get('href');
		}
		//this.history.setValue(0, el);

		new Fx.Elements($$('.tween'), {
			onComplete: function() {
				$('page').set('class', '');
				$('page').addClass('page');
				$('page').addClass('load');

				new Request.HTML({
					'url': 'ajax/' + el,
					'onSuccess': this.response.bind(el)
				}).get();
			}.bind(this),
			duration : 'short'
		}).start({
			'0': {
				'opacity': [1, 0]
			},
			'1': {
				'opacity': [0.6, 0]
			}
		});
	},

	response: function(responseTree, responseElements, responseHTML, responseJavaScript) {

		$('content').set('html', responseHTML);
		$('page').addClass(this.split('/')[0]);
		$('page').removeClass('load');

		if ($('menu').getElement('li[class*=navActive]'))
			$('menu').getElement('li[class*=navActive]').removeClass('navActive');
		if ($('menu').getElement('li[class*=' + this.split('/')[0].split('?')[0] + ']'))
			$('menu').getElement('li[class*=' + this.split('/')[0].split('?')[0] + ']').addClass('navActive');

		//window.location.href = 'http://vincentpernin.com/' + this;

		// overlay
		if (['videos', 'photos', 'contact', 'friends', 'pro_access'].contains(this.toString().split('/')[0].split('?')[0])) {
			if ($('overlay')) {
				$('overlay').setStyle('display', 'block');
			}
		} else {
			if ($('overlay')) {
				$('overlay').setStyle('display', 'none');
			}
		}
		new Fx.Elements($$('.tween'), {
			duration: 'short'
		}).start({
			'0': {
				'opacity': [0, 1]
			},
			'1': {
				'opacity': [0, 0.6]
			}
		});

		// lien de lang
		if ($('lang_fr').get('href').toURI().get('directory'))
			$('lang_fr').set('href', $('lang_fr').get('href').toURI().set('directory', $('lang_fr').get('href').toURI().get('directory')).toString() + '/' + this);
		else
			$('lang_fr').set('href', $('lang_fr').get('href').toURI().set('directory', this));

		if ($('lang_en').get('href').toURI().get('directory'))
			$('lang_en').set('href', $('lang_en').get('href').toURI().set('directory', $('lang_en').get('href').toURI().get('directory')).toString() + '/' + this);
		else
			$('lang_en').set('href', $('lang_en').get('href').toURI().set('directory', this));

		// Ajoute les tips
		ExempleTips = new Tips('.tips',{className: 'tooltip', offsets: {'x': -20, 'y': 20} });
		ExempleTips.addEvent('show', function(tip){
			tip.setStyle('opacity', 0.85);
			tip.setStyle('z-index', 50000);
		});

		$('content').getElements('a[target!=_blank]').each(function(el) {
			if ($defined(el) && !el.get('rel').contains('lightbox'))
				el.addEvent('click', function(e) {
					e.stop();

					WebsiteAjax.ajax(e.target);
				}.bind(this))
		}.bind(this));
	}
});

var WebsiteTips, WebsiteAjax;
window.addEvent('domready', function() {
	// History
	/*HistoryManager.initialize();
	HistoryManager.start();*/

	// lien de lang
	$('lang_fr').set('href', $('lang_fr').get('href').toURI().set('directory', $('lang_fr').get('href').toURI().get('directory')).toString() + '/');
	$('lang_en').set('href', $('lang_en').get('href').toURI().set('directory', $('lang_en').get('href').toURI().get('directory')).toString() + '/');

	// Ajoute les tips
	WebsiteTips = new Tips('.tips',{className: 'tooltip', offsets: {'x': -20, 'y': 20} });
	WebsiteTips.addEvent('show', function(tip){
		tip.setStyle('opacity', 0.85);
	});

	// Ajoute l'ajax
	WebsiteAjax = new AjaxClass();

	// Alert
	Window.implement({
		$video: function(el,options) {
			if (el == 3) {
				new WS_Popup('video', el, {
					textOk: 'Close',
					width: 500
				});
			} else {
				new WS_Popup('video', el, {
					textOk: 'Close'
				});
			}
		}
	});

	// Position du texte
	function setTextPosition() {
		var left = ((Window.getSize().x - 1000) / 2).floor();

		$('content').setStyles({
			'left': left,
			'display': 'block'
		});
	}
	setTextPosition();

	// Position du menu
	function setMenuPosition() {
		var right = ((Window.getSize().x - 1000) / 2).floor();

		$('menu').setStyles({
			'right': right,
			'top': 150,
			'display': 'block'
		});
	}
	setMenuPosition();

	// Overlay
	$('page').adopt(new Element('div', {
		'id' : 'overlay',
		'class' : 'overlay tween'
	}).setStyles({
		'top': 360,
		'opacity': 0.6,
		'display': 'none'
	}));

	if (window.location.pathname.split('/').length > 2)
		if (['videos', 'photos', 'contact', 'friends', 'pro_access'].contains(window.location.pathname.split('/')[1].split('?')[0]) || ['videos', 'photos', 'contact', 'friends', 'pro_access'].contains(window.location.pathname.split('/')[2].split('?')[0])) {
			if ($('overlay')) {
				$('overlay').setStyle('display', 'block');
			}
		}
});
