(function($){
	$.fn.ultimaLoad = function(callback){	
		this.each(function(){
			if (this.complete || this.readyState == 'complete'){  
				callback();
			}else{
				$(this).bind('load readystatechange', function(e){
					if (this.complete || (this.readyState == 'complete' && e.type == 'readystatechange')){
						$(this).unbind('load readystatechange');
						callback();							
					}
				});
			}
		});
		return this;
	};

	$.fn.charTip = function(charCam){
		var el = this;
		this.data('el',el);
		if(charCam) var elo = charCam.getEl(el);
		var elh = charHash[el.attr('id')];
		this._showTip = function(){
			var ct = $('<div class="chartip"><div class="t"></div><div class="m">'+elh.t+'</div><div class="b"></div><div class="b2"></div></div>');
			ct.css({'visibility':'hidden'}).hover(
				function(){el.data('hob1',true)},
				function(){el.data('hob1',false);if(charCam.preset=='stage')el._hideTip();}
			);
			ct.appendTo($('body'));
			var y = el.offset().top - ct.height() + 20 + (elh.ctt?elh.ctt:0); 
			var x = el.offset().left -155 + (elh.ctl?elh.ctl:0);
			$('.b2',ct).css({'margin-left':(x<0 ? (el.offset().left-54>0?el.offset().left-54:4) : (x+ct.width()>charCam.jq_viewport.width() ? 200 : 96))});
			ct.css({'top':y,'left':(x<0 ? 4 : (x+ct.width()>charCam.jq_viewport.width() ? charCam.jq_viewport.width() - ct.width() - 4 : x)),'visibility':'visible','display':'none'});
			!$.browser.msie ? ct.fadeIn() : ct.show;
			el.data('chartip',ct);
		}
		this._hideTip = function(){
			if(el.data('chartip')){
				setTimeout(function(){
					if(!el.data('hob1')){
						el.data('chartip').fadeOut(300,function(){$(this).remove();});
						el.data('chartip',false);
					}
				},30);
			}
		}		
		this._showCharList = function(){			
			$('<div class="charlist fixedsize"></div>').appendTo(el.parent());
			el._showTip();
			var cn = $('<div class="charnav"><a href="" class="prev"></a><a href="" class="up"></a><a href="" class="next"></a></div>');
			cn.css({				
				'width':el.css('width'),
				'top':el.offset().top+'px',
				'left':el.css('left')
			}).appendTo($('body'));			
			$('a.up',cn).css({'margin-right': (elh.nar?elh.nar:-44)+'px'}).click(function(){
				$(this).unbind('click').click(function(){return false;});
				el._hideCharList();
				$('.charlist, .charnav').queue(function(){el._backToStage();$(this).dequeue();});
				return false;
			});
			$('a.prev',cn).css({'margin-top': (el.css('height').replace(/px/,'')/2) + 'px', 'margin-left': (elh.nal?elh.nal:-44)+'px'}).click(function(){
				$(this).unbind('click').click(function(){return false;});
				el._hideCharList();				
				$('#'+browseHash(charHash,el.attr('id'),-1).k).data('el')._zoomToChar(elh.sibPath && elh.sibPath.l ? elh.sibPath.l : false);
				return false;
			});
			$('a.next',cn).css({'margin-top': (el.css('height').replace(/px/,'')/2) + 'px', 'margin-right': (elh.nar?elh.nar:-44)+'px'}).click(function(){
				$(this).unbind('click').click(function(){return false;});
				el._hideCharList();
				$('#'+browseHash(charHash,el.attr('id'),1).k).data('el')._zoomToChar(elh.sibPath && elh.sibPath.r ? elh.sibPath.r : false);
				return false;
			});
			$.ajax({
				url: ajaxRoot+'chars/-'+el.attr('id'),
				beforeSend:function(){$('#char-indi').show();},
				success: function(r){					
					if(!$.browser.msie) $('#viewport img:not(#'+el.attr('id')+')').animate({'opacity':'0.3'});
					$('#char-indi').hide();
					$('.charlist').html(r);
					$('.charlist').css({'display':'none','visibility':'visible'}).fadeIn();//скрыть анкету
				}
			});
		};
		this._hideCharList = function(){
			$('.charlist, .charnav').fadeOut(300,function(){$(this).remove();});
			el._hideTip();
		};
		this._zoomToChar = function(path){			
			charCam.preset = 'char';
			charCam.setLock();			
			if(!$.browser.msie) el.animate({'opacity':'1'});
			$('#viewport img').css({'cursor':'default'});
			el._hideTip();
			var	nh = 600-91;
			$('#char-stage').animate({'margin-bottom':nh+'px'},{complete:function(){
				var k3d = ((charCam.jq_viewport.width()/1024-1)*3.209257473+1)*170;
				charCam.animateCamera(
					{x:elo.pos.x+elo.initialWidth-(elh.nar?elh.nar+44:0)+k3d,
					 y:charCam.spos.y-150+elh.y,
					 z:elo.pos.z+150},
					2000,//default speed 
					true,
					function(){el._showCharList();},
					path
				);
			}});
		}
		this._backToStage = function(){			
			if(!$.browser.msie) $('#viewport img').animate({'opacity':'1'})
			$('#viewport img').css({'cursor':'pointer'});
			charCam.animateCamera({x:charCam.spos.x,y:charCam.spos.y,z:charCam.spos.z},2000, true, 
				function(){var	nh = 85;$('#char-stage').animate({'margin-bottom':+nh+'px'});charCam.releaseLock();charCam.preset = 'stage';});
		}		
		this.click(function(){
			if(charCam){
				if(charCam.preset=='stage'&&!charCam.lock) el._zoomToChar();
			}				
		});
		this.hoverIntent(			
			function(){if(!charCam||charCam.preset=='stage')el._showTip();},
			function(){if(!charCam||charCam.preset=='stage')el._hideTip();}
		);		
		return this;
	};
})(jQuery);

