showAdvanced = false;
link = null;
advancedSearch = null;

function search()
{
	search($(this));
}

function search(control)
{
	var searchParam = createSearchParameters(control.parent().parent().children("input.SearchField").val());
	showAdvanced = false;

	activateSearch(control, searchParam);
}


function startsWith(source, start)
{return (source.match("^"+start)==start)}

function activateSearch(control, searchParam)
{
	activateSearch(control, searchParam, null);
}

function activateSearch(control, searchParam,searchScope)
{
	url = control.parent().parent().children("input.url");

	if (url.length > 0){
		searchUrl = replaceQueryString(url.val(), 'k', searchParam);
	}
	else {
		searchUrl = replaceQueryString(jQuery.url.attr('path'), 'k', searchParam);
	}

	scope = control.parent().parent().children("input.scope");	
	if (scope.length>0){
		searchUrl = replaceQueryString(searchUrl , 's', scope.val());
	}

	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;		
}

$(document).ready(function() {
	// Add search button event handler
	$("input.SearchButton").click(function(){
		search($(this));
		return false;
	});

	$("a.SearchButton").click(function(){
		search($(this));
		return false;
	});


	// Load the search value from the query parameter
	$('.SearchInlineField').val(jQuery.url.param("k"));
	
	// 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:first');
			
			if ($tmpBtn.type == 'submit' || $tmpBtn.type == 'image' || $tmpBtn.type == 'button')
            {
                $tmpBtn.click();
            }
            else if ($tmpBtn.is('a'))
            {
            	$tmpBtn.click();
            }
            else
            {
                eval($tmpBtn.href);
			}

            return false;
        }
    });
});

/*Used in Advanced search*/
function HideOtherLanguageScopes(currentLanguage)
{
	$("label:contains('[[')").each(function(){
		if ($(this).html().indexOf('[[' + currentLanguage + ']]') < 0)
		{
			//Remove parent tr
			$(this).closest("tr").remove();
		}
		else
		{
			//Remove language tag:
			$(this).html($(this).html().replace('[[' + currentLanguage + ']]',''));
		}
	}); 
}
