function pageAction(action)
{
  if(action=="next")
  {
    currPage++;
  }
  else if(action=="prev")
  {
    currPage--;
  }
  else if(action=="first")
  {
    currPage=0;
  }
  else if(action=="last")
  {
    currPage=currTotalPages-1;
  }

  if(currPage>=currTotalPages)
  {
    currPage=currTotalPages-1
  }
  else if(currPage<0)
  {
    currPage=0;
  }
  filterView(currAlpha,currSortCon,currSortOrder);
}

function doAlphaFilter(filterAlpha)
{
  currAlpha = filterAlpha;
  if(filterAlpha=="all")
  {
    return songs;
  }
  else
  {
    var tmpArr = new Array();
    var filteredArr = new Array();
    filterAlpha = filterAlpha.toLowerCase();
    var counter = 0;
    for(var i=0;i<songs.length;i++)
    {
      if(filterAlpha==songs[i].title.toLowerCase().substring(0,1))
	  {
	    filteredArr[counter] = songs[i];
	    counter++;
	  }
    }
    if(filteredArr.length==0)
    {
      alert("no song titles that start with the letter: "+filterAlpha.toUpperCase());
	  return null;
    }
    else
    {
	  return filteredArr;
    }
  }
}

function doSort(sortCon, asc, filteredArr)
{
  var tmpArr = new Array();
  var sortedArr = new Array();
  currSortOrder = asc;
  currSortCon = sortCon;

  //Array of sort condition elements
  for(var k=0;k<filteredArr.length;k++)
  { 
    tmpArr[k] = new Array();
    tmpArr[k][0] = eval("filteredArr[k]."+sortCon)+" "+filteredArr[k].title;
	tmpArr[k][1] = k;
  }

  tmpArr.sort();

  for(var m=0;m<tmpArr.length;m++)
  {
    sortedArr[m] = filteredArr[tmpArr[m][1]];
  }
  if(!asc)
  {
    sortedArr.reverse();
  }

  return sortedArr;
}

