var $ = glow.dom.get;
var search_timer;
var selected_result = 0;
var quickfind_num_results;
var results_info_panel = new Array();

glow.ready(function() {
	$(".pc-script-showme").removeClass("pc-script-hidden");
	$(".pc-script-hideme").addClass("pc-script-hidden");
	
	if ($("#pc-quickfind-box").val() == $("#pc-quickfind-box")[0].defaultValue) {
		$("#pc-quickfind-box").addClass("pc-search-inactive");
	}
	
	// set up the results info panels
	var results_info = $(".pc-further-data");
	results_info.each(function(i) {
		var result_id = results_info[i].id;
		var result_split=result_id.split('-');
		var result_id = result_split[result_split.length-1];
		
		results_info_panel[result_id] = new glow.widgets.InfoPanel("#pc-further-" + result_id, {
		  width: 330,
		  context: "#pc-i-" + result_id
		});
	});
	
	
	
	glow.events.addListener($("#pc-quickfind-box"),'keyup',function(e) {
		// should only fire if not arrow keys or enter key
		var unicode=e.keyCode? e.keyCode : e.charCode;
	//	alert(unicode);
			if (unicode != 40 && unicode != 39 && unicode != 38 && unicode != 37 && unicode != 13) {
				quickfind();
			} else if (unicode == 13) {
				if ($('#pc-quickfind-single-result' + selected_result).length > 0) {
					// go to the selected result keepnet
					window.location = $('#pc-quickfind-single-result' + selected_result).attr("href");
				}
			}
		});
	glow.events.addListener($("#pc-quickfind-box"),'focus',function() {

		if ($("#pc-quickfind-box").val() == $("#pc-quickfind-box")[0].defaultValue) {
		$("#pc-quickfind-box").val('');
		$("#pc-quickfind-box").removeClass("pc-search-inactive");
		} else {
			quickfind();
		}
	});

	glow.events.addListener($("#pc-quickfind-box"),'blur',function() {
			selected_result = 0;
			if ($("#pc-quickfind-box").val() == '') {
				$("#pc-quickfind-box").val($("#pc-quickfind-box")[0].defaultValue);
				$("#pc-quickfind-box").addClass("pc-search-inactive");
			}
			setTimeout('hideSearch()',500);
	});
	
	// up/down keys for quick search box
	glow.events.addKeyListener("DOWN", "down", function () {
			$('#pc-quickfind-single-result' + selected_result).removeClass("pc-quickfind-single-result-selected");
			if (selected_result < 5) {
				selected_result = selected_result + 1;
			}
			$('#pc-quickfind-single-result' + selected_result).addClass("pc-quickfind-single-result-selected");
		return false;
	});
	glow.events.addKeyListener("UP", "down", function () {
			$('#pc-quickfind-single-result' + selected_result).removeClass("pc-quickfind-single-result-selected");
			if (selected_result > 1) {
				selected_result = selected_result - 1;
			}
			$('#pc-quickfind-single-result' + selected_result).addClass("pc-quickfind-single-result-selected");
		return false;
	});

	glow.events.addListener($("#pc-promo-link-editors a"),'click',function() {
		promoSwap('editors','recent');
		return false;
	});
	
	glow.events.addListener($("#pc-promo-link-recent a"),'click',function() {
		promoSwap('recent','editors');
		return false;
	});

	glow.events.addListener($("#pc-maxmin"),'click',function() {
		if ($("#pc-promo-link-editors a").hasClass('pc-promo-selected')) {
			promoSwap('X', 'editors');
			$("#pc-maxmin span").removeClass('pc-maxmin-max');
			$("#pc-maxmin span").addClass('pc-maxmin-min');
		}
		else if ($("#pc-promo-link-recent a").hasClass('pc-promo-selected')) {
			promoSwap('X', 'recent');
			$("#pc-maxmin span").removeClass('pc-maxmin-max');
			$("#pc-maxmin span").addClass('pc-maxmin-min');
		}
		else {
			promoSwap('editors', 'X');
			$("#pc-maxmin span").removeClass('pc-maxmin-min');
			$("#pc-maxmin span").addClass('pc-maxmin-max');
		}
		return false;
	});
	
	glow.events.addListener($(".pc-i"),'mouseover',function() {
		var result_id = this.id;
		var result_split=result_id.split('-');
		var result_id = result_split[result_split.length-1];
		results_info_panel[result_id].show();
		$("#pc-keepnet-player-box embed").attr('style','visibiliy:show');
		$("#pc-keepnet-player-box object").attr('style','visibiliy:show');
	});
	
	glow.events.addListener($(".pc-i"),'mouseout',function(e) {
		var result_id = this.id;
		var result_split=result_id.split('-');
		var result_id = result_split[result_split.length-1];
		results_info_panel[result_id].hide();
	});

	if (keyname !== false) {
		// check if # value in URL
		urlhash = location.hash.substring(12);
		if (urlhash.length > 0) {
			swapEpisode(playlist_url + 'series/' + keyname + '/episode' + parseInt(urlhash) + '.xml',parseInt(urlhash),true);
		} else {		
			swapEpisode(playlist_url + 'series/' + keyname + '/episode1.xml',1,false);
		}
	}
	
	glow.events.addListener($(".pc-keepnet-player-playbuttons a"),'click',function(e) {
		var result_id = this.id;
		var result_split=result_id.split('-');
		var result_id = result_split[result_split.length-1];
		swapEpisode(playlist_url + 'series/' + keyname + '/episode' + result_id + '.xml',result_id,true);
	});

});

