// BEGIN ALPHANUMERIC COUNT
function CharCount(strString,stype){
   //  check for valid alphanumeric strings
   	var checktype = stype;
	var strValidChars = "";
	if(checktype == 'N'){var strValidChars = "0123456789";}
	else{var strValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";}
	
	var strChar;
	var blnResult = 0;
	var countchar = 0;
	if (strString.length != 0) {
	//  test strString counts valid characters listed above
		for (i = 0; i < strString.length; i++){
			strChar = strString.charAt(i);
			if (strValidChars.indexOf(strChar) == -1){}
			else {countchar = countchar + 1;}
		}
	}
	else{countchar = 0;}
	return countchar;
}
// END ALPHANUMERIC COUNT


// BEGIN FUNCTION FOR CONTACT FORM VALIDATION
function csignup() {
	var form=document.getElementById('frm_contact');
	if(document.getElementById("c_firstname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your first name</span>";
		document.getElementById("c_firstname").focus();
		return false;
	}
	else if(document.getElementById("c_lastname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your last name</span>";
		document.getElementById("c_lastname").focus();
		return false;
	}
	else if(document.getElementById("c_street1").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your street address</span>";
		document.getElementById("c_street1").focus();
		return false;
	}
	else if(document.getElementById("c_city").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your city</span>";
		document.getElementById("c_city").focus();
		return false;
	}
	else if(document.getElementById("c_zip").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your zip code</span>";
		document.getElementById("c_zip").focus();
		return false;
	}
	else if(document.getElementById("c_phone").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your phone number</span>";
		document.getElementById("c_phone").focus();
		return false;
	}
	else if(document.getElementById("c_email").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your email address</span>";
		document.getElementById("c_email").focus();
		return false;
	}
	else if((document.getElementById("c_referred").value == "Referred By") && (document.getElementById("c_refby").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your referral</span>";
		document.getElementById("c_refby").focus();
		return false;
	}
	else{
		return true;
	}
}
// END FUNCTION FOR CONTACT FORM VALIDATION


// BEGIN FUNCTION FOR LOGIN FORM VALIDATION
function sendfrm_login() {
	if (document.getElementById("Login_Uname").value == ""){
		document.getElementById('cmsg').innerHTML = "<span class='message'><font color=#FFFF00>&nbsp;...Username?</font></span>";
		document.getElementById("Login_Uname").focus();
		return false;
	}
	else if (document.getElementById("Login_Pwd").value == ""){
		document.getElementById('cmsg').innerHTML = "<span class='message'><font color=#FFFF00>&nbsp;...Password?</font></span>";
		document.getElementById("Login_Pwd").focus();
		return false;
	}
	else {
		var form=document.getElementById('LoginForm');
		return true;
	}
}
// END FUNCTION FOR LOGIN FORM VALIDATION


// BEGIN GET BUSINESS DAY
function getDeliveryDateObj(businessDaysLeftForDelivery) {
  var now = new Date();
  var dayOfTheWeek = now.getDay();
  var calendarDays = businessDaysLeftForDelivery;
  var deliveryDay = dayOfTheWeek + businessDaysLeftForDelivery;
  if (deliveryDay >= 6) {
    //deduct this-week days
    businessDaysLeftForDelivery -= 6 - dayOfTheWeek;
    //count this coming weekend
    calendarDays += 2;
    //how many whole weeks?
    deliveryWeeks = Math.floor(businessDaysLeftForDelivery / 5);
    //two days per weekend per week
    calendarDays += deliveryWeeks * 2;
  }
  now.setTime(now.getTime() + calendarDays);
	//now.setTime(now.getTime() + calendarDays * 24 * 60 * 60 * 1000);
  return now;
}
// END GET BUSINESS DAY


// BEGIN SELECT CONTACT TYPE
function alterfield(v) {
	//alert(v);
	if(v == "Client") {
		document.getElementById('viewcompany1').style.display = 'none';
		document.getElementById('viewstatus1').style.display = 'block';
		document.getElementById('viewstatus1').style.color = 'cc0000';
		document.getElementById('viewstatus2').style.display = 'block';
		document.getElementById('viewrefamt1').style.display = 'none';
		document.getElementById('viewrefamt2').style.display = 'none';
		document.getElementById('viewrefpamt1').style.display = 'none';
		document.getElementById('viewrefpamt2').style.display = 'none';
		document.getElementById('viewreferrer1').style.display = 'block';
		document.getElementById('viewreferrer2').style.display = 'block';
		document.getElementById('viewreftype1').style.display = 'none';
		document.getElementById('viewreftype2').style.display = 'none';
		document.getElementById('viewdatefee1').style.display = 'block';
		document.getElementById('viewdatefee1').style.color = '#cc0000';
		document.getElementById('viewclientrefpay1').style.display = 'block';
		document.getElementById('viewclientrefpay2').style.display = 'block';
		document.getElementById('viewclientrefpay3').style.color = '#cc0000';
		document.getElementById('viewmasters').style.display = 'none';
		document.getElementById('viewrefrole').style.display = 'none';
		document.getElementById('viewsysu1').style.display = 'none';
		document.getElementById('viewdet1').style.display = 'block';
		document.getElementById('viewdet1').style.color = '#cc0000';
		document.getElementById('details_q').style.display = 'block';
		document.getElementById('viewupfile').style.display = 'block';
		document.getElementById('viewrefco1').style.display = 'block';
		document.getElementById('viewrefco2').style.display = 'block';
		/* 
		if (document.getElementById('CA_status').value == 'In Progress') {
			document.getElementById('CA_datedue').value = document.getElementById('CA_busdate').value;
			document.getElementById('CA_hourdue').value = 10;
			document.getElementById('CA_mindue').value = '00';
			document.getElementById('CA_timedue').value = 'AM';
		}
		var detailstxt = document.getElementById('CA_details').value;
		if (document.getElementById('CA_status').value == 'Complete') {
			document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
			document.getElementById('CA_hourdue').value = 10;
			document.getElementById('CA_mindue').value = '00';
			document.getElementById('CA_timedue').value = 'AM';
			document.getElementById('CA_details').value = detailstxt + ' [COMPLETE]';
		}
		if (document.getElementById('CA_status').value == 'Write Off') {
			document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
			document.getElementById('CA_hourdue').value = 10;
			document.getElementById('CA_mindue').value = '00';
			document.getElementById('CA_timedue').value = 'AM';
			document.getElementById('CA_details').value = detailstxt + ' [WRITE OFF]';
		}
		*/
	}
	else if(v == "Referrer"){
		document.getElementById('viewcompany1').style.display = 'block';
		document.getElementById('viewstatus1').style.display = 'none';
		document.getElementById('viewstatus2').style.display = 'none';
		document.getElementById('viewrefamt1').style.display = 'block';
		document.getElementById('viewrefamt2').style.display = 'block';
		document.getElementById('viewrefpamt1').style.display = 'none';
		document.getElementById('viewrefpamt2').style.display = 'none';
		document.getElementById('viewreferrer1').style.display = 'none';
		document.getElementById('viewreferrer2').style.display = 'none';
		document.getElementById('viewreftype1').style.display = 'block';
		document.getElementById('viewreftype2').style.display = 'block';
		document.getElementById('viewdatefee1').style.display = 'none';
		document.getElementById('viewclientrefpay1').style.display = 'none';
		document.getElementById('viewclientrefpay2').style.display = 'none';
		document.getElementById('viewmasters').style.display = 'none';
		document.getElementById('viewrefrole').style.display = 'block';
		document.getElementById('viewsysu1').style.display = 'block';
		if (document.getElementById('CA_refrole').value == "Sub User"){
			document.getElementById('viewmasters').style.display = 'block';
		}
		document.getElementById('viewdet1').style.display = 'none';
		document.getElementById('details_q').style.display = 'none';
		document.getElementById('viewupfile').style.display = 'none';
		document.getElementById('viewrefco1').style.display = 'none';
		document.getElementById('viewrefco2').style.display = 'none';
	}
	else if(v == "Sales Person"){
		document.getElementById('viewcompany1').style.display = 'block';
		document.getElementById('viewstatus1').style.display = 'none';
		document.getElementById('viewstatus2').style.display = 'none';
		document.getElementById('viewrefamt1').style.display = 'none';
		document.getElementById('viewrefamt2').style.display = 'none';
		document.getElementById('viewrefpamt1').style.display = 'none';
		document.getElementById('viewrefpamt2').style.display = 'none';
		document.getElementById('viewreferrer1').style.display = 'none';
		document.getElementById('viewreferrer2').style.display = 'none';
		document.getElementById('viewreftype1').style.display = 'none';
		document.getElementById('viewreftype2').style.display = 'none';
		document.getElementById('viewdatefee1').style.display = 'none';
		document.getElementById('viewclientrefpay1').style.display = 'none';
		document.getElementById('viewclientrefpay2').style.display = 'none';
		document.getElementById('viewmasters').style.display = 'none';
		document.getElementById('viewrefrole').style.display = 'none';
		document.getElementById('viewsysu1').style.display = 'block';
		document.getElementById('viewdet1').style.display = 'none';
		document.getElementById('details_q').style.display = 'none';
		document.getElementById('viewupfile').style.display = 'none';
		document.getElementById('viewrefco1').style.display = 'none';
		document.getElementById('viewrefco2').style.display = 'none';
	}
	else{
		document.getElementById('viewcompany1').style.display = 'block';
		document.getElementById('viewstatus1').style.display = 'none';
		document.getElementById('viewstatus2').style.display = 'none';
		document.getElementById('viewrefamt1').style.display = 'none';
		document.getElementById('viewrefamt2').style.display = 'none';
		document.getElementById('viewrefpamt1').style.display = 'none';
		document.getElementById('viewrefpamt2').style.display = 'none';
		document.getElementById('viewreferrer1').style.display = 'none';
		document.getElementById('viewreferrer2').style.display = 'none';
		document.getElementById('viewreftype1').style.display = 'none';
		document.getElementById('viewreftype2').style.display = 'none';
		document.getElementById('viewdatefee1').style.display = 'none';
		document.getElementById('viewclientrefpay1').style.display = 'none';
		document.getElementById('viewclientrefpay2').style.display = 'none';
		document.getElementById('viewmasters').style.display = 'none';
		document.getElementById('viewrefrole').style.display = 'none';
		document.getElementById('viewsysu1').style.display = 'none';
		document.getElementById('viewdet1').style.display = 'none';
		document.getElementById('details_q').style.display = 'none';
		document.getElementById('viewupfile').style.display = 'none';
		document.getElementById('viewrefco1').style.display = 'none';
		document.getElementById('viewrefco2').style.display = 'none';
	}
}
// END SELECT CONTACT TYPE


// BEGIN TOGGLE NEW COMPANY
function togCompany(t){
	if (t != ""){
		document.getElementById('viewnewcomp1').style.display = 'none';
		document.getElementById('viewnewcomp2').style.display = 'none';
	}
	else {
		document.getElementById('viewnewcomp1').style.display = 'block';
		document.getElementById('viewnewcomp2').style.display = 'block';
	}
}
// END TOGGLE NEW COMPANY


// BEGIN TOGGLE STATUS
function togStatus(s){
	if (s == "In Progress") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_busdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';	
	}
	var detailstxt = document.getElementById('CA_details').value;
	if (s == "Complete") {
		document.getElementById('CA_complete').style.display = 'block';
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [COMPLETE]';
		document.getElementById('viewrefpamt1').style.display = 'block';
		document.getElementById('viewrefpamt2').style.display = 'block';
		document.getElementById('viewrefpamt1').style.color = '#cc0000';
		document.getElementById('viewrefpamt2').style.color = '#cc0000';
		document.getElementById('viewclientrefpay1').style.display = 'block';
		document.getElementById('viewclientrefpay2').style.display = 'block';
		document.getElementById('viewclientrefpay3').style.color = '#cc0000';
	}
	if (s == "Write Off") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [WRITE OFF]';
	}
	if (s == "Closed") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [CLOSED]';
	}
	if (s == "Reviewed Closed") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [REVIEWED CLOSED]';
	}
	/* if (s != "Complete") {
		document.getElementById('CA_payappr').checked = false;
		document.getElementById('CA_complete').style.display = 'none';
		document.getElementById('viewrefpamt1').style.display = 'none';
		document.getElementById('viewrefpamt2').style.display = 'none';
	} */
	if (s == "Pay") {
		if (document.getElementById('CA_payappr').checked == true) {
			document.getElementById('viewrefpamt1').style.display = 'block';
			document.getElementById('viewrefpamt2').style.display = 'block';
			document.getElementById('viewrefpamt1').style.color = '#cc0000';
			document.getElementById('viewrefpamt2').style.color = '#cc0000';
		}
		else {
			document.getElementById('viewrefpamt1').style.display = 'none';
			document.getElementById('viewrefpamt2').style.display = 'none';	
		}
	}
}

