/**
* 공통 함수
*/

function PrintEmbed(EmbID)
{
    document.write(document.getElementById(EmbID).value);
}

function PrintEmbed2(EmbID) 
{ 
    document.write(document.getElementById(EmbID).value);
} 

/**
 * SELECT 박스(Drop-Down)에 있는 모든 옵션을 삭제하는 함수
 * @param select HTML Form의 SELECT 객체(Drop-Down)
 */
function clearOptions(select) {
    if (!select) {
        return;
    }
    for (var i = select.options.length; i > 0; i--) {
        select.remove(i - 1);
    }
}

/**
 * HTML Form TextField의 값을 HTML Form Select로 추가하는 함수
 * @param data  데이터 객체
 * @param select HTML Form Select 객체
 */
function addTextToOptions(data, select) {
    select.options[select.options.length] = new Option(data, data);  
    return false;
}
//*****************************************************************************
// Description : Select Box 선택한 값 추출
// Parameter: combo box 객체, 값 혹은 텍스트
// Return: 선택된 값이나 텍스트
// Usage: 
//*****************************************************************************
function comboSelectedValue(comboObj, valueOrText) {
  var retVal = "";
  if (valueOrText == "VALUE") {
    retVal = comboObj.options[comboObj.selectedIndex].value;
  } else {
    if (valueOrText == "TEXT") {
      retVal = comboObj.options[comboObj.selectedIndex].text;
    }
  }
  return retVal;
}
/**
 * 선택한 라디오 버튼의 값을 반환한다.
 * @param radioButton 라디오 버튼
 * @return 선택한 라디오 버튼의 값
 */
function getRadioButtonValue(radioButton) {
    if (radioButton.length > 0) {
        for (var i = 0; i < radioButton.length; i++) {
            if (radioButton[i].checked) {
                return radioButton[i].value;
            }
        }
    }
}

// 전체 체크박스 선택
function checkAllItem(allform, theform)
{
    if(allform.checked == true)
    {
        for(var i=0; i < theform.length; i++)
        {
            if(theform[i].checked == false)
            {
                theform[i].checked = true;
            }
        }
    }
    else
    {
        for(var i=0; i < theform.length; i++)
        {
            if(theform[i].checked == true)
            {
                theform[i].checked = false;
            }
        }
    }
}

// 선택된 체크박스 수 리턴
function getSelectedItemCount(theform)
{
    var item_count = 0;
    for(var i=0; i < theform.length; i++)
    {
        if(theform[i].checked == true)
        {
            item_count++;
        }
    }

    return item_count;
}

// 선택된 체크박스 아이템 리스트 리턴
function getSelectedItemList(theform)
{
    var item_list = "";
    for(var i=0; i < theform.length; i++)
    {
        if(theform[i].name == "p_checkbox" &&  theform[i].checked == true)
        {
            item_list = item_list + theform[i].value + ";";
        }
    }

    return item_list;
}

// 선택된 체크박스 아이템 리스트 리턴 delimeter 파라미터
function getSelectedItemListByDeli(theform, deli)
{
    var item_list = "";
    for(var i=0; i < theform.length; i++)
    {
        if(theform[i].name == "p_checkbox" &&  theform[i].checked == true)
        {
            item_list = item_list + theform[i].value + deli;
        }
    }

    return item_list;
}

// 윈도우 사이즈 FIT
function body_size()
{
	wid = document.body.scrollWidth+10;
	hei = document.body.scrollHeight+29;
	self.resizeTo(wid,hei);
}

// 바이트수 리턴
function getTextByte(str)
{
    var wch, x, uch = "";
    var szLength = 0;

    for ( x = 0; x < str.length; x ++ )
    {
        wch = str.charCodeAt( x );
        if ( !( wch && 0xFF80 ) )
        {
            szLength ++;
        }
        else if ( !( wch & 0xF000 ) )
        {
            szLength ++;
        }
        else
        {
            szLength += 2;
        }
    }
    return szLength;
}

/**
* 한글을 2바이트 씩 계산하여 입력받은 문자열이 DB에 저장될 때 총 몇바이트를 차지하는지 계산한다.
* 엔터(\r\n)는 2바이트를 차지한다.
* @param val : 입력받은 문자열
*/
function getLength(val)
{

	val = trimIt(val);
	// 입력받은 문자열을 escape() 를 이용하여 변환한다.
	// 변환한 문자열 중 유니코드(한글 등)는 공통적으로 %uxxxx로 변환된다.
	var temp_estr = escape(val);
	var s_index = 0;
	var e_index = 0;
	var temp_str = "";
	var cnt = 0;

	// 문자열 중에서 유니코드를 찾아 제거하면서 갯수를 센다.
	while ((e_index = temp_estr.indexOf("%u", s_index)) >= 0) // 제거할 문자열이 존재한다면
	{
	temp_str += temp_estr.substring(s_index, e_index);
	s_index = e_index + 6;
	cnt ++;
	}

	temp_str += temp_estr.substring(s_index);

	temp_str = unescape(temp_str); // 원래 문자열로 바꾼다.

	// 유니코드는 2바이트 씩 계산하고 나머지는 1바이트씩 계산한다.
	return ((cnt * 2) + temp_str.length) + "";
}

/**
*문자열의 양쪽(왼쪽, 오른쪽) 공백을 제거 함수
*/
function trimIt(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);
}

