$(function(){
	initOpenClose();
	initCalendarScroll ();
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});
	fixMenu();
	initLangDrop();
	initGallery({
		holder:'#slideshow',
		list:'ul.slideshow_list',
		switcher:'ul.control > li',
		effect:'fade',
		autoRotation:7000,
		stopOnHover:true
	});
	initGallery({
		holder:'.video_gallery',
		list:'.frame ul',
		prev:'.prev a',
		next:'.next a',
		onStart:function(list, a){
			var count = list.children().length;
			var act = a+1;
			list.parents('.block_content').find('span.number').text(act+' из '+count);
		},
		onChange:function(list, a){
			var count = list.children().length;
			var act = a+1;
			list.parents('.block_content').find('span.number').text(act+' из '+count);
		},
		disableBtn:true
	});
	/*jQuery('div.accordion ul.acc').acc({
		speed: 400,
		active: 'active',
		list: '.children()',
		opener: '.accordion_head',
		slide: '.accordion_expanded'
	});*/
	initTabs();
	initTabsAcc();
});

function initCalendarScroll (){
	var nav_step = 672;
	var table_step = 720;
	var table_width = $('.content ul li','.calendar_events').size() * table_step;
	var m = parseInt($('.content ul').css('margin-left'));
	$('.calendar_events .data .holder ul').css('margin-left',(m / table_step * nav_step)+'px')
	$('.calendar_events a.prev').click(function(){
		if ($('.calendar_events li:animated, .calendar_events ul:animated, .calendar_events div:animated').length > 0)
			return false;
			
		if ((parseInt($('.content ul', '.calendar_events').css('margin-left')) + table_step) <= '0') {
			$('.content ul', '.calendar_events').animate({
				marginLeft: '+=' + table_step + 'px'
			}, 500);
			$('.data ul','.calendar_events').animate({
				marginLeft:'+='+ nav_step+'px'
			},500);
		}
		return false;
	});
	$('.calendar_events a.next').click(function(){
		if ($('.calendar_events li:animated, .calendar_events ul:animated, .calendar_events div:animated').length > 0)
			return false;
			
		if ((parseInt($('.content ul', '.calendar_events').css('margin-left')) - 2*table_step) >= ((-1)*table_width)) {
			$('.content ul', '.calendar_events').animate({
				marginLeft: '-=' + table_step + 'px'
			}, 500);
			$('.data ul','.calendar_events').animate({
				marginLeft:'-='+ nav_step+'px'
			},500);
		}
		return false;
	});
}


function fixMenu(){
	var count = $('#header ul.nav > li').length;
	$('#header ul.nav > li').each(function(i){$(this).css('zIndex', count-i)});
}

function initOpenClose(){
	$('.dropdown:not(.lang-drop)').each(function(){
		var _this = $(this);
		_this.find('.title a').click(function(){
			if ($(this).parents('.dropdown').find('.menu_drop').css('display') == 'block')
				$(this).parents('.dropdown').find('.menu_drop').slideUp(400);
			else
				$(this).parents('.dropdown').find('.menu_drop').slideDown(400);
			return false;
		})
		_this.find('.menu_drop li a').click(function(){
			$(this).parents('.dropdown').find('a > span').text($(this).text());
			$(this).parents('.dropdown').find('.menu_drop').slideUp(400);
			return false;
		})
	});
	$('body').click(function(){
		$('.dropdown:not(.lang-drop) .menu_drop').slideUp(400);
	});
	$('.opening h3 a').click(function(){
		$(this).parent().toggleClass('active');
		$(this).parents('.opening').find('.expanded').slideToggle(400);
		return false;
	})	
}

