var provider_arr_link = new Array(
		new Array('search_g.php', 
				'http://images.google.com/images?hl=en',
				'http://video.google.com/videosearch?hl=en',
				'http://news.google.com/news?hl=en'),
		new Array(
				'search_y.php',
				'http://images.search.yahoo.com/search/images;_ylt=A0WTefMcsCFJOlgAJjCLuLkF',
				'http://video.search.yahoo.com/search/video;_ylt=',
				'http://news.search.yahoo.com/search/news;_ylt='));

$oovoolink = "https://www.oovooinsiders.com/R.aspx?a=33&t=1";
			
$(document).ready(function() {
	// fix png transparency on "poweredby" image, for IE6
	$('img#poweredby').ifixpng();
	$("div#header").ifixpng();

	// register events for "make mystart.com your homepage"
	registerMakeHomepageEvents();
	
	// register events for search provider list	
	$("img#searchprovider").click(searchProvidersButtonClicked);
	$("ul#providersList li").hover(highlightProvider, unhighlightProvider);
	$("ul#providersList li").click(changeProvider);
	$(window).resize(placeProvidersList); // replace when window is resized
		
	// register events for search types
	$("p#searchTypeLinks a").click(changeSearchType);

	// select google by default
	initProviders();
	
	// select "web" search type by default
	$("#searchTypeLinks a#web").click();
		
	// submit the form only if text has been entered
	$("form#searchForm").submit(function() {
		var search = $("#boxhome").val();
		search = search.replace(/^\s+|\s+$/g,""); // remove non-alpha characters
		return search.length > 0;
	});
	
	$("#boxhome").autocomplete("getautocomplete.php", {
		width: 420,
		cacheLength: 0,
		selectFirst: false,
		scroll: false,
		max:10,
		formatItem : autoSuggestionFormatItem,
		highlight: function(value){return value;}
	});
	$("input#boxhome").result(function(event, data, formatted) {
 		$("#searchbutton").click();
	});
	
	
	// some components need to be closed when we click outside of it
	$("body").click(function(event) {
		hideProvidersList();
	});
	
	$("input#boxhome").focus();
	
	// if firefox, manage the drag of the "Restore my previous home page" link
	registerRestorePreviousHomePageEvents();
	
});

function showSurvey()
{
	window.open(oovoolink,'_blank', 'Survey', 'left=80,top=20,width=400,height=400,toolbar=0,resizable=1');
} 


function searchProvidersButtonClicked(event) {
	showProvidersList(event);
	
	return true;
}

function registerMakeHomepageEvents() {
	// look if link should be displayed based on cookie value
	if ($.cookie("hpset2ms") == 1) {
		$("a#makeHomepage").hide();
		return;
	}
	
	$("a#makeHomepage").click(makeHomepage);
	
	// events for "close" button of instructions panels
	$("div#makeHomepageInstructions a").click(function() { 
		$("div#makeHomepageInstructions").hide(); 
		return false; 
	});

	$("a#makeHomepage").show();
}

function makeHomepage() {
	var os = navigator.userAgent.toLowerCase();
	var isWindows = os.indexOf('win') >= 0;
	var isMac = os.indexOf('mac') >= 0;
	
	// if IE on Windows, add home page
	if (isWindows && $.browser.msie) {
		var el = $("a#makeHomepage").get(0);
		el.style.behavior = "url(#default#homepage)";
		el.setHomePage(document.URL);
		
		$.cookie('hpset2ms', 1, {expires: 1000, path: '/'});
		return false;
	} 

	// if Mac or Mozilla on Windows
	if ($.browser.mozilla || isMac) {
		// show instructions panel
		$("div#makeHomepageInstructions").show();
		
		$.cookie('hpset2ms', 1, {expires: 1000, path: '/'});
		return false;
	}

	return false;
}

function initProviders() {
	
	var provider = $.cookie("ckprovider");
	/*
	if (provider == null || provider == "") {
	$.get("/getgeocountry.php", function(data){
				
				var content = data.replace(/^\s+|\s+$/g,"");
				if (content == "ca") provider = "1";
				else provider = "0";
				
				$.cookie("ckprovider", provider); //cookie expire at the end of session
				
				provider = provider == "0" ? "google" : "yahoo";
				
				// select provider
				$("ul#providersList li#" + provider).click();
				
	});
	}
	*/
	provider = provider == "0" ? "google" : "yahoo";
	
	// select provider
	$("ul#providersList li#" + provider).click();
}

