$(document).ready(function() {

    function cleanse(dirty) {
        clean = dirty.replace(/(\s*(-|\|)\s*)?provu( communications)?/gi, '');
        clean = clean.replace(/^(\s*(-|\|)\s*)/g, '');
        return clean;
    }

    const SEARCH_TEXT = 'Search site...';

    $searchBar = $('#searchbar').autocomplete({
                        position: {
                                my: "right top",
                                at: "right bottom",
                                collision: "none"
                        },
			source: function(request, response) {
				$.ajax({
					url: "http://ajax.googleapis.com/ajax/services/search/web",
					dataType: "jsonp",
					data: {
						'q': 'site:provu.co.uk -"Index of" filetype:pdf OR filetype:html ' + request.term,
						'v': '1.0',
						'key': 'ABQIAAAAP5u9NDy0Buk3Ppo0_MiLLhSlq1m_NpsDfsAbqiS1idqb1k1eNxQv31WT8CtAgC7vn_ZJdHOxLTRbbQ'
					},
					success: function(data) {
						response($.map(data.responseData.results, function(item) {
							switch (item.GsearchResultClass) {
								case 'GwebSearch':
									return {
										label: (item.unescapedUrl.match(/\.pdf$/) ? '<img style="margin-right:10px;" alt="PDF" src="'+($('#searchbar').data('baseurl') || '')+'images/page_layout/pdf.jpg"/>' : '') +
											   cleanse(item.title),
										value: cleanse(item.titleNoFormatting),
										href:  item.unescapedUrl
									}
								break;
							} // switch
						}))
					}
				})
			},
			delay: 250,
			minLength: 3,
			select: function(event, ui) {
				location.href = ui.item.href;
				event.preventDefault();
			},
			open: function() {
				$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
			},
			close: function() {
				$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
			},
			html: true
		})
		.val(SEARCH_TEXT)
		.bind('blur focus change', function(event) {

			if ($(this).val() == '' && event.type == 'blur') {
				$(this).val(SEARCH_TEXT);
			} else if ($(this).val() == SEARCH_TEXT) {
				$(this).val('');
			}

			return false;
		})
		.parent().parent()
		.submit(function(event) {
			 event.preventDefault();

			 box = $('input:first', this);
			 box.autocomplete('close');

			 $.fancybox({
				 'type': 'iframe',
				 'href': ($('#searchbar').data('baseurl') || '') + 'forms/search.html#' + box.val(),
				 'autoScale': true,
				 'centerOnScroll': true,
				 'width': 660,
				 'height': '90%',
				 'onCleanup': function() {
					 box.val(SEARCH_TEXT);
				 }
			 });

		 });

});
