var webSearch;	
google.load('search', '1', {'nooldnames': true, 'language': 'en-EN', 'nocss': true});
google.setOnLoadCallback(onPageLoad);
			
function onPageLoad() {
	webSearch = new google.search.WebSearch();
	webSearch.setSiteRestriction(siteName);
	webSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);					
	webSearch.setNoHtmlGeneration();
	webSearch.setSearchCompleteCallback(this, onWebSearchComplete);			
	$('.search-form')
		.submit(function() { 
			if ($('.search-form .form_input').val() != '') {
				onWebSearchStarting();
				webSearch.execute($('.search-form .form_input').val());
			}
			return false;
		})
		.submit(); 
}
		
function onWebSearchStarting() {
	$('.search-result .results').empty();
	$('.search-result .paging ul').empty();
	$('.search-result .query').text($('.search-form .form_input').val());
	$('.search-result').hide();
	$('.search-fail').hide();
	$('#search-page').hide();
	$('#content').hide();
	$('.search-loading').show();				
}
		
function onWebSearchComplete() {	
	$('.search-loading').hide();		
	$('#search-page').show();
	
	if (webSearch.results.length > 0) {													
		showSearchResults($('.search-result .results'));				
		
		if (webSearch.cursor.pages.length > 1) {
			showSearchPaging($('.search-result .paging ul'))			
			$('.search-result .paging').show();
		}
		else {
			$('.search-result .paging').hide();		
		}
		
		$('.search-result').show();
	}
	else {
		$('.search-fail').show();
	}
}

function showSearchResults(resultsContainer) {
	resultsContainer.attr('start', Number(webSearch.cursor.pages[webSearch.cursor.currentPageIndex].start) + 1);					
	$.each(webSearch.results, function(i, resItem) {			
		$('<li/>')
			.append( $('<a/>').html(resItem.titleNoFormatting).attr('href', resItem.unescapedUrl.replace('http://' + siteName, '')) )
			.append( $('<p/>').html(resItem.content) )
			.appendTo(resultsContainer);
	});
}

function showSearchPaging(pagingContainer) {
	if (webSearch.cursor.currentPageIndex > 0) {
		$('<li/>')
			.append ( $('<a/>').attr('href', '#').text('Back').data('pageNumber', webSearch.cursor.currentPageIndex - 1) )
			.appendTo(pagingContainer);
	}			

	$.each(webSearch.cursor.pages, function(pageIndex, pageItem) {			
		(webSearch.cursor.currentPageIndex == pageIndex 
			? $('<li/>').text(pageItem.label) 
			: $('<li/>').append( $('<a/>').attr('href', '#').text(pageItem.label).data('pageNumber', pageIndex) )
		).appendTo(pagingContainer);
	});

	if (webSearch.cursor.currentPageIndex < webSearch.cursor.pages.length - 1) {
		$('<li/>')
			.append ( $('<a/>').attr('href', '#').text('Next').data('pageNumber', webSearch.cursor.currentPageIndex + 1)	)
			.appendTo(pagingContainer);
	}
	
	pagingContainer.find('a').click(function() {
		var pageNum = $(this).data('pageNumber');
		onWebSearchStarting();
		webSearch.gotoPage(pageNum); 
		return false;
	});
}