function FlippingBook() {
	this.pages = [];
	this.zoomPages = [];
	this.printPages = [];
	this.contents = [];
	this.markers = [];
	this.comments = [];

	this.stageWidth = "990";
	this.stageHeight = "400";
	
	this.leftPageNumber = 0;
	this.rightPageNumber = 0;
	
	this.settings = {
			bookWidth: 988,
			bookHeight: 353,
			pagesSet: this.pages,
			zoomPagesSet: this.zoomPages,
			printPagesSet: this.printPages,
			scaleContent: true,
			preserveProportions: false,
			centerContent: true,
			hardcover: false,
			hardcoverThickness: 3,
			hardcoverEdgeColor: 0xFFFFFF,
			highlightHardcover: true,
			frameWidth: 0,
			frameColor: 0xFFFFFF,
			frameAlpha: 100,
			firstPageNumber: 1,
			autoFlipSize: 50,
			navigationFlipOffset: 30,
			flipOnClick: true,
			handOverCorner: true,
			handOverPage: true,
			alwaysOpened: false,
			staticShadowsType: "Asymmetric", // Asymmetric, Symmetric, Default
			staticShadowsDepth: 1,
			staticShadowsLightColor: 0xFFFFFF, // works for "Symmetric" shadows only
			staticShadowsDarkColor: 0x000000,
			dynamicShadowsDepth: 1,
			dynamicShadowsLightColor: 0xFFFFFF, // works for "dark" pages only
			dynamicShadowsDarkColor: 0x000000,
			moveSpeed: 2,
			closeSpeed: 3,
			gotoSpeed: 3,
			rigidPageSpeed: 5,
			flipSound: "",
			hardcoverSound: "",
			preloaderType: "Thin", // "Progress Bar", "Round", "Thin", "Dots", "Gradient Wheel", "Gear Wheel", "Line", "Animated Book", "None"
			pageBackgroundColor: 0xFFFFFF,
			loadOnDemand: true,
			allowPagesUnload: true,
			showUnderlyingPages: false,
			playOnDemand: true,
			freezeOnFlip: false,
			darkPages: false,
			smoothPages: false,
			rigidPages: false,
			flipCornerStyle: "manually",// "first page only", "each page", "manually"
			flipCornerPosition: "bottom-right",// "bottom-right","top-right","bottom-left","top-left"
			flipCornerAmount: 50,
			flipCornerAngle: 20,
			flipCornerRelease: true,
			flipCornerVibrate: true,
			flipCornerPlaySound: false,
			zoomEnabled: true,
			zoomPath: "pages/large",
			zoomImageWidth: 976,
			zoomImageHeight: 690,
			zoomOnClick: true,
			zoomUIColor: 0x8f9ea6,
			zoomHint: "Double clic pour zoomer.",
			zoomHintEnabled: true,
			centerBook: true,		
			useCustomCursors: true,
			dropShadowEnabled: true,
			dropShadowHideWhenFlipping: true,
			backgroundColor: 0xFFFFFF,
			backgroundImage: "",
			backgroundImagePlacement: "top left", //  "top left", "center", "fit"
			printEnabled: true,
			printTitle: "Imprimer Pages",
			downloadURL: "",
			downloadTitle: "Télécharger le PDF",
			downloadSize: "Taille: 5.2 Mo",
			downloadComplete: "Complete",
			extXML: "",
			
			/****************
			***** AMOKS *****
			****************/
			markersSet: this.markers,
			commentsSet: this.comments,
			backgroundImageMarker: "",
			closeBookLabel: "Fermer le guide",
			closeBookUrl: "javascript:history.back();"
		};
		
		this.containerId = "book";
		this.forwardButtonId = "fbForwardButton";
		this.backButtonId = "fbBackButton";
		this.zoomButtonId = "fbZoomButton";
		this.zoomButton2Id = "fbZoomButton2";
		this.printButtonId = "fbPrintButton";
		this.downloadButtonId = "fbDownloadButton";
		this.goToSummaryButtonId = "fbGoToSummaryButton";
		this.addBookMarkButtonId = "fbAddBookMarkButton";
		this.removeBookMarkButtonId = "fbRemoveBookMarkButton";
		this.projectButtonId = "fbProjectButton";
		this.currentPagesId = "fbCurrentPages";
		this.currentPagesIdR = "fbCurrentPagesR";
		this.contentMarkersId = "fbContentsMarkers";		
		this.contentsGoToPageId = "fbContentsGoToPage";
		this.btGoToPageId = "fbGoToPage"; 
};

