///////////////////////////////////////////////////////////////////////////////
//	
//	validates zip codes  usa and canadian.
//
//	usa - 5 numerics... canadian xxx xxx or xxxxxx. 3 pair alpha/number
//
///////////////////////////////////////////////////////////////////////////////

function validate_zip(zipin) {

	var zipper = zTrim(zipin.toUpperCase());
	switch(zipper.length){
		case 5:
			if(isNaN(Number(zipper))){return false;} 
			break;
		case 6:
			if(isNaN(Number(zipper.charAt(1)))) {return false;}
			if(isNaN(Number(zipper.charAt(3)))) {return false;}
			if(isNaN(Number(zipper.charAt(5)))) {return false;}
			if(zipper.charAt(0) < 'A' || zipper.charAt(0) > 'Z') {return false;}
			if(zipper.charAt(2) < 'A' || zipper.charAt(2) > 'Z') {return false;}
			if(zipper.charAt(4) < 'A' || zipper.charAt(4) > 'Z') {return false;}
			break;
		default:
			return false;
			break;
	}
	return true;
}	

function zTrim(s){
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}
