$(document).ready(function(){
	$('body').addClass('JS').removeClass('NOJS');
	$('.b-search').find('.b-search-fld').focusout();
	arrangePageFiles();
	$('input[placeholder]').placeholder();
})

$(window).load(function() { 
	if($('body').hasClass('in_')){
		if(!getCookie('biathlonrus_settings')){
			setCookie('biathlonrus_settings', "1");
		};
	};	
});

function setOnScrollEnd(el, callback)
{
   arguments.callee.timer = false;
   el.onscroll = function()
   {
      clearTimeout(arguments.callee.timer);
      arguments.callee.timer = setTimeout(function()
      {
         clearTimeout(arguments.callee.timer);
         callback();
      }, 0);
   }
}

$(window).load(function() { 
	if(!($('body').hasClass('in_'))){
		var leftSideOffset = $('.l-content-side').offset();
		var leftSideHeight = $('.l-content-side').height()-20;
		var linkMargin;
		if(leftSideOffset && leftSideHeight){
			$(window).scroll(function(){
				if ($(window).scrollTop() > leftSideOffset.top + leftSideHeight){
					if($('#b-top_link').length == 0){
						if($('body').hasClass('lang_0')){
							var linkText = 'Наверх'
						} else {
							var linkText = 'Up'
						};
						$('<div id="b-top_link" style="display:none"><a href="#top" class="local">'+linkText+' &uarr;</a></div>').appendTo('.l-content-side').fadeIn('slow');
					} else {
						$('#b-top_link').fadeIn('slow');
					};
					if ($(window).scrollTop() > leftSideOffset.top + leftSideHeight){
						linkMargin = $(window).scrollTop() - leftSideOffset.top - leftSideHeight+30;
						$('#b-top_link').css({'position':'fixed', 'left':leftSideOffset.left+'px', 'top':'30px'});
					} else {
						$('#b-top_link').css({'position':'relative', 'left':'auto', 'top':'auto'});
					};					
				} else {
					$('#b-top_link').fadeOut('fast');
				};
			});
		};
		$('#b-top_link').live('click', function(){
			var curPos = $(document).scrollTop();
			var scrollTime=curPos/7;
			$(this).fadeOut('fast');
			$("body,html").animate({"scrollTop":0},scrollTime);
			return false;	
		});
	}
})


$(function() {
	$('span.b-banner-place-frame').each(function(){
		var sPath = $(this).attr('src');
		$(this).load(sPath, function(){
			var banner = $(this).find('.banner');
			if(banner){
				var bannerWidth = banner.attr('width');
				var bannerHeight = banner.attr('height');
				$(this)
					.css({'width':bannerWidth+'px','height':bannerHeight+'px'})
					.parent().css({'width':bannerWidth+'px','height':bannerHeight+'px'});
			};
		});
	})
});

$(function(){
	$('#b-navigation_major .b-navigation-line_parent i.arrow').click(function(){
		var navigationLine = $(this).parent();
		if($(navigationLine).hasClass('b-navigation-line_parent_hover')){
			$(navigationLine)
				.removeClass('b-navigation-line_parent_hover');
		} else {
			$(navigationLine).siblings().removeClass('b-navigation-line_parent_hover').end().addClass('b-navigation-line_parent_hover');
			var submenuLeft = $(navigationLine).find('.b-navigation-item_major').innerWidth()+10;
			var submenuWidth = $(navigationLine).find('.b-navigation-item-children').innerWidth();
			$(navigationLine)
				.width(submenuWidth+submenuLeft+1)
				.find('.b-navigation-item-children').css({'left':submenuLeft+'px'});
		};
	});
})

$(function(){
	$(document).click(function(e){
	    if ($(e.target).parents().filter('#b-navigation_major').length != 1) {
	        $('#b-navigation_major .b-navigation-line_parent').removeClass('b-navigation-line_parent_hover');
	    }
	});
})