function showProvidersList(event) {
	placeProvidersList();
	
	$("ul#providersList").show();
	$('ul#providersList img').ifixpng();	
	
	if (event) event.stopPropagation();
}

function placeProvidersList() {
	var offset = $("img#searchprovider").offset();
	
	$("ul#providersList").css("top", offset.top + 31); 
	$("ul#providersList").css("left", offset.left);	
}

function hideProvidersList(event) {
	$("ul#providersList").hide();
	if (event) event.stopPropagation();
}

function highlightProvider() {
	$(this).addClass("hover");
}

function unhighlightProvider() {
	$(this).removeClass("hover");
}

function changeProvider() {
	var provider = $(this).attr("id");
	
	// save provider in a cookie
	var providerIndex = provider == "google" ? "0" : "1";
	//$.cookie("ckprovider", providerIndex); //set cookie until the end of session
	$.cookie("ckprovider", providerIndex, {expires: 15, path: '/'}); //set cookie for 15 days
	
	
	// reset all checked provider
	$("ul#providersList li").map(function(){
		var thisProvider = $(this).attr("id");
		
		$("img", this).attr("src", "/images/ico_" + thisProvider + "_nocheck.png");
	});

	// select current provider
	$("img", this).attr("src", "/images/ico_" + provider + "_check.png");

	// change the "powered by" image
	$("img#poweredby").attr("src", "images/powered_by_" + provider + ".png");
	$('img#poweredby').ifixpng(); // fix png transparency for IE6
	
	// change the provider icon
	$("img#searchprovider").attr("src", "/images/btn_" + provider + "_big.gif");
		
	// change the form action, provider hidden input AND btnSH
	if (provider == "google") {		
		$("input[name='provider']").val("0");
		$("form#searchForm").attr("action", "search_g.php");
		$("input[name='btnSH']").val("Gsearch");
	} else {
		$("input[name='provider']").val("1");
		$("form#searchForm").attr("action", "search_y.php");
		$("input[name='btnSH']").val("Ysearch");
	}
	
	// reset search type to "web"
	$("p#searchTypeLinks a#web").click();
	
	// hide provider selector
	hideProvidersList();
}

function changeSearchType() {	
	// reset selected type
	$("p#searchTypeLinks a.selected").removeClass("selected");
	$(this).addClass("selected");
	
	// find and set the searchTypeId
	var index = 0;
	if ($(this).attr("id") == "web") index = 0;
	else if ($(this).attr("id") == "images") index = 1;
	else if ($(this).attr("id") == "video") index = 2;	
	else if ($(this).attr("id") == "news") index = 3;
	
	$("input[name='searchTypeId']").val(index);
	
	// change form url
	var provider = $("input[name='provider']").val();	
	var url = provider_arr_link[provider][index];
	$("form#searchForm").attr("action", url);

	// "Images" should not have the "cx" parameter
	if (index == 1) {
		$("input#cx").attr("name", "cxinvalid");
	} else {
		$("input#cx").attr("name", "cx");
	}
	
	// we don't want to reload the page ...
	return false;
}

function autoSuggestionFormatItem(data, index, max, value, term) {
	// if the first item, add the "Suggestions" text
	if (index == 1) {
		value = '<span style="float:left">'+value+'</span><span style="float:right;font-size:10px;color:#9F9F85">Suggestions</span>';
	}

	return value;
}

function registerRestorePreviousHomePageEvents() {
	// perform this only for firefox
	if (! $.browser.mozilla) return;
	
	// notify google analytics that the user will restore his homepage
	$("a#draggable").one("click", function() {
		var url = document.location.href;
		url += url.indexOf("?") == -1 ? "?" : "&";
		url += "action=restore";

		var pageTracker = _gat._getTracker("UA-6274369-1");	
		pageTracker._trackPageview(url);
	});
}