///////////////////////////////////////
//Javscript written by Chad Wikander Feb 2005
//
//Copyright
//////////////////////////////////////

function CheckIt(TheForm)
{//Need to call the appropriate functions for checking all fields on the Form

//loop through all the fields checking acording to name


var message=""; 

NumberOfFields=TheForm.length;
for (i = 0; i < NumberOfFields; i++)
	{
	 FormElementName=TheForm.elements[i].name;
	 FormElementVal=TheForm.elements[i].value;
	 switch (FormElementName)
		{
		case (FormElementName="OnLineToEmail"):
  			message+=CheckEmail(FormElementVal);
  		break
		case (FormElementName="Phone"):
  			message+=validateTelnr(FormElementVal);
  		break		
  		case (FormElementName="GiftFrom"):
  			if(FormElementVal == "")
  			     {
  			     message+="Gift from name is required.\n";
  			     }
  		break
  		case (FormElementName="OnLineAmount"):  			
  			 message+=CheckAmount(FormElementVal); 
  		break	
  		case (FormElementName="InStoreAmount"):  			
  			message+=CheckAmount(FormElementVal);
  		break	  		
		}
	
	}
if(message != "")
	{alert(message);}
else
     {TheForm.submit();}
}

function CheckAmount(vfld)  
{
message="";
  var tfld = trim(vfld);  // value of field with whitespace trimmed off
  var telnr = /^\d+(\.\d{1,2})?$/ 
  if (!telnr.test(tfld)) {
    message+="Not a valid dollar amount. \n";
    return message;
    }    
  if(vfld < 24.999)
     {
     message+="Amount needs to be between 25 and 2000\n"; 
     return message;
     }
else
     {return message;}
};


function CheckEmail(vfld){ 	 
var message="";                     
  var tfld = trim(vfld);  // value of field with whitespace trimmed off
  var email =/^[^@]+@[^@.]+\.[^@]*\w\w$/;     //valid
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;    // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  
  if (!reg1.test(tfld) && reg2.test(tfld) && email.test(tfld)) 
     { // if syntax is valid
     message="";
     return message;
     }
  else
     {
     message="Not a valid e-mail address.\n";
     return message;
     }
}

function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '')
};

function validateTelnr(vfld)  
{
message="";
  var tfld = trim(vfld);  // value of field with whitespace trimmed off
  var telnr = /^\+?[0-9 ()-]+[0-9]$/
  if (!telnr.test(tfld)) {
    message+="Not a valid telephone number. \n";
    
    return message;
  }

  var numdigits = 0;
  for (var j=0; j<tfld.length; j++)
    if (tfld.charAt(j)>='0' && tfld.charAt(j)<='9') numdigits++;

  if (numdigits<7) {
    message+="Telephone number has too few digits.\n";
    
    return message;
  }

  if (numdigits>7)
    message+="Telephone number has too many digits.\n";
  else { 
    if (numdigits<7)
      message+= "Telephone number has only " + numdigits + " digits. \n";
    
  }
  return message;
};

function CheckAreaCode(vfld,msg)  
{
message="";
  var tfld = trim(vfld);  // value of field with whitespace trimmed off
  var telnr = /^\+?[0-9 ()-]+[0-9]$/
  if (!telnr.test(tfld)) {
    message= msg+" not a valid area code. \n";    
    return message;
  }

  var numdigits = 0;
  for (var j=0; j<tfld.length; j++)
    if (tfld.charAt(j)>='0' && tfld.charAt(j)<='9') numdigits++;

  if (numdigits<3) {
    message=msg +" has too few digits.\n";
    
    return message;
  }

  if (numdigits>3)
    message=msg +" has too many digits.\n";
  else { 
    if (numdigits<3)
      message= msg +" has only " + numdigits + " digits. \n";
    
  }
  return message;
};

function CheckZip(vfld)  
{
message="";
  var tfld = trim(vfld);  // value of field with whitespace trimmed off
  var telnr = /^\+?[0-9 ()-]+[0-9]$/
  if (!telnr.test(tfld)) {
    message+="Zipcode not valid. \n";    
    return message;
  }

  var numdigits = 0;
  for (var j=0; j<tfld.length; j++)
    if (tfld.charAt(j)>='0' && tfld.charAt(j)<='9') numdigits++;

  if (numdigits<5) {
    message+="Zipcode has too few digits.\n";
    
    return message;
  }

  if (numdigits>9)
    message+="Zipcode has too many digits.\n";
  else { 
    if (numdigits<5)
      message+="Zipcode has only " + numdigits + " digits.\n";
    
  }
  return message;
};