// *********************************//
//	   	INITIAL SETTERS	& VARS	    //
// *********************************//

var server = "http://creativebitbox.com/";
var hideRightMenu = false;
var loaded = false;
var toSeek = false;
var winTooSmall = false;
var active = 0;
function tooglehide(){ hideRightMenu = !hideRightMenu; }

$('#loading').show(100).animate({marginTop: '-7px'}, 400);

setInterval(animLoading,150);
function animLoading(){
	active++;
	if(active == 4) active = 0;
	
	$('#load01').css('backgroundPosition', '0px 0px');
	$('#load02').css('backgroundPosition', '0px 0px');
	$('#load03').css('backgroundPosition', '0px 0px');
	
	if(active == 3)	$('#load02').css('backgroundPosition', '0px -14px');
	else $('#load0'+(active+1)).css('backgroundPosition', '0px -14px');
}

$(window).load(function () {
	$('#loading').animate({marginTop: '13px', opacity: 0}, 400,
		function(){
			$('#loader').hide();
			$('#wrap').show();
			afterLoading();
		}
	);
	if(toSeek) scroll(0,3240);
	loaded = true;
});

function afterLoading(){
	winSize();
	addMonthsNews();
	fadeLines("A");
	fadeLines("B");
	fadeLines("C");
	setScrolable();
	addVideo();
	VideoJS.setupAllWhenReady();
	initMap();
}


function prodSeekTo(n){
	var left = -(960 * (n-1));
	$('#browsable2 .itemss').css("left", left);
	
	var navi = document.getElementById('navi2');
	navi.childNodes[1].className = 'inactive';
	navi.childNodes[n].className = 'active';
	
	toSeek = true;
}

function finishLoading(){
	//setTimeout(	$('#loader').fadeOut(500), 1500);
	setTimeout(	$('#wrap').show(), 500);
	if(toSeek) scroll(0,3240);
	loaded = true;
}

function addVideo(){
	var ff = false;
	if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) ff = true;
	
	var vidHTML = "";
	if(!ff) {
		vidHTML += '<video class="video-js" width="720" height="405" controls preload="auto" poster="'+server+'data/home/cover.jpg">';
		vidHTML += '<source src="'+server+'data/home/video.mp4" type=\'video/mp4; codecs="avc1.42E01E, mp4a.40.2"\' />';
		vidHTML += '<source src="'+server+'data/home/video.webm" type=\'video/webm; codecs="vp8, vorbis"\' />';
		vidHTML += '<source src="'+server+'data/home/video.ogv" type=\'video/ogg; codecs="theora, vorbis"\' />';
	}
	vidHTML += '<object class="vjs-flash-fallback" width="720" height="405" type="application/x-shockwave-flash" data="'+server+'data/player.swf">';
	vidHTML += '<param name="movie" value="'+server+'data/player.swf" />';
	vidHTML += '<param name="allowfullscreen" value="true" />';
	vidHTML += '<param name="flashvars" value="url='+server+'data/home/video.flv&image='+server+'data/home/cover.jpg" />';
	if(!ff) vidHTML += '<img src="'+server+'data/home/cover.jpg" width="720" height="405" alt="CBB" title="No video playback capabilities." />';
	vidHTML += '</object>';
	if(!ff) vidHTML += '</video>';
	$('#homeVid').html(vidHTML);
	$('#homeVid').fadeIn(500);
	$('#seeProj').fadeIn(500);
}

var slides = new Array(0, 1080, 2160, 3240, 4320, 5400, 6480);
var isAnimating = false;
var initLang = "";
var id_lang = 0;


// *********************************//
//	     		GETS				//
// *********************************//

function getWinSize(){
	var a = $(window).height();
	var b = $(document).height();
	if(a < b) return a; else return b;
}

function getWinWidth(){
	var a = $(window).width();
	var b = $(document).width();
	if(a < b) return a; else return b;
}

function getScrollTop(){
/*	var s = document.body.scrollTop;
	if(s == 0) s = document.body.pageYOffset;*/
	return $(window).scrollTop();
}

function getActualPosition(){
	var a = 0;
	var s = getScrollTop();
	var h = getWinSize();
	
	for(var i=0 ; i<slides.length ; i++) {
		if(s >= slides[i]-(h/2)) {
			a = i;
		}
	}
	return a;
}


// *********************************//
//	     		PARALLAX		    //
// *********************************//

