(function($){

	/* Плагин для создания связок кнопок "Выбрать" с соответсвующими окнами */
	$.fn.NH_WindowOpener = function (params) {
		
		/* Функция для открытия/закрытия окна кнопкой "выбрать" */
		var func_opener = function() {
			var wnd = $(this).data('bindedWindow');
			wnd.toggleClass('showblock');
			
			if (wnd.hasClass('showblock'))
			{	/* после открытия надо запомнить состояние чекбоксов */
				wnd.find(':checkbox').each(function() { $(this).attr('rel', $(this).attr('checked') ? 1 : 0); });
			}
			else
			{	/* после закрытия - пересчет */
				var cnt = wnd.find('input:checkbox:checked').length;
				if (cnt > 0)
					$(this).html('выбрано ' + cnt);
				else
					$(this).html('выбрать');
			}
			return false;
		};
		
		/* Функция для пересчета числа выбранных селектов */
		var recount = function(jq_obj) {
			if (jq_obj.length > 0)
			{
				var cnt = jq_obj.find('input:checkbox:checked').length;
				var opener = jq_obj.data('bindedOpener');
				var	bulb = jq_obj.data('bindedBulb');
				
				opener.html(cnt > 0 ? 'выбрано ' + cnt : 'выбрать');
				if (cnt > 0)
					bulb.addClass('active');
				else
					bulb.removeClass('active');
			}
		}
		/* Функция для пересчета после клика по чекбоксу */
		var func_recount_parent = function() {
			recount($(this).parents('.popunder_params:first'));
		}
		/* Функция для пересчета после клика по "выбрать все" */
		var func_select_all = function() {
			var par = $(this).parents('.popunder_params:first');
			par.find('input:checkbox').attr('checked', true);
			recount(par);
			return false;
		}
		/* Функция для пересчета после клика по "очистить все" */
		var func_clear_all = function() {
			var par = $(this).parents('.popunder_params:first');
			par.find('input:checkbox').attr('checked', false);
			par.find(':text').val('');
			recount(par);
			return false;
		}
		
		/* Функция по нажатию кнопки "отмена" восстанавливает состояние чекбоксов до открытия */
		var func_cancel = function() {
			var par = $(this).parents('.popunder_params:first');
			par.toggleClass('showblock').find(':checkbox').each(function() { $(this).attr('checked', ($(this).attr('rel') == 1)) });
			recount(par);
			return false;
		}
		
		var func_but = function() {
			var par = $(this).parents('.popunder_params:first');
			par.toggleClass('showblock');
			return false;
		}
		
		/* Привязка каждому из переданных элементов только что созданных функций */
		$(this).each(function(i, e) {
			var ctrl = $(this).attr('rel');
			var wnd = $('.popunder_params.' + ctrl);
			
			if (wnd.length > 0)
			{
				wnd.find('input:checkbox').click(func_recount_parent);
				wnd.find('.select_all').click(func_select_all);
				wnd.find('.but').click(func_but);
				wnd.find('.clear_all').click(func_clear_all);
				wnd.find('.cancel').click(func_cancel);
				wnd.data('bindedOpener', $(this));
				wnd.data('bindedBulb', $(this).siblings('.ch_button'));
				$(this).data('bindedWindow', wnd);
				$(this).click(func_opener);
			}
		});
		return this;
	};
	
	$.fn.NH_DeveloperOpener = function(params) {
		
		var func_opener = function() {	
			var wnd = $(this).data('bindedWindow');
			wnd.toggleClass('showblock');
			
			if (wnd.hasClass('showblock') == false)
			{
				var ob = wnd.find('.lbl.sel');
				var f = wnd.parents('form:first');
				if (ob.length > 0)
				{
					$(this).html(ob.find('span').html());
					wnd.data('bindedBulb').addClass('active');
					f.attr('action', ob.attr('rel'));
				}
				else
				{
					$(this).html('выбрать');
					wnd.data('bindedBulb').removeClass('active');
					f.attr('action', 'http://sale.vdolevke.ru/flats/');
				}
			}
		}
		
		var select_lbl = function() {
			var p = $(this).parents('.popunder_params:first');
			if ($(this).hasClass('sel') == false)
			{
				p.find('.lbl').removeClass('sel');
				$(this).addClass('sel');
			}
			p.data('bindedOpener').click();
		}
		
		var func_cancel = function() {
			var p = $(this).parents('.popunder_params:first');
			p.find('.lbl').removeClass('sel');
			p.data('bindedOpener').click();
			return false;
		}
		
		$(this).each(function(i, e) {
			var ctrl = $(this).attr('rel');
			var wnd = $('.popunder_params.' + ctrl);
			
			if (wnd.length > 0)
			{
				wnd.find('.lbl').click(select_lbl);
				wnd.find('.cancel').click(func_cancel);
				wnd.data('bindedOpener', $(this));
				wnd.data('bindedBulb', $(this).siblings('.ch_button'));
				$(this).data('bindedWindow', wnd);
				$(this).click(func_opener);
			}
		});
		
		return this;
	};
	
	/* Плагин для создания выбиралки квартала */
	$.fn.QuarterPicker = function(src_id) {
		/* Метод обновляет поле данных и поле представления на основе выбранных значений */
		var recount = function(jqob) {
			
			var y = jqob.find('select').val();
			var q = jqob.find('.quarter_q_pressed').val(), qv = 'I';
			
			if (q == 2) qv = 'II';
			if (q == 3)	qv = 'III';
			if (q == 4)	qv = 'IV';
			
			jqob.data('quarter_view').val(qv + ' кв. ' + y).trigger('change');
			jqob.data('quarter_src').val(y + q).trigger('change');
		}
		/* Метод на открытие пикера */
		var open_picker = function() {
		
			$(this).data('quarter_picker').show('fast');
			var jqob = $(this).data('quarter_picker');
			var src = jqob.data('quarter_src');
			
			var val = src.val();
			q = val.match(/^([\d]{4})([1-4])$/);

			if (q == null)
			{
				dt = new Date();
				q = ['', dt.getFullYear(), Math.floor(dt.getMonth() / 4) + 1];
				src.val(q.join(''));
			}
			
			if (jqob.find('.quarter_y_select .year').length == 0)
			{
				y_fill_picker(jqob.find('.quarter_y_select'), q[1]);
				jqob.find('.quarter_y_select').val(q[1]);
			}
			jqob.find('.quarter_q_select').removeClass('quarter_q_pressed');
			jqob.find('.quarter_q_select:eq('+(q[2]-1)+')').addClass('quarter_q_pressed');
			
			recount(jqob);
		}
		/* Метод на заполнения селекта пикера годами */
		var y_fill_picker = function(jqsel, year) {
		
			jqsel.find('.year').remove();
			for (i=1; i <= 7; i++)
				jqsel.find('option:eq('+(i-1)+')').after('<option class="year" value="'+(year-4+i)+'">'+(year-4+i)+'</option>');
		}
		/* Метод на смену выбранного года */
		var y_picker = function() {
			
			var jqob = $(this).parents('.quarter_picker:first');
			if ($(this).find(':selected').hasClass('prev_y'))
			{
				var center = Math.floor($(this).find('option').length / 2);
				y_fill_picker($(this), parseInt($(this).find('option:eq(' + center + ')').val()) - 8);
				$(this).val( $(this).find('.year:last').val() );
			}
			else if ($(this).find(':selected').hasClass('next_y'))
			{
				var center = Math.floor($(this).find('option').length / 2);
				y_fill_picker($(this), parseInt($(this).find('option:eq(' + center + ')').val()) + 8);
				$(this).val( $(this).find('.year:first').val() );
			}
			
			recount(jqob);
		}
		/* Метод на очистку поля данных и представления пикера */
		var clear_picker = function() {
		
			var jqob = $(this).parents('.quarter_picker:first');
			jqob.data('quarter_view').val('');
			jqob.data('quarter_src').val('').trigger('change');
			jqob.hide();
		}
		/* Метод на выбор квартала */
		var q_picker = function() {
			$(this).addClass('quarter_q_pressed').siblings(':button').removeClass('quarter_q_pressed');
			var jqob = $(this).parents('.quarter_picker:first');
			recount(jqob);
			jqob.hide();
		}
	
		$(this).each(function(i, e) {
			
			if (src_id == undefined)
				src = $(this).next();
			else
				src = $(src_id);
						
			if ($(this).hasClass('has_quarter_picker') == false && src.length > 0)
			{
				$(this).attr('readonly', true).addClass('has_quarter_picker');
				var div = document.createElement('div');
				var sel = document.createElement('select');
				$(div).addClass('quarter_q_list');
				$(sel).addClass('quarter_y_select quarter_ctrl').append('<option class="prev_y">...</option><option class="next_y">...</option>');
				$(div).append(sel);
				for (i=1;i<=4;i++)
					$(div).append(' <input type="button" value="'+i+'" class="quarter_ctrl quarter_q_btn quarter_q_select"/>');
				
				$(div).append(' <input type="button" value="очистить" class="quarter_ctrl quarter_q_clear"/>');
				
				var ob = document.createElement('div');
				var jqob = $(ob);
				var offset = $(this).offset();
				
				jqob.css({position: 'absolute', top: offset.top + $(this).outerHeight(), left: offset.left, display: 'none' }).addClass('quarter_picker').append(div);
				$('body').append(ob);
				
				jqob.find('.quarter_q_select').click(q_picker);
				jqob.find('.quarter_y_select').change(y_picker);
				jqob.find('.quarter_q_clear').click(clear_picker);
								
				jqob.click(function() { return false; }).data('quarter_src', src).data('quarter_view', $(this));
				$(this).data('quarter_picker', jqob).click(open_picker);
			}
		});
	
		$(window).click(function() { if ($('.quarter_picker:visible').length > 0) $('.quarter_picker:visible').hide(); });
	
		return this;
	};

})(jQuery);

