//Khai bao bien
var whitespace = " \t\n\r\@\#\!\$\%\^\&\*\(\)\-\+";

var validWWWDomains = "/.com/.net/.org/.edu/.mil/.gov/.int/.biz/.aero";
var validCountryDomains = "/.ac/.ad/.ae/.af/.ag/.ai/.al/.am/.an/.ao/.aq/.ar/.as/.at/.au/.aw/.az/.ba/.bb/.bd/.be/.bf/.bg/.bh/.bi/.bj/.bm/.bn/.bo/.br/.bs/.bt/.bv/.bw/.by/.bz/.ca/.cc/.cd/.cf/.cg/.ch/.ci/.ck/.cl/.cm/.cn/.co/.cr/.cu/.cv/.cx/.cy/.cz/.de/.dj/.dk/.dm/.do/.dz/.ec/.ee/.eg/.eh/.er/.es/.et/.fi/.fj/.fk/.fm/.fo/.fr/.ga/.gd/.ge/.gf/.gg/.gh/.gi/.gl/.gm/.gn/.gp/.gq/.gr/.gs/.gt/.gu/.gw/.gy/";
	validCountryDomains += "/.hk/.hm/.hn/.hr/.ht/.hu/.id/.ie/.il/.im/.in/.io/.iq/.ir/.is/.it/.je/.jm/.jo/.jp/.ke/.kg/.kh/.ki/.km/.kn/.kp/.kr/.kw/.ky/.kz/.la/.lb/.lc/.li/.lk/.lr/.ls/.lt/.lu/.lv/.ly/.ma/.mc/.md/.mg/.mh/.mk/.ml/.mm/.mn/.mo/.mp/.mq/.mr/.ms/.mt/.mu/.mv/.mw/.mx/.my/.mz/.na/.nc/.ne/.nf/.ng/.ni/.nl/.no/.np/.nr/.nu/.nz/.om/.pa/.pe/.pf/.pg/.ph/.pk/.pl/.pm/.pn/.pr/.ps/.pt/.pw/.py/";
	validCountryDomains += "/.qa/.re/.ro/.ru/.rw/.sa/.sb/.sc/.sd/.se/.sg/.sh/.si/.sj/.sk/.sl/.sm/.sn/.so/.sr/.st/.sv/.sy/.sz/.tc/.td/.tf/.tg/.th/.tj/.tk/.tm/.tn/.to/.tp/.tr/.tt/.tv/.tw/.tz/.ua/.ug/.uk/.um/.us/.uy/.uz/.va/.vc/.ve/.vg/.vi/.vn/.vu/.wf/.ws/.ye/.yt/.yu/.za/.zm/.zr/.zw/";
var validDomains = validWWWDomains + validCountryDomains;

function isEmpty(s){
	return ((s == null) || (s.length == 0));
}

//chuoi co khoang trang tra ve fail, nguoc lai tra ve true
function isWhitespace(s){
    if (isEmpty(s)) return false;
    for (var i = 0; i < s.length; i++) {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) != -1) return false; //Co khoang trang
    }
    return true;
}
//Kiem tra tinh hop le cua domain
function isDomain(s) {
	var domidx = s.lastIndexOf(".");
	var dom = s.substring(domidx);
	var dom_lc = dom.toLowerCase();
	if (validDomains.indexOf("/" + dom_lc + "/") == -1) return false;
	return true;
}

//La email tra ve true, nguoc lai tra ve fail
function isEmail(s) {
	var atsign = s.indexOf("@");
	if (atsign == -1) return false;
	
	var user = s.substring(0, atsign); //Cat tu dau toi dau atsign la user
	var domain = s.substring(atsign+1, s.length); //Cat tu dau atsign toi cuoi la domain

	if (isWhitespace(user)==false) return false;
	if (isWhitespace(domain)==false) return false;
	
	if (isDomain(domain)==false) return false;

	var dot = domain.indexOf(".");
	if (dot == -1) return false;
	return true;
}