$(function(){
	$('dl.tabs_horizontal dt.tab a, dl.tabs_horizontal dt.tab span').click(function(){
		var doRedirect = 0;
		if($(this).parent().hasClass('selected')){
			doRedirect = 1;
		};
		$(this).parent()
			.siblings().removeClass('selected').end()
			.next('dd.tab').andSelf().addClass('selected');
		if(doRedirect != 1){
			if($(this).parent().parent().hasClass('tabs_anchor')){
				var sAnchor = $(this).parent().attr('data-id');
				location.replace('#'+sAnchor);
			} else {
				return false;
			};
		};
	});
	
	$('dl.tabs_anchor').each(function(){
		var sDocumentLocation = document.location.hash;
		var sId = sDocumentLocation.replace('#','');
		if(sId.length){
			$(this).find('dt.tab[data-id="'+sId+'"]').siblings().removeClass('selected').end().next('dd.tab').andSelf().addClass('selected');
		};
	});
})

$(function(){
	$('dl.tabs_vertical dt.tab_dynamic span').click(function(){
		if($(this).parent().hasClass('selected')) {
			$(this).parent()
				.removeClass('selected')
				.next('dd').removeClass('selected').end();
			
		} else {
			$(this).parent()
				.addClass('selected')
				.next('dd').addClass('selected').end();
		}
	});
})


$(function(){
    if($('table.zebra').length > 0){
        $('table.zebra').each(function(){
            $(this).find('tbody tr:even').addClass('color_0');
            $(this).find('tbody tr:odd').addClass('color_1');
        });
    };
    if($('ul.zebra').length > 0){
        $('ul.zebra').each(function(){
            $(this).find('li.b-forum_message:even').addClass('color_0');
            $(this).find('li.b-forum_message:odd').addClass('color_1');
        });
    };
})

function rand(min, max){
	if(max) {
		return Math.floor(Math.random() * (max - min + 1)) + min;
	} else {
		return Math.floor(Math.random() * (min + 1));
	}
}

$(function(){
	var inputValue = $('.b-search .b-search-fld').val();
	if(inputValue == '' || inputValue == undefined){
		$('.b-search-label').show();
	};
	$('.b-search')
		.find('label')
			.click(function(){
				$('.b-search .b-search-fld').focus();
			}).end()
		.find('.b-search-fld')
			.click(function(){
				$('.b-search-label').hide();
			})
			.focusin(function(){
				$('.b-search-label').hide();
			})
			.focusout(function(){
				if($(this).val() == ''){
					$('.b-search-label').show();
				}
			});
		
})

function getCookie(name) {
	var matches = document.cookie.match(new RegExp(
	  "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
	))
	return matches ? decodeURIComponent(matches[1]) : undefined 
}

function setCookie(name, value, props) {
	props = props || {}
	var exp = props.expires
	if (typeof exp == "number" && exp) {
		var d = new Date()
		d.setTime(d.getTime() + exp*1000)
		exp = props.expires = d
	}
	if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

	value = encodeURIComponent(value)
	var updatedCookie = name + "=" + value
	for(var propName in props){
		updatedCookie += "; " + propName
		var propValue = props[propName]
		if(propValue !== true){ updatedCookie += "=" + propValue }
	}
	document.cookie = updatedCookie

}

function deleteCookie(name) {
	setCookie(name, null, { expires: -1 })
}

$(function(){
	$('#b-team .b-page-switcher-item').click(function(){
		var itemFilter = $(this).attr('filter');
		var itemTeamGroup = $(this).attr('team_group');
		if(itemFilter == 0){
			$('#b-team .b-persons-item').show();
		} else {
			$('#b-team')
				.find('.b-persons-item[filter!='+itemFilter+']').hide().end()
				.find('.b-persons-item[filter='+itemFilter+']').show();
		};
		if(itemTeamGroup){
			$('#b-team')
				.find('.b-persons-item[team_group!='+itemTeamGroup+']').hide().end()
				.find('.b-persons-item[team_group='+itemTeamGroup+']').show();
		};
		$(this)
			.siblings().removeClass('selected').end()
			.addClass('selected');
	});
})