$(function(){
    $('.printed').click(function(){window.print(); return false;})
    $('tr.short td').click(function(){
        if($(this).attr('class') != 'sh4'){
        var row_id = $(this).parents('tr').attr('id');
        $('#list_' + row_id).toggleClass('showhide');
        $(this).parents('tr').find('img.rollover').toggleClass('up');
        }
    })
    /*$('.rollover').click(function(){
        var row_id = $(this).parents('tr').attr('id');
        $('#list_' + row_id).toggleClass('showhide');
        $(this).toggleClass('up');
    })*/
    $('.dev_typ_house').click(function(){$(this).parents('div').children('label').removeClass('showhide'); $(this).remove()})
})

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

function money_format(i)
{
	var s1 = i.toString(), s = '';
	
	for (i = 0; i < s1.length; i++)
		s += s1[s1.length - i - 1];
	
	s1 = s.replace(/([0-9]{3})/g, '$1 ');
	s = '';
	
	for (i = 0; i < s1.length; i++)
		s += s1[s1.length - i - 1];

	return s;
}

function rus_ending(x, n1, n2, n5)
{
	x = x % 100;
	
	if (x >= 11 && x <= 19)
        return n5;
    x = x % 10;
    if (x == 1)
        return n1;
    if (x >= 2 && x <= 4)
        return n2;
    return n5;
}

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

