(function(jQuery){
	/* Метод, управляющий полем информации о фирме и задает действия для его элементов */
	jQuery.fn.fieldInfo = function(flag){
		/* Связываем переменную и информационное поле */
		var fieldInfo = jQuery(this);
		var flag = typeof flag !='boolean' ? false : flag;
		
		/* Сворачиваем блоки информационного поля */
		//fieldInfo.children("dd").css({display:'none'});
		/* Задаем действия по нажатию на блок */
		fieldInfo.children("dt").click(function(){
			/* Объект, который должен быть показан */
			var toShow = jQuery(this).next('dd');
			/* Объект, который должен быть убран */
			var toHide = typeof jQuery(this).parent().children(".acc-active").get(0) != 'undefined' ? jQuery(this).parent().children(".acc-active").next('dd') : false;
			/* Останавливаем анимацию показываемого объекта */
			toShow.stop();
			/* Если есть объект для скрытия */
			if(toHide){
				/* Если скрываемый и показываемый объект совпадают */
				if(jQuery(this).hasClass('acc-active')){
					/* Для IE ниже восьмого отменяет анимацию при установленном флаге при инициализации */
					if($.browser.msie && $.browser.version < 8&&flag){
						toShow.css({height:'auto',display:'none'});
						jQuery(this).removeClass('acc-active');
					}
					/* С анимацией */
					else {
						/* Скрываем объект до конца */
						toShow.animate({height:0},500, function(){
							$(this).css({height:'auto',display:'none'});
						});
						/* Удаляем у него класс активности */
						jQuery(this).removeClass('acc-active');
					};
				}
				else {
					var staticheight = toShow.css('display','block').height(); //определить высоту блоков
					/* Для IE ниже восьмого отменяет анимацию при установленном флаге при инициализации */
					if($.browser.msie && $.browser.version < 8&&flag){
						toHide.prev('dt').removeClass('acc-active');
						toHide.css({height:'0px',display:'none'});
						toShow.css({height:staticheight + 'px'});
						jQuery(this).addClass('acc-active');
					}
					/* С анимацией */
					else {
						/* Останавливаем анимацию скрываемого объекта */
						toHide.stop();
						toShow.css({ height: 0, overflow:'hidden' }); // открываемый делаем 'видимым' с высотой 0, теперь он готов к анимации
						toHide.prev('dt').removeClass('acc-active');
						var hideHeight = toHide.height();
						jQuery(this).addClass('acc-active');
						toHide.animate({height:'hide'},{ // начинаем скрывать видимый
							step: function(now) { // на каждом шаге выполняем, now - значение height в каждый момент
								// собственно рассчет
								var showHeight = (1 - now/hideHeight)*staticheight;
								if (jQuery.browser.msie || jQuery.browser.opera || jQuery.browser.safari) { // все округляют по-своему
									var current = Math.ceil(showHeight);
								};
								toShow.css('height',showHeight + 'px'); // присваиваем высоту
							},
						duration: 500
						});
					};
				};
			}
			else {
				var staticheight = toShow.css('display','block').height(); //определить высоту блоков
				/* Для IE ниже восьмого отменяет анимацию при установленном флаге при инициализации */
				if($.browser.msie && $.browser.version < 8&&flag){
					toShow.css({height:staticheight + 'px'});
					jQuery(this).addClass('acc-active');
				}
				/* С анимацией */
				else {
					toShow.css({ height: 0, overflow:'hidden' }); // открываемый делаем 'видимым' с высотой 0, теперь он готов к анимации
					toShow.animate({height:staticheight + 'px'},500);
					jQuery(this).addClass('acc-active');
				};
			};
		});
		fieldInfo.children("dt").children("a").click(function(){
			jQuery(this).parent().click();
			return false;
		});
		
		return fieldInfo;
	};
})(jQuery);

$(document).ready(function(){
	/* Активизируем скрипт информационного поля */
	$("#products").fieldInfo();
});
