//if($.cookie('AlexBuga_Animations') == "disabled"){ jQuery.fx.off = true;}

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function(json) {
    var args_len = json.length;
    var loaded   = 0;
    
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = "css/images/" + json[i];
      cache.push(cacheImage);
      cacheImage.onload = function(){
      	loaded++;
      	$("#lobby").html('<div class="preloader">Loading images ' + loaded + '/' + args_len + ' ...</div>');

      	if(loaded == args_len){
      		$("#livingroom, #roulette").fadeIn();
			//Parse Hash tags and go to specific page
			Sailor.go(Sailor.getUrl());
      	}
      }
    }
  }
})(jQuery)

//Hash navigation
Sailor = {
	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, '');
		}

		else {
			return window.location.hash;
		}
		
	},

	setSail: function(link){
		str = link.replace(_root_url, "");
		window.location.hash = str;		
	},
	
	go: function(url){
		if(url){
			var str = url.replace("#", "");
			if(str != "welcome") Room.enter(str);
		}
	}
}

//Do the magic on the windows
function initWindows(){
	$("#bookshelves .small-window-left").hover(
		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: 150}, 300, "swing");
		},

		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: 0}, 50, "swing");
		}
	);

	$("#bookshelves .small-window-right").hover(
		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: -150}, 300, "swing");
		},

		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: 0}, 50, "swing");
		}
	);

	$("#bookshelves .big-window-left").hover(
		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: 250}, 300, "swing");
		},

		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: 0}, 50, "swing");
		}
	);

	$("#bookshelves .big-window-right").hover(
		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: -250}, 300, "swing");
		},

		function(){
			$(this).find("div.glass").stop(true, true).delay(100).animate({left: 0}, 50, "swing");
		}
	);
}

//Do the magic on the logo
function initRoulette(){

	$("#roulette .logo").hover(
		function(e){
			$("#roulette .logo").stop(true, true).animate({width: 168}, 250, 'swing');
			$("#roulette .grup").stop(true, true).delay(150).animate({width: 750 }, 300, 'swing');
		},
		function(){
			$("#roulette .grup").stop(true, true).delay(2000).animate({width: 18 }, 300, 'swing');
			$("#roulette .logo").stop(true, true).delay(2300).animate({width: 55}, 300, 'swing');
		}
	);
	
	$("#roulette .grup").hover(
		function(e){
			$(this).stop(true, true);
			$("#roulette .logo").stop(true, true);
		},
		
		function(){
			$(this).stop(true, true).delay(1000).animate({width: 18 }, 300, 'swing');
			$("#roulette .logo").stop(true, true).delay(1000).animate({width: 55}, 300, 'swing');
		}
	);

	$("#roulette .grup").resizable({minWidth: 18, maxWidth: 750, maxHeight: 64});
	$("#roulette .grup .cap").mousedown(function(){
		$("#roulette .logo, #roulette .grup").unbind('mouseenter');
		$("#roulette .logo, #roulette .grup").unbind('mouseleave');
	});
	
	$("#roulette .grup .navbar ul li").hover(
		function(){
			$("#roulette .grup .navbar ul li").not(this).stop().animate({opacity: ".5"}, {duration: 300});
		},
		function(){
			$("#roulette .grup .navbar ul li").not(this).stop().animate({opacity: "1"}, {duration: 300});
		}
	);
	
	$("div#search input.query").focus(function(){
		$("#roulette .grup").unbind('mouseleave');
	});
}

//The Dolly Grip effect on the pages
DollyGrip = {
	enabled: true,
	
	init: function(id){
		//if($.cookie('AlexBuga_DollyGrip')){DollyGrip.enabled = false;}
		if(DollyGrip.enabled == true){
			$("#" + id).bind('mousemove', function(e){
			
				percent = ((e.pageY) * 100) / $(this).height();
				
				percentToNumber = Math.round( (percent * ( ($(this).find(".group").innerHeight()) - $(this).height() ) ) / 100 );
				
				$(this).scrollTop( percentToNumber );
			});
		}
	},
	
	kill: function(){
		if(DollyGrip.enabled == true){
			$("#rooms .room").unbind("mousemove");
		}
	}
}

