// Send message to CSR/PPD
function sendMessage(){
	var prod = document.getElementById('prod').value;
	var userFirstName = document.getElementById('userFirstName').value;
	var userLastName = document.getElementById('userLastName').value;
	var acctName = document.getElementById('acctName').value;
	var acctCity = document.getElementById('acctCity').value;
	var acctState = document.getElementById('acctState').value;
	var acctCountry = document.getElementById('acctCountry').value;
	var acctPhone = document.getElementById('acctPhone').value;
	var userEmail = document.getElementById('userEmail').value;
	var userEmail2 = document.getElementById('userEmail2').value;
	var category = document.getElementById('category').value;
	var message = document.getElementById('message').value;
	var subject = document.getElementById('subject').value;
	validateField('userFirstName',userFirstName);
	validateField('userLastName',userLastName);
	validateField('acctName',acctName);
	validateField('acctCity',acctCity);
	validateField('acctState',acctState);
	validateField('acctCountry',acctCountry);
	validatePhone('acctPhone',acctPhone);
	validateField('userEmail',userEmail);
	validateEmail('userEmail',userEmail);
	validateField('userEmail2',userEmail2);
	validateEmail('userEmail2',userEmail2);
	validateField('category',category);
	validateField('subject',subject);
	validateField('message',message);
	// Make sure email matches
	if(userEmail != userEmail2){
		document.getElementById('userEmailError').innerHTML = "*Emails do not match*";
		document.getElementById('userEmail2Error').innerHTML = "*Emails do not match*";
	}
	if(checkErrors('userFirstName') && checkErrors('userLastName') && checkErrors('acctName') && checkErrors('acctCity') && checkErrors('acctState') && checkErrors('acctCountry') && checkErrors('userEmail') && checkErrors('subject') && checkErrors('message') && checkErrors('category')){
		$.post('includes/submitContactUs.php', {
			prod : prod,
			userFirstName : userFirstName,
			userLastName : userLastName,
			acctName : acctName,
			acctCity : acctCity,
			acctState : acctState,
			acctCountry : acctCountry,
			acctPhone : acctPhone,
			userEmail : userEmail,
			subject : subject,
			category : category,
			message : message
		},function(msg){$('#form_content').html(msg);});
	} else {
		alert('Check form for errors');
	}
}

// Check for errors
function checkErrors(field){
	if(document.getElementById(field+'Error').innerHTML == ''){
		return true;
	} else {
		return false;
	}
}

// Field Validation

// Check for empty fields
function validateField(field,value){
	if(value == ""){
		var fieldAlert = "<br>*You must complete this field*";
		document.getElementById(field+"Error").innerHTML = fieldAlert;
		return false;
	} else {
		document.getElementById(field+"Error").innerHTML = "";
		return true;
	}
}
// Validate email address
function validateEmail(field,emailValue){
	if (emailValue != ""){
		var emailAlert = "<br>*This is not a valid email address*";
		var apos=emailValue.indexOf("@");
		var dotpos=emailValue.lastIndexOf(".");
		if (apos<1||dotpos-apos<2){
			document.getElementById(field+"Error").innerHTML=emailAlert;
			return false;
		} else {
			document.getElementById(field+"Error").innerHTML="";
			return true;
		}
	}
}

////////////////////////////////////////////////////////////////
//                   Begin Phone functions                    //
////////////////////////////////////////////////////////////////
// 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 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 validate(field,phone){
	if(phone != "" || phone !== "" || field == "acctPhone"){
		s=stripCharsInBag(phone,validWorldPhoneChars);
		return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
}

function validatePhone(field,phone){
	if(field == "acctPhone" || phone != ""){
		var phoneAlert = "<br>*You did not enter a valid phone number*";
		var phoneError = field+"Error";
		if(validate(field,phone) == false){
			document.getElementById(field+"Error").innerHTML=phoneAlert;
			return false;
		} else {
			document.getElementById(field+"Error").innerHTML="";
			return true;
		}
	} else {
		document.getElementById(field+"Error").innerHTML="";
	}
}
////////////////////////////////////////////////////////////////
//                     End Phone functions                    //
////////////////////////////////////////////////////////////////