var languages = new Array();
languages['qq'] = 'Any Language';
languages['bg'] = 'Bulgarian';
languages['ca'] = 'Catalan';
languages['hr'] = 'Croatian';
languages['cs'] = 'Czech';
languages['da'] = 'Danish';
languages['nl'] = 'Dutch';
languages['en'] = 'English';
languages['fi'] = 'Finnish';
languages['fr'] = 'French';
languages['de'] = 'German';
languages['el'] = 'Greek';
languages['hu'] = 'Hungarian';
languages['is'] = 'Icelandic';
languages['it'] = 'Italian';
languages['lv'] = 'Latvian';
languages['lt'] = 'Lithuanian';
languages['no'] = 'Norwegian';
languages['pl'] = 'Polish';
languages['pt'] = 'Portuguese';
languages['ro'] = 'Romanian';
languages['ru'] = 'Russian';
languages['sr'] = 'Serbian';
languages['sk'] = 'Slovak';
languages['es'] = 'Spanish';
languages['sv'] = 'Swedish';
languages['tr'] = 'Turkish';
languages['ar'] = 'Arabic';

var dates = new Array();
//dates['l3m'] = 'Last 3 Months';
dates['l2m'] = 'Last 2 Months';
dates['l1m'] = 'Last Month';
dates['l1w'] = 'Last Week';

var month_names = new Array();
month_names[month_names.length] = "January";
month_names[month_names.length] = "February";
month_names[month_names.length] = "March";
month_names[month_names.length] = "April";
month_names[month_names.length] = "May";
month_names[month_names.length] = "June";
month_names[month_names.length] = "July";
month_names[month_names.length] = "August";
month_names[month_names.length] = "September";
month_names[month_names.length] = "October";
month_names[month_names.length] = "November";
month_names[month_names.length] = "December";

var month_codes = new Array();
month_codes[month_codes.length] = "mc00";
month_codes[month_codes.length] = "mc01";
month_codes[month_codes.length] = "mc02";
month_codes[month_codes.length] = "mc03";
month_codes[month_codes.length] = "mc04";
month_codes[month_codes.length] = "mc05";
month_codes[month_codes.length] = "mc06";
month_codes[month_codes.length] = "mc07";
month_codes[month_codes.length] = "mc08";
month_codes[month_codes.length] = "mc09";
month_codes[month_codes.length] = "mc10";
month_codes[month_codes.length] = "mc11";

function trimAll(sString)
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function clean(sString)
{
	return trimAll(sString.replace("'", " "));
}

function submitLanguage()
{
	var languages_select = document.getElementById('language');
	var dates_select = document.getElementById('date');

	var language = languages_select.options[languages_select.selectedIndex].value;
	var country = document.forms['search'].country.value;
	var scope = document.forms['search'].scope.value;
	var origin = document.forms['search'].orig.value;
	var date = 'l3m';
	var search_type = "adv";
	var new_search_type = "type=" + search_type;

	if(dates_select != null)
	{
		date = dates_select.options[dates_select.selectedIndex].value;
		search_type = "adv";
		new_search_type = "type=" + search_type;
	}

	if(language != 'xx')
	{
		var new_language = "language=" + language;
		var new_country = "country=" + 'xx';
		var new_scope = "scope=" + scope;
		var new_origin = "orig=" + origin;
		var new_date = "d=" + date;

		var bFoundNewTerms = false;

		var new_search = "?" + new_search_type + "&" + new_language + "&" + new_country + '&' + new_scope + '&' + new_origin + '&' + new_date;
		for(c=0; c < 3; c++)
		{
			var label = eval("document.forms['search'].label_" + c + ".value");
			var query = eval("document.forms['search'].query_" + c + ".value");

			var queryTerm = clean(query);
			var labelTerm = clean(label);

			if(queryTerm != '' && labelTerm != '')
			{
				new_search += "&series_" + c + "=" + queryTerm;
				new_search += "&label_" + c + "=" + labelTerm;
				bFoundNewTerms = true;
			}
			else if(queryTerm != '' && labelTerm == '')
			{
				new_search += "&series_" + c + "=" + queryTerm;
				new_search += "&label_" + c + "=" + queryTerm;
				bFoundNewTerms = true;
			}
			else if(queryTerm == '' && labelTerm != '')
			{
				new_search += "&series_" + c + "=" + labelTerm;
				new_search += "&label_" + c + "=" + labelTerm;
				bFoundNewTerms = true;
			}
		}

		var new_location = "";

		if(bFoundNewTerms)
		{
			var new_hash = "#" + new_language + "|" + new_country + '|' + new_scope + '|' + new_origin + '|' + new_date;

			var series_cnt=0;

			for(c=0; c < 3; c++)
			{
				var label = eval("document.forms['search'].label_" + c + ".value");
				var query = eval("document.forms['search'].query_" + c + ".value");

				var queryTerm = clean(query);
				var labelTerm = clean(label);

				if(queryTerm != '' && labelTerm != '')
				{
					new_hash += "|series_" + series_cnt + "=" + queryTerm;
					new_hash += "|label_" + series_cnt + "=" + labelTerm;
					series_cnt++;
				}
				else if(queryTerm != '' && labelTerm == '')
				{
					new_hash += "|series_" + series_cnt + "=" + queryTerm;
					new_hash += "|label_" + series_cnt + "=" + queryTerm;
					series_cnt++;
				}
				else if(queryTerm == '' && labelTerm != '')
				{
					new_hash += "|series_" + series_cnt + "=" + labelTerm;
					new_hash += "|label_" + series_cnt + "=" + labelTerm;
					series_cnt++;
				}
			}

			new_location = 'http://' +
								window.location.hostname +
								window.location.pathname +
								new_search +
								new_hash;
		}
		else
		{
			var tmp_search = window.location.search.replace(/language=[a-z][a-z]/i, new_language);
			tmp_search = tmp_search.replace(/d=[a-z0-9]+/i, new_date);
			var tmp_hash = window.location.hash.replace(/language=[a-z][a-z]/i, new_language);
			tmp_hash = tmp_hash.replace(/d=[a-z0-9]+/i, new_date);
			new_location = 'http://' +
								window.location.hostname +
								window.location.pathname +
								tmp_search +
								tmp_hash;
		}

		window.location = new_location;
	}
}