function promoSwap(show, hide) {
	$("#pc-promo-" + hide).hide();
	$("#pc-promo-link-" + hide + " a").removeClass('pc-promo-selected');
	$("#pc-promo-" + show).show();
	$("#pc-promo-link-" + show + " a").addClass('pc-promo-selected');
	$("#pc-maxmin span").removeClass('pc-maxmin-min');
	$("#pc-maxmin span").addClass('pc-maxmin-max');
	return false;
}


function quickfind() {
	
	$('#pc-quickfind-results').removeClass("pc-script-hidden");
	
	clearTimeout(search_timer);

	
	if ($("#pc-quickfind-box").val().length > 0) {
		$('#pc-quickfind-box').removeClass("pc-quickfind-waiting");
		$('#pc-quickfind-box').addClass("pc-quickfind-loading");
		search_timer=setTimeout('performSearch()',300);
	
	} else {
			selected_result = 0;
			$('#pc-quickfind-box').removeClass("pc-quickfind-loading");
			$('#pc-quickfind-box').addClass("pc-quickfind-waiting");
			$('#pc-quickfind-results').addClass("pc-script-hidden");
			$('#pc-quickfind-results-space').html('');
			$('#pc-quickfind-genre').html('');
			$('#pc-keepnet-player-box embed').removeClass('pc-script-invisible');
			$('#pc-keepnet-player-box object').removeClass('pc-script-invisible');
			$('#pc-results-list li').removeClass('pc-script-invisible');
			$('#pc-results-list li').removeClass('pc-zindexfix');
	}

}

