var isNetscape;
if (navigator.appName == 'Netscape')
  isNetscape = true;
else
  isNetscape = false;


function emailCheck (emailStr) {
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
	return false;
    exit;
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    return false;
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
		return false;
	    }
    }
    return true;
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
    return false;
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {
   return false;
}

if (len<2) {
   return false;
}
return true;
}


function validate_cc_interface(){
	if(document.cc_interface.cc_type.value == ""){
		alert("Please enter your Credit Card Type.");
		document.cc_interface.cc_type.focus();
		document.cc_interface.cc_type.select();
		return false;
    	}
	if(document.cc_interface.cc_name.value == ""){
		alert("Please enter the Name on Card.");
		document.cc_interface.cc_name.focus();
		document.cc_interface.cc_name.select();
		return false;
    	}
	if(document.cc_interface.cc_number.value !== "last4"){
		if(document.cc_interface.cc_number.value.length < 12){
			alert("Please enter your Credit Card Number.");
			document.cc_interface.cc_number.focus();
			return false;
	    	}
    	}
	if(document.cc_interface.cc_exp_mo.value == ""){
		alert("Please enter the Expiration month.");
		document.cc_interface.cc_exp_mo.focus();
		return false;
    	}
	if(document.cc_interface.cc_exp_yr.value == ""){
		alert("Please enter the Expiration Year.");
		document.cc_interface.cc_exp_yr.focus();
		return false;
    	}
	if(document.cc_interface.cc_cv2.value == ""){
		alert("Please enter the CV2 Number from the back of your card.");
		document.cc_interface.cc_cv2.focus();
		document.cc_interface.cc_cv2.select();
		return false;
    	}
	if(document.cc_interface.cc_address1.value == ""){
		alert("Please enter your Address.");
		document.cc_interface.cc_address1.focus();
		document.cc_interface.cc_address1.select();
		return false;
    	}
	if(document.cc_interface.cc_city.value == ""){
		alert("Please enter your City.");
		document.cc_interface.cc_city.focus();
		document.cc_interface.cc_city.select();
		return false;
    	}
	if(document.cc_interface.cc_state.value == "0"){
		alert("Please select your State.");
		document.cc_interface.cc_state.focus();
		return false;
    	}
	if(document.cc_interface.cc_country.value == "0"){
		alert("Please select your Country.");
		document.cc_interface.cc_country.focus();
		return false;
    	}
	if (document.cc_interface.cc_country.value == "US") {
		if(document.cc_interface.cc_state.value == "0"){
			alert("Please select your State.");
			document.cc_interface.cc_state.focus();
			return false;
	    	}
		}
	if (document.cc_interface.cc_country.value == "CA") {
		if(document.cc_interface.cc_state.value == "0"){
			alert("Please select your Province.");
			document.cc_interface.cc_state.focus();
			return false;
	    	}
		}
	if (document.cc_interface.cc_country.value == "CA") {
		if(document.cc_interface.cc_zip.value == ""){
			alert("Please enter your Postal Code.");
			document.cc_interface.cc_zip.focus();
			document.cc_interface.cc_zip.select();
			return false;
	    	}
		}
	if (document.cc_interface.cc_country.value == "US") {
		if(document.cc_interface.cc_zip.value == ""){
			alert("Please enter your Postal Code.");
			document.cc_interface.cc_zip.focus();
			document.cc_interface.cc_zip.select();
			return false;
	    	}
		}
}


function validate_register(){
	if(document.register.firstname.value == ""){
		alert("Please enter your First Name.");
		document.register.firstname.focus();
		document.register.firstname.select();
		return false;
    	}
	if(document.register.lastname.value == ""){
		alert("Please enter your Last Name.");
		document.register.lastname.focus();
		document.register.lastname.select();
		return false;
    	}
	var email_Str = document.register.username.value; 
    if (emailCheck(email_Str) == 0) {
		alert("Please enter a valid Email Address.");
		document.register.username.focus();
		document.register.username.select();
		return false;
    	}
	var email_Str1 = document.register.username1.value; 
    if (emailCheck(email_Str) == 0) {
		alert("Please enter a valid Email Address.");
		document.register.username1.focus();
		document.register.username1.select();
		return false;
    	}
	if(document.register.username.value !== document.register.username1.value){
		alert("Usernames do not match.");
		document.register.username.focus();
		document.register.username.select();
		return false;
    	}
	if(document.register.password.value == ""){
		alert("Please enter a Password.");
		document.register.password.focus();
		document.register.password.select();
		return false;
    	}
	if(document.register.password1.value !== document.register.password.value){
		alert("Passwords do not match.");
		document.register.password1.focus();
		document.register.password1.select();
		return false;
    	}
	if(document.register.address1.value == ""){
		alert("Please enter your Address.");
		document.register.address1.focus();
		return false;
    	}
	if(document.register.city.value == ""){
		alert("Please enter your City.");
		document.register.city.focus();
		document.register.city.select();
		return false;
    	}
	if(document.register.country.value == ""){
		alert("Please select your Country.");
		document.register.country.focus();
		return false;
    	}
	if (document.register.country.value == "US") {
		if(document.register.state.value == "0"){
			alert("Please select your State.");
			document.register.state.focus();
			return false;
	    	}
		}
	if (document.register.country.value == "CA") {
		if(document.register.state.value == "0"){
			alert("Please select your Province.");
			document.register.state.focus();
			return false;
	    	}
		}
	if (document.register.country.value == "CA") {
		if(document.register.zip.value == ""){
			alert("Please enter your Postal Code.");
			document.register.zip.focus();
			document.register.zip.select();
			return false;
	    	}
		}
	if (document.register.country.value == "US") {
		if(document.register.zip.value == ""){
			alert("Please enter your Postal Code.");
			document.register.zip.focus();
			document.register.zip.select();
			return false;
	    	}
		}
	if(document.register.carrierName.value == "0"){
		alert("Please select your Carrier Name.");
		document.register.carrierName.focus();
		return false;
    	}
	if(document.register.hear.value == "0"){
		alert("Please tell us how you heard of FCmobilelife.");
		document.register.hear.focus();
		return false;
    	}
}