/* Контрол - список чекбоксов */
function BulbChbListObject(bulb_string, chb_string) {
	
	this.bulb = $(bulb_string);
	this.chb_list = $(chb_string);
		
	this.chb_list.data('BulbChbListObject', this).click(function() { 
		var obj = $(this).data('BulbChbListObject');
		if (obj.IsActive())
			obj.bulb.addClass('active');
		else
			obj.bulb.removeClass('active');
		
	});
}

BulbChbListObject.prototype.Clear = function() {
	this.bulb.removeClass('active');
	this.chb_list.attr('checked', false);
}

BulbChbListObject.prototype.IsActive = function() {
	return (this.chb_list.filter(':checked').length > 0);
}

BulbChbListObject.prototype.DisableEmpties = function() {}

/* Контрол - окно чекбоксов */
function BulbChbWndObject(wnd_string) {
	this.wnd = $(wnd_string);
}

BulbChbWndObject.prototype.Clear = function() {
	this.wnd.find('.clear_all').click();
}

BulbChbWndObject.prototype.IsActive = function() { 
	return (this.wnd.find(':checked').length > 0);
}

BulbChbWndObject.prototype.DisableEmpties = function() { }

/* Контрол - окно чекбоксов метро */
function BulbMetroWndObject(wnd_string) {
	this.wnd = $(wnd_string);
}

