/**
 * Author: ylo & mha
 */
(function($){
	
	
	if(typeof(DD_belatedPNG) != 'undefined') {
		DD_belatedPNG.fix('.png_bg, img');
	}
	
	Cufon.replace('aside .intro h2');
	Cufon.replace('#themes h2');
	Cufon.replace('aside .contextual h2');
	Cufon.replace('section.content h1');
	Cufon.replace('.paging a');
	
	autoEmptyFields('#search', eval('l10n.'+currentLang+'.search'));
	
	
	
	var column = {
		easing: 'easeOutQuint',
		duration: 500,
		contextualWidth: 271,
		level1W: 200,
		level2W: 271,
		move: false,
		state: 0,
		lowRes: false,
		initialWidth: 0,
		show: function () {
			
			if(!column.move) {
				var aside = $('aside');
				var duration = column.duration;
				var myEasing = column.easing;
				var currentState = aside.hasClass('shown') ? 'on':'off';
				if(currentState == 'off') {
					column.move = true;
					
					column.state = 1;
					
					aside.addClass('shown');
					
					var currentWidth = column.initialWidth;
					
					var contentWidth = aside.hasClass('shown2') ? column.level1W + column.level2W : column.level1W;
					
					var targetWidth = parseInt(currentWidth) + contentWidth;
					
					if(column.lowRes) {
						aside.css({
							width: targetWidth + 'px'
						});
						column.move = false;
                                                
					} else {
						aside.stop().animate({
							width: targetWidth + 'px'
						}, duration, myEasing, function() {
							column.move = false;
						});
					}
                                        
                                        //ajout mha
                                        $('aside .handler img').attr('src', 'squelettes/tpl/img/common/visu/arrow_anim_back.gif');
				}
			}
			
		},
		hide: function() {
			if(!column.move) {
				var aside = $('aside');
				var duration = column.duration;
				var myEasing = column.easing;
				var currentState = aside.hasClass('shown') ? 'on':'off';
				if(currentState == 'on') {
					column.move = true;
				
					aside.removeClass('shown');
					
					var targetWidth = column.initialWidth;
					column.state = 0;
					if(column.lowRes) {
						aside.css({
							width: targetWidth + 'px'
						});
						column.move = false;
					} else {
						aside.stop().animate({
							width: targetWidth + 'px'
						}, duration, myEasing, function() {
							column.move = false;
						});
					}
                                        //ajout mha
                                        $('aside .handler img').attr('src', 'squelettes/tpl/img/common/visu/arrow-anim.gif');
				}
			}
		},
		
		show2: function () {
			//if(!column.move) {
				var aside = $('aside');
				var duration = column.duration;
				var myEasing = column.easing;
				var currentState = aside.hasClass('shown2') ? 'on':'off';
				if(currentState == 'off') {
					column.move = true;
					aside.addClass('shown2');
					
					var targetWidth = column.initialWidth + column.level1W + column.level2W;
					
					column.state = 2;
					
					if(column.lowRes) {
						aside.css({
							width: targetWidth + 'px'
						});
						column.move = false;
					} else {
						aside.stop().animate({
							width: targetWidth + 'px'
						}, duration, myEasing, function() {
							column.move = false;
						});
					}
				}
			//}
		},
		hide2: function() {
			//if(!column.move) {
				var aside = $('aside');
				var duration = column.duration;
				var myEasing = column.easing;
				var currentState = aside.hasClass('shown2') ? 'on':'off';
				if(currentState == 'on') {
					column.move = true;
					aside.removeClass('shown2');
					
					column.state = 0;
					
					
					var targetWidth = column.initialWidth + column.level1W;
					
					if(column.lowRes) {
						aside.css({
							width: targetWidth + 'px'
						});
						column.move = false;
					} else {
						aside.stop().animate({
							width: targetWidth + 'px'
						}, duration, myEasing, function() {
							column.move = false;
						});
					}
		                    if($('#container').is('.home')){
		                       $('#container aside .handler img').hide();
		                       $('aside .handler').css('cursor', 'default');
				}
			}
			//}
		},
		
		initToggle: function() {
			
			var aside = $('aside');
			var content = $('> * > .content', aside);
			var target, targetClass;
			
			var initWidth = aside.width();
			var initContentWidth = content.width();
			
			if(aside.hasClass('mask')) {
				var cWidth = $('.contextual > .shown', aside).length ? column.contextualWidth : 0;
				target = initWidth - initContentWidth - cWidth;
				targetClass = 'mask';
			} else {
				var cWidth = $('.contextual > .shown', aside).length ? column.contextualWidth : 0;
				target = initWidth + cWidth;
				targetClass = 'noMask';
			}
			
			aside.css({
				width: target + 'px'
			});
			
			column.initialWidth = initWidth - initContentWidth - cWidth;
			column.state = 1;
			
			aside.removeClass('mask noMask').addClass(targetClass);
			
		}
	};
	
	column.lowRes = isIE && (isIE == 8) ? true : false;
	
	// adapte aside width
	var asideAdapt = function() {
		// adapte aside width
		var aside = $('aside');
		var main = $('#main');
		var mask = $('.mask', aside);
		
		var mWidth = main.width();
		var WWidth = W.width();
		var maxWidth = mWidth > WWidth ? mWidth : WWidth;
		var aLeftMargin = aside.css('margin-left').replace('px', '');
		
		var contextual = $('.contextual', aside);
		var cWith = $(':visible', contextual).length ? column.contextualWidth : 0;
		
		var tWidth = (maxWidth / 2) - aLeftMargin + cWith;
		var mWidth = (maxWidth / 2) - (mWidth / 2) + 26;
		
		aside.css('width', tWidth+'px');
		mask.css('width', mWidth+'px');
		
		// adapte aside deco height
		var aHeight = aside.height();
		var handler = $('.handler', aside);
		var hHeight = handler.height();
		var hTop = handler.css('top').replace('px', '');
		
		var tHeight = aHeight - hHeight - hTop;
		$('aside .bottomDeco').css('height', tHeight);
		
		column.initToggle();
	};
	
	asideAdapt();
	W.resize(function() {
		asideAdapt();
	});
	
    $('#container:not(.home, .error) aside .handler').click(function(e) {
        e.preventDefault();
	if($('aside').hasClass('shown')){
            column.hide();
                    
                    // manage portails thématiques
                    var lis = $('#themes li:not(:last)');
                    var aside = $('aside');
                    var panels = $('aside .contextual .panel');

            	    lis.removeClass('select');

                    panels.removeClass('shown').hide();
                    aside.removeClass('shown2');
                    
                }else{
                    column.show();
                    
                }
	});
        
	$('#container.home aside .handler').click(function(e) {
	    e.preventDefault();
	    if($('aside').hasClass('shown2')){
	        var lis = $('#themes li:not(:last)');
	        var aside = $('aside');
	        var panels = $('aside .contextual .panel');

	        lis.removeClass('select');

	        panels.removeClass('shown').hide();
	        column.hide2();
	        aside.removeClass('shown2');
	    }
	});
        $('#container:not(.home, .error) aside .wrapper').click(function(e) {
            
            if($(e.target).is('.wrapper') || $(e.target).is('.content') || $(e.target).is('.mask')){
                //console.log('ok');
		if(!$('aside').hasClass('shown')){
                    column.show();
                    
                }
                e.preventDefault();
            }
		
	});
        $('#container:not(.home, .error) .bgWrapper').click(function(e) {
            
            if($('aside').hasClass('shown')){
                if($(e.target).parents('aside').length == 0 || $(e.target).is('.topDeco') || $(e.target).is('.bottomDeco')){
                    
                    column.hide();

                    // manage portails thématiques
                    var lis = $('#themes li:not(:last)');
                    var aside = $('aside');
                    var panels = $('aside .contextual .panel');

                    lis.removeClass('select');
                    panels.removeClass('shown').hide();
                    aside.removeClass('shown2');

                }
            }
		
	});
        $('#container.home .bgWrapper, #container.error .bgWrapper').click(function(e) {
            
            if($('aside').hasClass('shown2')){
                if($(e.target).parents('aside').length == 0 || $(e.target).is('.topDeco') || $(e.target).is('.bottomDeco')){
            // manage portails thématiques
            var lis = $('#themes li:not(:last)');
            var aside = $('aside');
            var panels = $('aside .contextual .panel');
			
            lis.removeClass('select');
           
			
            panels.removeClass('shown').hide();
                    column.hide2();
            aside.removeClass('shown2');
        }
    }
    });
	
    // move the right column
    $('#themes a:not(:last)').click(function(e) {
        e.preventDefault();
	});
	$('#themes li:not(:last)').hover(function() {
            var elmt = $(this).find('a');
            var li = $(this);
		var container = li.parent();
		var lis = container.find('> li:not(:last)');
		
		
		// update panel
		var target = elmt.attr('href').replace('#', '');
		var targetContainer = $('#'+target);
		var panels = $('aside .contextual .panel');
		
            panels.removeClass('shown').hide();
            targetContainer.addClass('shown').show();

            if($('#container').is('.home')){
                $('aside .handler img').attr('src', 'squelettes/tpl/img/common/visu/arrow_anim_back.gif');
                $('aside .handler').css('cursor', 'pointer');
                $('aside .handler img').show();
            }

            if(li.hasClass('select')) {

            } else {
                    var temp = lis.find('.select');
                    lis.removeClass('select');


                    li.addClass('select');

                    column.show2();
            }
		
	}, function(e) {
            
            var elmt = $(this).find('a');
            var li = $(this);
            var container = li.parent();
            var lis = container.find('> li:not(:last)');
            var panels = $('aside .contextual .panel');
            
            
            if((!$(e.relatedTarget).is('.contextual') && $(e.relatedTarget).parents('.contextual').length == 0 && !$(e.relatedTarget).is('#themes li') && !$(e.relatedTarget).is('.borderDeco')) || $(e.relatedTarget).is('#themes li.noArrow')){
                li.removeClass('select');
                
                // hide panel
                panels.removeClass('shown').hide();
                
            }


            
	});
        
        $('aside .contextual').hover(function() {
		
	}, function(e) {
            
            var elmt = $('#themes li.select a');
            var li = $('#themes li.select');
            var container = li.parent();
            var lis = container.find('> li:not(:last)');
            var panels = $('aside .contextual .panel');
            
            if((!$(e.relatedTarget).is('.contextual') && $(e.relatedTarget).parents('.contextual').length == 0 && !$(e.relatedTarget).is('#themes li') && !$(e.relatedTarget).is('.borderDeco')) || $(e.relatedTarget).is('#themes li.noArrow')){

                li.removeClass('select');
                
                // hide panel
                panels.removeClass('shown').hide();
            }

		
        });
	
	// bind fancybox
	$('.text .video a').fancybox({
		type: 'iframe',
		scrolling: 'no',
		overlayColor: '#000',
		overlayOpacity: 0.95,
		width:500,
		height:368
	});
	
	$('.diapo a').fancybox();
	
	// bind custom select
	$('.field select').ySelect();
	
	// gmap call
	if($('.interactiveMap').length) {
		
		// centré sur Clermont Ferrand
		var myLatlng = new google.maps.LatLng(centerMap.lat,centerMap.lng);
		var myOptions = {
			zoom: 12,
			center: myLatlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		
		var map = new google.maps.Map(document.getElementById("mapCanvas"), myOptions);
		
		var infowindow = new google.maps.InfoWindow({
			content: ''
		});
		
		$.each(points, function(id, item) {
			
			item.infowindow = new google.maps.InfoWindow({
				content: item.html
			});
			
			item.markerLatlng = new google.maps.LatLng(item.lat,item.lng);
			item.marker = new google.maps.Marker({
				position: item.markerLatlng,
				map: map,
				icon: item.picto,
				title: item.title
			});
			
			google.maps.event.addListener(item.marker, 'click', function() {
				infowindow.setContent(item.html);
				infowindow.open(map,item.marker);
			});
			
		});
		
	}
	
	// adapte la hauteur de la liaison entre menu et contenu pour les deux items "services à l'étudiant" et "recherche et valorisation" dans le bloc aside
	$('#themes .borderDeco').each(function() {
		var e = $(this);
		var r = e.parent();
		var a = r.find('a');
		var h = r.height();
		var d = 1;
		e.css('height', (h - d)+'px');
	});
	
	/// Adapte la hauteur de la side bar en fonction de la hauteur du viewport
  if (($(window).height() > $('aside.noMask').height())&&($(window).height() > $('section.content').height())) {
	$('section.content').css('height',$(document).height()-233);  
	$('aside.noMask').css('height',$(window).height());
	$('.bottomDeco').css('height',$(document).height());
	$('#container.home .bgWrapper').css('height',$(window).height());
  }
  
  $(window).resize(function() {
    if (($(window).height() > $('aside.noMask').height())&&($(window).height() > $('section.content').height())) {
	  $('#container.home section.content').css('height',$(document).height()-233);  
      $('aside.noMask').css('height',$(window).height());
	  $('.bottomDeco').css('height',$(document).height());
	  $('#container.home .bgWrapper').css('height',$(window).height());
    }
  });
  

})(window.jQuery);

