﻿
var __verifier = {
	ver_msg : function(t, msg){
		alert(msg);
		getObject(t).value="";
		getObject(t).focus();
		return false;
	},
	isUserId : function(v){
		return /^[\w]{4,16}$/g.test(getObject(v).value);
	},
	isLowUserid : function(v){
		return /^[\S]{3,}$/g.test(getObject(v).value);
	},
	isUserPwd : function(v){
		return /^[\S]{8,16}$/g.test(getObject(v).value);
	},
	isLowUserPwd : function(v){
		return /^[\S]{1,}$/g.test(getObject(v).value);
	},
	isNickName : function(v){
		return /^[\w]{2,12}$/g.test(getObject(v).value);
	},
	isZipCode : function(v){
		return /^[\w\-\,\s]{2,12}$/g.test(getObject(v).value);
	},
	isAnwser : function(v){
		return /^[\w\-\,\s]{1,100}$/g.test(getObject(v).value);
	},
	isYear : function(v){
		return /^[\d]{4}$/g.test(getObject(v).value);
	},
	isMonth : function(v){
		return /^[\d]{2}$/g.test(getObject(v).value);
	},
	isDay : function(v){
		return /^[\d]{2}$/g.test(getObject(v).value);
	},
	isValueConfirm : function(v1, v2){
		return getObject(v1).value == getObject(v2).value;
	},
	isEmail : function(v){
	    return EmailUtil.isRegular(v);
		//return /[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+(\.[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+)*@[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+(\.[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+)*/.test(getObject(v).value);
	},
	isBlank : function(v){
		return getObject(v).value.replace(/\s/g, '').length < 1;
	},
	isLimited : function(v, txtmax){
		if(getObject(v).value.length >= txtmax)
		{
			getObject(v).value = getObject(v).value.substring(1, txtmax);
			return false;
		}
		return true;
	},
	isImage : function(v){
		var ary = getObject(v).value.split('.');
		var ext = ary[ary.length-1];
		return /^(gif|bmp|jpg|jpeg|png)$/i.test(ext);
	}
}

var EmailUtil = 
{
	isRegular : function (i_email)
	{
		var checkTLD = 0;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|co|co.kr)$/;
		
		var emailPatten = /^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipdomainPatten=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom = validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var frontPatten=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPatten=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=i_email.match(emailPatten);
		
		if (matchArray == null) {
			return false;
		}

		var front=matchArray[1];
		var domain=matchArray[2];
		for (i=0; i<front.length; i++) {
			if (front.charCodeAt(i)>127) {
				return false;
			}
		}

		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
				return false;
			}
		}

		if (front.match(frontPatten) == null) {
			return false;
		}

		var IPArray = domain.match(ipdomainPatten);
		if (IPArray != null) {
			for (var i = 1; i <= 4; i++) {
				if (IPArray[i] > 255) {
					return false;
				}
			}
			return true;
		}
		
		var atomPat = new RegExp("^" + atom + "$");
		var domainArr = domain.split(".");
		var len = domainArr.length;
		for (i = 0; i < len; i++) {
			if (domainArr[i].search(atomPat)==-1) {
				return false;
			}
		}

		if (checkTLD && domainArr[domainArr.length-1].length!=2 && 
			domainArr[domainArr.length-1].search(knownDomsPat)==-1) {
			return false;
		}

		if (len<2) {
			return false;
		}

		return true;
	}
}