// main.js

// check the string given for invalid characters and it has the choice to either return
// the invalid chars or fire up the invalid class
function valiString(string, origId, invalidChars, returnInvalid, errMsg)
{
	var invalidString = '';	
	
	if(typeof invalidChars == 'undefined')
	{
		invalidChars = '`';
	}
	
	if(typeof string == 'undefined' || string == '')
	{
		return true;
	}
	
	for(index = 0; index < string.length; index++)
	{
		charr = string.substr(index, 1);
		if(invalidChars.indexOf(charr) != -1)
		{
			if(errMsg)
			{
				$('#'+origId).val(errMsg);
			}
			else
			{
				$('#'+origId).val('');
			}
			$('#'+origId).addClass('invalid');
			
			if(invalidString == '')
			{
				invalidString += charr;
			}
			else
			{
				invalidString += ', ' + charr;
			}
		}
	}

	if(returnInvalid == true && invalidString != '')
	{
		lastComma = invalidString.lastIndexOf(',');
		if(lastComma != -1)
		{
			invalidString = invalidString.substr(0, lastComma) + ' and ' + invalidString.substr(lastComma + 1, invalidString.length);
		}
		return invalidString;
	}
	else if(invalidString != '')
	{
		if(errMsg)
		{
			$('#'+origId).val(errMsg);
		}
		else
		{
			$('#'+origId).val('');
		}
		$('#'+origId).addClass('invalid');
	}
	else
	{
		$('#'+origId).removeClass('invalid');
	}
	return true;
}

function valiEmail(ob, errMsg)
{
	email = ob.value;
	origId = ob.id;
	
	if(email == '')
	{
		$('#'+origId).removeClass('invalid');
		return;
	}
	
	at = email.indexOf('@');
	dot = email.indexOf('.');
	if(at == -1 || dot == -1 || dot <= at + 1 || dot == 0 || dot == email.length - 1)
	{
		at = email.indexOf('@');
		dot = email.indexOf('.');
		if(at == -1 || dot == -1 || dot == 0 || dot == email.length - 1)
		{
			if(errMsg)
			{			
				$('#'+origId).val(errMsg);
			}
		
			$('#'+origId).addClass('invalid');
			return true;
		}
		else
		{	
			$('#'+origId).removeClass('invalid');
		}
		user = email.substr(0, at);
		domain = email.substr(at + 1, email.length);
		
		if(valiString(user,origId,"'^!$`~,<>\/{}[]*",true) != true || valiString(domain,origId,"'^!$`~,<>\/{}[]*",true) != true)
		{
			if(errMsg)
			{			
				$('#'+origId).val(errMsg);
			}
			
			$('#'+origId).addClass('invalid');
		}
		else
		{
			$('#'+origId).removeClass('invalid');
		}
	}
	else
	{
		$('#'+origId).removeClass('invalid');
	}
}


/**
* function will ensure that data entered as a telephone number has at least 10 digits,
* any characters except digits will be discarded
*/
function validatePhone(ob, oId)
{
	
	if(typeof ob == 'object')
	{
		var phone = ob.value;
		var origId = ob.id;
	}
	else
	{
		var phone = ob;
		var origId = oId;
	}
	
	if(phone == '')
	{
		$('#'+origId).removeClass('invalid');
		return;
	}

	var validatedNumber = '';	
	var phoneDigitRegEx = /^\d{10,}$/; // phone number is 10, or more, digits
	var phoneCharacterRegEx = /[-a-zA-Z\(\)\.]/; // use to check for junk chararcters

	if( phone.match(phoneDigitRegEx))
	{	
		if(phone.length > 10)
		{
			$('#'+origId).addClass('invalid');	
			return false;
		
//			var firstDigits = phone.substring(0,1);
//			var tollFreePrefix = phone.substring( 1,4 );
//			var areaCode = phone.substring( 4,7 );
//			var exchange = phone.substring( 7,11 );
//			//var subscriber = phone.substring( 11 );
//			
//			validatedNumber = firstDigits+'-'+tollFreePrefix+' ('+areaCode+')'+exchange;
		}
		else
		{
			var areaCode = phone.substring( 0,3 );
			var exchange = phone.substring( 3,6 );
			var subscriber = phone.substring( 6,10 );
			//var extension = phone.substring( 10 );
			//validatedNumber = '('+areaCode+')'+exchange+'-'+subscriber;
			validatedNumber = areaCode+'-'+exchange+'-'+subscriber;
//			if( extension != '')
//			{
//				validatedNumber = '('+areaCode+')'+exchange+'-'+subscriber+' x'+extension;			
//				validatedNumber = areaCode+'-'+exchange+'-'+subscriber;
//			}
		}
		
		$('#'+origId).removeClass('invalid');
		$('#'+origId).val(validatedNumber);
		return true;
	}
	else if( phone.match( phoneCharacterRegEx ))
	{	
		var phoneNumber = phone.split('');
		for( var i = 0; i < phone.length; i++ )
		{
			if( phoneNumber[i].match( /[0-9]/ ) )
			{
				validatedNumber += phoneNumber[i];
			}
		}
		
		// throw in some recursion
		validatedNumber = validatePhone(validatedNumber, origId);
	}
	else
	{	
		$('#'+origId).addClass('invalid');	
		return false;
	}
}

function validateReqQuoteForm()
{
	var isValid = true;
	var err = "";
	
	if($('#name').val() == '')
	{
		err += "Name field is blank\n";
		isValid = false;
	}
	
	if($('#address').val() == '')
	{
		err += "Address field is blank\n";
		isValid = false;
	}
	
	if($('#phone').val() == '')
	{
		err += "Phone field is blank\n";
		isValid = false;
	}
	
	if($('#email').val() == '')
	{
		err += "Email field is blank\n";
		isValid = false;
	}
	
	if($('#company').val() == '')
	{
		err += "Company field is blank\n";
		isValid = false;
	}
	
	if($('#location').val() == '')
	{
		err += "City field is blank\n";
		isValid = false;
	}
	
	if($('#state').val() == '')
	{
		err += "State field is blank\n";
		isValid = false;
	}
	
	if(isValid == false)
	{
		alert("There are missing fields in your form submission\n"+err);
	}
	return isValid;
}

function validateContactUsForm()
{
	var isValid = true;
	var err = "";
	
	if($('#name').val() == '')
	{
		err += " - The Name field is blank.\n";
		isValid = false;
	}
	
	if($('#email').val() == '')
	{
		err += " - The Email field is blank.\n";
		isValid = false;
	}

        if($('#phone').val() == '')
        {
                err += " - The Phone Number field is blank.\n";
                isValid = false;
        }

	
	if(isValid == false)
	{
		alert("There are missing fields in your form submission: \n"+err);
	}	
	return isValid;
}
function validateEmailBlastForm()
{
	var isValid = true;
	var err = "";
	
	if($('#name').val() == '')
	{
		err += " - The Name field is blank.\n";
		isValid = false;
	}
	
	if($('#email').val() == '')
	{
		err += " - The Email field is blank.\n";
		isValid = false;
	}
	
	if(isValid == false)
	{
		alert("There are missing fields in your sign-up submission: \n"+err);
	}	
	return isValid;
}

