render_search = function(json){
	$("#search_json").remove();
	
	//top level containers
	var buffer = '<div id="close">close</div><div id="handle" style="position: relative; height: 36px; cursor: move;"><h5>Search Results</h5></div><div id="content">';
	
	//get count
	var count = 0;
	switch (json['mode']) {
		case 'single':
			count = json['count_single'];
			break;
		case 'global':
			count = json['count_global'];
			break;
	}
	
	//remove quotes from search query
	json['terms'].replace('"','', 'g');
	//myFwerPlayer.setHighlightWord(json['terms']);
	
	
	//add header
	buffer += '<div id="main_header"><div class="inner">'; 
	if (json['mode'] == 'single') {
		if (count > 0) {
			buffer += '<span class="search_heading">&ldquo;' + json['terms'] + '&rdquo; appears in </span><span class="search_count">' + count + '</span><span class="search_heading"> places in this video.</span>';
		} else {
			buffer += '<span class="search_heading">' + json['notice'] + '</span>';
		}
		if (json['count_global'] > 0) {
			buffer += '<div id="search_toggle" style="cursor: pointer">Search All Videos</div>';
		}
	} else {
		if (count > 0) {
			var mention_single = '';
			if(json['count_single'] > 0) {
				mention_single = '<span class="search_count">' + json['count_single'] + '</span><span class="search_heading"> places in this video and</span> ';
			}
			buffer += '<span class="search_heading">&ldquo;' + json['terms'] + '&rdquo; appears in </span>' + mention_single + '<span class="search_count">' + count + '</span><span class="search_heading"> places in ' + (json['count_presentation'] - 1) + ' other videos.</span>';
		} else {
			buffer += '<span class="search_heading">' + json['notice'] + '</span>';
		}
		if (json['count_single'] > 0) {
			buffer += '<div id="search_toggle" style="cursor: pointer">Search Only This Video</div>';
		}
	}
	if (json['correction'] && count < 1) {
		if (json['correction'].length > 0) {
			buffer += '<br /><span class="search_heading">Did you mean: <a href="#" id="correction">' +  json['correction'] + '</a></span>';
		}
	}
	if (json['back']) {
		if (json['back']['landing_page']) {
			if (json['back']['landing_page'].length > 0) {
				buffer += '<br /><span class="search_heading"><a href="' +  json['back']['landing_page'] + '">Back to: ' + json['back']['title'] + '</a></span>';
			}
		}
	}
	if (count > 0 && json['mode'] == 'single') {
		buffer += '<br /><br /><div id="search_sort_container"><div id="relevance_radio"></div><span id="relevance_label">Relevance</span><div id="time_radio"></div><span id="time_label">Time</span></div>';
	}
	buffer += '</div></div>';
	
	//loop through rows
	var row = {};
	var last_presentation_id = '';
	var link = '';
	var presentation_count = 0;
	var toggle_class = '';
	var toggle_style = '';
	for (var i = 0; i < json['rows'].length; i++) {
		row = json['rows'][i];
		if (json['mode'] == 'single') {
			link = row['seconds'];
			if (row['presentation_id'] != json['presentation_id']) {
				continue;
			}
		} else {
			link = row['landing_page'];
/*			if (row['presentation_id'] == json['presentation_id']) {
				continue;
			}
*/
		}
		if (json['mode'] == 'global') {
			if (row['presentation_id'] != last_presentation_id) {
				if (presentation_count > 3) {
					buffer += '<div class="hidden_row_container"><div class="l-float"><a class="hidden_row" alt="' + last_presentation_id + '">Show more results from this video</a></div></div>';
				}
				presentation_count = 0;
				page_link = row['landing_page'].split('?');
				buffer += '<div id="sub_header"><div class="inner"><a href="' + page_link[0] + '">' + json['presentations'][row['presentation_id']] + '</a></div></div>';
			}
			presentation_count++;
			if (presentation_count > 3) {
				toggle_class = ' hidden_row_' + last_presentation_id;
				toggle_style = ' style="display: none" ';
			} else {
				toggle_class = '';
				toggle_style = '';
			}
			last_presentation_id = row['presentation_id'];
		}
		buffer += '<div id="row" class="' + toggle_class + '" ' + toggle_style + '>';
		buffer += '<div id="picture"><img alt="' + link + '" class="autojump" src="' + row["thumbnail"] + '" /></div>';
		buffer += '<div id="data">';
		buffer += '<div id="text">' + row['blob_text'] + '</div>';
		buffer += '<div id="link"><a alt="' + link + '" class="autojump">Jump To</a></div>';
		buffer += '<div id="timecode">' + row['seconds_display'] + '</div>';
		buffer += '</div>';
		buffer += '</div>';
	}
	if (presentation_count > 3) {
		buffer += '<div class="hidden_row_container"><div class="l-float"><a class="hidden_row" alt="' + last_presentation_id + '">Show more results from this video</a></div></div>';
	}
	
	//footer
	buffer += '</div>';
	
	//add search div to page
	$("body").prepend('<div id="search_json" class="draggable"></div>');
	
	//position the div
	var result_anchor = $("#result_anchor").val();
	var offset = $("#" + result_anchor).offset();
	$("#search_json")
		.css({	top: (offset['top'] + 'px'),
				left: (offset['left'] + 'px')})
	//add the html	
		.html(buffer);

	//add drag behavior
	$("#search_json").draggable({
		handle: '#handle'});
	
	//add behavior to remove the div
	$("#search_json #close").click(function (e) {
		$("#search_json").remove();
	});	

	//scroll to the top of the page
	$.scrollTo('#title', 1200);
	
	//add jumpto functionality to links
	$(".autojump")
		.click(function (e) {
			var altval = $(this).attr("alt");
			if (altval.length < 20) {
				try {
					Framewelder_flash_player_v2_remoting.setTimeCode("flash_player", altval);
				} catch (err) {}
			} else {
				var seconds = Framewelder_flash_player_v2_remoting.getTimeCode("flash_player"); 
				window.location = altval + '&from_presentation_offset=' + seconds;
			}
		})
		.css({
			cursor: 'pointer'
		});
		
	//add switching functionality
	$("#search_toggle")
		.click(function (e) {
			var mode = '';
			if (json['mode'] == 'single') {
				mode = 'global';
			} else {
				mode = 'single';
			}
			$.ajax({
				type: "GET",
				url: "/ajax/search_json/index.php",
				data: {mode: mode, search: json['terms'], presentation_id: json['presentation_id'], minisite_id: json['minisite_id']},
				dataType: "json",
				success: function(json) {
					render_search(json);
				},
				error: function() {
					alert('error');
				}
			});
		});
		
	$(".hidden_row")
		.click(function (e) {
			var hide_presentation_id = $(this).attr("alt");
			var hide_class = 'hidden_row_' + hide_presentation_id;
			$("." + hide_class).css({
				display: 'block'
			});
			$(this).parent()
				.css({
					display: 'none'
				});
		});
		
		$("#correction").click(
		function() {
			$("#search_input").val($(this).html());
			$("#search_form").submit();
		}
	);
	
	if($("#sort_by").val() == "relevancy") {
		$("#relevance_radio").addClass("radio_on");
	} else if($("#sort_by").val() == "time") {
		$("#time_radio").addClass("radio_on");
	}
	
	$("#relevance_radio").click (
		function() {
			if($("#sort_by").val() == "time") {
				$("#sort_by").val("relevancy");
				$("#search_form").submit();
			}	
		}
	);
	
	$("#time_radio").click (
		function() {
			if($("#sort_by").val() == "relevancy") {
				$("#sort_by").val("time");
				$("#search_form").submit();
			}	
		}
	);
};