$(function(){
	$('.b-showhide').click(function(){
		var targetObjectId = $(this).attr('show');
		var targetObjectClass = $(this).attr('show_class');
		if(targetObjectId){
			var targets = $('#'+targetObjectId);
		} else if(targetObjectClass){
			var targets = $('.'+targetObjectClass);
		};
		if(targets.length > 0){
			targets.each(function(){
				if($(this).hasClass('b-js_hidden')){
					$(this).slideDown('fast', function() {
				    	$(this).removeClass('b-js_hidden');
					});
				    if($(this).hasClass('b-showhide_once')){
				    	$(this).slideUp('fast');
				    }
				} else {
					$(this).slideUp('fast', function() {
				    	$(this).addClass('b-js_hidden')
					});
				};
			})
		};
		return false;
	});
	
	$('input:checkbox.a-check_all').each(function(){
		var params = $(this).attr('params'),
		targetField = $(this);
		if (!params) return;
		var str = params.split(';'),
		fieldName = str[0];
		if($('input:checkbox[name='+fieldName+']').length > 0 && $('input:checkbox:checked[name='+fieldName+']').length == $('input:checkbox[name='+fieldName+']').length){
			$(this).attr('checked','checked');
		}
		$(this).click(function(){
			if($(this).attr('checked')){
				$('input:checkbox[name='+fieldName+']').attr('checked','checked');
			} else {
				$('input:checkbox[name='+fieldName+']').removeAttr('checked');
			}
		});
		$('input:checkbox[name='+fieldName+']').click(function(){
			if(!$(this).attr('checked')){
				targetField.removeAttr('checked');
			}
			if($('input:checkbox:checked[name='+fieldName+']').length == $('input:checkbox[name='+fieldName+']').length){
				targetField.attr('checked','checked');
			}
		});
	});
})

function TestLogin(uid){
	
	var UsernameField = $('#auth\\.name_'+uid);
	var PasswordField = $('#auth\\.password_'+uid);
	var SessionSubmit = $('#auth\\.submit_'+uid);
	if (!UsernameField || !PasswordField || !SessionSubmit) return;
	if(!UsernameField.val() || !PasswordField.val()){
		SessionSubmit.attr('disabled','disabled');
	} else {
		SessionSubmit.removeAttr('disabled');
	};
}

$(function(){
	$('#b-check_user_link').click(function(){
		var sPath = '/r/check_user/?name='+$('#auth_name').val();
		$.get(sPath, function(data){
			if(data == '0'){
				$('#auth_name').css('background-color','#00FF00');
			} else {
				$('#auth_name').css('background-color','#FF0000');
			}
		});
		return false;
	});
});

$(function(){
	if($.validator){
		$.validator.setDefaults({
			submitHandler: function(form) { 
				sF();
				trimFields(form);
				form.submit();
			}
		});
	 
		$("#workform").validate({
			messages: {
				object_dt: {
					required: "Пожалуйста, укажите дату"
				}
			}
		});
	}
})


/* блокировка всех кнопок при сабмите формы */
function sF(){
	$('.btn_submit').each(function(){
		$(this)
			.val('Секундочку...')
			.addClass('btn_wait')
			.attr({'disabled':'disabled'})
			
	})
}

$(function(){
	$('li.b-contests-item_multi').hover(
		function(){
			$(this).addClass('b-contests-item_hover');
		},
		function(){
			$(this).removeClass('b-contests-item_hover');
		}
	).click(function(){
		var sLink = $(this).find('.b-contests-item-stage a').attr('href');
		location.replace(sLink);
	});
});


$(function(){
	$('ul.b-page-years-items li.b-page-years-item_more').click(function(){
		$(this).parent().find('.b-js_hidden').hide().removeClass('b-js_hidden').show('fast').end().end().hide();
	});
});

