// -----------------------------------------------------------------------------------
//
//	AksBook v0.2
//	by Matthieu Lombard - http://www.amoks.com
//	Last Modification: 10/05/09
// -----------------------------------------------------------------------------------

//
//  Configurationl
//
AksBookOptions = Object.extend({  
	// initialisation
	stageWidth: 928,
	stageHeight: 605,
	bookWidth: 902,
	bookHeight: 593,
	leftPageNumber: 0,
	rightPageNumber: 0,
	pagesSet: [], // ["/book/pages/2009_page-001.jpg", "/book/pages/2009_page-002.swf"],
	zoomPagesSet: [],
	printPagesSet: [],
	scaleContent: true,
	preserveProportions: false,
	centerContent: true,
	hardcover: false,
	hardcoverThickness: 3,
	hardcoverEdgeColor: 0xFFFFFF,
	highlightHardcover: true,
	frameWidth: 0,
	frameColor: 0xFFFFFF,
	frameAlpha: 100,
	firstPageNumber: 1,
	autoFlipSize: 150,
	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: "/book/sounds/01.mp3", // "01.mp3", "02.mp3", "03.mp3"
	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: 150,
	flipCornerAngle: 20,
	flipCornerRelease: true,
	flipCornerVibrate: true,
	flipCornerPlaySound: false,
	zoomEnabled: false,
	zoomPath: "/book/pages/large/",
	zoomImageWidth: 920,
	zoomImageHeight: 1301,
	zoomOnClick: true,
	zoomUIColor: 0xedecea,
	zoomHint: "Double clic pour zoomer.",
	zoomHintEnabled: false,
	centerBook: true,		
	useCustomCursors: false,
	dropShadowEnabled: false,
	dropShadowHideWhenFlipping: true,
	backgroundColor: "",//0xFFFFFF,
	backgroundImage: "",//"/book/images/bg_livre.png",
	backgroundImagePlacement: "top left", //  "top left", "center", "fit"
	printEnabled: true,
	printTitle: "Imprimer Pages",
	downloadURL: "/book/pdf/book.pdf",
	downloadTitle: "Télécharger le PDF",
	downloadSize: "Taille: 1.93 Mo",
	downloadComplete: "Complete",
	extXML: "/book/book.xml"
	
}, window.AksBookOptions || {});

// -----------------------------------------------------------------------------------

var AksBook = Class.create();

AksBook.prototype = {
	// initialize()
    initialize: function(id, newOptions) {
		// Nouvelles options
		this.options = Object.extend(Object.extend({ }, AksBookOptions), newOptions || { });
		
		this.leftPageNumber = this.options.leftPageNumber;
		this.rightPageNumber = this.options.rightPageNumber;

		 var th = this;
        (function(){
            var ids = 'aksbook aksbookcurrentpageleft aksbookcurrentpageright';   
            $w(ids).each(function(id){ th[id] = $(id); });
        }).defer();

		swfobject.embedSWF("/book/book.swf", id, this.options.stageWidth, this.options.stageHeight, "8.0.0", "/design/flash/expressInstall.swf", this.options, {wmode: "transparent", allowScriptAccess: "always", bgcolor:  "#" + this.options.backgroundColor.toString( 16 ), menu: false}); // wmode: "transparent" = pb de couleur sur les textes zoom / print ...
	},

	flipForward: function() {
		this.aksbook.flipForward();
	},

	flipBack: function() {
		this.aksbook.flipBack();
	},

	zoom: function() {
		if(this.aksbook.isZoomedIn())
			this.aksbook.zoomOut();
		else
			this.aksbook.zoomIn();
	},

	zoomIn: function() {
		this.aksbook.zoomIn();
	},

	zoomOut: function() {
		this.aksbook.zoomOut();
	},

	print: function() {	
		this.aksbook.print();
	},

	downloadFile: function() {	
		if( this.options.downloadURL )
		{
			this.aksbook.downloadFile();
		}
	},

	onPutPage: function(leftPageNumber, rightPageNumber) {
		/*if(flippingBook.settings.alwaysOpened) 
		{
			leftPageNumber-=1;
			rightPageNumber-=1;
			if(leftPageNumber == 0) aksbookcurrentpageleft.hide();
			else aksbookcurrentpageleft.show();
		}
		else 
		{
			leftPageNumber+=1;
			rightPageNumber+=1;
		}
		
		this.leftPageNumber = leftPageNumber;
		this.rightPageNumber = rightPageNumber;
	
		this.updatePagination(leftPageNumber, rightPageNumber);*/
		
		// Google analytics
		var nomRub = '';
		if(rightPageNumber == 3) 	nomRub = '.html';
		if(rightPageNumber == 5) 	nomRub = '/tout-savoir.html';
		if(rightPageNumber == 11)   nomRub = '/ventes-en-cours.html';
		if(rightPageNumber == 13) 	nomRub = '/calendrier-des-ventes.html';
		if(nomRub != '') pageTracker._trackPageview('/rep-book' + nomRub);
		//
		
		if(rightPageNumber != undefined && rightPageNumber != 1)
		{
			var rightPageNumberMenu = rightPageNumber;
			if(rightPageNumber == 5 || rightPageNumber == 7 || rightPageNumber == 9) rightPageNumberMenu = 5;
			switchClassBookMenu($('book_panel_menu_a_' + rightPageNumberMenu));
		}
	},

	onFirstPage: function() {
		if(currentPageFromUrl == undefined) setTimeout("$_book.flipForward()", 1000);
	},
	
	onLastPage: function() {
		$_book.flipBack();
	},
	
	onLeftPageLoad: function(leftPageNumber) {	
		if(leftPageNumber == 1 && currentPageFromUrl != undefined && !isNaN(currentPageFromUrl) && !currentPageFromUrlIsLoaded)
		{
			if(this.options.alwaysOpened) currentPageFromUrl = parseInt(currentPageFromUrl) - 1;
			$_book.goToPage(currentPageFromUrl);		
			currentPageFromUrlIsLoaded = true;
		}
	},
	
	onRightPageLoad: function(rightPageNumber) {
		
	},

	updatePagination: function(leftPageNumber, rightPageNumber) {
		/*this.leftPageNumber = leftPageNumber;
		this.rightPageNumber = rightPageNumber;*/
		
		aksbookcurrentpageleft.innerHTML = leftPageNumber + " / " + this.aksbook.totalPages();
		aksbookcurrentpageright.innerHTML = rightPageNumber + " / " + this.aksbook.totalPages();
	},

	goToPage: function(pageNumber) {
		if(pageNumber)
		{
			if(this.options.alwaysOpened) pageNumber = parseInt(pageNumber) + 1;
			this.aksbook.flipGotoPage( pageNumber );
		}
	},

	handleWheel: function (delta) {
		if( delta )
			this.aksbook.onWheelScroll( delta );
	}
};

// Molette souris
/*document.observe("DOMMouseScroll", function(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)
		$_book.handleWheel(delta);
    if (event.preventDefault)
    	event.preventDefault();
    event.returnValue = false;
});*/

// Bouton ENTRER
document.observe("dom:loaded", function() {
	if($('aksbookgotopagevalue'))
	{
		$('aksbookgotopagevalue').observe("keydown", function(event) {
			var c = (event.charCode)?event.charCode:event.keyCode;
			if(c == Event.KEY_RETURN) $_book.goToPage($('aksbookgotopagevalue').value);
		});
	}
});