showAdvanced = false;
link = null;
advancedSearch = null;

function search()
{
	var searchParam = createSearchParameters($("#SearchField").val());
	showAdvanced = false;
	activateSearch(searchParam);
}

function searchInline()
{
	var searchParam = createSearchParameters($("#searchInlineBox").val());
	var searchScope = $("#scope").val();
	activateSearch(searchParam, searchScope);
}

function startsWith(source, start)
{return (source.match("^"+start)==start)}

function activateSearch(searchParam)
{
	activateSearch(searchParam, null);
}

function activateSearch(searchParam,searchScope)
{
	var searchUrl;
	if (startsWith(jQuery.url.attr("directory").toLowerCase(), '/en/'))
	{
		searchUrl = replaceQueryString('/en/Pages/searchresults.aspx', 'k', searchParam);
		searchUrl = replaceQueryString(searchUrl, 's', 'English');
	}
	else
	{
		searchUrl = replaceQueryString('/nl/Pages/zoekresultaten.aspx', 'k', searchParam);
		searchUrl = replaceQueryString(searchUrl, 's', 'Dutch');
	}
	
	if (showAdvanced)
	{
		searchUrl = replaceQueryString(searchUrl, 'adv', '1');
		searchUrl = replaceQueryString(searchUrl, 's', searchScope);
	}
	
	location.href = searchUrl;
}


function createSearchParameters(source)
{
	// Filter all non-text
	var escaped = source.replace(new RegExp("[^A-z0-9 ]*","g"),"");
	// Encode all spaces
	return escaped.replace(new RegExp("[ ]+","g"),"%20");
}

function replaceQueryString(url,param,value) {
	var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
	if (url.match(re))
		return url.replace(re,'$1' + param + "=" + value + '$2');
	else if (url.indexOf("?") == -1)
        return url + '?' + param + "=" + value;
    else
        return url + '&' + param + "=" + value;		
}

function showhide(){
    link.removeClass(link.attr('class'));

    showAdvanced = !showAdvanced;
    if (showAdvanced) {
        link.addClass('morelink up');
        advancedSearch.show();
    }
    else {
        link.addClass('morelink down');
        advancedSearch.hide();
    }
}


$(document).ready(function() {
	// Add search button event handler
	$("#SearchButton").click(function(){
		search();
		return false;
	});
	
	if ($("#searchInlineButton").length > 0){
		// Set the search parameter as the current input for the search box
		$('#searchInlineBox').val(jQuery.url.param("k"));
		$('#scope').val(jQuery.url.param("s"));

		// Add search button event handler
		$("#searchInlineButton").click(function(){
			searchInline();
			return false;
		});
		
		    link = $('a[id=advanced_link]');
		    advancedSearch = $('div[id=AdvancedSeachHolder]');
		    showAdvanced = jQuery.url.param("adv") == '1' ? true : false;
		    if (showAdvanced) {
		        link.removeClass(link.attr('class'));
		
		        link.addClass('morelink up');
		        advancedSearch.show();
		    }

	}

	// Associate the enter with the right button
    var $btn = $('.formSubmit');
    var $form = $btn.parents('.formContainer');

    $form.keypress(function(e) {
        if (e.which == 13 && e.target.type != 'textarea') {
            var $tmpBtn = $(this).find('.formSubmit');
            if ($tmpBtn[0].type == 'submit' || $tmpBtn[0].type == 'image' || $tmpBtn[0].type == 'button')
                $tmpBtn[0].click();
            else
                eval($tmpBtn[0].href);
            return false;
        }
    });
});



/*******************************************/


