function imgswitch(idimage)
{
	var temp;	
	temp=$('image1').src;
	$('image1').src=$(idimage).src;
	$(idimage).src=temp;
}

function imgbig(idimage)
{
	$('image_1').src=$(idimage).src;
}


function scrolling(scroller)
{
	$(scroller);
}
function show(montrer)
{
	$(montrer).setStyle('display', 'block');
}

function hide(cacher)
{
	$(cacher).setStyle('display', 'none');
}


function showhide(montrer,cacher)
{
	
	$(montrer).setStyle('display', 'block');
	$(cacher).setStyle('display', 'none');
}


/* POST AJAX */
function makeRequest(url,formulaire,destination,chargement) {
	$(formulaire).setStyle('display', 'none');
	$(chargement).setStyle('display', 'block');

	var httpRequest = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) {
			httpRequest.overrideMimeType('text/xml');
			// Voir la note ci-dessous à propos de cette ligne
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}

	if (!httpRequest) {
		alert('Abandon :( Impossible de créer une instance XMLHTTP');
		return false;
	}
	httpRequest.onreadystatechange = function() { alertContents(httpRequest,destination,chargement); };
	httpRequest.open('POST', url, true);
	var data=get(formulaire);
	httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	httpRequest.setRequestHeader("Content-length", data.length);
	httpRequest.setRequestHeader("Connection", "close");
	httpRequest.send(data);

	clearform(formulaire);
}


function get(formulaire) {
  var getstr = "";
  var refererstr = "";
  var form = document.getElementById(formulaire);
  var elements = form.elements;
  for (i=0; i<elements.length; i++) {
	 if (elements[i].tagName == "INPUT") {
		if (elements[i].type == "text") {
		   getstr += elements[i].name + "=" + encodeURI(elements[i].value) + "&";
		}
		if (elements[i].type == "hidden") {
			if (elements[i].name == "http_referer") {
				refererstr=elements[i].value.replace(/&/g,"_");
		   		getstr += elements[i].name + "=" + encodeURI(refererstr) + "&";
			}else {
		   		getstr += elements[i].name + "=" + encodeURI(elements[i].value) + "&";
		   		
			}
		}
		if (elements[i].type == "checkbox") {
		   if (elements[i].checked) {
			  getstr += elements[i].name + "=" + encodeURI(elements[i].value + "&");
		   } else {
			  getstr += elements[i].name + "=" + "&";
		   }
		}
		if (elements[i].type == "radio") {
		   if (elements[i].checked) {
			  getstr += elements[i].name + "=" + encodeURI(elements[i].value) + "&";
		   }
		}
	 }   
	 if (elements[i].tagName == "SELECT") {
		var sel = elements[i];
		getstr += sel.name + "=" + encodeURI(sel.options[sel.selectedIndex].value) + "&";
	 }
 	 if (elements[i].tagName == "TEXTAREA") {
		getstr += elements[i].name + "=" + encodeURI(elements[i].value) + "&";
	 }
  }
  return getstr;
}



function alertContents(httpRequest,destination,chargement) {

	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
		result = httpRequest.responseText;
		document.getElementById(destination).innerHTML = result;
		$(chargement).setStyle('display', 'none');
		$(destination).setStyle('display', 'block');
		} else {
			alert('Un problème est survenu avec la requête.');
		}
	}

}

function clearform(formulaire) {
  var form = document.getElementById(formulaire);
  var elements = form.elements;
  for (i=0; i<elements.length; i++) {
	 if (elements[i].tagName == "INPUT") {
		if (elements[i].type == "text") {
			 elements[i].value = "";
		}
		if (elements[i].type == "hidden") {
			 elements[i].value = "";
		}
		if (elements[i].type == "checkbox") {
		   elements[i].checked="";
		}
		if (elements[i].type == "radio") {
	 		elements[i].checked = "";
		}
	 }   
	 if (elements[i].tagName == "SELECT") {
		 elements[i].selectedIndex = "";
	 }
	 if (elements[i].tagName == "TEXTAREA") {
		 elements[i].value = "";
	 }
  }
}

/* FIN POST AJAX */



/* bridage de form */
var validationErrorMessage = new Object();
validationErrorMessage['obligatoire'] = 'Veuillez renseigner ce champ';
validationErrorMessage['email'] = 'Veuillez saisir une adresse mail correcte (ex: nom@domain.com)';
validationErrorMessage['telephone'] = 'Veuillez saisir un numero de telephone compose uniquement de chiffres';
validationErrorMessage['nom'] = 'Veuillez saisir votre nom. Il ne doit pas contenir de chiffre et faire 2 caracteres minimum';
validationErrorMessage['prenom'] = 'Veuillez saisir votre prenom. Il ne doit pas contenir de chiffre et faire 2 caracteres minimum';
validationErrorMessage['pattern'] = 'Pattern incorrect';



