/*
function $ (obj) {
	if (document.getElementById(obj)) return document.getElementById(obj);
	else return null;
}
*/
var Popups = new Array();

var Page = {
	hasLeftCol: false,
	hasError: false,
	errorMessages: null,
	nb_produit: 0,
	nom: null,
	prenom: null,
	loggedIn: false,
	username: null,
	password: null,
	errMsg: null,
	isDocument: false,
	settings: null,
	Countries: null,
	nb_Tasks: 0,
	
	init: function() {
		// Import settings
		this.fade = this.settings.fade;
	},
	
	getPanier: function() {
		if(!https_statut) makeRequest(pagesURL+'utils/getPanier.cfm', 'Page.setPanier');
	},
	
	getClient: function() {
		if(!https_statut) makeRequest(pagesURL+'utils/getClient.cfm', 'Page.setClient');
	},
	
	getPaysActifs: function() {
		this.Countries = new Array;
		if(!https_statut) makeRequest(pagesURL+'utils/getPaysActifs.cfm', 'Page.setPaysActifs');
	},
	
	login: function(form) {
		var currentFrm = document.getElementById(form);
		this.username = null;
		this.password = null;
		
		if (currentFrm) {
			this.username = document.forms[form].elements['username'].value;
			this.password = document.forms[form].elements['password'].value;
			
			makeRequest(pagesURL+'utils/getLogin.cfm?username='+this.username+'&password='+this.password, 'Page.checkLogin');
		}
	},
	
	setPanier: function(httpRequest) {
		try {
			if (httpRequest.readyState == 4 && httpRequest.status == 200) {
				var xmldoc = httpRequest.responseXML;
				var RootNode = xmldoc.getElementsByTagName('panier').item(0);
				var nb_produits = RootNode.attributes[0].nodeValue;
				
				this.nb_produit = nb_produits;
			}
		}
		catch (e) {
			this.nb_produit = 0;
		}
		
		if (this.hasLeftCol) {
			if (this.nb_produit > 1)
				document.getElementById('basketMessage').innerHTML = '<span>' + this.nb_produit + '</span> ' + label_panier_articles;
			else
				document.getElementById('basketMessage').innerHTML = '<span>' + this.nb_produit + '</span> ' + label_panier_article;
		}
	},
	
	setClient: function(httpRequest) {
		try {
			if (httpRequest.readyState == 4 && httpRequest.status == 200) {
				var xmldoc = httpRequest.responseXML;
				var RootNode = xmldoc.getElementsByTagName('client').item(0);
				var nom = RootNode.attributes[1].nodeValue;
				var prenom = RootNode.attributes[2].nodeValue;
				if (nom != '') {
					this.nom = nom;
					this.prenom = prenom;
					this.loggedIn = true;
				}
			}
		}
		catch (e) {
			this.nom = null;
			this.prenom = null;
			this.loggedIn = false;
		}
		
		if (this.hasLeftCol) {
			if (this.nom != null) this.buildMenu(document.getElementById('customerMessage'));
			else document.getElementById('customerMessage').innerHTML = label_mon_compte;
		}
	},
	
	setPaysActifs: function(httpRequest) {
		try {
			if (httpRequest.readyState == 4 && httpRequest.status == 200) {
				var xmldoc = httpRequest.responseXML;
				var RootNode = xmldoc.getElementsByTagName('countries').item(0);
				
				var p_list = RootNode.getElementsByTagName('country');
				for (i=0; i<p_list.length; i++) {
					var p_id = p_list[i].attributes[0].nodeValue;
					var p_name = p_list[i].firstChild.data;
					this.Countries[i] = {id: p_id, name: p_name};
				}
			}
		}
		catch (e) { }
	},
	
	displayFooterLink: function() { // If user logged in, display a link to the account, else display a quick login form in the footer
		var lienCompte = document.createElement('li');
		lienCompte.style.overflow = 'visible';
		lienCompte.innerHTML = '<div style="position:relative;" id="frmFooterLoginContainer" class="popupContainer bottom">';
		
		if (this.loggedIn) {
			lienCompte.innerHTML += '<h3 title="'+label_mon_compte+'"><a href="'+pagesURL+'compte.cfm" title="'+label_mon_compte+'">'+label_mon_compte+'</a></h3></div>';
			document.getElementById('navFooter').appendChild(lienCompte);
		}
		else {
			lienCompte.innerHTML += '<h3 title="'+label_connectez_vous+'"><a href="'+pagesURL+'login.cfm" title="'+label_connectez_vous+'" >'+label_connectez_vous+'</a></h3></div>';
			document.getElementById('navFooter').appendChild(lienCompte);
		}
	},
	showLoginPopup: function() {
		var popupText = '<p class="text">'+label_txt_saisie_ident+'</p><form name="frmFooterMiniLogin" id="frmFooterMiniLogin" action="'+pageURL+'login.cfm" method="post" class="quickform"><input type="hidden" name="validation" value="1"/><input type="hidden" name="typelog" value="old"/>';
		popupText += '<label class="label-1" for="username">'+label_email+'</label><input type="text" class="text" name="username" value="" onfocus="this.style.cursor=\'text\';"/><br/>';
		popupText += '<label class="label-1" for="password">'+label_password+'</label><input type="password" class="text" name="password" value="" onfocus="this.style.className=\'text on\';" onblur="this.style.className=\'text off\';"/>';
		popupText += '<input type="image" src="'+btnURL+'/btn_login.png" class="login" onclick="Page.login(\'frmFooterMiniLogin\'); return false;"/>';
		popupText += '</form>';
		var pwdForgotten = new Popup('frmFooterLogin', 'frmFooterLoginContainer', {title:label_connectez_vous, text:popupText}, 1);
		//pwdForgotten.setPosition({bottom:20, right:30});
		
		Page.fadeIt('frmFooterLogin');
	},
	
	sendPassword: function(email) {
		try {
			if (email.trim().value != '')
				makeRequest(pagesURL+'utils/sendPassword.cfm?email='+email, 'Page.getPasswordSentStatus');
		}
		catch (e) { window.location = ''; }
	},
	
	getPasswordSentStatus: function(httpRequest) {
		try {
			if (httpRequest.readyState == 4 && httpRequest.status == 200) {
				var xmldoc = httpRequest.responseXML;
				var RootNode = xmldoc.getElementsByTagName('account').item(0);
				var status = RootNode.attributes[0].nodeValue;
				
				if (status == 0) alert(label_oubli_pwd_err);
				else if (status == 1) alert(label_oubli_pwd_ok);
				else if (status == 2) alert(label_error_tech);
			}
		}
		catch (e) { return true; }
	},
	
	checkLogin: function(httpRequest) {
		try {
			if (httpRequest.readyState == 4 && httpRequest.status == 200) {
				var xmldoc = httpRequest.responseXML;
				var RootNode = xmldoc.getElementsByTagName('login').item(0);
				var status = RootNode.attributes[0].nodeValue;
				
				if (status == 0) {
					this.loggedIn = false;
					alert(label_error_login);
				}
				else {
					this.loggedIn = true;
					
					var autoLoginForm = document.createElement('form');
					autoLoginForm.id = 'frmAutoLogin';
					autoLoginForm.action = pageURL+'login.cfm';
					autoLoginForm.method = 'post';
					autoLoginForm.style.display = 'none';
					autoLoginForm.innerHTML = '<input type="hidden" name="the_target" value="'+pagesURL+'compte.cfm"/>';
					autoLoginForm.innerHTML += '<input type="hidden" name="validation" value="1"/>';
					autoLoginForm.innerHTML += '<input type="hidden" name="typelog" value="old"/>';
					autoLoginForm.innerHTML += '<input type="hidden" name="username" value=""/>';
					autoLoginForm.innerHTML += '<input type="hidden" name="password" value=""/>';
					document.getElementById('site').appendChild(autoLoginForm);
					
					document.forms['frmAutoLogin'].elements['username'].value = this.username;
					document.forms['frmAutoLogin'].elements['password'].value = this.password;
					document.forms['frmAutoLogin'].submit();
				}
			}
		}
		catch (e) {
			this.loggedIn = false;
			window.location = pagesURL + 'login.cfm';
			return true;
		}
	},
	addToCart: function(id, quantite, has_option, code_ean, produit_id) {
		if (id == null) return false;
		
		var qte = 1;
		if (quantite != null && quantite.toInt() > 0 && quantite.toInt() < 100) qte = quantite;
		if (has_option == 1 && code_ean != null && produit_id != null) var ajString = 'option_id='+id+'&code_ean='+code_ean+'&produit_id='+produit_id;
		else var ajString = 'produit_id='+id;
		
		//if (has_option) var popupContainer = 'product_'+produit_id+'_'+id;
		//else var popupContainer = 'product_'+id;
		var popupContainer = 'navLeft';
		
		var add = makeRequest(pagesURL+'utils/addToCart.cfm?ajax=true&frmaction=add&'+ajString+'&quantite='+qte, 'Page.getPanier');
		
		if(document.getElementById("productAdded") && document.getElementById("productAdded").style.display == 'block'){
			document.getElementById("productAdded").style.display = 'none';
		}
		//var popupConfirm = new Popup('productAdded', popupContainer, {title:label_title_add2cart, text:label_txt_added2cart});
		//popupConfirm.setPosition({top:0, left:150});
		//popupConfirm.show();
		alert(label_jez_ajout_panier);
		Page.nb_blink = 0;
		Page.timer = setInterval('Page.blinkCart()', 75);
		Page.nb_blink = 0;
		return false;
	},
	
	// Blink cart abstract area after adding a product to the cart
	blinkCart: function() {
		var area = document.getElementById('menu_basket');
		
		switch (area.className) {
			case "arrow horiz nodeploy blink":
				area.className = 'arrow horiz nodeploy normal';
				break;
			case "arrow horiz nodeploy normal":
				area.className = 'arrow horiz nodeploy blink';
				break;
			default:
				area.className = 'arrow horiz nodeploy blink';
				break;
		}
		Page.nb_blink++;
		if (Page.nb_blink == Page.settings.nbCartBlinks) clearInterval(Page.timer);
	},
	
	getElementsByClassName: function(node, className, nodeName) {
	    var a = [];
	    var re = new RegExp('(^| )' + className + '( |$)');
	    var els = [];
	    if(nodeName) els = node.getElementsByTagName(nodeName);
	    else els = node.getElementsByTagName("*");
	    for(var i=0, j=els.length; i<j; i++) {
	        if(re.test(els[i].className)) a.push(els[i]);
		}
	    return a;
	},
	
	getStyle: function(element, cssRule) {
		var value = false;
		if(document.defaultView && document.defaultView.getComputedStyle) {
			value = document.defaultView.getComputedStyle(element, '').getPropertyValue(cssRule);
		}
		else if(element.currentStyle) {
			cssRule = cssRule.replace(/-([a-z])/g, function(match) {
				return match.charAt(1).toUpperCase();
			});
			value = element.currentStyle[cssRule];
		}
		return value;
	},
	
	addEvent: function(obj, type, fn) {
		if(obj.addEventListener) {
			obj.addEventListener(type, fn, false);
		}
		else if(obj.attachEvent) {
			obj["e" + type + fn] = fn;
			obj[type+fn] = function() {
				obj["e" + type + fn](window.event);
			}
			obj.attachEvent("on" + type, obj[type + fn]);
		}
	},
	
	includeCSS: function(filename) {
		if (filename != null) {
			var stylesheet = document.createElement('link');
			stylesheet.setAttribute('rel', 'stylesheet');
			stylesheet.setAttribute('type', 'text/css');
			stylesheet.setAttribute('href', filename);
			document.getElementsByTagName('head')[0].appendChild(stylesheet);
		}
	},
	
	includeJS: function(filename) {
		if (filename != null) {
			var javascript = document.createElement('script');
			javascript.setAttribute('type', 'text/javascript');
			document.getElementsByTagName("head")[0].appendChild(javascript);
			javascript.src = filename;
		}
	},
	
	buildMenu: function(container) {
		container.innerHTML = this.prenom + ' ' + this.nom;
	},
	
	fadeIt: function(obj) {
		var obj = document.getElementById(obj);
		if (obj) {
			var current_status = obj.style.display;
			
			/*for(var i=0; i<Popups.length; i++){
				if(document.getElementById(Popups[i].id).style.display == 'block')
					this.fadeIt(document.getElementById(Popups[i].id));
			}*/
			
			switch (current_status) {
				case "none":
					if (Browser.ie6) { 
						obj.style.display = 'block'; 
						obj.style.visibility = 'visible'; return; 
					}
					var opacity = 0;
					
					if (Browser.ie) obj.style.filter = 'alpha(opacity:'+opacity+')';
					else obj.style.opacity = opacity;
					
					obj.style.display = 'block';
					var interval = 5;
					
					var timer = setInterval(function() {
							var tmpOpacity = opacity;
							if (!Browser.ie) tmpOpacity = opacity / 100;
							if (tmpOpacity == 100) clearInterval(timer);
							else if (opacity == 25) { interval = 4; }
							else if (opacity == 50) { interval = 2; }
							
							opacity = opacity + 2;
							if (Browser.ie) obj.style.filter = 'alpha(opacity:'+tmpOpacity+')';
							else obj.style.opacity = tmpOpacity;
						}, interval);
					break;
				case "block":
					if (Browser.ie6) { 
						obj.style.display = 'none'; break; 
					}
					var opacity = 100;
					
					if (Browser.ie) obj.style.filter = 'alpha(opacity:'+opacity+')';
					else obj.style.opacity = opacity;
					
					var interval = 5;
					
					var timer = setInterval(function() {
							var tmpOpacity = opacity;
							if (!Browser.ie) tmpOpacity = opacity / 100;
							if (tmpOpacity == 0) { obj.style.display = 'none'; clearInterval(timer); }
							else if (opacity == 50) { interval = 4; }
							else if (opacity == 25) { interval = 2; }
							
							opacity = opacity - 2;
							if (Browser.ie) obj.style.filter = 'alpha(opacity:'+tmpOpacity+')';
							else obj.style.opacity = tmpOpacity;
						}, interval);
					break;
				default:
					break;
			}
		}
	},
	
	hide: function(obj) {
		if (document.getElementById(obj)) obj.style.display = 'none';
	},
	
	/* Submit search forms */
	searchProducts: function(frm) {
		var frm = document.forms[frm];
		if (frm.elements['libelle'].value != '') return true;
		else return false;
	},
	
	/* Language and country selection */
	showLanguageSelection: function() {
		var objName = 'languageSelector';
		if(Browser.ie6) var objContainer = 'logo';
		else var objContainer = 'languagesContainer';
		var txtContent = '';
		
		if (Site.lang == 'FR') {
			txtContent += '<p style="color:#6B5931 !important; font-weight: bold;"><img src="'+pageURL+'ximg/flag_fr.gif" id="flag_fr" class="flag" style="width:21px; height:14px;" alt="Francais"/>Francais</p>';
			txtContent += '<p><a style="color:#6B5931 !important;" href="'+pagesURL+'?languesite=GB" title="English" class="link"><img src="'+pageURL+'ximg/flag_gb.gif" id="flag_gb" class="flag" style="width:21px; height:14px;" alt="English"/>English</a></p>';
		}
		else if (Site.lang == 'EN' || Site.lang == 'GB') {
			txtContent += '<p><a style="color:#6B5931 !important;" href="'+pagesURL+'?languesite=FR" title="Francais" class="link"><img src="'+pageURL+'ximg/flag_fr.gif" id="flag_fr" class="flag" style="width:21px; height:14px;" alt="Francais"/>Francais</a></p>';
			txtContent += '<p style="color:#6B5931 !important; font-weight: bold;"><img src="'+pageURL+'ximg/flag_gb.gif" id="flag_gb" class="flag" style="width:21px; height:14px;" alt="English"/>English</p>';
		}
		
		var objContent = {title: label_selectionnez_langue, text: txtContent};
		
		Page.showHideSelector(objName, objContainer, objContent);
	},
	showCountrySelection: function() {
		var objName = 'countrySelector';
		if(Browser.ie6) var objContainer = 'logo';
		else var objContainer = 'countriesContainer';
		var txtContent = '';
		txtContent += '<form name="frmCountrySelection" id="frmCountrySelection" action="'+pageURL+'" method="GET">';
		txtContent += '<label for="payssite">'+label_txt_selectionnez_pays+'</label>';
		txtContent += '<select name="payssite" id="payssite" class="list">';
		
		for (i=0; i<this.Countries.length; i++) {
			txtContent += '<option value="'+this.Countries[i].id+'"';
			if (Site.country == this.Countries[i].id) txtContent += ' selected="selected"';
			txtContent += '> '+this.Countries[i].name+' </option>';
		}
		txtContent += '<input type="image" class="submit" src="'+btnURL+'/btn_go.gif" style="vertical-align:middle;"/></select></form>';
		
		var objContent = {title: label_selectionnez_pays, text: txtContent};
		
		Page.showHideSelector(objName, objContainer, objContent);
	},
	
	showHideSelector: function(objName, objContainer, objContent) {
		if (!document.getElementById(objName)) {
			var selector = new Popup(objName,objContainer,objContent);
			selector.setClassName('headerSelector');
			selector.setPosition({bottom:0});
		}
		
		if (this.fade == 1) Page.fadeIt(objName);
		else {
			switch (document.getElementById(objName).style.display) {
				case "block":
					document.getElementById(objName).style.display = 'none';
					break;
				case "none":
					document.getElementById(objName).style.display = 'block';
					break;
				default:
					document.getElementById(objName).style.display = 'block';
					break;
			}
		}
	},
	
	destroy: function(obj, container) {
		var obj = document.getElementById(obj);
		var container = document.getElementById(container);
		
		if (obj && container) {
			if (Browser.ie6)
				obj.parentElement.removeChild(obj);
			else
				container.removeChild(obj);
		}
	},
	
	preloadImages: function(imgList) {
		var tmpImg = new Array;
		for (i=0; i<imgList.length; i++) {
			tmpImg[i] = new Image()
			tmpImg[i].src = imgList[i];
		}
	},
	
	addToPool: function(task, args) {
		var newID = this.Tasks.length;
		if (args != null || args != undefined) this.Tasks[newID] = new Task(task, args);
		else this.Tasks[newID] = new Task(task);
	},
	
	executeDelayed: function() {
		for (tID=0; tID<this.Tasks.length; tID++) {
			this.Tasks[tID].execute();
		}
	}
};

