function ccc13(form) {
  factor = 3;
  sum = 0;
  if (form.numero.value.length!=12){
	alert("The ID Number you entered contains only " + form.numero.value.length + " digit(s). " + 
	      "\nThe EAN/UCC-13 ID Number requires that you enter 12 digits." +
		  "\n\nPlease check your number and try again." +
		  "\n\nIf you require more assitance, please contact Customer" + 
		  "\nService at 800-662-0601.");
	form.cc.value = ""
  } else {
	for (index = form.numero.value.length; index > 0; --index) {
	    sum = sum + form.numero.value.substring (index-1, index) * factor;
	    factor = 4 - factor;
  	}
  	leadingdigit(form);
  	cc = ((1000 - sum) % 10);
  	form.cc.value = cc;
  }
}

function ccc8(form) {
  factor = 3;
  sum = 0;
  if ((form.numero.value.length!=7) || (form.numero.value <= '2999999') && (form.numero.value >= '2000000') || (form.numero.value <= '0999999') ){
    if (form.numero.value.length!=7) {
		alert("The ID Number you entered contains only " + form.numero.value.length + " digit(s). " + 
		      "\nThe EAN/UCC-8 ID Number requires that you enter 7 digits." +
			  "\n\nPlease check your number and try again." +
			  "\n\nIf you require more assitance, please contact Customer" + 
			  "\nService at 800-662-0601.");
	} else {
		if ((form.numero.value <= '2999999') && (form.numero.value >= '2000000')) {
			alert("The EAN/UCC-8 ID Number cannot have a leading digit of two (2). " + 
				  "\n\nPlease check your number and try again." +
				  "\n\nIf you require more assitance, please contact Customer" + 
				  "\nService at 800-662-0601.");
		} else {
			alert("The EAN/UCC-8 ID Number cannot have a leading digit of zero (0)." + 
				  "\n\nPlease check your number and try again." +
				  "\n\nIf you require more assitance, please contact Customer" + 
				  "\nService at 800-662-0601.");		
		}
	}
	form.cc.value = ""
  } else {
  for (index = form.numero.value.length; index > 0; --index) {
    sum = sum + form.numero.value.substring (index-1, index) * factor;
    factor = 4 - factor;
	}
  cc = ((1000 - sum) % 10);
  form.cc.value = cc;
  }
}

function ccc12(form) {
  factor = 3;
  sum = 0;
  if (form.numero.value.length!=11){
	alert("The ID Number you entered contains only " + form.numero.value.length + " digit(s). " + 
	      "\nThe UCC-12 ID Number requires that you enter 11 digits." +
		  "\n\nPlease check your number and try again." +
		  "\n\nIf you require more assitance, please contact Customer" + 
		  "\nService at 800-662-0601.");
    form.cc.value = "" ;
	return;
  } else {
	for (index = form.numero.value.length; index > 0; --index) {
    sum = sum + form.numero.value.substring (index-1, index) * factor;
    factor = 4 - factor;
	}
  cc = ((1000 - sum) % 10);
  form.cc.value = cc;
  pcd(form);
  } 
}

function ccc14(form) {
  factor = 3;
  sum = 0;
  if (form.numero.value.length!=13){
	alert("The ID Number you entered contains only " + form.numero.value.length + " digit(s). " + 
	      "\nThe EAN/UCC-14 ID Number requires that you enter 13 digits." +
		  "\n\nPlease check your number and try again." +
		  "\n\nIf you require more assitance, please contact Customer" + 
		  "\nService at 800-662-0601.");
	form.cc.value = ""
  } else {
    for (index = form.numero.value.length; index > 0; --index) {
      sum = sum + form.numero.value.substring (index-1, index) * factor;
      factor = 4 - factor;
    }
  cc = ((1000 - sum) % 10);
  form.cc.value = cc
  }
}

function ccc18(form) {
  factor = 3;
  sum = 0;
  if (form.numero.value.length!=17){
	alert("The ID Number you entered contains only " + form.numero.value.length + " digit(s). " + 
	      "\nThe SSSC ID Number requires that you enter 17 digits." +
		  "\n\nPlease check your number and try again." +
		  "\n\nIf you require more assitance, please contact Customer" + 
		  "\nService at 800-662-0601.");
	form.cc.value = "";
  } else {
  for (index = form.numero.value.length; index > 0; --index) {
    sum = sum + form.numero.value.substring (index-1, index) * factor;
    factor = 4 - factor;
    }
  cc = ((1000 - sum) % 10);
  form.cc.value = cc
  }
}

