function initTips() {
	Event.observe("bt_portf", "click", onClickPortfolio);
}; // initTips

function onClickPortfolio(evt) {
	evt.stop();
	var id = Event.findElement(evt, 'a').readAttribute("id");
	var title = "Portfolio";
	var w = 350;
	$("container").insert({
		bottom: "<div id=\"loader\"></div>"
	});
	new Ajax.Request("../ajax/get_portfolio.php", {
		method: "get",
		onComplete: function(req) {
			$("loader").remove();
		},
		onSuccess: function(req) {
			new Tip(id, req.responseText, {
				title: title,
				closeButton: true,
				showOn: "click",
				hideOn: { element: "closeButton", event: "click" },
				hideOthers: true,
				stem: "bottomMiddle",
				hook: { target: "topMiddle", tip: "bottomMiddle" },
				offset: { x:0, y: -2 },
				width: w
			});
			$(id).prototip.show();
			Event.observe($("form_portfolio"), "submit", submitFormPortfolio);
			new Form.Observer($("form_portfolio"), 0.2, checkForm);
		}
	});
}; // onClickPortfolio

function checkForm(form, value) {
	$$("form label").each(function(elt) {
		if(elt.hasClassName("required")) {
			if("" != $(elt.readAttribute("for")).getValue()) {
				setBackground(elt, "url(images/form-ok.png)");
			} else {
				setBackground(elt, "url(images/form-required.png)");
			}
		}
		if(elt.hasClassName("email")) {
			if("" != $(elt.readAttribute("for")).getValue()) {
				if(isValidEmail($(elt.readAttribute("for")).getValue())) {
					setBackground(elt, "url(images/form-ok.png)");
				} else {
					setBackground(elt, "url(images/form-wrong.png)");
				}
			}
		}
		if(elt.hasClassName("tel")) {
			if("" != $(elt.readAttribute("for")).getValue()) {
				if(isValidTel($(elt.readAttribute("for")).getValue())) {
					setBackground(elt, "url(images/form-ok.png)");
				} else {
					setBackground(elt, "url(images/form-wrong.png)");
				}
			}
		}
	});
}; // checkForm

function isValidEmail(strEmail) {
	var regExp = new RegExp(/^\w[\w\-\.]*@\w[\w\-\.]*\.[a-z]{2,4}$/i);
	return strEmail.match(regExp);
}; // isValidEmail

function isValidTel(strTel) {
	var regExp = new RegExp(/^\+?[0-9]{6,}$/);
	return strTel.gsub(/\./, "").gsub(/\s+/, "").match(regExp);
}; // isValidEmail

function setBackground(elt, url) {
	elt.setStyle({
		backgroundImage: url
	});
}; // setBackground

function isFormComplete(form) {
	var err = "";
	$$("#" + form + " label").each(function(elt) {
		if(elt.hasClassName('required')) {
			if('' == $(elt.readAttribute('for')).getValue()) {
				if('' != elt.firstChild.nodeValue.strip()) {
					err += '\n' + elt.firstChild.nodeValue.strip() + ' obligatoire';
				} else {
					err += '\n' + elt.readAttribute('title') + ' : obligatoire';
				}
			}
		}
		if(elt.hasClassName('email')) {
			if('' != $(elt.readAttribute('for')).getValue() && !isValidEmail($(elt.readAttribute('for')).getValue())) {
				if('' != elt.firstChild.nodeValue.strip()) {
					err += '\n' + elt.firstChild.nodeValue.strip() + ' non valide';
				} else {
					err += '\n' + elt.readAttribute('title') + ' : non valide';
				}
			}
		}
	});
	if("" != err) {
		alert("Les renseignements suivants sont manquants ou inexacts :\n" + err);
	}
	return ("" == err);
}; // isFormComplete

function submitFormPortfolio(evt) {
	evt.stop();
	if(isFormComplete("form_portfolio")) {
		var data = $H({
			"email": $F("i_email")
		}).toQueryString();
		$("container").insert({
			bottom: "<div id=\"loader\"></div>"
		});
		new Ajax.Request("../ajax/post_portfolio.php", {
			method: "post",
			postBody: data,
			onComplete: function(req) {
				if(this.responseIsFailure() || null == requester.responseText.match(/^200/)) {
					alert("Erreur lors de la communication avec le serveur, merci de réessayer");
				}
			},
			onSuccess: function(req) {
				$("loader").remove();
				if("sent=true" == req.responseText) {
					//positionTips();
					$("form_portfolio").replace('<p> \
							Votre demande a bien &eacute;t&eacute; enregistr&eacute;e. \
						</p>');
				} else {
					alert("Votre demande n'a pas été enregistrée, merci de réessayer.");
				}
			}
		});
	}
}; // submitFormPortfolio

Event.observe(window, "load", initTips);
