var $j = jQuery.noConflict();

var nbItems;
var currentItem = 0;
var oldItem = 0;
var itemWidth;
var interval;
var timer = 5000;

var initCaroussel = function(){
	if($j("#caroussel").is("div")){
		nbItems =  $j("#caroussel li").size();
		if(nbItems>1){
			var controlHtml = '<p class="carrControl" id="carrControlHL">';
			for(var i=0; i<nbItems; i++){
				controlHtml+='<a href="#"></a>';
			}
			controlHtml+='</p>';
			$j(controlHtml).insertBefore("#caroussel");
			itemWidth = $j("#caroussel li").eq(0).width()+10;
			$j("#caroussel li:eq("+currentItem+")").css("left", "0px");
			$j("#carrControlHL a").eq(currentItem).addClass("carrActive");
		   interval = setInterval(carousselRotate,timer);		
			$j("#carrControlHL a").click(function(){
				currentItem = $j("#carrControlHL a").index(this);
				if(currentItem!=oldItem){
					clearInterval(interval);
					$j("#carrControlHL .carrActive").removeClass("carrActive");
					$j(this).addClass("carrActive");
					if(currentItem<oldItem){
						$j("#caroussel li:eq(" + oldItem + ")").animate({left: itemWidth},"slow", function() {
							$j(this).css('left', itemWidth+'px');
						});
						$j("#caroussel li:eq(" + currentItem + ")").css('left', -itemWidth+'px');
					}
					else{
						$j("#caroussel li:eq(" + oldItem + ")").animate({left: -itemWidth},"slow", function() {
							$j(this).css('left', itemWidth+'px');
						});
					}
					$j("#caroussel li:eq(" + currentItem + ")").animate({left: 0},"slow");
					oldItem = currentItem;
				}
				return false;
			});
		}
	}
}

var carousselRotate = function () {
	currentItem = (oldItem + 1) % nbItems;
	$j("#caroussel li:eq(" + oldItem + ")").stop().animate({left: -itemWidth},"slow", function() {
		$j(this).css("left", itemWidth+"px");
	});
	$j("#caroussel li:eq(" + currentItem + ")").stop().animate({left: 0},"slow");
	$j("#carrControlHL .carrActive").removeClass("carrActive");
	$j("#carrControlHL a").eq(currentItem).addClass("carrActive");
	oldItem = currentItem;
}

var itemWidthPress = 0;
var currentItemPress = 0;
var oldItemPress = 0;
var initCarrPress = function () {
	if($j("#pressCarrousel").is("div")){
		var nbPressItems =  $j("#pressCarrousel li").size();
		if(nbPressItems>1){
			var controlHtmlPress = '<p class="carrControl" id="carrControlPress">';
			for(var i=0; i<nbPressItems; i++){
				controlHtmlPress+='<a href="#"></a>';
			}
			controlHtmlPress+='</p>';
			$j(controlHtmlPress).insertBefore("#pressCarrousel");
			itemWidthPress = $j("#pressCarrousel li").eq(0).width()+10;			
			$j("#pressCarrousel li:eq(0)").css("left", "0px");
			$j("#carrControlPress a").eq(0).addClass("carrActive");
			$j("#carrControlPress a").click(function(){
				currentItemPress = $j("#carrControlPress a").index(this);
				if(currentItemPress!=oldItemPress){
					$j("#carrControlPress .carrActive").removeClass("carrActive");
					$j(this).addClass("carrActive");
					if(currentItemPress<oldItemPress){
						$j("#pressCarrousel li:eq(" + oldItemPress + ")").animate({left: itemWidthPress},"slow", function() {
							$j(this).css("left", itemWidthPress+"px");
						});
						$j("#pressCarrousel li:eq(" + currentItemPress + ")").css("left", -itemWidthPress+"px");
					}
					else{
						$j("#pressCarrousel li:eq(" + oldItemPress + ")").animate({left: -itemWidthPress},"slow", function() {
							$j(this).css("left", itemWidthPress+'px');
						});
					}
					$j("#pressCarrousel li:eq(" + currentItemPress + ")").animate({left: 0},"slow");
					oldItemPress = currentItemPress;
				}
				return false;
			});
		}
	}
}

