﻿// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 윈도우 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

// ====================================================================================
// 윈도우 오픈 (화면 중앙)
// onclick="open_win('calender.asp', 'calender', 200, 160);"
//
// url        : 주소
// win_id     : 윈도우 이름
// win_width  : 윈도우 가로 크기
// win_height : 윈도우 세로 크기
// ====================================================================================
function open_win(url, win_id, win_width, win_height) {
	var win_opt, o_win;
	win_height = win_height + 30;
	win_opt = "width=" + win_width + ",height=" + win_height + ",resizable=no,status=no,scrollbars=yes";
	win_opt += ",top=" + eval((screen.availHeight / 2) - (win_height / 2)) + ",left=" + eval((screen.availWidth / 2) - (win_width / 2));

	o_win = window.open(url, win_id, win_opt);
	o_win.focus();
}


// ====================================================================================
// 윈도우 오픈 (위치 지정)
// onclick="open_win_pos('calender.asp', 'calender', 200, 160, 512, 384);"
//
// url        : 주소
// win_id     : 윈도우 이름
// win_width  : 윈도우 가로 크기
// win_height : 윈도우 세로 크기
// win_x      : 윈도우 x 좌표
// win_y      : 윈도우 y 좌표
// ====================================================================================
function open_win_pos(url, win_id, win_width, win_height, win_x, win_y) {
	var win_opt, o_win;
	win_height = win_height + 30;
	win_opt = "width=" + win_width + ",height=" + win_height + ",resizable=no,status=no,scrollbars=yes";
	win_opt += ",top=" + win_y + ",left=" + win_x;

	o_win = window.open(url, win_id, win_opt);
	o_win.focus();
}


// ====================================================================================
// 윈도우 오픈 (이미지 업로드)
// onclick="open_image_upload(blog_id);"
//
// blog_id    : 블로그 아이디
// ====================================================================================
function open_image_upload(blog_id) {
	//window.open("/lib/LibImageUpload.aspx?blogid=" + blog_id, "", "width=350,height=180");
	open_win("/lib/LibImageUpload.aspx?type=&blogid=" + blog_id, "", 350, 175);
}

function open_skin_image_upload(blog_id, sType) {
	//window.open("/lib/LibImageUpload.aspx?blogid=" + blog_id, "", "width=350,height=180");
	open_win("/lib/LibImageUpload.aspx?stype="+sType+"&blogid=" + blog_id, "", 350, 175);
}


// ====================================================================================
// 윈도우 오픈 (쪽지)
// ====================================================================================
function open_memo_view(box, no) {
	//window.open("/lib/libViewMemo.aspx?box=" + box + "&no=" + no, "WinViewMemo", "width=340,height=280");
	open_win("/lib/libViewMemo.aspx?box=" + box + "&no=" + no, "WinViewMemo", 340, 300);
}

function open_memo_send(recv) {
	//window.open("/lib/libSendMemo.aspx?recv=" + recv, "WinSendMemo", "width=340,height=280");
	open_win("/lib/libSendMemo.aspx?recv=" + recv, "WinSendMemo", 340, 300);
}


// ====================================================================================
// 웹페이지 대화상자(Modal) 오픈
// open_dialog('calender.asp', 'calender', 200, 160, -1, -1, 0)
//
// url        : 파일명
// argu       : ?
// dlg_width  : 윈도우 가로 크기
// dlg_height : 윈도우 세로 크기
// dlg_x      : 윈도우 위치 x 좌표 (화면중앙일 경우 -1)
// dlg_y      : 윈도우 위치 y 좌표
// edge       : 0 sunken(일반적인 모양)
//              1 raised(경고창과 같은 평평한 모양)
// ====================================================================================
function open_dialog(url, argu, dlg_width, dlg_height, dlg_x, dlg_y, edge) {
	var dlg_opt;

	dlg_opt = "dialogWidth:" + dlg_width + "px; dialogHeight:" + dlg_height + "px; help:no; resizable:no; status:no;";

	if (dlg_x >= 0 && dlg_y >= 0)
		dlg_opt += " dialogTop:" + dlg_y + "px; dialogLeft:" + dlg_x + "px;";
	else
		dlg_opt += " center:yes;";

	if (!edge)
		dlg_opt += " edge:sunken;";
	else
		dlg_opt += " edge:raised;";

	return window.showModalDialog(url, argu, dlg_opt);
}


