function cookieSet(index) {
	$.cookie('submenuMark', index, {expires: null, path: '/'}); // Set mark to cookie (submenu is shown):
}
function cookieDel(index) {
	$.cookie('submenuMark', null, {expires: null, path: '/'}); // Delete mark from cookie (submenu is hidden):
}

function cookaSet(i) {
	$.cookie('filter_'+i, 1, {expires: null, path: '/'});
}
function cookaDel(i) {
	$.cookie('filter_'+i, null, {expires: null, path: '/'});
}
function cookaSetPlace(i) {
	var k = value = '';
	if($.cookie('filter_place')) {
		k = '%';
		value = $.cookie('filter_place');
	}
	$.cookie('filter_place', value+k+i, {expires: null, path: '/'});
}
function cookaDelPlace(i) {
	if($.cookie('filter_place'))
	{
		var place = $.cookie('filter_place').split('%');
		var place_id = $.inArray(i, place);

		if(place_id > -1) {
			place = $.grep(place, function(n, i) {
				return (n && i != place_id);
			});
			var res = place.join('%');
			$.cookie('filter_place', res, {expires: null, path: '/'});
		}
	} else
		$.cookie('filter_place', null, {expires: null, path: '/'});
}




function selectCity() {
	var el = $(this);
	var lang = $('#site_id').val();

	var msg_selCity = lang == 's1' ? 'Выберете город' : 'Select a city';
	var msg_noselMetro = lang == 's1' ? 'метро не выбрано' : 'metro not selected';
	var msg_noselPlace = lang == 's1' ? 'район не выбран' : 'region not selected';

	if(!el.hasClass('selected')) {
		$('.js-city').removeClass('selected');
		el.addClass('selected');

		// убираем параметры от прошлых фильтров
		$('#js-def_regions, #js-def_metro').empty().append('<li>'+msg_selCity+'</li>');
		$('#req-metro').val('');
		$('#req-place').val('');
		$('#js-spb_metro').empty().append('<li>'+msg_noselMetro+'</li>');
		$('#js-spb_regions').empty().append('<li>'+msg_noselPlace+'</li>');
		cookaDel('metro');
		cookaDel('place');

		if(el.attr('name'))
		{
			$('#js-list_regions').slideUp(300);
			$('#filter-city').val(el.attr('name'));
			//$('#req-city').val($('#hidden_fields #c'+el.attr('name')).html());
			$('#req-city').val('');

			if(el.hasClass('js-multifilter')) {
				$('.js-multiFilter_block').slideDown(300);
				$('#js-spb_metro, #js-spb_regions').show();
				$('#js-def_metro, #js-def_regions, .defFilter_label, .spbFilter_selected').hide();
			} else {
				$('.js-multiFilter_block').slideUp(300);
				$('#js-def_metro, #js-def_regions, .defFilter_label').show();
				$('#js-spb_metro, #js-spb_regions').hide();
			}

			loadRegions('#js-def_regions', el.attr('name'), lang);
			loadMetro('#js-def_metro', el.attr('name'), lang);
		}
		else
		{
			$('.js-multiFilter_block').slideUp(300);
			$('#js-def_metro, #js-def_regions, .defFilter_label').show();
			$('#js-spb_metro, #js-spb_regions').hide();

			$('#list_regions option:first').attr({'selected':'selected'});
			$('#filter-city').val('');
			$('#req-city').val('');

			$('#js-list_regions').slideDown(300);
		}
	}
}


function changeListReg() {
	var lang = $('#site_id').val();
	if($('#list_regions :selected').val() != 'def')
	{
		var city_id = $('#list_regions :selected').attr('id');
		var reg_id = $('#list_regions :selected').val();

		$('#filter-city').val(city_id);
		$('#req-city').val(reg_id);

		loadRegions('#js-def_regions', city_id, lang);
		loadMetro('#js-def_metro', city_id, lang);
	}
	else
	{
		$('#filter-city').val('');
		$('#req-city').val('');
	}
}