var initCarouselAlaune = function () {
    $j('#slides_alaune').slides({
        effect: 'slide, fade',
        crossfade: true,
        slideSpeed: 350,
        fadeSpeed: 500,
        //play: 2000,
        generateNextPrev: true,
        generatePagination: false
    });
}

var initCarouselPresse = function () {
    $j('#slides_presse').slides({
        effect: 'slide, fade',
        crossfade: true,
        slideSpeed: 350,
        fadeSpeed: 500,
        //play: 2000,
        generateNextPrev: true,
        generatePagination: false
    });
}

var initCarouselEssentiel = function () {
    $j('#slides_essentiel').slides({
        effect: 'slide, fade',
        crossfade: true,
        slideSpeed: 350,
        fadeSpeed: 500,
        play: 5000,
        generateNextPrev: true,
        generatePagination: false
    });
}


var initShowTab = function(){
	if($j("#tabs").is("div")){
		$j("#tabs li a").eq(0).addClass("tabActive");
		var tabURL = $j("#tabs li a").eq(0).attr("href");
		$j("#tabContent").load(tabURL, function(){initShowSubTab();});
		$j("#tabs li a").click(function(){
			if(!$j(this).hasClass("tabActive")){
				var myTabURL = $j(this).attr("href");
				$j(".tabActive").removeClass("tabActive");
				$j(this).addClass("tabActive");				
				$j("#tabContent").load(myTabURL, function(){initShowSubTab(); /*setTimeout('window.location = "#tabs"', 5);*/});
			}
			return false;
		});
	}
}

var initShowSubTab = function(){
	$j("#subTabs li a").eq(0).addClass("subTabActive");
	var subTabURL = $j("#subTabs li a").eq(0).attr("href");
	$j("#subTabContent").load(subTabURL, function(){/*initPagination();*/});
	$j("#subTabs li a").click(function(){
		if(!$j(this).hasClass("subTabActive")){
			var mySubTabURL = $j(this).attr("href");
			$j(".subTabActive").removeClass("subTabActive");
			$j(this).addClass("subTabActive");	
			$j("#subTabContent").load(mySubTabURL, function(){/*initPagination();*/ /*setTimeout('window.location = "#tabs"', 5);*/});			
		}
		return false;
	});
	
}

var currentPage = 0;
var nbPages = 0;
var nbPagesDisplayed = 4;
var dir = "right";
var isNext = 0;
var isPrev = 0;
var extreme = nbPagesDisplayed;
var initPagination = function(){
	if($j("#pagination").is("p")){
		currentPage = 0;
		nbPages = $j("#subTabContent .article").size();
		paginStatus();
		$j("#pages a").eq(0).addClass("pageActive");
		$j("#subTabContent .article").eq(0).show();
		$j("#pages a").click(function(){
			currentPage = $j("#pages a").index(this);
			dir = "right";
			isNext = false;
			isPrev = false;
			showPage();
			return false;
		});
		$j("#prevPage").click(function(){
			if(currentPage>0){
				currentPage--;
				dir = "left";
				isNext = 0;
				isPrev = 1;
				showPage();
			}
			return false;
		});
		$j("#nextPage").click(function(){
			if(currentPage<nbPages-1){
				currentPage++;
				dir = "right";
				isNext = 1;
				isPrev = 0;
				showPage();
			}
			return false;
		});
	}
}

var showPage = function(){
	$j(".article").hide();
	$j("#subTabContent .article").eq(currentPage).fadeIn();
	$j(".pageActive").removeClass("pageActive");
	$j("#pages a").eq(currentPage).addClass("pageActive");
	paginStatus();
	window.location.href = "#tabs";
}

