///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// StringTokenizer 
// method :
//          hasMoreTokens()   : ´ÙÀ½ tokenÀÌ ÀÖÀ»¶§ true
//          nextToken()       : ´ÙÀ½ token String À» ¸®ÅÏ
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function StringTokenizer(str, key){
    this.original = str;
    this.sentence = str;
    this.parseKey = key;
    this.accessPoint = 0;
    this.tokens = this.sentence.split(this.parseKey);

    this.hasMoreTokens = function(){
        if(this.tokens.length > this.accessPoint){
            return true;
        }else{
            return false;
        }
    }

    this.nextToken = function(){
        if(this.hasMoreTokens()){
            this.accessPoint++;
            return this.tokens[this.accessPoint-1];
        }else{
            return null;
        }
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¼ýÀÚ¸¦ 3ÀÚ¸®¾¿ ²÷¾î¼­ ','·Î formatÇÏ°Å³ª ','·Î formatµÈ ¼ýÀÚ¿¡¼­ ','¸¦ Á¦°ÅÇÔ
 *
 * @ param strNumber : ¼ýÀÚ string
 * @ param mode      : format mode
 *                     INSERT : ¼ýÀÚ¸¦ ','·Î format 
 *                     DELETE : ','·Î formatµÈ ¼ýÀÚ¿¡¼­ ','¸¦ Á¦°Å 
 * @ return foramtµÈ ¼ýÀÚ string
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    function formatMoney(strNumber,mode)
    {
        var nLength=strNumber.length;
        var i=0,j=0;
        var strResult='';
        if(mode=='INSERT')
        {
            var j=0;
            for(i=nLength-1;i>=0;i--)
            {
                j++;
                strResult=strNumber.substring(i,i+1)+strResult;
                if(j%3==0 && i>0)
                    strResult=','+strResult;    
            }
        }
        else if( mode=='DELETE')
        {
            for(i=nLength-1;i>=0;i--)
            {
                if(strNumber.substring(i,i+1)!=',')
                    strResult=strNumber.substring(i,i+1)+strResult;
            }

        }
        return strResult;
    }


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¹®ÀÚ¿­ÀÌ ÇØ´ç ¹®ÀÚ¿­·Î ½ÃÀÛÇÏ´ÂÁöÀÇ ¿©ºÎ
 * ´ë¼Ò¹®ÀÚ ±¸º°¾ø½¿
 * @ return true or false
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function endsWith(str, checker){
    if(str!=null && checker!=null && str.length > checker.length){
        if(str.substr(str.length-checker.length).toUpperCase() == checker.toUpperCase()){
            return true;
        }else{
            return false;
        }
    }else{
        return false;
    }
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¹®ÀÚ¿­ÀÌ ÇØ´ç ¹®ÀÚ¿­·Î ³¡³ª´ÂÁöÀÇ ¿©ºÎ
 * ´ë¼Ò¹®ÀÚ ±¸º°¾ø½¿
 * @ return true or false
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function startsWith(str, checker){
    if(str!=null && checker!=null && str.length > checker.length){
        if(str.toUpperCase().substr(0,checker.toUpperCase().length) == checker.toUpperCase()){
            return true;
        }else{
            return false;
        }
    }else{
        return false;
    }
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * Cookie °ü·Ã Ã³¸®
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function addCookie(name, value, url, expiredays){
    var todayDate = new Date();
    if(Number(expiredays)>0){
        todayDate.setDate( eval(todayDate.getDate() + expiredays) );
    }else if(Number(expiredays) == 0){
        todayDate = null;
    }else{
        todayDate.setDate( todayDate.getDate() + 30);
    }
    var cookieLine = document.cookie;
    if(cookieLine!=null && cookieLine.length > 1){
        document.cookie = (cookieLine + ";" + name + "=" + escape( value ) + 
            (todayDate!=null ? "; expires=" + todayDate.toGMTString() : "") +
            (url!=null ? "; path="+url : " " ));
    }else{
        document.cookie = name + "=" + escape( value ) + 
            (todayDate!=null ? "; expires=" + todayDate.toGMTString() : "") +
            (url!=null ? "; path="+url : " " );
    }
}

function getCookie(name){
    var Found = false;
    var start, end;
    var i = 0;
    while(i <= document.cookie.length){
        start = i;
        end = start + name.length;
        if(document.cookie.substring(start, end) == name){
            Found = true;
            break;
        }
        i++;
    }

    if(Found == true){
        start = end + 1;
        end = document.cookie.indexOf(";", start);
        if(end < start){
            end = document.cookie.length;
        }
        return document.cookie.substring(start, end);
    }else{
        return "";
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * document ¿¡ flash code¸¦ Ãâ·Â
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function flashWrite(flashStr){
    document.write(flashStr);
}
function flashInnerWrite(target, flashStr){
    document.getElementById(target).innerHTML = flashStr;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * textÀÇ ³»¿ëÁß¿¡ ÁÖ¹Îµî·Ï ¹øÈ£ Çü½ÄÀ» Æ÷ÇÔÇÏ´ÂÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function textInRegistCode(str){
    var format = "[0-9]{6}(-|.|)[1|2|3|4]{1}[0-9]{6}";
    if (str.search(format) != -1) {
        return true;
    }
    return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * textÀÇ ³»¿ëÁß¿¡ ÇÑ±Û¹®ÀÚ°¡ Æ÷ÇÔµÇ¾ú´ÂÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function strInKrChar(value){ 
    // ÇÑ±Û Æ÷ÇÔ¿©ºÎ
    var pattern = new RegExp('[^°¡-ÆR\x20]');
    if(pattern.exec(value) != null){
        // ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´Â °æ¿ì 
        return true; 
    }else{
        return false;
    }
}
function strInNumNEn(value){ 
    // ¿µ¹® ¼ýÀÚ¸¸ Çã¿ë
    var pattern = new RegExp(/^[A-Za-z0-9]/);
    if(pattern.exec(value) != null){
        // ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´Â °æ¿ì 
        return false; 
    }else{
        return true;
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¼ýÀÚ·Î ÀÌ·ç¾îÁø Çü½ÄÀÎÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function strInNum(value){ 
    var format = "[^0-9]{1,}";
    
    if(value.search(format) != -1){
        return false; 
    }else{
        return true;
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¼ýÀÚ¿Í ¿µ¹®À¸·Î ÀÌ·ç¾îÁø Çü½ÄÀÎÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function strInNumNEn(value){
    if(value==null || value.length < 1) return true;
    var temp = value;
    while(temp.indexOf("\\")>-1){
        temp = temp.substr(temp.indexOf("\\")+1);
    }
    temp = temp.replace("[","");
    temp = temp.replace("]","");
    var format = "[^\._A-Za-z0-9]{1,}";
    
    if(temp.search(format) != -1){
        return false; 
    }else{
        return true;
    }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ÀÌ¸ÞÀÏÀÇ Çü½ÄÀÎÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function isEmail(value){ 
    var format = "^([-.0-9a-zA-Z]+)@([-.0-9a-zA-Z]+).([a-zA-Z]+)$";

    if (value.search(format) != -1) {
        return true;
    }
    return false;
}
function checkEmail(email){
    var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check=/@[\w\-]+\./;
    var checkend=/\.[a-zA-Z]{2,3}$/;

    if(((email.search(exclude) != -1)||(email.search(check)) == -1)||(email.search(checkend) == -1)){
        return false;
    }else{
        return true;
    }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ÀüÈ­¹øÈ£ÀÇ Çü½ÄÀÎÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function isPhoneNumber(value){ 
    var format = "^[0-9]\{2,3\}-[0-9]\{3,4\}-[0-9]\{4\}$";

    if (value.search(format) != -1) {
        return true;
    }
    return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ÇÚµåÆù ¹øÈ£ÀÇ Çü½ÄÀÎÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function isMobileNumber(value){
    var format = "^[0-9]\{3\}-[0-9]\{3,4\}-[0-9]\{4\}$";
    if(value.substr(0,3) == "011" || value.substr(0,3) == "016" || value.substr(0,3) == "017" || value.substr(0,3) == "018" || value.substr(0,3) == "019" || value.substr(0,3) == "010"){
        if (value.search(format) != -1) {
            return true;
        }else{
            return false;
        }
    }
    return false;
} 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¹®ÀÚ¿­ ³»¿¡ Tag °¡ Á¸ÀçÇÏ´ÂÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function strInTag(value){
    value = value.replace("&lt;","<");
    value = value.replace("&gt;",">");
    //var format = "<[^>|[0-9a-zA-Z]]*>";
    var format = "<*[0-9a-zA-Z]*>";
    if (value.search(format) != -1) {
        return true;
    }
    return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¹®ÀÚ¿­ ³»¿¡ Script Tag °¡ Á¸ÀçÇÏ´ÂÁö °Ë»ç
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function strInScriptTag(value){
    value = value.replace("&lt;","<");
    value = value.replace("&gt;",">");
    var format = "<*[[Ss][Cc][Rr][Ii][Pp][Tt]]*>";
    if (value.search(format) != -1) {
        return true;
    }
    return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * ¹®ÀÚ¿­ ³»ÀÇ Script ¸ðµÎ Á¦°Å
 * onclick, onload, onmouseover, onmouseout Á¦°Å
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function removeScriptTag(value, replace){
    value = value.replace("&lt;","<");
    value = value.replace("&gt;",">");
    value = value.replace(/<script.*\>.*<\/script>/gi,replace);
    value = value.replace(/<script.*\/>/gi,replace);
    value = value.replace(/<script.*><\/script>/gi,replace);
    value = value.replace(/onclick=/gi,"remove_onclick=");
    value = value.replace(/onload=/gi,"remove_onload=");
    value = value.replace(/onmouseover=/gi,"remove_onmouseover=");
    value = value.replace(/onmouseout=/gi,"remove_onmouseout=");
    return value;
}