function loadRegions(tag, city, lang) {
	$.post('/ssi/ajax.php', {'m':'loadRegions', city:city, site_id:lang},function(d){
		if(d) {
			$(tag).empty().append(d);
		}
	});
}


function loadMetro(tag, metro, lang) {
	$.post('/ssi/ajax.php', {'m':'loadMetro', metro:metro, site_id:lang},function(d){
		if(d)
			$(tag).empty().append(d);
		else
			$(tag).empty().append('<option class="def">'+($('#site_id').val() == 's1' ? 'В этом городе нет метро' : 'In this city there is no underground')+'</div>');
	});
}


$(document).ready(function(){
	$('span.js-city').click(selectCity);

	$('.foto_res').each(function(){
		$(this).click(function() {
			var big_src = $(this).attr('rel');
			var small_src = $(this).attr('href');
			var title_src = $(this).attr('title');
			$("#cont_client").find("a").attr({'href': big_src});
			$("#cont_client").find("img").attr({'title': title_src});
			$("#cont_client").find("img").attr({'alt': title_src});
			$("#cont_client").find("img").attr({'src': small_src});
			return false;
		});

	});
	if($("#present")){
		$("#present").hover(
			function(){
				 $(this).addClass("on_p");
				 $(this).removeClass("out_p");
			},
			function(){
				 $(this).addClass("out_p");
				 $(this).removeClass("on_p");
			}
		);
	}
	if($("#cont_use")){
		$("#cont_use").hover(
			function(){
				 $(this).addClass("on_c");
				 $(this).removeClass("out_c");
			},
			function(){
				 $(this).addClass("out_c");
				 $(this).removeClass("on_c");
			}
		);
	}
	$('.js-toggle').click(function(){
		$(this).toggleClass('toggle_text_show');
		$(this).next('.js-hidden_text').slideToggle(300);
	});

	$('a.zoom').fancybox({
		'padding'		: 20,
		'titleShow'		: false,
		'width'			: 790,
		'height'		: 630,
		'autoScale' 	: false,
		'autoDimensions': false,
		'onComplete'	: fancyMetro

	});
	$('a.zoom1').fancybox({
		'padding'		: 10,
		'titleShow'		: false,
		'width'			: 710,
		'height'		: 600,
		'autoScale' 	: false,
		'autoDimensions': false,
		'hideOnOverlayClick': false,
		'onComplete' : fancyPlaceRun
	});
        $('a.zoom3').fancybox();
});


function metroSelect(el) {
	var el = $(el);
	var metro = $('#req-metro').val().split('%');
	var defMetro = globMetro.split('%');
	if(el.hasClass('sel'))
	{
		$('#metro_selected #js-list'+el.attr('name')).remove();
		if($('#metro_selected li').length < 3) {
			$('#metro_selected li').eq(0).hide();
			$('#metro_selected li').eq(1).show();
		}

		metro_id = $.inArray(el.attr('name'), metro);

		if(metro_id > -1) {
			metro = $.grep(metro, function(n, i) {
				return (n && i != metro_id);
			});
			$('#req-metro').val(metro.join('%'));
		}
		el.removeClass('sel');

		$('#js-def_metro li input[value='+el.attr('name')+']').removeAttr('checked');
		linkMetroToPlace('off', $('#js-def_metro li #m'+el.attr('name')).attr('label'));
	}
	else
	{
		var selected = $('#req-metro').val();
		var k = selected ? '%' : '';
		if($('#metro_selected li').length < 3) {

			$('#metro_selected li').eq(0).show();
			$('#metro_selected li').eq(1).hide();
		}

		$('#metro_selected').append('<li id="js-list'+el.attr('name')+'">'+el.html()+'</li>');
		$('#req-metro').val(selected+k+el.attr('name'));
		el.addClass('sel');

		$('#js-def_metro li input[value='+el.attr('name')+']').attr({checked:'checked'});
		linkMetroToPlace('on', $('#js-def_metro li #m'+el.attr('name')).attr('label'));
	}
	var aNotInB = $.disjoin($('#req-metro').val().split('%'), defMetro);
	//console.log($.cookie('filter_place'));
	if(aNotInB.length > 0 || $.cookie('filter_metro')) cookaSet('metro');
	else cookaDel('metro');
}


