var page = "";
var lang;
var timer3;

function InitLangue(){

	lang = GetLangFromHash();

	if(lang == ""){
		lang = "FR";
	}

	lang = lang.toUpperCase();

	if(lang != "FR" && lang != "UK"){
		lang = "FR";
	}
		
}

function RefreshMenuSelection(){
	var n=0;
	
	
	
	$(".clsMenuFR .clsMenuItem").each(
		function() {
			var elt = $(this);
			if( n == numMenuItem-1){
				$(" .clsMenuItem_Img", elt).attr("src" , "img/MenuOutLast.png");
			}else{
				$(" .clsMenuItem_Img", elt).attr("src" , "img/MenuOutNormal.png");
			}
			$(" .clsMenuArrow", elt).attr("src" , "img/arrowMenu.png");
			$(" .clsMenuItem_Text", elt).css("color" , "#444444");
			n++;
		}
	)
	$(".clsMenuUK .clsMenuItem").each(
		function() {
			var elt = $(this);
			if( n == numMenuItem-1){
				$(" .clsMenuItem_Img", elt).attr("src" , "img/MenuOutLast.png");
			}else{
				$(" .clsMenuItem_Img", elt).attr("src" , "img/MenuOutNormal.png");
			}
			$(" .clsMenuArrow", elt).attr("src" , "img/arrowMenu.png");
			$(" .clsMenuItem_Text", elt).css("color" , "#444444");
			n++;
		}
	)
	
	
	
	
	$(".clsMenuFR .clsMenuSubItem").each(
		function() {
			var elt2 = $(this);
			var elt2FR = $(".clsFR", elt2);
			var elt2UK = $(".clsUK", elt2);
			
			if(lang=="FR"){
				$(" .clsMenuSubItem_Img_Out", elt2FR).css("visibility", "visible");
				$(" .clsMenuSubItem_Img_Over", elt2FR).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2FR).css("color" , "#444444");
				
				$(" .clsMenuSubItem_Img_Out", elt2UK).css("visibility", "hidden");
				$(" .clsMenuSubItem_Img_Over", elt2UK).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2UK).css("color" , "#444444");
			}else{
				$(" .clsMenuSubItem_Img_Out", elt2UK).css("visibility", "visible");
				$(" .clsMenuSubItem_Img_Over", elt2UK).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2UK).css("color" , "#444444");
				
				$(" .clsMenuSubItem_Img_Out", elt2FR).css("visibility", "hidden");
				$(" .clsMenuSubItem_Img_Over", elt2FR).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2FR).css("color" , "#444444");
			}
			
		}
	)
	
	$(".clsMenuUK .clsMenuSubItem").each(
		function() {
			var elt2 = $(this);
			var elt2FR = $(".clsFR", elt2);
			var elt2UK = $(".clsUK", elt2);
			
			if(lang=="FR"){
				$(" .clsMenuSubItem_Img_Out", elt2FR).css("visibility", "visible");
				$(" .clsMenuSubItem_Img_Over", elt2FR).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2FR).css("color" , "#444444");
				
				$(" .clsMenuSubItem_Img_Out", elt2UK).css("visibility", "hidden");
				$(" .clsMenuSubItem_Img_Over", elt2UK).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2UK).css("color" , "#444444");
			}else{
				$(" .clsMenuSubItem_Img_Out", elt2UK).css("visibility", "visible");
				$(" .clsMenuSubItem_Img_Over", elt2UK).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2UK).css("color" , "#444444");
				
				$(" .clsMenuSubItem_Img_Out", elt2FR).css("visibility", "hidden");
				$(" .clsMenuSubItem_Img_Over", elt2FR).css("visibility", "hidden");
				$(" .clsMenuSubItem_Text", elt2FR).css("color" , "#444444");
			}
			
		}
	)
	
	
	
	
	
	
	
	if(currSelectedMenu != -1){
	
		var elt3;
		
		elt3 = $(".clsMenuFR .clsMenuItem").get(currSelectedMenu);
		if( currSelectedMenu == numMenuItem-1){
			$(" .clsMenuItem_Img", elt3).attr("src" , "img/MenuOverLast.png");
		}else{
			$(" .clsMenuItem_Img", elt3).attr("src" , "img/MenuOverNormal.png");
		}
		$(" .clsMenuArrow", elt3).attr("src" , "img/arrowMenu2.png");
		$(" .clsMenuItem_Text", elt3).css("color" , "#FFFFFF");
		
		
		
		
		elt3 = $(".clsMenuUK .clsMenuItem").get(currSelectedMenu);
		if( currSelectedMenu == numMenuItem-1){
			$(" .clsMenuItem_Img", elt3).attr("src" , "img/MenuOverLast.png");
		}else{
			$(" .clsMenuItem_Img", elt3).attr("src" , "img/MenuOverNormal.png");
		}
		$(" .clsMenuArrow", elt3).attr("src" , "img/arrowMenu2.png");
		$(" .clsMenuItem_Text", elt3).css("color" , "#FFFFFF");
		
	}
	
	if(currSelectedSubMenu != -1){
	
		var elt4 = $(".clsMenuFR .clsMenuItem").get(currSelectedMenu);
		var elt5 = $(" .clsMenuSubItem", elt4).get(currSelectedSubMenu);
		
		var elt5FR = $(".clsFR", elt5);
		var elt5UK = $(".clsUK", elt5);
			
		if(lang=="FR"){
			$(" .clsMenuSubItem_Img_Out", elt5FR).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5FR).css("visibility", "visible");
			$(" .clsMenuSubItem_Text", elt5FR).css("color" , "#FFFFFF");
			
			$(" .clsMenuSubItem_Img_Out", elt5UK).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5UK).css("visibility", "hidden");
			$(" .clsMenuSubItem_Text", elt5UK).css("color" , "#FFFFFF");
		}else{
			$(" .clsMenuSubItem_Img_Out", elt5UK).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5UK).css("visibility", "visible");
			$(" .clsMenuSubItem_Text", elt5UK).css("color" , "#FFFFFF");
			
			$(" .clsMenuSubItem_Img_Out", elt5FR).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5FR).css("visibility", "hidden");
			$(" .clsMenuSubItem_Text", elt5FR).css("color" , "#FFFFFF");
		}
		
		
		
		
		elt4 = $(".clsMenuUK .clsMenuItem").get(currSelectedMenu);
		elt5 = $(" .clsMenuSubItem", elt4).get(currSelectedSubMenu);
		
		elt5FR = $(".clsFR", elt5);
		elt5UK = $(".clsUK", elt5);
			
		if(lang=="FR"){
			$(" .clsMenuSubItem_Img_Out", elt5FR).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5FR).css("visibility", "visible");
			$(" .clsMenuSubItem_Text", elt5FR).css("color" , "#FFFFFF");
			
			$(" .clsMenuSubItem_Img_Out", elt5UK).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5UK).css("visibility", "hidden");
			$(" .clsMenuSubItem_Text", elt5UK).css("color" , "#FFFFFF");
		}else{
			$(" .clsMenuSubItem_Img_Out", elt5UK).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5UK).css("visibility", "visible");
			$(" .clsMenuSubItem_Text", elt5UK).css("color" , "#FFFFFF");
			
			$(" .clsMenuSubItem_Img_Out", elt5FR).css("visibility", "hidden");
			$(" .clsMenuSubItem_Img_Over", elt5FR).css("visibility", "hidden");
			$(" .clsMenuSubItem_Text", elt5FR).css("color" , "#FFFFFF");
		}
		
		
	}
}