function loadClock(){
	timp = new Date();
	ora  = timp.getHours();
	if (ora > 12) {ora = ora - 12;}
	minute = timp.getMinutes();
	secunde = timp.getSeconds();
		
	$("#clock .hours").css({
		'-webkit-transform': 'rotate(' + ((ora * 30) + (minute/2)) + 'deg)',
		'-moz-transform': 'rotate(' + ((ora * 30) + (minute/2)) + 'deg)'
	});

	$("#clock .minutes").css({
		'-webkit-transform': 'rotate(' + minute * 6 + 'deg)',
		'-moz-transform': 'rotate(' + minute * 6 + 'deg)'
	});

	$("#clock .seconds").css({
		'-webkit-transform': 'rotate(' + secunde * 6 + 'deg)',
		'-moz-transform': 'rotate(' + secunde * 6 + 'deg)'
	});
}

Room = {
	enter: function(url){
		$("#rooms").animate({scrollTop: $("#livingroom").height()}, 500);
		$("#lobby").ajaxError(function(){
			$(this).html('<div class="preloader">Page not found.</div>');			
		});
		
		$("#lobby").ajaxStart(function(){
			$("#roulette .grup").trigger('mouseleave');
			//$("#lobby .group").css({opacity: 0});
			$(this).html('<div class="preloader">Loading...</div>');
		});

		$("#lobby").load(url, function(){
			Sailor.setSail(url);
			$("#lobby .group").css('opacity', 0).delay(500).animate({opacity: 1}, 500);
			DollyGrip.kill();
			DollyGrip.init('lobby');
		});
	},
	
	backToLivingroom: function(){
		DollyGrip.kill();
		$("#rooms").animate({scrollTop: 0}, 500, function(){
			$("#lobby").html('');
		});
	},
	
	dashboard: function(state, del){
		switch(state){
			case "open":
				$("#dashboard").stop(true, true).delay(del).animate({height: '70'}, 500, "swing");
			break;
			
			case "close":
				$("#dashboard").stop(true, true).animate({height: '0'}, 500, "swing");
			break;
		}
	}
}

//Alex Buga's Magic Slider
MagicSlider = {
	init: function(sliderId, leftArrow, rightArrow, direction){
		if(direction == 'vertical'){
			MagicSlider.pageWidth = $(sliderId + " div.mask").height();
			//$(sliderId + " ul").css('height', $(sliderId + " div.mask ul li").length * ($(sliderId + " div.mask ul li").height() + parseInt($(sliderId + " div.mask ul li").css('margin-bottom'))));
			MagicSlider.pages = Math.ceil($(sliderId + " div.mask ul").height() / $(sliderId + " div.mask").height());
			MagicSlider.page  = 1;
			
			$(leftArrow).click(function(e){
				e.preventDefault();
				if(MagicSlider.page > 1){
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollTop: '-=' + MagicSlider.pageWidth
						},
						300,
						'swing',
						function(){
							if(MagicSlider.page > 1){MagicSlider.page--;}
						}
					);
				}
				
				else{
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollTop: 0
						},
						300,
						'swing',
						function(){
							MagicSlider.page = 1;
						}
					);
				}
			});
			
			$(rightArrow).click(function(e){
				e.preventDefault();
				if(MagicSlider.page < MagicSlider.pages){
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollTop: '+=' + MagicSlider.pageWidth
						},
						300,
						'swing',
						function(){
							if(MagicSlider.page < MagicSlider.pages){MagicSlider.page++;}
						}
					);
				}
				
				else{
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollTop: 0
						},
						300,
						'swing',
						function(){
							MagicSlider.page = 1;
						}
					);
				}
			});
		}
		else{
			MagicSlider.pageWidth = $(sliderId + " div.mask").width();
			$(sliderId + " ul").css('width', $(sliderId + " div.mask ul li").length * ($(sliderId + " div.mask ul li").width() + parseInt($(sliderId + " div.mask ul li").css('margin-right'))));
			MagicSlider.pages = Math.round($(sliderId + " div.mask ul").width() / $(sliderId + " div.mask").width());
			MagicSlider.page  = 1;
			
			$(leftArrow).click(function(e){
				e.preventDefault();
				if(MagicSlider.page > 1){
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollLeft: '-=' + MagicSlider.pageWidth
						},
						300,
						'swing',
						function(){
							if(MagicSlider.page > 1){MagicSlider.page--;}
						}
					);
				}
				
				else{
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollLeft: 0
						},
						300,
						'swing',
						function(){
							MagicSlider.page = 1;
						}
					);
				}
			});
			
			$(rightArrow).click(function(e){
				e.preventDefault();
				if(MagicSlider.page < MagicSlider.pages){
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollLeft: '+=' + MagicSlider.pageWidth
						},
						300,
						'swing',
						function(){
							if(MagicSlider.page < MagicSlider.pages){MagicSlider.page++;}
						}
					);
				}
				
				else{
					$(sliderId + " div.mask").stop(true, true).animate(
						{
							scrollLeft: 0
						},
						300,
						'swing',
						function(){
							MagicSlider.page = 1;
						}
					);
				}
			});
		}
	}
}