FlippingBook.prototype.create = function(){
	this.settings.pagesSet = this.pages;
	this.settings.zoomPagesSet = this.zoomPages;
	this.settings.printPagesSet = this.printPages;
	this.settings.markersSet = this.markers;
	this.settings.commentsSet = this.comments;
	
	this.addLoadEvent( this.onWindowLoad );
	swfobject.embedSWF("/catalogue_produits/book/FlippingBook.swf", this.containerId, this.stageWidth, this.stageHeight, "7.0.0", "/design/flash/expressInstall.swf", this.settings, {wmode: "transparent"/*, allowScriptAccess: "always", bgcolor:  "#" + this.settings.backgroundColor.toString( 16 )*/}); // wmode: "transparent" = pb de couleur sur les textes zoom / print ...
}

FlippingBook.prototype.getFlippingBookReference = function() {
	return this.getObjectReference( this.containerId );
}

FlippingBook.prototype.getObjectReference = function( id ) {
	return document.getElementById( id );
}

FlippingBook.prototype.flipForward = function() {
	flippingBook.getFlippingBookReference().flipForward();
}

FlippingBook.prototype.flipBack = function() {
	flippingBook.getFlippingBookReference().flipBack();
}

FlippingBook.prototype.zoomButtonClick = function() {
	if( flippingBook.getFlippingBookReference().isZoomedIn() )
		flippingBook.zoomOut();
	else
		flippingBook.zoomIn();
}

FlippingBook.prototype.zoomButton2Click = function() {
	var page = flippingBook.leftPageNumber;
	if(page == 0) page = 1;
	$_lightbox.start('/catalogue_produits/book/zoom.php?page=' + flippingBook.pages[page] + '&num=' + page, {width: 1020, height: 761, top: 10, btnCloseClassName: 'gdc', onClose: function(){ flippingBook.getFlippingBookReference().flipGotoPage(goToZoomPage); }});
}

FlippingBook.prototype.zoomIn = function() {
	this.getFlippingBookReference().zoomIn();
}

FlippingBook.prototype.zoomOut = function() {
	this.getFlippingBookReference().zoomOut();
}

FlippingBook.prototype.print = function() {	
	flippingBook.getFlippingBookReference().print();
	
	// Google analytics
	pageTracker._trackPageview('/rep-catalogue_produits/bt/imprimer');
	//
}

FlippingBook.prototype.downloadFile = function() {	
	location.href = '/rep-catalogue_produits/rub-telechargement_gdc.html';
	/*if( flippingBook.settings.downloadURL )
	{
		flippingBook.getFlippingBookReference().downloadFile();
	}*/
	// Google analytics
	pageTracker._trackPageview('/rep-catalogue_produits/bt/telecharger');
	//
}

FlippingBook.prototype.goToSummary = function() {
	if(flippingBook.settings.alwaysOpened) var page = 3;
	else var page = 2;
	flippingBook.getFlippingBookReference().flipGotoPage( page );
}

FlippingBook.prototype.addBookMarkWindow = function() {
	Dialog.info({url: "/projet/phpjs/addbookmark_book_project.php?num=" + flippingBook.rightPageNumber, options: {method: '1000'}}, {className: "ms", width:450, height:260, zIndex: 10});
    WindowCloseKey.init();
}
FlippingBook.prototype.addBookMark = function(commentaire) {
	/*if(flippingBook.rightPageNumber != 1)
	{*/	
		// Bookmark
		flippingBook.getFlippingBookReference().addBookMark();
		flippingBook.getObjectReference( flippingBook.addBookMarkButtonId ).hide();
		flippingBook.getObjectReference( flippingBook.removeBookMarkButtonId ).show();
		flippingBook.markers.push(flippingBook.rightPageNumber);
		
		// Commentaire
		flippingBook.getFlippingBookReference().saveMarkerComment(commentaire.replace(new RegExp( "\\n", "g" ), " "));
		flippingBook.getFlippingBookReference().updateMarkerComment();
		
		Windows.closeAll();
	//}
	
	// Google analytics
	pageTracker._trackPageview('/rep-catalogue_produits/bt/ajout_page');
	//
}

