/*
InlinePaging.js
Version 1.02

Written by: Michael Million
*/
/*
Assumes the following is in calling page

<script src="rswd-results-styleswitch.js" type="text/javascript"></script>
<script type="text/javascript" src="objSort.js"></script>
<script type="text/javascript" src="BrowserDetect.js"></script>
<script type="text/javascript" src="InlinePaging.js"></script>

var site = "http://www.redsandwebdesign.com/";
var imgpath = "http://ep.yimg.com/ca/I/";
var numberOfSetsPerPage = 5;
var numberOfEntriesPerSet = 4;
var currentPage = 1; 				// first page
var sortOrderToggle = true;
var currentSortedColumnNumber = "100";
var inGridMode = true;
var currentSortOrder = "def";
var currentItemCountOption = "20";
var regularPricePrompt = "REGULAR-PRICE-TEXT: ";
var salesPricePrompt = "SALE-PRICE-TEXT: ";	
var grid_active_image = "grid-active.gif";
var grid_inactive_image = "grid-inactive.gif";
var list_active_image = "list-active.gif";
var list_inactive_image = "list-inactive.gif";
    
var item = new Array();
*/
function itemsPerPage() {

    return numberOfSetsPerPage * numberOfEntriesPerSet;
}

function maximumNumberOfPages() {
    var returnValue;

    returnValue = (item.length / itemsPerPage());

    if ((item.length % itemsPerPage()) != 0) {
        returnValue++;
    }

    return parseInt(returnValue);
}

// Executed the very first time
function displayPage() {
    var startOfParameters = location.href.indexOf("#");

    if (startOfParameters != -1) {
	
        startOfParameters++;
        debugger;
        var tokens = location.href.substring( startOfParameters ).split("-");

        var i = 0;
        for ( i = 0; i < tokens.length; i++ )
        {
            switch (i) {
                case 0:
                    currentPage = parseInt(tokens[i]);
                    break;

                case 1:
                    currentSortOrder = tokens[1];
					if (currentSortOrder == "def") 
					{
		                item = item.objSort("8")
        		    }
		            else if (currentSortOrder == "AA") {
        		        item = item.objSort("2", "6")
		            }
        		    else if (currentSortOrder == "AD") {
            	    	item = item.objSort("2", -1, "6")
		            }
        	    	else if (currentSortOrder == "PL2H") {
		                item = item.objSort("6", "2")
		            }
        		    else if (currentSortOrder == "PH2L") {
		        	    item = item.objSort("6", -1, "2")
        		    }
                    break;

                case 2:
	                currentItemCountOption = tokens[2];
				   	var numberOfEntriesPerPage = parseInt(currentItemCountOption);
		            numberOfSetsPerPage = numberOfEntriesPerPage / numberOfEntriesPerSet;
                    break;
            }
        }

        //alert( location.href );
    }
    //alert(currentPage);
redisplayPage();

}

function redisplayPage() 
{

    UpdateLocation();
    displayNavigation('rswd-pag-results-menutop');
    displayNavigation('rswd-pag-results-menubottom');
    displaynamesort(item);
}

function gridViewOn() {
    inGridMode = true;
    redisplayPage();
}

function gridViewOff() {
    inGridMode = false;
    redisplayPage();
}

function changeItemCountOption(selectItemCountControl) {

    var numberOfEntries = (selectItemCountControl.options[selectItemCountControl.selectedIndex].value);

    if (numberOfEntries) {

        if (currentItemCountOption != numberOfEntries) {
            var numberOfEntriesPerPage = parseInt(numberOfEntries);

            numberOfSetsPerPage = numberOfEntriesPerPage / numberOfEntriesPerSet;
            currentItemCountOption = numberOfEntries;

            currentPage = 1;

            redisplayPage();
        }
    }
}   // end of changeItemCountOption()

function changeSortOption(selectSortControl) {

    var sortBy = (selectSortControl.options[selectSortControl.selectedIndex].value);

    if (sortBy) {
        if (currentSortOrder != sortBy) {
            currentSortOrder = sortBy;

            if (currentSortOrder == "def") {
                item = item.objSort("8")
            }
            else if (currentSortOrder == "AA") {
                item = item.objSort("2", "6")
            }
            else if (currentSortOrder == "AD") {
                item = item.objSort("2", -1, "6")
            }
            else if (currentSortOrder == "PL2H") {
                item = item.objSort("6", "2")
            }
            else if (currentSortOrder == "PH2L") {
                item = item.objSort("6", -1, "2")
            }

            redisplayPage();
        }
    }
}   // end of changeSortOption()

