$(document).ready(function() {
	$("#search_button").hover(function() {
		$(this).attr("src","/img/icons/search_h.png");
	}, function() {
		$(this).attr("src","/img/icons/search.png");
	});
	$("#search_button").click(function() {
		var query = $("#q").val();
		$(location).attr('href','/?page=search&query='+encodeURIComponent(query));
	});
	$("#q").keydown(function(event) {
		if (event.keyCode == 13) {
			$("#search_button").trigger("click");
		}
	});
	
    if (page == "search") {
        if (window.query !== undefined) {
            var search_string = decodeURIComponent(query);
            search_string = search_string.replace("\\\"","\"");
            search_string = search_string.replace("\\\"","\"");
            $("#q").val(search_string);
        }
    } else {
	    var url_string = document.referrer;
	    var start = url_string.indexOf("search");
	    if (start != -1) {
		    start += 7 + 6;
		    var search_string = decodeURIComponent(url_string.substr(start));
            $("#q").val(search_string);
            
            var search_strings = resolveSearchStrings(search_string);
 
            // Highlights
            $.each(search_strings, function(ind,ele) {
                $("#content").highlight(ele, true);
            });
            
		    $("#search").append("<a id=\"remove_highlights\" href=\"#\">Remove Highlights</a>");
		    $("#remove_highlights").css({"position": "absolute", "left": "250px", "width": "200px"});
		    $("#remove_highlights").click(function() {
			    $(".backlight").each(function(ind,ele) {
				    $(ele).after($(ele).html()).remove();
			    });
			    $(this).remove();
		    });
	    }
    }
	
	$("#q").change(function() {
		updatePageHighlight();
	});
	$("#q").keyup(function(event) {
		updatePageHighlight();
	});
	
	function updatePageHighlight() {
		$("#remove_highlights").remove();
		$(".backlight").each(function(ind,ele) {
			$(ele).after($(ele).text()).remove();
		});
		var search_string = $("#q").val();
		if (search_string != "") {
			$("#content").highlight(search_string, true);
		}
	}
    
    function resolveSearchStrings(search) {
        var search_strings = new Array();
        
        if (search.indexOf("\"") != -1) {
            var tmp = search.substr(search.indexOf("\"") + 1);
            if (tmp.indexOf("\"") != -1) {
                search_strings.push(tmp.substr(tmp.indexOf("\"")));
                tmp = tmp.substr(tmp.indexOf("\"")+1);
                search_strings.concat(resolveSearchStrings(tmp));
            }
        }
        
        var s = search.replace("\".*\"","");
        s = s.split(" ");
        
        $.each(s, function(ind,ele) {
            search_strings.push(ele);
        });
        
        return search_strings;
    }
});