/* 
function togStatus(s){
	if (s == "In Progress") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_busdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';	
	}
	var detailstxt = document.getElementById('CA_details').value;
	if (s == "Complete") {
		document.getElementById('CA_complete').style.display = 'block';
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [COMPLETE]';
		document.getElementById('viewrefpamt1').style.display = 'block';
		document.getElementById('viewrefpamt2').style.display = 'block';
		document.getElementById('viewrefpamt1').style.color = '#cc0000';
		document.getElementById('viewrefpamt2').style.color = '#cc0000';
		document.getElementById('viewclientrefpay1').style.display = 'block';
		document.getElementById('viewclientrefpay2').style.display = 'block';
		document.getElementById('viewclientrefpay3').style.color = '#cc0000';
	}
	if (s == "Write Off") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [WRITE OFF]';
	}
	if (s == "Closed") {
		document.getElementById('CA_datedue').value = document.getElementById('CA_compdate').value;
		document.getElementById('CA_hourdue').value = 10;
		document.getElementById('CA_mindue').value = '00';
		document.getElementById('CA_timedue').value = 'AM';
		document.getElementById('CA_details').value = detailstxt + ' [CLOSED]';
	}
	if (s != "Complete") {
		document.getElementById('CA_payappr').checked = false;
		document.getElementById('CA_complete').style.display = 'none';
		document.getElementById('viewrefpamt1').style.display = 'none';
		document.getElementById('viewrefpamt2').style.display = 'none';
	}
}
 */
