/*  This script is designed to be called with <script src="/codelib/js/form_valid/cnPhoneZipCheck.js" language="JavaScript"></script
> Therefore there are no <script> tags here. */
/*  this script is used in Results, Prof (GS long form), Getting Started (Final Steps), SULP */
function strip_spaces(mystr) {
  var newstring = "";
  if (mystr.indexOf(' ') != -1) {
    string = mystr.split(' ');
    for (var i=0; i<string.length ;i++) {
      newstring += string[i];
    }
    return newstring;
  } else { 
    return mystr; 
  }
}

function validateCN(field) {
var valid = "0123456789";


if (field.length!=6 && field.length!=4) {
return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") {
		return false;
	}
}
return true;
}

function validatePhone(field) {

var valid = "0123456789-";
var hyphencount = 0;

for (var i=0; i < field.length; i++) {
   temp = "" + field.substring(i, i+1);
   if (temp == "-" ) {
      if (i!=3) {
         return false;
      } else {   
        hyphencount++; 
      }  
   }   
   if (valid.indexOf(temp) == "-1") {
      return false;
   }
}
if ((hyphencount == 0) && (field.length!=7)) {
   return false;
}
if ((hyphencount > 0) && (field.length!=8)) {
      return false;
}
return true;
}

function validateAreacode(field) {

var valid = "0123456789";

for (var i=0; i < field.length; i++) {
   temp = "" + field.substring(i, i+1);
     
   if (valid.indexOf(temp) == "-1") {
      return false;
   }
}
if (field.length!=3) {
   return false;
}

return true;
}

function validateZIP(field) {

var valid = "0123456789-";
var hyphencount = 0;
field=strip_spaces(field); 
if (field.length!=5 && field.length!=10) {
return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") {
   hyphencount++;
   if (field.length != 10) {
      return false;
   }   
}   
if (valid.indexOf(temp) == "-1") {
return false;
}
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
return false;
   }
}

return true;
}

function validateCanada(entry) {
	
	entry=entry.toUpperCase();        // in case of lowercase characters
	entry=strip_spaces(entry); 		  // in case of whitespace before or after	
	strlen = entry.length; 
	if (strlen == 6) {
		// no space expected
		// Check for legal characters in string - note index starts at zero
		if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(0)) < 0) {return false;}
		if ('0123456789'.indexOf(entry.charAt(1)) < 0) {return false;}
		if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2)) < 0) {return false;}
		if ('0123456789'.indexOf(entry.charAt(3)) < 0) {return false;}
		if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4)) < 0) {return false;}
		if ('0123456789'.indexOf(entry.charAt(5)) < 0) {return false;}
	} else if (strlen == 7) {
		// space expected
		// Check for legal characters in string - note index starts at zero
		if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(0)) < 0) {return false;}
		if ('0123456789'.indexOf(entry.charAt(1)) < 0) {return false;}
		if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2)) < 0) {return false;}
		if (' '.indexOf(entry.charAt(3)) < 0) {return false;}
		if ('0123456789'.indexOf(entry.charAt(4)) < 0) {return false;}
		if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(5)) < 0) {return false;}
		if ('0123456789'.indexOf(entry.charAt(6)) < 0) {return false;}
	} else {
	  // length is invalid - needs to be 6 or 7
	  return false;
	}
	return true;  
}

function validateZIPcanada(field, state) {
//use this function if Canada included - will not validate if Canadian province
var canada = new Array();
canada = ["AB","BC","MB","NB","NL","NT","NS", "NU","ON","PE","QC","SK","YT"];
for (var i=0; i<canada.length; i++) {
   if (state==canada[i]) {
     return true;
   }
}   
var valid = "0123456789-";
var hyphencount = 0;

if (field.length!=5 && field.length!=10) {
return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") {
   hyphencount++;
   if (field.length != 10) {
      return false;
   }   
}   
if (valid.indexOf(temp) == "-1") {
return false;
}
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
return false;
   }
}

return true;
}
// Declaring required variables for phone check
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 = 6;

// Maximum no of digits in an international phone no.
var maxDigitsInIPhoneNumber = 10;

//functions used in phone check
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 checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
//alert ('s= '+s);
if (s.length < minDigitsInIPhoneNumber || s.length > maxDigitsInIPhoneNumber) {
  return false;
} else {  
   return (isInteger(s));
}   
}
function checkInternationalCode(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
//alert ('s= '+s);
 
   return (isInteger(s));
  
}