function citeSelectedText(){
	if(window.getSelection){
		selected=window.getSelection();
		seltxt=selected.toString();
	} else if(document.selection){
		selected = document.selection;
		nslct=selected.createRange();
		seltxt=nslct.text;
	};
	return seltxt;
}


$(function(){
	$('.b-forum_message-answer').click(function(){
		var messageId = parseInt($(this).parent().attr('msg_id'));
		var messageLvl = $(this).parent().attr('msg_lvl');
		var messageTitle = $(this).parent().attr('msg_title');
		$('#forum_answer_form_place_'+messageId).append($('#forum_answer_form')).removeClass('b-js_hidden');
		$('#forum_answer_form input[name="message_parent_id"]').val(messageId);
		$('#forum_answer_form input[name="message_parent_level"]').val(messageLvl);
		$('#forum_answer_form input[name="message_parent_title"]').val(messageTitle);
		return false;
	});
	$('.b-forum_comment-title').click(function(){
		var messageId = parseInt($(this).parent().attr('msg_id'));
		var messageLvl = $(this).parent().attr('msg_lvl');
		var messageTitle = $(this).parent().attr('msg_title');
		$('#forum_answer_form_place_0').append($('#forum_answer_form')).removeClass('b-js_hidden');
		$('#forum_answer_form input[name="message_parent_id"]').val(messageId);
		$('#forum_answer_form input[name="message_parent_level"]').val(messageLvl);
		$('#forum_answer_form input[name="message_parent_title"]').val(messageTitle);
		return false;
	});
});

$(function(){
	$('.b-forum_message-cite').click(function(){
		var messageId = $(this).parent().attr('msg_id');
		var messageLvl = $(this).parent().attr('msg_lvl');
		var messageTitle = $(this).parent().attr('msg_title');
		var messageParams = $(this).parent().attr('msg_params');
		var sPath = '/r/f_message/?message='+messageId+'&'+messageParams+'&r='+Math.random()*1000000;
		if(citeSelectedText()){
			var citeText = '[quote]'+citeSelectedText()+'[/quote]';
			$('#forum_answer_form textarea').replaceSelection(citeText);
		} else {
			$.get(sPath, function(data){
				$('#forum_answer_form textarea').replaceSelection(data);
			});
		};
		$('#forum_answer_form_place_'+messageId).append($('#forum_answer_form')).removeClass('b-js_hidden');	
		$('#forum_answer_form input[name="message_parent_id"]').val(messageId);
		$('#forum_answer_form input[name="message_parent_level"]').val(messageLvl);
		$('#forum_answer_form input[name="message_parent_title"]').val(messageTitle);
		return false;
	});
});


$.fn.extend({
		replaceSelection: function(replacement)
		{
			re = /(^\s+|\s+$)/g;
			this.each(
				function(i)
				{
	    			if (document.selection)
	    			{
	      				this.focus();
	      				sel = document.selection.createRange();
	      				sel.text = replacement;
	      				sel.text = sel.text.replace(re, "");
	      				this.focus();
	    			}
	    			else if (this.selectionStart || this.selectionStart == '0')
	    			{
	      				var startPos = this.selectionStart;
	      				var endPos = this.selectionEnd;
	      				var scrollTop = this.scrollTop;
	      				this.value = this.value.substring(0, startPos)+replacement+this.value.substring(endPos,this.value.length);
	      				this.value = this.value.replace(re, "");
	      				this.focus();
	      				this.selectionStart = startPos + replacement.length;
	      				this.selectionEnd = startPos + replacement.length;
	      				this.scrollTop = scrollTop;
	    			}
	    			else
	    			{
	      				this.value += replacement;
	      				this.value = this.value.replace(re, "");
	      				this.focus();
	    			}
	  			}
	  		)
	  		return false;
		}
});