// END TOGGLE STATUS


// BEGIN TOGGLE REF ROLE
function togRefRole(r){
	if (r == "Sub User"){
		document.getElementById('viewmasters').style.display = 'block';
	}
	else {
		document.getElementById('viewmasters').style.display = 'none';
	}
}
// END TOGGLE REF ROLE


// BEGIN TOGGLE REF VIEW BASED ON TYPE
	//activity_queue_refmaster.cfm
function togSearchType(){
	//alert(document.getElementById('S_searchtype').checked);
	if (document.getElementById('S_refview').value == 'Referrals'){
		document.getElementById('S_searchtype').checked = true;
		//document.getElementById('S_searchtype').style.display = 'none';
	}
}
// END TOGGLE REF VIEW BASED ON TYPE


// BEGIN SHOWHIDE ADD NEW DETAIL
function showElement(td,el){
	//alert(td + el);
	var thisTD = td;
	var box = getElem(el);
	if(box.style.display == "none"){
		box.style.display = "";
	} else {
		box.style.display = "none";
	}
	if(thisTD.className == "clickable_id"){
		thisTD.className = "clickable_id_selected";
	} else {
		thisTD.className = "clickable_id";
	}
}
function getElem(el){
	//return document.all ? document.all[el] : document.getElementById(el);
	return document.getElementById(el);
}
// END SHOWHIDE ADD NEW DETAIL