function displaynamesort(item) {

    var x = item;
    var xcount = x.length;
    var txt = document.getElementById("rswd-pag-results-resultsarea");
    var numberOfItemsDisplayed = 0;
    var startingIndexNumber = 0;

    txt.innerHTML = ' ';
    rswd_pag_results_resultsarea = document.createElement('div');
    rswd_pag_results_resultsarea.setAttribute("id", "rswd-pag-results-resultsarea");

    // calculate first index number to display
    startingIndexNumber = (currentPage - 1) * itemsPerPage();

    for (var i = startingIndexNumber; i < x.length && numberOfItemsDisplayed < itemsPerPage(); i++) {

        var y = x[i];

        var currentImageName = y[0];
        var currentPageID = y[1];
        var currentTitle = y[2];
        var currentRegularPrice = y[3];
        var currentSalePrice = y[4];
        var currentMoreImage = y[5];
        var currentMoreText = y[7];
        

        if ((numberOfItemsDisplayed % numberOfEntriesPerSet) == 0) {
            rswd_pag_results_resultset = document.createElement('div');
            rswd_pag_results_resultset.setAttribute("id", "rswd-pag-results-resultset");
            rswd_pag_results_resultsarea.appendChild(rswd_pag_results_resultset);

            txt.appendChild(rswd_pag_results_resultset);
        }

        //txt.innerHTML += '<div class="rswd-pag-results-resultitem">';
        rswd_pag_results_resultitem = document.createElement('div');
        rswd_pag_results_resultitem.setAttribute("id", "rswd-pag-results-resultitem");
        rswd_pag_results_resultset.appendChild(rswd_pag_results_resultitem);

        if (currentImageName != '') {
            // txt.innerHTML += '<div class="rswd-pag-results-resultimg">';
            rswd_pag_results_resultimg = document.createElement('div');
            rswd_pag_results_resultimg.setAttribute("id", "rswd-pag-results-resultimg");
            rswd_pag_results_resultitem.appendChild(rswd_pag_results_resultimg);

            newlink = document.createElement('a');
            image = document.createElement("img");
            image.setAttribute("alt", ""); // This attribute is required for validity in HTML.
            //image.setAttribute("width", "###"); // This decreases the perceived load time.
            //image.setAttribute("height", "###"); // This decreases the perceived load time.
            image.setAttribute("border", "0");
            image.setAttribute("src", imgpath + currentImageName);
            newlink.setAttribute('href', currentPageID + '.html');
            newlink.appendChild(image);
            rswd_pag_results_resultimg.appendChild(newlink);
        }

        //<div id="rswd-pag-results-resulttitle"><a href="PAGEID.html">ITEMNAME</a></div>
        rswd_pag_results_resulttitle = document.createElement('div');
        rswd_pag_results_resulttitle.setAttribute("id", "rswd-pag-results-resulttitle");
        rswd_pag_results_resultitem.appendChild(rswd_pag_results_resulttitle);
        newlink = document.createElement('a');
        newlink.setAttribute('href', currentPageID + '.html');
        newlink.innerHTML = currentTitle;
        rswd_pag_results_resulttitle.appendChild(newlink);

        if (currentRegularPrice != '') {
            //<div id="rswd-pag-results-resultregprice-withsale">REGULAR-PRICE-TEXT: <div id="rswd-pag-results-resultbold">$REGULAR-PRICE</div></div>
            rswd_pag_results_resultregprice_withsale = document.createElement('div');
            rswd_pag_results_resultregprice_withsale.setAttribute("id", "rswd-pag-results-resultregprice-withsale");
            rswd_pag_results_resultitem.appendChild(rswd_pag_results_resultregprice_withsale);
            rswd_pag_results_resultregprice_withsale.innerHTML = regularPricePrompt;

            rswd_pag_results_resultbold = document.createElement('div');
            rswd_pag_results_resultbold.setAttribute("id", "rswd-pag-results-resultbold");
            rswd_pag_results_resultregprice_withsale.appendChild(rswd_pag_results_resultbold);
            rswd_pag_results_resultbold.innerHTML = formatCurrency( currentRegularPrice );
        }

        if (currentSalePrice != '') {
            // <div id="rswd-pag-results-resultsaleprice">SALE-PRICE-TEXT: <div id="rswd-pag-results-resultbold">$SALE-PRICE</div></div>
            rswd_pag_results_resultsaleprice = document.createElement('div');
            rswd_pag_results_resultsaleprice.setAttribute("id", "rswd-pag-results-resultsaleprice");
            rswd_pag_results_resultitem.appendChild(rswd_pag_results_resultsaleprice);
            rswd_pag_results_resultsaleprice.innerHTML = salesPricePrompt;

            rswd_pag_results_resultbold = document.createElement('div');
            rswd_pag_results_resultbold.setAttribute("id", "rswd-pag-results-resultbold");
            rswd_pag_results_resultsaleprice.appendChild(rswd_pag_results_resultbold);
            rswd_pag_results_resultbold.innerHTML = formatCurrency( currentSalePrice );
        }

        if (currentMoreText != '') {
            // <div id="rswd-pag-results-description">$description</div>
            rswd_pag_results_description = document.createElement('div');
            rswd_pag_results_description.setAttribute("id", "rswd-pag-results-description");
            rswd_pag_results_resultitem.appendChild(rswd_pag_results_description);
            rswd_pag_results_description.innerHTML = currentMoreText;
        }
        
        if (currentMoreImage != '') {
            // <div id="morelink"><a href="$pageid.html"><img src="$morelink /></a></div>
            morelink = document.createElement('div');
            morelink.setAttribute("id", "morelink");
            rswd_pag_results_resultitem.appendChild(morelink);

            newlink = document.createElement('a');
            newlink.setAttribute('href', currentPageID + '.html');
            morelink.appendChild(newlink);

            image = document.createElement("img");
            image.setAttribute("alt", ""); // This attribute is required for validity in HTML.
            //image.setAttribute("width", "###"); // This decreases the perceived load time.
            //image.setAttribute("height", "###"); // This decreases the perceived load time.
            image.setAttribute("border", "0");
            image.setAttribute("src", currentMoreImage);
            newlink.appendChild(image);
        }

        numberOfItemsDisplayed++;
    }

    // var txt = document.getElementById("rswd-pag-results-resultsarea");
    // var txt = document.getElementById("rswd-pag-results");
    // var txt = document.getElementById("rswd-pag-results-menutop");
    // alert(txt.innerHTML);
    // debugtext.innerText = txt.innerHTML;
}   // end of displaynamesort()