function writeDisplay(displayArr)
{
  var display = document.getElementById("display");
  var htmlStr="";
  var excessRows; 
  if(displayArr.length<=currMaxRowsPerPage)
  {
    excessRows=0;
  }
  else
  {
    excessRows = displayArr.length%currMaxRowsPerPage;
  }
  var number = (displayArr.length/currMaxRowsPerPage)-0.1;
  currTotalPages = Math.floor(number);
  currTotalPages++;
  if(currTotalPages == 0)
  {
    currTotalPages = 1;
  }
  //alert(currTotalPages);
  var tmpDisplayArr;
  var displayContainer = new Array(currTotalPages);

  for(var h=0;h<displayContainer.length;h++)
  {
    var tmpArr;
	if(h==currPage)
	{
	  if(h==displayContainer.length-1&&excessRows>0)
	  {
	    tmpArr = new Array(excessRows); 
	    for(var g=0;g<excessRows;g++)
	    {
	      tmpArr[g]=displayArr[g+(currMaxRowsPerPage*h)];
	    }
 	  }   
	  else
	  {
	    if(currMaxRowsPerPage>displayArr.length)
	    {
	      tmpArr = new Array(displayArr.length);
		  for(var g=0;g<displayArr.length;g++)
		  {
		    tmpArr[g]=displayArr[g+(currMaxRowsPerPage*h)];
		  }
	    }
	    else
	    {
	      tmpArr = new Array(currMaxRowsPerPage);
		  for(var g=0;g<currMaxRowsPerPage;g++)
		  {
		    tmpArr[g]=displayArr[g+(currMaxRowsPerPage*h)];
		  }
	    }
	  
	  }
	  tmpDisplayArr = tmpArr;
	}	
  }  

  htmlStr+="<table class='text' cellpadding='2' cellspacing='0' width='100%' bgColor='#ffffff'>"
	          +"<tr>";
			    if(currSortCon=="title")
				{
				  if(currSortOrder)
				  {
				    htmlStr+="<th align=\"left\" width='35%'>Title <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-on.gif' border='0' onClick=\"sortView('title',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('title',false)\"></a></th>";
				  }
				  else
				  {
				    htmlStr+="<th align=\"left\" width='35%'>Title <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('title',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-on.gif' border='0' onClick=\"sortView('title',false)\"></a></th>";
				  }
				}
				else
				{
				  htmlStr+="<th align=\"left\" width='35%'>Title <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('title',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('title',false)\"></a></th>";
				}
			    
                if(currSortCon=="artist")
				{
				  if(currSortOrder)
				  {
				    htmlStr+="<th align=\"left\" width='12%'>Artist <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-on.gif' border='0' onClick=\"sortView('artist',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('artist',false)\"></a></th>";
				  }
				  else
				  {
				    htmlStr+="<th align=\"left\" width='12%'>Artist <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('artist',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-on.gif' border='0' onClick=\"sortView('artist',false)\"></a></th>";
				  }
				}
				else
				{
				  htmlStr+="<th align=\"left\" width='12%'>Artist <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('artist',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('artist',false)\"></a></th>";
				}

				if(currSortCon=="difficulty")
				{
				  if(currSortOrder)
				  {
				    htmlStr+="<th align=\"left\" width='13%'>Difficulty <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-on.gif' border='0' onClick=\"sortView('difficulty',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('difficulty',false)\"></a></th>";
				  }
				  else
				  {
				    htmlStr+="<th align=\"left\" width='13%'>Difficulty <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('difficulty',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-on.gif' border='0' onClick=\"sortView('difficulty',false)\"></a></th>";
				  }
				}
				else
				{
				  htmlStr+="<th align=\"left\" width='13%'>Difficulty <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('difficulty',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('difficulty',false)\"></a></th>";
				}

				htmlStr+="<th align='left' width='22%'>Chords Used</th>";

				if(currSortCon=="type")
				{
				  if(currSortOrder)
				  {
				    htmlStr+="<th align=\"left\" width='8%'>Type <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-on.gif' border='0' onClick=\"sortView('type',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('type',false)\"></a></th>";
				  }
				  else
				  {
				    htmlStr+="<th align=\"left\" width='8%'>Type <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('type',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-on.gif' border='0' onClick=\"sortView('type',false)\"></a></th>";
				  }
				}
				else
				{
				  htmlStr+="<th align=\"left\" width='8%'>Type <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('type',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('type',false)\"></a></th>";
				}
				
				if(currSortCon=="key")
				{
				  if(currSortOrder)
				  {
				    htmlStr+="<th align=\"left\" width='8%'>Key <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-on.gif' border='0' onClick=\"sortView('key',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('key',false)\"></a></th>";
				  }
				  else
				  {
				    htmlStr+="<th align=\"left\" width='8%'>Key <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('key',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-on.gif' border='0' onClick=\"sortView('key',false)\"></a></th>";
				  }
				}
				else
				{
				  htmlStr+="<th align=\"left\" width='8%'>Key <img src='images/trans.gif' width='1'><a href='#'><img src='images/asc-off.gif' border='0' onClick=\"sortView('key',true)\"></a><img src='images/trans.gif' width='1'><a href='#'><img src='images/des-off.gif' border='0' onClick=\"sortView('key',false)\"></a></th>";
				}
			  +"</tr>";

  var bgColor="D2D2D2";

  for(var i=0;i<tmpDisplayArr.length;i++)
  {
    var tmpArr = tmpDisplayArr[i].chordsUsed.split("*");
	var tmpStr="";
	var diffStr="";
	

	tmpArr.sort();
	for(var t=0;t<tmpArr.length;t++)
	{
	  tmpStr+=tmpArr[t]+" ";
	}
	
	for(var y=0;y<tmpDisplayArr[i].difficulty;y++)
	{
	  diffStr+="* ";
	}

    htmlStr+="<tr bgColor='"+bgColor+"'>";
	          if(tmpDisplayArr[i].url!="#")
			  {
	            htmlStr+="<td><a href='"+tmpDisplayArr[i].url+"' target='_blank'>"+tmpDisplayArr[i].title+"</a></td>"
			  }
			  else
			  {
			    htmlStr+="<td><a href='#' onclick=\"alert('Sorry, we regret to tell you that the chords for this song have not been uploaded yet. Please check again soon.')\">"+tmpDisplayArr[i].title+"</a></td>"
			  }
			  htmlStr+="<td>"+tmpDisplayArr[i].artist+"</td>"
			  +"<td>"+diffStr+"</td>"
			  +"<td>"+tmpStr+"</td>"
			  +"<td>"+tmpDisplayArr[i].type+"</td>"
			  +"<td>"+tmpDisplayArr[i].key+"</td>"
	        +"</tr>";

	if(bgColor=="D2D2D2")
    {
       bgColor="ffffff";
    }
    else
    {
      bgColor="D2D2D2";
    }
	
  }
  htmlStr+="</table>";
  display.innerHTML = htmlStr;
}