function SetMenuSelection(_pg){

	var index = -1;
	var _l = $(".clsMenuFR .clsMenuItem").length;
	for(var i = 0 ; i < _l ; i++){
	
		var item = $(".clsMenuFR .clsMenuItem").get(i);
		var _linkMenu = $(".menuLink", item);
		if($(_linkMenu).attr("href") == "javascript:ShowPage('" + _pg + "');"){
			index = i;
		}
		var _l2 = $(".subMenuLink", item).length;		
		for(var j = 0 ; j < _l2 ; j++){
			var subitem = $(".subMenuLink", item).get(j);
			if($(subitem).attr("href") == "javascript:ShowPage('" + _pg + "');"){
				index = i;
			}
		}
		
		if(index == -1){
			var item = $(".clsMenuUK .clsMenuItem").get(i);
			var _linkMenu = $(".menuLink", item);
			if($(_linkMenu).attr("href") == "javascript:ShowPage('" + _pg + "');"){
				index = i;
			}
			var _l2 = $(".subMenuLink", item).length;		
			for(var j = 0 ; j < _l2 ; j++){
				var subitem = $(".subMenuLink", item).get(j);
				if($(subitem).attr("href") == "javascript:ShowPage('" + _pg + "');"){
					index = i;
				}
			}
		}
		
		
		
    }
   
    var indexSub = -1;
	var _l = $(".clsMenuFR .clsMenuItem").length;
	for(var i = 0 ; i < _l ; i++){
		var item = $(".clsMenuFR .clsMenuItem").get(i);
		var _l2 = $(".subMenuLink", item).length;
		for(var j = 0 ; j < _l2 ; j++){
			var subitem = $(".subMenuLink", item).get(j);
			if($(subitem).attr("href") == "javascript:ShowPage('" + _pg + "');"){
				indexSub = j; 
			}
		}
		
		
		if(indexSub == -1){
			var item = $(".clsMenuUK .clsMenuItem").get(i);
			var _l2 = $(".subMenuLink", item).length;
			for(var j = 0 ; j < _l2 ; j++){
				var subitem = $(".subMenuLink", item).get(j);
				if($(subitem).attr("href") == "javascript:ShowPage('" + _pg + "');"){
					indexSub = j; 
				}
			}
		}
   }
   
   currSelectedMenu = index;
   currSelectedSubMenu = indexSub;

}

