$(document).ready(function() {
    $("#devisForm").bind('submit', function(){
        var sMessage = "";
        var sMessageError = "";
               
		// Verif Societe
        clearItem("#p_Societe");
        if ( jQuery.trim($("#p_Societe").val()).length==0 || jQuery.trim($("#p_Societe").val()) == "Nom de la societe" ) {
            errorItem("#p_Societe");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Nom de la societe";
        }
        
        // Verif Adresse
        clearItem("#p_Adresse");
        if ( jQuery.trim($("#p_Adresse").val()).length==0 || jQuery.trim($("#p_Adresse").val()) == "Adresse" ) {
            errorItem("#p_Adresse");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Adresse";
        }
        
        // Verif Code Postal
        clearItem("#p_CodePostal");
        if ( jQuery.trim($("#p_CodePostal").val()).length==0 || jQuery.trim($("#p_CodePostal").val()) == "Code Postal" ) {
            errorItem("#p_CodePostal");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Code Postal";
        } else {
			if(isValidNumber(jQuery.trim($("#p_CodePostal").val())) == false) {
				sMessage += " Code Postal <b>conforme</b>, ";
            	errorItem("#p_CodePostal");
			}
        }
        
        // Verif Site
        clearItem("#p_Site");
        if ( jQuery.trim($("#p_Site").val()).length==0 || jQuery.trim($("#p_Site").val()) == "Site Internet" ) {
            errorItem("#p_Site");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Site Internet";
        } else {
			if(isUrl(jQuery.trim($("#p_Site").val())) == false) {
				sMessage += " Site Internet <b>conforme</b>, ";
            	errorItem("#p_Site");
			}
        }
        
        // Verif Nom
        clearItem("#p_Nom");
        if ( jQuery.trim($("#p_Nom").val()).length==0 || jQuery.trim($("#p_Nom").val()) == "Nom" ) {
            errorItem("#p_Nom");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Nom";
        }
        
        // Verif Prenom
        clearItem("#p_Prenom");
        if ( jQuery.trim($("#p_Prenom").val()).length==0 || jQuery.trim($("#p_Prenom").val()) == "Prenom" ) {
            errorItem("#p_Prenom");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Prenom";
        }
        
        // Verif Email
        clearItem("#p_Email");
        if ( jQuery.trim($("#p_Email").val()).length==0 || jQuery.trim($("#p_Email").val()) == "E-mail" ) {
            errorItem("#p_Email");
            if(sMessage != "") sMessage += ", ";
            sMessage += "E-mail";
        } else {
			if(isValidEmailAddress(jQuery.trim($("#p_Email").val())) == false) {
            	if(sMessage != "") sMessage += ", ";
				sMessage += "E-mail <b>conforme</b>, ";
            	errorItem("#p_Email");
			}
        }

        
        // Verif Telephone
        clearItem("#p_Tel");
        if ( jQuery.trim($("#p_Tel").val()).length==0 || jQuery.trim($("#p_Tel").val()) == "Telephone" ) {
            errorItem("#p_Tel");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Telephone";
        } else {
			if(isValidNumberPhone(jQuery.trim($("#p_Tel").val())) == false) {
				sMessage += " T&eacute;l&eacute;phone <b>conforme</b>, ";
            	errorItem("#p_Tel");
			}
        }

        
        
        // Verif Prestations 
        document.getElementById("p_PrestaParagraph").style.border="0px solid white";
        if ( !$('#p_Presta1').is(':checked') 
          && !$('#p_Presta2').is(':checked') 
          && !$('#p_Presta3').is(':checked') 
          && !$('#p_Presta4').is(':checked') 
          && !$('#p_Presta5').is(':checked') 
          && !$('#p_Presta6').is(':checked') 
        ) {
            errorItem("#p_PrestaParagraph");

            document.getElementById("p_PrestaParagraph").style.border="1px dashed #009AD5";
        	if(sMessage != "") sMessage += ", ";
            sMessage += "Prestation";
        } else {
            document.getElementById("p_PrestaParagraph").style.background="none";
        }
                
                
        // Verif mots cles
        clearItem("#p_MotsCles");
        if ( jQuery.trim($("#p_MotsCles").val()).length==0 || jQuery.trim($("#p_MotsCles").val()) == "Mots-cles separes par une virgule" ) {
            errorItem("#p_MotsCles");
            if(sMessage != "") sMessage += ", ";
            sMessage += "Mots cles";
        }       		
        
        
        
        
		if(sMessage != '') {
			$("div#sMessageForm").addClass("error");
			sMessageError = "<b>Attention, voici la liste des champs &agrave; compl&eacute;ter :</b> <br />";
		
			if(sMessage != '') {
				sMessageError += sMessage;
			}
			
			$("div#sMessageForm").html(sMessageError);
	
			document.getElementById('p_Valid').value = "0";
			return false;
		} else {
			document.getElementById('p_Valid').value = "1";
			return true;
		}
    });
});


function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function isValidNumber(champ) {
	var number = new RegExp(/^[-]?\d*\.?\d*$/);
	return number.test(champ);
}

function isValidNumberPhone(champ) {
	var number = new RegExp(/^[-]?\d*\.?\d*$/);
	while (champ.search(" ") != -1) {
		champ = champ.replace(" ", "");
	} 
	return number.test(champ);
}
function isUrl(urlAddress) {
	var pattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return pattern.test(urlAddress);
}


function clearItem(champ) {
    $(champ).css({borderColor: ''});
    $(champ).css({borderStyle: ''});
    $(champ).css({backgroundColor: ''});
	return true;
}

function errorItem(champ) {
	var sColorError = '#009AD5';
    $(champ).css({borderColor: sColorError});
    $(champ).css({borderStyle: "dashed"});
    $(champ).css({backgroundColor: "#bfe8f8"});

    
	return true;
}
