function emailCheck (emailStr) {
	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 (emailStr==''){
		return false;
	}
	if (matchArray==null){
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		return false;
	}	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
			}
		}
		return true;
	}
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		return false;
	}
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4) {
		return false;
	}
	if (len<2) {
		return false;
	}
	return true;
}
function addEvent(obj,evType,fn,useCapture)
{if(!useCapture)useCapture=false;if(obj.addEventListener)
{obj.addEventListener(evType,fn,useCapture);}
else
{if(useCapture)
{alert('This browser does not support event capturing!');}
else
{var evTypeRef='__'+evType;if(obj[evTypeRef])
{if(array_search(fn,obj[evTypeRef])>-1)return;}
else
{obj[evTypeRef]=[];if(obj['on'+evType])obj[evTypeRef][0]=obj['on'+evType];obj['on'+evType]=IEEventHandler;}
obj[evTypeRef][obj[evTypeRef].length]=fn;}}}
function removeEvent(obj,evType,fn,useCapture)
{if(!useCapture)useCapture=false;if(obj.removeEventListener)
{obj.removeEventListener(evType,fn,useCapture);}
else
{var evTypeRef='__'+evType;if(obj[evTypeRef])
{var i=array_search(fn,obj[evTypeRef]);if(i>-1)
{try
{delete obj[evTypeRef][i];}
catch(e)
{obj[evTypeRef][i]=null;}}}}}
function IEEventHandler(e)
{e=e||window.event;var evTypeRef='__'+e.type,retValue=true;for(var i=0,j=this[evTypeRef].length;i<j;i++)
{if(this[evTypeRef][i])
{if(Function.call)
{retValue=this[evTypeRef][i].call(this,e)&&retValue;}
else
{this.__fn=this[evTypeRef][i];retValue=this.__fn(e)&&retValue;}}}
if(this.__fn)try{delete this.__fn;}catch(e){this.__fn=null;}
return retValue;}
function array_search(val,arr)
{var i=arr.length;while(i--)
if(arr[i]&&arr[i]===val)break;return i;}