function isempty(aText) {
	if((aText.length==0)||(aText==null)) { return true;	}
	else { return false; }
}

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;
}

function isint(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;
}

function istime(str_time) {

	var timePat = /^(\d{1,2}):(\d{2})?(\s?(AM|am|PM|pm))?$/;

	var matchArray = str_time.match(timePat);
	if (matchArray == null) return false;

	hour = matchArray[1];
	minute = matchArray[2];
	ampm = matchArray[4];

	if (ampm=="") return false;

	if (hour < 0  || hour > 23) return false;
	if  (hour > 12) return false;
	if (minute<0 || minute > 59) return false;

	return true

}

function isdate(str_date) {
        var ok = true;
        var Months=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        try {
                str_date=str_date.split("/");
                if(str_date.length!=3) ok = false
                else {
                    var dd=str_date[1];
                    var mm=str_date[0];
                    var yy=str_date[2];
                    var bi = (yy/4)+" ";
                    var bi2 = (yy/400)+" ";
                    if((bi.indexOf(".")==-1)&&(bi.indexOf(",")==-1)&&(!((bi2.indexOf(".")==-1)&&(bi2.indexOf(",")==-1)))) Months[1] = 29
                    if((!isnumeric(dd))||(!isnumeric(mm))||(!isnumeric(yy))) ok = false
                    if((mm>12)||(mm==0)) ok = false
                    else if((dd>Months[mm-1])||(dd==0)) ok = false
                    if((yy<1900)||(yy>2100)) ok = false
                }
        }
        catch(e) { ok = false }
        return ok
}

function isChecked(objField) {

	var aux=false;
	var i;
	
	for(i=0;i<objField.length;i++) if(objField[i].checked) aux=true;

	return aux;

}

function regshowrequired(objFieldName,objForm,state) {

	var auxTD = "td_"+objFieldName;
	var req = (state)?"required":"";
	document.getElementById(auxTD).className = req+"basictext";
	objForm[objFieldName].className = req+"textfield";
	if(state) objForm[objFieldName].focus();

}

function regsingleshowrequired(objFieldName,objForm,state) {

	var req = (state)?"Required":"";
	objForm[objFieldName].className = req+"textField";
	if(state) objForm[objFieldName].focus();

}

function multishowrequired(objFieldName,objForm,state) {

	var req = (state)?"Required":"";
	objForm[objFieldName].className = req+"multitextfield";
	if(state) objForm[objFieldName].focus();

}

function regselshowrequired(objFieldName,objForm,state) {

	var auxTD = "td_"+objFieldName;
	var req = (state)?"Required":"";
	document.getElementById(auxTD).className = req+"basicText";
	document.getElementById(auxTD+"fld").className = req+"cell";
	if(state) objForm[objFieldName].focus();

}

function emailCheck(emailStr) {

	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";

	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	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;
		}
	}

	if (user.match(userPat)==null) {
		alert("The username doesn't seem to be valid.");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			alert("Destination IP address is invalid.");
			return false;
			}
		}
	return true;
	}

	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;
		}
	}

	if (len<2) {
		alert("This address is missing a hostname.");
		return false;
	}

	return true;

}