$(function(){
	$('.b-forum_message .process_message').click(function(){
		var processType = parseFloat($(this).attr('process_type'));
		// 1 - delete message, 2 - delete private message, 3 - archive private message, 4 - warn message user, 5 - ban message user, 6 - unban message user
		// 7 - lock message, 8 - unlock message
		var warnMessage, errorMessage, successMessage;
		switch(processType){
			case 1:
				warnMessage = 'Точно удалить?'
				break			
			case 2:
				warnMessage = 'Точно удалить?'
				break
			case 4:
				warnMessage = 'Точно предупредить?'
				break
			case 5:
				warnMessage = 'Точно забанить?'
				break
			case 6:
				warnMessage = 'Точно разбанить?'
				break
			case 10:
				warnMessage = 'Точно пожаловаться?'
				break
			default:
				warnMessage = '';
		};
		if(warnMessage && confirm(warnMessage) || !warnMessage){
			var messageId = $(this).parent().attr('msg_id');
			var threadId = $(this).parent().parent().parent().attr('thread');
			var sParams = $(this).attr('params');
			var sPath = '/r/f_process_message/?type='+processType+'&'+sParams+'&r='+Math.random()*1000000;
			$('#msg_'+messageId+' .info')
				.find('.b-action_result').slideUp('fast').remove().end()
				.append('<div class="b-action_result"></div>');
			$('#msg_'+messageId+' .b-action_result').load(sPath, function(){
				var actionResult = parseFloat($(this).html());
				switch(actionResult){
					case 10:
						errorMessage = 'Не удаётся удалить сообщение';
						break
					case 11:
						$('#msg_'+messageId).slideUp('fast');
						break
					case 12:
						$('.b-forum_message[thread="'+threadId+'"]').slideUp('fast');
						break
					case 20:
						errorMessage = 'Не удаётся удалить сообщение';
						break
					case 21:
						errorMessage = 'Сообщение не найдено';
						brea
					case 22:
						$('#msg_'+messageId).slideUp('fast');
						break
					case 32:
						$('#msg_'+messageId).slideUp('fast');
						break
					case 41:
					case 42:
					case 43:
						actionResult = actionResult-40;
						successMessage = 'Пользователь предупреждён. Это его '+actionResult+'-е предупреждение!';
						$('#msg_'+messageId +' .warnings').html(actionResult);
						break
					case 44:
						actionResult = actionResult-40;
						successMessage = 'Пользователь забанен! Это его '+actionResult+'-е предупреждение!';
						$('#msg_'+messageId +' .warnings').html(actionResult).addClass('warnings_ban');
						break
					case 51:
						successMessage = 'Пользователь забанен!';
						$('#msg_'+messageId +' .warnings').html('&times;').addClass('warnings_ban');
						break
					case 62:
						successMessage = 'Пользователь разблокирован';
						$('#msg_'+messageId +' .warnings').html('2').removeClass('warnings_ban');
						break
					case 81:
						successMessage = 'Теперь комментарии можно добавлять';
						$(this).parent().find('.process_message[process_type="8"]').attr('process_type','7').html('Закрыть');
						break
					case 82:
						successMessage = 'Теперь комментарии нельзя добавлять';
						$(this).parent().find('.process_message[process_type="7"]').attr('process_type','8').html('Открыть');
						break
					case 90:
						errorMessage = 'Нет доступа к сообщению';
						break
					case 91:
						errorMessage = 'Недостаточно прав для операции';
						break
					case 92:
						successMessage = 'Сообщение не найдено';
						break
					case 93:
						successMessage = 'Сообщение успешно добавлено в избранное';
						break	
					case 103:
						successMessage = 'Жалоба принята. Модератор скоро проверит это сообщение';
						break
					case 123:
						successMessage = 'Тема добавлена в отслеживаемые';
						break
					case 94:
						successMessage = 'Сообщение успешно удалено из избранного';
						$('#msg_'+messageId +'.b-forum_message_favourite').slideUp().remove();
						break
					case 104:
						errorMessage = 'Вы уже жаловались на это сообщение. Модератор скоро его проверит';
						break	
					case 114:
						successMessage = 'Сообщение удалено из жалоб';
						$('#msg_'+messageId).slideUp().remove();
						break
					case 124:
						successMessage = 'Тема успешно удалена из отслеживаемых';
						break
					default:
						errorMessage = 'Ошибка ' + actionResult +' - не удаётся произвести операцию';
				};
				if(errorMessage){
					$(this).show().html(errorMessage).addClass('b-action_result_error');
				};
				if(successMessage){
					$(this).show().html(successMessage).addClass('b-action_result_success');
				};
			});
			return false;
		} else {
			return false;
		}
	});
	$('#show_poll_results').click(function(){
		$(this).hide();
		$('#b-forum_poll .b-js_hidden, .b-poll .b-js_hidden').removeClass('b-js_hidden');
		return false;
	});
	$('.b-forum_message .change_priority').click(function(){
		var messageId = $(this).parent().attr('msg_id');
		var sParams = $(this).attr('params');
		var sPath = '/r/f_change_priority/?'+sParams+'&r='+Math.random()*1000000;
		$(this).parent().parent().find('.b-action_result').slideUp('fast').remove().end().append('<div class="b-action_result"></div>');
		$('#msg_'+messageId+' .b-action_result').load(sPath, function() {
			var actionResult = parseInt($(this).html());
			if(actionResult >= 0){
				$(this).show().html('Приоритет успешно изменён').addClass('b-action_result_success').parent().find('.priority').html(actionResult);
			} else {
				$(this).show().html('Не удалось изменить приоритет').addClass('b-action_result_error');
			}
		});
		return false;
	});
	$('.b-forum_message').mouseover(function() {
		$(this).find('.links_hover a').removeClass('b-js_hidden').end().find('.tools').removeClass('b-js_hidden');
	}).mouseout(function(){
		$(this).find('.links_hover a').addClass('b-js_hidden').end().find('.tools').addClass('b-js_hidden');
	});
	$('.b-action_result').live('click',function(){
		$(this).remove();
	})
	$('.b-forum_messages_moderate .b-forum_message .title_lazy').click(function(){
		$(this).slideUp().prev().hide().removeClass('b-js_hidden').slideDown();
		return false;
	});
	$('.b-forum_message .info .author').click(function(){
		var userName = '[b]'+$(this).html()+'[/b]';
		$('#forum_answer_form textarea').replaceSelection(userName);
	});
	$('.b-forum_message .like').click(function(){
		var sParams = $(this).attr('params');
		var sPath = '/r/f_like/?'+sParams+'&r='+Math.random()*1000000;
		$(this).parent().find('.tools').find('.b-action_result').slideUp('fast').remove().end().append('<div class="b-action_result"></div>');
		$(this).parent().find('.b-action_result').load(sPath, function() {
			var actionResult = parseInt($(this).html());
			if(actionResult >= 0){
				$(this).show().html('Ура!').addClass('b-action_result_success');
			} else {
				$(this).show().html('Увы :(').addClass('b-action_result_error');
			}
		});
		return false;
	});
});


function testForm(s_id){
	var formFields = $(s_id + ' *[required]');
	var submitForm = $(s_id + ' input[type=submit]');
	var bShowSubmit = 1;
	formFields.each(function(){
		if(!$(this).val()){
			bShowSubmit = 0;
		};
	});
	if(bShowSubmit){
		submitForm.removeAttr('disabled');
	} else {
		submitForm.attr('disabled','disabled');
	};
};


$(function(){
	$('dl.b-man_section-content-answers-medals dt.hidden span').click(function(){
		if($(this).parent().next().hasClass('b-js_hidden')){
			$(this).parent().next().slideDown('fast').removeClass('b-js_hidden');
		} else {
			$(this).parent().next().slideUp('fast').addClass('b-js_hidden');
		}
	});
});

function arrangePageFiles(){
	
	
}