var paginStatus = function(){
	if(currentPage==0){
		$j("#prevPage").css({visibility : "hidden"});
	}
	else{
		$j("#prevPage").css({visibility : "visible"});
	}
	if(currentPage<nbPages-1){
		$j("#nextPage").css({visibility : "visible"});
	}
	else{
		$j("#nextPage").css({visibility : "hidden"});
	}
	if(nbPages>nbPagesDisplayed){
		var tmpCurrent = currentPage;
		if(currentPage==0){
			for(var i=0; i<nbPagesDisplayed+1; i++){
				$j("#pages a").eq(i).show();
			}
		}
		else if(tmpCurrent%nbPagesDisplayed==0){
			$j("#pages a").hide();
			if(dir == "right"){
				if(currentPage<nbPages){
					extreme = currentPage+nbPagesDisplayed+1;
					if(currentPage+nbPagesDisplayed>nbPages){
						extreme = nbPages;
					}
					$j("#pages a").eq(currentPage).removeClass("extL");
					$j("#pages a").eq(currentPage).removeClass("extR");
					$j("#pages a").eq(currentPage).addClass("extL");
					for(var j=currentPage; j<extreme; j++){
						$j("#pages a").eq(j).show();
					}
				}
			}
			else{				
				if(currentPage>nbPagesDisplayed-1){
					extreme = currentPage-nbPagesDisplayed-1;					
					$j("#pages a").eq(currentPage).removeClass("extR");
					$j("#pages a").eq(currentPage).removeClass("extL");
					$j("#pages a").eq(currentPage).addClass("extR");
					for(var j=currentPage; j>extreme; j--){
						$j("#pages a").eq(j).show();
					}
				}
			}
		}
		else {
			if($j("#pages a").eq(currentPage+1).hasClass("extL") && isPrev){
				$j("#pages a").hide();
				extreme = currentPage-nbPagesDisplayed;	
				for(var j=currentPage+1; j>extreme; j--){
					$j("#pages a").eq(j).show();
				}
			}
			if($j("#pages a").eq(currentPage-1).hasClass("extR") && isNext){
				$j("#pages a").hide();
				extreme = currentPage+nbPagesDisplayed+1;
				if(currentPage+nbPagesDisplayed>nbPages){
					extreme = nbPages;
				}
				for(var j=currentPage; j<extreme; j++){
					$j("#pages a").eq(j).show();
				}
			}
		}
	}
}

// Initialisation du menu (dropdown)
var initMenu = function(){
  
  if($j("#dropDownMenu_root").is("ul")){
    
    $j("#dropDownMenu_root li a").mouseover(function(){
      if (this.parentNode.className == "navCollapsed") {
        $j(this.parentNode).find("div.nav2").show();
        this.parentNode.className = "navExpanded";
      }
    });
    
    $j("#dropDownMenu_root li a").mouseout(function(){
      if (this.parentNode.className == "navExpanded") {
        $j(this.parentNode).find("div.nav2").hide();
        this.parentNode.className = "navCollapsed";
      }      
    });
    
    $j("#dropDownMenu_root li div.nav2").mouseover(function(){
      if (this.parentNode.className == "navCollapsed") {
        $j(this.parentNode).find("div.nav2").show(); 
        this.parentNode.className = "navExpanded";
      } 
    });
    
    $j("#dropDownMenu_root li div.nav2").mouseout(function(){
      if (this.parentNode.className == "navExpanded") {
        $j(this.parentNode).find("div.nav2").hide();
        this.parentNode.className = "navCollapsed";
      }    
    });
  }
}