// ====================================================================================
// 풍선 도움말 형태로 보기
// onmousemove="balloon_move(oDIV, padding_x, padding_y);" onmouseover="balloon_show(oDIV, '내용');" onmouseout="balloon_hide(oDIV);"
//
// oDIV      : DIV 개체
// padding_x : 마우스와 풍선과의 x 거리
// padding_y : 마우스와 풍선과의 y 거리
// ====================================================================================
function balloon_move(oDIV, padding_x, padding_y) {
	if (event.clientX >= (document.body.offsetWidth / 2))
		oDIV.style.posLeft = event.x - (oDIV.offsetWidth + padding_x) + document.body.scrollLeft;
	else
		oDIV.style.posLeft = event.x + padding_x + document.body.scrollLeft;

	if (event.clientY >= (document.body.offsetHeight / 2))
		oDIV.style.posTop = event.y - (oDIV.offsetHeight + padding_y) + document.body.scrollTop;
	else
		oDIV.style.posTop = event.y + padding_y + document.body.scrollTop;
}

function balloon_show(oDIV, str) {
	oDIV.innerHTML = "<TABLE border=0 cellspacing=0 cellpadding=0 bgcolor=#ffffe1 style='border:1 solid #000000;'><TR><TD>" + str.split("＂").join("\"").split("＇").join("\'") + "</TD></TR></TABLE>";

	if (event.clientX >= (document.body.offsetWidth / 2))
		oDIV.style.posLeft = event.x - (oDIV.offsetWidth + 10) + document.body.scrollLeft;
	else
		oDIV.style.posLeft = event.x + 10 + document.body.scrollLeft;

	if (event.clientY >= (document.body.offsetHeight / 2))
		oDIV.style.posTop = event.y - (oDIV.offsetHeight + 10) + document.body.scrollTop;
	else
		oDIV.style.posTop = event.y + 10 + document.body.scrollTop;

	oDIV.style.visibility = "visible";
}

function balloon_hide(oDIV) {
	oDIV.style.visibility = "hidden";
	oDIV.innerHTML = "";
}


// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 입력 제어, 검증  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

// ====================================================================================
// 주민등록번호를 정확히 입력했는지 확인
//
// aaa : 주민번호 앞 6 자리
// bbb : 주민번호 뒤 7 자리
// ====================================================================================
function confirm_jumin_num(aaa, bbb) {
	var tmp = 0;
	var yy = aaa.substring(0, 2);
	var mm = aaa.substring(2, 4);
	var dd = aaa.substring(4, 6);
	var sex = bbb.substring(0, 1);
	var ccc = aaa + bbb;
	var i;

	if ((ccc.length != 13) || ( mm < 1 || mm > 16 || dd < 1) || (sex != 1 && sex != 2 && sex != 3 && sex != 4)) return false;

	for (i = 0; i <= 5; i++)
		tmp = tmp + ((i % 8 + 2) * parseInt(aaa.substring(i, i + 1)));

	for (i = 6; i <= 11; i++)
		tmp = tmp + ((i % 8 + 2) * parseInt(bbb.substring(i - 6, i - 5)));

	tmp = 11 - (tmp % 11);
	tmp = tmp % 10;

	if (tmp != bbb.substring(6,7)) return false;

	return true;
}


// ====================================================================================
// 숫자만 입력받기
// ====================================================================================
function only_number() {
	if (!((event.keyCode >= 48 && event.keyCode <= 57) || event.keyCode == 46))
		event.returnValue = false;
}


// ====================================================================================
// 엔터키를 눌렀을 경우 해당 함수를 호출
//
// fn_name : 함수명 ("window.close()")
// ====================================================================================
function enter_fn_exec(fn_name) {    
    if (event.keyCode == 13)    
        if(fn_name!="")    
            setTimeout(fn_name, 0);
        else
            return false;
        
}


// ====================================================================================
// 빈값 허용하지 않는 입력폼 체크
//
// ctrl : 컨트롤 개체 (document.all.Email)
// msg  : 경고창에 보여질 내용
// ====================================================================================
function not_null(ctrl, msg) {
	if (ctrl.value.trim() == "") {
		alert(msg);
		ctrl.focus();
		return false;
	}
	return true;
}

