	
	var MAX_SCROLL_HEIGHT = 275;
	var SCROLL_CELL_HEIGHT = 275;
	
	var BrowserDetect = {
		init: function () {
			this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
			this.version = this.searchVersion(navigator.userAgent)
				|| this.searchVersion(navigator.appVersion)
				|| "an unknown version";
			this.OS = this.searchString(this.dataOS) || "an unknown OS";
		},
		searchString: function (data) {
			for (var i=0;i<data.length;i++)	{
				var dataString = data[i].string;
				var dataProp = data[i].prop;
				this.versionSearchString = data[i].versionSearch || data[i].identity;
				if (dataString) {
					if (dataString.indexOf(data[i].subString) != -1)
						return data[i].identity;
				}
				else if (dataProp)
					return data[i].identity;
			}
		},
		searchVersion: function (dataString) {
			var index = dataString.indexOf(this.versionSearchString);
			if (index == -1) return;
			return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
		},
		dataBrowser: [
			{
				string: navigator.userAgent,
				subString: "Chrome",
				identity: "Chrome"
			},
			{ 	string: navigator.userAgent,
				subString: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari",
				versionSearch: "Version"
			},
			{
				prop: window.opera,
				identity: "Opera"
			},
			{
				string: navigator.vendor,
				subString: "iCab",
				identity: "iCab"
			},
			{
				string: navigator.vendor,
				subString: "KDE",
				identity: "Konqueror"
			},
			{
				string: navigator.userAgent,
				subString: "Firefox",
				identity: "Firefox"
			},
			{
				string: navigator.vendor,
				subString: "Camino",
				identity: "Camino"
			},
			{		// for newer Netscapes (6+)
				string: navigator.userAgent,
				subString: "Netscape",
				identity: "Netscape"
			},
			{
				string: navigator.userAgent,
				subString: "MSIE",
				identity: "Explorer",
				versionSearch: "MSIE"
			},
			{
				string: navigator.userAgent,
				subString: "Gecko",
				identity: "Mozilla",
				versionSearch: "rv"
			},
			{ 		// for older Netscapes (4-)
				string: navigator.userAgent,
				subString: "Mozilla",
				identity: "Netscape",
				versionSearch: "Mozilla"
			}
		],
		dataOS : [
			{
				string: navigator.platform,
				subString: "Win",
				identity: "Windows"
			},
			{
				string: navigator.platform,
				subString: "Mac",
				identity: "Mac"
			},
			{
				   string: navigator.userAgent,
				   subString: "iPhone",
				   identity: "iPhone/iPod"
		    },
			{
				string: navigator.platform,
				subString: "Linux",
				identity: "Linux"
			}
		]
	};
	
	BrowserDetect.init();
	
	var Focus = {
		selLine: [],//--
		selTr: "",
		overContent: null
	};
	
	var Utils = {
		display: function(id,titleid) {
			var element = document.getElementById(id);
			var title = document.getElementById(titleid);
			if(element.displayflag) {
				if(id!=Focus.selLine[0]) {
					var previous = document.getElementById(Focus.selLine[0]);
					var prevtitle = document.getElementById(Focus.selLine[1]);
					if(!previous.displayflag) {
						previous.style.height = "0px";
						//
						prevtitle.onmouseover = Utils.getHandler("colorOver",[prevtitle,false]);
						prevtitle.onmouseout = Utils.getHandler("colorOver",[prevtitle,true]);
						previous.displayflag = true;
						if(previous.overflown) {
							previous.overflowX = "hidden";
							previous.overflowY = "hidden";
						}
					}
				}
				Focus.selLine = [id,titleid];
				element.style.height = element.displayHeight +"px";
				//
				title.blur();
				title.onmouseover = null;
				title.onmouseout = null;
				element.displayflag = Utils.colorOver(title,element.displayflag);
				//
				if(element.overflown) {
					element.style.overflowX = "hidden";
					element.overflowY = "scroll";
				}
			} else {
				if(id!=Focus.selLine[0]) {
					Focus.selLine = [id,titleid];
				}
				element.style.height = "0px";
				//
				title.blur();
				title.onmouseover = Utils.getHandler("colorOver",[title,false]);
				title.onmouseout = Utils.getHandler("colorOver",[title,true]);
				element.displayflag = Utils.colorOver(title,element.displayflag);
				//
				element.displayflag = true;
				if(element.overflown) {
					element.overflowX = "hidden";
					element.overflowY = "hidden";
				}
			}
		},
		colorOver: function(obj,flag) {
			if(flag==true) {
				obj.className = obj.parentNode.className;
				return false;
			} else {
				obj.className = "over-color";
				return true;
			}
		},
		getHandler: function(handlername,args) {
			switch(handlername) {
				case "display" :
					return function() {	Utils.display(args[0],args[1]); };
					break;
					
				case "colorOver" : 
					return function() {	Utils.colorOver(args[0],args[1]); };
					break;
					
				case "fold" :
					return function() {	Utils.fold(args[0],args[1]); };
					break;
					
				case "menuOver" :
					return function() {	UI.menuOver(args[0]); };
					break;
					
				case "menuOut" :
					return function() {	UI.menuOut(args[0]); };
					break;
					
				case "viewImage" :
					return function() {	UI.viewImage(args[0]); };
					break;
				
				case "viewContent" :
					return function() {	UI.viewContent(args[0],args[1]); };
					break;
					
				case "highlight" :
					return function() {	UI.highlight(args[0]); };
					break;
					
			}
		}
	};
	
	var UI = {
		HomeSlide: [],
		homeflag: true,
		slideInterval: null,
		slideDelay: 3000,
		slideIndex: 0,
		imageArray: [],
		selectedLine: null,
		selectedContent: null,
		logoImages: [ new Image(), new Image() ],
		noimage: new Image(),
		menuClassName: "menulink",
		writeMenu: function() {
			var Menulist = document.getElementById("menu-ul");
			var defaultButton;
			if(section=="news"||section=="tendances") {
				UI.menuClassName = Menulist.className;
			}
			for(var i=0;i<Content.length;i++) {	
				var lineObj = document.createElement("li");
				Menulist.appendChild(lineObj);
				lineObj.className = "menu-line";
				var title = document.createElement("a");
				lineObj.appendChild(title);
				title.id = Content[i].MenuID + "-title";
				title.href = "javascript:void(0);";
				title.className = lineObj.className;
				if(Content.length!=1) {
					title.innerHTML = Content[i].MenuTitle;
				}
				var scrollDiv = document.createElement("div");
				lineObj.appendChild(scrollDiv);
				scrollDiv.id = Content[i].MenuID + "-scroll-cell";
				scrollDiv.className = "scroll-div";
				scrollDiv["displayflag"] = false;
				title.onclick = Utils.getHandler("display",[scrollDiv.id,title.id]);
				var subTable = document.createElement("table");
				scrollDiv.appendChild(subTable);
				subTable.id = Content[i].MenuID + "-table";
				subTable.className = "menu-table";
				var subTbody = document.createElement("tbody");
				subTable.appendChild(subTbody);
				if(Content[i].MenuArray.length!=0) {
					for(var j=0;j<Content[i].MenuArray.length;j++) {
						var subTr = document.createElement("tr");
						subTbody.appendChild(subTr);
						subTr.onmouseover = Utils.getHandler("menuOver",[subTr]);
						subTr.onmouseout = Utils.getHandler("menuOut",[subTr]);
						subTr.onclick = Utils.getHandler("viewContent",[Content[i].MenuArray[j],lineObj]);
						subTr["Content"] = Content[i].MenuArray[j];
						var subTd1 = document.createElement("td");
						var subTd2 = subTd1.cloneNode(true);
						var subTd3 = subTd2.cloneNode(true);
						subTr.appendChild(subTd1);
						subTr.appendChild(subTd2);
						subTr.appendChild(subTd3);
						subTd1.appendChild(document.createTextNode("["));
						subTd1.id = "bracket"+i+"-"+j+"-open";
						subTd1.className = "menubracket";
						subA = document.createElement("a");
						subTd2.appendChild(subA);
						subTd2.className = "menuspan";
						subA.innerHTML = Content[i].MenuArray[j].MenuRef;
						subA.href = "javascript:void(0);";
						subA.className = UI.menuClassName;
						subA.onclick = Utils.getHandler("highlight",[subA]);
						subTd3.appendChild(document.createTextNode("]"));
						subTd3.id = "bracket"+i+"-"+j+"-close";
						subTd3.className = "menubracket";
						if(i==0&&j==0) {
							defaultButton = subTr;
						}
					}
					scrollDiv["displayHeight"] = scrollDiv.offsetHeight;
					if(subTable.scrollHeight>MAX_SCROLL_HEIGHT) {
						scrollDiv["overflown"] = true;
						scrollDiv["displayHeight"] = SCROLL_CELL_HEIGHT;
						scrollDiv.style.overflowX = "hidden";
						scrollDiv.style.overflowY = "scroll";
					}
				}
				if(Content.length!=1) {
					Utils.display(scrollDiv.id, title.id);
				}
				Utils.colorOver(title,true);
				//
				if(section=="news"||section=="tendances"&&subTr) {////
					if(defaultButton) {
						defaultButton.onclick();
						defaultButton.childNodes[1].childNodes[0].onclick();
					}
				}
				//
			}
			if(backoffice) {
				var menuCell = document.getElementById('menu-cell');
				var addForm = document.createElement("form");
				menuCell.appendChild(addForm);
				addForm.id = "add-form";
				addForm.action = "content-add.php";
				addForm.method = "POST";
				var addButton = document.createElement("input");
				addButton.setAttribute("type","button");
				document.getElementById('menu-cell').appendChild(addButton);
				addButton.value = "Ajouter";
				addButton.onclick = function() {
					UI.addButton();
				};
				addButton.style.marginTop = "20px";
				var hiddenInput = document.createElement("input");
				hiddenInput.setAttribute("type","hidden");
				addForm.appendChild(hiddenInput);
				hiddenInput.id = "section-add-input";
				hiddenInput.name = "section";
				hiddenInput.value = section;
			}
		},
		homeSlide: function() {
			document.getElementById('image-slide').src = UI.HomeSlide[UI.slideIndex].src;
			UI.slideIndex++;
			if(UI.slideIndex == UI.HomeSlide.length) {
				UI.slideIndex = 0;
			}
		},
		swapLayout: function() {
			UI.homeflag = false;
			clearInterval(UI.slideInterval);
			document.getElementById('head-cell').className = section+"-head headcell-display-content";
			document.getElementById('project-cell').className = "projectcell-display-content";
			imageview = document.getElementById('image-view');
			imageview.className = "imageview-display-content";
			for(var i=0;i<imageview.childNodes.length;i++) {
				if(imageview.childNodes[i].id=="image-slide") {
					imageview.removeChild(imageview.childNodes[i]);
				}
			}
			var DataNode = document.createElement("img");
			imageview.appendChild(DataNode);
			DataNode.id = "image-container";
		},
		navRoll: function(imgObj,index,flag) {
			if(flag) {
				imgObj.src = Images.Nav[index][1].src;
			} else {
				imgObj.src = Images.Nav[index][0].src;
			}
				
		},
		menuOver: function(trObj) {
			if(Focus.selTr!="") {
				UI.menuOut(Focus.selTr);
			}
			Focus.selTr = trObj;
			Focus.overContent = trObj.Content; 
			trObj.cells[0].style.color = "#999999";
			trObj.cells[2].style.color = "#999999";
		},
		menuOut: function(trObj) {
			trObj.cells[0].style.color = "white";
			trObj.cells[2].style.color = "white";
		},
		highlight: function(AObj) {
			AObj.blur();
			var Alist = document.getElementsByTagName("a");
			for(var i=0;i<Alist.length;i++) {
				if(Alist[i].className==UI.menuClassName||Alist[i].className=="menuselected") {
					if(Alist[i]==AObj) {
						Alist[i].className ="menuselected";
					} else {
						Alist[i].className =UI.menuClassName;
					}
				} else if(Alist[i].className=="over-color") {
					Alist[i].className = Alist[i].parentNode.parentNode.className;
				}
			}
		},
		viewImage: function(imageIndex) {
			document.getElementById('image-container').src = UI.imageArray[imageIndex][2].src;
			document.getElementById('image-container').onerror = function() {
				this.src = "images/nobigimage.jpg";
			}
		},
		viewContent: function(ContentObj,LineObj) {
			UI.selectedContent = ContentObj;
			if(UI.homeflag) {
				UI.swapLayout();
			}
			UI.imageArray = [
				[ ContentObj.Image1big, ContentObj.Image1small, new Image() ],
				[ ContentObj.Image2big, ContentObj.Image2small, new Image() ],
				[ ContentObj.Image3big, ContentObj.Image3small, new Image() ],
				[ ContentObj.Image4big, ContentObj.Image4small, new Image() ],
				[ ContentObj.Image5big, ContentObj.Image5small, new Image() ],
				[ ContentObj.Image6big, ContentObj.Image6small, new Image() ],
				[ ContentObj.Image7big, ContentObj.Image7small, new Image() ],
				[ ContentObj.Image8big, ContentObj.Image8small, new Image() ],
				[ ContentObj.Image9big, ContentObj.Image9small, new Image() ],
				[ ContentObj.Image10big, ContentObj.Image10small, new Image() ],
				[ ContentObj.Image11big, ContentObj.Image11small, new Image() ],
				[ ContentObj.Image12big, ContentObj.Image12small, new Image() ],
				[ ContentObj.Image13big, ContentObj.Image13small, new Image() ],
				[ ContentObj.Image14big, ContentObj.Image14small, new Image() ],
				[ ContentObj.Image15big, ContentObj.Image15small, new Image() ],
				[ ContentObj.Image16big, ContentObj.Image16small, new Image() ]
			];
			for(var i=0;i<UI.imageArray.length;i++) {
				if(UI.imageArray[i][0]) {
					UI.imageArray[i][2].src = UI.imageArray[i][0];
				}
			}
			var projectTable = document.getElementById("project-table");
			
			if(backoffice) {
				document.getElementById("project-cell").onmouseover = function() {
					document.getElementById("project-cell").style.backgroundColor = "#EEEEEE";
					document.getElementById('modif-cell2').style.height = "24px";
				}
				document.getElementById("project-cell").onmouseout = function() {
					document.getElementById("project-cell").style.backgroundColor = "transparent";
					document.getElementById('modif-cell2').style.height = "0px";
				}
			}
			//
			while(projectTable.firstChild) {
				projectTable.removeChild(projectTable.firstChild);
			}
			var TBody = document.createElement("tbody");
			projectTable.appendChild(TBody);
			var TRow;
			var TData;
			var firstImageFlag = true;
			var firstImage = -1;
			//
			if(section!="tendances") {
				TRow = document.createElement("tr");
				TBody.appendChild(TRow);
				TRow.id = "image-row0";
				var LinkNode;
				var DataNode;
				var cellcount = 0;
				var rowcount = 0;
				for(i=0;i<UI.imageArray.length;i++) {
					cellcount++;
					if(cellcount==5) {
						cellcount = 0;
						i--;
						rowcount++;
						TRow = document.createElement("tr");
						TRow.id = "image-row"+rowcount;
						//TBody.insertBefore(TRow,document.getElementById("image-row"+(rowcount-1)));
						TBody.appendChild(TRow);
						continue;
					}
					if(UI.imageArray[i][0]) {
						if(firstImageFlag) {
							firstImage = i;
							firstImageFlag = false;
						}
						TData = document.createElement("td");
						TRow.appendChild(TData);
						TData.id = "image-" + i;
						TData.className = "image-box";
						LinkNode = document.createElement("a");
						TData.appendChild(LinkNode);
						LinkNode.className = "boxlink";
						LinkNode.href = "javascript:void(0);";
						LinkNode.onclick = LinkNode.blur;
						DataNode = document.createElement("img");
						LinkNode.appendChild(DataNode);
						if(UI.imageArray[i][1]) {
							DataNode.src = UI.imageArray[i][1];
						} else {
							DataNode.src = UI.noimage.src;
						}
						DataNode.onerror = function() {
							this.src = "images/noimage.jpg";
						}
						DataNode.onclick = Utils.getHandler("viewImage",[i]);
					} else {
						cellcount--;
					}
				}
				if(cellcount!=0) {
					for(i=cellcount;i<4;i++) {
						TData = document.createElement("td");
						TRow.appendChild(TData);
						TData.id = "image-" + i;
						TData.className = "image-box";
						DataNode = document.createElement("div");
						TData.appendChild(DataNode);
						DataNode.className = "empty-box";
					}														
				}	
			} else {
				firstImage = 0;
			}
			//
			TRow = document.createElement("tr");
			TBody.appendChild(TRow);
			TData = document.createElement("td");
			TRow.appendChild(TData);
			TData.colSpan = 5;
			TData.innerHTML = "&nbsp;";
			TData.className = "project-empty-space";
			
			TRow = document.createElement("tr");
			TBody.appendChild(TRow);
			TData = document.createElement("td");
			TRow.appendChild(TData);
			TData.id = "project-type";
			TData.colSpan = 5;
			TData.innerHTML = ContentObj.MenuType;
			
			TRow = document.createElement("tr");
			TBody.appendChild(TRow);
			TData = document.createElement("td");
			TRow.appendChild(TData);
			TData.id = "project-title";
			TData.colSpan = 5;
			TData.innerHTML = ContentObj.Title;
			
			TRow = document.createElement("tr");
			TBody.appendChild(TRow);
			TData = document.createElement("td");
			TRow.appendChild(TData);
			TData.colSpan = 5;
			TData.innerHTML = "&nbsp;";
			TData.className = "project-empty-space";
			
			TRow = document.createElement("tr");
			TBody.appendChild(TRow);
			TData = document.createElement("td");
			TRow.appendChild(TData);
			TData.id = "project-content";
			TData.colSpan = 5;
			TData.innerHTML = ContentObj.Description;
			
			if(firstImage!=-1) {
				UI.viewImage(firstImage);
			}
			projectTable.style.width = "161px";
		},
		//BACKOFFICE SPECIFIC FUNCTIONS
		modifyButton2: function() {
			document.getElementById('projectid-input-2').value = UI.selectedContent.Id;
			document.getElementById('section-input-2').value = section;
			document.getElementById('modif-form2').submit();
		},	
		modifyButton3: function() {
			document.getElementById('section-input-3').value = section;
			document.getElementById('modif-form3').submit();
		},
		addButton: function() {
			document.getElementById('section-add-input').value = section;
			document.getElementById('add-form').submit();
		},
		init: function() {
			UI.homeSlide();
			UI.slideInterval = setInterval("UI.homeSlide()",UI.slideDelay);
			UI.writeMenu();
			UI.logoImages[0].src = "images/headlogo.gif";
			UI.logoImages[1].src = "images/headlogo_over.gif";
			UI.noimage.src = "images/noimage.jpg";
			var headLogo = document.getElementById('logo-image');
			headLogo.onmouseover = function() {
				document.getElementById('logo-image').src = UI.logoImages[1].src;
			};
			headLogo.onmouseout = function() {
				document.getElementById('logo-image').src = UI.logoImages[0].src;
			};
			//
			if(backoffice) {
				var modifCell2 = document.getElementById('modif-cell2');
				modifCell2.style.height = "0px";
				modifCell2.style.top = (document.getElementById('center-body').offsetTop + document.getElementById('center-body').offsetHeight - 50) + "px";
				modifCell2.style.left = (document.getElementById('container').offsetLeft + 175) + "px";
				modifCell2.onmouseover = function() {
					document.getElementById("project-cell").style.backgroundColor = "#EEEEEE";
					document.getElementById('modif-cell2').style.height = "24px";
				}
				modifCell2.onmouseout = function() {
					document.getElementById("project-cell").style.backgroundColor = "transparent";
					document.getElementById('modif-cell2').style.height = "0px";
				}
				
				var modifCell3 = document.getElementById('modif-cell3');
				modifCell3.style.height = "0px";
				modifCell3.style.top = (document.getElementById('center-body').offsetTop + 1) + "px";
				modifCell3.style.left = (document.getElementById('main-layout').offsetLeft + document.getElementById('main-layout').offsetWidth - modifCell3.offsetWidth - 3) + "px";
				modifCell3.onmouseout = function() {
					document.getElementById('modif-cell3').style.height = "0px";
				}
				if(document.getElementById('image-slide')) {
					document.getElementById('image-slide').onmouseover = function() {
						document.getElementById('modif-cell3').style.height = "391px";
					}
				}
			}
			//
		}
		//INITIALIZATION
		//-->
	};
	
	Home = {
		slideIndex: 0,
		logoImages: [ new Image(), new Image() ],
		homeRollImages: [
			[ new Image(), new Image() ],
			[ new Image(), new Image() ],
			[ new Image(), new Image() ],
			[ new Image(), new Image() ],
			[ new Image(), new Image() ]
		],
		homeSlide: function() {
			document.getElementById('index-slide').style.backgroundImage = "url("+Images.HomeSlide[Home.slideIndex].src+")";
			Home.slideIndex++;
			if(Home.slideIndex == Images.HomeSlide.length) {
				Home.slideIndex = 0;
			}
		},
		homeRoll: function(divObj,index,flag) {
			if(flag) {
				divObj.style.backgroundImage = "url("+Home.homeRollImages[index][1].src+")";
			} else {
				divObj.style.backgroundImage = "url("+Home.homeRollImages[index][0].src+")";
			}
		},
		modifyButton: function() {
			document.getElementById('section-input').value = section;
			document.getElementById('modif-form').submit();
		},
		init: function() {
			Home.homeRollImages[0][0].src = "images/button_identite.png";
			Home.homeRollImages[0][1].src = "images/button_identite_over.png";
			Home.homeRollImages[1][0].src = "images/button_design.png";
			Home.homeRollImages[1][1].src = "images/button_design_over.png";
			Home.homeRollImages[2][0].src = "images/button_architecture.png";
			Home.homeRollImages[2][1].src = "images/button_architecture_over.png";
			Home.homeRollImages[3][0].src = "images/button_tendances.png";
			Home.homeRollImages[3][1].src = "images/button_tendances_over.png";
			Home.homeRollImages[4][0].src = "images/button_art.png";
			Home.homeRollImages[4][1].src = "images/button_art_over.png";
			Home.homeSlide();
			setInterval("Home.homeSlide()",3000);
			Home.logoImages[0].src = "images/headlogo.gif";
			Home.logoImages[1].src = "images/headlogo_over.gif";
			var headLogo = document.getElementById('logo-image');
			headLogo.onmouseover = function() {
				document.getElementById('logo-image').src = Home.logoImages[1].src;
			};
			headLogo.onmouseout = function() {
				document.getElementById('logo-image').src = Home.logoImages[0].src;
			};
			if(backoffice) {
				var modifCell = document.getElementById('home-modif');
				modifCell.style.height = "0px";
				modifCell.style.top = (document.getElementById('center-body').offsetTop + 1) + "px";
				modifCell.style.left = (document.getElementById('container').offsetLeft + document.getElementById('center-body').offsetLeft) + "px";
				modifCell.onmouseout = function() {
					document.getElementById('home-modif').style.height = "0px";
				}
				document.getElementById('index-slide').onmouseover = function() {
					document.getElementById('home-modif').style.height = "411px";
				}
			}
		}
	};