var initShowSubMenu = function(){
	if($j(".menu .showSubMenu").size()>0){
		$j(".showSubMenu").click(function () {
			if(!$j(this).find("span").eq(0).hasClass("currentMenu")){
				$j(".menuLevelMenu2Active").slideUp();
				$j(".menuLevelMenu2Active").removeClass("menuLevelMenu2Active");
				$j(".currentMenu").removeClass("currentMenu");
				if($j(this).next("ul").size()>0){
				
	        $j(this).next("ul").slideDown('fast', function() {
              $j(this).find("li").eq(0).click();
          });
          
					$j(this).next("ul").addClass("menuLevelMenu2Active");
					$j(this).find("span").eq(0).addClass("currentMenu");
				}
				else if($j(this).next("div").size()>0){
				
					$j(this).next("div").slideDown('fast', function() {
              $j(this).find("li").eq(0).click();
          });
          
					$j(this).next("div").addClass("menuLevelMenu2Active");
					$j(this).find("span").eq(0).addClass("currentMenu");
				}
			}
			else{
				if($j(this).next("ul").size()>0){
				
					$j(this).next("ul").slideUp();
					$j(this).next("ul").removeClass("menuLevelMenu2Active");
					$j(this).find("span").eq(0).removeClass("currentMenu");
				}
				else if($j(this).next("div").size()>0){
					$j(this).next("div").slideUp();
					$j(this).next("div").removeClass("menuLevelMenu2Active");
					$j(this).find("span").eq(0).removeClass("currentMenu");
				}
	    }      
			return false;
		});
	}
	
	if($j(".menu .showSubSubMenu").size()>0){
		$j(".showSubSubMenu").click(function () {
		  if(!$j(this).find("span").eq(0).hasClass("currentSubMenu")){
        $j(".menuLevelMenu3Active").slideUp();
        $j(".menuLevelMenu3Active").removeClass("menuLevelMenu3Active");
        $j(".currentSubMenu").removeClass("currentSubMenu");
        if($j(this).next("ul").size()>0){
          $j(this).next("ul").slideDown('fast', function() {
              $j(this).find("li").eq(0).click();
          });
          $j(this).next("ul").addClass("menuLevelMenu3Active");
          $j(this).find("span").eq(0).addClass("currentSubMenu");        
        }
        else if($j(this).next("div").size()>0){
          $j(this).next("div").find("ul").eq(0).slideDown('fast', function() {
              $j(this).find("li").eq(0).click();
          });
          $j(this).next("div").find("ul").addClass("menuLevelMenu3Active");
          $j(this).find("span").eq(0).addClass("currentSubMenu");
        }
      }
      else{
        if($j(this).next("ul").size()>0){
          $j(this).next("ul").slideUp();
          $j(this).next("ul").removeClass("menuLevelMenu3Active");
          $j(this).find("span").eq(0).removeClass("currentSubMenu");
        }
        else if($j(this).next("div").size()>0){
          $j(this).next("div").find("ul").eq(0).slideUp();
          $j(this).next("div").find("ul").removeClass("menuLevelMenu3Active");
          $j(this).find("span").eq(0).removeClass("currentSubMenu");
        }
      }
      return false;
    });
	}
}

/**
 * Affiche le deuxième niveau pour le menu de gauche
 */
function showSubMenu2(link) {
  var liParent = $j(link).parent()
  var uls = liParent.find('ul')
  $j('.menu2').css('display', 'none');
  uls.css('display', 'block');
  return false;
}

var initAllAccueil = function(){
	initMenu();
	initShowTab();
}

var initContenuAccueil = function(){
  initCarouselAlaune();
  initCarouselPresse();
  initCarouselEssentiel();
}

var initAllInscription = function(){
  initMenu();
}

var initAllPanier = function(){
  initMenu();
}

var initAllActualites = function(){
  initMenu();
  initShowSubMenu();
}

var initAllPublications = function(){
  initMenu();
  initShowSubMenu();
  try {
    $j('#pf_456971').click();
    $j('#pf_456971').find('label')[0].click();
  }
  catch (e) {}
}

var initAllPresentation = function(){
  initMenu();
  initShowSubMenu();
}

var initAllSitesThematiques = function(){
  initMenu();
  initShowSubMenu();
}

var initAllAnnuaire = function(){
  initMenu();
  initShowSubMenu();
}

var setSubmitLoading = function(submitId, loadingId){
  /*
  if ($j(id).css('z-index') != '-1') {
    $j(id).wrap('<span class="submit-loading" />');
    $j(id).css('z-index', '-1');
    $j(id).css('position', 'relative');
  }
  */
  
  
  // on récupère la position de l'input
  var inputLeft = $j(submitId).position().left;
  var inputTop = $j(submitId).position().top;
  
  /*
  // on crée une nouvelle div juste après
  $j(id).after("<div class=\"submit-loading\"></div>");
  var newDiv = $j(id).next(); 
  */
  var loadingDiv = $j(loadingId);
  
  // que l'on positionne sur l'input
  loadingDiv.css("left", inputLeft + 5);
  loadingDiv.css("top", inputTop + 7);
  loadingDiv.css("display", "block");
}