// ====================================================================================
// 메일주소 형식 검사
//
// ctrl : 컨트롤 개체 (document.all.Email)
// ====================================================================================
function confirm_email(ctrl) {
	var exclude = /[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check = /@[\w\-]+\./;
	var checkend = /\.[a-zA-Z]{2,3}$/;

	if (((ctrl.value.search(exclude) != -1) || (ctrl.value.search(check)) == -1) || (ctrl.value.search(checkend) == -1)) {
		alert("이메일 주소를 확인해주세요.");
		ctrl.focus();
		return false;
	}

	return true;
}

// ====================================================================================
// 글자수 계산
//
// str : 내용
// ====================================================================================
function chk_str_len(str) {
   var i, str_len, ascii;

   i = 0, str_len = 0;

   while (i < str.length) {
       ascii = str.charCodeAt(i);

       if (31 < ascii && ascii < 127)
           str_len += 1;
       else
           str_len += 2;

       i++;
   }

   return str_len;
}


// ====================================================================================
// URL 형식 검사
//
// ctrl : 컨트롤 개체 (document.all.URL)
// ====================================================================================
function confirm_url(ctrl) {
	var RegExp = "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
	if (ctrl.value.search(RegExp) == -1) {
		alert("URL 형식에 어긋납니다. 다시 입력해주세요.");
		ctrl.focus();
		return false;
	}

	return true;
}


// ====================================================================================
// 전화번호 형식 검사
//
// ctrl : 컨트롤 개체
// ====================================================================================
function confirm_phone_num(ctrl) {
    var RegExp = /^0(?:\d{1}|\d{2}|\d{3})-(?:\d{3}|\d{4})-\d{4}$/;

    if (ctrl.value.search(RegExp) == -1) {
        alert("올바른 전화번호를 입력하세요.\n\n예) 02-100-1000");
		ctrl.focus();
		return false;
	}
	else
		return true;
}


// ====================================================================================
// 핸드폰번호 형식 검사
//
// ctrl : 컨트롤 개체
// ====================================================================================
function confirm_handphone_num(ctrl) {
    var RegExp = /^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$/;

    if (ctrl.value.search(RegExp) == -1) {
        alert("올바른 핸드폰번호를 입력하세요.\n\n예) 010-100-1000");
		ctrl.focus();
		return false;
	}
	else
		return true;
}


// ====================================================================================
// 년월일 형식 검사
//
// ctrl : 컨트롤 개체
// ====================================================================================
function confirm_yyyymmdd(ctrl) {
    var RegExp = /^(?:1|2)\d{3}[-./](?:0[1-9]|1[0-2])[-./](?:0[1-9]|[12]\d{1}|3[01])$/;

    if (ctrl.value.search(RegExp) == -1) {
        alert("올바른 년월일을 입력하세요.\n\n예) [1900-01-01] [1900/01/01] [1900.01.01]");
		ctrl.focus();
		return false;
	}
	else
		return true;
}


// ====================================================================================
// 년월일 검사
//
// yyyymmdd : 날짜
// ====================================================================================
function is_date(y, m, d) {
	if (isNaN(y) || isNaN(m) || isNaN(d))
		return false;

	yyyy = parseInt(y, 10);
	mm = parseInt(m, 10);
	dd = parseInt(d, 10);

	var LastDayAry = new Array(13);

	LastDayAry[1] = 31;
	LastDayAry[2] = 28
	LastDayAry[3] = 31;
	LastDayAry[4] = 30;
	LastDayAry[5] = 31;
	LastDayAry[6] = 30;
	LastDayAry[7] = 31;
	LastDayAry[8] = 31;
	LastDayAry[9] = 30;
	LastDayAry[10] = 31;
	LastDayAry[11] = 30;
	LastDayAry[12] = 31;

	if (((yyyy % 4 == 0) && (yyyy % 100 != 0)) || (yyyy % 400 == 0))
		LastDayAry[2] = 29;

	if (yyyy > 0 && (0 < mm && mm < 13) && (0 < dd && dd <= LastDayAry[mm]))
		return true;
	else
		return false;
}


function confirm_color_code(ctrl, ctrl_desc) {
    var RegExp = /^#[0-9a-fA-F]{6}$/;

    if (ctrl.value.search(RegExp) == -1) {
        alert(ctrl_desc + " 컬러코드를 형식에 맞게 입력해주세요.\n\n예) #CCCCFF");
		ctrl.focus();
		return false;
	}
	else
		return true;
}


// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 폼 컨트롤  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

// ====================================================================================
// 리스트에서 체크박스 전체선택 (반전)
//
// oChkBox    : 처리될 체크박스
// check_yn   : 체크 여부 (true or false)
// ====================================================================================
function chk_all_chkbox(oChkBox, check_yn) {
	if (eval(oChkBox)) {
		if (eval(oChkBox.length)) {
			var chkbox_count = oChkBox.length;

			for (var i = 0; i < chkbox_count; i++)
				oChkBox[i].checked = check_yn;
		}
		else
			oChkBox.checked = check_yn;
	}
}


// ====================================================================================
// 선택한(체크한) 대상이 하나 이상 있는지 확인
//
// oChkBox : 체크박스
// ====================================================================================
function confirm_check(oChkBox) {
	var chkbox_checked;

	chkbox_checked = false;

	if (eval(oChkBox)) {
		if (eval(oChkBox.length)) {
			var chkbox_count = oChkBox.length;

			for (var i = 0; i < chkbox_count; i++) {
				if (oChkBox[i].checked)
					chkbox_checked = true;
			}
		}
		else {
			if (oChkBox.checked)
				chkbox_checked = true;
		}
	}

	return chkbox_checked;
}


// ====================================================================================
// 다음 컨트롤로 이동
//
// ctrl : 컨트롤 개체 (document.all.Email)
// ====================================================================================
function go_next_ctrl(ctrl) {
	var i;
	var keyCode = event.keyCode ? event.keyCode :
                  event.which   ? event.which   : event.charCode;

	if( keyCode == 13 ) {
		for (i = 0; i < ctrl.form.elements.length; i++ ) {
			if (ctrl == ctrl.form.elements[i])
				break;
		}

		i = (i + 1) % ctrl.form.elements.length;

		ctrl.form.elements[i].focus();

		return false;
	}
	else
		return true;
}


// ====================================================================================
// 콤보박스에서 해당값 선택 처리
//
// oSELECT   : SELECT 컨트롤 개체
// str_value : 선택할 값
// ====================================================================================
function sel_opt(oSELECT, str_value) {
	for (var i = 0; i < oSELECT.length; i++) {
		if (oSELECT[i].value == str_value) {
			oSELECT[i].selected = true;
			break;
		}
	}
}


// ====================================================================================
// 라디오버튼에서 해당값 선택 처리
//
// oRADIO   : SELECT 컨트롤 개체
// str_value : 선택할 값
// ====================================================================================
function sel_radio(oRADIO, str_value) {
	if (oRADIO.length > 0) {
		for (var i = 0; i < oRADIO.length; i++) {
			if (oRADIO[i].value == str_value) {
				oRADIO[i].checked = true;
				break;
			}
		}
	}
	else {
		if (oRADIO.value == str_value) {
			oRADIO.checked = true;
		}
	}
}


// ====================================================================================
// 선택된 값 가져오기(checkbox나 radio)
//
// oCtrl     : 컨트롤 개체
// ====================================================================================
function get_selected_val(oCtrl) {
	if (eval(oCtrl.length)) {
		var ctrl_count = oCtrl.length;

		for (var i = 0; i < ctrl_count; i++) {
			if (oCtrl[i].checked)
				return oCtrl[i].value;
		}
	}
	else {
		if (oCtrl.checked)
			return oCtrl.value;
	}

	return "";
}


// ====================================================================================
// 선택된 값 모두 가져오기(checkbox)
//
// oCtrl     : 컨트롤 개체
// ====================================================================================
function get_all_selected_val(oCtrl) {
	var val = "";

	if (eval(oCtrl.length)) {
		var ctrl_count = oCtrl.length;

		for (var i = 0; i < ctrl_count; i++) {
			if (oCtrl[i].checked)
				val += oCtrl[i].value + ",";
		}
	}
	else {
		if (oCtrl.checked)
			val += oCtrl.value + ",";
	}

	val = val.substring(0, val.length - 1);

	return val;
}


// ====================================================================================
// SELECT에 OPTION 추가, 제거, 이동하기, 값 조회, 전체선택, 선택해제
//
// 1. 추    가 : add_opt(SELECT, OPTION text, OPTION value)
// 2. 제    거 : remove_opt(SELECT)
// 3. 모두제거 : remove_all_opts(SELECT)
// 4. 이    동 : move_opt(원본 SELECT, 대상 SELECT, 중복 허용, 복사 or 이동)
//
//               중복 허용
//                0 : 불가
//                1 : 선택
//                2 : 가능
//
//               복사 & 이동
//                0 : 복사
//                1 : 이동
//
// 5. 옵션 text  : get_opt_txts(SELECT)
//                 셀렉트 박스의 모든 글 반환
// 6. 옵션 value : get_opt_vals(SELECT)
//                 셀렉트 박스의 모든 값 반환
// 7. 전체선택
// 8. 선택해제
// 9. 상하 이동  : chg_opt_idx(SELECT, 이동 종류)
//               이동 종류
//               first : 맨 위
//               prev  : 하나 위
//               next  : 하나 밑
//               last  : 맨 밑
// ====================================================================================
function add_opt(oSELECT, opt_text, opt_val) {
	/*if ((opt_text == "") || (opt_val == "")) return;

	var opts_len = oSELECT.options.length;

	for (i = 0; i < opts_len; i++) {
		if ((oSELECT.options[i].text == opt_text) && (oSELECT.options[i].value == opt_val))
			return;
	}*/

	oSELECT.options[oSELECT.options.length] = new Option(opt_text, opt_val, false, false);
}

function remove_opt(oSELECT) {
	if (oSELECT.selectedIndex >= 0)
		oSELECT.remove(oSELECT.selectedIndex);
}

function remove_all_opts(oSELECT) {
	var i, opts_len

	opts_len = oSELECT.options.length;

	if (opts_len > 0) {
		for (i = opts_len - 1; i >= 0; i--)
			oSELECT.remove(i);
	}
}

function move_opt(oSELECT1, oSELECT2, overlap, remove_yn) {
	var i, opts_len, same, oText, oValue;

	if (oSELECT1.selectedIndex >= 0) {
		opts_len = oSELECT2.options.length;

		same = false;

		oText = oSELECT1.options[oSELECT1.selectedIndex].text;
		oValue = oSELECT1.options[oSELECT1.selectedIndex].value;

		for (i = 0; i < opts_len; i++) {
			if ((oSELECT2.options[i].text == oText) && (oSELECT2.options[i].value == oValue))
				same = true;
		}

		switch (overlap) {
			case 0 :
				if (!same)
					add_opt(oSELECT2, oText, oValue);

				break;
			case 1 :
				if (same) {
					if (!confirm("이미 대상에 포함되어 있습니다. 현재 목록에서 삭제 하시겠습니까?"))
						remove_yn = 0;
					else
						remove_yn = 1;
				}
				else
					add_opt(oSELECT2, oText, oValue);

				break;
			case 2 :
				add_opt(oSELECT2, oText, oValue);

				break;
		}

		if (remove_yn == 1)
			remove_opt(oSELECT1);
	}
}

function get_opt_txts(oSELECT) {
	var i, opts_len, str_opt_txts;

	opts_len = oSELECT.options.length;
	str_opt_txts = "";

	for (i = 0; i < opts_len; i++)
		str_opt_txts += oSELECT.options[i].text + ", ";

	return str_opt_txts.substring(0, str_opt_txts.length - 2);
}

function get_opt_vals(oSELECT) {
	var i, opts_len, str_opt_vals;

	opts_len = oSELECT.options.length;
	str_opt_vals = "";

	for (i = 0; i < opts_len; i++)
		str_opt_vals += oSELECT.options[i].value + ", ";

	return str_opt_vals.substring(0, str_opt_vals.length - 2);
}

function select_all(oSELECT) {
	var opt_len = oSELECT.length;

	if (opt_len > 0) {
		for (var i = 0; i < opt_len; i++)
			oSELECT.options[i].selected = true;
	}
}

function deselect_all(oSELECT) {
	var opt_len = oSELECT.length;

	if (opt_len > 0) {
		for (var i = 0; i < opt_len; i++)
			oSELECT.options[i].selected = false;
	}
}

function chg_opt_idx(oSELECT, move_type) {
    if (oSELECT.selectedIndex == -1) {
        alert("이동할 대상을 선택해주세요.");
        return;
    }

    var oOPTION = oSELECT[oSELECT.selectedIndex];
    var opt_len = oSELECT.length;
    var temp_txt = "", temp_val = "";

    if ((oSELECT.selectedIndex == 0 && (move_type == "first" || move_type == "prev"))
    || (oSELECT.selectedIndex == (opt_len - 1) && (move_type == "next" || move_type == "last"))) {
        alert("더 이상 이동할 수 없습니다.");
        return;
    }

    temp_txt = oOPTION.text;
    temp_val = oOPTION.value;

    switch (move_type) {
        case "first":
            for (var i = oSELECT.selectedIndex; i > 0; i--) {
                oSELECT[i].text = oSELECT[i - 1].text;
                oSELECT[i].value = oSELECT[i - 1].value;
            }

            oSELECT[0].text = temp_txt;
            oSELECT[0].value = temp_val;

            oSELECT.selectedIndex = 0;

            break;
        case "prev":
            oOPTION.text = oSELECT[oSELECT.selectedIndex - 1].text;
            oOPTION.value = oSELECT[oSELECT.selectedIndex - 1].value;
            oSELECT[oSELECT.selectedIndex - 1].text = temp_txt;
            oSELECT[oSELECT.selectedIndex - 1].value = temp_val;

            oSELECT.selectedIndex--;

            break;
        case "next":
            oOPTION.text = oSELECT[oSELECT.selectedIndex + 1].text;
            oOPTION.value = oSELECT[oSELECT.selectedIndex + 1].value;
            oSELECT[oSELECT.selectedIndex + 1].text = temp_txt;
            oSELECT[oSELECT.selectedIndex + 1].value = temp_val;

            oSELECT.selectedIndex++;

            break;
        case "last":
            for (var i = oSELECT.selectedIndex; i < (opt_len - 1); i++) {
                oSELECT[i].text = oSELECT[i + 1].text;
                oSELECT[i].value = oSELECT[i + 1].value;
            }

            oSELECT[opt_len - 1].text = temp_txt;
            oSELECT[opt_len - 1].value = temp_val;

            oSELECT.selectedIndex = opt_len - 1;

            break;
    }
}


function chg_opt_idx1(oSELECT, move_type) {
    if (oSELECT.selectedIndex == -1) {
        alert("이동할 대상을 선택해주세요.");
        return;
    }

    var oOPTION = oSELECT[oSELECT.selectedIndex];
    var opt_len = oSELECT.length;
    var temp_txt = "", temp_val = "";
    
    if (oSELECT.selectedIndex == 0 && (move_type == "first" || move_type == "prev" || move_type == "next" || move_type == "last") || (oSELECT.selectedIndex == 1 &&  move_type == "prev" )){
        alert("[그룹없음]은 새로 만든 리스트가 자동 저장되는 위치로 맨 위에 고정되어 있습니다.");
        return;
    }

    if ((oSELECT.selectedIndex == 0 && (move_type == "first" || move_type == "prev"))
    || (oSELECT.selectedIndex == (opt_len - 1) && (move_type == "next" || move_type == "last"))) {
        alert("더 이상 이동할 수 없습니다.");
        return;
    }

    temp_txt = oOPTION.text;
    temp_val = oOPTION.value;
    temp_color = oOPTION.style.color;

    switch (move_type) {
        case "first":
            for (var i = oSELECT.selectedIndex; i > 1; i--) {
                oSELECT[i].text = oSELECT[i - 1].text;
                oSELECT[i].value = oSELECT[i - 1].value;
                oSELECT[i].style.color = oSELECT[i - 1].style.color;
            }

            oSELECT[1].text = temp_txt;
            oSELECT[1].value = temp_val;
            oSELECT[1].style.color = temp_color;

            oSELECT.selectedIndex = 1;

            break;
        case "prev":
            oOPTION.text = oSELECT[oSELECT.selectedIndex - 1].text;
            oOPTION.value = oSELECT[oSELECT.selectedIndex - 1].value;
            oOPTION.style.color = oSELECT[oSELECT.selectedIndex - 1].style.color;
            oSELECT[oSELECT.selectedIndex - 1].text = temp_txt;
            oSELECT[oSELECT.selectedIndex - 1].value = temp_val;
            oSELECT[oSELECT.selectedIndex - 1].style.color = temp_color;

            oSELECT.selectedIndex--;

            break;
        case "next":
            oOPTION.text = oSELECT[oSELECT.selectedIndex + 1].text;
            oOPTION.value = oSELECT[oSELECT.selectedIndex + 1].value;
            oOPTION.style.color = oSELECT[oSELECT.selectedIndex + 1].style.color;
            oSELECT[oSELECT.selectedIndex + 1].text = temp_txt;
            oSELECT[oSELECT.selectedIndex + 1].value = temp_val;
            oSELECT[oSELECT.selectedIndex + 1].style.color = temp_color;

            oSELECT.selectedIndex++;

            break;
        case "last":
            for (var i = oSELECT.selectedIndex; i < (opt_len - 1); i++) {
                oSELECT[i].text = oSELECT[i + 1].text;
                oSELECT[i].value = oSELECT[i + 1].value;
                oSELECT[i].style.color = oSELECT[i + 1].style.color;
            }

            oSELECT[opt_len - 1].text = temp_txt;
            oSELECT[opt_len - 1].value = temp_val;
            oSELECT[opt_len - 1].style.color = temp_color;

            oSELECT.selectedIndex = opt_len - 1;

            break;
    }
}

/*셀렉트 박스에서 복수개를 선택해서 이동시키기-시작*/
//oSELECT : 해당 셀렉트 박스
//move_type : first, prev, next, last
function chg_opt_idx_multi(oSELECT, move_type) {
	if (oSELECT.selectedIndex == -1) {
		alert("이동할 대상을 선택해주세요.");
		return;
    	}
    	
	var opt_len = oSELECT.length;
	
	if ((oSELECT[0].selected && (move_type == "first" || move_type == "prev")) || (oSELECT[opt_len-1].selected && (move_type == "last" || move_type == "next"))) {
		alert("더 이상 이동할 수 없습니다.");
		return;
	}
	
	switch (move_type) {
		case "first":
		    for(i=0; i<oSELECT.length; i++) {
		        if (oSELECT[i].selected) {
		            a = i;
		            break;
		        }
		    }
			break;
		case "prev":
		    a = 1;
			break;
		case "next":
		    a = -1;
			break;
		case "last":
		    for(i=oSELECT.length-1; i>=0; i--) {
		        if (oSELECT[i].selected) {
		            a = (oSELECT.length-1-i) * (-1);
		            break;
		        }
		    }
			break;
	}
	chg_sort_order(oSELECT, a)
	
}

function chg_sort_order(objSEL, move_value) {

	j = 0;
	notSel = "";
	SELText = new Array(objSEL.length);
	SELValue = new Array(objSEL.length);
	SELSel = new Array(objSEL.length);
	
	for (i=0; i<objSEL.length; i++) {
		SELText[i] = objSEL[i].text;
		SELValue[i] = objSEL[i].value;
		if (objSEL[i].selected)
		    SELSel[i] = "1";
		else
		    SELSel[i] = "0";
	}
	for (i=0; i<objSEL.length; i++) {
		if (SELSel[i+Number(move_value)] == "1") {
		    objSEL[i].text = SELText[i+move_value];
		    objSEL[i].value = SELValue[i+move_value];
	        objSEL[i].selected = true;
	    }
		else {
		    objSEL[i].selected = false;
		    notSel += i + ",";
		}
	}
	notSel = notSel.substr(0,notSel.length-1);
	notSEL = notSel.split(",");
	for (i=0; i<objSEL.length; i++) {
	    if (SELSel[i] == "0") {
		    objSEL[notSEL[j]].text = SELText[i];
		    objSEL[notSEL[j]].value = SELValue[i];
	        objSEL[notSEL[j]].selected = false;
	        j++;
	    }
	}

}
/*셀렉트 박스에서 복수개를 선택해서 이동시키기-끝*/


// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 기타 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

// ====================================================================================
// 페이지 이동
//
// url    : 이동할 URL
// target : 대상 윈도우
// ====================================================================================
function chg_loc(url, target) {
	eval(target).location.href = url;
}


// ====================================================================================
// VBS의 Trim 구현 (LTrim, RTrim 동일)
// ====================================================================================
String.prototype.trim = function() {
    return this.replace(/(^ *)|( *$)/g, "");
}

String.prototype.ltrim = function() {
    return this.replace(/(^ *)/g, "");
}

String.prototype.rtrim = function() {
    return this.replace(/( *$)/g, "");
}


// ====================================================================================
// 쿠키 저장
// ====================================================================================
function set_cookie(name, value, expires) {
	document.cookie = name + "=" + escape(value) + "; path=/; expires=" + expires.toGMTString();
}

function get_cookie(name) {
	var nameOfCookie = name + "=";
	var x = 0

	while ( x <= document.cookie.length ) {
		var y = (x + nameOfCookie.length);

		if (document.cookie.substring( x, y ) == nameOfCookie) {
			if ((endOfCookie=document.cookie.indexOf(";", y)) == -1)
				endOfCookie = document.cookie.length;

			return unescape(document.cookie.substring(y, endOfCookie));
		}

		x = document.cookie.indexOf(" ", x) + 1;

		if (x == 0)
			break;
	}

	return "";
}

function hide_gonggam(tbl_id, no) {
	var gonggam_no = get_cookie("hide_gonggam");
	var new_val = "";

	if (gonggam_no != "") {
		arr_no = gonggam_no.substring(1, gonggam_no.length - 1).split("|");

		if (arr_no.length >= 10) {
			for (var i = arr_no.length - 9; i < arr_no.length; i++)
				new_val += ("|" + arr_no[i]);

			new_val += ("|" + no + "|");
		}
		else {
			new_val = "|" + arr_no.join("|") + "|" + no + "|";
		}
	}
	else {
		new_val = "|" + no + "|";
	}

	eval(tbl_id).style.display = "none";

	var expdate = new Date();

	expdate.setTime(expdate.getTime() + 1000 * 3600 * 24 * 30);

	set_cookie("hide_gonggam", new_val, expdate);
}


// ====================================================================================
// 스마트빌 아이디와 비밀번호로 로그인 하십시오. -> 페이지로 이동
// ====================================================================================

function reqLog() {	//로그인요청시
	alert("스마트빌 아이디와 비밀번호로 로그인 하십시오.");

	var LoginPage = "/lib/win_Login.aspx";
	var ReturnPage = this.location.href;

	//location.href = LoginPage + "?ReturnURL=" + escape(ReturnPage);
	centerNewWinNoScroll(LoginPage, "win_Logon", 500, 330);
}

function reqLog1() {	//로그인요청시
	var LoginPage = "/lib/win_Login.aspx";
	var ReturnPage = this.location.href;

	//location.href = LoginPage + "?ReturnURL=" + escape(ReturnPage);
	centerNewWinNoScroll(LoginPage, "win_Logon", 500, 330);
}

function reqLog2() {	//로그인요청시
	var LoginPage = "/lib/win_Login.aspx";
	var ReturnPage = this.location.href;

	LoginPage = LoginPage + "?ReturnURL=" + escape(ReturnPage);
	centerNewWinNoScroll(LoginPage, "win_Logon", 500, 330);
}

function chgMbrStat(mbrid){
    if(confirm("현재 블로그가 휴면상태입니다.\n설정을 변경하시겠습니까?")){
        location.href="/blogmanage/blogmanageInfo.aspx?blogid=" + mbrid;
    }
}

function chgMenuList(mbrid){
    if(confirm("현재 리스트 메뉴를 사용하지 않습니다.\n설정을 변경하시겠습니까?")){
        document.location.target = "_blank";
        document.location.href="/blogmanage/BlogmanageMenu.aspx?blogID=" + mbrid;
    }
}

function go_random() {
	location.href = "/lib/LibRandomBlog.aspx";
}

function go_fav_friend(oSELECT, mbr_id) {
	switch (oSELECT.value.split('|')[0]) {
		case "":
			break;
		case "-1":
			location.href = "/Default.aspx" + "?ReturnURL=" + this.location.href;
			break;
		case "0":
			location.href = "/blogmanage/BlogmanageFriend.aspx?blogid=" + mbr_id;
			break;
		case "blog":
			location.href = "/blog/BlogPersonalMain.aspx?blogid=" + oSELECT.value.split('|')[1];
			break;
	}
}

function centerNewWinNoScroll(url, winName, width, height) {
  var wi = screen.width - width;
  var hi = screen.height - height;
  
  if( wi < 0 ) wi = 0;   
  if( hi < 0 ) hi = 0;
  
  var info = 'left=' + (wi/2) + ',top=' + (hi/2) + ',width='  + width + ',height=' + (height+30) + ',resizable=no,scrollbars=no,menubars=no,status=no';
  var newwin = window.open(url, winName, info);
  newwin.focus();
  return newwin;
}

function AgreeContView() {
	centerNewWinNoScroll("http://www.yes24.com/Member/FTPopup_AgreementBlog.aspx","블로그약관", 440, 343);
}

function go_favorite(val)
{
    if(val!="")
    {
        if(val.substring(0,4)=="blog")
            location.href = "/" + val.substring(5,val.length);
        else if(val.substring(0,4)=="club")
            location.href = "http://club.yes24.com/" + val.substring(5,val.length);
    }
}
