var bIE8 = function() {
	if ($.browser.msie && $.browser.version < 8) {
		return true;
	} else {
		return false;
	}
}();

var IE = function() {
	if ($.browser.msie) {
		return true;
	} else {
		return false;
	}
}();

$.fn.updateMetaData = function (data) {
	return this.each(function () {
	var meta = $(this).metadata();
	$.extend(meta, data); //add your data to the existing metadata cache.
	});
}

// DOM готов
$(document).ready(function(){

//Расстановка классов first и .last для ячеек и строк в таблицах, а также для элементов списка
$('table').find('tr:last').addClass('last');
$('table tr').find('td:last').addClass('last');

$('ul').find('li:last').addClass('last');

$('.content .newsBlock01 ul li').wrapInner('<span class="wrap" />');

//Карта
if ($('#partnersMap').size() > 0) {

	function addTooltip() {
		$('#m_map area').tooltip({
			track: true,
			delay: 0,
			showURL: false,
			showBody: " - ",
			fade: 250,
			top: -35, 
			left: 15 
		});
	}
	addTooltip();

	var regionalPartnersList = $('#regionalPartnersList');
	var imagesMassive = $('#imagesMassive img');
	var areaAvilableMassive = $('#m_map area.avilable');
	var activityList = $('#activityList li');
	
	//Ajax-функция для ссылок активностей, возвращающая массив из списка зон в формате [area01, area02];
	//В нее отправляется класс вида activityClass07. 
	function getAreaList(activityClass) {
		
		//ajax-запрос
		var areas = new Array();
		$.ajax({
		  url: '/uses/get_partners_areas.php?deed='+activityClass,
			async: false, 
			dataType: 'json',
		  success: function(result){
		    areas = result;
		  }
		});		

		//возвращает массив
		return areas;
	}
	
	//Ajax-функция, возвращающая html-код, содержащий список логотипов партнеров
	//В нее отправляется номер кликнутой зоны, может быть массив!
	function getPartnersList(areaNumber,activityClass){
		//Затемняем UL'ку перед отправкой
		regionalPartnersList.addClass('loading');

		/*Следует учесть, что areaNumber может быть массивом или строкой. Можно добавить if'ку
		перед запросом, которая превратит строку в массив: */
		if (typeof(areaNumber) == 'string') {
			var areaNumber = [areaNumber];
		}
		//доделать
		//Теперь гарантированно будет отправляться массив, возможно это удобнее.
		
		// ajax-запрос.
		$.ajax({
		  url: '/uses/get_partners_logos.php?areas='+areaNumber+'&deed='+activityClass,
			async: false, 
		  success: function(result){
		    logos = result;
		  }
		});		
		//По окончании запроса снимаем вуаль
		regionalPartnersList.removeClass('loading');
	
		//Возвращает html. В джеквери есть прям такой тип в аяксе "html". Я пока сделаю просто строку. Может это оно и есть.
		//return '<li><a href="" title="Строительный портал «БЕСТ-СТРОЙ.РУ»"><table><tbody><tr><td><img src="../images/temp/partners/img03.jpg" alt="Строительный портал «БЕСТ-СТРОЙ.РУ»" /></td></tr></tbody></table>Строительный портал «БЕСТ-СТРОЙ.РУ»</a></li>';
		return logos;
	}

	areaAvilableMassive.updateMetaData({
		fillColor:'503d97',
		alwaysOn:true,
		neverOn: false
	});
	
	function updateMap(){
		$('#partnersMap').maphilight({
			fillColor:'000000',
			stroke: false,
			fillOpacity: 1,
			neverOn: true
		});
	}
	
	updateMap();
	
	var selectedMassive;


	areaAvilableMassive.click(function(){
		var self = $(this);
		var partnerList = getPartnersList(self.attr('rel'),'');
		
		selectedMassive = self;
		areaAvilableMassive.updateMetaData({
			fillColor:'503d97',
			alwaysOn:true,
			neverOn: false
		}).removeClass('selected');
		self.addClass('selected');

		updateSelectedMassive();
		
		regionalPartnersList.html(partnerList);
	});


	
	/*areaAvilableMassive.each(function(){
		var self = $(this);
		var neededImage;
		var thisNumber = $(this).attr('rel').replace('area', '');
		var thisImagesArr = imagesMassive.filter('[src*='+thisNumber+']');
		
		neededImage = thisImagesArr.filter('[src*=avilable]').eq(0);
		neededImage.addClass('visible');
		
		self.hover(function(){
			if (self.hasClass('selected')) {
				thisImagesArr.filter('[src*=selected]').eq(0).removeClass('visible');
				neededImage = thisImagesArr.filter('[src*=selected_hover]');
				neededImage.addClass('visible');
			} else {
				neededImage = thisImagesArr.filter('[src*=avilable_hover]');
				neededImage.addClass('hover');
			}

		}, function(){
			neededImage.removeClass('hover');
		});
		self.click(function(){
			//Посылаем ajax-запрос за списком партнеров в виде html-кода
			var partnerList = $(getPartnersList(self.attr('rel')));
			activityList.removeClass('current');
			regionalPartnersList.html(partnerList);
		});
	});*/

	var areaAvilableUnselectedMassive;
	function areaAvilableMassiveHover() {
		areaAvilableUnselectedMassive = areaAvilableMassive.not('.selected');

		areaAvilableMassive.off('hover');
		addTooltip();
		areaAvilableUnselectedMassive.hover(function(){
			if (!IE) {
 				var self = $(this);
				self.updateMetaData({
					fillColor:'7566ad',
					alwaysOn:true,
					neverOn: false
				});
				updateMap();
			}
		}, function(){
			var self = $(this);
			self.updateMetaData({
				fillColor:'503d97',
				alwaysOn:true,
				neverOn: false
			});
			updateMap();
		});
	}
	
	areaAvilableMassiveHover();

	function updateSelectedMassive(){
		selectedMassive.updateMetaData({
			fillColor:'c00d29',
			alwaysOn:true,
			neverOn: false
		});
		
		areaAvilableMassiveHover();
		updateMap();
		
		selectedMassive.off('hover');
		
		addTooltip();
		
		selectedMassive.hover(function(){
			if (!IE) {
				var self = $(this);
				self.updateMetaData({
					fillColor:'d84d64',
					alwaysOn:true,
					neverOn: false
				});
				updateMap();
			}
		}, function(){
			var self = $(this);
			self.updateMetaData({
				fillColor:'c00d29',
				alwaysOn:true,
				neverOn: false
			});
			updateMap();
		});
	}


	activityList.click(function(){
		if (!$(this).hasClass('current')) {
			$(this).addClass('current').siblings('.current').removeClass('current');
		
			$(selectedMassive).updateMetaData({
				fillColor: '503d97',
				alwaysOn: true,
				neverOn: false
			}).removeClass('selected');
			updateMap();
			
			var activityClass = $(this).attr('rel');
			var selectedAreas = getAreaList(activityClass);
			if (selectedAreas !== null) {
		  	selectedMassive = '';
		  	
		  	for (var i = 0; i < selectedAreas.length; i++) {
		  		var selectedArea = areaAvilableMassive.filter('[rel=' + selectedAreas[i] + ']');
		  		selectedArea.addClass('selected');
		  		selectedMassive = $(selectedMassive).add(selectedArea);
		  	}
		  	
		  	updateSelectedMassive();
		  	var partnerList = getPartnersList(selectedAreas,activityClass);
		  	regionalPartnersList.html(partnerList);
	 		} else {
	  		regionalPartnersList.html('');
			}
		}
	});
	
	
	/*var selectedImages;
	
	activityList.click(function(){
		if (!$(this).hasClass('current')) {
			$(this).addClass('current').siblings('.current').removeClass('current');
			
			var activityClass = $(this).attr('rel');
			
			//Посылаем ajax-запрос за массивом имен зон
			var areasList = getAreaList(activityClass);
			if (areasList !== null) {
	  
		  	for (var i = 0; i < areasList.length; i++) {
		  		var thisNumber = areasList[i].replace('area', '');
		  		areaAvilableMassive.filter('[rel=' + areasList[i] + ']').addClass('selected');
		  		$(selectedImages).removeClass('selected');
		  		selectedImages = imagesMassive.filter('[src*=' + thisNumber + '_area_selected]');
		  		selectedImages.addClass('visible');
		  	}
	  	
		  	//так же посылаем запрос за списком партнеров, отправив в него массив из списка зон
				getPartnersList(areasList);
				regionalPartnersList.html(getPartnersList(areasList));
			}
		}
	});*/


}


//Обертка картинок
$('.content_img').each(function(){
	var self = $(this);

	var thisWidth = parseInt(self.css('width'), 10);
	var thisHeight = parseInt(self.css('height'), 10);
	var thisMarginRight = self.get('0').style.marginRight;
	var thisMarginLeft = self.get('0').style.marginLeft;
	var thisFloat = self.css('float');
	var styleList = 'width:' + (thisWidth+14) + 'px' + '; margin-left:' + thisMarginLeft + '; margin-right:' + thisMarginRight + ';';
	var thishText = '';
	if (self.attr('alt')!=='') { 
		thishText = '<span class="text">' + self.attr('alt') + '</span>';
	}
	self.attr('style', '').css({width:thisWidth,height:thisHeight});
	self.wrap('<span class="imgWrapper ' + thisFloat + '" style="'+ styleList +'"><span class="wrap2"></span></span>').parents('.imgWrapper').append(thishText);
});

//Прячем всплывающие окна при клике по документу
$('html').click(function(e){
	if ($(e.target).parents('.siteMap').size() < 1 && !$(e.target).hasClass('siteMap')) {
		$('.siteMap').removeClass('opened').find('.hiddenArea').fadeOut('fast');
	}
});

if (!$.browser.msie && !$.browser.version < 9) {
	$('.promoList li a').hover(function(){
		var img = $(this).find('img')[0];
		Pixastic.process(img, 'glow', {amount:0.2,radius:1.0}, 'blur');
	}, function(){
		var img = $(this).find('canvas')[0];
		if ($(img).size() > 0) {
			Pixastic.revert(img);
		}
	});
	
	/*
	$('.photoList a').hover(function(){
		var img = $(this).find('img')[0];
		Pixastic.process(img, 'glow', {amount:0.22,radius:1.0}, 'blur');
	}, function(){
		var img = $(this).find('canvas')[0];

		if ($(img).size() > 0) {
			Pixastic.revert(img);
		}
	});
	*/
}
if (bIE8) {
	$('[needAfterEmulate=true]').prepend('<span class="before"></span>').append('<span class="after"></span>');
	$('.promoList li:nth-child(3n+3), .newsBlock:nth-child(2n+2), .sitemapContent ul:nth-child(3n+3)').addClass('nth');
}


$('.scroll-pane').jScrollPane({showArrows: true});

//Меню 2го уровня
/*
var header = $('#header');
var menulvl2 = $('#mainMenuLvl2');
var menulvl2Width = menulvl2.outerWidth();
	//Расчет положения меню
var mainMenu = $('#mainMenu');
var mainMenuCurrent = mainMenu.find('.current');
var menuLvl2OffsetLeft = (mainMenuCurrent.offset().left + mainMenuCurrent.outerWidth() / 2) - (menulvl2Width / 2);
var mainMenuOffsetLeft = mainMenu.offset().left;

if (menuLvl2OffsetLeft < mainMenuOffsetLeft) {
	menuLvl2OffsetLeft = mainMenuOffsetLeft + 16;
	menulvl2.addClass('customArrow');
} else if ((menuLvl2OffsetLeft + menulvl2Width) > (header.offset().left + header.outerWidth())) {
	menuLvl2OffsetLeft = header.offset().left + header.outerWidth() - menulvl2Width - 10;
	menulvl2.addClass('customArrow');
}

menulvl2.offset({left: menuLvl2OffsetLeft});

	//Расчет положения стрелки
if (menulvl2.hasClass('customArrow')) {
	var arrowOffset = (mainMenuCurrent.offset().left + mainMenuCurrent.outerWidth() / 2) - menuLvl2OffsetLeft - 11;
	menulvl2.append('<span class="beforeArrow" style="left:'+ arrowOffset +'px"></span>');
} else {
	var arrowOffset = (menulvl2Width / 2) - 11;
	menulvl2.append('<span class="beforeArrow" style="left:'+ arrowOffset +'px"></span>');
}
*/

//Карта сайта в хлебных крошках
$('#path .siteMap .title').click(function(){
	var self = $(this);
	self.parent().toggleClass('opened');
	self.next('.hiddenArea').fadeToggle('fast');
});

$('.siteMap .close').click(function(){
	$(this).parents('.hiddenArea').fadeOut('fast').parents('.siteMap').removeClass('opened');
	return false;
});

var sitemapContentLi = $('.sitemapContent > li');
var sitemapTabsLi = $('.sitemapTabs > li');
sitemapTabsLi.click(function(){
	var self = $(this);
	
	if (!self.hasClass('current')) {
		sitemapTabsLi.filter('.current').removeClass('current');
		self.addClass('current');
		
		var thisIndex = self.index();
		sitemapContentLi.filter('.current').removeClass('current');
		sitemapContentLi.eq(thisIndex).addClass('current');
	}
});

$('.slowMotion .colorSelect').live('click',function(){
	var self = $(this);
	self.addClass('selected').siblings('.colorSelect.selected').removeClass('selected');
	self.siblings('input[name=selectedColor]').val(self.attr('rel'));
});

$('form.standart .toggleLink').click(function(){
	if ($(this).html() === 'Скрыть необязательные поля') {
  	$(this).parents('form').find('tr.unrequired').fadeOut();
		$(this).html('Показать необязательные поля');
  } else {
		$(this).html('Скрыть необязательные поля');
  	$(this).parents('form').find('tr.unrequired').fadeIn();
	}
	return false;
});

/* Slider */

		//scrollpane parts
		var scrollPane = $( ".slider" ),
			scrollContent = $( ".scroll-content" );
		
		//build slider
		var scrollbar = $( ".scroll-bar" ).slider({
			slide: function( event, ui ) {
				if ( scrollContent.width() > scrollPane.width() ) {
					scrollContent.css( "margin-left", Math.round(
						ui.value / 100 * ( scrollPane.width() - scrollContent.width() )
					) + "px" );
				} else {
					scrollContent.css( "margin-left", 0 );
				}
			}
		});
		
		//append icon to handle
		var handleHelper = scrollbar.find( ".ui-slider-handle" )
		.append( "<span class='ui-icon ui-icon-grip-dotted-vertical'></span>" )
		.wrap("<div class='ui-handle-helper-parent'></div>" ).parent();
		
		//change overflow to hidden now that slider handles the scrolling
		scrollPane.css( "overflow", "hidden" );

		
$('.showMoreNews').click(function(){
	$(this).hide().next().slideDown('middle');
	return false;
});
		
$('.photoTable a').lightBox();

$('.altLabel.checkbox .variant').each(function(){
	var self = $(this);
	var inputText = self.find('input[type=text]');
	var withInput = false;
	var inputContainer = self.find('.inputContainer');
	var action = self.find('.action');
	var accept = self.find('.accept');
	var checkbox = self.find('input[type=checkbox]')
	
	if (inputText.size() > 0) {
		withInput = true;
	}
	
	//Путь при наличии текстового инпута в блоке
	if (withInput) {
		self.click(function(e){
			if (!self.hasClass('inFocus')) {
				checkbox.prop('checked', true);
				self.addClass('inFocus');

				if (inputContainer.is(':hidden')) {
					checkbox.prop('checked', true);
					self.addClass('inFocus');
					inputContainer.show();
				}
			} else {
				if ($(e.target).is('label')) {
					self.removeClass('inFocus');
					checkbox.prop('checked', false);
					inputContainer.hide();
				}
			}
		});
		$('html').click(function(e){
			//if (!$(e.target).hasClass('anketaInputText') && $(e.target).parents('.action').size() < 1 && !$(e.target).hasClass('actionClear') && ) {
			if (!$(e.target).hasClass('variant') && $(e.target).parents('.variant').size() < 1) {
				
				if (!inputText.val()) {


				}
				else {

				}
			}
		});
		action.click(function(){
			inputText.val('');
		});
	//Путь при отсуствии текстового инпута в блоке
	} else {
		self.click(function(){
			if (checkbox.prop('checked')) {
				checkbox.prop('checked', false);
				accept.hide();
				self.css({paddingLeft: '8px'}).removeClass('inFocus');
			} else {
				checkbox.prop('checked', true);
				inputContainer.css('margin','0').show();
				self.css({paddingLeft: '34px'}).addClass('inFocus');
				accept.show();
			}
		});
	}
	
});

function slideUpdate(self, colorLevel) {
	colorLevel.width(self.slider('value') + '%');
	if (self.slider('value') < 21) {
		colorLevel.removeClass('middle height').addClass('low');
	}
	if (self.slider('value') > 21 && self.slider('value') < 61) {
		colorLevel.removeClass('low height').addClass('middle');
	}
	if (self.slider('value') > 79) {
		colorLevel.removeClass('low middle').addClass('height');
	}
}

$('.blueSlider').each(function(){
	var self = $(this);
	var thisStep = 1 * $(this).attr('step');
	var colorLevel = self.find('.colorLevel');
	var inputWrap = self.find('.inputWrap');
	var strt = (parseInt(inputWrap.find('input').val()) * thisStep * 1);
	self.slider({
		step: thisStep,
		value: strt,
		create: function(){
			inputWrap.appendTo(self.find('.ui-slider-handle'));
			slideUpdate(self, colorLevel);
		},
		stop:function(){
			inputWrap.removeClass('show');
			slideUpdate(self, colorLevel);
		},
		slide: function(){
			slideUpdate(self, colorLevel);
		}
	});
	
	self.find('.ui-slider-handle').mousedown(function(){
		inputWrap.addClass('show');
		$(document).mousemove(function(){
			slideUpdate(self, colorLevel);
			
			var currentPositionIndex = parseInt(self.slider('value') / thisStep, 10);
			var scale = self.find('input[type=text]');
			scale.val(currentPositionIndex);
		});
	});
	self.mousedown(function(){
		slideUpdate(self, colorLevel);
		$(document).mousemove(function(){
			slideUpdate(self, colorLevel);
			
			var currentPositionIndex = parseInt(self.slider('value') / thisStep, 10);
			var scale = self.find('input[type=text]');
			scale.val(currentPositionIndex);
		});
		inputWrap.addClass('show');
	}).mouseup(function(){
		inputWrap.removeClass('show');
		slideUpdate(self, colorLevel);
	});
});

function make_pst_sliders() {
	$('.blueSlider').each(function(){
		var self = $(this);
		var thisStep = 1 * $(this).attr('step');
		var colorLevel = self.find('.colorLevel');
		var inputWrap = self.find('.inputWrap');
		slideUpdate(self, colorLevel);
	});
}


$('.numbersRating').each(function(){
	var self = $(this);
	self.find('.number').click(function(){
		if ($(this).hasClass('pushed')) {
			var checkboxes = $(this).siblings('input[type=checkbox]');
			var thisIndex = $(this).index();
			$(this).removeClass('pushed');
			checkboxes.prop('checked', false);
			
			self.find('tr').each(function(){
				$(this).find('.number').eq(thisIndex).removeClass('unactive');
			});
		}
		else if ($(this).hasClass('unactive')) {
			return false;
		} else {
			var thisIndex = $(this).index();
			var oldIndex = $(this).siblings('.number.pushed').index();
			var checkboxes = $(this).siblings('input[type=checkbox]');
			
			checkboxes.prop('checked', false);
			checkboxes.eq(thisIndex).prop('checked', true);
			
			if (oldIndex >= 0) {
				$(this).siblings('.number.pushed').removeClass('pushed');
				self.find('tr').each(function(){
					$(this).find('.number').eq(oldIndex).removeClass('unactive');
				});
			}
			
			self.find('tr').each(function(){
				$(this).find('.number').eq(thisIndex).addClass('unactive');
			});
			$(this).removeClass('unactive').addClass('pushed');
		}
	});
});
$('.altLabels.radio label').click(function(){
	$(this).addClass('selected').siblings('label').removeClass('selected');
	$(this).find('input[type=radio]').prop('checked', true);
});

var flyContent = $('.content.withFlyMenu');
var flyMenu = $('.flyMenu');
var flyMenuWrap = flyMenu.find('.wrap');
var flyMenuWrap2 = flyMenu.find('.wrap2');
var title = flyMenu.find('.title');
var titleArr = title.find('.arr');
var flyHeight = flyMenu.outerHeight() - 2;
flyContent.css('minHeight', flyHeight);
title.height(flyHeight);
flyMenu.height(flyHeight);
flyMenuWrap2.height(flyHeight).css('position', 'absolute');

title.click(function(e){
	if (flyMenu.hasClass('imFly')) {
		flyMenuWrap2.animate({width: '18px'}, 'middle', function(){
			flyMenu.removeClass('imFly');
			titleArr.text('«');
		});
	} else {
		flyMenuWrap2.animate({width: '279px'}, 'middle', function(){
			flyMenu.addClass('imFly');
			titleArr.text('»');
		});
	}
});


// Таблица изотопов

var overlay = $('.generalOverlay');
var overlayWindow = overlay.find('.overlayWindow');

function showOverlay() {
	var documentHeight = $(document).height();
	var topOfset = $(window).scrollTop() + 110;
	overlayWindow.css({top: topOfset});
	overlay.height(documentHeight).animate({opacity:'show'}, 'fast');
}

function hideOverlay() {
	overlay.animate({opacity:'hide'}, 'fast');
}

if (!$('.periodicTable').hasClass('adminMode')) {
	// пользовательская часть
	$('.elementCell.activeState').mouseup(function(e){
		var self = $(this);
		if ($(e.target).parents('.generalOverlay').size() == 0) {
			//Собираем номер элемента.
			var elementNumber = parseInt(self.find('.atomicNumber').text(), 10);
			
			//Тут аякс запрос и код, который меняет html у блока .overlayWindow
			$('#toload').load('/uses/bin/Isotop/get_element_content.php?num='+elementNumber);
			
			
			//Вызываем пока оверлея
			showOverlay();
		}
	});
} else {
	//Админская часть. В случае необходимости.
}
$('.windowClose').click(function(){
	hideOverlay();
	return false;
});

overlay.click(function(e){
	if ($(e.target).is(overlay)) {
		hideOverlay();
	}
});

/*$('a.elem_click').live('click', function(e){
	e.preventDefault();
	
	return false;
});*/

// End DOM ready
});