function initTabsAcc() {
	jQuery('.statistics').each(function(){
		var _list = jQuery(this);
		var _links = _list.find('a.tab');

		_links.each(function() {
			var _link = jQuery(this);
			
			/*var _href = _link.attr('href');*/
			/*var _tab = jQuery(_href);*/

			/*if(_link.hasClass('active')) _tab.show();
			else _tab.hide();*/

			_link.click(function(){
				/*_links.filter('.active').each(function(){
					jQuery(jQuery(this).removeClass('active').attr('href')).hide();
				});*/
				$('.statistics .menu_drop_holder .active').removeClass('active');
				_link.addClass('active');
				
				$.ajax({
					url : '/.statistics/',
					type:'POST',
				    dataType: "text",
					data:{ tournament: _link.attr('tournament'), season: _link.attr('season'), activetab : _link.attr('activetab') },
					error: function(request,errorStr, e) {
					},
        			success: function(data){
        				_list.find('.accordion').html(data);
        			}
				});
				/*_tab.show();*/
				return false;
			});
		});
	});
}

function initTabs() {
	jQuery('.tabset ul.nav').each(function(){
		var _list = jQuery(this);
		var _links = _list.find('a.tab');

		_links.each(function() {
			var _link = jQuery(this);
			var _href = _link.attr('href');
			var _tab = jQuery(_href);

			if(_link.parent().hasClass('active')) _tab.show();
			else _tab.hide();

			_link.click(function(){
				_links.parent().filter('.active').each(function(){
					jQuery(jQuery(this).removeClass('active').find('a.tab').attr('href')).hide();
				});
				_link.parent().addClass('active');
				_tab.show();
				return false;
			});
		});
	});
}

function initLangDrop(){
	$('.lang-drop').each(function(){
		var _this = $(this);
		_this.addClass('close');
		var hold = _this.find('.menu_drop').show();
		var list = hold.find('.menu_drop_holder ul');
		var h = list.height();
		var li = list.children();
		var count = li.length;
		var act;
		
		list.height(h/count);
		openDrp();

		function openDrp(){
			li.unbind('click').click(function(){
				_this.removeClass('close');
				list.animate({height:h}, {queue:false, duration:300, complete:function(){
					_this.removeClass('close');
					li.removeClass('active');
					closeDrp();
					list.addClass('opened');
				}});
			});			
		}
		function closeDrp(){
			li.unbind('click').click(function(){
				var link = $(this);
				list.animate({height:h/count}, {queue:false, duration:300, complete:function(){
					_this.addClass('close');
					li.removeClass('active');
					link.addClass('active');
					list.prepend(link);
					openDrp();
					list.removeClass('opened');
				}});
				return false;
			});
		}
		
		$('body').click(function(){
			if(list.hasClass('opened')) {
				list.animate({height:h/count}, {queue:false, duration:300});
				_this.addClass('close');
				list.removeClass('opened');
				list.children().unbind('click').eq(0).addClass('active');
				openDrp();
			}
		});
	});
}