FlippingBook.prototype.removeBookMark = function() {
	flippingBook.getFlippingBookReference().removeBookMark();
	flippingBook.getObjectReference( flippingBook.removeBookMarkButtonId ).hide();
	flippingBook.getObjectReference( flippingBook.addBookMarkButtonId ).show();
	var index = flippingBook.markers.indexOf(flippingBook.rightPageNumber);
	flippingBook.markers.splice(index, 1);
}

FlippingBook.prototype.goToProject = function() {	
	 location.href = '/rep-projet.html';
	 
	// Google analytics
	pageTracker._trackPageview('/rep-catalogue_produits/bt_voir_book');
	//
}

FlippingBook.prototype.onWindowLoad = function(){	
	var forwardButton = flippingBook.getObjectReference( flippingBook.forwardButtonId );
	if( forwardButton ){
		forwardButton.style.cursor = "pointer";
		forwardButton.onclick = flippingBook.flipForward;
	}
	
	var backButton = flippingBook.getObjectReference( flippingBook.backButtonId );
	if( backButton ){
		backButton.style.cursor = "pointer";
		backButton.onclick = flippingBook.flipBack;
	}
	
	var zoomButton = flippingBook.getObjectReference( flippingBook.zoomButtonId );
	if( zoomButton ){
		zoomButton.style.cursor = "pointer";
		zoomButton.onclick = flippingBook.zoomButtonClick;
	}
	
	var zoomButton2 = flippingBook.getObjectReference( flippingBook.zoomButton2Id );
	if( zoomButton2 ){
		zoomButton2.style.cursor = "pointer";
		zoomButton2.onclick = flippingBook.zoomButton2Click;
	}
	
	var printButton = flippingBook.getObjectReference( flippingBook.printButtonId );
	if( printButton ){
		printButton.style.cursor = "pointer";
		printButton.onclick = flippingBook.print;
	}

	var downloadButton = flippingBook.getObjectReference( flippingBook.downloadButtonId );
	if( downloadButton ){
		downloadButton.style.cursor = "pointer";
		downloadButton.onclick = flippingBook.downloadFile;
	}
	
	var summaryButton = flippingBook.getObjectReference( flippingBook.goToSummaryButtonId );
	if( summaryButton ){
		summaryButton.style.cursor = "pointer";
		summaryButton.onclick = flippingBook.goToSummary;
	}
	
	var addBookMarkButton = flippingBook.getObjectReference( flippingBook.addBookMarkButtonId );
	if( addBookMarkButton ){
		addBookMarkButton.style.cursor = "pointer";
		addBookMarkButton.onclick = flippingBook.addBookMarkWindow;
	}
	
	var removeBookMarkButton = flippingBook.getObjectReference( flippingBook.removeBookMarkButtonId );
	if( removeBookMarkButton ){
		removeBookMarkButton.style.cursor = "pointer";
		removeBookMarkButton.onclick = flippingBook.removeBookMark;
	}
	
	var projectButton = flippingBook.getObjectReference( flippingBook.projectButtonId );
	if( projectButton ){
		projectButton.style.cursor = "pointer";
		projectButton.onclick = flippingBook.goToProject;
	}
	
	flippingBook.checkGoToPage();
}

