/*
----------------------------------------------------------------------------------    
    Description: This adds a css-stylabla pager
        to any html element on a page and complies with product's paging standard.
    Created On: March 2, 2008
    Created By: Chris Holmok / cholmok@myspace.com / ex67105 
----------------------------------------------------------------------------------    
    
    EXAMPLE HTML OUTPUT:
    
    <div class="[className]">
   
        <div class="left">
            <b>Listing:</b> 1-5 of 46
        </div>
        
        <div class="right">
            <a class="disabled" href="#">« prev</a> |
            <a class="" href="[pagerHref]"">next »</a>
        </div>
    
        <b class="currentPage">1</b>
        <a class="page" href="[pagerHref]">2</a>
        <a class="page" href="[pagerHref]">3</a>
        <a class="page" href="[pagerHref]">4</a>
        <a class="page" href="[pagerHref]">5</a>
        <a class="nextRange" href="[pagerHref]">&gt;&gt;</a>
        of
        <a class="lastPage" href="[pagerHref]">10</a>
    
    </div>
    
----------------------------------------------------------------------------------    
    
    CODE EXAMPLE:
    
        MySpace.UI.AddPager(
        targetDiv,  //This is the html element to add the pager to
        'pagerTop', //this is the class of the pager's outter most div element.
        'javascript:MySpace.Comments.CommentsPanel.GoToPage({0});', 
            //this is what will go in the pager links's href's.
              It can be a javascipt call like above or an actual url like
              'somePage.aspx?pageIndex={0}'.  {0} represents the 0-Based page index to go to.
        pageIndex, // the 0-Based page index
        pageSize, // how many items to show on the page
        totalComments // total number of comments.
        );
    
---------------------------------------------------------------------------------- 
    STYLE INFO:
    Take a look at ClientPagerBasic001.css in the modules/static/css in shared to 
    see a very basic style for this pager.  It assumes that your using 'pager' as
    the className paramter.   
----------------------------------------------------------------------------------    

*/

MySpace.UI.AddPager = function(target, 
									className, 
									pagerHref, 
									pageIndex, 
									pageSize, 
									totalCount) {
    
	//SET UP RANGES
    var itemLow = pageSize * pageIndex + 1;
    
	var itemHigh = itemLow + pageSize - 1;
    if (itemHigh > totalCount) itemHigh = totalCount;
    
    var lastPage = Math.ceil(totalCount / pageSize);
    
	var startPage = pageIndex - (pageIndex % 5);
    if (startPage < 0) startPage == 0;
    
	var endPage = startPage + 5;
    if (endPage > lastPage) endPage = lastPage;
    
	//ADD MAIN DIV
    var pagerDiv = document.createElement('div');
    pagerDiv.className = className;
    target.appendChild(pagerDiv);
    
    //LEFT SIDE LISTING COUNT
    var leftDiv = document.createElement('div');
    leftDiv.className = 'left';
     _proxy_jslib_assign('', leftDiv, 'innerHTML', '=', ( '<b>Listing:</b> ' + itemLow + '-' + itemHigh + ' of ' + totalCount));
    pagerDiv.appendChild(leftDiv);
    
	//RIGHT SIDE NEXT/PREV LINKS
    var rightDiv = document.createElement('div');
    rightDiv.className = 'right';
    pagerDiv.appendChild(rightDiv);
    
    var prevPage = document.createElement('a');
    prevPage.className = pageIndex == 0 ? 'disabled' : '';
	
     _proxy_jslib_assign('', prevPage, 'href', '=', ( pageIndex == 0 ? '#' :  _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,pageIndex - 1)));
     _proxy_jslib_assign('', prevPage, 'innerHTML', '=', ( '&laquo; prev'));
    rightDiv.appendChild(prevPage);
    
    rightDiv.appendChild(document.createTextNode(' | '));
    
    var nextPage = document.createElement('a');
    nextPage.className = pageIndex == lastPage - 1 ? 'disabled' : '';
     _proxy_jslib_assign('', nextPage, 'href', '=', ( pageIndex == lastPage - 1 ? '#' :   _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,pageIndex + 1)));
     _proxy_jslib_assign('', nextPage, 'innerHTML', '=', ( 'next &raquo;'));
    rightDiv.appendChild(nextPage);
    
	//MIDDLE PAGER        
    
	//PREVIOUS RANGE OF 5 AND FIRST PAGE
    if (startPage > 0) {
        var firstPageLink = document.createElement('a');
        firstPageLink.className = 'firstPage';
         _proxy_jslib_assign('', firstPageLink, 'href', '=', (  _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,'0')));
         _proxy_jslib_assign('', firstPageLink, 'innerHTML', '=', ( '1'));
        pagerDiv.appendChild(firstPageLink);
        pagerDiv.appendChild(document.createTextNode(' '));
        
        var prevRange = document.createElement('a');
        prevRange.className = 'prevRange';
         _proxy_jslib_assign('', prevRange, 'href', '=', (  _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,startPage - 1)));
         _proxy_jslib_assign('', prevRange, 'innerHTML', '=', ( '&lt;&lt;'));
        
        pagerDiv.appendChild(prevRange);
        pagerDiv.appendChild(document.createTextNode(' '));
    }
    
	//MIDDLE 5
    for (var i = startPage; i < endPage; i++) {
        if (i == pageIndex) {
            var page = document.createElement('b');
            page.className = 'currentPage';
             _proxy_jslib_assign('', page, 'innerHTML', '=', ( i + 1));
            pagerDiv.appendChild(page);
        }
        else {
            var page = document.createElement('a');
            page.className = 'page';
             _proxy_jslib_assign('', page, 'href', '=', (  _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,i)));
             _proxy_jslib_assign('', page, 'innerHTML', '=', ( i + 1));
            pagerDiv.appendChild(page);
        }
        pagerDiv.appendChild(document.createTextNode(' '));
    }
    
	//NEXT PAGE RANGE OF 5 AND LAST PAGE
    if (endPage < lastPage) {
        var nextRange = document.createElement('a');
        nextRange.className = 'nextRange';
         _proxy_jslib_assign('', nextRange, 'href', '=', (  _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,endPage)));
         _proxy_jslib_assign('', nextRange, 'innerHTML', '=', ( '&gt;&gt;'));
        pagerDiv.appendChild(document.createTextNode(' '));
        pagerDiv.appendChild(nextRange);
        
        var lastPageLink = document.createElement('a');
        lastPageLink.className = 'lastPage';
         _proxy_jslib_assign('', lastPageLink, 'href', '=', (  _proxy_jslib_handle(pagerHref, 'replace', '', 1, 0)(/\{0\}/,lastPage - 1)));
         _proxy_jslib_assign('', lastPageLink, 'innerHTML', '=', ( lastPage));
        pagerDiv.appendChild(document.createTextNode(' of '));
        pagerDiv.appendChild(lastPageLink);
    }
    else
    {
        pagerDiv.appendChild(document.createTextNode(' of ' + lastPage));
    }
}

 ;
_proxy_jslib_flush_write_buffers() ;