


jQuery(document).ready(function() {

	// variables globales
	var email = $("#email");  
	var phone = $("#phone");  
	var message = $("#message") ;
	var contact = $("#contact") ;
	var envoiContact = $("#envoiContact") ;
	var name = $("#name") ;
		
	envoiContact.addClass("envoiContact");
	message.addClass("messageContact");
	message.blur(function() {
		$(this).removeClass("messageContactHover");
	});
	message.focus(function() {
		$(this).addClass("messageContactHover");
	});
	
	name.addClass("inputContact");
	name.blur(function() {
		$(this).removeClass("inputContactHover");
	});
	name.focus(function() {
		$(this).addClass("inputContactHover");
	});
	
	email.addClass("inputContact");
	email.blur(function() {
		validateEmail(true) ;
		validateContact() ;
	});
	email.keyup(function() {
		validateEmail(true) ;
		validateContact() ;
	});
	email.focus(function() {
		$(this).addClass("inputContactHover");
	});
	
	phone.addClass("inputContact");
	phone.blur(function() {
		validatePhone(true) ;
		validateContact() ;
	});
	phone.keyup(function() {
		validatePhone(true) ;
		validateContact() ;
	});
	phone.focus(function() {
		$(this).addClass("inputContactHover");
	});
	
	//fonctions de validations
	function validateContact() {
		if(validateEmail(false) || validatePhone(false)) {
			envoiContact.addClass("valid") ;
		}
	}
	
	contact.submit(function(){  
     if(validateEmail() || validatePhone())  
         return true  
     else  
         return false;  
	});  
	
	
	function validateEmail(boolModif){
		//testing regular expression
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			if(boolModif) {
				email.removeClass("error");
				email.addClass("valid");
			}
			return true;
		}
		//if it's NOT valid
		else{
			if(boolModif) {
				email.removeClass("valid");
				email.addClass("error");
			}
			return false;
		}
	}
	
	function validatePhone(boolModif){
		var a = $("#phone").val();
		//testing regular expression
		//if it's valid email
		if(checkInternationalPhone(a)){
			if(boolModif) {
				phone.removeClass("error");
				phone.addClass("valid");
			}
			return true;
		}
		//if it's NOT valid
		else{
			if(boolModif) {
				phone.addClass("error");
				phone.removeClass("valid");
			}
			return false;
		}
	}	

/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}



	
 });

 