function browseArr(a,i,d){
	var	t = i+d;
	return t<0? browseArr(a,i,a.length+d): t+1>a.length? browseArr(a,i,d-a.length): a[t];
}

function browseHash(h,ok,d){	
	var o=[], i=0, io=0;
	$.each(h,function(hk,hv){o.push({k:hk,v:hv}); if(hk==ok)io=i; i++;});
	return browseArr(o,io,d);	
}
function initMap(target,club){
	if (!window.YMaps) return;
	var map = new YMaps.Map(target?target:$("#map")[0]);
	map.setCenter(new YMaps.GeoPoint(39.707021,47.240381), 13, YMaps.MapType.MAP);
    map.setCenter(new YMaps.GeoPoint(39.715819,47.242592), 12, YMaps.MapType.MAP);
    map.addControl(new YMaps.Zoom());
    map.addControl(new YMaps.ToolBar());
    map.addControl(new YMaps.TypeControl());
	YMaps.Styles.add("fizkult#star", {
		iconStyle : {
			href : "/images/star-big.png",
			size : new YMaps.Point(32,31),
			offset: new YMaps.Point(-16,-16)
		}
	});
	var p1 = createObject("Placemark", new YMaps.GeoPoint(39.721355,47.25958), "fizkult#star", "ТЦ \"Горизонт\", пр. Нагибина, 32е");
	var p2 = createObject("Placemark", new YMaps.GeoPoint(39.714231,47.227549), "fizkult#star", "ул. Красноармейская, 170/84");
	map.addOverlay(p1);
    map.addOverlay(p2);
	if(club == 9) p1.openBalloon();
	if(club == 10) p2.openBalloon();
}

$.preloadImages = function(imgAr, callback){
	var c = this;
	c.prCnt = 0;
    $.each (imgAr,function (e){
		var i = $("<img>").attr("src", this);
		if(callback) i.ultimaLoad(function(){
			c.prCnt++;
			if(c.prCnt == imgAr.length) callback();
		});
	});
}

