var BASE_URL = "http://www.urbilog.fr/";

var addEvent = (function () {
  if (document.addEventListener) {
    return function (el, type, fn) {
      if (el && el.nodeName || el === window) {
        el.addEventListener(type, fn, false);
      } else if (el && el.length) {
        for (var i = 0; i < el.length; i++) {
          addEvent(el[i], type, fn);
        }
      }
    };
  } else {
    return function (el, type, fn) {
      if (el && el.nodeName || el === window) {
        el.attachEvent('on' + type, function () { return fn.call(el, window.event); });
      } else if (el && el.length) {
        for (var i = 0; i < el.length; i++) {
          addEvent(el[i], type, fn);
        }
      }
    };
  }
})();

function translate(who) {
	if (typeof history.pushState === 'undefined') {	} else {
		var stateObj = { obj: who };
		history.pushState(stateObj, document.title, $("a."+who).attr("href"));
	}
}

function translateMenu(to,niveau) { 
	switch(niveau) {
		case 1:
			$("#menu ul li ").removeClass("active");
			$("#menu ul li.mm"+to).addClass("active");
			break;
		case 2:
			$("#heading1 .submenu ul li ").removeClass("active");
			$("#heading1 .submenu ul li.sm"+to).addClass("active");
			break;
		case 3:
			$("#heading2 .submenu ul li ").removeClass("active");
			$("#heading2 .submenu ul li.ssm"+to).addClass("active");
			break;
	}
	
}

function deplacerBloc(bloc,classe) {
	$(bloc).removeClass("left");
	$(bloc).removeClass("center");
	$(bloc).removeClass("right");
	$(bloc).addClass(classe);	
}

