﻿

FlippingBook.prototype.create = function() {
    this.settings.pagesSet = this.pages;
    var gotoPage = $.query.get("p");
    if (gotoPage != "") {
        this.settings.firstPageNumber = gotoPage;
    }
    else {
        this.settings.firstPageNumber  = 1;
    }
    this.addLoadEvent(this.onWindowLoad);
	
	this.stageWidth = 686;
	this.stageHeight = 625;
    swfobject.embedSWF("FlippingBook.swf", this.containerId, this.stageWidth, this.stageHeight, "8.0.0", "js/expressInstall.swf", this.settings, { allowScriptAccess: "always", bgcolor: "#FFFFFF", wmode: "transparent" }, null, swfObjectCallback);
    //wmode: "transparent", 
}




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.zoomIn = function() {
    this.getFlippingBookReference().zoomIn();
}

FlippingBook.prototype.zoomOut = function() {
    this.getFlippingBookReference().zoomOut();
}

FlippingBook.prototype.print = function() {	
	flippingBook.getFlippingBookReference().print();
}

FlippingBook.prototype.downloadFile = function() {	
	if( flippingBook.settings.downloadURL )
		flippingBook.getFlippingBookReference().downloadFile();
}

FlippingBook.prototype.updateVisiblePage = function() {
    var gotoPage = $.query.get("p");
    if (gotoPage != "") {
        //flippingBook.getFlippingBookReference().flipGotoPage(gotoPage);
    }
}


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 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;
	}
	
	flippingBook.buildContentsMenu();
	//flippingBook.updatePage($.query.get("p"));
}

FlippingBook.prototype.onPutPage = function(leftPageNumber, rightPageNumber) {
    if (leftPageNumber) {
        GATrackPageView(flippingBook.name, leftPageNumber);
    }
    if (rightPageNumber) {
        GATrackPageView(flippingBook.name, rightPageNumber);
    }
    this.updatePagination(leftPageNumber, rightPageNumber);
    this.updateContentsMenu(leftPageNumber, rightPageNumber);
}

FlippingBook.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 = "<strong>" + pageNumberString + "</strong>";
	this.getObjectReference( this.totalPagesId ).innerHTML = " of <strong>&nbsp;" + this.getFlippingBookReference().totalPages() + "</strong>";	
}

FlippingBook.prototype.buildContentsMenu = function() {
    var menuString = "<ul id=\"menu\">";
    for (topLevel in flippingBook.contents) {
        menuString = menuString + "<li><a " + (flippingBook.contents[topLevel].page ? "href=\"\" rel=\"" + flippingBook.contents[topLevel].page + "\"" : " href=\"#\" ") + " ><img src=\"" + flippingBook.contents[topLevel].imageUrl + "\" height=\"32\" width=\"210\" alt=\"" + flippingBook.contents[topLevel].label + "\"/></a>";
        if (flippingBook.contents[topLevel].sub.length > 0) {
            menuString = menuString + "<ul>";
            for (subLevel in flippingBook.contents[topLevel].sub) {
                menuString = menuString + "<li";
                if (flippingBook.contents[topLevel].sub[subLevel].highlight) {
                    menuString = menuString + " class=\"highlight\"";
                }
                menuString = menuString + "><a href=\"\" rel=\"" + flippingBook.contents[topLevel].sub[subLevel].page + "\">" + flippingBook.contents[topLevel].sub[subLevel].label + "</a></li>";
            }
            menuString = menuString + "</ul>";
        }
        menuString = menuString + "</li>";
    }
    menuString = menuString + "</ul>";
    if (flippingBook.name == "SinglesCouples" || flippingBook.name == "Families") {
        menuString = menuString + "<div class='feelbetterrewards'><a href='Rewards.aspx' onclick='GATrackURL(\"Feelbetter Rewards\")'><img src='img/btnFeelBetterRewards_sum2012.jpg' border='0'/></a></div>";
    }
    $("#fbContentsMenuInner").html(menuString);

    $("ul#menu a").each(function() {
        if ($(this).attr("rel")) {
            this.onclick = function() {
                flippingBook.getFlippingBookReference().flipGotoPage(this.rel);
                return false;
            }
        }
    });

    $("#menu ul").hide();
    //$("#menu ul:first").show();
    $("#menu li a").click(
        function() {
            boolCheck = $(this).children("img").attr("alt");
            clickType = (boolCheck ? "MainMenu" : "SubMenu");
            mainMenuItem = (boolCheck ? boolCheck : $(this).text());

            GATrackMenuClick(mainMenuItem);
            var checkElement = $(this).next();
            if ((checkElement.is("ul")) && (checkElement.is(":visible"))) {
                return false;
            }
            if ((checkElement.is("ul")) && (!checkElement.is(":visible"))) {
                $("#menu ul:visible").slideUp("normal");
                checkElement.slideDown("normal");
                return false;
            }
            else {
                if (clickType == "MainMenu") {
                    $("#menu ul:visible").slideUp("normal");
                }
                return false;
            }
        }
    );
    $("a#fbHomeButton").click(function() { flippingBook.getFlippingBookReference().flipGotoPage(1); });
}

