var rubrique_actuelle 	= 'rocket83';
var scrollY 			= 0;
var verrou_menu			= false;
var change_menu;

var n_ref;
var ref_en_cours;
var changement_ref = false;
var timer_diapo;

var e = new Array('rocket83', 'espace-sous-rocket83', 'references', 'espace-sous-references', 'client', 'espace-sous-client', 'contact');

var rub_assoc 			= new Array();
rub_assoc['rocket83'] 	= new Array(e[1], e[2], e[3], e[4], e[5], e[6]);
rub_assoc['references'] = new Array(e[3], e[4], e[5], e[6]);
rub_assoc['client'] 	= new Array(e[5], e[6]);
rub_assoc['contact'] 	= new Array();

// Vitesses Scroll
var v_scroll = new Array();
v_scroll['rocket83,references'] = 2;
v_scroll['rocket83,client'] 	= 3.5;
v_scroll['rocket83,contact'] 	= 4;
v_scroll['references,client'] 	= 2;
v_scroll['references,contact'] 	= 3;
v_scroll['client,contact'] 		= 2;

window.onresize = function() {
	if(page_en_cours == 'rocket83' && rubrique_actuelle != 'contact') setHauteurContenu(rubrique_actuelle);
}

function allerVers(nouvelle_rubrique) {
	
	if(!verrou_menu && nouvelle_rubrique != rubrique_actuelle) {
		
		verrou_menu = true;
		
		$$('.contenu').each(function(element){ new Effect.Opacity(element, { from: 1, to: 0 } ) });
		setTimeout("debutAllerVers('"+ nouvelle_rubrique +"')", 950);
		
		if(nouvelle_rubrique != 'references' && rubrique_actuelle != 'references') $('references').setStyle({ background: 'none' });
	}
}

function debutAllerVers(nouvelle_rubrique) {
	
	$$('html')[0].setStyle({ overflow: 'hidden' });
	
	e.without(rubrique_actuelle).each(Element.show); // Affichage des contenus de chaque rubrique
	
	
	if(nouvelle_rubrique == 'references') {
		$('references').setStyle({
									height: getWindowHeight() + 'px',
									background: 'url(img/fusee-fumee.png) no-repeat right 50px'
								});
								
	}
	
	// ***  Si on quitte la page "références", on la réinitialise ***
	if(rubrique_actuelle == 'references' && ref_en_cours) {
		
		clearInterval(timer_diapo);
		$('ref-'+ref_en_cours).hide();
		initDiapo(ref_en_cours, true);
	}
	
	decalageHTML(0, scrollY);
	
	//<--------- EFFET PROFONDEUR --------->
	//''''' Lune '''''
	if(nouvelle_rubrique == 'rocket83') {
		new Effect.MoveBy('lune', $('lune').getHeight(), 0, { duration: 0.3, delay: getVitesseScroll(rubrique_actuelle, nouvelle_rubrique) });
	}
	
	//''''''' Nuages '''''''
	a = getPositionTop($(rubrique_actuelle));
	b = getPositionTop($(nouvelle_rubrique));
	y = getPositionTop($('client'));
	
	if( (a <= y && b >= y) || (a > b && a >= y) ) {

		if(a < b) {
	
			if(a < y && b > y) decalage_y = -540;
			else decalage_y = -270;
	
		} else if(a > b) {
	
			if(b < y && a != y) decalage_y = 540;
			else decalage_y = 270;
		}
	
		delais = rubrique_actuelle == 'client' ? 0.1 : getVitesseScroll(rubrique_actuelle, nouvelle_rubrique) - 1;
	
		new Effect.MoveBy('mini-nuage05-07', decalage_y, 0, { duration: 0.8, delay: delais });
		new Effect.MoveBy('mini-nuage01', decalage_y, 0, { duration: 1.2, delay: delais });
		
		new Effect.MoveBy('nuage', decalage_y, 0, { duration: 0.8, delay: delais + 0.4 });
	}
	//<------------------------------------>
	
	
	//''''''''''''''' Rebond '''''''''''''''
	duree_rebond = getVitesseScroll(rubrique_actuelle, nouvelle_rubrique);
	
	if(nouvelle_rubrique != 'rocket83' && nouvelle_rubrique != 'contact') {
		
		decalage_rebond = getPositionTop($(nouvelle_rubrique)) > getPositionTop($(rubrique_actuelle)) ? 60 : -60;
		
	} else decalage_rebond = 0;
	
	Effect.ScrollTo(nouvelle_rubrique, 	{ 	duration: duree_rebond,
											offset: decalage_rebond,
											afterFinish: function(){ rebond(nouvelle_rubrique) } });
	//''''''''''''''''''''''''''''''''''''''
}

