// Email validator
function emailValidate(emailAddr)
{
	  var status = '';
      var chkDot = true;
	  var usEmail = true;
      var lenSuffix = (usEmail) ? 4 : 3;
      var result = false;
      var ndxAt = ndxDot =  0;
          
      ndxAt  = emailAddr.indexOf("@");
      ndxDot = emailAddr.indexOf(".") ;
      ndxDot2 = emailAddr.lastIndexOf(".") ; 
          
      if ((ndxDot < 0) || (ndxAt < 0)) { 
	  	status = "The email address is invalid.The format is 'you@dom.suf'"; 
	  } else if ( (ndxDot2 - 3) <= ndxAt) { 
	  	status = "You may be missing your domain name.The format is 'you@dom.suf'"; 
	  }
	return status;
}

// Phone validator
/*
function validatePhone(num)
{
	var pattern = new RegExp(/\D/);
	if(pattern.test(num)==true) {
		return false;
	} 
	if(num.length < 10 || num.length > 14)	
		return false;
}*/

// Validate Integers
function onlyDigits(num)
{
	if (parseInt(num) != num ){
	  return false;
	}
	return true;
}

//Params > Descriptive name, input value, datatype, minimum value, maximum value
function validateField(name, inputValue, datatype, minimum, maximum)
{
	// String
	if(datatype == 'string') {
		if(minimum!='' && maximum!='' && inputValue.length < minimum && inputValue.length > maximum)
			return name + ' should be between '+ minimum + ' and ' + maximum;		
		if(minimum!='' && inputValue.length < minimum)
			return name + ' should be more than '+ minimum;
		if(maximum!='' && inputValue.length > maximum)
			return name + ' should not be more than '+ maximum;	
		if(inputValue == '')
			return name + ' cannot be empty';
		return ''; // valid
	}
	
	// Integer, phone
	if(datatype == 'int') {
		if(onlyDigits(inputValue) == false)
			return name + ' is not valid';
		if(minimum!='' && maximum!='' && inputValue.length < minimum && inputValue.length > maximum)
			return name + ' should be between '+ minimum + ' and ' + maximum;					
		if(minimum!='' && inputValue.length < minimum)
			return name + ' should be more than '+ minimum;
		if(maximum!='' && inputValue.length > maximum)
			return name + ' should not be more than '+ maximum;	
		if(inputValue == '')
			return name + ' cannot be empty';
		return ''; // valid
	}
}

// error checker - returns true if no error - else display errors and returs false
function manageErrors(errors, outputHolder)
{ 
	var valid = true;
	// find any error message is there or not
	for (x=0;x<errors.length;x++)
	{
		if(errors[x] != '') {
			valid = false;
			break;
		}
	}	
	// if error message is there
	if(valid == false) 
	{
		var errorMessage = "<div class='notice'><ul>";
		for (y=x;y<errors.length;y++)
		{
			if(errors[y] != '')
				errorMessage += "<li>" + errors[y] + "</li>";			
		}	
		errorMessage += '</ul></div><br />';
		document.getElementById(outputHolder).innerHTML = errorMessage;
	}
	return valid;	
}
