function partsValCheck(passForm) {

  var checkOK = "0123456789";
  var checkStr = passForm.quantity.value;
  var allValid = true;
  
  for (iv2 = 0;  iv2 < checkStr.length;  iv2++)
  {
    ch = checkStr.charAt(iv2);
    for (jv = 0;  jv < checkOK.length;  jv++)
      if (ch == checkOK.charAt(jv))
        break;
    if (jv == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  
  if (!allValid)
  {
    alert("Please enter only digit characters in the \"Quantity\" field.");
    passForm.quantity.focus();
	passForm.quantity.select();
    return (false);
  }
  // Radio Button Validation
// copyright Stephen Chapman, 15th Nov 2004,14th Sep 2005
// you may copy this function but please keep the copyright notice with it
//function valButton(btn) {
    var cnt = -1;
    for (var i=passForm.mUsed.length-1; i > -1; i--) {
        if (passForm.mUsed[i].checked) {cnt = i; i = -1;}
    }
    if (cnt == -1)
	{
    alert("Please enter a Part Type in the \"Type\" field.");
    //passForm.partNew.focus();
	//passForm.partNew.select();
    return (false);
	}
//}
   // ADD addedShippingText.value validation if standardShipping == 1               

  if (passForm.price.value.length == "")
  {
    alert("Please enter a value for the \"Unit Price\" field.");
    passForm.price.focus();
	passForm.price.select();
    return (false);
  }

  if (passForm.price.value == 0)
  {
    alert("Please enter a value for the \"Unit Price\" field.");
    passForm.price.focus();
	passForm.price.select();
    return (false);
  }

  if (passForm.quantity.value.length == "")
  {
    alert("Please enter a value in the \"Quantity\" field.");
    passForm.quantity.focus();
	passForm.quantity.select();
    return (false);
  }
  
  var checkPriceOK = "0123456789.,";
  var checkPriceStr = passForm.price.value;
  var allPriceValid = true;
  var checkPriceNumber = 0;
  var exitLoop = true;
  
 for (ystep = 0; ystep < 4; ystep++)
 { 
	if (ystep == 1)
	{
	  checkPriceStr = passForm.core.value;
	  checkPriceNumber = 1;
	}
	if (ystep == 2)
	{
	  checkPriceStr = passForm.cost.value;
	  checkPriceNumber = 2;
	}
	if (ystep == 3)
	{
	  checkPriceStr = passForm.addedShippingText.value;
	  checkPriceNumber = 3;
	}
  for (iv2 = 0;  iv2 < checkPriceStr.length;  iv2++)
  {
    ch = checkPriceStr.charAt(iv2);
    for (jv = 0;  jv < checkPriceOK.length;  jv++)
      if (ch == checkPriceOK.charAt(jv))
        break;
    if (jv == checkPriceOK.length)
    {
      allPriceValid = false;
	  exitLoop = false;
      break;
    }
   }
   if (!exitLoop)
   {
   break;
   }
 }
  
  if (!allPriceValid)
  {
	if (checkPriceNumber == 1)
	{
      alert("Please enter only digit, and . characters in the \"Core Price\" field.");
      passForm.core.focus();
	  passForm.core.select();
      return (false);
	}
	if (checkPriceNumber == 2)
	{
      alert("Please enter only digit, and . characters in the \"Cost Price\" field.");
      passForm.cost.focus();
	  passForm.cost.select();
      return (false);
	}
	if (checkPriceNumber == 3)
	{
      alert("Please enter only digit, and . characters in the \"Added Shipping Price\" field.");
      passForm.addedShippingText.focus();
	  passForm.addedShippingText.select();
      return (false);
	}
      alert("Please enter only digit, and . characters in the \"Unit Price\" field.");
      passForm.price.focus();
	  passForm.price.select();
      return (false);
  }
}

function valCheck(passForm) {
 //alert("You reached ValCheck(this)!!");

  if (passForm.UserName.value.length == "")
  {
    alert("Please enter a Username.");
    passForm.UserName.focus();
	passForm.UserName.select();
    return (false);
  }

  if (passForm.Password.value.length == "")
  {
    alert("Please enter a Password.");
    passForm.Password.focus();
	passForm.Password.select();
    return (false);
  }

  if (passForm.ConfirmPassword.value.length == "")
  {
    alert("Please confirm your Password.");
    passForm.ConfirmPassword.focus();
	passForm.ConfirmPassword.select();
    return (false);
  }

  if (passForm.ConfirmPassword.value != passForm.Password.value)
  {
    alert("Your two password entries do not match.");
    passForm.ConfirmPassword.focus();
	passForm.ConfirmPassword.select();
    return (false);
  }

  if (passForm.FullName.value.length == "")
  {
    alert("Please enter a Name.");
    passForm.FullName.focus();
	passForm.FullName.select();
    return (false);
  }

  if (passForm.Email.value.length == "")
  {
    alert("Please enter an Email address.");
    passForm.Email.focus();
    passForm.Email.select();
    return (false);
  }

// Check for Valid eMail Address

	checkStr = passForm.Email.value;
	allValidEmail = false;
	period = 0;
	atSign = 0;
  for (iv = 0;  iv < checkStr.length;  iv++)
  {
    ch = checkStr.charAt(iv);
    if (ch == ".") 
    {
	period = 1
    }
    if (ch == "@") 
    {
	atSign = 1
    }
  }
    if ((period + atSign) >= 2)
    {
      allValidEmail = true;
    }

  if (!allValidEmail)
  {
    alert("Please enter a valid Email address.");
    passForm.Email.focus();
    passForm.Email.select();
    return (false);
  }
// ***************************** Phone Validation
//alert("You reached this far!!!!");
var digits = "0123456789";
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 = 10;
var Phone=passForm.Phone
	
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);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
	if ((Phone.value==null)||(Phone.value=="")){
		alert("Please Enter your Phone Number")
		Phone.focus()
		return false
	}

	if (checkInternationalPhone(Phone.value)==false){
		alert("Please Enter a Valid Phone Number")
		Phone.value=""
		Phone.focus()
		return false
	}
// ***************************** End Phone Validation

  if (passForm.Address1.value.length == "")
  {
    alert("Please enter an Address.");
    passForm.Address1.focus();
	passForm.Address1.select();
    return (false);
  }

  if (passForm.City.value.length == "")
  {
    alert("Please enter a City.");
    passForm.City.focus();
    passForm.City.select();
    return (false);
  }

  if (passForm.Country.value == "UnitedStates" && passForm.State.value == "NA")
  {
    alert("United States residents must enter a State.");
    passForm.State.focus();
//    passForm.State.select();
    return (false);
  }

  if (passForm.Country.value == "Canada" && passForm.State.value == "NA")
  {
    alert("Canadian residents must enter a Provence.");
    passForm.State.focus();
//    passForm.State.select();
    return (false);
  }
//  alert("You reached this far!!!!");
//return (false);

  if (passForm.PostalCode.value.length == "" && passForm.Country.value == "UnitedStates")
  {
    alert("Please enter a Zip Code.");
    passForm.PostalCode.focus();
	passForm.PostalCode.select();
    return (false);
  }

  if (passForm.PostalCode.value.length != "" && passForm.Country.value == "UnitedStates")
  {
	var field = passForm.PostalCode.value;
//	var field = document.form1.PostalCode.value;
	var valid = "0123456789-";
	var hyphencount = 0;

	if (field.length!=5 && field.length!=10) {
		alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return (false);
	}

	for (var it=0; it < field.length; it++) {
		temp = "" + field.substring(it, it+1);
		if (temp == "-") hyphencount++;
			if (valid.indexOf(temp) == "-1") {
				alert("Invalid characters in your zip code.  Please try again.");
				return (false);
			}

		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
			alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return (false);
		}
	}
	
  } 
  
//  function isPostCode(entry){ // CANADIAN CODES ONLY
  if (passForm.PostalCode.value.length == "" && passForm.Country.value == "Canada") {
		alert("Please enter a Postal Code.");
		return false;
    }

  if (passForm.PostalCode.value.length != "" && passForm.Country.value == "Canada") {
	var strlen=passForm.PostalCode.value.length;
	
	if(strlen!=6) {
		alert("Please enter a 6 digit Postal Code.");
		return false;
    }
	var entry=passForm.PostalCode.value.toUpperCase();    // in case of lowercase characters
// Check for legal characters in string - note index starts at zero
	if('ABCEGHJKLMNPRSTVXY'.indexOf(entry.charAt(0))<0) {
		alert("Please enter a correct Postal Code.");
		return false;
	}
	if('0123456789'.indexOf(entry.charAt(1))<0) {
		alert("Please enter a correct Postal Code.");
		return false;
	}
	if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2))<0) {
		alert("Please enter a correct Postal Code.");
		return false;
	}
	if('0123456789'.indexOf(entry.charAt(3))<0) {
		alert("Please enter a correct Postal Code.");
		return false;
	}
	if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4))<0) {
		alert("Please enter a correct Postal Code.");
		return false;
	}
	if('0123456789'.indexOf(entry.charAt(5))<0) {
		alert("Please enter a correct Postal Code.");
		return false;
	}
  }
//  alert("You reached this far!!!!");
//  return (false);
  
  return (true);
}

//	******************** TextArea Length Controls

function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}

function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>0</span>&nbsp;of&nbsp;'+x[i].getAttribute('maxlength')+'&nbsp;characters&nbsp;used';
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onkeyup();
		}
	}
}

function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
		this.relatedElement.className = 'toomuch';
	else
		this.relatedElement.className = 'nottomuch';
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}