function ccc17(form) {
  sum = 0;
  factor = 3;
  if (form.numero.value.length!=16) {
	alert("The ID Number you entered contains only " + form.numero.value.length + " digit(s). " + 
	      "\nThe B.O.L. ID Number requires that you enter 16 digits." +
		  "\n\nPlease check your number and try again." +
		  "\n\nIf you require more assitance, please contact Customer" + 
		  "\nService at 800-662-0601.");
	form.cc.value = "";
  } else {
  for (index = form.numero.value.length; index > 0; --index) {
    sum = sum + form.numero.value.substring(index-1, index) * factor;
	factor = 4 - factor;
    }
  cc = ((1000 - sum) % 10);
  form.cc.value = cc;
  }
}

function leadingdigit(form) {
  if (form.numero.value.substring(0,1) == 0) {
  	alert("By selecting 0 zero as your first digit, you are indicating" +
	      "\nthe use of a GS1 US assigned Company Prefix and Identifying a" +
		  "\nGlobal Location Number (GLN)");
  }
  if (form.numero.value.substring(0,1) > 0 ) {
  	alert("By selecting 1-9 as your first digit, you are" +
	      "\nindicating the use of an EAN assigned Company" + 
		  "\nPrefix and are identifying GTINs or GLNs");
  }
}

function pcd(form) {
  sum = 0;
  price_cd = 0;
  if (form.numero.value.substring(0,1) == 2) {
  	entered_cd = form.numero.value.substring(6,7);
    for (index = 7; index <= 8; ++index) {
	  switch (form.numero.value.substring(index, index+1))
	  {
	    case "0":
          sum = sum + 0;
		  break;
		case "1":
		  sum = sum + 2;
		  break;
		case "2":
          sum = sum + 4;
		  break;
		case "3":
          sum = sum + 6;
		  break;
		case "4":
          sum = sum + 8;
		  break;
		case "5":
          sum = sum + 9;
		  break;
		case "6":
          sum = sum + 1;
		  break;
		case "7":
          sum = sum + 3;
		  break;
		case "8":
          sum = sum + 5;
		  break;
		case "9":
          sum = sum + 7;
		  break;
	  }
    }
	switch (form.numero.value.substring(9, 10))
	{
	  case "0":
        sum = sum + 0;
		break;
	  case "1":
	    sum = sum + 3;
		break;
	  case "2":
        sum = sum + 6;
		break;
	  case "3":
        sum = sum + 9;
		break;
	  case "4":
        sum = sum + 2;
		break;
	  case "5":
        sum = sum + 5;
		break;
	  case "6":
        sum = sum + 8;
		break;
	  case "7":
        sum = sum + 1;
		break;
	  case "8":
        sum = sum + 4;
		break;
	  case "9":
        sum = sum + 7;
		break;
	}
	switch (form.numero.value.substring(10, 11))
	{
	  case "0":
        sum = sum + 0;
		break;
	  case "1":
	    sum = sum + 5;
		break;
	  case "2":
        sum = sum + 9;
		break;
	  case "3":
        sum = sum + 4;
		break;
	  case "4":
        sum = sum + 8;
		break;
	  case "5":
        sum = sum + 3;
		break;
	  case "6":
        sum = sum + 7;
		break;
	  case "7":
        sum = sum + 2;
		break;
	  case "8":
        sum = sum + 6;
		break;
	  case "9":
        sum = sum + 1;
		break;
	}
  price_cd = (sum*3) % 10
  if (entered_cd != price_cd) {
    alert("The price check digit of the number you entered is incorrect. " +
	      "You entered a " + entered_cd + "\nbut the correct price check digit is " + price_cd + ". " + 
	      "See the Price Check Digit section below, \nthe Guidelines for Supply Chain Identification Section 3.1,  or " +
	      "contact Customer \nService for assistance at 800-662-0601");
	form.cc.value = "";
    }
  }
}
