///////////////////////////////////////////////////////////////////////////////
//
//  pageBrowserControl.js
//
// 
// © 2007 Microsoft Corporation. All Rights Reserved.
//
// This file is licensed as part of the Silverlight 1.0 SDK, for details look here: http://go.microsoft.com/fwlink/?LinkID=89144&clcid=0x409
//
///////////////////////////////////////////////////////////////////////////////

// Controls the Horizontal Scroll of Thumbnails
//   $target: pageBrowserControl XAML element
PageBrowserControl = function(plugIn, target, pageGenerator, navigationManager, maxNumPages) {
    this.target = target;
    this.navigationManager = navigationManager;
    this.maxNumPages = maxNumPages;
    
    this.pageBrowserButton = target.findName("pageBrowserButton");
    this.pageBrowserWindow = target.findName("pageBrowserWindow");
    this.pageBrowser = target.findName("pageBrowser");
    this.openPageBrowserStoryboard = target.findName("openPageBrowserSB");
    
    // create PageBrowserButton
    new PageBrowserButton(this.pageBrowserButton, Silverlight.createDelegate(this, this.onPageBrowserButtonChecked), Silverlight.createDelegate(this, this.onPageBrowserButtonUnchecked));

    // Register event handlers    
    this.pageBrowserWindow.addEventListener("mouseMove", Silverlight.createDelegate(this, this.onPageBrowserWindowMouseMove));
    this.isPageBrowserScrolling = true;
    
    // create thumbnails
    for (var i=0; i<=(this.maxNumPages/2); i++)
    {
        // function Thumbnail(plugIn, pageGenerator, index, clickHandler)
        var _currThumb = new Thumbnail(plugIn, pageGenerator, i, Silverlight.createDelegate(this, this.onThumbnailClicked));
        _currThumb.xamlElement["Canvas.Left"] = i * 70 + 42;
        this.pageBrowser.children.add(_currThumb.xamlElement);
    }
}

PageBrowserControl.prototype.onPageBrowserButtonChecked = function(sender, eventArgs) {
    this.openPageBrowserStoryboard.begin();
    this.pageBrowserWindow.isHitTestVisible = true;
}

PageBrowserControl.prototype.onPageBrowserButtonUnchecked = function(sender, eventArgs) {
    this.openPageBrowserStoryboard.stop();
    this.pageBrowserWindow.isHitTestVisible = false;
}

PageBrowserControl.prototype.onPageBrowserWindowMouseMove = function(s, e)
{
  if (this.isPageBrowserScrolling == true)
  {
    var _currX = (e.getPosition(null).x - 74);
    var _totalPageBrowserWidth = Math.floor(this.maxNumPages/2)*70;

    this.pageBrowser["canvas.Left"] = 350 - (_totalPageBrowserWidth)*(_currX/770);
  }
}

PageBrowserControl.prototype.onThumbnailClicked = function(sender) {
    this.navigationManager.jumpToPage((sender.index*2)-1);
}