$(document).ready(function(){
/*
	$.getJSON("scan.php", function(images){
		jQuery.preLoadImages(images);
	});
*/
	
	initRoulette();
	initWindows();
	loadClock();
	setInterval("loadClock()", 1000);
	
	//Make the main navigation
	$("a[rel='ajax']").live('click', function(e){
		e.preventDefault();
		
		if(window.location.hash != ""){
			Room.enter($(this).attr('href'));
		}
		else{
			window.location.href= _root_url + "#" + $(this).attr('href');
		}
	});

	$("#roulette .logo, a#home").bind('click', function(e){
		e.preventDefault();
		Room.backToLivingroom();
	});
	
	$("#lever").toggle(
		function(e){
			Room.dashboard('open');
			$(this).attr('class', 'active');
		},
		
		function(){
			Room.dashboard('close');
			$(this).removeClass('active');
		}
	);

	$("#trophee, #books, #maschine, #leica, #ipad-icon").hover(
		function(){
			$(this).stop(true, true).animate({bottom: '+=10'}, 250, "swing");
		},
		function(){
			$(this).stop(true, true).animate({bottom: '-=10'}, 250, "swing");
		}
	);
	
	//Faded stuff on click
	$(".faded").live('click', function(){
		$(this).animate({opacity: 1}, 500);
	});
	
	//Teaser menu
	//$("#roulette .logo").trigger('mouseenter');
	
	$("#disableFx").toggle(
		function(e){
			e.preventDefault();
			$(this).stop(true, true).animate({opacity: .6}, 500);
			jQuery.fx.off = true;

			//var options = { path: '/', expires: 365 };
			//$.cookie('AlexBuga_Animations', 'disabled', options);
		},

		function(e){
			e.preventDefault();
			$(this).stop(true, true).animate({opacity: 1}, 500);
			jQuery.fx.off = false;

			//$.cookie('AlexBuga_Animations', null, options);
		}
	);
	
	$("#disableDolly").toggle(
		function(e){
			e.preventDefault();
			$(this).stop(true, true).animate({opacity: .6}, 500);
			DollyGrip.kill();
			DollyGrip.enabled = false;
			$("#lobby").css('overflow', 'auto !important');

			//var options = { path: '/', expires: 365 };
			//$.cookie('AlexBuga_DollyGrip', 'disabled', options);
		},

		function(e){
			e.preventDefault();
			$(this).stop(true, true).animate({opacity: 1}, 500);
			DollyGrip.enabled = true;
			$("#lobby").css('overflow', 'hidden !important');

			//var options = { path: '/', expires: 365 };
			//$.cookie('AlexBuga_DollyGrip', null, options);
		}
	);
	
	//Go to page from href
	$("#livingroom, #roulette").fadeIn();
	Sailor.go(Sailor.getUrl());	
	
});

$(window).resize(function(){
	//$("#rooms div.room").css('height', '100%');
	$("#rooms").scrollTop(0);
	
});