/**
 * @author Christophe Meneboeuf
 */

/*********** DEFINES ***********/
var VOYAGE_SELECTION_ETAPE = "#selectionEtape";
var VOYAGE_CLASS_CHAPITRE  = ".recitChapitre";
var VOYAGE_MASQUECARTE = "#masqueCarte";
var VOYAGE_WRAPPERCARTE = "#wrapperCarte";
var VOYAGE_TOOLBAR = ".toolbar";
var VOYAGE_ZONE_RECIT = "#zoneRecit";
var VOYAGE_NEXTCHAPTER = ".nextChapter";
var VOYAGE_PREVIOUSCHAPTER = ".previousChapter";

var VOYAGE_ZONERECIT_WIDTHMAX = 550; //Largeur maximale que peut prendre la zone de récit
var VOYAGE_ZONERECIT_WIDTHMIN; //Largeur minimal que peut prendre la zone de récit (définie dans le css)

var VOYAGE_BUTTON_CARTE = "#boutonAfficheCarte";
var VOYAGE_BUTTON_CARTE_ICONOPEN = "ressources/images/voyage/icone_carteOn.png";
var VOYAGE_BUTTON_CARTE_ICONCLOSE = "ressources/images/voyage/icone_carteOff.png";
var VOYAGE_BUTTON_VIGNETTE = "#boutonIndex";
var VOYAGE_BUTTON_MAIL = "#boutonMail";


/************ GLOBAL VARS **************/

/* IMPORTANT !!!!!!
 * NE PAS OUBLIER DE RAJOUTER LES TITRES DES CHAPITRE DANS LA SELECTION D'INDEX.HTML !!!
 */

var g_voyage_listeIndexChapitres = {1:1,2:1,3:2,4:3,5:3,6:4,7:5,8:5,9:6,10:6,11:6,12:7,13:7,14:8,15:9,16:9,17:10,18:11,19:11}; 		//Chapitre en fonction de l'index photo
var g_voyage_ListeBornesPhotosChapitre = {	//Titre et photos de début et de fin de chaque chapitre
											1:{titre:"Moscou",debut:1,fin:32},
											2:{titre:"Dans le Transsibérien",debut:33,fin:48},
											3:{titre:"Irkutsk et le Lac Baïkal",debut:49,fin:84},
											4:{titre:"En route pour la Mongolie!",debut:85,fin:98},
											5:{titre:"A travers les steppes",debut:99,fin:133},
											6:{titre:"Le désert de Gobi",debut:134,fin:176},
											7:{titre:"Retour dans la Steppe",debut:177,fin:215},
											8:{titre:"Destination: la Chine !",debut:216,fin:224},
											9:{titre:"Pékin",debut:225,fin:256},
										   10:{titre:"La capitale du Sud",debut:257,fin:272},
										   11:{titre:"Derniers jours",debut:273,fin:304}
										 }; //NB: Pour le moment le champs "titre" est inutile
										 	//Pourrait être utilisé pour générer du code à la volée, notamment la sélection de l'étape dans index.html
											//mais cela pourrait nuire au référencement


/************** FUNCTIONS ************/
/* voyageInit
 * ----------
 * Initialisation
 */
function voyageInit(){
	$(VOYAGE_BUTTON_CARTE).removeAttr("disabled");							//Purge d'un mauvais cache
	$(VOYAGE_BUTTON_VIGNETTE).removeAttr("disabled");						//Purge d'un mauvais cache
	$(VOYAGE_BUTTON_MAIL).removeAttr("disabled");							//Purge d'un mauvais cache
	$(VOYAGE_SELECTION_ETAPE).removeAttr("disabled");						//Purge d'un mauvais cache
	$(VOYAGE_SELECTION_ETAPE).val( 1 );							// 1ere étape dans la zone de sélection
	$(VOYAGE_CLASS_CHAPITRE+"#chapitre"+1).show( ); 			// On affiche le premier chapitre
	$(VOYAGE_NEXTCHAPTER).show( );
	VOYAGE_ZONERECIT_WIDTHMIN = $(VOYAGE_ZONE_RECIT).width( );
	maximiseWidthRecit( );										// Maximise la zone d'affichage pour le récit
	gCarte_init( );		
	//Alerte si IE 6
	if(jQuery.browser.msie == true && parseFloat(jQuery.browser.version) < 7.0 ){
		$(DIV_FOOTER).empty( )
					 .append( "<span id=\"warningIE6\" class=\"warningFooter\">Votre version d\'Internet Explorer est obsolète. <a href=\"http://www.microsoft.com/france/windows/products/winfamily/ie/ie8/default.aspx\" target=\"_blank\" style=\"color:blue\">Telecharger la plus recente.</a></span>" );
	}
	//Masquer les liens
	$(".xtof").hide();
}


