//many thanks to Sutternow.com for the phone mask!

function isEmpty(string)
{
   if(string == null || string == "" || string == " "){
    return true
   }
   return false
}

function phoneMask()
  {
	var sMask = "01234567890";
	var KeyTyped = String.fromCharCode(window.event.keyCode);
	var srcObject = window.event.srcElement;
	if (window.event.keyCode != 8)
	window.status = "";
	{
	 if (sMask.indexOf(KeyTyped.toString()) == -1)
		{
		 		window.event.keyCode = 0;
				window.status = "Please enter a valid phone number";
				return false;
		}
	}
   /*
    * The varible "frigger is used because" the friggen DOM
    *does not expose length via window.event.srcElement.length
    */
	frigger = document.getElementById(window.event.srcElement.id);
	keyCount = frigger.value.length;
    //var tmpStr = "(";

    keyEntered = KeyTyped;
    keyCount++;
    switch (keyCount)
    {
    /*case 2:
      tmpStr += srcObject.value;
      srcObject.value = tmpStr;
      break;
	*/
    case 4:
      srcObject.value += "-";
      break;
    case 8:
      srcObject.value += "-";
      break;
      }
 }

function postalMask(event, sMask, form) {

	var KeyTyped = String.fromCharCode(getKeyCode(event));
	var targ = getTarget(event);
	var keyCount = targ.value.length;

	if (keyCount == 3)
	{
          //document.forms[0].postal.value += " ";
          document.forms[0].postal.value += " ";
	   //return true;
           keyCount++;
        }

	if (sMask.charAt(keyCount) == KeyTyped)
    	{
		return true;
	}

	if ((sMask.charAt(keyCount) == '1') && isNum(KeyTyped))
	   return true;

	if ((sMask.charAt(keyCount) == 'A') && isAlpha(KeyTyped))
          return true;

    return false;


}

function getTarget(e) {
  // IE5
   if (e.srcElement) {
   	return e.srcElement;
   }
    if (e.target) {
   	return e.target;
   }
 }

function getKeyCode(e) {
 //IE5
 if (e.srcElement) {
 	return e.keyCode
 }
  // NC5
  if (e.target) {
   return e.which
  }
 }

function isNum(c)
{
	var sNumbers = "01234567890";
	if (sNumbers.indexOf(c) == -1)
		return false;
	else return true;

}

function isAlpha(c)
{
	var lCode = c.charCodeAt(0);
	if (lCode >= 65 && lCode <= 122 )
 	  {
		return true;
         }
	else
	return false;
}

/*function zipMask()
  {
	var sMask = "01234567890";
	var KeyTyped = String.fromCharCode(window.event.keyCode);
	var srcObject = window.event.srcElement;
	if (window.event.keyCode != 8)
	window.status = "";
	{
	 if (sMask.indexOf(KeyTyped.toString()) == -1)
		{
		 		window.event.keyCode = 0;
				window.status = "Please enter a valid zip code";
				return false;
		}
	}
}
*/
//Validate all inputted codes for correct format

function isPhone(string) {
	//if(!isEmpty(document.forms[0].phone.value)) {
		if (string.search(/^(\d{3})|\d{3}-\d{4}$/) != -1)
			return true;
		else
			return false;
		//}
		//return true;
}

function isFax(string) {
	if(!isEmpty(document.forms[0].fax.value)) {
		if (string.search(/^(\d{3})|\d{3}-\d{4}$/) != -1)
			return true;
		else
			return false;
		}
		return true;
}

/*function isPostal(string) {
	if(!isEmpty(document.forms[0].postal.value)) {
		if (string.search(/^(\w{6})$/) != -1)
			return true;
		else
			return false;
		}
		return true;
}
*/

function isEmail(string) {
	if(!isEmpty(document.forms[0].email.value)) {
    	if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        	return true;
    	else
        	return false;
	}
	return true;
}

function postalorForeign(string) {
	if(isEmpty(document.forms[0].postal.value)) {
		if(isEmpty(document.forms[0].foreigncode.value))
			return false;
		else
			return true;
	}
	return true;
}

function postalForeignBoth(string) {
	if(!isEmpty(document.forms[0].postal.value)) {
		if(!isEmpty(document.forms[0].foreigncode.value))
			return false;
		else
			return true;
	}
	return true;
}

function companyorName(string) {
	if(isEmpty(document.forms[0].company.value)) {
		if(isEmpty(document.forms[0].lname.value) && isEmpty(document.forms[0].fname.value))
			return false;
		else
			return true;
	}
	return true;
}


function Validate(form) {
	if (!companyorName(form.company.value)) {
	    alert("You must enter a contact name, either company or name or both.")
		form.fname.focus();
		return false;
		}
	if (isEmpty(form.add1.value)) {
	    alert("Please enter an address.")
		form.add1.focus();
		return false;
		}
	if (isEmpty(form.city.value)) {
	    alert("Please enter a city.")
		form.city.focus();
		return false;
		}
	if (!postalForeignBoth(form.postal.value)) {
	    alert("You cannot have both a postal code and a foreign code.")
		form.foreigncode.focus();
		return false;
		}
	if (!postalorForeign(form.postal.value)) {
	    alert("Please enter a postal code or a foreign code.")
		form.postal.focus();
		return false;
		}
/*	if (!isPostal(form.postal.value)) {
        alert("The postal code is not formatted correctly.");
        form.postal.focus();
        return false;
    	}
*/
	if (isEmpty(form.phone.value)) {
	    alert("Please enter a phone number.")
		form.phone.focus();
		return false;
		}
	if (!isPhone(form.phone.value)) {
        alert("The phone number is not formatted correctly.");
        form.phone.focus();
        return false;
    }
	if (!isFax(form.fax.value)) {
        alert("The fax number is not formatted correctly.");
        form.fax.focus();
        return false;
    }
	if (!isEmail(form.email.value)) {
        alert("Please enter a valid email address.");
        form.email.focus();
        return false;
    }
	if (isEmpty(form.labeltype.value)) {
	    alert("Please enter a labeltype.")
		form.labeltype.focus();
		return false;
		}
    return true;
}