function changePlaceFilter(el, id_filter, id_el) {
	var el = $(el);
	var arValue = $(id_filter).val().split('%');
	var selected = $(id_filter).val();
	var k = selected ? '%' : '';
	var check_id = $.inArray(el.val(), arValue);

	var arMetro = el.attr('label').split('%');
	var metro_list = $('#req-metro').val().split('%');

	if(check_id > -1)
	{
		arValue = $.grep(arValue, function(n, i) {
			return (n && i != check_id);
		});
		$(id_filter).val(arValue.join('%'));

		if(el.attr('label').length > 0)
			linkPlaceToMetro('off', el.attr('label'));
	}
	else
	{
		$(id_filter).val(selected+k+el.val());

		if(el.attr('label').length > 0)
			linkPlaceToMetro('on', el.attr('label'));
	}
}


function changeMetroFilter(el, id_filter, id_el) {
	var el = $(el);
	var arValue = $(id_filter).val().split('%');
	var selected = $(id_filter).val();
	var k = selected ? '%' : '';
	var check_id = $.inArray(el.val(), arValue);

	if(check_id > -1)
	{
		arValue = $.grep(arValue, function(n, i) {
			return (n && i != check_id);
		});
		$(id_filter).val(arValue.join('%'));

		linkMetroToPlace('off', el.attr('label'));
	}
	else
	{
		$(id_filter).val(selected+k+el.val());

		if(el.attr('label').length > 0)
			linkMetroToPlace('on', el.attr('label'));
	}
}


function linkPlaceToMetro(step, place_id) {
	var arMetro = place_id.split('%');
	var metro_list = $('#req-metro').val().split('%');

	if(step == 'on')
	{
		arMetro = $.grep(arMetro, function(n, i) {
			var y = $.inArray(n, metro_list);
			if(y == -1) $('#js-def_metro li input[value='+n+']').attr({checked:'checked'});
			return (y == -1);
		});
		var metro_selected = $('#req-metro').val();
		var metro_k = metro_selected ? '%' : '';

		$('#req-metro').val(metro_selected+metro_k+arMetro.join('%'));
	}
	else if(step == 'off')
	{
		arMetro = $.grep(metro_list, function(n, i) {
			var y = $.inArray(n, arMetro);
			if(y != -1) $('#js-def_metro li input[value='+n+']').removeAttr('checked');
			return (y == -1);
		});
		$('#req-metro').val(arMetro.join('%'));
	}
}



function linkMetroToPlace(step, place_id) {
	var place_list = $('#req-city').val().split('%');

	if(step == 'on')
	{
		var y = $.inArray(place_id, place_list);
		if(y == -1) {
			var metro_selected = $('#req-city').val();
			var metro_k = metro_selected ? '%' : '';

			$('#req-city').val(metro_selected+metro_k+place_id);
			$('#js-def_regions li #p'+place_id).attr('checked','checked');
		}
	}
	else if(step == 'off')
	{
		if($('#js-def_metro li input[label='+place_id+']:checked').length == 0)
		{
			place_list = $.grep(place_list, function(n, i) {
				return (n != place_id);
			});
			$('#req-city').val(place_list.join('%'));
			$('#js-def_regions li #p'+place_id).removeAttr('checked');
		}
	}
}


