/* Définition des comportements javascript du site */
// Variable temporaire
oldsrc = '';
currentphoto = 1;
var rules = {
		'.nav-photos a.prev': function (element) {
			element.onclick = function() {
				Element.toggle('zoom'+currentphoto);
				currentphoto--;
				if (currentphoto == 0) {
					currentphoto = document.getElementsByClassName('preview').length;
				}
				Element.toggle('zoom'+currentphoto);
				return false;
			}
		},
		'.nav-photos a.next': function (element) {
			element.onclick = function() {
				Element.toggle('zoom'+currentphoto);
				currentphoto++;
				if (currentphoto > document.getElementsByClassName('preview').length) {
					currentphoto = 1;
				}
				Element.toggle('zoom'+currentphoto);
				return false;
			}
		},
		'#fact_idem' : function (element) {
			element.onclick = function() {
				Element.toggle('facturation');
			}
		},
		'ul.produits li' : function(element) {
//			if(element.firstChild.className != 'select') {
				element.onclick = function() {
					Element.toggle(element.getElementsByTagName("ul")[0]);
					return false;
				}/*,
				element.onmouseover = function() {
					//alert(element.getElementsByTagName("ul")[0].innerHTML);
					Element.show(element.getElementsByTagName("ul")[0]);
				}
				element.onmouseout = function() {
					//alert(element.getElementsByTagName("ul")[0].innerHTML);
					Element.hide(element.getElementsByTagName("ul")[0]);
				}*/
//			}
		},
		'ul.produits li li' : function(element) {
			element.onmouseover = function() { },
			element.onmouseout = function() { },
			element.onclick = function() {
				// Valider le clic
				location.href = element.getElementsByTagName("a")[0].href;
			 }
		},
		'form.themes select' : function(element) {
			element.onchange = function() { this.form.submit(); }
		}
};

Behaviour.register(rules);

function get_id(str) {
	return str.substring(2);
}

function augmenter(strID) {
	$(strID).value++;
	reload('recalculer');
}

function reduire(strID) {
	if ($F(strID) > 1) {
		$(strID).value--;
		reload('recalculer');
	}
}

function reload(action) {
	var panier = $('articles');
	if (panier) {
	if (action != 'undefined') { action = '&action='+escape(action); }
	var params = Form.serialize(panier)+'&tpl=articles';
	params = params.replace(/&action=[^&]+/g, '')+action;
	new Ajax.Updater('articles', 'panier/', { method: 'get', parameters: params, onFailure: function() { location.href = 'panier/?'+Form.serialize(panier); } });
	
//	ajax_request('panier/', params, 'maj_panier');
//	Form.disable(panier);
	}
	return false;
}

function maj_panier(originalRequest) {
	var panier = $('articles');
	panier.innerHTML = originalRequest.responseText;
	Behaviour.apply();
	Form.enable(panier);
	if (window.scrollTo) window.scrollTo(0,185);
	if(!bHasRedirect) {
		//process originalRequest.responseText;
	} else {
		bHasRedirect = false;
		ajax_request(originalRequest.responseText, "");
	}
}
// Implémentation des appels ajax
function ajax_request(url, data, callback) {
	var myAjax = new Ajax.Request(
		url,
		{method: 'get', parameters: data, onComplete: eval(callback)}
		);
}

// Validation des formulaires
function validation() { //v4.0
	var i,p,q,nm,test,num,min,max,errors='',args=validation.arguments;
	for (i=0; i<(args.length-2); i+=3) {
		test=args[i+2];
		var obj=document.getElementById(args[i]);
		var error = '';
		if (obj) {
			// Avant de continuer, déterminer si l'un des parents du champ est affiché ou non			if (is_displayed(obj)) {				var error = '';
				nm=args[i+1];
				if (!nm) nm=obj.name;
				if ((val=obj.value)!="") {
					if (test.indexOf('isEmail')!=-1) {
						if (val.search(/^[\w\d\._-]+@[\w\d\._-]+$/) == -1) {
							error='- '+nm+' doit être une adresse email valide\n';
						}
					} else if (test.indexOf('isDate')!=-1) {
					} else if (test!='R') {
						num = parseFloat(val);
						if (isNaN(val)) error='- '+nm+' doit être un nombre.\n';
						if (test.indexOf('inRange') != -1) {
							p=test.indexOf(':');
							min=test.substring(8,p); max=test.substring(p+1);
							if (num<min || max<num) error='- '+nm+'  doit être un nombre entre '+min+' et '+max+'.\n';
						}
					}
				} else if (test.charAt(0) == 'R') { 
					if (obj.type == 'checkbox') {
						if (!obj.checked) error= '- '+nm+' est requis\n';
					} else {
						error= '- '+nm+' est requis\n';
					}
				}
				className = new String(obj.className);
				if (error != '') {
					errors += error;
					if (className.indexOf('missing') == -1) obj.className += ' missing';
				} else {
					obj.className = className.replace(/missing/, '');
				}
			}		}
	}
	return errors;
}

function alert_validation() {
	args = new Array();
	for (var i=0; i<alert_validation.arguments.length; i++) {
		args[i] = "'"+alert_validation.arguments[i].replace("'","\\'")+"'";
	}
	eval("errors = validation("+args.join(',')+")");
	if (errors != '') alert('Les erreurs suivantes sont apparues\n'+errors);
	return (errors == '');
}

// Renvoie faux si l'objet ou l'un de ses parents est masqué (display=='none')function is_displayed(obj) {	if (obj.style && obj.style.display == 'none') {		return false;	}	if (obj.parentNode) {		return is_displayed(obj.parentNode);	} else {		return true;	}}