FlippingBook.prototype.onContentsChange = function() {
    //do nothing
    return false;
}

FlippingBook.prototype.updateContentsMenu = function(leftPageNumber, rightPageNumber) {

    // Output a competition if appropriate
    for (comp in flippingBook.competitions) {
        var competition = flippingBook.competitions[comp];
        if (((competition.triggerPage == leftPageNumber) || (competition.triggerPage == rightPageNumber)) && (!competition.triggered)) {
            competition.triggered = true;
            $("#fbCompetitions").append("<a href=\"" + competition.targetUrl + "\"><span class=\"left\">&nbsp;</span><span><span class=\"name\">" + competition.name + "</span><span>&nbsp;&nbsp;</span><span class=\"message\">" + competition.message + "</span></span><span class=\"right\">&nbsp;</span><span class=\"plus\">&nbsp;</span></a>");

            // Clone newly added link
            var linkToClone = $("#fbCompetitions a:last").get(0);

            var left = 174 + linkToClone.offsetLeft;
            var top = 490 + linkToClone.offsetTop;
            var width = linkToClone.offsetWidth;

            $("#fbInner").append("<a style=\"position:absolute;left:" + left + "px;top:" + top + "px;display:block;height:25px;width:" + width + "px;text-decoration:none;\" href=\"" + linkToClone.href + "\" target=\"_blank\">&nbsp;</a>");
        }
    }
}

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 ){
	this.getFlippingBookReference().onWheelScroll( delta );
}



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;

function GATrackMenuClick(menuName)
{
    if (allTracking[flippingBook.name]["menu"][menuName]) {
        GATrackURL(allTracking[flippingBook.name]["menu"][menuName]);
    }
    //GATrack(menuName,"Menu Click");
}

function GATrackFlashLinkClick(link) {
    //alert(link);
    if (allTracking[flippingBook.name]["link"][link]) {
        GATrackURL(allTracking[flippingBook.name]["link"][link]);
    }
    //GATrack(menuName, "Flash Link Click");
}


function GATrackPageView(Bookname,pageNumber)
{
    if (allTracking[Bookname]["page"][pageNumber]) {
        GATrackURL(allTracking[Bookname]["page"][pageNumber]);
    }
    //GATrack(Bookname + " " + pageNumber,"Page View");
}

function GATrack(uniqueIdentifier, section) {
    GATrackURL(section + " " + uniqueIdentifier);
}

function GATrackURL(url) {
    //alert(url);
    writeToConsole(url);
    pageTracker._trackPageview(url);
} 

function pad(n, len) {   
    s = n.toString();
    if (s.length < len) {
        s = ("0000000000" + s).slice(-len);
    }
    return s;
}

function writeToConsole(msg)
{
    if(window.console && window.console.firebug){
        console.log(msg);
    }
}

function swfObjectCallback(e) 
{
    
    //alert("e.success = " + e.success +"\ne.altId = "+ e.altId +"\ne.objId = " + e.objId +"\ne.objRef = "+ e.objRef);
}

