
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 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){

s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}








function emailCheck (emailStr) 
    {



        var emailPat=/^(.+)@(.+)$/
        var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
        var validChars="\[^\\s" + specialChars + "\]"
        var quotedUser="(\"[^\"]*\")"
        var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
        var atom=validChars + '+'
        var word="(" + atom + "|" + quotedUser + ")"
        var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
        var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
        var matchArray=emailStr.match(emailPat)
        
        if (matchArray==null)
            {
                alert("The email address you provided is not valid! \n \n Check if you provided '@' & '.' symbol.")
                return false
            }
        var user=matchArray[1]
        var domain=matchArray[2]
        
        if (user.match(userPat)==null) 
            {
                alert("The email address you provided is not valid! \n \n It's username seems invalid.")
                return false
            }
            
        var IPArray=domain.match(ipDomainPat)
        if (IPArray!=null) 
            {
                // this is an IP address
                for (var i=1;i<=4;i++) 
                    {
                        if (IPArray[i]>255) 
                            {
                                alert("Destination IP address is invalid!")
                                return false
                            }
                    }
                return true
            }
            
        var domainArray=domain.match(domainPat)
        
        if (domainArray==null) 
            {
                alert("The email address you provided is not valid! \n \n It's domain name seems invalid.")
                return false
            }
            
        var atomPat=new RegExp(atom,"g")
        var domArr=domain.match(atomPat)
        var len=domArr.length
        if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
            {
                alert("The email address you provided is not valid! \n \n The address must end in a three-letter domain, or two letter country.")
                return false
            }
        if (len<2) 
            {
                var errStr="The email address you provided is not valid! \n \n This address is missing a hostname!"
                alert(errStr)
            return false
            }
        return true;
    }

// Form Validation

// Validate Name
function Validate2()
    {





		if (document.contact_form.firstname.value=='')
            {
                alert("Please provide your first name!");
                document.contact_form.firstname.focus();
                return (false);
            }


        if (document.contact_form.lastname.value=='')
            {
                alert("Please provide your last name!");
                document.contact_form.lastname.focus();
                return (false);
            }





			var Phone=document.contact_form.txtPhone
			
			if ((Phone.value==null)||(Phone.value=="")){
				alert("Please Enter your Phone Number")
				Phone.focus()
				return false
			}
			if (checkInternationalPhone(Phone.value)==false){
				alert("Please Enter a Valid Phone Number (10 digits)")
				Phone.value=""
				Phone.focus()
				return false
			}



        


        // Validate Email
        if (document.contact_form.email.value=='')
            {
                alert("Please enter your email address!");
                document.contact_form.email.focus();
                return (false);
            }
        if (!emailCheck (document.contact_form.email.value) )
            {
                document.contact_form.email.focus();
                return (false);
            }


		

        
        
        // Validate Message
        if (document.contact_form.mesaj.value=='')
            {
                alert("You should provide your message!");
                document.contact_form.mesaj.focus();
                return (false);
            }  
			


	document.contact_form.submit(); 
        return(true);
    }

function resetform2()
{
	if (confirm("Warning!\n\nResetting the form will delete all entered data!"))
	{
	document.contact_form.reset();
	}
	return false;
}


