function casianoMag() {
	this.pages = [];
	this.contents = [];

	this.stageWidth = "100%";
	this.stageHeight = "100%";
	
	this.settings = {
			pagesSet: this.pages,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,bookWidth: 900,bookHeight: 584,staticShadowsType: "Asymmetric",staticShadowsDepth: 1,staticShadowsLightColor: 0xFFFFFF,staticShadowsDarkColor: 0x000000,dynamicShadowsDepth: 1,dynamicShadowsLightColor: 0xFFFFFF,dynamicShadowsDarkColor: 0x000000,moveSpeed: 2,closeSpeed: 3,gotoSpeed: 3,rigidPageSpeed: 5,flipSound: "sounds/02.mp3",hardcoverSound: "",preloaderType: "Thin",pageBackgroundColor: 0x27AEDF,loadOnDemand: true,allowPagesUnload: true,showUnderlyingPages: false,freezeOnFlip: false,darkPages: false,smoothPages: false,rigidPages: false,flipCornerStyle: "first page only",flipCornerPosition: "bottom-right",flipCornerAmount: 50,flipCornerAngle: 20,flipCornerRelease: true,flipCornerVibrate: true,flipCornerPlaySound: false,zoomEnabled: true,zoomPath: "pages/large/",zoomImageWidth: 1081,zoomImageHeight: 1403,zoomOnClick: false,zoomUIColor: 0x8f9ea6,zoomHint: "Double left-click to Zoom-in",centerBook: true,		useCustomCursors: true,dropShadowEnabled: true,dropShadowHideWhenFlipping: true,backgroundColor: 0xFFFFFF,backgroundImage: "img/bookBackground.jpg",backgroundImagePlacement: "fit",printEnabled: true,printTitle: "Print Pages",downloadURL: "pages/pdf/tvaqui.pdf",downloadTitle: "Download PDF",downloadSize: "Size: 7.34 Mb",downloadComplete: "Download Complete",extXML: ""
		};
		
		this.containerId = "fbContainer";
		this.forwardButtonId = "fbForwardButton";
		this.backButtonId = "fbBackButton";
		this.zoomButtonId = "fbZoomButton";
		this.printButtonId = "fbPrintButton";
		this.downloadButtonId = "fbDownloadButton";
		this.currentPagesId = "fbCurrentPages";
		this.totalPagesId = "fbTotalPages";
		this.contentsMenuId = "fbContentsMenu";		
};

casianoMag.prototype.create = function(){
	this.settings.pagesSet = this.pages;
	this.addLoadEvent( this.onWindowLoad );
	swfobject.embedSWF("casiano.swf", this.containerId, this.stageWidth, this.stageHeight, "8.0.0", "js/expressInstall.swf", this.settings, {allowScriptAccess: "always", bgcolor:  "#" + this.settings.backgroundColor.toString( 16 ) });
}

casianoMag.prototype.getcasianoMagReference = function() {
	return this.getObjectReference( this.containerId );
}

casianoMag.prototype.getObjectReference = function( id ) {
	return document.getElementById( id );
}

casianoMag.prototype.flipForward = function() {
	casianoMag.getcasianoMagReference().flipForward();
}

casianoMag.prototype.flipBack = function() {
	casianoMag.getcasianoMagReference().flipBack();
}

casianoMag.prototype.zoomButtonClick = function() {
	if( casianoMag.getcasianoMagReference().isZoomedIn() )
		casianoMag.zoomOut();
	else
		casianoMag.zoomIn();
}

casianoMag.prototype.zoomIn = function() {
	this.getcasianoMagReference().zoomIn();
}

casianoMag.prototype.zoomOut = function() {
	this.getcasianoMagReference().zoomOut();
}

casianoMag.prototype.print = function() {	
	casianoMag.getcasianoMagReference().print();
}

casianoMag.prototype.downloadFile = function() {	
	if( casianoMag.settings.downloadURL )
		casianoMag.getcasianoMagReference().downloadFile();
}