function updateLanguages()
{
	var languages_select = document.getElementById('language');

	selected_country_code = '';

	if(languages_select.selectedIndex == -1)
	{
		selected_lang_code = getSelectedLanguage();

		if(selected_lang_code == '')
		{
			selected_lang_code = 'en';
		}
		else
		{
			selected_country_code = getSelectedCountry();
		}
	}
	else
	{
		selected_lang_code = languages_select.options[languages_select.selectedIndex].value;
	}

	languages_select_len = languages_select.length;
	for(i=0; i < languages_select_len; i++)
	{
		languages_select.remove(0);
	}

	for(var lang_code in languages)
	{
		var language_option = document.createElement('option');
		language_option.text = languages[lang_code];
		language_option.value = lang_code;

		try
		{
			languages_select.add(language_option, null);
		}
		catch(ex)
		{
			languages_select.add(language_option);
		}

		if(lang_code == selected_lang_code)
		{
			language_option.selected = true;
		}
	}

	return true;
}

function getMonthOption(offset, selected_date_code)
{
	var curMonth = new Date().getMonth();

	var monthsAgo = curMonth - offset;
	if(monthsAgo < 0)
	{
		monthsAgo = (12 - offset) + curMonth;
	}

	var monthsAgoOption = document.createElement('option');
	monthsAgoOption.text = month_names[monthsAgo];
	monthsAgoOption.value = month_codes[monthsAgo];

	if(month_codes[monthsAgo] == selected_date_code)
	{
		monthsAgoOption.selected = true;
	}

	return monthsAgoOption;
}

function updateDates()
{
	var dates_select = document.getElementById('date');

	if(dates_select.selectedIndex == -1)
	{
		selected_date_code = getSelectedDate();

		if(selected_date_code == '')
		{
			selected_date_code = 'l3m';
		}
	}
	else
	{
		selected_date_code = dates_select.options[dates_select.selectedIndex].value;
	}

	dates_select_len = dates_select.length;
	for(i=0; i < dates_select_len; i++)
	{
		dates_select.remove(0);
	}

	for(var date_code in dates)
	{
		var date_option = document.createElement('option');
		date_option.text = dates[date_code];
		date_option.value = date_code;

		try
		{
			dates_select.add(date_option, null);
		}
		catch(ex)
		{
			dates_select.add(date_option);
		}

		if(date_code == selected_date_code)
		{
			date_option.selected = true;
		}
	}

	for(var offset=2; offset >= 1; offset--)
	{
		var monthOption = getMonthOption(offset, selected_date_code);
		try
		{
			dates_select.add(monthOption, null);
		}
		catch(ex)
		{
			dates_select.add(monthOption);
		}
	}

	return true;
}