jQuery.fn.acc = function(_options){
	var _options = jQuery.extend({
		speed: 400,
		active: 'active',
		list: '.children()',
		opener: 'a.opener',
		slide: 'div.slide'
	}, _options);
	return this.each(function(){
		var _list = eval('jQuery(this)' + _options.list);
		var _active = _options.active;
		var _speed = _options.speed;
		var _a = _list.index(_list.filter('.' + _active + ':eq(0)'));
		if(_a != -1) _list.removeClass(_active).eq(_a).addClass(_active);
		for(var i = 0; i < _list.length; i++){
			_list.eq(i).data('btn', _list.eq(i).find(_options.opener).eq(0));
			_list.eq(i).data('box', _list.eq(i).children(_options.slide).eq(0));
			if(i == _a) _list.eq(i).data('box').css('display', 'block');
			else _list.eq(i).data('box').css('display', 'none');
			_list.eq(i).data('btn').data('ind', i);
			_list.eq(i).data('btn').click(function(){
				if (_list.eq(jQuery(this).data('ind')).data('box').length != 0) {
					changeEl(jQuery(this).data('ind'));
					return false;
				}
			});
		}
		var anim_f = true;
		var a_h, ind_h, _k;
		function changeEl(_ind){
			if(anim_f){
				anim_f = false;
				if(_a == _ind){
					_list.eq(_a).removeClass(_active).data('box').animate({height: 0}, {
						duration: _speed,
						complete: function(){
							jQuery(this).css({display:'none', height:'auto'});
							_a = -1;
							anim_f = true;
						}
					});
				}
				else{
					_list.eq(_ind).data('box').css('display', 'block');
					ind_h = _list.eq(_ind).data('box').outerHeight();
					_list.eq(_ind).data('box').height(0);
					if(_a != -1){
						a_h = _list.eq(_a).removeClass(_active).data('box').outerHeight();
						_k = a_h/ind_h;
					}
					_list.eq(_ind).addClass(_active).data('box').animate({height: ind_h}, {
						duration: _speed,
						step: function(t_h){
							if(_a != -1) _list.eq(_a).data('box').height(a_h - t_h*_k);
						},
						complete: function(){
							_list.eq(_ind).data('box').height('auto');
							if(_a != -1) _list.eq(_a).data('box').css({display:'none', height: 'auto'});
							_a = _ind;
							anim_f = true;
						}
					});
				}
			}
		}
	});
}

function initGallery(option){
	var hold = jQuery(option.holder);
	var duration = option.autoRotation;
	var activeSlide = option.activeSlide || 0;
	var step = option.step || 1;
	var disableBtn = option.disableBtn || false;
	var switcher = option.switcher || false;
	var event = option.event || 'click';
	var onStart = option.onStart;
	var onChange = option.onChange;
	
	hold.each(function(){
		var _this = jQuery(this);
		var list = _this.find(option.list),
			count = list.children().length,
			w = list.children().outerWidth() * step,
			_t,
			a = 0,
			r = a,
			f = true,
			stopTimer = false;
		var holdW = list.parent().width();
		var visEl = Math.ceil(holdW/w);
		
		if(count <= visEl) f = false;
		
		list.css({marginLeft:-w*a});
		
		if(typeof onStart === 'function') onStart(list, a);
		
		if(option.prev && option.next){
			var prev = _this.find(option.prev).attr('rel', 'prev').click(animateSlide);
			var next = _this.find(option.next).attr('rel', 'next').click(animateSlide);
		}
		if(option.switcher){
			switcher = _this.find(switcher);
			switcher.eq(r).removeClass('active');
			switcher.eq(a).addClass('active');
			switcher.bind(event, function(){
				var ind = switcher.index($(this))+activeSlide;
				stopTimer = true;
				animateSlide(ind);
				return false;
			});
		}

		if(disableBtn){
			if(a == 0 && count > 1) {
				prev.parent().addClass('prev_disabled');
				next.parent().removeClass('next_disabled');
			}
			if(a == count-1 && count > 1) {
				prev.parent().removeClass('prev_disabled');
				next.parent().addClass('next_disabled');
			}
			if(count == 1 || count <= visEl) {
				prev.parent().addClass('prev_disabled');
				next.parent().addClass('next_disabled');
			}
		}
		
		if(option.autoRotation && f) runTimer();
		if(option.effect == 'fade') {
			list.children().css('opacity', 0);
			list.children().eq(a).css('opacity', 1).addClass('active');
		}
		if(option.stopOnHover && _t){
			list.mouseenter(function(){
				clearTimeout(_t);
			}).mouseleave(runTimer);
		}
		function runTimer(){
			_t = setTimeout(function(){
				animateSlide('next');
			}, duration);
		}
		function animateSlide(e){
			if(f){
				r = a;
				if(typeof e == 'string' && e == 'next') a++;
				else if(typeof e == 'number') a=e;
				else{
					if(e.target.rel == 'next') a++;
					else if(e.target.rel == 'prev') a--;
				}
				if(_t) clearTimeout(_t);
				if(a == count) a=0;
				else if(a == -1) a=count-1;
				
				list.children().eq(r).removeClass('active');
				list.children().eq(a).addClass('active');
				
				if(option.switcher){
					switcher.eq(r).removeClass('active');
					switcher.eq(a).addClass('active');
				}
				
				if(disableBtn){
					if(a == 0) {
						prev.parent().addClass('prev_disabled');
						next.parent().removeClass('next_disabled');
					}
					else if(a + visEl == count) {
						prev.parent().removeClass('prev_disabled');
						next.parent().addClass('next_disabled');
					}
					else {
						prev.parent().removeClass('prev_disabled');
						next.parent().removeClass('next_disabled');
					}
				}
				
				if(option.effect == 'fade'){
					list.children().eq(r).animate({opacity:0}, {queue:false, duration:700});
					list.children().eq(a).animate({opacity:1}, {queue:false, duration:700, complete:function(){
						if(option.autoRotation && f && !stopTimer) runTimer();
						if(typeof onChange === 'function') onChange(list, a);
					}});
				}
				else{
					if(a + visEl > count) a = 0;
					
					list.animate({marginLeft:-w*a}, {queue:false, duration:700, complete:function(){
						if(option.autoRotation && f && !stopTimer) runTimer();
						if(typeof onChange === 'function') onChange(list, a);
					}});
				}
			}
			return false;
		}
	});
};