function explode( delimiter, string ) {
	var emptyArray = { 0: '' };

	if (arguments.length != 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined')
		return null;

	if (delimiter === '' || delimiter === false || delimiter === null)
		return false;

	if (typeof delimiter == 'function'	|| typeof delimiter == 'object'	|| typeof string == 'function' || typeof string == 'object')
		return emptyArray;

	if (delimiter === true )
		delimiter = '1';

	return string.toString().split ( delimiter.toString() );
}


function fancyMetro() {
	var p = $('#site_id').val() == 's1' ? 'ru' : 'en';
	if($('#req-metro').val() != '')
	{
		var metro = explode('%', $('#req-metro').val());
		if(metro.length > 0) {
			$('#metro_selected li').eq(0).show();
			$('#metro_selected li').eq(1).hide();
			$.each(metro, function(i, v) {
				if($('#'+p+v))  {
					$('#'+p+v).addClass('sel');
					$('#metro_selected').append('<li id="js-list'+v+'">'+$('#'+p+v).html()+'</li>');
				}
			});
		}
	}
	$('.POPUP_send').remove();
	$('#fancybox-outer').css('paddingBottom','30px').append('<button onClick="sendFilterItems()" class="button2 POPUP_send" type="button">'+($('#site_id').val()=='s1'?'Выбрать':'Choose')+'</button>');
	globMetro = $('#req-metro').val();
}


function fancyPlace() {
	if($('#req-city').val() != '')
	{
		var place = explode('%', $('#req-city').val());
		$.each(place, function(i, v) {
			$('#metro_selected li').eq(0).show();
			$('#metro_selected li').eq(1).hide();
			$('#metro_selected').append('<li id="js-list'+v+'">'+$('#js-def_regions li #p'+v).next('label').text()+'</li>');
		});
	}
	$('.POPUP_send').remove();
	$('#fancybox-outer').css('paddingBottom','30px').append('<button onClick="sendFilterItems()" class="button2 POPUP_send" type="button">'+($('#site_id').val()=='s1'?'Выбрать':'Choose')+'</button>');
}


function fancyPlaceRun() {
	var id = false;
	var lang = $('#site_id').val()=='s1'?'ru':'en';
	id = $('#req-city').val().split('%').join(',');
	swfobject.embedSWF('/upload/flash/place.swf', 'map', 710, 600, '9.0.0', '', {ids:id,lang:lang},{menu:false, 'wmode':'opaque'}, '', fancyPlace);
	globPlace = $('#req-city').val();
}


$.disjoin = function(a, b) {
    return $.grep(a, function($e) { return $.inArray($e, b) == -1; });
};


function fromFlash(ru, en) {
	var id = $('#site_id').val() == 's1' ? ru : en;
	var place = $('#req-city').val().split('%');
	var defPlace = globPlace.split('%');
	var place_id = $.inArray(id, place);
	//console.log(globPlace);
	if(place_id > -1)
	{
		$('#metro_selected #js-list'+id).remove();
		if($('#metro_selected li').length < 3) {
			$('#metro_selected li').eq(0).hide();
			$('#metro_selected li').eq(1).show();
		}

		place = $.grep(place, function(n, i) {
			return (n && i != place_id);
		});
		$('#req-city').val(place.join('%'));
		$('#js-def_regions li #p'+id).removeAttr('checked');

		linkPlaceToMetro('off', $('#js-def_regions li #p'+id).attr('label'));
		cookaDelPlace(id);
	}
	else
	{
		var selected = $('#req-city').val();
		var k = selected ? '%' : '';

		if($('#metro_selected li').length < 3) {
			$('#metro_selected li').eq(0).show();
			$('#metro_selected li').eq(1).hide();
		}

		$('#req-city').val(selected+k+id);
		$('#js-def_regions li #p'+id).attr({checked:'checked'});
		$('#metro_selected').append('<li id="js-list'+id+'">'+$('#js-def_regions li #p'+id).next('label').text()+'</li>');

		linkPlaceToMetro('on', $('#js-def_regions li #p'+id).attr('label'));
		cookaSetPlace(id);
	}
}


function redirect_to(url) {
	document.location.href = url;
}


function sendFilterItems() {
	$.fancybox.close();
	$('#js-formFilter').submit();
}