var Task = function() {
	this.create.apply(this, arguments);
};
Task.prototype = {
	name: null,
	args: null,
	
	create: function() {
		this.name = (arguments[0]) ? arguments[0] : null;
		this.args = (arguments[1]) ? arguments[1] : null;
		return true;
	},
	
	execute: function() {
		if (this.args != null)
			try { eval(this.name+'('+this.args+')'); }
			catch (e) { }
		else
			try { eval(this.name+'()'); }
			catch (e) { }
	}
};

var Menu = {
	items: null,
	currentSubmenu: null,
	anim: null,
	submenu: null,
	originalHeight: null,
	
	init: function() {
		// Import settings
		this.animTimer = this.settings.animTimer;
		this.animFade = this.settings.animFade;
		this.animGroup = this.settings.animGroup;
		this.animGroupName = this.settings.animGroupName;
		
		this.items = new Array;
		this.submenu = new Array;
		this.originalHeight = new Array;
		var menuItems = new Array;
		var menuRoot = document.getElementById('navLeft');
		
		menuItems = menuRoot.getElementsByTagName('li');
		
		for (i=0; i<menuItems.length; i++) {
			if (menuItems[i].className == 'arrow horiz')
				this.items.push(menuItems[i]);
		}
		
		for (i=0; i<this.items.length; i++) {
			this.items[i].getElementsByTagName('h3')[0].onclick = function() {
				var submenus = this.parentNode.getElementsByTagName('div');
				
				if (Menu.animGroup) Menu.clear(this.parentNode.id);
				
				switch (this.parentNode.className) {
					case "arrow horiz":
						this.parentNode.className = 'arrow verti';
						for (j=0; j<submenus.length; j++) {
							var the_id = submenus[j].id;
							SlideMenu.toggle(the_id);
							//animatedcollapse.toggle(the_id);
						}
						break;
					case "arrow verti":
						this.parentNode.className = 'arrow horiz';
						for (j=0; j<submenus.length; j++) {
							var the_id = submenus[j].id;
							SlideMenu.toggle(the_id);
						}
						break;
					default:
						break;
				}
				this.blur();
			};
		}
		
	},
	
	/* Reset all arrows */
	clear: function(except) {
		var menuItems = new Array;
		var menuRoot = document.getElementById('navLeft');
		menuItems = menuRoot.getElementsByTagName('li');
		
		for (i=0; i<menuItems.length; i++) {
			if (menuItems[i].className == 'arrow verti' && except != null && except != menuItems[i].id)
				menuItems[i].className = 'arrow horiz';
		}
	},
	
	getDimensions: function(obj) {
		if (!obj) return {width: 0, height: 0};
		else return {width: obj.clientWidth, height: obj.clientHeight};
	}
};