BulbChbWndObject.prototype.Clear = function() {
	this.wnd.find('.clear_all').click();
	this.wnd.find(':text').val('');
}

BulbChbWndObject.prototype.IsActive = function() { 
	return (this.wnd.find(':checked').length > 0);
}

BulbChbWndObject.prototype.DisableEmpties = function() { 
	if (this.wnd.find(':text').val() == '' || !this.IsActive())
		this.wnd.find('input:text, select').attr('disabled', true);
		
}

/* Контрол - радио-окно */
function BulbRadioWndObject(wnd_string) {
	this.wnd = $(wnd_string);
}

BulbRadioWndObject.prototype.Clear = function() {
	this.wnd.find(':checked').attr('checked', false);
}

BulbRadioWndObject.prototype.IsActive = function() { 
	return (this.wnd.find(':checked').length > 0);
}

BulbRadioWndObject.prototype.DisableEmpties = function() { }

/* Контрол - список тектов */
function BulbTextListObject(cont_string, bulb_string, txt_string) {

	this.cont = $(cont_string);
	this.bulb = $(bulb_string);
	this.text_list = $(txt_string);
	
	this.text_list.data('BulbTextListObject', this).change(function() {
		
		var obj = $(this).data('BulbTextListObject');
		
		if (obj.IsActive())
			obj.bulb.addClass('active');
		else
			obj.bulb.removeClass('active');
			
	});
}

BulbTextListObject.prototype.Clear = function() {
	this.bulb.removeClass('active');
	this.text_list.val('');
}

BulbTextListObject.prototype.IsActive = function() {
	var clean = true;
	this.text_list.each(function(i) { if ($(this).val() != '') clean = false; });
	return !clean;
}

BulbTextListObject.prototype.DisableEmpties = function() {
	
	if (this.IsActive())
		this.cont.find('input').each(function(i) { if ($(this).val() == '') $(this).attr('disabled', true); });
	else
		this.cont.find('input, select').attr('disabled', true);
}

/* Контрол - выбор квартала */
function BulbKvartalObject(cont_string, bulb_string, txt_string) {

	this.cont = $(cont_string);
	this.bulb = $(bulb_string);
	this.text = $(txt_string);
	
	this.text.data('BulbKvartalObject', this).change(function() {
		
		var obj = $(this).data('BulbKvartalObject');
		
		if (obj.IsActive())
			obj.bulb.addClass('active');
		else
			obj.bulb.removeClass('active');
	});
}

BulbKvartalObject.prototype.Clear = function() {
	this.bulb.removeClass('active');
	this.text.val('');
}

BulbKvartalObject.prototype.IsActive = function() {
	var clean = true;
	return this.text.val() != '';
}

BulbKvartalObject.prototype.DisableEmpties = function() {
	
	if (!this.IsActive())
		this.cont.find('input, select').attr('disabled', true);
}

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

/** 
 * Класс буфера объектов карты
 * Хранит в себе все загруженные объекты и возвращает кортежи для отрисовки объектов на карте
 */
function MapPostBuffer(total, obj_type)
{
	if (obj_type == undefined)
		obj_type = 'flat';
	
	this.objects = [];
	this.obj_total = total;
	this.obj_cnt = 0;
	this.obj_type = obj_type;
	
	if (obj_type == 'house')
		this.makeObject = this.makeHouse;
	else
		this.makeObject = this.makeFlat;
}

/**
 * Метод возвращает список кортежей для отрисовки на карте 
 * @params Float (top, left) - широта / долгота верхней левой точки карты
 * @params Float (bottom, right) - широта / долгота правой нижней точки карты
 * @param Float seed_lat - минимально допустимое расстояние по широте между картежами
 * @param Float seed_lng - минимально допустимое расстояние по долготе между картежами
 * @return Object массив картежей для вывода на карту
 */
MapPostBuffer.prototype.getCortages = function(top, left, bottom, right, seed_lat, seed_lng) {
	var r = [];
	for (var i in this.objects)
		if (this.objects[i].inBound(top, left, bottom, right))	/* Если объект в рамке */
		{
			nf = true;
			for (var j in r)
				if (r[j].lat - seed_lat <= this.objects[i].params.lat && this.objects[i].params.lat <= r[j].lat + seed_lat &&
					r[j].lng - seed_lng <= this.objects[i].params.lng && this.objects[i].params.lng <= r[j].lng + seed_lng)
				{
					r[j].push(this.objects[i]);
					nf = false;
					break;
				}
			
			if (nf)
			{
				var o = new MapCortage();
				o.push(this.objects[i]);
				r.push(o);
			}
		}
		
	return r;
}