function rebond(nouvelle_rubrique) {
	
	Effect.ScrollTo(nouvelle_rubrique, { duration: 0.3, afterFinish: function(){ finAllerVers(nouvelle_rubrique) } });
}

function finAllerVers(nouvelle_rubrique) {
	
	scrollY = Position.realOffset($('index'))[1];
	
	rub_assoc[nouvelle_rubrique].each(Element.hide);
	
	decalageHTML(scrollY, 0);
	
	if(nouvelle_rubrique != 'contact') setHauteurContenu(nouvelle_rubrique);
	else $('nom').focus();
	
	$$('html')[0].setStyle({ overflow: 'auto' });

	$('menu_'+ rubrique_actuelle).removeClassName('on');
	$('menu_'+ nouvelle_rubrique).addClassName('on');
	
	$$('.contenu').each(function(element){ new Effect.Opacity(element); });
	
	
	//'''''''''' Préparation Effet profondeur ''''''''''
	// Lune
	if(rubrique_actuelle == 'rocket83') {
		new Effect.MoveBy('lune', $('lune').getHeight()*-1, 0, { duration: 0 });
	}
	
	rubrique_actuelle = nouvelle_rubrique;
	
	verrou_menu = false;
	
	afficheMenu();
}

function afficheMenu() {
	
	largeur_fusee = $('fusee-menu').getWidth();
	
	$('menu').setStyle({ marginTop: scrollY+'px' });
	$('fusee-menu').setStyle({ top: '50px', left: largeur_fusee * -1 +'px', marginTop: scrollY + 50 + 'px' });
	
	new Effect.MoveBy('fusee-menu', -50, largeur_fusee, { duration: 0.3, delay: 1.1 });
	
	i = 0;
	
	$$('#menu li').each(function(menu_li){
		
		largeur_li = menu_li.getWidth();
		
		if(!change_menu) menu_li.setStyle({ marginLeft: largeur_li * -1 + 'px' });
		else menu_li.setStyle({ left: largeur_li * -1 +'px', marginLeft: 0 });
		
		new Effect.MoveBy(menu_li, 0, largeur_li, { duration:0.3, delay: i });
		
		i += 0.2;
	});
	
	change_menu = true;
}

function decalageHTML(val_decalage_html, val_scrollto) {
	
	$$('html')[0].setStyle({ marginTop: val_decalage_html * -1 + 'px' });
	scrollTo(0, val_scrollto);
}

function getVitesseScroll(rubrique_actuelle, nouvelle_rubrique) {
	
	return v_scroll[rubrique_actuelle+','+nouvelle_rubrique] 	? v_scroll[rubrique_actuelle+','+nouvelle_rubrique]
																: v_scroll[nouvelle_rubrique+','+rubrique_actuelle];
}

function verifFormContact() {
	
	$('contact-submit').blur();
	
	if($F('nom').empty()) {
		alert('Veuillez indiquer votre nom');
		$('nom').focus();
		
	} else if($F('email').empty()) {
		alert('Veuillez indiquer votre adresse e-mail');
		$('email').focus();
		
	} else if(!isMail($F('email'))) {
		alert('Adresse e-mail incorrecte');
		$('email').focus();
		
	} else if($F('message').empty()) {
		alert('Veuillez indiquer votre message');
		$('message').focus();
		
	} else {
		
		$('contact-submit').src = 'img/envoyer-gris.png';
		$('loader').show();
		$('contact-submit').setStyle({ cursor: 'default' });
		
		nom 	= encodeURIComponent($F('nom'));
		email 	= encodeURIComponent($F('email'));
		sujet 	= encodeURIComponent($F('sujet'));
		message = encodeURIComponent($F('message'));
		
		new Ajax.Request(
		
			'rocket83.php', {
				
				parameters: "xhr=form-contact&nom="+nom+'&email='+email+'&sujet='+sujet+'&message='+message,
				onSuccess: function(xhr) {
					
					$('contact-submit').src = 'img/envoyer.png';
					$('loader').hide();
					$('contact-submit').setStyle({ cursor: 'pointer' });
					
					if(xhr.responseText == 'ok') {
						
						alert('Merci, le formulaire a bien été envoyé.');
						
						$('nom').clear();
						$('email').clear();
						$('sujet').clear();
						$('message').clear();
						
					} else alert("ERREUR : Le formulaire n'a pas été envoyé. Veuillez recommencer.");
				}
			}
		);
	}
}