var Browser = {
	version: null,
	appname: null,
	ie: false,
	ie6: false,
	ff: false,
	safari: false,
	opera: false,
	dom: false,
	
	detect: function() {
		if (document.getElementById) this.dom = true;
		if (document.all) this.ie = true;
		if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) this.ff = true;
		if (navigator.userAgent.toLowerCase().indexOf('safari') > -1) this.safari = true;
		if (this.ie) this.ie6 = ((window.XMLHttpRequest) ? false : true);
		this.opera = ((window.opera) ? true : false);
		this.version = navigator.appVersion;
		this.appname = navigator.appName;
	}
};


// Error(message)
var Error = function() {
	this.init.apply(this, arguments);
};
Error.prototype = {
	msg: null,
	
	init: function() {
		var message = (arguments[0] == null) ? '' : arguments[0];
		var instanceName = (arguments[1] == null) ? 'errMsg' : arguments[1];
		
		var obj = document.getElementById('error');
		var strClose = '<a title="'+label_fermer+'" class="close" href="javascript:';
		strClose += 'Page.fadeIt(\'error\');"></a>';
		message = '<h5 class="heading-5">'+label_error_title+'</h5>'+strClose+'<p>'+message+'</p>';
		
		if (message) {
			this.msg = message;
			Page.errorMessages.push(instanceName);
			Page.hasError = true;
		}
	},
	
	display: function() {
		if (!document.getElementById('error')) {
			var msgNode = document.createElement('div');
			msgNode.id = 'error';
			msgNode.innerHTML = '';
			document.getElementsByTagName('body')[0].appendChild(msgNode);
		}
		
		document.getElementById('error').style.display = 'none';
		document.getElementById('error').innerHTML = this.msg;
		
		if (Browser.ie6 && Page.settings.fade) document.getElementById('error').style.display = 'block';
		else Page.fadeIt('error');
	}
};


