// JavaScript Document
// Alex's page turner

// set constants
   var $pageheight = 205; // determined by the page size being displayed
   var $pagewidth = 274; // determined by the page size being displayed
  
   var $pageYpos = 0; // both pages Y pos
   var $leftpageX = 0; // starting Left X pos
   var $rightpageX = $pagewidth; // starting Right X pos
   var $timedelay = 120 //  1/1000th of a second


// When the page is ready  
   $(document).ready(function(){
   
   // build apparatus    
   $("div#turner").css("overflow-y", "hidden"); 
   $("div#turner img").after("<div id=\"flip\"> </div>");
   $("div#flip").after("<div id=\"leftpage\"> </div>");
   $("div#leftpage").after("<div id=\"rightpage\"> </div>");
   $("div#leftpage").prepend("<div  id=\"curll\"></div>");
   $("div#rightpage").prepend("<div  id=\"curlr\"></div>");
   $("div#rightpage").after("<h6></h6>");
   
   // clip out original img
   $("div#turner img").remove(); 
 
	// left page turner animation
	  $("div#curll").click( function() { 
	  		$pageYpos = $pageYpos + $pageheight; // calculate new background position

			var p=-($pageYpos/$pageheight);
			// alert(p);

		if (p<0) { 
				alert ("Vous êtes sur la premiere page du livre, cliquez sur la page de droite pour continuer la lecture du catalogue");
				$pageYpos = $pageYpos - $pageheight;
				exit;
		} else {
			divaffiche(p);
					
			$("#leftpage")
				.css("background-position", "0px "+$pageYpos+"px") // change page by leftpage 
			$("#flip")
				.css("background-position", "top right") // show midway page turn image overlay
				.animate({opacity: 1.0}, $timedelay, "linear", function() { // delay for a moment
					setTimeout(function() {
						$("#flip").css("background-position", "top center"); // remove page turn - back to default 
						$("#rightpage").css("margin-left", "-4px").css("margin-right", "4px").css("background-position", $pagewidth+"px "+$pageYpos+"px").animate({marginRight:0, marginLeft:0}, 300, "linear"); // change rightpage page - ease it in slightly
						}, $timedelay);
				})
			}
		
		});
		  
		  
	// right page turner 
	  $("div#curlr").click( function() { 
	  		$pageYpos = $pageYpos - $pageheight; // calculate new background position
	  		// alert($pageYpos/$pageheight);
			var p=-($pageYpos/$pageheight);
			// alert(p);
			if (p>totalpage()) { 
				alert ("Vous êtes sur la derniere page du livre, cliquez sur la page de gauche pour revenir au debut du catalogue");
				$pageYpos = $pageYpos + $pageheight;
			}	else {				
			
				divaffiche(p);
				$("#rightpage")
					.css("background-position", $pagewidth+"px "+$pageYpos+"px") // change rightpage page
				$("#flip")
				.css("background-position", "top left")  // show midway page turn image overlay
				.animate({opacity: 1.0}, $timedelay, "linear", function() { // delay for a moment
					setTimeout(function() {
						$("#flip").css("background-position", "top center") // remove page turn - back to default 
						$("#leftpage").css("margin-left", "4px").css("margin-right", "-4px").css("background-position","0px "+$pageYpos+"px").animate({marginRight:0, marginLeft:0}, 300, "linear"); // change leftpage  page - ease it in slightly
						}, $timedelay);
				})
			}
			
			});   
   });

/*
 * jQuery Easing v1.1.1 - http://gsgd.co.uk/sandbox/jquery.easing.php
 *
 * Uses the built in easing capabilities added in jQuery 1.1
 * to offer multiple easing options
 *
 * Copyright (c) 2007 George Smith
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 */

