  if (typeof HTMLElement != 'undefined') {
	HTMLElement.prototype.click = function() {
		var evt = this.ownerDocument.createEvent('MouseEvents');
		evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
		this.dispatchEvent(evt);
	}
}

function loadingDiv(show) {
	//loading
	var loadStatus = $A($('main').getElementsByClassName('loadStatus')).first();
	
	
	if (show) {
		Element.removeClassName(loadStatus, 'done');
		Element.addClassName(loadStatus, 'working');
	} else {
		Element.removeClassName(loadStatus, 'working');
		Element.addClassName(loadStatus, 'done');
	}
}

function removeChildNodes(elt) {	
	if (elt!==null && elt.hasChildNodes()) {
	    while (elt.childNodes.length>= 1) {elt.removeChild(elt.firstChild );} 
	}
}

//galerie
function open_gallery(cid, img) {
	
	if(document.all) {
		larg = document.body.clientWidth;
		haut = document.body.scrollTop;
	}
	
	var haut = document.getElementById(cid).scrollTop;
	
	var dest = document.getElementById('open_gallery');
	
	dest.innerHTML = '<img src='+img+' />';
	dest.style.visibility = "visible";
	dest.style.top = Math.floor((haut-450)/2);
	dest.style.left = Math.round((larg-600)/2);
	
	//alert(haut + ' ' +dest.style.top);
		
}


//soumettre un formulaire
function submitSubscribeForm(event) {
	loadingDiv(true);
	var elt = Event.element(event);	
	Event.stop(event);
	
	//submit once		
	elt.src = elt.src.replace(/\.gif/, "_no.gif");
	elt.disable();
	
	//REQUESTER
	new Ajax.Request(DOMAIN+'subscribeForm.cs',
	{	method: 'post',
		postBody:Form.serialize('subscribeForm'),
		onComplete: function(requester) {
				//alert(requester.responseText);
				var data = $A(eval(requester.responseText));			
				updateForm(data);	
				Element.removeClassName(loadStatus, 'working');
				Element.addClassName(loadStatus, 'done');
			}
		}
	);
}


//retour de soumission
function updateForm(data) {
	
	var is_error=false;
	
	 Form.getInputs('subscribeForm').each(
	 	function(f) {
	 		if ($(f.name)!==null) {
	 			Element.removeClassName($(f.name).up('tr'), 'error');		
	 			removeChildNodes($(f.name+'_err'));		
	 		}
	 	}
	 );
	 
	//champs en erreur
	data.each(
		function(f) {		
				if (f!=undefined && $(f.name)!==null) {
					//erreur
					if (1===f.error) {		
						Element.addClassName($(f.name).up('tr'), 'error');			
						is_error=true;	
						//message d'erreur												
						if ($(f.name+'_err')!==null) {
							$(f.name+'_err').appendChild(document.createTextNode(f.message));
						}
					}
					//valeur
					if (f.value!==$(f.name).value) {
						$(f.name).value = f.value;
					}
				}
			}		
	);
	
	$('subscribeFormSubmit').src = $('subscribeFormSubmit').src.replace(/\_no\.gif/, ".gif");
	
	//réactive le formulaire
	if (!is_error) {
		$('subscribeFormSubmit').src = $('subscribeFormSubmit').src.replace(/creer\.gif/, "modifier.gif");
		//log
		new Ajax.Request(DOMAIN+'getLogout.cs',
			{	method: 'post',
				onComplete: function(requester) {updateLogout(eval(requester.responseText));}
			}
		);
			
		$('cgv').enable();	
	}
	
	$('subscribeFormSubmit').enable();
	
	
	loadingDiv(false);
}


function getCommande(event) {
	loadingDiv(true);
	new Ajax.Request(DOMAIN+'getCommande.cs',
	{	method: 'post',
		onComplete: function(requester) {
			//alert(requester.responseText);
			var data = eval(requester.responseText);
			if (data.length==0) {
				$('orderDiv').style.display='none';
			} else {				
				data.each(
					function(f) {	
						new Insertion.Bottom('commande', f.html)
					}
				);
			}				
			loadingDiv(false);
		}	
	}
	);
}

function init() {
	$('allOptionDiv').style.display='none';
	$('optionDiv').style.display='none';
	$('saveDiv').style.display='none';	
	getFiles();
}

function getFiles() {
	loadingDiv(true);
	saveOptionForm(undefined, true);	
		
	new Ajax.Request(	DOMAIN+'getFiles.cs', 
		{	method: 'post',	
			onComplete: function(requester) { 
				createOptionForm( eval(requester.responseText) );
			}
		}
	);
}