// PreviewList(rootObj)
var PreviewList = function() {
	this.init.apply(this, arguments);
};
PreviewList.prototype = {
	rootObj: null,
	mainImgContainer: null,
	
	init: function() {
		this.rootObj = 'documentImages';
		this.mainImgContainer = 'selectedImageArea';
		
		// Creates containers
		var selectedImgContainer = document.createElement('div');
		selectedImgContainer.id = 'selectedImageArea';
		document.getElementById('documentImages').appendChild(selectedImgContainer);
		
		var previewContainer = document.createElement('div');
		previewContainer.id = 'previewContainer';
		document.getElementById('documentImages').appendChild(previewContainer);
		
		/*var linkShowHide = document.createElement('a');
		linkShowHide.id = 'linkShowHide';
		linkShowHide.href = 'javascript:void(0)';
		linkShowHide.innerHTML = '<img src="'+pageURL+'ximg/btn_close_photo.gif" alt="'+label_masquer_preview+'"/>'+label_masquer_preview;
		linkShowHide.onclick = function() {
			switch (document.getElementById('previewContainer').style.display) {
				case "block":
					Page.fadeIt('previewContainer');
					document.getElementById('linkShowHide').innerHTML = label_afficher_preview;
					break;
				case "none":
					Page.fadeIt('previewContainer');
					document.getElementById('linkShowHide').innerHTML = '<img src="'+pageURL+'ximg/btn_close_photo.gif" alt="'+label_masquer_preview+'"/>'+label_masquer_preview;
					break;
				default:
					document.getElementById('previewContainer').style.display = 'block';
					Page.fadeIt('previewContainer');
					document.getElementById('linkShowHide').innerHTML = label_afficher_preview;
					break;
			}
			document.getElementById('linkShowHide').blur();
			return false;
		};
		document.getElementById('documentImages').appendChild(linkShowHide);*/
	},
	
	addPreview: function(objDef) {
		var root = document.getElementById('previewContainer');
		
		var newImg = document.createElement('img');
		newImg.src = imgPath + objDef.preview;
		newImg.title = objDef.title;
		
		newImg.onclick = function() {
			var mainImg = {src:imgPath+objDef.src, title:objDef.title, className:'currentImage'};
			document.getElementById('selectedImageArea').innerHTML = '<img src="'+mainImg.src+'" alt="'+mainImg.title+'" title="'+mainImg.title+'" class="'+mainImg.className+'"/>';
		};
		root.appendChild(newImg);
		
		// Preload
		var preloadImg = new Image();
		preloadImg.src = imgPath+objDef.src;
		
		if (objDef.show == true) this.showImage(objDef.src, objDef.title);
	},
	
	showImage: function(imgSrc, imgTitle) {
		var container = document.getElementById(this.mainImgContainer);
		
		if (!container) return;
		var mainImg = {src: imgPath+imgSrc, title: imgTitle, className: 'currentImage'};
		container.innerHTML = '<img src="'+mainImg.src+'" alt="'+mainImg.title+'" title="'+mainImg.title+'" class="'+mainImg.className+'"/>';
	},
	
	start: function() {
		return true;
	}
};


