function completefields (obj, evt, arrname, obj2, arrcode) 
{
	if ((!obj) || (!evt) || (arrname.length == 0)) 
	{ 
		return;
	}
	if (obj.value.length == 0) 
	{ 
		return; 
	}
	var elm = (obj.setSelectionRange) ? evt.which : evt.keyCode;
	if ((elm < 32) || (elm >= 33 && elm <= 46) || (elm >= 112 && elm <= 123)) 
	{ 
		return; 
	}
	var txt = obj.value.replace(/;/gi, ","); 
	elm = txt.split(","); 
	txt = elm.pop(); 
	txt = txt.replace(/^\s*/, "");
	if (txt.length == 0) 
	{ 
		return; 
	}
	if (obj.createTextRange) 
	{ 
		var rng = document.selection.createRange(); 
		if (rng.parentElement() == obj) 
		{ 
			elm = rng.text; 
			var ini = obj.value.lastIndexOf(elm); 
		} 
	} 
	else if (obj.setSelectionRange) 
	{ 
		var ini = obj.selectionStart; 
	}
	for (var i = 0; i < arrname.length; i++) 
	{ 
		elm = arrname[i].toString(); 
		if (elm.toLowerCase().indexOf(txt.toLowerCase()) == 0) 
		{ 
			obj.value += elm.substring(txt.length, elm.length);
			var obj2=document.getElementById(obj2);
			obj2.value=arrcode[i];
			break; 
		} 
	}
	if (obj.createTextRange) 
	{ 
		rng = obj.createTextRange(); 
		rng.moveStart("character", ini); 
		rng.moveEnd("character", obj.value.length); 
		rng.select(); 
	} 
	else if (obj.setSelectionRange) 
	{ 
		obj.setSelectionRange(ini, obj.value.length); 
	} 
}
function completename(obj, evt, arrname) 
{
	if ((!obj) || (!evt) || (arrname.length == 0)) 
	{ 
		return;
	}
	if (obj.value.length == 0) 
	{ 
		return; 
	}
	var elm = (obj.setSelectionRange) ? evt.which : evt.keyCode;
	if ((elm < 32) || (elm >= 33 && elm <= 46) || (elm >= 112 && elm <= 123)) 
	{ 
		return; 
	}
	var txt = obj.value.replace(/;/gi, ","); 
	elm = txt.split(","); 
	txt = elm.pop(); 
	txt = txt.replace(/^\s*/, "");
	if (txt.length == 0) 
	{ 
		return; 
	}
	if (obj.createTextRange) 
	{ 
		var rng = document.selection.createRange(); 
		if (rng.parentElement() == obj) 
		{ 
			elm = rng.text; 
			var ini = obj.value.lastIndexOf(elm); 
		} 
	} 
	else if (obj.setSelectionRange) 
	{ 
		var ini = obj.selectionStart; 
	}
	for (var i = 0; i < arrname.length; i++) 
	{ 
		elm = arrname[i].toString(); 
		if (elm.toLowerCase().indexOf(txt.toLowerCase()) == 0) 
		{ 
			obj.value += elm.substring(txt.length, elm.length);
			break; 
		} 
	}
	if (obj.createTextRange) 
	{ 
		rng = obj.createTextRange(); 
		rng.moveStart("character", ini); 
		rng.moveEnd("character", obj.value.length); 
		rng.select(); 
	} 
	else if (obj.setSelectionRange) 
	{ 
		obj.setSelectionRange(ini, obj.value.length); 
	} 
}
function selectchoice (e, c)
{
	var elem=document.getElementById(e);
	for (x=0; x<elem.length; x++)
	{
		if (elem[x].value==c)
		{
			elem.selectedIndex=x;
		}
	}
}
function suppressenter(elem, evt)
{
	if (evt.keyCode && evt.keyCode==13)
		return false;
	if (evt.which && evt.which==13)
		return false;
}
function switchoff (elem)
{
	e=document.getElementById(elem);
	if (e)
		e.checked=false;
}
function switchon (elem)
{
	e=document.getElementById(elem);
	if (e)
		e.checked=true;
}
function textblur (elem)
{
	t=elem.defaultValue;
	if (elem.value=='') 
		elem.value=t;
}
function textfocus (elem)
{
	t=elem.defaultValue;
	if (elem.value==t)
		elem.value='';
}
function validateEmail (elem)
{
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	thiselem=document.getElementById(elem);
	if (thiselem.value.length>0 && thiselem.value.search(emailRegEx) == -1)
	{
		alert("Please enter a valid email address.");
		thiselem.focus();
		return false;
	}
	else
		return true;
}
/*
	validatefield function
	onkeyup="validatefield(this,'nospecial')" onblur="validatefield(this,'nospecial')
*/
var validatechars={
	'nospecial':/[^\w&^\s]/g, 
	'noquotes':/['\''|'\"']/g, 
	'digits':/[^\d]/g, 
	'phone':/[^\d&^\s&^\-]/g 
	}
function validatefield (fld,chartype)
{ 
	fld.value = fld.value.replace(validatechars[chartype],''); 
}