$(document).ready(function(){			
	$('#item1').moveRelative("50%", 1080, 0.2, true);
	$('#inner1a').moveRelative("50%", 1080, 0.4, true);
	
	$('#item2').moveRelative("50%", 2160, 0.2, true);
	$('#inner2a').moveRelative("50%", 2160, 0.4, true);
	$('#inner2b').moveRelative("50%", 2160, 0.8, true);
	
	$('#item3').moveRelative("50%", 3240, 0.2, true);
		$('#sliderProj').moveRelative("50%", 3240, 0.7, true);
		$('.sliderBG').moveRelative("50%", 3240, 0.4, true);
	
	$('#item4').moveRelative("50%", 4320, 0.15, true);
	$('#inner4a').moveRelative("50%", 4320, 0.3, true);
	$('#inner4b').moveRelative("50%", 4320, 0.6, true);
	
	$('#item5').moveRelative("50%", 5400, 0.2, true);
	
	$('#item6').moveRelative("50%", 6480, 0.30, true);
	$('#inner6a').moveRelative("50%", 8030, 0.825, true);
	$('#inner6b').moveRelative("50%", 8130, 0.75, true);
	$('#inner6c').moveRelative("50%", 8230, 0.70, true);
});


// *********************************//
//	     	WIN RESIZE		        //
// *********************************//

$(window).resize(function() { winSize(); });

var butsHidden = false;
function winSize(){
	actual = getActualPosition();
	
	var d = (1080 - getWinSize())/2;
	if(d>240) d = 240;
	slides = new Array(0, 1080+d, 2160+d, 3240+d, 4320+d, 5400+d, 6480+d);
	goTo(actual+1);
	
	if(hideRightMenu)
	if(getWinWidth() <1110) {
		if(!butsHidden) {
			$(".lateralUpDown").animate({"right": "-=60px"}, "slow");
			$(".topLang").animate({"right": "-=60px"}, "slow");
			$(".bottomLinks").animate({"right": "-=60px"}, "slow");
			butsHidden = true;
		}
	} else {
		if(butsHidden) {
			$(".lateralUpDown").animate({"right": "+=60px"}, "slow");
			$(".topLang").animate({"right": "+=60px"}, "slow");
			$(".bottomLinks").animate({"right": "+=60px"}, "slow");
			butsHidden = false;
		}
	}
	
	var winSmall;
	if(getWinWidth() <940 && !winTooSmall ) {
		$('#sizeAlert').animate({bottom: "+=110px"}, 500,'easeInOutCubic');
		winSmall = setTimeout("{$('#sizeAlert').stop().animate({bottom: \"-=110px\"}, 500,'easeInOutCubic'); winTooSmall = false; }", 4000);
		winTooSmall = true;
	}
}


// *********************************//
//	     FLOW PANELS & IMAGES       //
// *********************************//

$(document).ready(function() {
	
	$("#browsable1").scrollable({
		easing: 'easeInOutQuad',
		speed: 800,
		mousewheel: false,
		navi: "#navi1"
	}).navigator();

	$("#browsable2").scrollable({
		easing: 'easeInOutCubic',
		speed: 800,
		mousewheel: false,
		navi: "#navi2",
	}).navigator(/*).autoscroll({
		autoplay: false
	}*/);
});

// *********************************//
//	   CONTROL SMOOTH SCROLLING     //
// *********************************//

function goUpDown(delta){
	//if(isAnimating) return;
	
	var s = getScrollTop();
	var h = getWinSize();
	var actual = getActualPosition();
	
	if(actual == 0 && delta == -1) return;
	if(actual == 5 && delta == 1) return;
	$('html, body').stop().animate({scrollTop: slides[actual+delta]}, 1000,'easeInOutCubic',function(){ isAnimating = false; });
	isAnimating = true;
}

function goTo(delta){
	$('html, body').stop().animate({scrollTop: slides[delta-1]}, 1000,'easeInOutCubic');
	document.getElementById('li'+(delta)).style.backgroundPosition= "0 -"+((delta-1)*144+36)+"px";
}

/*$(function() {
	$('ul.nav a').bind('click',function(event){
		var $anchor = $(this);
		
		$('html, body').stop().animate({
			scrollTop: $($anchor.attr('href')).offset().top()
		}, 1500,'easeInOutQuart');
		event.preventDefault();
	});
});*/


// *********************************//
//		OVERRIDE MOUSE WHELL		//
// *********************************//

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;

function wheel(event){
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta)delta = event.wheelDelta/120;
	else if (event.detail) delta = -event.detail/3;
	
	if (delta) handle(delta);
	if (event.preventDefault) event.preventDefault();
	event.returnValue = false;
}

function handle(delta) {
	var s = getScrollTop();
	var actual = getActualPosition();
	setScrolable();
	
	var tamanho = slides[actual+1]-slides[actual];
	if( tamanho > getWinSize() || delta > 0) {
		$('html, body').stop().animate({scrollTop: s-(300*delta)}, 200);
	} else {
		$('html, body').stop().animate({scrollTop: slides[actual-delta]}, 1080,'easeInOutCubic');
	}
}