var validationFunctions = new Object();
validationFunctions["obligatoire"] = isRequired;
validationFunctions["pattern"] = isPattern;
validationFunctions["codepostal"] = isPostCode;
validationFunctions["numeric"] = isnumeric;
validationFunctions["email"] = isEmail;
validationFunctions["date"] = isDate;
validationFunctions["telephone"] = isnumeric;
validationFunctions["nom"] = isNom;
validationFunctions["prenom"] = isNom;

function isRequired(formField) {
	switch (formField.type) {
		case 'text':
		case 'textarea':
		case 'select-one':
			if (formField.value)
				return true;
			return false;
		case 'radio':
			var radios = formField.form[formField.name];
			for (var i=0;i<radios.length;i++) {
				if (radios[i].checked) return true;
			}
			return false;
		case 'checkbox':
			return formField.checked;
	}	
}

function isPattern(formField,pattern) {
	var pattern = pattern || formField.getAttribute('pattern');
	var regExp = new RegExp("^"+pattern+"$","");
	var correct = regExp.test(formField.value);
	if (!correct && formField.getAttribute('patternDesc'))
		correct = formField.getAttribute('patternDesc');
	return correct;
}

function isPostCode(formField) {
	return isPattern(formField,"[0-9]{5}") && !isPattern(formField,"97(.*)");
}

function isnumeric(formField) {
	return isPattern(formField,"\\d+");
}

function isEmail(formField) {
	//return isPattern(formField,"[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}")
	var reg = /^[\w.-]+@[\w.-]+\.\w{1,4}$/
        var reg2 = /[.@]{2,}/
        var result = ((reg.exec(formField.value)!=null) && (reg2.exec(formField.value)==null))
        //alert(result);
        return result;
}

function emptyFunction() {
	return true;
}


function isDate(formField) {
	return isPattern(formField,"[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})");
}

function isTelephone(formField) {
	return isPattern(formField,"[0-9]{10}");
}

function isNom(formField) {
	if(formField.value.length<2) return false;
	var code = /[0-9]/
        var result = ((code.exec(formField.value)==null))
        return(result);
}


/*********************************/

var W3CDOM = document.createElement && document.getElementsByTagName;

function validateForms() {
	if (!W3CDOM) return;
	var forms = document.forms;
	for (var i=0;i<forms.length;i++) {
		forms[i].onsubmit = validate;
	}
}

//addEventSimple(window,'load',validateForms);

function validate(formulaire) {
//alert('validation');
	var els = formulaire;
	var validForm = true;
	var firstError = null;
	for (var i=0;i<els.length;i++) {
		if (els[i].removeError)
			els[i].removeError();
		var req = els[i].getAttribute('validation');
		if (!req) continue;
		var reqs = req.split(' ');
		if (els[i].getAttribute('pattern'))
			reqs[reqs.length] = 'pattern';
		for (var j=0;j<reqs.length;j++) {
			if (!validationFunctions[reqs[j]])
				validationFunctions[reqs[j]] = emptyFunction;
			var OK = validationFunctions[reqs[j]](els[i]);
			if (OK != true) {
				var errorMessage = OK || validationErrorMessage[reqs[j]];
				writeError(els[i],errorMessage)
				validForm = false;
				if (!firstError)
					firstError = els[i];
				break;
			}
		}
	}

	return validForm;

	
}

function writeError(obj,message) {
	//alert('obj');
	obj.className += ' errorMessage';
	obj.onchange = removeError;
	if (obj.errorMessage || obj.parentNode.errorMessage) return;
	var errorMessage = document.createElement('label');
	errorMessage.className = 'errorMessage';
	errorMessage.setAttribute('for',obj.id);
	errorMessage.setAttribute('htmlFor',obj.id);
	errorMessage.appendChild(document.createTextNode(message));
	obj.parentNode.appendChild(errorMessage);
	obj.errorMessage = errorMessage;
	obj.parentNode.errorMessage = errorMessage;
}

function removeError() {
	this.className = this.className.replace(/errorMessage/,'');
	if (this.errorMessage) {
		this.parentNode.removeChild(this.errorMessage);
		this.errorMessage = null;
		this.parentNode.errorMessage = null;
	}
	this.onchange = null;
}