function InitPage(){
	var _currPage = GetPageFromHash();
	if(_currPage == ""){
		page = "graftfast";
		LoadAccueil();
		
		currSelectedMenu = -1;
		currSelectedSubMenu = -1;
	}
	else{
		if (_currPage == "graftfast"){
			page = "graftfast";
			LoadAccueil();
		
			currSelectedMenu = -1;
			currSelectedSubMenu = -1;
			
		}else{
			LoadPage(_currPage);
			
			currSelectedMenu = -1;
			currSelectedSubMenu = -1;
			SetMenuSelection(_currPage);
		}
	}
	
	RefreshMenuSelection();
	
	window.location.hash = "#/" + lang.toLowerCase() + "/" + GetPageInCurrentLang(page);
	ResetDocumentTitle();
	
	$(window).hashchange( 
		function(){				
			ResetDocumentTitle();
			
			var extHash = "";

			if(window.location.hash.length == 0){
				extHash = "#/fr/graftfast";
			}else if(GetLangFromHash() == "" && GetPageFromHash() == ""){
				extHash = "#/fr/graftfast";
			}else if(GetLangFromHash() == "" && GetPageFromHash() != ""){
				extHash = "#/fr/" + GetPageFromHash();
			}else if(GetLangFromHash() != "" && GetPageFromHash() == ""){
				extHash = "#/" + GetLangFromHash("lang") + "/" + "graftfast";
			}
			
			if(extHash != ""){
				window.location.hash = extHash;
				ResetDocumentTitle();
			}else{
				ResetDocumentTitle();
				InitLangue();
				SwitchLang();
				Historique();
			}
	
				
		}
		)
		
		ResetDocumentTitle();
}

function Historique(){
	var _currPage = GetPageFromHash();
	ShowPage(_currPage);
}

function GetMenuItemIndex(_lienPage){
	var index = -1;
	var _l = $(".clsMenuFR .clsMenuItem").length;
	for(var i = 0 ; i < _l ; i++){
		var item = $(".clsMenuFR .clsMenuItem").get(i);
		var _linkMenu = $(".menuLink", item);
		if($(_linkMenu).attr("href") == "javascript:ShowPage('" + _lienPage + "');"){
			index = i;
		}
		var _l2 = $(".subMenuLink", item).length;		
		for(var j = 0 ; j < _l2 ; j++){
			var subitem = $(".subMenuLink", item).get(j);
			if($(subitem).attr("href") == "javascript:ShowPage('" + _lienPage + "');"){
				index = i;
			}
		}
		
		
		
		if(index == -1){
			var item = $(".clsMenuUK .clsMenuItem").get(i);
			var _linkMenu = $(".menuLink", item);
			if($(_linkMenu).attr("href") == "javascript:ShowPage('" + _lienPage + "');"){
				index = i;
			}
			var _l2 = $(".subMenuLink", item).length;		
			for(var j = 0 ; j < _l2 ; j++){
				var subitem = $(".subMenuLink", item).get(j);
				if($(subitem).attr("href") == "javascript:ShowPage('" + _lienPage + "');"){
					index = i;
				}
			}
	   }
   }
   
	return index;
}