function moveBloc(obj,direction,firstSli,secondSli,niveau) {
	firstSlider = '#slide'+firstSli+'_articles';
	secondSlider = '#slide'+secondSli+'_articles';
	tabId = (obj.attr('id')).split("-");
	var aUrl = "";
	var data_next = "";
	var data_prev = "";
	switch(niveau) {
		case 1:
			aUrl = BASE_URL+'metier.php';
			var nb_el = $("#menu ul li").size();
			data_next = 'ordre='+tabId[1]+"&type=next";
			data_prev = 'ordre='+tabId[1]+"&type=prev";
			
			$("#heading2").slideUp();
			$("#heading3").slideUp();
			break;
		case 2:
			aUrl = BASE_URL+'fiche.php';
			var nb_el = $("#heading1 .slide1_articles .centre .submenu ul li").size();
			var a_class = $("#menu ul li.active a").attr("id");
			var id_metier = a_class.replace("metier-","");
			data_next = 'metier='+id_metier+'&ordre='+tabId[1]+'&type=next';			
			data_prev = 'metier='+id_metier+'&ordre='+tabId[1]+'&type=prev';

			$("#heading3").slideUp();
			break;
		case 3:
			aUrl = BASE_URL+'sousfiche.php';
			var nb_el = $("#heading2 .slide1_articles .centre .submenu ul li").size();
			var a_class = $("#heading1 .centre .submenu ul li.active a").attr("id");
			var id_fiche = a_class.replace("fiche-","");
			data_next = 'fiche='+id_fiche+'&ordre='+tabId[1]+'&type=next';
			data_prev = 'fiche='+id_fiche+'&ordre='+tabId[1]+'&type=prev';			
			break;
		case 4:
			aUrl = BASE_URL+'reference.php';
			var nb_el = nbReferences;
			data_next = 'ordre='+tabId[1]+"&type=next";
			data_prev = 'ordre='+tabId[1]+"&type=prev";		
			break;
		case 5:
			aUrl = BASE_URL+'temoignage.php';
			var nb_el = nbTemoignages;
			data_next = 'ordre='+tabId[1]+"&type=next";
			data_prev = 'ordre='+tabId[1]+"&type=prev";		
			break;
		default:
			aUrl = BASE_URL+'metier.php';
			var nb_el = 4;
			data_next = 'ordre='+tabId[1]+"&type=next";
			data_prev = 'ordre='+tabId[1]+"&type=prev";
			break;
	}
	if(direction=="next") {
		try {
		$.ajax({
			async: false,
			type: "POST",
			url: aUrl,
			data: data_next,
			success: function(data) {
				if($(firstSlider).css("display")=="none") {
					$(firstSlider).html(data);
					$('#heading'+niveau+" article:not(.current) .submenu").hide();
					$(firstSlider).css("display","none");
					deplacerBloc(firstSlider,"center");							
				} else {
					$(secondSlider).html(data);
					$('#heading'+niveau+" article:not(.current) .submenu").hide();
					$(secondSlider).css("display","none");
					deplacerBloc(secondSlider,"center");																		
				}
			}
		});					
		if($(firstSlider).css("display")=="none") {
			deplacerBloc(secondSlider,"right");	
			$('#heading'+niveau+' .centre ul li a').click(function(e) {
				majBloc($(this),niveau+1);	
				return false;
			});	
			setTimeout(function(){$(firstSlider).css("display","block"); $('#heading'+niveau+' '+firstSlider).css("display","block");},1000);
			setTimeout(function(){$('#heading'+niveau+' '+firstSlider+' .centre .submenu').fadeIn(1000)},1200);						
		} else {
			deplacerBloc(firstSlider,"right");
			$('#heading'+niveau+' .centre ul li a').click(function(e) {
				majBloc($(this),niveau+1);	
				return false;
			});	
			setTimeout(function(){$(secondSlider).css("display","block"); $('#heading'+niveau+' '+firstSlider).css("display","none");},1000);
			setTimeout(function(){$('#heading'+niveau+' '+secondSlider+' .centre .submenu').fadeIn(1000)},1200);
		}	
		if(parseInt(tabId[1])+1>=nb_el) {
			next = 0;
		} else {
			next = parseInt(tabId[1])+1;
		}
		$('#heading'+niveau+' #next'+niveau+'-'+tabId[1]).attr("id",'next'+niveau+'-'+(parseInt(next)));
		$('#heading'+niveau+' #prev'+niveau+'-'+tabId[1]).attr("id",'prev'+niveau+'-'+(parseInt(next)));

		//translate("next");
		translateMenu(next,niveau);
		
		if($(firstSlider).css("display")=="none") {
			$('#heading'+niveau+' a.next').attr("href", $(secondSlider+' article.droite').attr('data-url'));
			$('#heading'+niveau+' a.prev').attr("href", $(secondSlider+' article.gauche').attr('data-url'));
			
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: $("#heading"+niveau+" "+secondSlider+" .droite").attr("data-url") };
				history.pushState(stateObj, document.title,$("#heading"+niveau+" "+secondSlider+" .droite").attr("data-url"));
			}		
			
		} else {
			$('#heading'+niveau+' a.next').attr("href", $(firstSlider+' article.droite').attr('data-url'));
			$('#heading'+niveau+' a.prev').attr("href", $(firstSlider+' article.gauche').attr('data-url'));
			
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: $("#heading"+niveau+" "+firstSlider+" .droite").attr("data-url") };
				history.pushState(stateObj, document.title,$("#heading"+niveau+" "+firstSlider+" .droite").attr("data-url"));
			}
		}
		} catch(e) {
		
		}
	} else {
		try {
		$.ajax({
			async: false,
			type: "POST",
			url: aUrl,
			data: data_prev,
			success: function(data) {
				if($(firstSlider).css("display")=="none") {
					$(firstSlider).html(data);
					$('#heading'+niveau+" article:not(.current) .submenu").hide();
					deplacerBloc(firstSlider,"center");	
				} else {
					$(secondSlider).html(data);
					$('#heading'+niveau+" article:not(.current) .submenu").hide();
					deplacerBloc(secondSlider,"center");	
				}
			}
		});	
		
		if($(firstSlider).css("display")=="none") {
			deplacerBloc(secondSlider,"left");
			$('#heading'+niveau+' .centre ul li a').click(function(e) {
				majBloc($(this),niveau+1);	
				return false;
			});	
			setTimeout(function(){$('#heading'+niveau+' '+firstSlider).css("display","block");},1000);
			setTimeout(function(){$('#heading'+niveau+' '+firstSlider+' .centre .submenu').fadeIn(1000)},1200);
		} else {
			deplacerBloc(firstSlider,"left");
			// On redéfinit le click du submenu de l'élément actuel
			$('#heading'+niveau+' .centre ul li a').click(function(e) {
				majBloc($(this),niveau+1);	
				return false;
			});			
			
			setTimeout(function(){$('#heading'+niveau+' '+firstSlider).css("display","none");},1000);
			setTimeout(function(){$('#heading'+niveau+' '+secondSlider+' .centre .submenu').fadeIn(1000)},1200);	
		}		
		if(parseInt(tabId[1])==0) {
			prev = nb_el-1;
		} else {
			prev = parseInt(tabId[1])-1;
		}	
		// On redéfinit les liens précédent et suivant du heading actuel
		$('#heading'+niveau+' #next'+niveau+'-'+tabId[1]).attr("id",'next'+niveau+'-'+(parseInt(prev)));
		$('#heading'+niveau+' #prev'+niveau+'-'+tabId[1]).attr("id",'prev'+niveau+'-'+(parseInt(prev)));

		translateMenu(prev,niveau);
		
		if($(firstSlider).css("display")=="none") {
			$('#heading'+niveau+' a.next').attr("href", $(secondSlider+' article.droite').attr('data-url'));
			$('#heading'+niveau+' a.prev').attr("href", $(secondSlider+' article.gauche').attr('data-url'));
			
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: $("#heading"+niveau+" "+secondSlider+" .gauche").attr("data-url") };
				history.pushState(stateObj, document.title,$("#heading"+niveau+" "+secondSlider+" .gauche").attr("data-url"));
			}		
			
		} else {
			$('#heading'+niveau+' a.next').attr("href", $(firstSlider+' article.droite').attr('data-url'));
			$('#heading'+niveau+' a.prev').attr("href", $(firstSlider+' article.gauche').attr('data-url'));
			
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: $("#heading"+niveau+" "+firstSlider+" .gauche").attr("data-url") };
				history.pushState(stateObj, document.title,$("#heading"+niveau+" "+firstSlider+" .gauche").attr("data-url"));
			}
		}
		} catch(e) {
		
		}
	}
	
	try {
		if(niveau==1) {
			setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu").offset().top+50 }, 500);},500);
		} else {
			setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu"+niveau).offset().top-20 }, 500);},500);
		}
	} catch(e) {
	
	}
	
	$("#heading"+niveau+" a.up").click(function() {
		if(niveau==1) {
			$("#menu li.active").removeClass("active");
		} else {
			$("#menu"+niveau+" li.active").removeClass("active");
		}				
		$("#heading"+niveau).slideUp();
		$('#heading'+(niveau-1)+" a.up").show();
		switch(niveau) {
			case 1:
				// setTimeout(function(){$('html, body').animate({ scrollTop: 0 }, 500);},500);
				if (typeof history.pushState === 'undefined') {	} else {
					var stateObj = { obj: BASE_URL };
					history.pushState(stateObj, document.title,BASE_URL);
				}
				break;
			case 2:
				try {
					setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu").offset().top-20 }, 500);},500);
				} catch(e) { }
				if (typeof history.pushState === 'undefined') {	} else {
					var stateObj = { obj: BASE_URL+$("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url") };
					history.pushState(stateObj, document.title,BASE_URL+$("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url"));
				}
				break;
			case 3: 
				try {
					setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu"+(niveau-1)).offset().top-20 }, 500);},500);
				} catch(e) { }
				if (typeof history.pushState === 'undefined') {	} else {
					var stateObj = { obj: $("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url") };
					history.pushState(stateObj, document.title,$("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url"));
				}
				break;
		}
		switch(niveau) {
			case 1:
				document.title = "Urbilog, qualité, innovation, accessibilité";			
				break;
			case 2:
				document.title = $("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";		
				break;
			case 3:
				document.title = $("#heading1 .submenu li.active a div.haut span").text()+" - "+$("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";		
				break;
		};	
		return false;
	});
	return false;
}

function majBloc(athis,niveau,ordre) {
	var slider1 = 0;
	var slider2 = 0;
	switch(niveau) {	
		case 1:
			var str_classes = athis.parent().attr("class");		
			var classes = str_classes.split(" ");
		
			// On récupère l'ordre de l'élément courant			
			var regExp = new RegExp("^mm.+","g");
			for(i=0; i<classes.length;i++) {
				if(regExp.test(classes[i])) {
					el_ord = parseInt(classes[i].replace("mm",""));
				}
			}			
			// Fin - On récupère l'ordre de l'élément courant
			
			var menu = "#menu";
			var aUrl = BASE_URL+"metier.php";
			var aData = 'ordre='+el_ord+'&type=current';
			var slider1 = 1;
			var slider2 = 2;		
			break;
		case 2:
			var str_classes = athis.parent().attr("class");		
			var classes = str_classes.split(" ");	
			
			// On récupère l'ordre de l'élément courant
			var regExp = new RegExp("^sm.+","g");
			for(i=0; i<classes.length;i++) {
				if(regExp.test(classes[i])) {
					el_ord = parseInt(classes[i].replace("sm",""));
				}
			}
			var a_class = $("#menu ul li.active a").attr("id");
			var id_metier = a_class.replace("metier-","");			
			// Fin - On récupère l'ordre de l'élément courant			
			
			var menu = '#heading'+(niveau-1)+' .submenu';
			var aUrl = BASE_URL+"fiche.php";
			var aData = 'metier='+id_metier+'&ordre='+el_ord+'&type=current';
			var slider1 = 3;
			var slider2 = 4;
			break;
		case 3:
			var str_classes = athis.parent().attr("class");		
			var classes = str_classes.split(" ");		

			// On récupère l'ordre de l'élément courant
			var regExp = new RegExp("^ssm.+","g");
			for(i=0; i<classes.length;i++) {
				if(regExp.test(classes[i])) {
					el_ord = parseInt(classes[i].replace("ssm",""));
				}
			}
			// Fin - On récupère l'ordre de l'élément courant
			var a_class = $("#heading1 .centre .submenu ul li.active a").attr("id");
			var id_fiche = a_class.replace("fiche-","");
			var menu = '#heading'+(niveau-1)+' .submenu';
			var aUrl = BASE_URL+"sousfiche.php";
			var aData = 'fiche='+id_fiche+'&ordre='+el_ord+'&type=current';
			var slider1 = 5;
			var slider2 = 6;
			break;
		case 4:
			aUrl = BASE_URL+"reference.php";
			if(ordre!=undefined) {
				aData = 'ordre='+ordre+'&type=current';
			} else {
				aData = 'ordre=0&type=current';
			}
			var slider1 = 7;
			var slider2 = 8;
			break;
		case 5:
			aUrl = BASE_URL+"temoignage.php";
			if(ordre!=undefined) {
				aData = 'ordre='+ordre+'&type=current';
			} else {
				aData = 'ordre=0&type=current';
			}
			var slider1 = 9;
			var slider2 = 10;
			break;
	}

	$.ajax({
		async: false,
		type: "POST",
		url: aUrl,
		data: aData,
		success: function(data) {
			if(niveau!=4 && niveau!=5) {
				$(menu+' ul li.active').removeClass("active");
				athis.parent("li").addClass("active");	
			}
			
			$('#heading'+niveau).html(data);
		
			$('#heading'+niveau).slideDown();
			$('#heading'+(niveau-1)+" a.up").hide();
			$("#heading"+niveau+" .submenu").hide();
			setTimeout(function(){$("#heading"+niveau+" #slide"+slider1+"_articles .submenu").fadeIn(1000)},200);				
			$('#heading'+niveau+' .next').click(function() {
				moveBloc($(this),"next", slider1, slider2, niveau);
				return false;
			});							
			$('#heading'+niveau+' .prev').click(function() {
				moveBloc($(this),"prev", slider1, slider2, niveau);
				return false;
			});
						
			$("#heading"+niveau+" .submenu ul li a").click(function() {
				if($(this).parent().hasClass('active')) {
					$(this).parent().removeClass('active');
					switch(niveau+1) {
						case 2:
							$("#heading3").slideUp();
							$("#heading3").html("");
							$("#heading2").slideUp();
							$("#heading2").html("");
							break;
						case 3:
							$("#heading3").slideUp();
							$("#heading3").html("");
							break;
					}
					try {
						if(niveau==1) {
							setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu").offset().top+50 }, 500);},500);
						} else {
							setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu"+niveau).offset().top-20 }, 500);},500);
						}
					} catch(e) {
					
					}					
					if (typeof history.pushState === 'undefined') {	} else {
						var stateObj = { obj: $("#heading"+(niveau)+" .slide1_articles .centre").attr("data-url") };
						history.pushState(stateObj, document.title,BASE_URL+$("#heading"+(niveau)+" .slide1_articles .centre").attr("data-url"));
					}

				} else {
					switch(niveau+1) {
						case 2:
							$("#heading3").slideUp();
							$("#heading3").html("");
							break;
						case 3:
							break;
					}
					majBloc($(this),(niveau+1));	
				}				
				return false;
			});
			
			$("#heading"+niveau+" a.up").click(function() {
				if(niveau==1) {
					$("#menu li.active").removeClass("active");
				} else {
					$("#menu"+niveau+" li.active").removeClass("active");
				}				
				$("#heading"+niveau).slideUp();
				$('#heading'+(niveau-1)+" a.up").show();
				switch(niveau) {
					case 1:
						// setTimeout(function(){$('html, body').animate({ scrollTop: 0 }, 500);},500);
						if (typeof history.pushState === 'undefined') {	} else {
							var stateObj = { obj: BASE_URL };
							history.pushState(stateObj, document.title,BASE_URL);
						}
						break;
					case 2:
						try {
							setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu").offset().top-20 }, 500);},500);
						} catch(e) { };
						if (typeof history.pushState === 'undefined') {	} else {
							var stateObj = { obj: BASE_URL+$("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url") };
							history.pushState(stateObj, document.title,BASE_URL+$("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url"));
						}
						break;
					case 3: 
						try {
							setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu"+(niveau-1)).offset().top-20 }, 500);},500);
						} catch(e) { };
						if (typeof history.pushState === 'undefined') {	} else {
							var stateObj = { obj: $("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url") };
							history.pushState(stateObj, document.title,$("#heading"+(niveau-1)+" .slide1_articles .centre").attr("data-url"));
						}
						break;
				}
				switch(niveau) {
					case 1:
						document.title = "Urbilog, qualité, innovation, accessibilité";			
						break;
					case 2:
						document.title = $("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";		
						break;
					case 3:
						document.title = $("#heading1 .submenu li.active a div.haut span").text()+" - "+$("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";		
						break;
				};	
				return false;			
			});	
			
			try {
				if(niveau==1) {
					setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu").offset().top+50 }, 500);},500);
				} else {
					if($("#menu"+niveau).offset().top!="null") {
						setTimeout(function(){$('html, body').animate({ scrollTop: $("#menu"+niveau).offset().top-20 }, 500);},500);
					}
				}
			} catch(e) {
			
			}			
		}
	});
	
	switch(niveau) {
		case 1:
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: BASE_URL+$("#heading"+niveau+" .slide1_articles .centre").attr("data-url") };
				history.pushState(stateObj, document.title,BASE_URL+$("#heading"+niveau+" .slide1_articles .centre").attr("data-url"));
			}
			break;
		case 2:
		case 3:
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: $("#heading"+niveau+" .slide1_articles .centre").attr("data-url") };
				history.pushState(stateObj, document.title,$("#heading"+niveau+" .slide1_articles .centre").attr("data-url"));
			}
			break;
	}
	
	switch(niveau) {
		case 1:
			document.title = $("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";			
			break;
		case 2:
			document.title = $("#heading1 .submenu li.active a div.haut span").text()+" - "+$("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";		
			break;
		case 3:
			document.title = $("#heading2 .submenu li.active a div.haut span").text()+" - "+$("#heading1 .submenu li.active a div.haut span").text()+" - "+$("#menu ul li.active a div.haut span").text()+" - Urbilog, qualité, innovation, accessibilité";		
			break;
	};
}

$(document).ready(function() {
	window.onpopstate = function(event) {
		//alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
	};

	var state = document.getElementById('status');
	document.title = "Urbilog, qualité, innovation, accessibilité";
	$("#heading1").hide();
	$("#heading2").hide();
	$("#heading3").hide();
	
	$('#menu ul li.active').removeClass("active");
	$('#menu ul li a').click(function(e) {
		$("#heading3").slideUp();
		$("#heading2").slideUp();

		$("#heading2").html("");
		$("#heading3").html("");

		if($(this).parent().hasClass('active')) {
			$("#heading1").html("");
			$("#heading1").slideUp();
			$(this).parent().removeClass('active');
			if (typeof history.pushState === 'undefined') {	} else {
				var stateObj = { obj: BASE_URL };
				history.pushState(stateObj, document.title,BASE_URL);
			}
			// setTimeout(function(){$('html, body').animate({ scrollTop: 0 }, 500);},500);
		} else {
			majBloc($(this),1);
		}
		return false;
	});
});

