// JavaScript Document

/*
  //Example of how async. call builds list elements - need to carry URL over to the form 
  //(can be flexible, i.e., as "id" in anchor tag since they'll be unique?)
  <li url="http://www.barnesandnoble.com/subjects/fiction/index.asp?PID=16743&cds2Pid=16451&linkid=1172538">
   <a class="genre" href="javascript:void(0);">Fiction & Literature</a>
  </li>
 */

function initFavoriteGenres () {

	var hooks = $('a.genre');
	
	for(i = 0; i < hooks.length; i++) {
		hooks[i].onclick = function () {
			if(this.className.search("selected") == -1) {
				var genreName = this.innerHTML;
				var id = this.parentNode.getAttribute('id');
				var url = this.parentNode.getAttribute('url');
				if(addGenre(genreName, id, url))
					this.className += " selected";
				else
					return false;
			} else {
				return false;	
			}
		}	
	}
	
	var genreListName = $('#genreListName').text();
	var removeHooks = $('#favoriteGenres'+genreListName+' a.removeGenre');
	
	var favorites = $('#favoriteGenres'+genreListName+' li.empty > span');
	
	for(i = 0; i< favorites.length; i++) {
		var preGenre = '';
		if(favorites[i].className.search("populated") != -1) {
			preGenre = favorites[i].innerHTML;	
			for(k = 0; k < hooks.length; k++) {
				if(hooks[k].innerHTML == preGenre) {
					hooks[k].className += " selected";
				}
			}
		}	
	}
	
		
	for(j = 0; j < removeHooks.length; j++) {
		removeHooks[j].onclick = function () {
	
			var removeThis = this.parentNode.childNodes[1].innerHTML;
			for(k = 0; k < hooks.length; k++) {
				if(hooks[k].innerHTML == removeThis) {
					this.parentNode.childNodes[1].innerHTML = '';
					this.parentNode.childNodes[1].className = '';
					
					var indexPosArray = this.parentNode.childNodes[1].id
					splitIndexArray = indexPosArray.split("|")
					
					this.parentNode.childNodes[1].id = splitIndexArray[0];
					 
					hooks[k].className = "genre";
					
				}
			}
		}
	}

}

function addGenre(genreName, id, url) {
	var genreListName = $('#genreListName').text();
	var favorites = $('#favoriteGenres'+genreListName+' li.empty > span');
	
	//alert(url)
	
	for(i = 0; i< favorites.length; i++) {	
		if(favorites[i].className.search("populated") == -1) {
			favorites[i].innerHTML = genreName;	
			favorites[i].className += "populated";
			favorites[i].id = i + "|" + id + "|" + url;
			return true;
		}	
	}
	//error message
	
	var errorMessage = "You can only have five Favorite Genres. If you wish to add this one, remove one of the five you've already selected to make room."
	
	showPopUpError(errorMessage, "genreErrorMax" )
		return false;
}