/**
 * Метод возвращает рамку, внутри которой находятся все объекты, находящиеся в буфере
 * Если в буфере нет объектов, все значения массива - нули
 * @return Object массив с параметрами: top, left, bottom, right
 */
MapPostBuffer.prototype.getBounds = function() {
	var r = { top:0, left:0, bottom:0, right:0 }, f = true;
	for (var i in this.objects)
	{
		if (r.top < this.objects[i].params.lat || f)
			r.top = this.objects[i].params.lat;
		
		if (r.left > this.objects[i].params.lng || f)
			r.left = this.objects[i].params.lng;
		
		if (r.bottom > this.objects[i].params.lat || f)
			r.bottom = this.objects[i].params.lat;
		
		if (r.right < this.objects[i].params.lng || f)
			r.right = this.objects[i].params.lng;
		
		f = false;
	}
	if (f) return null;
		
	return r;
}

/**
 * Метод добавляет в буфер объект если необходимо
 * @param Object data - массив параметров, передаваемых в конструктор объекта при его добавлении
 * @return Boolean true если объекта не было и он добавлен, иначе false
 */
MapPostBuffer.prototype.push = function(data) {
	if (this.objects[data.id] == undefined)
	{
		this.objects[data.id] = this.makeObject(data);
		this.obj_cnt++;
		return true;
	}
	
	return false;
}

/**
 *
 */
MapPostBuffer.prototype.isFull = function() {
	return this.obj_total <= this.obj_cnt;
}

MapPostBuffer.prototype.makeFlat = function(data) {
	return new MapFlat(data);
}

MapPostBuffer.prototype.makeHouse = function(data) {
	return new MapHouse(data);
}

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

function MapFlat(data)
{
	this.init();
	this.fetch(data);
}

MapFlat.prototype.init = function() {
	this.params = { id:0,lat:0,lng:0,url:'',nrooms:0,cost:0,addr:'',title:'',descr:'',img:'',contacts:'' };
}

MapFlat.prototype.isLoaded = function() {
	return this.params.url != '';
}

MapFlat.prototype.fetch = function(data) {
	if (typeof(data) == 'object')
		for (var k in data)
			if (this.params[k] != undefined)
				this.params[k] = data[k];
}

MapFlat.prototype.id = function() {
	return this.params['id'];
}

MapFlat.prototype.inBound = function(top, left, bottom, right) {
	return (top > this.params.lat && this.params.lat > bottom) && (right > this.params.lng && this.params.lng > left);
}

MapFlat.prototype.toHTML = function() {
	return (this.params['img'] != '' ? '<img src="' + this.params['img'] + '"/>' : '') + '<b>' + this.params['addr'] + '</b><br/>комнат: ' + this.params['nrooms'] + '<br/>цена: ' + this.params['cost'] + ' р.<br/><a href="' + this.params['url'] + '" target=_blank>подробнее</a>';
}

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

function MapHouse(data)
{
	this.init();
	this.fetch(data);
}

MapHouse.prototype.init = function() {
	this.params = { id:0,lat:0,lng:0,url:'',nfloors:0,title: '',finish_kv:'',cost:0,addr:'',img:'', descr: '' };
}

MapHouse.prototype.isLoaded = function() {
	return this.params.url != '';
}

MapHouse.prototype.fetch = function(data) {
	if (typeof(data) == 'object')
		for (var k in data)
			if (this.params[k] != undefined)
				this.params[k] = data[k];
}

MapHouse.prototype.id = function() {
	return this.params['id'];
}

MapHouse.prototype.inBound = function(top, left, bottom, right) {
	return (top > this.params.lat && this.params.lat > bottom) && (right > this.params.lng && this.params.lng > left);
}

