var liPages = 0;
var liCurrentPage = 0;
var liPageWidth = 0;
var liPageHeight = 0;
var liReady = 0;
var liBookPath;
var liShopURL;
var liSite;
var liZoomWidth = new Array();
var liZoomHeight = new Array();
var liCurrentZoom = 1;
var liWindowWidth;
var liWindowHeight;

function preloadLI(strSite, bookPath, shopURL) {
    liShopURL = shopURL;
    liSite = strSite;
    liBookPath = bookPath;
    $.getJSON('/li-json.php?bookpath=' + bookPath, function(data) {
        liPages = data.pages;
        liPageWidth = data.width;
        liPageHeight = data.height;
	if (liPages > 0) {
		setupLI();
	}
    });
}

function makeBookPath(i) {
    if (i == 0) {
        return('http://www.florisbooks.co.uk/images/li/blank-page.gif');
    }
    if (i > liPages) {
        return('http://www.florisbooks.co.uk/images/li/blank-page.gif');
    }
    return('http://www.florisbooks.co.uk/add/' + liBookPath + '/' + i + '.jpg');   
}

function makePaging() {
    var liPagingHTML = '';
    var liStartPad = ' . . . | ';
    var liEndPad = ' . . . | ';

    liPagingHTML = liPagingHTML + '<span style="position:relative;top:-1px;"><a ';
    if (liCurrentPage == 0) {
        liPagingHTML = liPagingHTML + 'class="liCurrentPage" ';
    }
    liPagingHTML = liPagingHTML + 'href="Javascript:liGoPage(0)">Front Cover</a> | ';
    var i = 2;
    while(i < liPages) {
        if (((liCurrentPage - i) > 2) && (i > 2)) {
            liPagingHTML = liPagingHTML + liStartPad;
            liStartPad = ''
        } else {    
            if (((liCurrentPage - i) < -2) && ((liPages - i) > 2)) {
                liPagingHTML = liPagingHTML + liEndPad;
                liEndPad = ''
            } else {    
                liPagingHTML = liPagingHTML + '<a ';
                if (liCurrentPage == i) {
                    liPagingHTML = liPagingHTML + 'class="liCurrentPage" ';
                }
                liPagingHTML = liPagingHTML + 'href="Javascript:liGoPage(' + i + ')">' + i + '-' + (i+1) + '</a> | ';
            }
        }
        i = i + 2;
    }
    liPagingHTML = liPagingHTML + '<a ';
    if (liCurrentPage == liPages) {
        liPagingHTML = liPagingHTML + 'class="liCurrentPage" ';
    }
    liPagingHTML = liPagingHTML + 'href="Javascript:liGoPage(' + liPages + ')">Back Cover</a></span>';
    $('td#liPages').html(liPagingHTML);
}

function liGoPage(i) {
    $('div#liImages').html('<img class="liImageLeft" src="' + makeBookPath(i) + '" /><img class="liImageRight" src="' + makeBookPath(i + 1) + '" />');
    liCurrentPage = i;
    liSetZoom(liCurrentZoom);
    makePaging();
}

function liGoLeft() {
    liCurrentPage = parseInt(liCurrentPage) - 2;
    if (liCurrentPage < 0) { liCurrentPage = 0; }
    liGoPage(liCurrentPage);
}

function liGoRight() {
    liCurrentPage = parseInt(liCurrentPage) + 2;
    if (liCurrentPage > liPages) { liCurrentPage = liPages; }
    liGoPage(liCurrentPage);
}

function liZoomOut() {
    if (liCurrentZoom > 1) {
        liCurrentZoom = liCurrentZoom - 1;
        liSetZoom(liCurrentZoom);
    }
}

function liZoomIn() {
    if (liCurrentZoom < 3) {
        liCurrentZoom = liCurrentZoom + 1;
        liSetZoom(liCurrentZoom);
    }
}

function liSetZoom(i) {
    liWindowWidth = $(window).width();
    liWindowHeight = $(window).height();

    $('div#liImages').css("width", (2 * liZoomWidth[i]) + "px");
    $('div#liImages').css("height", liZoomHeight[i] + "px");
    $('div#liImages').css("top", ((parseInt(liWindowHeight) - parseInt(liZoomHeight[i] - 30)) / 2) + "px");
    $('div#liImages').css("left", ((parseInt(liWindowWidth) - (2 * parseInt(liZoomWidth[i]))) / 2) + "px");

    $('img.liImageLeft').css("width", liZoomWidth[i] + "px");
    $('img.liImageRight').css("width", liZoomWidth[i] + "px");
    $('img.liImageLeft').css("height", liZoomHeight[i] + "px");
    $('img.liImageRight').css("height", liZoomHeight[i] + "px");

    $('div#liLeft').css("left", "-5px");
    $('div#liRight').css("left", Math.floor(parseInt(liWindowWidth) - 65) + "px");
    $('div#liLeft').css("top", Math.floor((parseInt(liWindowHeight) / 2) - 35) + "px");
    $('div#liRight').css("top", Math.floor((parseInt(liWindowHeight) / 2) - 35) + "px");

    $('#liMeter').attr("src", "http://www.florisbooks.co.uk/images/li/icon-meter-" + i + ".png");
}

$(window).resize(function() {
  setupZooms();
});

