function ready(){
	$.ajaxSetup({
		timeout: 5000,
		type: "POST",
		cache: false,
		async: true,
		contentType: "application/x-www-form-urlencoded"
	});
	
	//	Блок авторизации
	$('input.auth').keyup(function(event){ if (event.keyCode == 13) login('login'); });
	$("#auth").click(function(){login($(this).attr('name'));});
	var login_val = $('input.auth[name=login]').val();
	$('input.auth[name=login]').focus(function(){if ($(this).val() == login_val) $(this).val('');})
	$('input.auth[name=login]').blur(function(){if ($(this).val() == '') $(this).val(login_val);});
	$('input.auth[name=password]').focus(function(){$(this).val('');});
	$('#auth-open').click(function(){
		$('#auth-block').slideToggle(200, function(){
			if ($('#auth-block').css('display') != 'none') $('input.auth[name=login]').focus();
		});
	});

	$('div.search input').focus(function(){if ($(this).val() == 'Address or City or Zip Code') $(this).val('');});
	$('div.search input').blur(function(){if ($(this).val() == '') $(this).val('Address or City or Zip Code');});

	//	Отрисовка геокарт
	var canvas = document.getElementById('map-canvas');
	if (canvas)
	{
		var width = 740, height = $('#geomap').height();
		$('#geomap').fadeTo(0, 0);
		canvas = canvas.getContext('2d');
		$('#geomapMap area').mouseover(function(e){
			var coords = $(this).attr('coords').split(',');
			var poly = new Array();
			for (var i = 0, j = 0; i < coords.length; i += 2, j++) poly[j] = [coords[i], coords[i + 1]];
			canvas.clearRect(0,0,width,height);
			canvas.beginPath();
			for (var i = 0; i < poly.length; i++)
				if (i == 0) canvas.moveTo(poly[i][0], poly[i][1]);
				else canvas.lineTo(poly[i][0], poly[i][1]);
			canvas.closePath();
			canvas.fillStyle = "rgba(115, 200, 1, 0.7)";
			canvas.fill();
			show_popup($(this).attr('alt'), e);
		});
		$('#geomapMap area').mousemove(function(e){
			show_popup($(this).attr('value'), e);
		});
		$('.map').mouseout(function(){
			canvas.clearRect(0,0,width,height);
			$('div.map-popup').hide();
		});
	}

	//	homes list
	$('table.house-list tr:nth-child(odd)').addClass('odd');

	//	add home to favorites
	$('a.fav').click(function(){
		var p = $(this).attr('name').split('|');
		var img = $(this).find('img');
		var new_src = img.attr('src');
		if (p[0] == 'add') new_src = new_src.replace('-add.gif', '-del.gif');
		if (p[0] == 'del') new_src = new_src.replace(/images.*/, 'images/star-add.gif');
		$.ajax({
			url: '/ajax/user/fav/'+p[0]+'/'+p[1],
			success: function(answer){
				if (answer == 'ok')
				{
					if (img.length) img.attr('src', new_src).parent('a').attr('name', (p[0] == 'add'?'del':'add')+'|'+p[1]);
					else document.location.reload();
				}
			}
		});
	});

	$('a.pay').click(function(){
		$.get('/ajax/user/pay/'+$(this).attr('name'), function(answer){ if (answer == 'ok') document.location.reload(); });
	});

	$('a.view_switch').bind('click', function(){
		$.ajax({
			url: '/ajax/sys/view_type/',
			data: 'type='+$(this).attr('name'),
			success: function(answer){
				if (answer == 'ok') document.location.reload();
			}
		});
	});

	$('select.view_switch').bind('change', function(){
		$.ajax({
			url: '/ajax/sys/view_type/',
			data: 'type='+$(this).attr('name')+'&val='+$(this).val(),
			success: function(answer){
				if (answer == 'ok') document.location.reload();
			}
		});
	});
}

function login(ev)
{
	var data = 'event='+ev;
	if (ev == 'login') data += '&login='+$('input.auth[name=login]').val()+'&pass='+$('input.auth[name=password]').val();
	var url = document.location.href;
	$.ajax({
		url: '/ajax/user/auth/',
		data: data,
		success: function(answer){
			if (answer == 'ok') document.location.href = url;
			else
			{
				$('#auth-message').html(answer).show('slow');
				setTimeout(function(){$('#auth-message').hide('fast')}, 2500);
			}
		}
	});
}

function show_popup(data, e)
{
	data = data.split('|');
	$('div.map-popup span').html(data[0]);
	$('div.map-popup p').html(data[1]+' homes');
	$('div.map-popup').css({'top':e.pageY - 20, 'left':e.pageX + 10}).show();
}
