(function($){
	jQuery.fn.yaMap = function(d){
		$(this).each(function(){
			$this = $(this);
			var name = $this.attr('title');
			var cl = $this.attr('class');
			var p = cl.indexOf('point');
			if (p > -1){
				$this.css({width:'500px',height:'350px'});
				var point = cl.substr(p+5).split('x');
				var map=new YMaps.Map(this);
				map.setCenter(new YMaps.GeoPoint(point[0],point[1]), 16);
				map.addControl(new YMaps.TypeControl());
				map.addControl(new YMaps.ToolBar());
				map.addControl(new YMaps.Zoom());
				map.addControl(new YMaps.ScaleLine());
				var s=new YMaps.Style();
				s.balloonContentStyle=new YMaps.BalloonContentStyle(new YMaps.Template("<div><b>$[name]</b></div>"));
				var placemark=new YMaps.Placemark(new YMaps.GeoPoint(point[0],point[1]));//,{style:s});
				placemark.name = name;
				map.addOverlay(placemark);
				placemark.openBalloon();
			}
		});
	}
})(jQuery);

var openImg=function(name,txt){
	var text=txt.replace('<cap>','').replace('</cap>','');
	var html="<div class='carusel'><img src='"+name+"'/><div class='content'>"+text+"</div></div>";
	$.fancybox({
		content:html
		,overlayColor:'#000'
		,overlayOpacity:'0.7'
		,autoDimensions:false
		,scrolling:'no'
		,width:720
		,onComplete:function(){
			$('#fancybox-content').css('height','auto');
			$('#fancybox-content div').css('height','auto');
		}
	});
};

var current='bio';
var masterNav=function(a){
	var $this=$(a);
	var c=$this.parent().attr('class');
	var $tmp=$('.master-detail .navigation .'+current);
	$tmp.html('<a href="#">'+$tmp.text()+'</a>');
	
	$tmp=$('.master-detail .navigation .'+c);
	$tmp.html($tmp.text());
	
	$('.details .'+current).addClass('hidden');
	$('.details .'+c).removeClass('hidden');
	current=c;
	return false
};

$(document).ready(function(){
	$('.map').yaMap();
	$('.popup2').fancybox({type:'iframe',width:500,height:500,scrolling:'no'});
	$('.fed-maps a,ul.photos a').fancybox();
	
	var hash=window.location.hash.substr(1);
	if(hash)masterNav('.master-detail .navigation .'+hash+' a');
	$('.master-detail .navigation a').live('click', function(){
		return masterNav(this)
	});
	
	var li=$('.seminar-widget .seminars li');
	var liNum=li.length;
	var liCur=0;
	//seminars
	var w=$('body').width()*0.92;
	var m=w*0.02;
	w*=0.19;
	li.css({'width':w,'margin-right':m});
	$(window).bind('resize',function(){
		var w=$('body').width()*0.92;
		var m=w*0.02;
		w*=0.19;
		li.css({'width':w,'margin-right':m});
		$('.seminar-widget .seminars').scrollLeft($(li[liCur]).offset().left-$(li[0]).offset().left);
	});
	
	var isScrolling=false;
	$('.seminar-widget .seminars').mousemove(function(e){
		var bw=$('body').width();
		if(e.pageX>bw*2/3&&!isScrolling&&liCur<liNum-5){
			isScrolling=true;
			$(this).animate({scrollLeft:$(li[liCur+1]).offset().left-$(li[0]).offset().left}, 1000, function(){
				isScrolling=false;
				liCur++;
			});
		}else if(e.pageX<bw/3&&!isScrolling&&liCur>0){
			isScrolling=true;
			$(this).animate({scrollLeft:$(li[liCur-1]).offset().left-$(li[0]).offset().left}, 1000, function(){
				isScrolling=false;
				liCur--;
			});
		}
	});
	
	$('.request-add').requestForm();
	$('.review-add').reviewForm();
	
	$('.team-member').each(function () {
        var distance = 10;
        var time = 250;
        var hideDelay = 500;

        var hideDelayTimer = null;

        var beingShown = false;
        var shown = false;
        var trigger = $('.photo', this);
		var trigger2 = $('.name', this);
        var info = $('.popup', this).css('opacity', 0);


        $([trigger.get(0), trigger2.get(0), info.get(0)]).mouseover(function () {
            if (hideDelayTimer) clearTimeout(hideDelayTimer);
            if (beingShown || shown) {
                return;
            } else {
                beingShown = true;

                info.css({
                    bottom: 200,
                    left: -8,
                    display: 'block'
                }).animate({
                    bottom: '-=' + distance + 'px',
                    opacity: 1
                }, time, 'swing', function() {
                    beingShown = false;
                    shown = true;
                });
            }

            return false;
        }).mouseout(function () {
            if (hideDelayTimer) clearTimeout(hideDelayTimer);
            hideDelayTimer = setTimeout(function () {
                hideDelayTimer = null;
                info.animate({
                    bottom: '-=' + distance + 'px',
                    opacity: 0
                }, time, 'swing', function () {
                    shown = false;
                    info.css('display', 'none');
                });

            }, hideDelay);

            return false;
        });
    });
});