function performSearch() {
	var genre_html = '';
	search_query = $("#pc-quickfind-box").val().replace(/ /g,'_');
	glow.net.get('' + local_url + 'quick_search/' + search_query, {
			onLoad: function(response) {
				results 			= response.json();
				var quickfind_num_results		= results.length;
				if (quickfind_num_results > 0) {
						results_html = '<ul>';
						
						for (var i=0;i<quickfind_num_results;i++) {
									if (results[i].shortTitle && i < 5) {
										// get the values
										var short_title = results[i].shortTitle;
										var full_title = results[i].fullTitle;
										var display_title = results[i].displayTitle;
										var pod_description = results[i].podDescription;
										var artwork = results[i].artwork;
										var keepnet = results[i].keepnet;
										results_html = results_html + '<li>' +
											'<a href="' + keepnet + '" id="pc-quickfind-single-result' + (i+1) + '">' + 
											'<span class="pc-quickfind-artwork">' +
											'<img src="' + artwork + '" alt="' + full_title + '" title="' + full_title + '" />' + 
											'</span>' +
											'<span class="pc-quickfind-data"><span class="pc-quickfind-title">' +
											display_title + 
											'</span><br />' +
											'<span class="pc-quickfind-description">' +
											pod_description
											'</span></span>' +
											'</a></li>';
									} else if(results[i].genreTitle) {
										var genre_title = results[i].genreTitle;
										var genre_key = results[i].genreKey
										genre_html = '<p><a href="' + local_url + 'genre/' + genre_key + '">See all ' + genre_title + ' podcasts</a></p>';
									}
								}
						
						
						
						results_html = results_html + '</ul>';
					
						$('#pc-quickfind-results-space').html(results_html);
						$('#pc-quickfind-genre').html(genre_html);
						selected_result = 0;
					//	$('#pc-quickfind-single-result1').addClass("pc-quickfind-single-result-selected");
						$('#pc-quickfind-box').removeClass("pc-quickfind-loading");
						$('#pc-quickfind-box').addClass("pc-quickfind-waiting");
						$('#pc-keepnet-player-box embed').addClass('pc-script-invisible');
						$('#pc-keepnet-player-box object').addClass('pc-script-invisible');
					
					/* IE Z-INDEX BUG REQUIRES RESULTS BOXES TO BE HIDDEN */
					
					if (zindexbugfixer == true) {
					$('#pc-results-list li').removeClass('pc-script-invisible');
					if (quickfind_num_results>3) {
						$('.pc-result-z-2').addClass('pc-script-invisible');
						$('.pc-result-z-1').addClass('pc-script-invisible');
					}
					if (quickfind_num_results>4) {
						$('.pc-result-z-5').addClass('pc-script-invisible');
						$('.pc-result-z-4').addClass('pc-script-invisible');				
					}
				}
						
		
				} else {
					$('#pc-results-list li').removeClass('pc-script-invisible');
					$('#pc-results-list li').removeClass('pc-zindexfix');
					$('#pc-quickfind-results-space').html('<p class="pc-quickfind-info">No matches found</p>');
					$('#pc-quickfind-genre').html('');
					$('#pc-quickfind-box').removeClass("pc-quickfind-loading");
					$('#pc-quickfind-box').addClass("pc-quickfind-waiting");
					$('#pc-keepnet-player-box embed').removeClass('pc-script-invisible');
					$('#pc-keepnet-player-box object').removeClass('pc-script-invisible');
				}

			}
		});
	
}

function hideSearch() {
	selected_result = 0;
	$('#pc-results-list li').removeClass('pc-script-invisible');
	$('#pc-results-list li').removeClass('pc-zindexfix');
	$('#pc-quickfind-results').addClass("pc-script-hidden");
	$('#pc-keepnet-player-box embed').removeClass('pc-script-invisible');
	$('#pc-keepnet-player-box object').removeClass('pc-script-invisible');
}

function swapEpisode(url,ep,play) {
	if ($('#pc-keepnet-player-box').length > 0) {
	var emp = new embeddedMedia.Player();  
   	emp.setDomId("pc-keepnet-player-box");   
   	emp.setWidth("376");  
   	emp.setHeight("106");  
   	emp.setPlaylist(url);
	emp.set("config_settings_autoPlay", play); 
	emp.set("config_settings_displayMode", 'audio'); 
   	emp.write();
	
		$("#pc-keepnet-player-episodes li").removeClass('episode-selected');
		$("#pc-emp-episode-" + ep).addClass('episode-selected');
	}
		return false;
	
}