var scrollArea = 300;
function sendCardRequest(){
	$.ajax({		
		url: $('#cr_form').attr('action'),				
		type: 'POST',
		data: $('#cr_form').serialize(),
		success: function(response){
			$('#cr_form').replaceWith($('<div>Заявка отправлена.</div>'));
		}
	});
}

function startCycle(){	
	$('#flash_banner').cycle({
		fx: 'scrollHorz',
		pager:  '#nav-panel',
		pagerAnchorBuilder: function(idx, slide) {return '<a href="#"></a>';},
		next: 'a.forward',
		prev: 'a.rewind',
		timeoutFn: calculateTimeout 
	});	
}

function updateLb(){	
	$('a.section_img').lightBox();
	$('a.news-full, .gallery-noslide a').lightBox();
	$('a.lb-tpl').lightBox();
	$('img.corner').each(function(){
		$(this).dropShadow({left: 2, top: 1, blur: 1, opacity: 0.5});
	});
	
	
	if($('div.gallery a.lb1').length > 0){
		var cnt = 0;
		var scrollArea = 473;
		$('div.gallery').each(function(){
			cnt++;
			var div = $(this);						
			$('a.lb1:first',div).css('margin-left',0);
			$('a.lb1:last',div).css('margin-right',0);
			//$('a.lb1',div).wrapAll('<div class="sliderplane"/>');
			var divWidth = div.width();			
			div.css({overflow: 'hidden'});						
			var plane = $('div.sliderplane', div);
			var lastLi = plane.find('a:last-child');
			var ulWidth = lastLi.offset().left + lastLi.width();
			$('<div style="clear:both"/>').insertAfter(div);			
			var vb = div.offset().left - plane.offset().left + scrollArea*2 < ulWidth ? '' : ' style="display:none;" ';			
			var a = $('<div class="slnav next"><a cnt="'+cnt+'" href="" class="direct"'+vb+'></a></div>');
			a.insertAfter(div);
			$('a', a).data('cnt', cnt);
			$('a', a).click(function(){
				var cond = div.offset().left - plane.offset().left + div.width() + scrollArea*2 < ulWidth;
				$('.prev a[cnt='+$(this).data('cnt')+']').show();
				$(this).css('display', (!cond ? 'none' : 'block'));
				var left = cond ? div.offset().left - plane.offset().left + scrollArea : ulWidth - div.offset().left - div.width(); //div.offset().left - plane.offset().left;				
				div.animate({scrollLeft: left},300);
				return false;
			});
			var a = $('<div class="slnav prev"><a cnt="'+cnt+'" href="" style="display:none;" class="direct"></a></div>');
			a.insertAfter(div);
			$('a', a).data('cnt', cnt);
			$('a', a).click(function(){
				var cond2 = div.offset().left - plane.offset().left - scrollArea - div.width() <= 0;
				$('.next a[cnt='+$(this).data('cnt')+']').show();
				$(this).css('display', (cond2 ? 'none' : 'block'));
				var left = !cond2 ? div.offset().left - plane.offset().left - scrollArea : 0;
				div.animate({scrollLeft: left},300);
				return false;
			});
			
			$('a',plane).lightBox();
			
		});
	}	
	
	$('a.lbhandle').click(function(){
		$('div.gallery a[href='+$(this).attr('href')+']').click();
		return false;
	});
}

function createObject (type, point, style, description) {
	var allowObjects = ["Placemark", "Polyline", "Polygon"],
		index = $.inArray( type, allowObjects),
		constructor = allowObjects[(index == -1) ? 0 : index];
		description = description || "";
	
	var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
	object.description = description;
	
	return object;
}

$(function(){
	$("#bayan .inner h3:first").addClass('ui-first');
	$("#bayan .inner").accordion({event: "mouseover",autoHeight: false});
	//$("#bayan").height($("#bayan").height()+4) ;
	$("#home-tabs div.inner").tabs();	
	updateLb();	
	$('#header-menu li:has(ul)').hoverIntent(
		function(){$('ul',this).slideDown('fast');},
		function(){$('ul',this).slideUp('fast');}
	);
});


$(document).ready(function(){
	
});