function nextPage() {
    // don't go past end of array
    if (((currentPage) * itemsPerPage()) < item.length) {
        currentPage++;
        redisplayPage();
    }
}

function prevPage() {
    // don't go before beginning of array
    if ((currentPage - 1) > 0) {
        currentPage--;
        redisplayPage();
    }
}

function MoveToPage(newPageNumber) {
    currentPage = newPageNumber;
        
    redisplayPage();
}

function UpdateLocation() {

    location = "#" + currentPage + "-" + currentSortOrder + "-" + currentItemCountOption;
}

function displayNavigation(navigationDivID) {
    var x = item;
    var xcount = x.length;
    var txt = document.getElementById(navigationDivID);
    var numberOfItemsDisplayed = 0;
    var startingIndexNumber = 0;

    txt.innerHTML = ' ';

    // <div id="rswd-pag-results-displayarea">
    rswd_pag_results_displayarea = document.createElement('div');
    rswd_pag_results_displayarea.setAttribute("id", "rswd-pag-results-displayarea");
    txt.appendChild(rswd_pag_results_displayarea);

    // <div id="rswd-pag-results-displaygrid">
    rswd_pag_results_displaygrid = document.createElement('div');
    rswd_pag_results_displaygrid.setAttribute("id", "rswd-pag-results-displaygrid");
    rswd_pag_results_displayarea.appendChild(rswd_pag_results_displaygrid);

    newlink = document.createElement('a');
    image = document.createElement("img");
    image.setAttribute("alt", ""); // This attribute is required for validity in HTML.
    //image.setAttribute("width", "###"); // This decreases the perceived load time.
    //image.setAttribute("height", "###"); // This decreases the perceived load time.
    image.setAttribute("border", "0");
    if (inGridMode) {
        image.setAttribute("src", grid_active_image);
        newlink.setAttribute('checked', "checked");
    }
    else {
        image.setAttribute("src", grid_inactive_image);
        newlink.setAttribute('href', "javascript:gridViewOn();javascript:chooseStyle('none', 54)");
    }
    newlink.appendChild(image);
    rswd_pag_results_displaygrid.appendChild(newlink);

    newlink = document.createElement('a');
    image = document.createElement("img");
    image.setAttribute("alt", ""); // This attribute is required for validity in HTML.
    //image.setAttribute("width", "###"); // This decreases the perceived load time.
    //image.setAttribute("height", "###"); // This decreases the perceived load time.
    image.setAttribute("border", "0");
    if (!inGridMode) {
        image.setAttribute("src", list_active_image);
        newlink.setAttribute('checked', "checked");
    }
    else {
        image.setAttribute("src", list_inactive_image);
        newlink.setAttribute('href', "javascript:gridViewOff();javascript:chooseStyle('list', 54)");
    }
    newlink.appendChild(image);
    rswd_pag_results_displaygrid.appendChild(newlink);

    rswd_pag_results_sortby = document.createElement('div');
    rswd_pag_results_sortby.setAttribute("id", "rswd-pag-results-sortby");
    txt.appendChild(rswd_pag_results_sortby);

    rswd_pag_results_sortby.innerHTML = "Sort By:";
    selectControl = document.createElement("select");
    rswd_pag_results_sortby.appendChild(selectControl);

    selectControl.setAttribute('class', 'rswd-pag-result-dropdowns');
    selectControl.setAttribute('id', 'ResultsPerPage');

    if (isExplorer()) {
        selectControl.onclick = function() { changeSortOption(this); };
    }
    else {
        selectControl.setAttribute('onChange', 'javascript:changeSortOption(this);');
    }

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', 'def');
    if (currentSortOrder == "def") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "Select One";

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', 'PL2H');
    if (currentSortOrder == "PL2H") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "Price (Low to High)";

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', 'PH2L');
    if (currentSortOrder == "PH2L") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "Price (High to Low)";

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', 'AA');
    if (currentSortOrder == "AA") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "Alphabetical - Ascending";

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', 'AD');
    if (currentSortOrder == "AD") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "Alphabetical - Descending";

    rswd_pag_results_perpage = document.createElement('div');
    rswd_pag_results_perpage.setAttribute("id", "rswd-pag-results-perpage");
    txt.appendChild(rswd_pag_results_perpage);
    rswd_pag_results_perpage.innerHTML = "Items per page:";

    selectControl = document.createElement("select");
    rswd_pag_results_perpage.appendChild(selectControl);

    selectControl.setAttribute('class', 'rswd-pag-result-dropdowns');
    selectControl.setAttribute('id', 'ItemsPerPage');

    if (isExplorer()) {
        selectControl.onclick = function() { changeItemCountOption(this); };
    }
    else {
        selectControl.setAttribute('onChange', 'javascript:changeItemCountOption(this);');
    }

    //selectControl.onclick = function() { changeItemCountOption(this); };

    rswd_pag_results_perpage.appendChild(selectControl);

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', '18');
    if (currentItemCountOption == "18") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "18";

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', '36');
    if (currentItemCountOption == "36") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "36";

    option = document.createElement('option');
    selectControl.appendChild(option);
    option.setAttribute('value', '54');
    if (currentItemCountOption == "54") {
        option.setAttribute('selected', 'selected');
    }
    option.innerHTML = "54";

    rswd_pag_results_pagination = document.createElement('div');
    rswd_pag_results_pagination.setAttribute("id", "rswd-pag-results-pagination");
    txt.appendChild(rswd_pag_results_pagination);

    // <div id="rswd-pag-results-pagination-text">45 Pages:</div>
    rswd_pag_results_pagination_text = document.createElement('div');
    rswd_pag_results_pagination_text.setAttribute("id", "rswd-pag-results-pagination-text");
    rswd_pag_results_pagination.appendChild(rswd_pag_results_pagination_text);
    rswd_pag_results_pagination_text.innerHTML = maximumNumberOfPages() + " Pages:";

    // Determine starting page number
    var startingPageNumber = 1;
    var endingPageNumber;

    if ((currentPage - 3) > 0) {
        startingPageNumber = currentPage - 3;
    }

    endingPageNumber = Math.min(startingPageNumber + 5, maximumNumberOfPages());

    for (cPageNum = startingPageNumber; cPageNum <= endingPageNumber; cPageNum++) {
        newlink = document.createElement('a');

        if (cPageNum == currentPage) {
            newlink.setAttribute("id", "rswd-pag-results-pagination-active");
            newlink.innerHTML = "<span style='color: #ffffff;'>" + cPageNum + "</span>";
        }
        else {
            newlink.innerHTML = cPageNum + '';
        }

        newlink.setAttribute("href", "javascript:MoveToPage(" + cPageNum + ") ");

        rswd_pag_results_pagination.appendChild(newlink);
    }

    var txt = document.getElementById("rswd-pag-results-resultsarea");
    //var txt = document.getElementById(navigationDivID);
    //alert(txt.innerHTML);
    //debugtext.innerText = txt.innerHTML;
}   // end of displayNavigation()

// Original:  Cyanide_7 (leo7278@hotmail.com)
// Web Site:  http://www7.ewebcity.com/cyanide7
// This script and many more are available free online at
// The JavaScript Source!! http://javascript.internet.com
function formatCurrency(num)
{
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";

    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
        cents = "0" + cents;
        
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+

    num.substring(num.length-(4*i+3));
    
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}   // end of formatCurrency()
/* end of file */