var Popup = function() {
	Popups.push(this);
	this.init.apply(this, arguments);
};
Popup.prototype = {
	id: null,
	fade: false,
	content: {title: null, text: null},
	
	init: function() {
		var divId = (arguments[0] == null) ? 'divPopupContent' : arguments[0];
		var containerId = (arguments[1] == null) ? 'divPopupContainer' : arguments[1];
		var content = (arguments[2] == null) ? {title: null, text: null} : arguments[2];
		var fade = (arguments[3] == null) ? false : true;
		
		this.id = divId;
		this.container = containerId;
		if (fade != null) this.fade = true;
		this.content = content;
		
		var strClose = '<a href="#" title="'+label_fermer+'" class="close" onclick="';
		if (this.fade) strClose += 'Page.fadeIt(\''+this.id+'\');';
		else strClose += 'document.getElementById(\''+this.id+'\').style.display = \'none\'; Page.destroy(\''+this.id+'\', \''+this.container+'\');';
		strClose += ' return false;"></a>';
		
		//var strTitle = '<h5 class="heading-5">'+this.title+'</h5>';
		
		var pObj = document.createElement('div');
		pObj.className = 'popup';
		pObj.id = this.id;
		pObj.style.display = 'none';
		pObj.innerHTML = strClose+'<h5 class="heading-5">'+this.content.title+'</h5>'+this.content.text;
		
		if (document.getElementById(containerId)) {
			document.getElementById(containerId).appendChild(pObj);
		}
	},
	
	setPosition: function(pos) {
		var obj = document.getElementById(this.id);
		if (obj) {
			obj.style.position = 'absolute';
			if (pos.top != null) { obj.style.top = pos.top + 'px'; }
			if (pos.bottom != null) { obj.style.bottom = pos.bottom + 'px'; }
			if (pos.left != null) { obj.style.left = pos.left + 'px'; }
			if (pos.right != null) { obj.style.right = pos.right + 'px'; }
		}
	},
	
	setClassName: function(objClassName) {
		var obj = document.getElementById(this.id);
		var newClassName = ' ' + objClassName;
		if (objClassName != null) obj.className += newClassName;
	},
	
	show: function() {
		if (this.fade) Page.fadeIt(this.id);
		else document.getElementById(this.id).style.display = 'block';
	}
};

