/*******************************************************

common.js

DESC : 블로그에서 공통으로 사용하는 스크립트 함수 모음.

MODIFY :

******************************************************/

//문자열의 중간에 삽입된 공백을 재거한다.
function removeSpace(org_src)
{
    var src="";
    for( i=0; i<org_src.length; i++)
    {
        if( org_src.charAt(i) != ' ')
            src += org_src.charAt(i);
    }
    return src;
}

//문자열을 변환한다.
function replace(str, from, to)
{
    var index;
    var pstr;
    var str1;
    var str2;
    if((index = str.indexOf(from)) >= 0) {
   	str1 = str.substr(0, index);
   	str2 = str.substr(index+(from.length), str.length);
   	pstr = str1;
   	pstr += to;
		if(str2 && str2.length >= from.length) {
	   pstr += replace(str2, from, to);
	 	}
	 	return pstr;
    }else{
    	return str;
    }
}

//문자열의 양쪽(왼쪽, 오른쪽) 공백을 제거 함수 
function trim(src) 
{ 
    var search = 0 

    while ( src.charAt(search) == " ") 
    {  
        search = search + 1 
    } 

    src = src.substring(search, (src.length)) 

    search = src.length - 1 

    while (src.charAt(search) ==" ") 
    { 
        search = search - 1 
    } 

    return src.substring(0, search + 1)         
} 

//문자열의 길이를 계산. 한글인 경우 2글자로 계산.
 function getLength(string) 
 { 
     var ch; 
     var length = 0; 
     if( string == "") return 0; 
     browserName = navigator.appName; 
     browserVer = navigator.appVersion.indexOf("5."); 
     if (browserName == "Netscape") 
         return string.length; 
     else 
     { 
         for ( k = 0; k < string.length; k++ ) 
         { 
             ch = string.charAt(k); 
             if ( ch >= 'ㄱ' && ch <= '힣' ) 
             { 
                 length += 2; 
             } 
             else if ( ch > 128) 
             { 
                 length += 2; 
             } 
             else 
                 length++; 
         } 
         return length; 
     } 
}

// 알바벳과 숫자인 경우만 true
function isAlphaNumeric(checkStr)
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length)
		{
			return (false);
			break;
		}
	}
	return (true);
} 

// 알바벳과 숫자인 경우만 true
function isHangulName(checkStr)
{
     var ch; 
     var length = 0; 
     if( string == "") return 0; 
     browserName = navigator.appName; 
     browserVer = navigator.appVersion.indexOf("5."); 
     if (browserName == "Netscape")  {

         return string.length; 
	 }
     else 
     { 
         for ( k = 0; k < string.length; k++ ) 
         { 
             ch = string.charAt(k); 
             if ( ch >= 'ㄱ' && ch <= '힣' ) 
             { 
                 return true;
             } 
		 }
     } 
	return false;
} 

// 모두 대문자인지 검사.
function isUpperCase(checkStr)
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.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 isValidCode(checkStr)
{
	var checkOK = "abcdefghijklmnopqrstuvwxyz0123456789_";

for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.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(value)
{
	var ch, ch2=1;
	
	if( value =="") return false;
	for ( k = 0; k < value.length; k++ )
	{
		ch = value.charAt(k);
		if ( ch < '0' || ch > '9' )
	    {
			return (false);
		}
	}
	return (true);
}

//날짜형식이 맞는지를 체크한다. 형식 : YYYY-MM-DD
function isDateformat(strDate)
{
      var strMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

      if ( strDate.length != 10 )
      	  return false;

      var YYYY  = eval(strDate.substr(0,4));
      var MM    = eval(strDate.substr(5,2));
      var DD    = eval(strDate.substr(8,2));

      if ( !isNumeric(YYYY) || !isNumeric(MM) || !isNumeric(DD) )
           return false;
		if ( strDate.charAt(4) != '-' || strDate.charAt(7) != '-' )
			  return false

      var MonthDays = (YYYY != 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;
}


 /* 정수형을 M, KB단위로 변경*/
function getByteMask(total_filesize)
{

	if( parseInt(total_filesize) <= 0 )
		return size = "0Kb";

	var size, att_msize, att_ksize, att_bsize;
	att_msize = parseInt(total_filesize) / 1048576;
	att_ksize = ""+( parseInt(total_filesize) % 1048576)/1024;


	// M단위 계산.
	msize = parseInt(att_msize);
	if( msize > 0 )
		size = msize +"M";
	else size ="";

	if( att_ksize.indexOf(".") > 0 )
		size += att_ksize.substring(0, att_ksize.indexOf(".")+2)+"Kb";
	else
		size += att_ksize + "Kb";

	//0.1k이하 올림.
	if( parseInt(size) <= 0 ) size = "0.1Kb";

	return size;

 }

function open_custinfo(user_id)
{
    alert("회원정보 보기 화면이 필요합니다.");
    return;
}

// VAR_CHECKER = ( Form의 변수이름, 변수 길이, 값이없을경우 메세지, 길이가 넘어갈경우 메세지 );
var PART_VAR_CHECKER 			= new Array( "PART"			, 30    , "소속을 등록해주세요!"     , "소속(한글 30자)을 줄여주세요!"       	);
var INTRODUCE_VAR_CHECKER 		= new Array( "INTRODUCE"    , 4000  , "자기소개를 등록해주세요!" , "자기소개(한글 100자)를 줄여주세요!"   	);
var EXPERT_FIELD_VAR_CHECKER 	= new Array( "EXPERT_FIELD" , 30    , "분야를 등록해주세요!"     , "분야(한글 30자)를 줄여주세요!"        	);
var PHONE_VAR_CHECKER 			= new Array( "PHONE"        , 20    , "전화번호를 등록해주세요!" , "전화번호는 20자를 초과할 수 없습니다."	);
var EMAIL_VAR_CHECKER 			= new Array( "EMAIL"        , 50    , "이메일을 등록해주세요!"   , "이메일은 50자를 초과할 수 없습니다."  	);
var SEARCH_VAR_CHECKER			= new Array( "SEARCH_VAL"	, 0		, "검색어를 입력하세요"		, "" 									);

// 변수의 데이터 체크
// formObj : form Object
// varCheckerArr : VAR_CHECKER의 Array
function isValid( formObj, varCheckerArr ){
	var tempValue;
	for( i = 0; i < varCheckerArr.length; i ++ ){
		tempValue = formObj[ varCheckerArr[i][0] ].value;
		if( getLength( trim(tempValue) ) <= 0 ){
			alert(varCheckerArr[i][2]);
		}else if( 
			getLength( trim(tempValue) ) > varCheckerArr[i][1] 
			&& varCheckerArr[i][1] != 0
		){
			alert(varCheckerArr[i][3]);
		}else{
			continue;
		}
		formObj[ varCheckerArr[i][0] ].focus();
		return false;
	}
	return true;
}