function createOptionForm(data) {		
	
	var optionForm = document.createElement('form');
	optionForm.setAttribute('id','optionForm');
	
	//vide le formulaire
	if ($('optionForm')!==null) {
		$('optionDiv').removeChild($('optionForm'));
	}
	$('optionDiv').appendChild(optionForm);
		
	data.each(
		function(f) {	
			new Insertion.Bottom('optionForm', f.html)
		}		
	);	
	
	if (data.length>0) {
		$('allOptionDiv').style.display='';
		$('optionDiv').style.display='';
		$('saveDiv').style.display='';	
		var loc=new String(window.location);
		window.location = loc.replace(/\#.*$/, "")+"#options";
		
	} else {
		$('allOptionDiv').style.display='none';
		$('saveDiv').style.display='none';
		$('optionDiv').style.display='none';
	}
	
	saveOptionForm(undefined, false);	
	loadingDiv(false);
	
}


function applyAll(event) {
	loadingDiv(true);
	var elt = Event.element(event);	
	
	if (elt.id=='_rem') {
		Event.stop(event);
		remFile(undefined);
		return;
	}
	
	var i=0;
	var id = elt.type==='radio' ? elt.name : elt.id;
	
	Form.getElements('optionForm').each(
		function(f) {
			if (f.type==elt.type) {
				switch (elt.type) {
					case 'radio' :
						if (f.value==elt.value && !f.disabled) {
							f.checked = 'checked';
						}
						break;
					case 'select-one' :
						$(f.id).selectedIndex = elt.selectedIndex;
						break;
					case 'text' :
						if (isNaN(new Number(elt.value))) {
							$(f.id).value = 0;
							$(elt.id).value = 0;
						} else {
							$(f.id).value = new Number(elt.value);
						}
						break;
				}
			}		
		}
	);
	loadingDiv(false);		
}

function remFile(event) {
	loadingDiv(true);
	if (undefined!==event) {
		saveOptionForm(undefined, true);
		var elt = Event.element(event);	
		Event.stop(event);		
		var tab=elt.id.split('_');
	} else {
		var tab=new Array();
		tab[0]='-1';
	}
	
	if (
		!(
			(elt!=undefined
			&&
			confirm("Vous aller supprimer l'image "+$(elt.id).up('fieldset').down('legend').firstChild.nodeValue+' !'))
			||
			(confirm("Vous aller supprimer toutes les images !"))
		)
	) {
		loadingDiv(false);
		return;
	}
	
	new Ajax.Request(	DOMAIN+'remFile.cs', 
		{	method: 'post',	
			postBody:'id='+tab[0],
			onComplete: function(requester) {
				createOptionForm( eval(requester.responseText) );
			}
		}
	);
		
}


function saveOptionForm(event, data) {
	loadingDiv(true);
	var redirect=0;
	
	if (undefined!==event) {Event.stop(event);redirect=1;}
	
	if (
		$('optionForm')===null
		||
		$('optionForm')===undefined
	) {return false;}
	
	//enregistrement de optionForm
	new Ajax.Request(	DOMAIN+'saveCmd.cs', 
	{ 	method: 'post',	
		postBody:'redirect='+redirect+'&'+(data ? Form.serialize('optionForm') : ''),
		onComplete: function(requester) {
			if (requester.responseText=='redirect') {
				document.location.href = VALIDATION_COMMANDE;
				return;
			}
			//alert(requester.responseText);
			eval('var obj='+requester.responseText+';');
			
			Form.getElements($('optionForm')).each(
				function(f) {
					if (undefined===obj[f.name]) {return;}					
					switch (f.type) {
						case 'radio' :
							Form.getInputs('optionForm', 'radio' ,f.name).each(
								function(r) {
									if (r.value==obj[f.name]) {
										r.checked = 'checked';
									}
								}
							);
							break;
						case 'select-one' :		
							for (var i=0; i<$(f.name).options.length;i++) {
								if ($(f.name).options[i].value==obj[f.name]) {		
									$(f.name).selectedIndex = i;
									if (i>0 && (i<=5 || i==8 || (i>=11&&i<=13))) {
										Form.getInputs('optionForm', 'radio' ,f.name.replace(/_.*/, "")+'_spct').each(
											function(r) {
												if (r.value!='brillant') {													
													r.disable();													
												}
											}
										);
									}
								}
							}
							break;
						case 'text' :		
							$(f.name).value = 	obj[f.name];
							break;
					}
				}
			);
			loadingDiv(false);
		}
	}
	);
	
}


function getPswd(event) {
	loadingDiv(true);
	Event.stop(event);	
	
	Element.removeClassName($('lg_eml').previous('div'), 'error');
	
	if ($('lg_eml').value=='') {
		Element.addClassName($('lg_eml').previous('div'), 'error');
		loadingDiv(false);
		return;
	}
	
	new Ajax.Request(	DOMAIN+'getPswd.cs', 
		{	method: 'post',	
			postBody:'lg_eml='+escape($('lg_eml').value),
			onComplete: function(requester) {
				removeChildNodes($('login_err'));
				if (requester.responseText=='ok') {					
					$('login_err').appendChild(document.createTextNode('un email avec votre mot de passe a été envoyé'));	
				} else {
					$('login_err').appendChild(document.createTextNode("il n'existe pas de compte pour cette adresse email"));	
				}		
				loadingDiv(false);
			}
		}
	);
}


function login(event, auto) {
	loadingDiv(true);
	Event.stop(event);	
	
	Element.removeClassName($('lg_eml').previous('div'), 'error');
	Element.removeClassName($('lg_pswd').previous('div'), 'error');
	
	if (auto) {
		var error=0;
		if ($('lg_eml').value=='') {
			Element.addClassName($('lg_eml').previous('div'), 'error'); error++;
		}
		if ($('lg_pswd').value=='') {
			Element.addClassName($('lg_pswd').previous('div'), 'error'); error++;
		}
		if (error>0) {
			loadingDiv(false);
			return;
		}
	}
	
	
	
	new Ajax.Request(	DOMAIN+'login.cs', 
		{	method: 'post',	
			postBody:'lg_eml='+escape($('lg_eml').value)+'&lg_pswd='+escape($('lg_pswd').value),
			onComplete: function(requester) {
				if (requester.responseText=='ok') {
					//REQUESTER
					new Ajax.Request(DOMAIN+'getProfil.cs',
						{	method: 'post',
							onComplete: function(requester) {updateForm(eval(requester.responseText));}
						}
					);
					new Ajax.Request(DOMAIN+'getLogout.cs',
						{	method: 'post',
							onComplete: function(requester) {updateLogout(eval(requester.responseText));}
						}
					);
					$('cgv').enable();
				}//--ok			
				else if ($('lg_eml').value!='') {
					removeChildNodes($('login_err'));
					$('login_err').appendChild(document.createTextNode('identifiant incorrect'));	
				}
				loadingDiv(false);
			}
		}
	);
	
}

function logout(event) {
	loadingDiv(true);
	Event.stop(event);	
	new Ajax.Request(	DOMAIN+'logout.cs', 
		{	method: 'post',
			onComplete: function(requester) {
				$('loginDiv').style.display = '';
				$('logoutDiv').style.display = 'none';
				
				Form.getElements('subscribeForm').each(
				 	function(f) {
				 		if ($(f.name)!==null) {
				 			$(f.name).value="";
				 		}
				 	}
				 );
				 Form.getInputs('loginForm').each(
				 	function(f) {
				 		if ($(f.name)!==null) {
				 			$(f.name).value="";
				 		}
				 	}
				 );
				 
	
				$('cgv').checked=false;
				enableOrder();
				
				loadingDiv(false);
				$('subscribeFormSubmit').src = $('subscribeFormSubmit').src.replace(/modifier\.gif/, "creer.gif");
			}
		}
	);	
}

function updateLogout(data) {
	if ($('logoutDivContent')!==null) {
		$('logoutDiv').removeChild($('logoutDivContent'));
	}
	
	data.each(
		function (d) {
			new Insertion.Bottom('logoutDiv', d.html);	
		}
	);
	$('logoutDiv').style.display = '';
	$('loginDiv').style.display = 'none';
}


function updateSelect(event) {
	var elt = Event.element(event);
	Event.stop(event);
	
	if (elt.id=="_frmt") {
		applyAll(event);
		if ($(elt.id).selectedIndex>0 && ($(elt.id).selectedIndex<=5 || $(elt.id).selectedIndex==8 || ($(elt.id).selectedIndex>=11&&$(elt.id).selectedIndex<=13))) {
			$('_spct_brillant').click();
			Form.getInputs('optionForm', 'radio').each(
				function(r) {
					if (r.value=='satine') {r.disable();}
				}
			);
			$('_spct_satine').disable();
		} else {
			$('_spct_satine').enable();
			Form.getInputs('optionForm', 'radio').each(
				function(r) {r.enable();}
			);
		}
	} else {
		var n=elt.id.replace(/_.*/, "");
		if ($(elt.id).selectedIndex>0 && ($(elt.id).selectedIndex<=5 || $(elt.id).selectedIndex==8 || ($(elt.id).selectedIndex>=11&&$(elt.id).selectedIndex<=13))) {
			Form.getInputs('optionForm', 'radio' ,n+'_spct').each(
				function(r) {
					if (r.value=='brillant') {
						r.checked = 'checked';
					} else {						
						r.disable();
					}
				}
			);
		} else {
			Form.getInputs('optionForm', 'radio' ,n+'_spct').each(
				function(r) {r.enable();}
			);
		}
	}
	
}


function enableOrder() {
	
	if ($('cgv').checked) {
		if ($('order').src.match(/\_no\.gif/)) {
			$('order').src = $('order').src.replace(/\_no\.gif/, ".gif");
		}
		$('order').enable();
	} else {
		if (!$('order').src.match(/\_no\.gif/)) {
			$('order').src = $('order').src.replace(/\.gif/, "_no.gif");
		}
		$('order').disable();
	}
}


function sendOrder(event) {
	var elt = Event.element(event);
	Event.stop(event);
	if (!$('order').src.match(/\_no\.gif/)) {
			$('order').src = $('order').src.replace(/\.gif/, "_no.gif");
		}
	$('order').disable();
	
	new Ajax.Request(	DOMAIN+'sendOrder.cs', 
		{	method: 'post',	
			onComplete: function(requester) {
				document.location.href = CONFIRMATION_COMMANDE;
				return;
			}
		}
	);
}