function GetMenuSubItemIndex(_lienPage){
	var index = -1;
	var _l = $(".clsMenuFR .clsMenuItem").length;
	for(var i = 0 ; i < _l ; i++){
		var item = $(".clsMenuFR .clsMenuItem").get(i);
		var _l2 = $(".subMenuLink", item).length;
		for(var j = 0 ; j < _l2 ; j++){
			var subitem = $(".subMenuLink", item).get(j);
			if($(subitem).attr("href") == "javascript:ShowPage('" + _lienPage + "');"){
				index = j; 
			}
		}
		
		
		if(index == -1){
			var item = $(".clsMenuUK .clsMenuItem").get(i);
			var _l2 = $(".subMenuLink", item).length;
			for(var j = 0 ; j < _l2 ; j++){
				var subitem = $(".subMenuLink", item).get(j);
				if($(subitem).attr("href") == "javascript:ShowPage('" + _lienPage + "');"){
					index = j; 
				}
			}
		}
   }
   
	return index;
}


function GetFileToLoad(_lienPage){
	var ret = "";
	var file = "";
	var idx = GetMenuItemIndex(_lienPage)
	var subIdx = GetMenuSubItemIndex(_lienPage)
	if(idx != -1){
		if(subIdx == -1){
			var item = $(".clsMenuFR .clsMenuItem").get(idx);
			var _linkMenu = $(".menuLink", item);
			file = $(_linkMenu).attr("href").replace("javascript:ShowPage('", "").replace("');", "");
		
		}else{
			var item = $(".clsMenuFR .clsMenuItem").get(idx);
			var _linkMenu = $(".menuLink", item);
			var subitem = $(".subMenuLink", item).get(subIdx);
			file = $(subitem).attr("href").replace("javascript:ShowPage('", "").replace("');", "");
			
		}
		ret = "content/" + file + ".html";
	}else{
		ret = "content/" + _lienPage + ".html";
	}
	return ret;
}


function GetPageInCurrentLang(_lienPage){
	var ret = "";
	var idx = GetMenuItemIndex(_lienPage)
	var subIdx = GetMenuSubItemIndex(_lienPage)
	
	if(idx != -1){
		if(subIdx == -1){
			var item = $(".clsMenu" + lang.toUpperCase() + " .clsMenuItem").get(idx);
			var _linkMenu = $(".menuLink", item);
			ret = $(_linkMenu).attr("href").replace("javascript:ShowPage('", "").replace("');", "");
		
		}else{
			var item = $(".clsMenu" + lang.toUpperCase() + " .clsMenuItem").get(idx);
			var _linkMenu = $(".menuLink", item);
			var subitem = $(".subMenuLink", item).get(subIdx);
			ret = $(subitem).attr("href").replace("javascript:ShowPage('", "").replace("');", "");
			
		}
	}else{
		ret = _lienPage;
	}
	return ret;
}


function ChangeLangue(){

	lang = (lang == "FR") ? "UK" : "FR";
	window.location.hash = "#/" + lang.toLowerCase() + "/" + GetPageInCurrentLang(page);
	
	SwitchLang();
}

function GetFromQueryString(key){
	var qs = "?";
	var hu = window.location.search.substring(1);
	var gy = hu.split("&");
	var n=0;
	for (i=0;i<gy.length;i++) {
		var ft = gy[i].split("=");
		if (ft[0] == key) {
			return ft[1];
		}
	}
	return '';
}

function GetLangFromHash(){
	if(window.location.hash.length > 0){
		var _hash = window.location.hash.substring(1);
		var _hashs = _hash.split("/");
		if(_hashs.length > 0){
			return _hashs[1];
		}
	}
	return '';
}

function GetPageFromHash(){
	if(window.location.hash.length > 0){
		var _hash = window.location.hash.substring(1);
		var _hashs = _hash.split("/");
		if(_hashs.length > 2){
			return _hashs[2];
		}
	}
	return '';
}