var SlideMenu = animatedcollapse;


window.onload = function() {
	Browser.detect();
	Page.init();
	
	if (Page.settings.fade == 1) Menu.settings.animFade = 1;
	if (Browser.ie6) { Page.settings.fade = 0; Menu.settings.animFade = 0; }
	if (Browser.opera) { document.getElementById('mainArea').style.overflow = 'hidden'; } // Fix mainArea scroll on opera Browsers
	
	if (Page.hasLeftCol) {
		Page.getPanier();
		Page.getClient();
		Menu.init();
	}
	else {
		Page.getClient();
	}
	if (Page.isDocument) {
		// Set font-weight to normal for each 'strong' items in a document
		var docuContainer = document.getElementById('mainContent');
		var listStrongItems = docuContainer.getElementsByTagName('strong');
		
		for (i=0; i<listStrongItems.length; i++) {
			if (listStrongItems[i].className != 'subtitle') listStrongItems[i].style.fontWeight = 'normal';
		}
	}
	if (Page.hasError) {
		// Display all error messages
		for (err=0; err<Page.errorMessages.length; err++) {
			var objErr = Page.errorMessages[err];
			eval(objErr).display();
		}
	}
	
	setTimeout('Page.displayFooterLink();', 1000);
	Page.getPaysActifs();
	
	// Images pre-load
	var preloadImgList = new Array;
	preloadImgList[0] = pageURL+'ximg/flag_fr.gif';
	preloadImgList[1] = pageURL+'ximg/flag_gb.gif';
	preloadImgList[2] = pageURL+'ximg/btn_close_popup.gif';
	preloadImgList[3] = pageURL+'ximg/arrow_cell_verti.png';
	
	Page.preloadImages(preloadImgList);
	Site.loaded = true;
	Site.settings = {};
	Site.settings.paramsPopupMap = 'width=550,height=550,menubar=no,status=no,toolbars=no,history=no';
	Site.settings.statusBarLabel = Site.title;
	
	Page.executeDelayed();
};
