function verifyForm(form) {
    var userName = form.nume.value;
    var userEmail = form.email.value;
	var userPre = form.prenume.value;
	var userTel = form.telefon.value;
	var userMSG = form.mesaj.value;
	var userCod = form.code.value;
    var success = 1;
	var mesajulFinal = '';
	var bordermail = 0;
	
	// ***********************************************************************************
	// FUNCTIE TRIM , verificam daca valoarea introdusa este formata doar din spatii goale
	function trim(s)
	{
	  var myString = s;
	  var j = 0;
	
	  // trim front of string
	  for(var i = 0; i < myString.length; i++)
	  {
		if(myString.charAt(i) != " ")
		{
		  break
		}
		else
		{
		  j += 1;
		}
	  }
	  myString = myString.substring(j, myString.length);
	
	  // trim back of string
	  j = myString.length;
	  for(var i = myString.length - 1; i >= 0; i--)
	  {
		if(myString.charAt(i) != " ")
		{
		  break
		}
		else
		{
		  j -= 1;
		}
	  }
	  myString = myString.substring(0, j);
	
	  return myString;
	}
	// ***********************************************************************************
	
    if (trim(userCod)=="") {
        form.code.style.backgroundColor = "#ffffff";
        form.code.style.border = "1px #BC4676 solid";
		mesajulFinal = '<br>&bull;&nbsp;Codul nu este completat \n';
		mesajulFinal += '<br>-----------------------------------------\n';
        success = 0;
    }	
    else {
        form.code.style.backgroundColor = "";
        form.code.style.border = "";
    }
	// ----------------------------------------------------
    if (trim(userName)=="") {
        form.nume.style.backgroundColor = "#ffffff";
        form.nume.style.border = "1px #BC4676 solid";
		mesajulFinal += '<br>&bull;&nbsp;Numele nu este completat \n';
		mesajulFinal += '<br>-----------------------------------------\n';
        success = 0;
    }
    else {
        form.nume.style.backgroundColor = "";
        form.nume.style.border = "";
    }
	// ----------------------------------------------------	
    if (trim(userMSG)=="") {
        form.mesaj.style.backgroundColor = "#ffffff";
        form.mesaj.style.border = "1px #BC4676 solid";
		mesajulFinal += '<br>&bull;&nbsp;Completari nu este completat\n';
		mesajulFinal += '<br>-----------------------------------------\n';
        success = 0;
    }
    else {
        form.mesaj.style.backgroundColor = "";
        form.mesaj.style.border = "";
    }
	// ----------------------------------------------------	
    if (!userTel) {
        form.telefon.style.backgroundColor = "#ffffff";
        form.telefon.style.border = "1px #BC4676 solid";
		mesajulFinal += '<br>&bull;&nbsp;Telefonul nu este completat\n';
		mesajulFinal += '<br>-----------------------------------------\n';
        success = 0;
    }	
    else {
		// -- incepe testarea numarului de telefon
		var digits = "0123456789"; // * ce trebuie sa contina
		var phoneNumberDelimiters = "()-."; // * caractere acceptate
		var validWorldPhoneChars = phoneNumberDelimiters + "+"; // * in caz de numar international cu + in fata
		var minDigitsInIPhoneNumber = 10; // * marimea minima a nr de telefon
		function isInteger(s)
		{   var i;
			for (i = 0; i < s.length; i++)
			{   
				// verificam daca este cifra
				var c = s.charAt(i);
				if (((c < "0") || (c > "9"))) return false;
			}
			// Toate caracterele sunt numere.
			return true;
		}
		function trim(s)
		{   var i;
			var returnString = "";
			// cauta caracterele , pe rand 1 cate 1 
			for (i = 0; i < s.length; i++)
			{   
				// verificare sa nu fie spatiu.
				var c = s.charAt(i);
				if (c != " ") returnString += c;
			}
			return returnString;
		}	
		function stripCharsInBag(s, bag)
		{   var i;
			var returnString = "";
			// cauta caracterele , pe rand 1 cate 1
			for (i = 0; i < s.length; i++)
			{   
				// verificare sa nu fie spatiu.
				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);
		}	
		
		// functia finala care face toate verificarile			
			if ((userTel==null)||(userTel=="")){
				mesajulFinal +='<br>&bull;&nbsp;Introduceti numarul de telefon\n';
				mesajulFinal += '<br>-----------------------------------------\n';
				form.telefon.style.backgroundColor = "#ffffff";
				form.telefon.style.border = "1px #BC4676 solid";				
				success = 0;
			}
			else
			if (checkInternationalPhone(userTel)==false){
				mesajulFinal +='<br>&bull;&nbsp;Numarul de telefon introdus este incorect (minim 10 cifre)\n[se accepta caracterele 0 - 9 ( ) - . + ]\n';
				mesajulFinal += '<br>-----------------------------------------\n';
				form.telefon.style.backgroundColor = "#ffffff";
				form.telefon.style.border = "1px #BC4676 solid";				
				success = 0;
			}else
			{
			form.telefon.style.backgroundColor = "";
			form.telefon.style.border = "";	
			}
		// -- 	
        
    }
	// ----------------------------------------------------	
    if (!userPre) {
        form.prenume.style.backgroundColor = "#ffffff";
        form.prenume.style.border = "1px #BC4676 solid";
		mesajulFinal += '<br>&bull;&nbsp;Prenumele nu este completat\n';
		mesajulFinal += '<br>-----------------------------------------\n';
        success = 0;
    }
    else {
        form.prenume.style.backgroundColor = "";
        form.prenume.style.border = "";
    }
	// ----------------------------------------------------	
    if (!userEmail) {
           mesajulFinal += '<br>&bull;&nbsp;Adresa de e-mail nu este completata\n';
		   form.email.style.backgroundColor = "#ffffff";
       	   form.email.style.border = "1px #BC4676 solid";
		   success = 0;
    }
	else
	{
		var emailFilter=/^.+@.+\..{2,3}$/
        if ( !(emailFilter.test(userEmail)) ) { 
	    mesajulFinal += '<br>&bull;&nbsp;Adresa de email incorecta\n';
		mesajulFinal += '<br>-----------------------------------------\n';
	    form.email.style.backgroundColor = "#ffffff";
	    form.email.style.border = "1px #BC4676 solid";		
		success = 0;
		bordermail = 1;
		}
    //test email for illegal characters
	   var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		 if (userEmail.match(illegalChars)) {
		   mesajulFinal += '<br>&bull;&nbsp;Adresa de email contine caractere ilegale\n';
		   mesajulFinal += '<br>-----------------------------------------\n';
		   form.email.style.backgroundColor = "#ffffff";
       	   form.email.style.border = "1px #BC4676 solid";		   
		 success = 0;
		 bordermail = 1;
	   }	
	   
	   if(bordermail==0)
	   {
        form.email.style.backgroundColor = "";
        form.email.style.border = "";		   
	   }
	}
	// ----------------------------------------------------	
    if(!success) {
		alert('<strong>Completati urmatoarele campuri</strong> : \n <br>----------------------------------------- \n'+mesajulFinal);
        return false;
    }
    else {
        trimite();
    }
}