// BEGIN FUNCTION FOR CONTACT ADD FORM VALIDATION
function sendfrm_contactadd() {
	var form=document.getElementById('frm_contactadd');
	var thepassword = "";
	var lenPwd = 0;
	var cAlpha = 0;
	var cNum = 0;
	if(document.getElementById("CA_password").value != "") {
		thepassword = document.getElementById("CA_password").value;
		var lenPwd = thepassword.length;
		//alert("Password length = " + lenPwd);
		var cAlpha = CharCount(thepassword,'A');
		//alert("Alphas = " + cAlpha);	
		var cNum = CharCount(thepassword,'N');
		//alert("Numerics = " + cNum);
	}
	if(document.getElementById("CA_firstname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s First Name</span>";
		document.getElementById("CA_firstname").focus();
		return false;
	}
	else if(document.getElementById("CA_lastname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Last Name</span>";
		document.getElementById("CA_lastname").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_referrer").value == "0,0")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select the Contact&acute;s Referrer</span>";
		document.getElementById("CA_referrer").focus();
		return false;
	} // CA_contacttype
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_referrer").value == "2,8")&&(document.getElementById("CA_refby").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter the Contact&acute;s Referrer</span>";
		document.getElementById("CA_refby").focus();
		return false;
	}
	/*
	else if((document.getElementById("CA_businessphone").value == "")&&(document.getElementById("CA_homephone").value == "")&&(document.getElementById("CA_cellphone").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter at least one phone number, Business, Home, or Cell for Contact</span>";
		document.getElementById("CA_businessphone").focus();
		return false;
	}
	else if(document.getElementById("CA_address1").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Street Address</span>";
		document.getElementById("CA_address1").focus();
		return false;
	}
	else if(document.getElementById("CA_city").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s City</span>";
		document.getElementById("CA_city").focus();
		return false;
	}
	else if(document.getElementById("CA_zip").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Zip Code</span>";
		document.getElementById("CA_zip").focus();
		return false;
	}
	else if(document.getElementById("CA_country").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Country or Region</span>";
		document.getElementById("CA_country").focus();
		return false;
	}
	else if(document.getElementById("CA_email").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Email Address</span>";
		document.getElementById("CA_email").focus();
		return false;
	}
	*/
	else if(document.getElementById("CA_contacttype").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select Contact Type</span>";
		document.getElementById("CA_contacttype").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Referrer")&&(document.getElementById("CA_refferramount").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Referrer&acute;s Amount</span>";
		document.getElementById("CA_refferramount").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_datedue").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Client&acute;s Due Date</span>";
		document.getElementById("CA_datedue").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_clientfee").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Client&acute;s Fee</span>";
		document.getElementById("CA_clientfee").focus();
		return false;
	}
	else if((form.CA_sysuser.checked)&&(document.getElementById("CA_username").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter System User&acute;s Username</span>";
		document.getElementById("CA_username").focus();
		return false;
	}
	/* else if((form.CA_sysuser.checked)&&(document.getElementById("CA_password").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter System User&acute;s Password</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	else if((form.CA_sysuser.checked)&&(lenPwd < 8)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 8 characters</span>";
		document.getElementById("CA_password").focus();
		return false;
	}
	/* 
	else if((form.CA_sysuser.checked)&&(cAlpha < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 character</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	else if((form.CA_sysuser.checked)&&(cNum < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 Numeric character</span>";
		document.getElementById("CA_password").focus();
		return false;
	}
	else{
		//form.submit();
		return true;
	}
}
// END FUNCTION FOR CONTACT ADD FORM VALIDATION


// BEGIN FUNCTION FOR CONTACT EDIT FORM VALIDATION
function sendfrm_contactedit() {
	var form=document.getElementById('frm_contactedit');
	var thepassword = "";
	var lenPwd = 0;
	var cAlpha = 0;
	var cNum = 0;
	if(document.getElementById("CA_password").value != "") {
		thepassword = document.getElementById("CA_password").value;
		var lenPwd = thepassword.length;
		//alert("Password length = " + lenPwd);
		var cAlpha = CharCount(thepassword,'A');
		//alert("Alphas = " + cAlpha);	
		var cNum = CharCount(thepassword,'N');
		//alert("Numerics = " + cNum);
	}
	if(document.getElementById("CA_firstname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s First Name</span>";
		document.getElementById("CA_firstname").focus();
		return false;
	}
	else if(document.getElementById("CA_lastname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Last Name</span>";
		document.getElementById("CA_lastname").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_referrer").value == "0,0")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select the Contact&acute;s Referrer</span>";
		document.getElementById("CA_referrer").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_referrer").value == "2,8")&&(document.getElementById("CA_refby").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter the Contact&acute;s Referrer</span>";
		document.getElementById("CA_refby").focus();
		return false;
	}
	/*
	else if((document.getElementById("CA_businessphone").value == "")&&(document.getElementById("CA_homephone").value == "")&&(document.getElementById("CA_cellphone").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter at least one phone number, Business, Home, or Cell for Contact</span>";
		document.getElementById("CA_businessphone").focus();
		return false;
	}
	else if(document.getElementById("CA_address1").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Street Address</span>";
		document.getElementById("CA_address1").focus();
		return false;
	}
	else if(document.getElementById("CA_city").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s City</span>";
		document.getElementById("CA_city").focus();
		return false;
	}
	else if(document.getElementById("CA_zip").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Zip Code</span>";
		document.getElementById("CA_zip").focus();
		return false;
	}
	else if(document.getElementById("CA_country").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Country or Region</span>";
		document.getElementById("CA_country").focus();
		return false;
	}
	else if(document.getElementById("CA_email").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Contact&acute;s Email Address</span>";
		document.getElementById("CA_email").focus();
		return false;
	}
	*/
	else if(document.getElementById("CA_contacttype").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select Contact Type</span>";
		document.getElementById("CA_contacttype").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Referrer")&&(document.getElementById("CA_refferramount").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Referrer&acute;s Amount</span>";
		document.getElementById("CA_refferramount").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_datedue").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Client&acute;s Due Date</span>";
		document.getElementById("CA_duedate").focus();
		return false;
	}
	else if((document.getElementById("CA_contacttype").value == "Client")&&(document.getElementById("CA_clientfee").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter Client&acute;s Fee</span>";
		document.getElementById("CA_clientfee").focus();
		return false;
	}
	else if((form.CA_sysuser.checked)&&(document.getElementById("CA_username").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter System User&acute;s Username</span>";
		document.getElementById("CA_username").focus();
		return false;
	}
	else if((form.CA_sysuser.checked)&&(document.getElementById("CA_password").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter System User&acute;s Password</span>";
		document.getElementById("CA_password").focus();
		return false;
	}
	/* else if((form.CA_sysuser.checked)&&(lenPwd < 8)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 8 characters</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	/* else if((form.CA_sysuser.checked)&&(cAlpha < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 character</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	/* else if((form.CA_sysuser.checked)&&(cNum < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 Numeric character</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	else{
		//form.submit();
		return true;
	}
}
// END FUNCTION FOR CONTACT EDIT FORM VALIDATION


// BEGIN FUNCTION FOR NOTES MANAGER FORM VALIDATION
function sendfrm_notesedit() {
	var form=document.getElementById('frm_notesedit');
	if(document.getElementById("CA_notes").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter some notes</span>";
		document.getElementById("CA_notes").focus();
		return false;
	}
	else{
		return true;
	}
}
// END FUNCTION FOR NOTES MANAGER FORM VALIDATION


// BEGIN FUNCTION FOR USER ADD FORM VALIDATION
function sendfrm_useradd() {
	var form=document.getElementById('frm_useradd');
	var thepassword = "";
	var lenPwd = 0;
	var cAlpha = 0;
	var cNum = 0;
	if(document.getElementById("U_password").value != "") {
		thepassword = document.getElementById("U_password").value;
		var lenPwd = thepassword.length;
		//alert("Password length = " + lenPwd);
		var cAlpha = CharCount(thepassword,'A');
		//alert("Alphas = " + cAlpha);	
		var cNum = CharCount(thepassword,'N');
		//alert("Numerics = " + cNum);
	}
	if(document.getElementById("U_firstname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter User&acute;s First Name</span>";
		document.getElementById("U_firstname").focus();
		return false;
	}
	else if(document.getElementById("U_lastname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter User&acute;s Last Name</span>";
		document.getElementById("U_lastname").focus();
		return false;
	}
	else if(document.getElementById("U_userstype").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select User&acute;s Role</span>";
		document.getElementById("U_userstype").focus();
		return false;
	}
	else if((form.U_sysuser.checked)&&(document.getElementById("U_username").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter System User&acute;s Username</span>";
		document.getElementById("U_username").focus();
		return false;
	}
	else if((form.U_sysuser.checked)&&(lenPwd < 8)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 8 characters</span>";
		document.getElementById("U_password").focus();
		return false;
	}
	/* else if((form.U_sysuser.checked)&&(cAlpha < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 character</span>";
		document.getElementById("U_password").focus();
		return false;
	} */
	else if((form.U_sysuser.checked)&&(cNum < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 Numeric character</span>";
		document.getElementById("U_password").focus();
		return false;
	}
	else{
		return true;
	}
}
// END FUNCTION FOR USER ADD FORM VALIDATION


// BEGIN FUNCTION FOR USER EDIT FORM VALIDATION
function sendfrm_useredit() {
	var form=document.getElementById('frm_useredit');
	var thepassword = "";
	var lenPwd = 0;
	var cAlpha = 0;
	var cNum = 0;
	if(document.getElementById("U_password").value != "") {
		thepassword = document.getElementById("U_password").value;
		var lenPwd = thepassword.length;
		//alert("Password length = " + lenPwd);
		var cAlpha = CharCount(thepassword,'A');
		//alert("Alphas = " + cAlpha);	
		var cNum = CharCount(thepassword,'N');
		//alert("Numerics = " + cNum);
	}
	if(document.getElementById("U_firstname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter User&acute;s First Name</span>";
		document.getElementById("U_firstname").focus();
		return false;
	}
	else if(document.getElementById("U_lastname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter User&acute;s Last Name</span>";
		document.getElementById("U_lastname").focus();
		return false;
	}
	else if(document.getElementById("U_userstype").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select User&acute;s Role</span>";
		document.getElementById("U_userstype").focus();
		return false;
	}
	else if((form.U_sysuser.checked)&&(document.getElementById("U_username").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter System User&acute;s Username</span>";
		document.getElementById("U_username").focus();
		return false;
	}
	else if((form.U_sysuser.checked)&&(lenPwd < 8)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 8 characters</span>";
		document.getElementById("U_password").focus();
		return false;
	}
	/* else if((form.U_sysuser.checked)&&(cAlpha < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 character</span>";
		document.getElementById("U_password").focus();
		return false;
	} */
	else if((form.U_sysuser.checked)&&(cNum < 1)) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 Numeric character</span>";
		document.getElementById("U_password").focus();
		return false;
	}
	else{
		return true;
	}
}
// END FUNCTION FOR USER EDIT FORM VALIDATION


// BEGIN FUNCTION FOR REPORT PAYS FORM VALIDATION
function sendfrm_reportpays() {
	var form=document.getElementById('frm_reportpays');
	var agree=confirm("Are you sure you wish to mark as paid?");
	if (agree){
		return true;
	}
	else {return false;}
}
// END FUNCTION FOR REPORT PAYS FORM VALIDATION


// BEGIN FUNCTION FOR MAILERS QUEUE FORM VALIDATION
function sendfrm_mailersq() {
	var form=document.getElementById('frm_mailersq');
	var agree=confirm("Are you sure you wish to mark as mailed?");
	if (agree){
		return true;
	}
	else {return false;}
}
// END FUNCTION FOR MAILERS QUEUE FORM VALIDATION


// BEGIN FUNCTION FOR SYSTEM MESSAGE FORM VALIDATION
function sendfrm_system() {
	var form=document.getElementById('frm_system');
	var agree=confirm("Update the System Message?");
	if (agree){
		return true;
	}
	else {return false;}
}
// END FUNCTION FOR SYSTEM MESSAGE FORM VALIDATION


// BEGIN FUNCTION FOR REGISTER NEW FORM VALIDATION
function sendfrm_registernew() {
	var form=document.getElementById('frm_registernew');
	var thepassword = "";
	var lenPwd = 0;
	var cAlpha = 0;
	var cNum = 0;
	if(document.getElementById("CA_password").value != "") {
		thepassword = document.getElementById("CA_password").value;
		var lenPwd = thepassword.length;
		//alert("Password length = " + lenPwd);
		var cAlpha = CharCount(thepassword,'A');
		//alert("Alphas = " + cAlpha);	
		var cNum = CharCount(thepassword,'N');
		//alert("Numerics = " + cNum);
	}
	if(document.getElementById("CA_firstname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your First Name</span>";
		document.getElementById("CA_firstname").focus();
		return false;
	}
	else if(document.getElementById("CA_lastname").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your Last Name</span>";
		document.getElementById("CA_lastname").focus();
		return false;
	}
	else if(document.getElementById("CA_company").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your Company Name</span>";
		document.getElementById("CA_company").focus();
		return false;
	}
	else if((document.getElementById("CA_businessphone").value == "")&&(document.getElementById("CA_homephone").value == "")&&(document.getElementById("CA_cellphone").value == "")) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter at least one phone number, Business, Home, or Cell</span>";
		document.getElementById("CA_businessphone").focus();
		return false;
	}
	else if(document.getElementById("CA_address1").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your Street Address</span>";
		document.getElementById("CA_address1").focus();
		return false;
	}
	else if(document.getElementById("CA_city").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your City</span>";
		document.getElementById("CA_city").focus();
		return false;
	}
	else if(document.getElementById("CA_state").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please select your State</span>";
		document.getElementById("CA_state").focus();
		return false;
	}
	else if(document.getElementById("CA_zip").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your Zip Code</span>";
		document.getElementById("CA_zip").focus();
		return false;
	}
	/* else if(document.getElementById("CA_country").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your Country or Region</span>";
		document.getElementById("CA_country").focus();
		return false;
	} */
	else if(document.getElementById("CA_email").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter your valid Email Address</span>";
		document.getElementById("CA_email").focus();
		return false;
	}
	else if (emailCheck(document.getElementById("CA_email").value)==false){
		//document.getElementById("CA_email").value = "";
		document.getElementById('cmsg').innerHTML = "<span class='message'>Invalid Email Address, please check again</span>";
		document.getElementById("CA_email").focus();
		return false;
	}
	else if(document.getElementById("CA_username").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Username</span>";
		document.getElementById("CA_username").focus();
		return false;
	}
	/* else if(document.getElementById("CA_password").value == "") {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	else if(lenPwd < 8) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 8 characters</span>";
		document.getElementById("CA_password").focus();
		return false;
	}
	/* else if(cAlpha < 1) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 character</span>";
		document.getElementById("CA_password").focus();
		return false;
	} */
	else if(cNum < 1) {
		document.getElementById('cmsg').innerHTML = "<span class='message'>Please enter a Password with at least 1 Numeric character</span>";
		document.getElementById("CA_password").focus();
		return false;
	}
	else{
		//form.submit();
		return true;
	}
}
// END FUNCTION FOR REGISTER NEW FORM VALIDATION


// BEGIN ARCHIVE CONFIRMATION IN ACTIVITY QUEUE
function archq(q) {
	if (confirm("Are you sure you wish to archive this contact from the activity queue?")) {
		window.location = "activity_queue.cfm?archq=" + q;
		return true;
	}
}
// END ARCHIVE CONFIRMATION IN ACTIVITY QUEUE


// BEGIN DELETE CONTACT CONFIRMATION
function delcontact(d) {
	if (confirm("Are you sure you wish to delete this contact?")) {
		window.location = "contact_editqq.cfm?delc=" + d;
		return true;
	}
}
// END DELETE CONTACT CONFIRMATION


// BEGIN DELETE USER CONFIRMATION
function deluser(d) {
	if (confirm("Are you sure you wish to delete this user?")) {
		window.location = "user_editqq.cfm?delu=" + d;
		return true;
	}
}
// END DELETE USER CONFIRMATION


// BEGIN DELETE DETAIL CONFIRMATION
function deldetail(c,t) {
	if (confirm("Are you sure you wish to delete this detail?")) {
		window.location = "contact_edit.cfm?edc=" + c + "&deldet=" + t;
		return true;
	}
}
// END DELETE DETAIL CONFIRMATION


// BEGIN DELETE NOTE CONFIRMATION
function delnote(n) {
	if (confirm("Are you sure you wish to delete this note?")) {
		window.location = "notes_manager.cfm?delnot=" + n;
		return true;
	}
}
// END DELETE DETAIL CONFIRMATION


// BEGIN DELETE PAYMENT CONFIRMATION
function delpay(c,d,p) {
	if (p==1) {
		alert("Sorry. You cannot delete a PAID transaction.");
		//return false;
	}
	else {
		if (confirm("Are you sure you wish to delete this payment?")) {
			window.location = "contact_edit.cfm?edc=" + c + "&delrp=" + d;
			return true;
		}
	}
}
// END DELETE CONTACT CONFIRMATION


// BEGIN FUNCTION FOR ACTIVITY QUEUE NAME SEARCH FORM VALIDATION
function sendname_search() {
	var form=document.getElementById('SearchName');
	if (document.getElementById("S_searchname").value == ""){alert ("Please enter part or all of first or last name here.");document.getElementById("S_searchname").focus();return false;}
	form.submit();
	return true;
}
// END FUNCTION FOR ACTIVITY QUEUE NAME SEARCH FORM VALIDATION


// BEGIN FUNCTION FOR ACTIVITY QUEUE SEARCH BY DUE DATE FORM VALIDATION
function senddate_search() {
	var form=document.getElementById('SearchDate');
	if ((document.getElementById("S_frdate").value == "")&&(document.getElementById("S_todate").value != "")){
		alert ("From what Due Date?");
		document.getElementById("S_frdate").focus();
		return false;
	}
	else if ((document.getElementById("S_frdate").value != "")&&(document.getElementById("S_todate").value == "")){
		alert ("To what Due Date?");
		document.getElementById("S_todate").focus();
		return false;
	}
	else{
		form.submit();
		return true;
	}
}
// END FUNCTION FOR ACTIVITY QUEUE SEARCH BY DUE DATE FORM VALIDATION


// BEGIN FUNCTION FOR ACTIVITY QUEUE SORT BY DUE DATE FORM VALIDATION
function sortduedate() {
	var form=document.getElementById('SearchDate');
	form.submit();
	return true;
}
// END FUNCTION FOR ACTIVITY QUEUE SORT BY DUE DATE FORM VALIDATION


// BEGIN FUNCTION FOR ACTIVITY QUEUE SORT BY REF VIEW FORM VALIDATION
function sortrefview() {
	var form=document.getElementById('SearchView');
	form.submit();
	return true;
}
// END FUNCTION FOR ACTIVITY QUEUE SORT BY REF VIEW FORM VALIDATION


// BEGIN FUNCTION FOR ACTIVITY QUEUE SORT BY STATUS FORM VALIDATION
function sortstatus(s) {
	var form=document.getElementById('SearchStatus');
	form.submit();
	return true;
}
// END FUNCTION FOR ACTIVITY QUEUE SORT BY STATUS FORM VALIDATION


// BEGIN FUNCTION FOR ACTIVITY QUEUE SORT BY REFERRER FORM VALIDATION
function sortbyreferrer(s) {
	var form=document.getElementById('SearchReferrer');
	if (document.getElementById('S_referrer').value == "0,-1"){
		return false;
	}
	else {
		form.submit();
	}
}
// END FUNCTION FOR ACTIVITY QUEUE SORT BY REFERRER FORM VALIDATION


// BEGIN FUNCTION FOR CONTACTS SORT BY COMPANY FORM ONCHANGE
function sortcomp(s) {
	var form=document.getElementById('SearchComp');
	form.submit();
	return true;
}
// END FUNCTION FOR CONTACTS SORT BY COMPANY FORM ONCHANGE


// BEGIN UPLOAD VALIDATION FOR FILE TRANSFER
function send_frmupload(){
	var form=document.getElementById('Form_Upload');
	var uFile=document.getElementById('UpFile').value;
	if (uFile == ""){
		alert("Please browse for the file to upload.");return false;
	}
	else {
		form.submit();
		return true;
	}
}
// END UPLOAD VALIDATION FOR FILE TRANSFER


// BEGIN DELETE VALIDATION
function send_frmdelete(dForm,dFile){
	var form=document.getElementById(dForm);
	var file=dFile;
	document.getElementById('dfiledel').value = dFile;
	var agree=confirm("Are you sure you wish to delete '" + file + "' ?");
	if (agree){
		form.submit();
		return true;
	}
	//else {return false;}
}
// END DELETE PROCESSED VALIDATION


// BEGIN UPLOAD VALIDATION FOR CLIENT FILE
function send_docupload(){
	var form=document.getElementById('frm_contactedit');
	var uFile=document.getElementById('UpFile').value;
	if (uFile == ""){
		alert("Please browse for the file to upload.");return false;
	}
	else {
		form.submit();
		//return true;
	}
}
// END UPLOAD VALIDATION FOR CLIENT FILE


// BEGIN DELETE CLIENT FILE CONFIRMATION
function delfile(c) {
	if (confirm("Are you sure you wish to delete this client's file?")) {
		window.location = "contact_edit.cfm?edc=" + c + "&delfile=" + c;
		return true;
	}
}
// END DELETE CLIENT FILE CONFIRMATION


/************* LEFT NAV **************/
function toggleSubnav(sub){
	Nav=document.getElementById("nav" + sub);
	subNav=document.getElementById("sub" + sub);
	if (subNav.className == "hidden"){
		if(subNav) subNav.className = "visible";
		if(Nav) Nav.className = "tier1_selected";
	} else {
		if(subNav) subNav.className = "hidden";
		if(Nav) Nav.className = "tier1";
	}
	return false;
}
/************* LEFT NAV **************/


// BEGIN OPEN PDF
function getacro(pdf) {
	window.open('files/'+ pdf,'_blank','width=800,height=600,menubar=no,scrollbar=no,resizable=no,toolbar=no');
}
// END OPEN PDF

// BEGIN EMAIL VALIDATION
function emailCheck(emailStr) {

/* The following variable tells the rest of the function whether or not
to verify that the address ends in a two-letter country or well-known
TLD.  1 means check it, 0 means don't. */

var checkTLD=1;

/* The following is the list of known TLDs that an e-mail address must end with. */

var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

/* The following pattern is used to check if the entered e-mail address
fits the user@domain format.  It also is used to separate the username
from the domain. */

var emailPat=/^(.+)@(.+)$/;

/* The following string represents the pattern for matching all special
characters.  We don't want to allow special characters in the address. 
These characters include ( ) < > @ , ; : \ " . [ ] */

var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

/* The following string represents the range of characters allowed in a 
username or domainname.  It really states which chars aren't allowed.*/

var validChars="\[^\\s" + specialChars + "\]";

/* The following pattern applies if the "user" is a quoted string (in
which case, there are no rules about which characters are allowed
and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
is a legal e-mail address. */

var quotedUser="(\"[^\"]*\")";

/* The following pattern applies for domains that are IP addresses,
rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
e-mail address. NOTE: The square brackets are required. */

var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

/* The following string represents an atom (basically a series of non-special characters.) */

var atom=validChars + '+';

/* The following string represents one word in the typical username.
For example, in john.doe@somewhere.com, john and doe are words.
Basically, a word is either an atom or quoted string. */

var word="(" + atom + "|" + quotedUser + ")";

// The following pattern describes the structure of the user

var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

/* The following pattern describes the structure of a normal symbolic
domain, as opposed to ipDomainPat, shown above. */

var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

/* Finally, let's start trying to figure out if the supplied address is valid. */

/* Begin with the coarse pattern to simply break up user@domain into
different pieces that are easy to analyze. */

var matchArray=emailStr.match(emailPat);

if (matchArray==null) {

/* Too many/few @'s or something; basically, this address doesn't
even fit the general mould of a valid e-mail address. */

alert("Email address seems incorrect (check @ and .'s)");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).

for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
   }
}

// See if "user" is valid 

if (user.match(userPat)==null) {

// user is not valid

alert("The username doesn't seem to be valid.");
return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address

for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
   }
}
return true;
}

// Domain is symbolic name.  Check if it's valid.
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
//alert("The domain name does not seem to be valid.");
return false;
   }
}

/* domain name seems valid, but now make sure that it ends in a
known top-level domain (like com, edu, gov) or a two-letter word,
representing country (uk, nl), and that there's a hostname preceding 
the domain or country. */

if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The address must end in a well-known domain or two letter " + "country.");
return false;
}

// Make sure there's a host name preceding the domain.

if (len<2) {
alert("This address is missing a hostname!");
return false;
}

// If we've gotten this far, everything's valid!
return true;
}
function IsNumeric(sText){
   var ValidChars = "0123456789()-";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
// END EMAIL VALIDATION