$(document).ready(function() {		
	// Restore search parameters
	var keyword = $('#keyword').text().substring(1, $('#keyword').text().length - 1);
	while (keyword.indexOf('+') != -1) {
		keyword = keyword.replace('+', ' ');
	}
	
	$('#site_search_keyword').val(keyword);
	
	$.fn.bindSearchTabNavigation();
	$.fn.bindSearchDefaultText();
});

$.fn.bindSearchDefaultText = function() {
	var searchBox = $('#pnlSearchResultsEmpty #search_keyword');
	searchBox.defaultText();
	
	$('#Search').submit(function() {
		if( $('#search_keyword').val().length <= 2) {
			$('body').sysmessage('Please enter 3 or more characters to perform a search', {type: 'error'});
			return false;
		}
	});
	
	$('#pnlSearchResultsEmpty #search_submit').click(function(e) {
		var defaultText = searchBox.metadata().defaultvalue;
		
		if (searchBox.val() == defaultText) {
			return false;
		}
		
		return true;
	});
};

$.fn.bindSearchTabNavigation = function() {
	$('#search_tab_navigation li a').click(function() {
		// Set active tab
		$('#search_tab_navigation li').removeClass('active');
		$(this).parent().addClass('active');
		
		// Update the search results summary
		$.fn.updateSearchResultsSummary($('#search_tab_navigation li.active a').attr('results'), 1, $(this).parent().attr('id'));
		
		return true;
	});
	
	$('#search_tab_navigation li a').ajaxLoadContent({
		container: '#ContentMain',
		content: '#ContentMain',
		callback: function() {
			var activeLi = $('#search_tab_navigation li.active');
			
			var tabName = activeLi.attr('id');
			if (tabName != 'all') {
				// hide the result type headings
				$('p.result_type').hide();
			} else {
				// show the result type headings since we're viewing all results
				$('p.result_type').show();
			}
			
			if ($('#ContentMain div.pagination').length > 0) {
				$.fn.bindSearchResultsPagination(tabName);
			} else {
				$('#ContentWell').css('margin-bottom', '0px');
				$('#pnlSearchResults').css('padding-bottom', '30px');
			}
			
			if ($('#pnlSearchResultsEmpty').length > 0) {
				$('#pnlSearchResults').css('display', 'none');
				
				$.fn.bindSearchDefaultText();
			}

			//check for missing params, which occurs in ie8 and ie7 and breaks the ad
			var $searchAds = $('#Aside_Main .ax_iab_ad object');
			if ($searchAds.find('param').html() === null) {
				var $swfImg = $searchAds.find('img'),
					swfPath = $searchAds.attr('data');
				$searchAds.parent().append('<object type="application/x-shockwave-flash" data="'+swfPath+'" width="'+$searchAds.attr('width')+'" height="'+$searchAds.attr('height')+'">' +
					'<param name="movie" value="'+swfPath+'" />' +
					'<param name="flashvars" value="clickTag=http://www262.americanexpress.com/business-credit-cards/business-card-details/american-express-gold-business-card/42644?revised=new" /> ' +
					'<param name="wmode" value="opaque" />' +
					'<img src="'+$swfImg.attr('src')+'" width="'+$swfImg.attr('width')+'" height="'+$swfImg.attr('height')+'" alt="advertisement" />' +
					'</object>');
				$searchAds.remove();
		}
		}
	});

	if ($('#ContentMain div.pagination').length > 0) {
		$.fn.bindSearchResultsPagination('all');
	} else {
		$('#ContentWell').css('margin-bottom', '0px');
		$('#pnlSearchResults').css('padding-bottom', '30px');
	}
};

$.fn.updateSearchResultsSummary = function(totalResults, currentPage, resultType) {
	
	if (resultType == 'all') { resultType = "total results"; }
	
	// Set the result range and total results
	if (totalResults > 0) {
		var top = (10 * currentPage) < totalResults ? (10 * currentPage) : totalResults;
		var bottom = (top - 9) < ((currentPage - 1) * 10) + 1 ? ((currentPage - 1) * 10) + 1 : (top - 9);
		$('div#search_results_summary span#current_results').text((bottom < 1 ? 1 : bottom) + '-' + top + ' of ');
	} else {
		$('div#search_results_summary span#current_results').text('');
	}
	if ($('li#all').hasClass('active')) {resultType = "total results"}
	if ($('li#businesses').hasClass('active')) {resultType = "businesses"}
	if ($('li#articles').hasClass('active')) {resultType = "articles"}
	if ($('li#videos').hasClass('active')) {resultType = "videos"}
	if ($('li#events').hasClass('active')) {resultType = "events"}
	if ($('li#discussions').hasClass('active')) {resultType = "discussions"}
	
	$('div#search_results_summary span#total_results').text(totalResults + ' ' + resultType);
}

$.fn.bindSearchResultsPagination = function(resultType) {

	// Set up the pagination links to ajax load
	$('div.pagination a').ajaxLoadContent({
		container: '#ContentMain',
		content: '#ContentMain',
		callback: function() {
			$.fn.bindSearchResultsPagination(resultType);
			scroll(0,0);
		}
	});
	
	$('#ContentWell').css('margin-bottom', '20px');
	
	// Update the search results summary
	var currentPage = $('div.pagination a.active').text();
	$.fn.updateSearchResultsSummary(parseInt($('div#search_results_summary span#total_results').text()), (currentPage == '' ? 1 : currentPage), resultType);
	/*
	// Change the next and previous button text
	$('div.pagination li:first a').html('<span><</span> Prev');
	$('div.pagination li:last a').html('Next <span>></span>');
	
	// Determine the size of the pagination ul so we can center it
	var numPages = $('div.pagination li').size();
	if (currentPage == '1' || currentPage == $('div.pagination ul li:last').prev().text()) {
		$('a.disabled').parent().css('display', 'none');
		numPages--;
	}
	
	var pageWidth = (currentPage > 9) ? (currentPage > 99 ? 29 : 24) : 20;
	var paginationWidth = 102 + ((numPages - 2) * pageWidth) + ((numPages + 1) * 10);  // next/prev: 51px, page: 19px, margin: 10px
	$('div.pagination ul').css('width', paginationWidth);
	
	var disabled = $('div.pagination a.next_prev_disabled');
	if (disabled != null) {
		disabled.after('<span class="next_prev_disabled">' + disabled.html() + '</span>');
		disabled.hide();
	}
	*/
	return false;
};


