function isDigit(value) {
	intLength = value.length
	for (i=0;i<intLength;i++) {
		if ( isNaN(value.substring(i,i+1)) ) { 
		return false;
		}
	}
	return true;
}
function getDigits(txt,cnt)
{
	var nums="",ndx=0;
	while(ndx < txt.length && !isDigit(txt.substring(ndx,ndx+1))) ++ndx;
	while(cnt > 0 && ndx < txt.length)
	{
		var ch = txt.substring(ndx,ndx+1);
		if(!isDigit(ch)) break;
		nums += ch;
		--cnt; ++ndx;
	}
	return nums;
}
function FieldValidate(fld,sep,keepExtra)
{
	var ok=true, val=fld.value, built=""
		args=FieldValidate.arguments, cArgs = args.length;
	for(var ndx=3;ndx < cArgs;++ndx)
	{
		var pad=(args[ndx]<0), digs = Math.abs(args[ndx]),
			seg = getDigits(val,digs);
		val = val.substring(val.indexOf(seg)+seg.length);
		if (seg.length == 0 || (seg.length != digs && !pad)){ok = false;break;}
		while(seg.length < digs)seg='0'+seg;
		built += seg;
		if (ndx != cArgs-1) built += sep;
	}
	if (val.length > 0)
	{
		if(keepExtra) 
			built += (built.length > 0 && val.substring(0,1) != ' '?' ':'')+val;
		else ok = false;
	}
	if (ok) fld.value = built;
	return ok;
}

function validateFieldLength(field,min,max,error) {
	intLength = field.value.length
	if (intLength < min || (intLength > max && max != 0)) {
			if (max == 0) {
				strError = error
			} else {
				strError = error + "\nYou have entered " + intLength + " characters."
			}
			objFocus = field
	}

}
//For Dates only
function FieldValidateD2(fld,sep,keepExtra)
{
	var ok=true, val=fld.value, built=""
		args=FieldValidateD2.arguments, cArgs = args.length;
	for(var ndx=3;ndx < cArgs;++ndx)
	{
		var pad=(args[ndx]<0), digs = Math.abs(args[ndx]),
			seg = getDigits(val,digs);
		val = val.substring(val.indexOf(seg)+seg.length);
		if (seg.length == 0 || (seg.length != digs && !pad)){ok = false;break;}
		while(seg.length < digs)seg='0'+seg;
		if (!isDigit(seg)) {
			ok = false
		}
		built += seg;
		if (ndx != cArgs-1) built += sep;
		
	}
	if (val.length > 0)
	{
		if(keepExtra) 
			built += (built.length > 0 && val.substring(0,1) != ' '?' ':'')+val;
		else ok = false;
	}
	if (ok) fld.value = built;
	return ok;
}

function validateFieldDate(field,error) {
	if ( FieldValidateD2(field,'/',false,-2,-2,-4) ) {
		var bd = field.value, mil = bd.substring(6,7);
		if (mil == '0') {
			mil = '2'
		}
		dtmDate = bd.substring(0,6) + mil + bd.substring(7,10)
		objDate = new Date(dtmDate)
		dtmDate = (objDate.getMonth() + 1) + "/" + objDate.getDate() + "/" + objDate.getFullYear()
		field.value = dtmDate
	} else {
		strError = error
		objFocus = field
	}
}

function validateFieldDigit(field,min,error) {
	strValue = field.value
	intLength = strValue.length
	if (intLength<min) {
		strError = error
		objFocus = field
	} else if (intLength > 0) {
		if (!isDigit(strValue)) {
			strError = error
			objFocus = field
		}
	}
}

function validateImageUpload(field,allowNull,error) {
	if (!allowNull) {
		if (field.value.length	< 1) {
			objFocus = field
			strError = "Please choose an Image to upload."
		}
	}
	if (field.value.length > 0) {
		arrExtensions = new Array()
		arrExtensions[0] = 'gif'
		arrExtensions[1] = 'jpg'
		blnFileValid = false;
		strExtensions = ""
		strFile = field.value.toLowerCase()
		for (i=0;i<arrExtensions.length;i++) {
			if (strFile.indexOf("."+arrExtensions[i]) > 0) {
				blnFileValid = true
			}
		}
		if (!blnFileValid){
			objFocus = field;
			strError = error
		}
	}
}

function validateEmail(field,required) {
		if ( !IsValidEmail(field.value,false) ){
			if (field.value.length>0||required) {
				objFocus = field;
				strError = 'You must enter a full, valid e-mail address of the form "user@company.com"';
			}
		}
}

function validateURL(field,required) {
		if ( !IsValidWebAddress(field.value) ){
			if (field.value.length>0||required) {
				objFocus = field;
				strError = 'You must enter a full, valid URL in the form "www.company.com"';
			}
		}
}

function validateRadioButton(name,error) {
		var blnPass = false,
		intLength = document.forms[0].elements.length
		for (i=0;i<intLength;i++) {
			if (document.forms[0].elements[i].name==name) {
				if (document.forms[0].elements[i].checked) blnPass = true
			}
		}
		if (!blnPass) strError = error
}

function validateDateDiff(field,weeks,error) {
	if (strError == null) {
		objFarDate = new Date(field.value)
		objValidDate = new Date()
		objValidDate.setDate(objValidDate.getDate()+(weeks*7))
		if (objFarDate>objValidDate) {
			strError = error
			objFocus = field
		}
	}
}