function setupZooms() {
    liZoomWidth[3] = liPageWidth;
    liZoomHeight[3] = liPageHeight;
    
    liWindowWidth = $(window).width();
    liWindowHeight = $(window).height();
    twoPageWidth = 2 * liPageWidth;
    if ((twoPageWidth / liWindowWidth) > (liPageHeight / liWindowHeight)) {
        liZoomWidth[1] = Math.floor(liWindowWidth * 0.425);
        liZoomHeight[1] = Math.floor((liZoomWidth[1] / liPageWidth) * liPageHeight);  
    } else {
        liZoomHeight[1] = Math.floor(liWindowHeight * 0.85);
        liZoomWidth[1] = Math.floor((liZoomHeight[1] / liPageHeight) * liPageWidth);    
    }

    liZoomHeight[2] = Math.floor((parseInt(liZoomHeight[1]) + parseInt(liZoomHeight[3])) / 2);
    liZoomWidth[2] = Math.floor((parseInt(liZoomWidth[1]) + parseInt(liZoomWidth[3])) / 2);    

    liSetZoom(liCurrentZoom);
}

function setupLI() {
    var liMainHTML = '';
    liMainHTML = liMainHTML + '<div id="liMain">';

        liMainHTML = liMainHTML + '<div id="liHeader">';
            liMainHTML = liMainHTML + '<table width="100%" height="80" cellspacing="0" cellpadding="0">';

            liMainHTML = liMainHTML + '<tr><td class="leftHeader" width="125" nowrap="nowrap">';
                liMainHTML = liMainHTML + '<a href="Javascript:liZoomOut()"><img src="http://www.florisbooks.co.uk/images/li/icon-zoom-out.png" alt="Zoom Out" title="Zoom Out" /></a>';
                liMainHTML = liMainHTML + ' <img id="liMeter" src="http://www.florisbooks.co.uk/images/li/icon-meter-1.png" alt="" title="" /> ';
                liMainHTML = liMainHTML + '<a href="Javascript:liZoomIn()"><img src="http://www.florisbooks.co.uk/images/li/icon-zoom-in.png" alt="Zoom In" title="Zoom In" /></a>';
            liMainHTML = liMainHTML + '</td>';

            liMainHTML = liMainHTML + '<td width="1" class="lineHeader"></td>';

            liMainHTML = liMainHTML + '<td id="liPages" nowrap="nowrap">';
            liMainHTML = liMainHTML + '</td>';

            if (liSite == "florisbooks") {            
            liMainHTML = liMainHTML + '<td width="1" class="lineHeader"></td>';

            liMainHTML = liMainHTML + '<td width="175" nowrap="nowrap">';
                liMainHTML = liMainHTML + '<a href="'+ liShopURL + '" style="position:relative;top:-7px;">Add to basket <img src="http://www.florisbooks.co.uk/images/li/icon-arrow.png" alt="" title="" style="position:relative;left:2px;top:8px;" /></a>';
            liMainHTML = liMainHTML + '</td>';
            }	
            
            liMainHTML = liMainHTML + '<td width="1" class="lineHeader"></td>';

            liMainHTML = liMainHTML + '<td class="rightHeader" width="50" nowrap="nowrap">';
                liMainHTML = liMainHTML + '<a href="Javascript:liClose()"><img src="http://www.florisbooks.co.uk/images/li/icon-close.png" alt="Close" title="Close" /></a>';
            liMainHTML = liMainHTML + '</td></tr></table>';

        liMainHTML = liMainHTML + '</div>';

        liMainHTML = liMainHTML + '<div id="liLeft"><a href="Javascript:liGoLeft()"><img src="http://www.florisbooks.co.uk/images/li/left-arrow.png" alt="" title="" /></a></div>';
        liMainHTML = liMainHTML + '<div id="liImages"></div>';
        liMainHTML = liMainHTML + '<div id="liRight"><a href="Javascript:liGoRight()"><img src="http://www.florisbooks.co.uk/images/li/right-arrow.png" alt="" title="" /></a></div>';

    liMainHTML = liMainHTML + '</div>';

    $('body').append(liMainHTML);

    if (liSite == "florisbooks") {
        var liBookHTML = $('span#liBook').html();
        liBookHTML = '<a href="Javascript:openLI();">' + liBookHTML + '</a>';
        $('span#liBook').html(liBookHTML);
        liBookHTML = '<a href="Javascript:openLI();"><img class="add" style="height:55px;margin-top:1px;margin-bottom:-10px;" src="/images/assets/see-inside.jpg" /></a><br />';
        $('span#liBookButton').html(liBookHTML);
    }

    if (liSite == "picturekelpies") {
        var liBookHTML = '<a href="Javascript:openLI();"><img src="/images/assets/seeinside.gif" alt="Image link to view sample pages from this book" /></a>';
        $('span#liButton').html(liBookHTML);
    }   
        
    if (liSite == "discoverkelpies") {
        var liBookHTML = '<a href="Javascript:openLI();"><img style="height:73px;width:153px;float:left;margin-bottom:-30px;margin-left:-5px;" src="/images/assets/SeeInside.jpg" alt="Image link to view sample pages from this book" /></a>';
        $('span#liButton').html(liBookHTML);
    } 
}

function openLI() {
    $('body,html').scrollTop(0);
    $('div#liMain').css("display", "block");
    $('body').addClass("hideOverflow");

    liGoPage(0);
    setupZooms();

    $('div#liImages').draggable();
}

function liClose() {
    $('div#liMain').css("display", "none");
    $('body').removeClass("hideOverflow");
}
