Zee = window.Zee || {};

/**
 * Modal
 *
 * Manage modal headaches
 *
 * @author Julien Cabanès <jc@aaz.fr>
 * @version 0.1
 * @class Zee.Modal
 */
Zee.Modal = {
	PageController: new Zee.PageController({
		get: {
			'#/modal/::modalPath': function(request, modalPath){
				request.keepLooping = true;
				//console.log('modalPath', modalPath);
				Zee.Modal.open(modalPath);
			}
		}
	}),
	open: function(href) {
		Zee.Modal.close();
		//console.log(href);
		$.get(href, function(data) {
			// Dangereux
			$('html, body').animate({scrollTop: 0}, 800);
			if (data.json==1) {
				Zee.Modal.create(data.title,data.content);
			} else {
				$('body').append(data);
			}

			$('#overlay').show();
		});
	},
	close: function(callback) {
		if($('div.modal').length > 0) {
			$('div.modal, #overlay').animate({opacity: 0}, 300, function() {
				$('#overlay').hide().css({opacity: 0.8});
				$('div.modal').remove();
				callback && typeof callback == 'function' && callback();
			});
		}
	},
	create: function(title, content) {
		$('body').append([
			'<div class="modal">',
				'<div class="default">',
					'<div class="top"></div>',
					'<div class="content">',
						'<h2>'+title+'</h2>',
						'<a class="close" href="#">Fermer</a>',
						'<div class="scroller">'+content+'</div>',
						'<div class="green-footer"></div>',
					'</div>',
					'<div class="bottom"></div>',
				'</div>',
			'</div>'].join(''));
	},
	onOpen: function(e) {
		e.preventDefault();
		Zee.Modal.open($(this).attr('href'));
	},
	onClose: function(e) {
		e.preventDefault();
		Zee.Modal.close();
	}
};

Zee.Modal.PageController.run();

$('.modal a.close').live('click', function(e) {
	e.preventDefault();
	Zee.Modal.close();
	Zee.Modal.PageController.setHash(Zee.Modal.PageController.lastHash || '');
});
