/**
* Validation 관련 함수
*/

// 포인트 셋팅 체크
function isValidPoint(s)
{
    var ch, ch2=1;
    if (s.length < 1)
    {
        return (false);
    }

    for (k = 0; k < s.length; k++ )
    {
        ch = s.charAt(k);
        if (ch < '0' || ch > '9')
        {
            if (k != 0 || ch != '-' )
            {
                return (false);
            }
        }
    }
    return (true);
}

function isValidEmail(valve)
{
    var isEmail = /^([A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)*)@((\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(\.[a-z]{2})?)$/i;
    if(!isEmail.test(valve))
    {
        return false;
    }
    else
    {
        return true;
    }
}

// 영문(대,소문자), 숫자 체크
function isAlphaNumeric(s)
{
    var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for (i = 0;  i < s.length;  i++)
    {
        ch = s.charAt(i);
        for (j = 0;  j < checkOK.length;  j++)
            if (ch == checkOK.charAt(j))
                break;
        if (j == checkOK.length)
        {
            return (false);
            break;
        }
    }
    return (true);
}

// 숫자 체크
function isNumeric(s)
{
    var ch, ch2=1;

    for ( k = 0; k < s.length; k++ )
    {
        ch = s.charAt(k);
        if ( ch < '0' || ch > '9' )
        {
            return (false);
        }
    }
    return (true);
}

// 사용가능한 id 를 체크
function isAvailableId(s)
{
    var ch, ch2=1;

    for ( k = 0; k < s.length; k++ )
    {
        ch = s.charAt(k);
        if ( !(('0' <= ch && '9' >= ch ) ||
            ('A' <= ch && 'Z' >= ch ) ||
            ('a' <= ch && 'z' >= ch ) || ( ch == '_' )) )
        {
            if ( ch == ' ' )
                alert("공백은 사용하실수 없습니다.");
            else
            {
                alert("영문, 숫자, '_' 외의 문자는 사용하실 수 없습니다.");
            }
            return (false);
        }
    }
    return (true);
}

// 스트링에 공백이 있는지 체크한다.
function hasWhiteSpace(s)
{
    var ch;

    for ( k = 0; k < s.length; k++ )
    {
        ch = s.charAt(k);
        if ( ch == ' ' )
        {
            alert("공백은 사용할수 없습니다..");
            return (false);
        }
    }
    return (true);
}

// 스트링에 스페이스가 있는지를 체크한다.
function hasBlankSpace(s)
{
    var es = escape(s);

    if( es.indexOf("%20") >= 0 ) return true;

    return false;
}

// 날짜형식이 맞는지를 체크한다. 형식 : YYYYMMDD
function isDateFormat(strDate)
{
    var strMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

    if (strDate.length != 8) return false;

    var YYYY  = eval(strDate.substr(0,4));
    var MM    = eval(strDate.substr(4,2));
    var DD    = eval(strDate.substr(6,2));

    if (!isNumeric(YYYY) || !isNumeric(MM) || !isNumeric(DD))
       return false;

    var MonthDays = (MM != 2) ? strMonth[MM-1] : (( YYYY%4==0 && YYYY%100 !=0 || YYYY%400 ==0 ) ? 29:28 );

    if ((MM <13 && MM >0 && DD >0 && DD <= MonthDays) == false) return false;

    return true;
}

// validation

var idx = 0;
var checkTitleArray = new Array(); //제목
checkTitleArray[idx++] = "<table";
checkTitleArray[idx++] = "<tr";
checkTitleArray[idx++] = "<td";
checkTitleArray[idx++] = "</td";
checkTitleArray[idx++] = "</tr";
checkTitleArray[idx++] = "</table";
checkTitleArray[idx++] = "<p";
checkTitleArray[idx++] = "</p";
checkTitleArray[idx++] = "<br>";
checkTitleArray[idx++] = "<img";
checkTitleArray[idx++] = "</img";
checkTitleArray[idx++] = "<xmp";
checkTitleArray[idx++] = "</xmp";
checkTitleArray[idx++] = "<script";
checkTitleArray[idx++] = "</script";
checkTitleArray[idx++] = "<iframe";
checkTitleArray[idx++] = "</iframe";
checkTitleArray[idx++] = "<font";
checkTitleArray[idx++] = "</font";
checkTitleArray[idx++] = "<meta";
checkTitleArray[idx++] = "</meta";
checkTitleArray[idx++] = "<form";
checkTitleArray[idx++] = "</form";
checkTitleArray[idx++] = "<input";
//0329 추가
//Cross Site Scripting ...XSS공격 대비추가
checkTitleArray[idx++] = "javascript";
checkTitleArray[idx++] = "onload";
checkTitleArray[idx++] = "onclick";
checkTitleArray[idx++] = "onsubmit";
checkTitleArray[idx++] = "<xml";
checkTitleArray[idx++] = "</xml";
checkTitleArray[idx++] = "<object";
checkTitleArray[idx++] = "</object";

checkTitleArray[idx++] = "window.open";

//SQL - INJECTION  대비 2006-06-12 Standard


idx = 0;
var checkContentArray = new Array(); //내용
//checkContentArray[idx++] = "<table";
//checkContentArray[idx++] = "<tr";
//checkContentArray[idx++] = "<td";
//checkContentArray[idx++] = "</td";
//checkContentArray[idx++] = "</tr";
//checkContentArray[idx++] = "</table";
//checkContentArray[idx++] = "<p";
//checkContentArray[idx++] = "</p";
//checkContentArray[idx++] = "<xmp";
//checkContentArray[idx++] = "</xmp";
checkContentArray[idx++] = "<script";
checkContentArray[idx++] = "</script";
checkContentArray[idx++] = "<iframe";
checkContentArray[idx++] = "</iframe";
checkContentArray[idx++] = "<meta";
checkContentArray[idx++] = "</meta";
checkContentArray[idx++] = "<form";
checkContentArray[idx++] = "</form";
checkContentArray[idx++] = "<input";
checkContentArray[idx++] = "<textarea";
checkContentArray[idx++] = "</textarea";
checkContentArray[idx++] = "<pre";
checkContentArray[idx++] = "</pre";

checkContentArray[idx++] = "window.open";
//0329 추가
//Cross Site Scripting ...XSS공격 대비추가
checkContentArray[idx++] = "javascript";
checkContentArray[idx++] = "onload";
checkContentArray[idx++] = "onclick";
checkContentArray[idx++] = "onsubmit";
checkContentArray[idx++] = "<xml";
checkContentArray[idx++] = "</xml";
checkContentArray[idx++] = "<object";
checkContentArray[idx++] = "</object";

//SQL - INJECTION  대비 2006-06-12 Standard

idx = 0;
var checkCommentArray = new Array(); //코멘트
checkCommentArray[idx++] = "<table";
checkCommentArray[idx++] = "<tr";
checkCommentArray[idx++] = "<td";
checkCommentArray[idx++] = "</td";
checkCommentArray[idx++] = "</tr";
checkCommentArray[idx++] = "</table";
checkCommentArray[idx++] = "<p";
checkCommentArray[idx++] = "</p";
checkCommentArray[idx++] = "<img";
checkCommentArray[idx++] = "</img";
checkCommentArray[idx++] = "<xmp";
checkCommentArray[idx++] = "</xmp";
checkCommentArray[idx++] = "<script";
checkCommentArray[idx++] = "</script";
checkCommentArray[idx++] = "<iframe";
checkCommentArray[idx++] = "</iframe";
checkCommentArray[idx++] = "<font";
checkCommentArray[idx++] = "</font";
checkCommentArray[idx++] = "<meta";
checkCommentArray[idx++] = "</meta";
checkCommentArray[idx++] = "<form";
checkCommentArray[idx++] = "</form";
checkCommentArray[idx++] = "<input";
//0329 추가
//Cross Site Scripting ...XSS공격 대비추가
checkCommentArray[idx++] = "javascript";
checkCommentArray[idx++] = "onload";
checkCommentArray[idx++] = "onclick";
checkCommentArray[idx++] = "onsubmit";
checkCommentArray[idx++] = "<xml";
checkCommentArray[idx++] = "</xml";
checkCommentArray[idx++] = "<object";
checkCommentArray[idx++] = "</object";
//SQL - INJECTION  대비 2006-06-12 Standard


checkCommentArray[idx++] = "window.open";





idx = 0;
var checkTagArray = new Array(); //공통
checkTagArray[idx++] = "<table";
checkTagArray[idx++] = "<tr";
checkTagArray[idx++] = "<td";
checkTagArray[idx++] = "</td";
checkTagArray[idx++] = "</tr";
checkTagArray[idx++] = "</table";
checkTagArray[idx++] = "<p";
checkTagArray[idx++] = "</p";
checkTagArray[idx++] = "<img";
checkTagArray[idx++] = "</img";
checkTagArray[idx++] = "<xmp";
checkTagArray[idx++] = "</xmp";
checkTagArray[idx++] = "<script";
checkTagArray[idx++] = "</script";
checkTagArray[idx++] = "<iframe";
checkTagArray[idx++] = "</iframe";
checkTagArray[idx++] = "<font";
checkTagArray[idx++] = "</font";
checkTagArray[idx++] = "<meta";
checkTagArray[idx++] = "</meta";
checkTagArray[idx++] = "<form";
checkTagArray[idx++] = "</form";
checkTagArray[idx++] = "<input";
//0329 추가
//Cross Site Scripting ...XSS공격 대비추가

checkTagArray[idx++] = "javascript";
checkTagArray[idx++] = "onload";
checkTagArray[idx++] = "onclick";
checkTagArray[idx++] = "onsubmit";
checkTagArray[idx++] = "<xml";
checkTagArray[idx++] = "</xml";
checkTagArray[idx++] = "<object";
checkTagArray[idx++] = "</object";


checkTagArray[idx++] = "window.open";

//SQL - INJECTION  대비 2006-06-12 Standard



function isSpecialChar(orig, key)
{
    var checkTargetArray;

    if (key == "title")  checkTargetArray = checkTitleArray;
    else if (key == "content")    checkTargetArray = checkContentArray;
    else if (key == "comment") checkTargetArray = checkCommentArray;
    else if (key == "common") checkTargetArray = checkTagArray;

    if (orig == "" || orig.length < 1 )
    {
       return 0;
    }
    else
    {
        for (i=0; i < checkTargetArray.length; i++ )
        {
			//alert(checkTargetArray[i].toLowerCase());
			//alert(orig.toLowerCase());
            if (orig.toLowerCase().indexOf(checkTargetArray[i].toLowerCase()) >= 0)
            {
                return i;
            }
        }
        return -1;
    }
}
/*
function checkValidTitle(str)
{
    var checkedIdx = checkInvalid(str, "title");

    if (checkedIdx != -1)
    {
        alert(" \"" + checkTitleArray[checkedIdx] + "\" 는 사용할수 없는 태그입니다." );
        return false;
    }
    else return true;
}

function checkValidContent(str)
{
    var checkedIdx = checkInvalid(str, "content");

    if (checkedIdx != -1)
    {
        alert(" \"" + checkContentArray[checkedIdx] + "\" 는 사용할수 없는 태그입니다." );
        return false;
    }
    else return true;
}

function checkValidComment(str)
{
    var checkedIdx = checkInvalid(str, "comment");

    if( checkedIdx != -1 )
    {
        alert(" \"" + checkCommentArray[checkedIdx] + "\" 는 사용할수 없는 태그입니다." );
        return false;
    }
    else return true;
}
*/
function tagValidation(str)
{
    var checkedIdx = checkInvalid(str, "common");

    if( checkedIdx != -1 )
    {
        alert(" \"" + checkTagArray[checkedIdx] + "\" 는 사용할수 없는 태그입니다." );
        return false;
    }
    else return true;
}