function valCombo(ControlName, Control, DisallowFirstItem) {
	if (DisallowFirstItem && Control.selectedIndex == 0) {
		alert("Invalid selection");
		return (false);
	}
	return(true);
}

function valText(ControlName, Text, AllowedChars, isRequired, MinLen, MaxLen, DefaultText) {
   if (Text == DefaultText && isRequired)
   {
      alert("Please enter a value for the \"" + ControlName + "\" field.");
      return (false);
   }
   if (MinLen != -1 && Text.length < MinLen)
   {
      alert("Please enter at least "+ MinLen +" characters in the \"" + ControlName + "\" field.");
      return (false);
   }
   if (MaxLen != -1 && Text.length > MaxLen)
   {
      alert("Please enter at most "+ MaxLen +" characters in the \"" + ControlName + "\" field.");
      return (false);
   }
   var checkOK = AllowedChars ; 
   var checkStr = Text;
   var allValid = true;
   for (i = 0;  i < checkStr.length;  i++)
   {
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j)) break;
      if (j == checkOK.length)
      {
         allValid = false;
         break;
      }
   }
   if (!allValid)
   {
      alert("Please enter only valid characters in the \"" + ControlName + "\" field.");
      return (false);
   }
   return (true);
}

function valEMail(ControlName, email, isRequired, MinLen, MaxLen, DefaultText) {
	if (!valText(ControlName, email, "ACDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890@_-.", isRequired, MinLen, MaxLen, DefaultText)) return (false);
//	if (DefaultText==undefined) DefaultText="";
   if (email == DefaultText && !isRequired) return(true);
	tmpEmail = String(email);
	
	tmpArrayAt = tmpEmail.split("@")
	if (tmpArrayAt.length<=1 || tmpArrayAt.length>2 || tmpArrayAt[0]=="") {
		alert("Email address seems incorrect (check @'s)");
		return (false);
	}

	tmpArrayDot = tmpArrayAt[1].split(".")
	if (tmpArrayDot[0]=="" || tmpArrayDot.length<=1) {
		alert("Email address seems incorrect (check .'s)");
		return (false);
	}
	for (i=0;i<tmpArrayDot.length;i++) {
		if (tmpArrayDot[i]=="") {
			alert("Email address seems incorrect (check .'s)");
			return (false);
		}
	}
	
	if (!isTopLevelDomain(tmpArrayDot[tmpArrayDot.length-1])) {
		alert("Invalid email domain");
		return (false)
	}
	return (true);
}
function isTopLevelDomain(domain) {
	domain = String(domain).toUpperCase();
	
	var asTopLevels = new Array(251);
	var ictr, iNumDomains = 251, bAns = false;

	//Obtained from www.IANA.com.  Can and will change
	asTopLevels[0] = "COM";	asTopLevels[1] = "ORG";	asTopLevels[2] = "NET";	asTopLevels[3] = "EDU";	asTopLevels[4] = "GOV";	asTopLevels[5] = "MIL";	asTopLevels[6] = "INT";	asTopLevels[7] = "AF";	asTopLevels[8] = "AL";	asTopLevels[9] = "DZ";	
	asTopLevels[10] = "AS";	asTopLevels[11] = "AD";	asTopLevels[12] = "AO";	asTopLevels[13] = "AI";	asTopLevels[14] = "AQ";	asTopLevels[15] = "AG";	asTopLevels[16] = "AR";	asTopLevels[17] = "AM";	asTopLevels[18] = "AW";	asTopLevels[19] = "AC";
	asTopLevels[20] = "AU";	asTopLevels[21] = "AT";	asTopLevels[22] = "AZ";	asTopLevels[23] = "BS";	asTopLevels[24] = "BH";	asTopLevels[25] = "BD";	asTopLevels[26] = "BB";	asTopLevels[27] = "BY";	asTopLevels[28] = "BZ";	asTopLevels[29] = "BT";
	asTopLevels[30] = "BJ";	asTopLevels[31] = "BE";	asTopLevels[32] = "BM";	asTopLevels[33] = "BO";	asTopLevels[34] = "BA";	asTopLevels[35] = "BW";	asTopLevels[36] = "BV";	asTopLevels[37] = "BR";	asTopLevels[38] = "IO";	asTopLevels[39] = "BN";
	asTopLevels[40] = "BG";	asTopLevels[41] = "BF";	asTopLevels[42] = "BI";	asTopLevels[43] = "KH";	asTopLevels[44] = "CM";	asTopLevels[45] = "CA";	asTopLevels[46] = "CV";	asTopLevels[47] = "KY";	asTopLevels[48] = "CF";	asTopLevels[49] = "TD";
	asTopLevels[50] = "CL";	asTopLevels[51] = "CN";	asTopLevels[52] = "CX";	asTopLevels[53] = "CC";	asTopLevels[54] = "CO";	asTopLevels[55] = "KM";	asTopLevels[56] = "CD";	asTopLevels[57] = "CG";	asTopLevels[58] = "CK";	asTopLevels[59] = "CR";
	asTopLevels[60] = "CI";	asTopLevels[61] = "HR";	asTopLevels[62] = "CU";	asTopLevels[63] = "CY";	asTopLevels[64] = "CZ";	asTopLevels[65] = "DK";	asTopLevels[66] = "DJ";	asTopLevels[67] = "DM";	asTopLevels[68] = "DO";	asTopLevels[69] = "TP";
	asTopLevels[70] = "EC";	asTopLevels[71] = "EG";	asTopLevels[72] = "SV";	asTopLevels[73] = "GQ";	asTopLevels[74] = "ER";	asTopLevels[75] = "EE";	asTopLevels[76] = "ET";	asTopLevels[77] = "FK";	asTopLevels[78] = "FO";	asTopLevels[79] = "FJ";
	asTopLevels[80] = "FI";	asTopLevels[81] = "FR";	asTopLevels[82] = "GF";	asTopLevels[83] = "PF";	asTopLevels[84] = "TF";	asTopLevels[85] = "GA";	asTopLevels[86] = "GM";	asTopLevels[87] = "GE";	asTopLevels[88] = "DE";	asTopLevels[89] = "GH";
	asTopLevels[90] = "GI";	asTopLevels[91] = "GR";	asTopLevels[92] = "GL";	asTopLevels[93] = "GD";	asTopLevels[94] = "GP";	asTopLevels[95] = "GU";	asTopLevels[96] = "GT";	asTopLevels[97] = "GG";	asTopLevels[98] = "GN";	asTopLevels[99] = "GW";
	asTopLevels[100] = "GY";	asTopLevels[101] = "HT";	asTopLevels[102] = "HM";	asTopLevels[103] = "VA";	asTopLevels[104] = "HN";	asTopLevels[105] = "HK";	asTopLevels[106] = "HU";	asTopLevels[107] = "IS";	asTopLevels[108] = "IN";	asTopLevels[109] = "ID";
	asTopLevels[110] = "IR";	asTopLevels[111] = "IQ";	asTopLevels[112] = "IE";	asTopLevels[113] = "IM";	asTopLevels[114] = "IL";	asTopLevels[115] = "IT";	asTopLevels[116] = "JM";	asTopLevels[117] = "JP";	asTopLevels[118] = "JE";	asTopLevels[119] = "JO";
	asTopLevels[120] = "KZ";	asTopLevels[121] = "KE";	asTopLevels[122] = "KI";	asTopLevels[123] = "KP";	asTopLevels[124] = "KR";	asTopLevels[125] = "KW";	asTopLevels[126] = "KG";	asTopLevels[127] = "LA";	asTopLevels[128] = "LV";	asTopLevels[129] = "LB";
	asTopLevels[130] = "LS";	asTopLevels[131] = "LR";	asTopLevels[132] = "LY";	asTopLevels[133] = "LI";	asTopLevels[134] = "LT";	asTopLevels[135] = "LU";	asTopLevels[136] = "MO";	asTopLevels[137] = "MK";	asTopLevels[138] = "MG";	asTopLevels[139] = "MW";
	asTopLevels[140] = "MY";	asTopLevels[141] = "MV";	asTopLevels[142] = "ML";	asTopLevels[143] = "MT";	asTopLevels[144] = "MH";	asTopLevels[145] = "MQ";	asTopLevels[146] = "MR";	asTopLevels[147] = "MU";	asTopLevels[148] = "YT";	asTopLevels[149] = "MX";
	asTopLevels[150] = "FM";	asTopLevels[151] = "MD";	asTopLevels[152] = "MC";	asTopLevels[153] = "MN";	asTopLevels[154] = "MS";	asTopLevels[155] = "MA";	asTopLevels[156] = "MZ";	asTopLevels[157] = "MM";	asTopLevels[158] = "NA";	asTopLevels[159] = "NR";
	asTopLevels[160] = "NP";	asTopLevels[161] = "NL";	asTopLevels[162] = "AN";	asTopLevels[163] = "NC";	asTopLevels[164] = "NZ";	asTopLevels[165] = "NI";	asTopLevels[166] = "NE";	asTopLevels[167] = "NG";	asTopLevels[168] = "NU";	asTopLevels[169] = "NF";
	asTopLevels[170] = "MP";	asTopLevels[171] = "NO";	asTopLevels[172] = "OM";	asTopLevels[173] = "PK";	asTopLevels[174] = "PW";	asTopLevels[175] = "PA";	asTopLevels[176] = "PG";	asTopLevels[177] = "PY";	asTopLevels[178] = "PE";	asTopLevels[179] = "PH";
	asTopLevels[180] = "PN";	asTopLevels[181] = "PL";	asTopLevels[182] = "PT";	asTopLevels[183] = "PR";	asTopLevels[184] = "QA";	asTopLevels[185] = "RE";	asTopLevels[186] = "RO";	asTopLevels[187] = "RU";	asTopLevels[188] = "RW";	asTopLevels[189] = "KN";
	asTopLevels[190] = "LC";	asTopLevels[191] = "VC";	asTopLevels[192] = "WS";	asTopLevels[193] = "SM";	asTopLevels[194] = "ST";	asTopLevels[195] = "SA";	asTopLevels[196] = "SN";	asTopLevels[197] = "SC";	asTopLevels[198] = "SL";	asTopLevels[199] = "SG";
	asTopLevels[200] = "SK";	asTopLevels[201] = "SI";	asTopLevels[202] = "SB";	asTopLevels[203] = "SO";	asTopLevels[204] = "ZA";	asTopLevels[205] = "GS";	asTopLevels[206] = "ES";	asTopLevels[207] = "LK";	asTopLevels[208] = "SH";	asTopLevels[209] = "PM";
	asTopLevels[210] = "SD";	asTopLevels[211] = "SR";	asTopLevels[212] = "SJ";	asTopLevels[213] = "SZ";	asTopLevels[214] = "SE";	asTopLevels[215] = "CH";	asTopLevels[216] = "SY";	asTopLevels[217] = "TW";	asTopLevels[218] = "TJ";	asTopLevels[219] = "TZ";
	asTopLevels[220] = "TH";	asTopLevels[221] = "TG";	asTopLevels[222] = "TK";	asTopLevels[223] = "TO";	asTopLevels[224] = "TT";	asTopLevels[225] = "TN";	asTopLevels[226] = "TR";	asTopLevels[227] = "TM";	asTopLevels[228] = "TC";	asTopLevels[229] = "TV";
	asTopLevels[230] = "UG";	asTopLevels[231] = "UA";	asTopLevels[232] = "AE";	asTopLevels[233] = "GB";	asTopLevels[234] = "US";	asTopLevels[235] = "UM";	asTopLevels[236] = "UY";	asTopLevels[237] = "UZ";	asTopLevels[238] = "VU";	asTopLevels[239] = "VE";
	asTopLevels[240] = "VN";	asTopLevels[241] = "VG";	asTopLevels[242] = "VI";	asTopLevels[243] = "WF";	asTopLevels[244] = "EH";	asTopLevels[245] = "YE";	asTopLevels[246] = "YU";	asTopLevels[247] = "ZR";	asTopLevels[248] = "ZM";	asTopLevels[249] = "ZW";
	asTopLevels[250] = "UK";

	for (ictr = 0 ; ictr <= iNumDomains - 1;ictr++) {
		if (asTopLevels[ictr] == domain) {
			bAns = true;
			break ;
		}//end if
	}//next
	
	return (bAns);
}