// 타임스탬프 리턴
function getTimeStamp()
{
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    return stemp = hours+minutes+seconds;
}

// 팝업창을 화면 가운데 띄운다.
// url : url
// popupname : 팝업 윈도우명
// x : width
// y : height
// scroll : 화면 scroll 여부( 'yes','no' )
// resize : 화면 resize 여부( 'yes','no' )
function popUp(url, popupname,x,y,scroll,resize)
{
    window.open(url,popupname,"toolbar=no,width="+x+",height="+y+ ",top="+ (screen.availheight- y )/2+",left="+(screen.availwidth- x)/2 +",directories=no,status=no,scrollbars="+scroll+",resize="+resize+",menubar=no");
}

// 10 미만 숫자앞에 '0'을 붙인다.
function addZero(s)
{
	if( s.length > 1 )
    {
		return s;
	}
    else
    {
		return ("0"+s);
	}
}

// 10미만 숫자앞에 '0' 을 떼어낸다.
function removeZero(s)
{
    if( s.charAt(0) == '0' )
    {
        return s.charAt(1);
    }
    else
    {
        return s;
    }
}

// 랜덤 숫자 리턴
function getRandomNumber(min_num, max_num)
{
    var nr=0;
    while ((nr < min_num) || (nr > max_num))
    {
        nr = Math.round( min_num*Math.random());
    }

    return nr;
}

/**
* Validation 관련 함수
*/

// 영문(대,소문자), 숫자 체크
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);
}

// 사용가능한 id 를 체크
function isAvailableId2(s)
{
    var ch, ch2=1;

    for ( k = 0; k < s.length; k++ )
    {
        ch = s.charAt(k);
        if ( !(('0' <= ch && '9' >= ch ) || ( ch == '_' )) )
        {
            if ( ch == ' ' )
                alert("공백은 사용하실수 없습니다.");
            else
            {
                alert("한글, 영문, 숫자, '_' 외의 문자는 사용하실 수 없습니다.");
            }
            return (false);
        }
    }
    return (true);
}

// 사용가능한 id 를 체크
function isAvailableId3(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 ) || ( 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;
}

// 스트링에 스페이스가 있는지를 체크한다.
function checkQuote(s) {
  if( s.indexOf("'") >= 0 )
	   return true;
  else
	  return false;
}

// 문자열 변환.
function replaceAll(str, str1, str2){

  var temp_str = "";

  if (trimIt(str) != "" && str1 != str2) {
    temp_str =trimIt(str);

    while (temp_str.indexOf(str1) > -1) {
      temp_str = temp_str.replace(str1, str2);
    }
  }
  return temp_str;
}



//URL패턴에 맞는지 테스트한다.
function isURL (url) {
  var urlPattern = /^(?:(?:ftp|https?):\/\/)?(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+(?:com|edu|biz|org|gov|int|info|mil|net|name|museum|coop|aero|[a-z][a-z])\b(?:\d+)?(?:\/[^;"'<>()\[\]{}\s\x7f-\xff]*(?:[.,?]+[^;"'<>()\[\]{}\s\x7f-\xff]+)*)?/;
  return urlPattern.test(url.toLowerCase());
}

// 필드의 값이 URL형식에 맞는지 체크한다.
function checkURL(field) {
  if (!isURL(field.value)) {
    alert('URL형식이 잘못되었습니다.');
    field.focus();
    field.select();
    return (false);
  }
  return (true);
}


// 특수문자 체크
function inputCheckSpecial(obj){
  re = /[~!@\#$%^&*\()\-=+_']/gi;
  if(re.test(obj.value)){
    alert("태그에 특수문자를 사용하실 수 없습니다.");
    obj.value=obj.value.replace(re,"");
  }
}

// 태그 유효성 검증
function tagValidator(strz){

	var checkSpace = /\s/;

	// 구분자체크
	if(strz.length-1 == strz.lastIndexOf(',')){
		alert('태그 마지막에 ,를 입력하실 수 없습니다.');
		return false;
	}

	var parseStr = strz.split(',');

	if(parseStr.length > 10){
		alert('태그는 최대 10개까지 입력하실수 있습니다');
		return false;
	}

	// 공백체크
	for(var k=0;k<parseStr.length;k++){
		if(checkSpace.test(parseStr[k]	)){
			alert('태그에 공백을 입력하실 수 없습니다.');
			return false;
		}
		if(parseStr[k] == ""){
			alert('태그에 공백이 존재할 수 없습니다.');
			return false;
		}
	}

	// 중복체크
	for(var i=0;i<parseStr.length;i++){
		var targetStr = parseStr[i];
		if(i+1 < parseStr.length){
			for(var j=i+1;j<parseStr.length;j++){
				if(targetStr == parseStr[j]){
					alert('태그 \"'+parseStr[j]+'\" 가 중복되었습니다.');
					return false;
				}
			}
		}
	}
	return true;
}

//플래쉬 삽입
 function ObjectWrite_Flash(swfname , width, height) {
        var objString ='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"  width="'+ width+'" height="'+height +'">';
        objString = objString + '<param name="wmode" value="transparent">';
        objString = objString + '<param name="movie" value="'+swfname+'">';
        objString = objString + '<param name="quality" value="high">';
        objString = objString + '<param name="autostart" value="true">';
        objString = objString + '<embed src="'+swfname+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+ width +'" height="'+ height +'"></embed></object>';
        document.write(objString);
    }