function validate_update(){
	if(document.update.firstname.value == ""){
		alert("Please enter your First Name.");
		document.update.firstname.focus();
		document.update.firstname.select();
		return false;
    	}
	if(document.update.lastname.value == ""){
		alert("Please enter your Last Name.");
		document.update.lastname.focus();
		document.update.lastname.select();
		return false;
    	}
	var email_Str = document.update.username.value; 
    if (emailCheck(email_Str) == 0) {
		alert("Please enter a valid Email Address.");
		document.update.username.focus();
		document.update.username.select();
		return false;
    	}
	if(document.update.address1.value == ""){
		alert("Please enter your Address.");
		document.update.address1.focus();
		return false;
    	}
	if(document.update.city.value == ""){
		alert("Please enter your City.");
		document.update.city.focus();
		document.update.city.select();
		return false;
    	}
	if(document.update.country.value == ""){
		alert("Please select your Country.");
		document.update.country.focus();
		return false;
    	}
	if (document.update.country.value == "US") {
		if(document.update.state.value == "0"){
			alert("Please select your State.");
			document.update.state.focus();
			return false;
	    	}
		}
	if (document.update.country.value == "CA") {
		if(document.update.state.value == "0"){
			alert("Please select your Province.");
			document.update.state.focus();
			return false;
	    	}
		}
	if (document.update.country.value == "CA") {
		if(document.update.zip.value == ""){
			alert("Please enter your Postal Code.");
			document.update.zip.focus();
			document.update.zip.select();
			return false;
	    	}
		}
	if (document.update.country.value == "US") {
		if(document.update.zip.value == ""){
			alert("Please enter your Postal Code.");
			document.update.zip.focus();
			document.update.zip.select();
			return false;
	    	}
		}
	if(document.update.carrierName.value == "0"){
		alert("Please select your Carrier Name.");
		document.update.carrierName.focus();
		return false;
    	}
}


function validate_resetpass(){
	if(document.resetpass.username.value == ""){
		alert("Please enter your Username.");
		document.resetpass.username.focus();
		document.resetpass.username.select();
		return false;
    	}
}


function validate_selectplan(){
	if(document.selectplan.select_plan[0].checked == false &&
	document.selectplan.select_plan[1].checked == false &&
	document.selectplan.select_plan[2].checked == false &&
	document.selectplan.select_plan[3].checked == false ){
		alert("Please select a Service Plan.");
//		document.selectplan.select_plan.focus();
//		document.selectplan.select_plan.select();
		return false;
    	}
}

function validate_login(){
	var email_Str = document.login.uname.value; 
    if (emailCheck(email_Str) == 0) {
		alert("Please Enter a Valid Email Address. FCmobilelife will use your Email Address as your Username.");
		document.login.uname.focus();
		document.login.uname.select();
		return false;
    	}
}

function editMask(eBox, evt, mask)
{
  var i,j=0;
  var ch;
  var oldValue=eBox.value;
  var key;
  
  if (isNetscape)
  {
    key = evt.which;
  }
  else
  {
    key = evt.keyCode;
  }

  // Check for the Delete (BKSP) Key.  The "key" variable will have a value of 8.
  if (key != 8)
  {
    oldValue += String.fromCharCode(key);
  }
  else
  {
    // For Netscape, when the BKSP is hit we should just set key to 0.
    key = 0;
  }
  
  eBox.value = applyEditMask(oldValue, mask);
  
  // Need to return TRUE if a key like TAB was hit.
  return ((isNetscape) && (key == 0));
}
function setValueWithMask(targetField, srcValue, mask)
{
  targetField.value = applyEditMask(srcValue, mask);
}
function applyEditMask(inString, mask)
{
  var outString = '';
  var i,j=0;
  var ch;
  
  for (i=0; i < mask.length; i++)
  {
    var mch = mask.charAt(i);
    
    if (j < inString.length)
    {
      ch = inString.charAt(j);
      
      switch (mch)
      {
        case "A":
          if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
          {
            outString += ch;
          }
          j++;
          break;
        case "N":
          if (ch >= '0' && ch <= '9')
          {
            outString += ch;
          }
          j++;
          break;
        case "X":
          outString += ch;
          j++;
          break;
        case "!":
          if (ch >= 'A' && ch <= 'Z')
          {
            outString += ch;
          }
          else if (ch >= 'a' && ch <= 'z')
          {
            outString += (ch + 'A' - 'a');
          }
          j++;
          break;
        case "#":
          if ((ch >= '0' && ch <= '9') || ch == '$' || ch == '+' || ch == '-' || ch == '.')
          {
            outString += ch;
          }
          j++;
          break;
        default:
          // The current mask character is a literal that MUST be present in the
          // current location.
          if (mch == ch)
          {
            // Skip the current character in the input string if it matches
            // the mask literal.
            j++;
          }
          outString += mch;
      }
    }
  }
  
  return outString;
}