$(window).scroll(function() { highlight(); });
function highlight() {
	var actual = getActualPosition();
	setScrolable();
	
	for(var i=0 ; i<6 ; i++){
		document.getElementById('li'+(i+1)).style.backgroundPosition= "0 -"+(i*144)+"px";
	}
	document.getElementById('li'+(actual+1)).style.backgroundPosition= "0 -"+((actual*144)+36)+"px";
	
	if(actual == 0) {
		for(var i=0 ; i<6 ; i++){
			document.getElementById('tip'+(i+1)).style.color = "#000000";
			$('#tip'+(i+1)).css('textShadow','rgba(255, 255, 255, .8) 0 1px');
		}	
	} else {
		for(var i=0 ; i<6 ; i++){
			document.getElementById('tip'+(i+1)).style.color = "#D70962";
			$('#tip'+(i+1)).css('textShadow','rgba(0, 0, 0, .25) 0 1px');
		}
	}
	
	if(actual != 2 && projActive) slide('sliderProj', 0);
	if(actual != 3 && prodActive) slide('sliderProd', 0);
	if(actual != 5 && contactActive) slide('sliderContact', 0);
	
	//changePage(actual);
}

var actPage = 0;
function changePage(n){
	if(n == actPage) return;
	$('.content').hide();
	$("#item"+(n+1)).find('.content').show();
	actPage = n;
}

function overMenu(i) { $('#tip'+i).style.display = "block"; }
function outMenu(i) { $('#tip'+i).style.display = "none"; }

// *********************************//
//		   INIT GOOGLE MAPS			//
// *********************************//

function initMap() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(41.026219, -8.619006), 15);
		//map.setUIToDefault();
		
        var cbbIcon = new GIcon(G_DEFAULT_ICON);
        cbbIcon.image = "images/GMarker.png";
		markerOptions = { icon:cbbIcon };
		
		var morada = "<a href='http://maps.google.pt/maps?q=41.025819,+-8.618206' target='_blank' class='GMap'><div style='width:320px;'><div style='width:230px; height:90px; font-family: fonteCBB; font-size: 13px; color:#58595B; line-height:175%;'>Centro de Incubação Base Tecnologica V.N.Gaia, Av. Manuel Violas, 476 Sala 14 | 27<br/>4410 - 136 S. Félix da Marinha - PORTUGAL<br/>+351 22 732 31 65 | +351 22 733 41 40</div></div><div style=\"position:absolute;left:250px;top:0px;\" class=\"logoCBB\"></div></a>";
		
		var marker = new GMarker(new GLatLng(41.026219, -8.619006), markerOptions);
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(morada); });
		map.addOverlay(marker);
		//GEvent.trigger(marker, "click");
	}
}


// *********************************//
//		   LANGUAGE	SETTINGS		//
// *********************************//

function setLang(lang){
	initLang = lang;
	if(lang == "en") { id_lang = 2; document.getElementById('en').style.backgroundPosition = "0 -1040px"; }
	else if(lang == "pt") { id_lang = 1; document.getElementById('pt').style.backgroundPosition = "0 -1112px"; }
}

function chageLang(lang){
	if(lang == initLang) return;
	
	if(lang == "en"){
		document.getElementById('pt').style.backgroundPosition = "0 -1112px";
		document.location.href = "/?lang=en";
	} else if(lang == "pt") {
		document.getElementById('en').style.backgroundPosition = "0 -1040px";
		document.location.href = "/";
	}
}


// *********************************//
//			CONTROL SLIDER			//
// *********************************//

var projActive = false;
var prodActive = false;
var contactActive = false;
function slide(slider, speed) {
	if(speed === undefined) speed = 1;
	if(slider == "sliderProj") {
		$(".imageContentor").html("");
		projActive = !projActive;
	}
	if(slider == "sliderProd") {
		prodActive = !prodActive;
	}
	if(slider == "sliderContact") {
		contactActive = !contactActive;
		$('.sliderContent').fadeIn(1000);
	}
	var sli = document.getElementById(slider);
	if ($(sli).is(":hidden")) {
		$(sli).slideDown(800*speed);
	} else {
		$(sli).slideUp(400*speed);
	}
	if(slider != "sliderContact")
		$('.sliderContent').fadeOut(0);
}

function fadeLines(n) {
	$(".fadeLines"+n).fadeIn(1000);
	$(".fadeLines"+n).fadeOut(500);	
}

function setScrolable() {
	var actual = getActualPosition();
	var up = document.getElementById('upDown1');
	var down = document.getElementById('upDown2');
	
	if(actual == 0) {
		up.className = "upDown1Inactive";
	} else {
		up.className = "upDown1";
	}
	if(actual == 5) {
		down.className = "upDown2Inactive";
	} else {
		down.className = "upDown2";
	}
}

/*
$(function() {
	$('ul.nav a').bind('click',function(event){
		var $anchor = $(this);
		
		$('html, body').stop().animate({
			scrollTop: $($anchor.attr('href')).offset().top
		}, 1500,'easeInOutQuart');
		//event.preventDefault();
	});
});
*/