function MakeRequest(){
	var req = false;
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	}
	else if(window.ActiveXObject)
	{
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
	return req;
}


var transitionX = 0;
var transitionY = 0;

var divHeight = 630;
var divWidth = 960;

var pageTransitionInProgress = false;
var newPage;
	
function ShowPage(_newPage){
	
	//  /!\ Le mécanisme de défilement est conservé, mais n'est pas exploité.
	//  Ne pas toucher cette fonction
	if(page != _newPage && _newPage != "" && pageTransitionInProgress == false){
		
		transitionX = 0;
		transitionY = 0;
		
		var newPage_MenuItemIndex = -1;
		var currPage_MenuItemIndex = -1;
				
		currSelectedMenu = -1;
		currSelectedSubMenu = -1;
		
		if(_newPage == "graftfast" || _newPage == "mentions"){
			transitionX = 0;
			transitionY = 1;
			
			$("#lineFooter").css("display", "none");
		}
		else if(page == "graftfast" || page == "mentions"){
			transitionX = 0;
			transitionY = -1;
			
			$("#lineFooter").css("display", "block");
			
			SetMenuSelection(_newPage);
		}
		else{
			
			$("#lineFooter").css("display", "block");
			
			SetMenuSelection(_newPage);
			
			var newPage_MenuItemIndex = GetMenuItemIndex(_newPage);			
			var currPage_MenuItemIndex = GetMenuItemIndex(page);
			
			if(newPage_MenuItemIndex == currPage_MenuItemIndex){
			
				// transition au sein d'un même menu => slide gauche ou droite
				// Il y a donc forcément des sous-menus
				
				transitionY = 0;
					
				var newPage_MenuSubItemIndex = GetMenuSubItemIndex(_newPage);
				var currPage_MenuSubItemIndex = GetMenuSubItemIndex(page);
				
				if(newPage_MenuSubItemIndex < currPage_MenuSubItemIndex){
					// défilement gauche
					transitionX = 1;
				}
				
				if(newPage_MenuSubItemIndex > currPage_MenuSubItemIndex){
					// défilement droite
					transitionX = -1;
				}
				
				
			}else{
			
				// transition au sein de menus différents => slide haut ou bas
				
				transitionX = 0;
				
				if(newPage_MenuItemIndex < currPage_MenuItemIndex){
					// défilement haut (bloqué)
					transitionY = 1;
				}else{
					// défilement bas (bloqué)
					transitionY = -1;
				}
			}
		}
		
		if(transitionX != 0 || transitionY != 0){
			
			pageTransitionInProgress = true;
			newPage = _newPage;
						
			//$('#idMain').animate({top: transitionY * divHeight, left: transitionX * divWidth}, 300, EndPageTransition);
			//$('#idMain').animate({left: transitionX * 0.5 * divHeight, opacity: 0},{ duration: 300, easing: 'easeInQuad', complete: EndPageTransition});
			//$('#idMain').animate({left: transitionX * 0.5 * divHeight},{ duration: 300, easing: 'easeInQuad', complete: EndPageTransition});
			
			EndPageTransition();
		}
		
		RefreshMenuSelection();
	}
}

function EndPageTransition(){
	pageTransitionInProgress = false;
	
	$('#idMain').html("");
	window.location.hash = "#/" + lang.toLowerCase() + "/" + GetPageInCurrentLang(newPage);
	ResetDocumentTitle();
	
	//$('#idMain').css("left", - transitionX * 0.5 * divHeight);
	//$('#idMain').animate({left: 0, opacity: 1}, {duration: 300, easing: 'easeOutQuad'});
	//$('#idMain').animate({left: 0}, {duration: 300, easing: 'easeOutQuad'});
	
	if (newPage =="graftfast"){
		page = newPage;
		LoadAccueil();
	}
	else{
		LoadPage(newPage);
	}
	
}

var timerTitle;
function ResetDocumentTitle(){
	ClearTimerTitle()
	timerTitle = setTimeout("onTimerTitle()",250);
}

function onTimerTitle(){
	ClearTimerTitle();
	document.title = "GRAFTFAST";
}

function ClearTimerTitle(){
	try
	{
		clearTimeout(timerTitle);
	 }catch(err){
	 }
}
