﻿//verifier CLASS//
var Verifier = {
	//English
	isAlpha : function(i_alpha)
	{
		return ( i_alpha.search(/[a-z]/gi) > -1 );
	},
	
	//decimal number
	isDigit : function(i_digit)
	{
		return ( i_digit.search(/[0-9]/gi) > -1 );
	},
	
	//English and decimal number
	isAlphaDigit : function(i_alpha_disit)
	{
		return ( i_alpha_disit.search(/[^A-Za-z0-9]/gi) > -1 );
	},
	
	//Email
	isEmail : function(i_email)			//Boolean
	{
		return EmailUtil.isRegular(i_email)
	}
}

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;
	}
}


var __verifier = {
    ver_msg : function(t, msg, lblmsg){
        if(getObject(lblmsg) == null){
            alert(msg);
        }
        else{
            getObject(lblmsg).innerHTML = "* " + msg;
        }
        getObject(t).value="";
        getObject(t).focus();
        return false;
    },
    isUserId : function(v){
        return /^[\w]{4,20}$/g.test(getObject(v).value);
    },
    isLowUserid : function(v){
        return /^[\S]{3,}$/g.test(getObject(v).value);
    },
    isUserPwd : function(v){
        return /^[\S]{4,12}$/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 /[-!#$%&'*+\/^_~{}|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){
        return /^[\S]{1,}.(gif|bmp|jpg|jpeg|png)$/g.test(getObject(v).value);
    }
}

function ButtonClick(e, button){
    var key = (window.event) ? event.keyCode : e.which;
    if (key == 13){
        button.click();
    }
}