MapHouse.prototype.toHTML = function() {
	return (this.params['img'] != '' ? '<img src="' + this.params['img'] + '"/>' : '') + '<b>' + (this.params['title'] != '' ? this.params['title'] : this.params['addr']) + '</b><br/>'+(this.params['title'] != '' ? 'адрес: '+this.params['addr']+'<br/>' : '')+(this.params['nfloors'] > 0 ? 'этажей: ' + this.params['nfloors'] + '<br/>' : '') + '<a href="' + this.params['url'] + '" target=_blank>подробнее</a>';
}

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

/**
 * Класс кортежа с объектами для вывода на карту
 */
function MapCortage() {
	this.objects = [];
	this.obj_cnt = 0;
	this.lat = 0;
	this.lng = 0;
	
	this.cur_index = 0;
}

/**
 * Добавление объекта в кортеж
 * @param MapFlat или MapHouse obj - объект
 */
MapCortage.prototype.push = function(obj) {
	this.objects.push(obj);
	this.obj_cnt++;
	
	this.lat = ((this.lat * (this.obj_cnt - 1)) + obj.params.lat) / this.obj_cnt;
	this.lng = ((this.lng * (this.obj_cnt - 1)) + obj.params.lng) / this.obj_cnt;
}

/**
 * Функция пересчитывает координаты центра
 */
MapCortage.prototype.countCenter = function() {
	if (this.obj_cnt > 0)
	{
		this.lat = 0;
		this.lng = 0;
		for (var i in this.objects) 
		{
			this.lat += this.objects[i].params.lat;
			this.lng += this.objects[i].params.lng;
		}
		this.lat /= this.obj_cnt;
		this.lng /= this.obj_cnt;
		return true;
	}
	return false;
}

/**
 * Метод смещает указатель кортежа на следующий объект
 */
MapCortage.prototype.goNext = function() {
	if (this.objects.length > 1)
	{
		if (this.cur_index >= this.objects.length - 1)
			this.cur_index = 0;
		else
			this.cur_index++;
	}
	return this.getCurrent();
}

/**
 * Метод смещает указатель кортежа на предыдущий объект
 */
MapCortage.prototype.goPrev = function() {
	if (this.objects.length > 1)
	{
		if (this.cur_index <= 0)
			this.cur_index = this.objects.length - 1;
		else
			this.cur_index--;
	}
	return this.getCurrent();
}

/**
 *
 */
MapCortage.prototype.getCurrent = function() {
	if (this.objects.length > 0)
		return this.objects[this.cur_index];
		
	return null;
}

/***********************************************************************************************/
/***********************************************************************************************/
/***********************************************************************************************/

function getInfoWindowNode() {
	
	if (infoWindow == null)
	{
		var div = document.createElement('div'), c1 = document.createElement('div');
		div.className = 'info_window';
		c1.className = 'info';
		div.object_info = c1;
		div.appendChild(c1);
		
		var c2 = document.createElement('div');
		c2.className = 'clr';
		div.appendChild(c2);
		
		var c3 = document.createElement('div');
		c3.className = 'tabs';
		
		var a = document.createElement('a');
		a.innerHTML = '&larr;';
		a.onclick = prevTabInfoWindow;
		a.root = div;
		c3.appendChild(a);
		
		var s = document.createElement('span');
		div.span = s;
		c3.appendChild(s);
		
		a = document.createElement('a');
		a.innerHTML = '&rarr;';
		a.root = div;
		a.onclick = nextTabInfoWindow;
		c3.appendChild(a);
		
		div.object_tabs = c3;
		div.appendChild(c3);
		
		div.takeCortage = function(c) {
		
			this.cortage = c;
			this.object_tabs.style.display = c.obj_cnt > 1 ? '' : 'none';
			this.object_info.innerHTML = c.getCurrent().toHTML();
			this.updatePosText();
			
		};
		
		div.updatePosText = function() {
			this.span.innerHTML = ' ' + (this.cortage.cur_index + 1) + ' / ' + this.cortage.obj_cnt + ' ';
		}
		
		infoWindow = div;
	}
	return infoWindow;
}

function prevTabInfoWindow() {
	this.root.object_info.innerHTML = this.root.cortage.goPrev().toHTML();
	this.root.updatePosText();
	return false;
}

function nextTabInfoWindow() {
	this.root.object_info.innerHTML = this.root.cortage.goNext().toHTML();
	this.root.updatePosText();
	return false;
}