function clearFormFields(o){
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filterClass) o.filterClass = "default";
	if(o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++ ) {
			if((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass) == -1) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function ()	{
					if(this.valueHtml == this.value) this.value = "";
					if(this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if(o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if(this.value == "") {
						this.value = this.valueHtml;
						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
					}
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
				if(o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
		}
	}
	if(o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for(var i=0; i<textareas.length; i++) {
			if(textareas[i].className.indexOf(o.filterClass) == -1) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function() {
					if(this.value == this.valueHtml) this.value = "";
					if(o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function() {
					if(this.value == "") this.value = this.valueHtml;
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if(el) el.style.display = "none";
		if(el2) el2.style.display = "inline";
	}
}

$().ready(function(){
	$('#events_filter #show_events_only').click(function(){
		$('#match_report tr').each(function(){
			if (!$(this).hasClass('event')){
				$(this).css('height', '0px');
				$(this).css('display', 'none');
			}
		})
		$('#match_report').addClass('merged');
		$('#events_filter #show_all_table').parent().removeClass('active');
		$(this).parent().addClass('active');
		return false;
	});
	
	$('#events_filter #show_all_table').click(function(){
		$('#match_report tr').each(function(){
			$(this).css('height', 'auto');
			$(this).css('display', 'table-row');
		})
		$('#match_report').removeClass('merged');
		$('#events_filter #show_events_only').parent().removeClass('active');
		$(this).parent().addClass('active');
		return false;
	});
	
	
	
	$('.accordion .accordion_head').live('click', function(){
		var _item = $(this);
		var _espanded = _item.next('.accordion_expanded');
		var _li = _item.parent();
		var _list = _li.parent();
		
		_list.find('li').each(function(){
			if ($(this).hasClass('active')){
				$(this).find('.accordion_expanded').slideUp(400);
				$(this).removeClass('active');
			}
		});
		
		_espanded.slideDown(400);
		_li.addClass('active');
	});
	
	$('.statistics .nav li a').click(function(){
		
		var _index = $(this).attr('index');
		var _index2 = (_index == 'st1' ? 'st2' : 'st1');
		
		$(this).parent().parent().find('.active').removeClass('active');
		$(this).parent().addClass('active');
		
		$('.statistics #'+_index).show();
		$('.statistics #'+_index2).hide();
		
		$('.statistics #'+_index+' .menu_drop ul li:first-child a').click();
		return false;
	});
	
});


