/**
 * @author Nikolay Borisov (nikolay@borisov.me | http://nikolay.borisov.me/)
 * @copyright Notamedia (http://notamedia.ru/)
 * @version 0.3
 * @required jQuery
 * @date 2009-11-19
 */

$(function(){

	var self = this;
	var $nav = $('#navegante');
	var $menu1 = $('#footMenu1');
	var $menu2 = $('#footMenu2');

	var config = {};

	var navegante = new NaveganteClass();

	var envase = new EnvaseClass();
	var posteres = new PosteresClass(navegante);
	var hojear = new HojearClass();

	var navTimeout;

	var gotoCentro = function(ani){
		document.title = 'Владимир Качанов ~ Москва уходящая. Бульвары';
		navControl('Centro');
		navegante.setPosition(2030, 1870, 1300, 342, null, null, ani);
	}

	var gotoDerecha = function(ani){
		document.title = 'Владимир Качанов ~ Москва уходящая. Бульвары | Упаковка';
		navControl('Derecha');
		navegante.setPosition(3710, 2146, 748, 100, function(){
			envase.load();
		}, function(){
			envase.unload();
		}, ani);
	}

	var gotoArriba = function(ani){
		document.title = 'Владимир Качанов ~ Москва уходящая. Бульвары | Альбом';
		navControl('Arriba');
		navegante.setPosition(2030, 466, 748, 100, function(){
			hojear.load();
		}, function(){
			hojear.unload();
		}, ani);
	}

	var gotoIzquierda = function(ani){
		document.title = 'Владимир Качанов ~ Москва уходящая. Бульвары | Постеры';
		navControl('Izquierda');
		navegante.setPosition(350, 2029, 982, 100, function(){
			posteres.load();
		}, function(){
			posteres.unload();
		}, ani);
	}

	var gotoAbajo = function(ani){
		document.title = 'Владимир Качанов ~ Москва уходящая. Бульвары | Об авторе';
		navControl('Abajo');
		navegante.setPosition(2030, 3760, 2350, 100, null, null, ani);
	}


	var navControl = function(suffix){
		var name = 'navegante'+suffix;

		window.location.hash = '#'+suffix.toLowerCase();

		var showNav = function(){
			$nav.css({ opacity:1 });
			if(suffix != 'Centro'){
				$menu1.show();
				$menu2.show();
			}
		}

		if(!$nav.hasClass(name)){
			if(suffix == 'Centro'){
				$menu1.hide();
				$menu2.hide();
			}

			$menu1.removeClass().addClass(name);
			$nav.removeClass().addClass(name).css({ opacity:0.1 });
			clearTimeout(navTimeout);
			navTimeout = setTimeout(showNav, 2000);
		}
	}



	var $logotipo = $('.logotipo');

	$logotipo.click(function(e){
		gotoCentro(true);
		return false;
	});

	var $arribaBtn = $('.arriba');
	var $derechaBtn = $('.derecha');
	var $abajoBtn = $('.abajo');
	var $izquierdaBtn = $('.izquierda');
	var $centroBtn = $('.centro');

	$centroBtn.click(function(e){
		gotoCentro(true);
		return false;
	});

	$derechaBtn.click(function(e){
		gotoDerecha(true);
		return false;
	});

	$arribaBtn.click(function(e){
		gotoArriba(true);
		return false;
	});

	$izquierdaBtn.click(function(e){
		gotoIzquierda(true);
		return false;
	});

	$abajoBtn.click(function(e){
		gotoAbajo(true);
		return false;
	});



	var checkUrlInterval, hashCache;
	
	var checkUrl = function(ani){

		var hash = window.location.hash.toLowerCase();

		if(hash != hashCache && (!(hash == '' && hashCache == '#centro') && !(hashCache == '' && hash == '#centro'))){
			hashCache = hash;
			switch(hash) {
				case '#centro':
					gotoCentro(ani);
				break;
				case '#derecha':
					gotoDerecha(ani);
				break;
				case '#arriba':
					gotoArriba(ani);
				break;
				case '#izquierda':
					gotoIzquierda(ani);
				break;
				case '#abajo':
					gotoAbajo(ani);
				break;
				default:
					gotoCentro(ani);
			}
		}
	}

	checkUrl(false);
	
	checkUrlInterval = setInterval(function(){
		checkUrl(true);
	}, 500);
	
	navegante.show();

});