/* voyageEvents()
 * --------------
 * Inscription des évenement spécifique à un site de voyage
 */
var fmailWinOpened = 0;
 function voyageEvents(){

	$(VOYAGE_SELECTION_ETAPE).change( voyage_onSelectionEtape );
	
	$(VOYAGE_NEXTCHAPTER).click( voyage_onNextChapter );
	$(VOYAGE_PREVIOUSCHAPTER).click( voyage_onPreviousChapter );
	
	$(VOYAGE_BUTTON_CARTE).click( function( )
	{
		onToggleMap( )
	} );	
	
	$(VOYAGE_BUTTON_MAIL).click( function( )
	{
	  if(fmailWinOpened){
			fmailWinOpened.close();
	  }
	  fmailWinOpened = window.open('html/mail/mail.php5','', 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+640+',height='+520+',left='+20+', top='+20+'');
	} )
 }
 
  /* voyage_onNextChapter( )
  * --------------------------
  */
 function voyage_onNextChapter(){
 	var numChapitre = $(VOYAGE_SELECTION_ETAPE).attr("value");
 	var nbChapitres = 0;
 	
 	for (key in g_voyage_ListeBornesPhotosChapitre) {
 		nbChapitres++
 	};
 	
 		if (numChapitre < nbChapitres) {
 		$(VOYAGE_SELECTION_ETAPE).attr("value", ++numChapitre);
 		voyage_onSelectionEtape();
 	}
 }
 
   /* voyage_onPreviousChapter( )
  * --------------------------
  */
 function voyage_onPreviousChapter( ){
 		var numChapitre = $(VOYAGE_SELECTION_ETAPE).attr("value");
		
		if( numChapitre > 1 ){
			$(VOYAGE_SELECTION_ETAPE).attr("value", --numChapitre);
			voyage_onSelectionEtape( );	
		}
 }
 
 /* voyage_onSelectionEtape( )
  * --------------------------
  */
 function voyage_onSelectionEtape( )
	{	
		var i = 1;
		var numChapitre = $(VOYAGE_SELECTION_ETAPE).attr("value");

		//Afficher l'index correspondant
		while( g_voyage_listeIndexChapitres[i] != numChapitre && i < 128){ //On met un max...
			i++;
		}
		if (i < 128) {
			g_$buttonsIndexNavigation.eq(i - 1).click( ); //On simule un clique sur la barre de navigation de l'index			  											  //Cela affichera également le chapitre correspondant		
		}
		//Afficher la première photo du chapitre
		if( g_$screenPhoto.is(":visible") ){ //Seulement si on est en train d'afficher une photo...
			g_idCurrentPhoto = g_voyage_ListeBornesPhotosChapitre[numChapitre].debut;
			g_idPhotoToLoadNext = g_idCurrentPhoto;
			g_idCurrentIndexPage = Math.ceil(g_idCurrentPhoto / NBTHUMBSBYPAGE);
			//Insertion des photos à charger
			for (var i = 0; i <= NBPHOTOSAPRECHARGER; i++) {
				g_loadQueue.insert(g_idCurrentPhoto - i, i);
			}			
			g_displayManager.photoToDisplay = g_idCurrentPhoto;
			loadingManagement("THUMBNAIL");
		}
	}
 
 /* voyageChangerChapitre( source ) 
  * ------------------------------------------
  * Change le chapitre affiché dans la zone de récit. Point d'entrée par changement de photo ou d'index de vignette
  * In : source - origine du changement de chapitre "photo" ou "index"
  * Retour : true si le chapitre a changé, false sinon
  * -----
  * Remarque : changer d'étape par la liste déroulante simule un clic sur un index et abouti ici également
  */
 function voyageChangerChapitre( source )
 {
 	var numNouveauChapitre;
 	var $chapitreCourant = $(VOYAGE_CLASS_CHAPITRE+":visible");
	var $nouveauChapitre = $chapitreCourant;
	
	//-- Déterminer le nouveau chapitre
		//Source index
	if (source === "index") {
		numNouveauChapitre = g_voyage_listeIndexChapitres[g_idCurrentIndexPage];
		$nouveauChapitre = $("#chapitre" + numNouveauChapitre);
	} 	
	else{ //Source photo
		numNouveauChapitre = 1;
		while(g_voyage_ListeBornesPhotosChapitre[numNouveauChapitre].fin < g_idCurrentPhoto && numNouveauChapitre < 128){
			numNouveauChapitre++;
		}
		if (numNouveauChapitre < 128) {
			$nouveauChapitre = $("#chapitre" + numNouveauChapitre);
		}	
	}	
	
	//-- Affichage du nouveau chapitre si changement
	if( $nouveauChapitre.attr("id") !== $chapitreCourant.attr("id") ) // SI TRANSITION LENTE : BLOQUER LES BOUTONS !!
	{
		//Debug : On met un petit timer pour ne pas que le chapitre change de contenu en même temps que l'index scroll
		// => pb firefox...
		//Plugin utilisé : http://plugins.jquery.com/project/timers
		$chapitreCourant.oneTime("700ms", function() {
				$(VOYAGE_NEXTCHAPTER).hide( );
				$(VOYAGE_PREVIOUSCHAPTER).hide( );
				$(this).hide("normal", function( ){
					$nouveauChapitre.show("normal", function( ){
						//Afficher les NEXT_CHAPTERS si on n'est pas au dernier chapitre
						var nbChapitres = 0;
						for(key in g_voyage_ListeBornesPhotosChapitre ){nbChapitres++};
						if (numNouveauChapitre < nbChapitres) {
							$(VOYAGE_NEXTCHAPTER).show();
						}
						if (numNouveauChapitre > 1) {
							$(VOYAGE_PREVIOUSCHAPTER).show();
						}
					});
					
				})	
		});
		
		$(VOYAGE_SELECTION_ETAPE).val( numNouveauChapitre );
		
		//Maj de la carte
		if (g_voyage_GCarte !== undefined && $(VOYAGE_WRAPPERCARTE).is(":visible")) {
			gCarte_setMap(numNouveauChapitre);
		}
		
		//Google Analytics
		pageTracker._trackPageview("/chapitres/chapitre"+numNouveauChapitre); 
		
		return true;
	}
	else{ 
		return false;
	}
 }
 
  /* getMaxWidthRecit(  ) 
  * ----------------------
  * Récupère la taille maximale de la zone de réçit
  */
	function getMaxWidthRecit( )
	{
		var newWidth = Math.min( $(window).width( ) - g_$divIndexContainer.outerWidth( ) - 60, VOYAGE_ZONERECIT_WIDTHMAX );
		newWidth = Math.max( newWidth, VOYAGE_ZONERECIT_WIDTHMIN );
		return newWidth;
	}
 /* maximiseWidthRecit(  ) 
  * ----------------------
  * Maximise la taille de la zone de récit par rapport à l'espace affichable.
  */
	function maximiseWidthRecit( )
	{
		$(VOYAGE_ZONE_RECIT).width( getMaxWidthRecit( ) );
		$(VOYAGE_MASQUECARTE).css( "top", $(VOYAGE_TOOLBAR).outerHeight( ) )
							 .css( "width", $(window).width( ) - $(VOYAGE_ZONE_RECIT).outerWidth( ) );		
	}


/* OUVERTURE DE POPUP */
var fVideoOpened = 0;
function playVideo(url,h,w) 
{
	if(fVideoOpened){
		fVideoOpened.close();}
		
	var X = (screen.availWidth-w)/3.5;
	var Y = (screen.availHeight-h)/3.5;
	var p = "height=" + h + ",width=" + w + ",scrollbars=no" + ",screenX=" + X + ",screenY=" + Y;
	fVideoOpened = window.open(url,"",p);

}