//<---------- REFERENCES ---------->
function initDiapo(ref, byebye_references) {
	
	nb_visuels = $$('#ref-'+ ref +' .apercu')[0].immediateDescendants().each(Element.hide);
	$('ref-'+ ref +'1').show();
	if(byebye_references) ref_en_cours = null;
}

function afficheReference(ref) {
	
	if(ref != ref_en_cours && !changement_ref) {
		
		changement_ref = true;
		
		initDiapo(ref);
		
		if(ref_en_cours) {
	
			clearInterval(timer_diapo);
			
			new Effect.Opacity('ref-'+ref_en_cours, { from: 1, to: 0, duration: 0.6 });
			Effect.SlideUp('ref-'+ref_en_cours, { delay: 0.7, duration: 0.5 });
			
			setTimeout('prepareDiapoReference("'+ ref +'")', 1500);
			
		} else prepareDiapoReference(ref);
	}
}

function prepareDiapoReference(ref) {
	Effect.SlideDown('ref-'+ref, { duration: 0.5 });
	new Effect.Opacity('ref-'+ref, { from: 1, to: 0, duration: 0 });
	ref_en_cours = ref;
	
	demarreDiapoReference(ref);
}

function demarreDiapoReference(ref) {
	
	changement_ref = false;
	
	new Effect.Opacity('ref-'+ref, { from: 0, to: 1, delay: 0.6 });
	
	n_ref = 1;
	nb_visuels = $$('#ref-'+ ref +' .apercu')[0].immediateDescendants().length;
	timer_diapo = setInterval('diapoReferences("'+ ref +'", '+nb_visuels+')', 2500);
}

function diapoReferences(ref, nb_visuels) {
	
	if(n_ref < nb_visuels) {
		
		n_ref ++;
		a_afficher 	= 'ref-' + ref + n_ref;
		
		$(a_afficher).appear({ duration: 1, afterFinish: function() {diapoACacher(ref)} });
	
	} else {
	
		$('ref-' + ref + n_ref).fade({ duration: 1 });
		n_ref = 1;
	}
}

function diapoACacher(ref) {
	n = n_ref - 1;
	if(n_ref > 2) $('ref-' + ref + n).hide();
}
//<--------------------------------->


function focusChampClient(id) {
	
	if(id == 'login' && $F(id) == 'Identifiant') {
		
		$(id).value = '';
		$(id).setStyle({ color: '#496369', fontStyle: 'normal' });
	}
	
	else if(id == 'pass' && $F(id) == 'Mot de passe') {
		
		$(id).value = '';
		$(id).setStyle({ color: '#496369', fontStyle: 'normal' });
		$(id).type = 'password';
		$(id).focus();
	}
}

function blurChampClient(id) {
	
	if(id == 'login' && $F(id) == '') {
		
		$(id).value = 'Identifiant';
		$(id).setStyle({ color: '#A0A0A0', fontStyle: 'italic' });
	}
	
	else if(id == 'pass' && $F(id) == '') {
		$(id).setStyle({ color: '#A0A0A0', fontStyle: 'italic' });
		$(id).type = 'text';
		$(id).value = 'Mot de passe';
	}
}

function setHauteurContenu(element) {
	$(element).setStyle({ height: getWindowHeight()+'px' });
}


function getWindowHeight() {
	
	var windowHeight = 0;
	
	if (typeof(window.innerHeight) == 'number') windowHeight = window.innerHeight;
	else {
		if(document.documentElement && document.documentElement.clientHeight) windowHeight = document.documentElement.clientHeight;
		else {
			if(document.body && document.body.clientHeight) windowHeight = document.body.clientHeight;
		}
	} return windowHeight;
}


function getPositionTop(element) {
	
	var iVal = 0;
	
	while (element && element.tagName != 'body') {
		
		eval('iVal += element.offsetTop;');
		element = element.offsetParent;
		
	} return iVal;
}

function isMail(email) {
	var expressionReguliere = new RegExp("^[a-zA-Z0-9_-].+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,4}$");
	return expressionReguliere.test(email);
}
