$.expr[':'].external = function(obj){
    return !obj.href.match(/^mailto\:/)
            && (obj.hostname != location.hostname);
};

$(document).ready(function(){
	
	$("a#fancybox").fancybox({
		'titlePosition'  : 'inside'
	});
	$(".fancybox").fancybox({
		'titlePosition'  : 'inside'
	});
	$("a[rel=fancybox]").fancybox({
			'titleShow'		: false
	});
	
	
	$('a:external').click(function(){
		_gaq.push(['_trackEvent', 'Outgoing', 'Click', $(this).attr('href')]);
		
		if($(this).attr('href').match(/asonline\.sk/)){
			_gaq.push(['c._link', $(this).attr('href')]);
			return false;
		}
	}); // Google Analytics tracker for outgoing links
	
	$("a[rel*='banners']").click(function(){
		_gaq.push(['_trackEvent', 'Banners', 'Click', $(this).attr('title')]);
	}); // Google Analytics tracker for banners
	
	$("#street").attr("autocomplete","off");  // fix non xhtml compliant attribute autocomplete
	$("#address").attr("autocomplete","off"); // fix non xhtml compliant attribute autocomplete
	
	$("#q").focus(function(){
		if($(this).attr("value") == SEARCH_BOX) $(this).attr("value", "");
	});
	$("#cse-search-box").submit(function(){
		if($("#q").attr("value") == SEARCH_BOX) $("#q").attr("value", "");
	});
	$("#q").blur(function(){
		if($(this).attr("value") == "") $(this).attr("value", SEARCH_BOX);
	});
	
	initSubmitButtons();
	initAutocomplete();
	
});
function aclick(url) {
	_gaq.push(['_trackEvent', 'Outgoing', 'Click', url]);
	window.open(url,'window');
}
function initSubmitButtons()
{
	$("input.submit[@type=submit]").hide();
	
	$("a.submit")
		.click(function(){

			if (!$(this).hasClass('search_submit_button') || isCitySelected())
			{
				$(this).parents('form').submit();
			}

			return false;
		})
		.css('display', 'block');	
}

function isCitySelected()
{
	if ($("select[name=region]").val() == 'all' || $("select[name=county]").val() == 'all')
	{
		alert(ERROR_CITY_IS_NOT_SELECTED);

		return false;
	}
	else
	{
		return true;
	}
}

function updateAddressForm()
{
	$("select[name=county]").attr('disabled', true);
	$("select[name=city]").attr('disabled', true);

	$.getJSON(
		SEARCH_FORM_AJAX_SCRIPT,
		{
			language: LANGUAGE_TAG,
			action: 'updateAddressForm',
			region: $("select[name=region]").val(),
			county: $("select[name=county]").val()
		},
		function (data)
		{
			$("#countyHolder").html(data.county_control);
			$("#cityHolder").html(data.city_control);
		}
	);
}

function beginLoadingCheckboxGroup()
{
	if (arguments.length > 0)
	{
		var selector = '#' +  arguments[0];
	}
	else
	{
		var selector = '.checkboxgroup';
	}

	$(selector).addClass('checkboxgroup_loading');
	$(selector + " input[type=checkbox]").attr('disabled', true);
}

function endLoadingCheckboxGroup()
{
	if (arguments.length > 0)
	{
		var selector = '#' +  arguments[0];
	}
	else
	{
		var selector = '.checkboxgroup';
	}

	$(selector).removeClass('checkboxgroup_loading');
	
	if (arguments.length > 0)
	{
		activateCheckboxGroups(arguments[0]);
	}
	else
	{
		activateCheckboxGroups();
	}
}

function getCheckboxgroupVal(checkboxgroup_id)
{
	var result = new Array();
	
	$("#" + checkboxgroup_id + " input[type=checkbox]:checked").each(function() {
		result.push($(this).val());
	});

	return result.toString();
}

function activateCheckboxGroups()
{
	if (arguments.length > 0)
	{
		var selector = '#' +  arguments[0];
	}
	else
	{
		var selector = '.checkboxgroup';
	}

	$(selector + " .option").hover(
		function(){
			$(this).addClass('hover');
		},
		function(){
			$(this).removeClass('hover');
		});
}

function updateTicketTypeDependencies()
{
	beginLoadingCheckboxGroup();
	
	$.getJSON(
		SEARCH_FORM_AJAX_SCRIPT,
		{
			language: LANGUAGE_TAG,
			extended: IS_EXTENDED ? 'T' : 'F',
			action: 'updateTicketsTypesDependencies',
			ticket_type: $("select[name=ticket_type]").val(),
			departments_types: getCheckboxgroupVal('departmentTypeHolder'),
			services: getCheckboxgroupVal('servicesHolder'),
			department_enviroments: getCheckboxgroupVal('department_enviromentsHolder'),
			offer: getCheckboxgroupVal('offerHolder'),
			gastronomic_services: getCheckboxgroupVal('gastronomic_servicesHolder'),
			cuisines: getCheckboxgroupVal('cuisinesHolder'),
			submited: 'T'
		},
		function (data)
		{
			$("#departmentTypeHolder").html(data.departments_types_control);
			updateExtendedSearchForm(data.extended_controls);
			endLoadingCheckboxGroup();
		}
	);
}

function showExtendedSearchForm()
{
	for (var f = 0; f < 10; f++)
	addExtendedSearchFormRow({
		first: {
			header: 'Header 1',
			content: 'Hello world 1'
		},
		second: {
			header: 'Header 2',
			content: 'Hello world 2'
		}
	});
}

function addExtendedSearchFormRow(data)
{
	
	var row = $('.searchForm table tr:first').clone();
	
	row.addClass('extended');

	$('td.cc:first', row).html(data.first.header + ':');
	$('td.dd:first', row).html(data.first.content);

	var second_header = (data.second.header == '') ? '' : data.second.header + ':';
	
	$('td.cc:last', row).html(second_header);
	$('td.dd:last', row).html(data.second.content);
	
	$('.searchForm table').append(row);
}

function updateExtendedSearchForm(extended_controls)
{
	$('.searchForm table tr.extended').remove();

	if (IS_EXTENDED)
	{
		var last_row = $('.searchForm table tr:last').clone();
		$('.searchForm table tr:last').remove();
	
		for (var f = 0; f < extended_controls.count; f++)
		{
			addExtendedSearchFormRow(extended_controls.rows[f]);
		}
		
		$('.searchForm table').append(last_row);
		initSubmitButtons();
	}

	initExtendedSearchFormSwitcher();
}

function showExtendedSearchForm()
{
	IS_EXTENDED = true;
	updateTicketTypeDependencies();
	return false;
}

function hideExtendedSearchForm()
{
	IS_EXTENDED = false;
	updateTicketTypeDependencies();
	return false;
}

function initExtendedSearchFormSwitcher()
{
	if (IS_EXTENDED)
	{
		$("#showExtendedSearchForm").hide();
		$("#hideExtendedSearchForm").show();
	}
	else
	{
		$("#showExtendedSearchForm").show();
		$("#hideExtendedSearchForm").hide();
	}
}

function initAutocomplete()
{
	$('.auto-complete').autoComplete('select');
}