/////-----------------------------------------
function getElementNumber(frmField,iForm){
	if (iForm==null) iForm = 0;
	var frm = eval("document.forms[" + iForm + "]");
	for(var i=0; i<frm.elements.length;i++)
		{	if(frmField.name==frm.elements[i].name) break;	}	
	return i;
}
////----------------------------------------------
function checkdate(dtFld){
	if(!isTyped(dtFld)) return;
	var dt = dtFld.value		///can allTrim(dt) it here;
	var re = /^(1[0-2]|0?[1-9])\/([12][0-9]|3[01]|0?[1-9])\/((18|19|20|21)\d\d)$/;	
	if(!re.test(dt)){	
		alert("Please enter a date in the valid format mm/dd/yyyy"); 
		dtFld.select(); 
		return false;	
	}
	var sResult = RSExecute("rsRemoteScripts.asp","isThisDate",dt);
	if(!sResult.return_value){
		alert("Please enter a valid date");
		dtFld.select();
		return false;
	}
	return true;
}
////------------------------------------------
function isTyped(frmField){ 
	var txtFld = frmField.value; 
	if (txtFld == "") return false;
	for (var i=0; i<txtFld.length; ++i)
	{
		if (txtFld.charAt(i) != " ")return true; 
	}
	return false;
} 
///-------------------------------------------------
function isFilled(frmField, msg){ 
	var txtFld = frmField.value; 
	if (txtFld == ""){
		alert("The field " + msg + " cannot be empty");
		frmField.focus()
		return false;
	}
	var i;
	for (i=0; i<txtFld.length; ++i){
		if (txtFld.charAt(i) != " ")return true; 
	}
	alert("The field " + msg + " cannot be empty");
	frmField.value = "";
	if (frmField.disabled == false) frmField.focus()
	return false;
} 
////////-------------------------------------------------
function isEmail(str) { 
  var supported = 0;   ////- are regular expressions supported?
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

///-------------------------------------------------
function radioChecked(choice, msg){	
	var coll = document.all[choice.id];
	if (coll.checked) //collection has only one radio button
		return true;	
	else {
		for(var i=0; i<coll.length; ++i)
			if (coll[i].checked)	return true;	//one radio in the group was checked		
	}
	coll[0].scrollIntoView(true);
	for(i=0; i<coll.length; ++i) coll[i].style.backgroundColor ='#ff0000';
	alert (msg);
	return false;
}
////--------------------------------------------
function isNum(frmField,msg){
	if (msg==null) msg = "Please enter a number";
	if(isNaN(frmField.value)){
		alert(msg);
		frmField.focus();
		frmField.select()
		return false;
	}
	return true;
}
////-----------------------------------------
function lTrim(x){
	while(x.charAt(0)==" ") x=x.substring(1,x.length)
	return x
}
///-------------------------------------------
function rTrim(x){
	while(x.charAt(x.length-1)==" ") x=x.substring(0,x.length-1)
	return x
}
////-------------------------------------------
function allTrim(x){
	x = rTrim(lTrim(x))
	return x
}
///--------------------------------------------------
function left(str,pos) {	/// mimics VBScript's Left() function
	return str.substring(0, pos); 
} 
////----------------------------------------------
function right(str,pos) {	/// mimics VBScript's Right() function
	return str.substring(str.length - pos, str.length); 
} 
/////---------------------------------------------
function delouse(frmField,msg){
	if (msg==null) msg = "Please enter valid characters only!";  
	else msg = "Please enter valid characters only in the " + msg + " field.";  	
	var badchars = new Array("'","#","$","%","^","&","*","(",")","{","}","[","]",",",":","<",">","?","/","\\","|","+","=","~","`","@","_","-",".",";","!","\"");
	var str = allTrim(frmField.value);
	for (var i=0;i<badchars.length;i++){ 
		if (str.indexOf(badchars[i])!= -1){
			alert(msg);
			frmField.focus(); 
			return false;
		}			
		if (parseInt(str.charCodeAt(i))>122){
			alert(msg);
			frmField.select();
			return false;			
		}		
   } 
   return true; 
}  
/////---------------------------------------------
function removeApostrophes(startPos,endPos){
	var frm = document.forms[0];
	var re = /'/g;
	for(var i=startPos; i< endPos;i++)
		frm.elements[i].value = frm.elements[i].value.replace(re,'');
}
///------------------------------------------------
function deApostrophe(frmField){
	var re = /'/g;
	frmField.value = frmField.value.replace(re,'');
} 
////----------------------------------------------
function isThisDate(dtField){
	if(!isTyped(dtField)) return;
	var dt = allTrim(dtField.value);
	var re = /^(1[0-2]|0?[1-9])\/([12][0-9]|3[01]|0?[1-9])\/((18|19|20|21)\d\d)$/;	
	if(!re.test(dt)){	
		alert("Please enter a date in the valid format mm/dd/yyyy"); 
		dtField.select(); return false;	
	}
	if(!verifyDate(dt)){
		alert("The date you entered is invalid \nor is not in the specified format - mm/dd/yyyy"); 
		dtField.select(); return false;	
	}
	return true;	
}

////----------------------------------------------
function isValidEmail(emlFld){
	if(!isTyped(emlFld)) return;
	if(!isEmail(emlFld.value)){	
		alert("Please enter a vaid Email address"); 
		emlFld.select(); 
		return false;	
	}
	else return true;
}

////----------------------------------------------------
function isPhone(phoneFld){
	if(!isTyped(phoneFld)) return;
	var phone = phoneFld.value;	///can allTrim(phone) it here;
	var re = /^(\d{10}|\d{3}-\d{3}-\d{4}|\(\d{3}\) \d{3}-\d{4})$/;
	if(!re.test(phone)){	
		alert("Please enter a vaid Telephone Number in these formats \n(999) 999-9999 or 999-999-9999"); 
		phoneFld.select(); 
		return false;	
	}
	return true;
}
////----------------------------------------------
function setMaxlength(fld, n){		///	checks the allowed no of characters in a textarea, 
	if(fld.value.length>n){			///	then strips away excess chars
		alert("The maximum length permitted for the field " + fld.name.toUpperCase() + " is " + n + ".");
		fld.value= fld.value.substr(0,n); fld.focus(); return false;
	}
}
////////------------------------------------------
function isPostalCode(pcodeFld){
	if(!isTyped(pcodeFld)) return;
	var pcode = pcodeFld.value;	///can allTrim(phone) it here;
	var re = /^(\D\d\D\d\D\d)$/;
	if(!re.test(pcode)){	
		alert("Please enter a valid Canadian Postal Code in this format - A9A9A9 only"); 
		pcodeFld.select(); 
		return false;	
	}
	return true;
}
/////////---------------------------------------------
	function SubmitCompletionDate(){
		var frm = document.frmComplete;
		for (var i=0; i<frm.elements.length;i++){
			if((frm.elements[i].type=="text") && (!isFilled(frm.elements[i],"\"Completion Date\"\nfor \"" + frm.elements[i].id + "\""))) return;
			if((frm.elements[i].type=="text") && (!compareDate(frm.elements[i].value))){
					alert("Please select a date in the future for completing the \nresource \"" + frm.elements[i].id + "\"");
					return;
				}
		}
		frm.submit();
	}