casianoMag.prototype.onWindowLoad = function(){	
	var forwardButton = casianoMag.getObjectReference( casianoMag.forwardButtonId );
	if( forwardButton ){
		forwardButton.style.cursor = "pointer";
		forwardButton.onclick = casianoMag.flipForward;
	}
	
	var backButton = casianoMag.getObjectReference( casianoMag.backButtonId );
	if( backButton ){
		backButton.style.cursor = "pointer";
		backButton.onclick = casianoMag.flipBack;
	}
	
	var zoomButton = casianoMag.getObjectReference( casianoMag.zoomButtonId );
	if( zoomButton ){
		zoomButton.style.cursor = "pointer";
		zoomButton.onclick = casianoMag.zoomButtonClick;
	}
	
	var printButton = casianoMag.getObjectReference( casianoMag.printButtonId );
	if( printButton ){
		printButton.style.cursor = "pointer";
		printButton.onclick = casianoMag.print;
	}

	var downloadButton = casianoMag.getObjectReference( casianoMag.downloadButtonId );
	if( downloadButton ){
		downloadButton.style.cursor = "pointer";
		downloadButton.onclick = casianoMag.downloadFile;
	}
	
	casianoMag.buildContentsMenu();
}

casianoMag.prototype.onPutPage = function( leftPageNumber, rightPageNumber ){
	this.updatePagination( leftPageNumber, rightPageNumber );
	this.updateContentsMenu( leftPageNumber, rightPageNumber );
}

casianoMag.prototype.updatePagination = function( leftPageNumber, rightPageNumber ){
	var leftPageExists = ( leftPageNumber != undefined );
	var rightPageExists = ( rightPageNumber != undefined );
			
	var pageNumberString = leftPageNumber + "-" + rightPageNumber;
	if( !leftPageExists )
		pageNumberString = rightPageNumber;	
	if( !rightPageExists )
		pageNumberString = leftPageNumber;

	this.getObjectReference( this.currentPagesId ).innerHTML = pageNumberString;
	this.getObjectReference( this.totalPagesId ).innerHTML = " / " + this.getcasianoMagReference().totalPages();	
}

casianoMag.prototype.buildContentsMenu = function(){
	var contentsSelect = this.getObjectReference( this.contentsMenuId );
	
	if( contentsSelect ){
		for( var i = 0; i < this.contents.length; i++ )
			contentsSelect.options[i] = new Option(this.contents[i][0], this.contents[i][1]);
			
		contentsSelect.onchange = this.onContentsChange;
	}
}

casianoMag.prototype.onContentsChange = function(){
	var contentsSelect = casianoMag.getObjectReference( casianoMag.contentsMenuId );
	var pageNumber = contentsSelect.options[contentsSelect.selectedIndex].value;
	
	if( pageNumber )
		casianoMag.getcasianoMagReference().flipGotoPage( pageNumber );
}

casianoMag.prototype.updateContentsMenu = function( leftPageNumber, rightPageNumber ){
	var contentsSelect = casianoMag.getObjectReference( casianoMag.contentsMenuId );

	if( contentsSelect ){
		for( var i = 0; i < this.contents.length - 1; i++ ){
			var minPage = contentsSelect.options[i].value;
			var maxPage = contentsSelect.options[i+1].value;
			var leftOK = false;
			var rightOK = false;
			
			if( leftPageNumber )
				leftOK = ( Number( leftPageNumber ) >=  minPage && Number( leftPageNumber ) <= maxPage );
			else
				leftOK = true;

			if( rightPageNumber )
				rightOK = ( Number( rightPageNumber ) >=  minPage && Number( rightPageNumber ) <= maxPage );
			else
				rightOK = true;
				
			if( leftOK && rightOK )	
				break;
		}	
		contentsSelect.selectedIndex = i;
	}
}

casianoMag.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;
}

casianoMag.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;
	}
}

casianoMag.prototype.handleWheel = function ( delta ){
	this.getcasianoMagReference().onWheelScroll( delta );
}

casianoMag = new casianoMag();

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)
		casianoMag.handleWheel(delta);
        if (event.preventDefault)
                event.preventDefault();
        event.returnValue = false;
}

if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;