FlippingBook.prototype.onPutPage = function( leftPageNumber, rightPageNumber ){
	if(flippingBook.settings.alwaysOpened) 
	{
		leftPageNumber-=1;
		rightPageNumber-=1;
		if(leftPageNumber == 0) flippingBook.getObjectReference( flippingBook.currentPagesId ).hide();
		else flippingBook.getObjectReference( flippingBook.currentPagesId ).show();
	}
	else 
	{
		leftPageNumber+=1;
		rightPageNumber+=1;
	}
	
	this.leftPageNumber = leftPageNumber;
	this.rightPageNumber = rightPageNumber;
	
	// Google analytics
	var nomRub = '';
	if(leftPageNumber == 0) 	nomRub = '.html';
	if(leftPageNumber == 2) 	nomRub = '-complet.html';
	if(leftPageNumber == 22) 	nomRub = '/amenagements_de_la_terrasse.html';
	if(leftPageNumber == 90) 	nomRub = '/stores_interieurs.html';
	if(leftPageNumber == 108) 	nomRub = '/volets.html';
	if(leftPageNumber == 156) 	nomRub = '/fenetres.html';
	if(leftPageNumber == 184) 	nomRub = '/portes_entree.html';
	if(leftPageNumber == 202) 	nomRub = '/portes_de_garage.html';
	if(leftPageNumber == 232) 	nomRub = '/portails.html';
	if(nomRub != '') pageTracker._trackPageview('/rep-catalogue_produits' + nomRub);
	//

	if(flippingBook.markers.length != 0 && flippingBook.markers.indexOf(rightPageNumber) != -1)
	{
		flippingBook.getObjectReference( flippingBook.addBookMarkButtonId ).hide();
		flippingBook.getObjectReference( flippingBook.removeBookMarkButtonId ).show();
	} else {
		flippingBook.getObjectReference( flippingBook.addBookMarkButtonId ).show();
		flippingBook.getObjectReference( flippingBook.removeBookMarkButtonId ).hide();
	}
	this.updatePagination( leftPageNumber, rightPageNumber );
}
FlippingBook.prototype.onFirstPage = function(){	
}
FlippingBook.prototype.onLeftPageLoad = function(leftPageNumber){		
}
FlippingBook.prototype.onRightPageLoad = function(rightPageNumber){
	if(rightPageNumber == 1 && currentPageFromUrl != undefined && !isNaN(currentPageFromUrl) && !currentPageFromUrlIsLoaded)
	{
		flippingBook.flipGotoPage( currentPageFromUrl );		
		currentPageFromUrlIsLoaded = true;
	}
}

FlippingBook.prototype.updatePagination = function( leftPageNumber, rightPageNumber ){
	/*this.leftPageNumber = leftPageNumber;
	this.rightPageNumber = rightPageNumber;*/
	
	this.getObjectReference( this.currentPagesId ).innerHTML = leftPageNumber + " / " + this.getFlippingBookReference().totalPages();
	this.getObjectReference( this.currentPagesIdR ).innerHTML = rightPageNumber + " / " + this.getFlippingBookReference().totalPages();
}

FlippingBook.prototype.checkGoToPage = function(){
	var btGoToPage = this.getObjectReference( this.btGoToPageId );
	var contentsGoToPage = flippingBook.getObjectReference( flippingBook.contentsGoToPageId );
	
	if( btGoToPage && contentsGoToPage )
	{
		btGoToPage.style.cursor = "pointer";
		btGoToPage.onclick = this.onGoToPageClick;
		
		contentsGoToPage.addEventListener("keydown", function(e) {
			var c = (e.charCode)?e.charCode:e.keyCode;
			if(c == Event.KEY_RETURN) flippingBook.onGoToPageClick();
		}, false);
	}
}

FlippingBook.prototype.onGoToPageClick = function(){
	var contentsGoToPage = flippingBook.getObjectReference( flippingBook.contentsGoToPageId );
	var pageNumber = contentsGoToPage.value;

	if( pageNumber )
	{
		if(flippingBook.settings.alwaysOpened) pageNumber = parseInt(pageNumber) + 1;
		flippingBook.getFlippingBookReference().flipGotoPage( pageNumber );
	}
}

FlippingBook.prototype.flipGotoPage = function(pageNumber){
	if( pageNumber )
		flippingBook.getFlippingBookReference().flipGotoPage( pageNumber );
}

/*FlippingBook.prototype.getWindowHeight = function() {
	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;
}*/

FlippingBook.prototype.addLoadEvent = function ( fn ) {
	if (typeof window.addEventListener != "undefined") {
		window.addEventListener("load", fn, false);
	}
	else if (typeof document.addEventListener != "undefined") {
		document.addEventListener("load", fn, false);
	}
	else if (typeof window.attachEvent != "undefined") {
		window.attachEvent("onload", fn);
	}
	else if (typeof window.onload == "function") {
		var fnOld = window.onload;
		window.onload = function() {
			fnOld();
			fn();
		};
	}
	else {
		window.onload = fn;
	}
}

FlippingBook.prototype.handleWheel = function ( delta ){
	if( delta )
		flippingBook.getFlippingBookReference().onWheelScroll( delta );
}

flippingBook = new FlippingBook();

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

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