$(document).ready(function(){

	// preload the arrow //
	if(document.images) {
		arrow = new Image(7,80); 
		arrow.src = "/eng/wp-content/themes/freshnews/images/msg_arrow.gif"; 
		}
		
			
	$("form#contactform").submit(function(){
		var nameVal=$("#name").val();		nameVal=$.trim(nameVal);		$("#name").val(nameVal);
		var emailVal = $("#email").val();	emailVal=$.trim(emailVal);	$("#email").val(emailVal);
		var siteVal = $("#site").val();	siteVal=$.trim(siteVal);		$("#site").val(siteVal);
		var subjectVal = $("#subject").val();
		var messageVal = $("#message").val();
		
		var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
		var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
		var siteRegex=/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
		var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
		if(nameVal == "") {
			inlineMsg('name','You must enter your name.',2);
			return false;
			}
		if(!nameVal.match(nameRegex)) {
			inlineMsg('name','You have entered an invalid name.',2);
			return false;
			}
		if(emailVal == "") {
			inlineMsg('email','<strong>Error</strong><br />You must enter your email.',2);
			return false;
			}
		if(!emailVal.match(emailRegex)) {
			inlineMsg('email','<strong>Error</strong><br />You have entered an invalid email.',2);
			return false;
			}
		if((siteVal != "")&&(siteVal != "http://wwww.")) {
			if(!isUrl(siteVal)){
				inlineMsg('site','<strong>Error</strong><br />You have entered an invalid website address.',2);
				return false;
				}
			}

		if(subjectVal=="pleaseselect"){
			inlineMsg('subject','<strong>Error</strong><br />Please select the subject of your message.',2);
			return false;
			}

		if(messageVal == "") {
			inlineMsg('message','You must enter a message.');
			return false;
			}
		if(messageVal.match(messageRegex)) {
			inlineMsg('message','You have entered an invalid message.');
			return false;
			}
		
		// préparation de l'UI en état transitoire
		preparerAttente();

		// envoi du formulaire vers le serveur
		$.post("/eng/wp-content/themes/freshnews/contactmanager.php", 
				$("form#contactform").serializeArray(),
				function(data){
					$("div#contactmanager").html(data);
					}, 
				"html");

		return false;	
	}); // $("form#contactform").submit(function(){
		
}); // $(document).ready(function(){


var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;
		
function preparerAttente(){
	$("div#contactmanager").css("height",$("form#contactform").height());
	$("form#contactform").fadeOut("slow");
	
	$("div#contactmanager").fadeIn("slow");
}		
function isUrl(s) {
	var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}

function inlineMsg(target,string,autohide) {
	var msg;
	var msgcontent;
	if(!document.getElementById('msg')) {
		msg = document.createElement('div');
		msg.id = 'msg';
		msgcontent = document.createElement('div');
		msgcontent.id = 'msgcontent';
		document.body.appendChild(msg);
		msg.appendChild(msgcontent);
		msg.style.filter = 'alpha(opacity=0)';
		msg.style.opacity = 0;
		msg.alpha = 0;
		} 
	else {
		msg = document.getElementById('msg');
		msgcontent = document.getElementById('msgcontent');
		}
	msgcontent.innerHTML = string;
	msg.style.display = 'block';
	var msgheight = msg.offsetHeight;
	var targetdiv = document.getElementById(target);
	targetdiv.focus();
	var targetheight = targetdiv.offsetHeight;
	var targetwidth = targetdiv.offsetWidth;
	var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
	var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
	msg.style.top = topposition + 'px';
	msg.style.left = leftposition + 'px';
	clearInterval(msg.timer);
	msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
	if(!autohide) {
		autohide = MSGHIDE;  
		}
	window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
	var msg = document.getElementById('msg');
	if(!msg.timer) {
		msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
		}
}

// face the message box //
function fadeMsg(flag) {
	if(flag == null) {
		flag = 1;
		}
	var msg = document.getElementById('msg');
	var value;
	if(flag == 1) {
		value = msg.alpha + MSGSPEED;
		} 
	else {
		value = msg.alpha - MSGSPEED;
		}
	msg.alpha = value;
	msg.style.opacity = (value / 100);
	msg.style.filter = 'alpha(opacity=' + value + ')';
	if(value >= 99) {
		clearInterval(msg.timer);
		msg.timer = null;
		} 
	else if(value <= 1) {
		msg.style.display = "none";
		clearInterval(msg.timer);
		}
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
	var left = 0;
	if(target.offsetParent) {
		while(1) {
			left += target.offsetLeft;
			if(!target.offsetParent) {
				break;
				}
			target = target.offsetParent;
			}
		} 
	else if(target.x) {
		left += target.x;
		}
	return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
	var top = 0;
	if(target.offsetParent) {
		while(1) {
			top += target.offsetTop;
			if(!target.offsetParent) {
				break;
				}
			target = target.offsetParent;
			}
		}
	else if(target.y) {
		top += target.y;
		}
	return top;
}