jQuery.extend({
	easing: {
		easein: function(x, t, b, c, d) {
			return c*(t/=d)*t + b; // in
		},
		easeinout: function(x, t, b, c, d) {
			if (t < d/2) return 2*c*t*t/(d*d) + b;
			var ts = t - d/2;
			return -2*c*ts*ts/(d*d) + 2*c*ts/d + c/2 + b;		
		},
		easeout: function(x, t, b, c, d) {
			return -c*t*t/(d*d) + 2*c*t/d + b;
		},
		expoin: function(x, t, b, c, d) {
			var flip = 1;
			if (c < 0) {
				flip *= -1;
				c *= -1;
			}
			return flip * (Math.exp(Math.log(c)/d * t)) + b;		
		},
		expoout: function(x, t, b, c, d) {
			var flip = 1;
			if (c < 0) {
				flip *= -1;
				c *= -1;
			}
			return flip * (-Math.exp(-Math.log(c)/d * (t-d)) + c + 1) + b;
		},
		expoinout: function(x, t, b, c, d) {
			var flip = 1;
			if (c < 0) {
				flip *= -1;
				c *= -1;
			}
			if (t < d/2) return flip * (Math.exp(Math.log(c/2)/(d/2) * t)) + b;
			return flip * (-Math.exp(-2*Math.log(c/2)/d * (t-d)) + c + 1) + b;
		},
		bouncein: function(x, t, b, c, d) {
			return c - jQuery.easing['bounceout'](x, d-t, 0, c, d) + b;
		},
		bounceout: function(x, t, b, c, d) {
			if ((t/=d) < (1/2.75)) {
				return c*(7.5625*t*t) + b;
			} else if (t < (2/2.75)) {
				return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
			} else if (t < (2.5/2.75)) {
				return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
			} else {
				return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
			}
		},
		bounceinout: function(x, t, b, c, d) {
			if (t < d/2) return jQuery.easing['bouncein'] (x, t*2, 0, c, d) * .5 + b;
			return jQuery.easing['bounceout'] (x, t*2-d,0, c, d) * .5 + c*.5 + b;
		},
		elasin: function(x, t, b, c, d) {
			var s=1.70158;var p=0;var a=c;
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		},
		elasout: function(x, t, b, c, d) {
			var s=1.70158;var p=0;var a=c;
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
		},
		elasinout: function(x, t, b, c, d) {
			var s=1.70158;var p=0;var a=c;
			if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
			if (a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
			return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
		},
		backin: function(x, t, b, c, d) {
			var s=1.70158;
			return c*(t/=d)*t*((s+1)*t - s) + b;
		},
		backout: function(x, t, b, c, d) {
			var s=1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		},
		backinout: function(x, t, b, c, d) {
			var s=1.70158;
			if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
			return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
		},
		linear: function(x, t, b, c, d) {
			return c*t/d + b; //linear
		}
	}
});


function turntotheleft(np) { 


		$pageYpos = $pageYpos; // calculate new background position
		var p=-($pageYpos/$pageheight);
		// alert(p);

		// Retour en arriere pour arriver sur la page demandée...
		if (np<p) { 
			p=np;
			$pageYpos= -$pageheight*p;
			divaffiche(p);
					
			$("#leftpage")
				.css("background-position", "0px "+$pageYpos+"px") // change page by leftpage 
			$("#flip")
				.css("background-position", "top right") // show midway page turn image overlay
				.animate({opacity: 1.0}, $timedelay, "linear", function() { // delay for a moment
					setTimeout(function() {
						$("#flip").css("background-position", "top center"); // remove page turn - back to default 
						$("#rightpage").css("margin-left", "-4px").css("margin-right", "4px").css("background-position", $pagewidth+"px "+$pageYpos+"px").animate({marginRight:0, marginLeft:0}, 300, "linear"); // change rightpage page - ease it in slightly
						}, $timedelay);
				})
			} else {		
				
				p=np;
				$pageYpos= -$pageheight*p;
				divaffiche(p);

				$("#rightpage")
					.css("background-position", $pagewidth+"px "+$pageYpos+"px") // change rightpage page
				$("#flip")
				.css("background-position", "top left")  // show midway page turn image overlay
				.animate({opacity: 1.0}, $timedelay, "linear", function() { // delay for a moment
					setTimeout(function() {
						$("#flip").css("background-position", "top center") // remove page turn - back to default 
						$("#leftpage").css("margin-left", "4px").css("margin-right", "-4px").css("background-position","0px "+$pageYpos+"px").animate({marginRight:0, marginLeft:0}, 300, "linear"); // change leftpage  page - ease it in slightly
						}, $timedelay);
				})
			}
		
	}
	
