var timer1 = null;
var timer2 = null;
var timer3 = null;
var timer4 = null;
var timer_mode = "off";

var main_timer;
var main_timer_mode = "on";
var main_starter;
var main_start_point;
var main_end_point;

function main_changer_on()
{
      posXY = getAbsolutePosition("navigation_main_div");
      $("navigation_changer_div").style.top = posXY[1] + 190 + "px";
      $("navigation_changer_div").style.left = posXY[0] + 650 + "px";
      $("navigation_changer_div").style.display = "inline";
}
function main_mouseover()
{
  main_timer_mode='off';
  clearTimeout(main_starter);
  main_starter = null;
}

function main_mouseout()
{
  clearTimeout(main_starter);
  main_starter = null ;
  main_timer_mode='on';
  main_starter = setTimeout("Scroll();", 4000);
}

function Scroll()
{
  main_timer_mode='on';
  clearInterval(main_timer);
  clearTimeout(main_starter);
  main_starter = null ;
  main_timer = null;
  if (main_start_point==null) { main_start_point = 0 ; main_end_point = 1 ; }
  //document.getElementById('value_get').innerHTML = document.getElementById('navigation_main_div').scrollLeft + "px";
  main_timer = setInterval("Scroll_To();",20);
}

function Scroll_To()
{
  var scroll_px = 70 ;
  var scroll_mount;
  var scroll_left = document.getElementById('navigation_main_div');
	if ( main_start_point < main_end_point ) {
	  if ( main_end_point*800 < scroll_left.scrollLeft + scroll_px  ) { 
	    scroll_left.scrollLeft = main_end_point*800 ;
	    main_start_point = main_end_point ;
	    main_end_point += 1 ;
	    if (main_end_point > 2) { main_end_point = main_end_point - 2 }
	    clearInterval(main_timer);
	    if (main_timer_mode=='on') { main_starter = setTimeout("Scroll();", 4000);}
	  }
	  else {
	  scroll_mount = scroll_px*(main_end_point-scroll_left.scrollLeft/800)*1.5;
	  if (scroll_mount < scroll_px) { scroll_mount = scroll_px ; }
	  scroll_left.scrollLeft +=  scroll_mount ; }
	}
	else {
	  if ( main_end_point*800 > scroll_left.scrollLeft - scroll_px  ) {
	    scroll_left.scrollLeft = main_end_point*800 ;
	    main_start_point = main_end_point ;
	    main_end_point -= 1 ;
	    if (main_end_point < 0) { main_end_point = main_end_point + 2 }
	    clearInterval(main_timer);
	    if (main_timer_mode=='on') { main_starter = setTimeout("Scroll();", 4000);}
	  }
	  else {
	  scroll_mount = scroll_px*(main_end_point-scroll_left.scrollLeft/800)*-1.5;
	  if (scroll_mount < scroll_px) { scroll_mount = scroll_px ; }
	  scroll_left.scrollLeft -=  scroll_mount ; }
	}
}

function Scroll_Go(point){
  main_timer_mode='off';
  var scroll_left = document.getElementById('navigation_main_div');
  clearInterval(main_timer);
  clearTimeout(main_starter);
  main_starter = null;
  main_timer = null;
  main_end_point = point-1;
  //document.getElementById('value_get').innerHTML = (main_end_point*800-scroll_left.scrollLeft)/800;
  if ( scroll_left.scrollLeft < main_end_point*800 ){  main_start_point = main_end_point - 1 ;}
  else {  main_start_point = main_end_point + 1 ;}
  main_timer = setInterval("Scroll_To();",20);
}

function goURL(url) //지정 url로 현재 페이지를 이동. 기본적으로 replace 방식
{
  if (url == "now") {
    if (arguments[1] == 'href') {
      document.location.href = document.location.href;
    } else {
      document.location.replace(document.location.href);
    }
  } else if (url == "back") {
    historyBack();
  } else {
    if (arguments[1] == 'href') {
      document.location.href = url;
    } else {
      document.location.replace(url);
    }
  }
}

function Login() //로그인창 : 아이디, 비밀번호 입력을 확인하고 이상없는 경우 로그인 처리 수행
{
  var f = $("login_form");
  if (f.id.value.length  == 0) { alert("아이디를 입력해 주세요.");   f.id.focus();  return false; }
  if (f.pwd.value.length == 0) { alert("비밀번호를 입력해 주세요."); f.pwd.focus(); return false; }

  new Ajax.Request( '/include/check_login.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      switch (or) {
        case 'NOT_FOUND_TARGET_ID':
          alert('입력하신 아이디와 일치하는 회원정보를 찾을 수 없습니다.');
          $("id").focus();
          break;

         case 'INVALID_PASSWORD':
          alert('비밀번호가 틀렸습니다.\n\n다시 입력해 주세요.');
          $("pwd").value = "";
          $("pwd").focus();
          break;

         case 'LOGIN_OK':
          //alert(document.location.href);
          goURL('now','href');
          break;

         case 'ERR_PARAM_(MODE)':
          alert('전달된 변수에 문제가 있습니다.\n\n확인 후 다시 이용해 주세요.');
          break;
          
         default:
          alert('오류사항 : ' + or.substring(3000, 10000)); // "Exception: " + 
          goURL('/');
          break;
        }
      }
    }
  );
}

function LoginGuest() //로그인창 : 아이디, 비밀번호 입력을 확인하고 이상없는 경우 로그인 처리 수행
{

  new Ajax.Request( '/include/check_guestlogin.asp', { 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      switch (or) {
        case 'NOT_FOUND_TARGET_ID':
          alert('입력하신 아이디와 일치하는 회원정보를 찾을 수 없습니다.');
          $("id").focus();
          break;

         case 'INVALID_PASSWORD':
          alert('비밀번호가 틀렸습니다.\n\n다시 입력해 주세요.');
          $("pwd").value = "";
          $("pwd").focus();
          break;

         case 'LOGIN_OK':
          //alert(document.location.href);
          goURL('now','href');
          break;

         case 'ERR_PARAM_(MODE)':
          alert('전달된 변수에 문제가 있습니다.\n\n확인 후 다시 이용해 주세요.');
          break;
          
         default:
          alert(or); // "Exception: " + 
          goURL('/?mode=3');
          break;
        }
      }
    }
  );
}

function Logout() //로그아웃 호출
{
  goURL("/include/check_logout.asp");
}

function toPwd()  //로그인창 : 아이디 입력칸에서 엔터키 입력시 비밀번호 입력칸으로 포커스 이동
{
  if (event.keyCode == 13) $("pwd").focus();
}

function display_div(url, area, mode, opmode) //url의 호출결과를 area에 표시한다.
{
  var start_opacity = 0;
  var end_opacity = 100;
  var change_time = 0.5;
  var interval_time = 0.1;
  $(area).update("<table style='width:100%;height:380px;text-align:center;vertical-align:middle;'><tr><td><img src='/images/ajax-loader-big.gif' style='margin-to:250px;'/></td></tr></table>");
  if ( mode != "direct" )
  {
    switch (url) {
      case 'UNIV_LIST': 
        url = '/asp/univ_list.asp';
        break;

      case 'CAMPUS_LIST': 
        url = '/asp/campus_list_form.asp';
        break;

      case 'RECRUIT_LIST': 
        url = '/asp/recruit_list_form.asp';
        break;

      case 'KSAT_PERCENT': 
        url = '/asp/ksat_percent_form.asp';
        break;

      case 'KSAT_CUTLINE': 
        url = '/asp/ksat_cutline_form.asp';
        break;

      case 'KSAT_PRETEST': 
        url = '/asp/ksat_pretest_form.asp';
        break;

      case 'USER_LIST': 
        url = '/asp/user_list_form.asp';
        break;

      case 'NONE': 
        if ($("main_div").filters && $("main_div").filters.blendTrans && !opmode){$("main_div").filters.blendTrans.apply();}
        $(area).update("<center style='margin-top:190px;margin-bottom:180px;'>준비중입니다.</center>");
        for_safari();
        if ($("main_div").filters && $("main_div").filters.blendTrans && !opmode){$("main_div").filters.blendTrans.play();}
        return;
        break;

      default : 
        break;
    }
  }
   new Ajax.Request(
    url, 
    {
      asynchronous: true,
      onComplete: function(OR) {
        var or = OR.responseText;
         switch (or) {
          case 'NEED_SESSION':
            goURL("/");
            break;
            
           case 'NO_PERMISSION':
            alert("잘못된 접근입니다.");
            goURL("/");
            break;
            
           case 'NOT_FOUND':
            alert("조회조건과 일치하는 정보를 찾을 수 없습니다.\n\n확인 후 다시 이용해 주세요.");
            goURL("/");
            break;
            
           default:
            if ($("main_div").filters && $("main_div").filters.blendTrans && !opmode){$("main_div").filters.blendTrans.apply();}
            else { if (!opmode) { set_opacity(area,start_opacity); } }
            $(area).update(or);
            for_safari();
            if ($("main_div").filters && $("main_div").filters.blendTrans&& !opmode){ $("main_div").filters.blendTrans.play(); }
            else { 
              if (!opmode) { timer3 = setInterval("opacity_change('" + area + "'," + start_opacity + "," + end_opacity  + ",timer3," + change_time + "," + interval_time + ")",interval_time * 1000); }
            }
            break;
        }
      }
    }
  );
}

function for_safari()
{
  var main_div_height = $("main_div").getHeight();
  var menu_div_height = $("sub_menu_div").getHeight();
  var change_height = main_div_height >= menu_div_height ? main_div_height : menu_div_height ;
  document.getElementById("container_div").style.height = change_height + "px";
  var iframe = document.getElementsByTagName("iframe");
  var obj;
  for (i=0;i<iframe.length;i++){
    if (iframe[i].src == 'http://www.dreamsodam.co.kr/cafe/win.html')
    {
      iframe[i].src = "";
      obj = iframe[i];
      obj.parentNode.removeChild(obj);
    }
  }
}

function type_show(percentID)
{
  if (percentID == $("type_save").value ) return;
  if (timer4) { clearInterval(timer4);}
  var start_opacity = 10;
  var end_opacity = 100;
  var change_time = 0.5;
  var interval_time = 0.1;
  var change_area = 'ksat_percent_div';
  //set_opacity(change_area,end_opacity);
  if ($("main_div").filters && $("main_div").filters.blendTrans){ $("main_div").filters.blendTrans.apply();}
  else { set_opacity(change_area,start_opacity); }
  none_display = $("type_save").value + "";
  if ($(none_display)) $(none_display).hide();
  $("type_save").value = percentID;
  if($(percentID)) {  $(percentID).show(); }
  for_safari();
  if ($("main_div").filters && $("main_div").filters.blendTrans){$("main_div").filters.blendTrans.play();}
  else { 
    timer4 = setInterval("opacity_change('" + change_area + "'," + start_opacity + "," + end_opacity  + ",timer4," + change_time + "," + interval_time + ")",interval_time * 1000);
  }
}

function popup(popup_url,mode,cover_type,close_btn,speed) // 주소, url|html|iframe, cover on/off,닫기버튼 on/off
{
  //각종 변수 설정
  var cover_id = 'popup_cover';
  var contents_id = 'popup_contents';
  var cover = document.getElementById(cover_id);
  var contents = document.getElementById(contents_id);
  var cover_start_opacity = 0;
  var cover_end_opacity = 75;
  var contents_start_opacity = 0;
  var contents_end_opacity = 100;
  var change_time = 0.5; // 기준 1초(1s)
  var interval_time = 0.07; // 기준 1초(1s)
  if (speed == 1) {
    var cover_start_opacity = 99;
    var cover_end_opacity = 100;
    var contents_start_opacity = 99;
    var contents_end_opacity = 100;
    }

  if (timer_mode != 'on') { // 중복하지 않게 제어
    timer_mode = "on";
    if (timer1) {clearInterval(timer1);}
    if (timer2) {clearInterval(timer2);}

    if (!popup_url&&!mode) { // 끄기모드, 켜기모드 판단
      //투명도 설정
      if (cover.style.display != "none") {
        set_opacity(cover_id,cover_end_opacity);
      }

      set_opacity(contents_id,contents_end_opacity);

      //밝기 변화 - 밝기 변화가 끝나면 내용이 지워지게끔 별도로 함수 지정해 설정함-타이머때문에 어쩔수 없음
      timer1 = setInterval("opacity_change('" + contents_id + "'," + contents_end_opacity + "," + contents_start_opacity  + ",timer1," + change_time + "," + interval_time + ")",interval_time * 1000);
      if (cover.style.display != "none") {
        timer2 = setInterval("opacity_change('" + cover_id + "'," + cover_end_opacity + "," + cover_start_opacity + ",timer2," + change_time + "," + interval_time + ")",interval_time * 1000);
      }

    }  else {

      //투명도 설정
      if ( cover_type != 'off') { cover.style.display = "";
        set_opacity(cover_id,cover_start_opacity);
        if (window.ActiveXObject) { // IE
          cover.style.height = (document.body.scrollHeight - 20) + 'px';
        } else if ( window.XMLHttpRequest) { // Mozilla, Safari, ...
          cover.style.height = (document.body.scrollHeight - 20) + 'px';
        }
        cover.style.width = (document.body.scrollWidth) + 'px';
      }
      contents.style.width = "";
      contents.style.height = "";
      contents.style.display = "";
      set_opacity(contents_id,contents_start_opacity);
      // 내용입력
      switch (mode) {
        case 'url':
          new Ajax.Request(
            popup_url,
            {
              asynchronous: false,
              onComplete: function(OR) {
                var or = OR.responseText;
                switch (or) {
                  case 'NEED_SESSION':
                  goURL("/");
                  break;
            
                  case 'NO_PERMISSION':
                   alert("잘못된 접근입니다.");
                   goURL("/");
                   break;
            
                  case 'NOT_FOUND':
                   alert("조회조건과 일치하는 정보를 찾을 수 없습니다.\n\n확인 후 다시 이용해 주세요.");
                   goURL("/");
                   break;
            
                  default:
                   $(contents_id).update(or);
                   break;
                }
              }
            }
          );
          close_btn='off';
          //display_div(popup_url, contents_id, 'direct', 'off');
          break;

        case 'html':
          contents.innerHTML = popup_url;
          break;

        case 'iframe':
          contents.innerHTML = "<iframe name='popup_iframe' id='popup_iframe' src=" + popup_url + " width=" + arguments[0] + " height=" + arguments[1] + " marginwidth='0' marginheight='0' frameborder='0' vspace='0' hspace='0'/></iframe>";
          break;

        default:
          contents.innerHTML = "";
          break;
      }

      //닫기버튼 그리기
      if (close_btn=='on') { 
        if ( !window.ActiveXObject ) { contents.innerHTML += "<br/><br/>";}
        contents.innerHTML += "<div class='popup_close' onclick='popup();' title='닫기' style='text-align:right;width:*;cursor:hand;'>close</div>";}

      //내용중앙정렬
      div_setCenter(contents_id);

      //밝기 변화
      timer1 = setInterval("opacity_change('" + contents_id + "'," + contents_start_opacity + "," + contents_end_opacity + ",timer1," + change_time + "," + interval_time + ")",interval_time*1000);
      if (cover.style.display != "none") {
        timer2 = setInterval("opacity_change('" + cover_id + "'," + cover_start_opacity + "," + cover_end_opacity + ",timer2," + change_time + "," + interval_time + ")",interval_time*1000);
      }
    }
  }
}

function popup_clear(target_name){
  var cover = document.getElementById('popup_cover');
  var contents = document.getElementById(target_name);

  cover.style.display = "none";
  cover.style.height = "100%";
  cover.style.width = "100%";

  contents.innerHTML = "";
  contents.style.display = "none";
  contents.style.top = "0px";
  contents.style.left = "0px";
  contents.style.width = "0px";
  contents.style.height = "0px";
}

function div_setCenter(target_div) {
  var obj = document.getElementById(target_div);
  if (obj) {
    var obj_height = (window.innerHeight || self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight);
    var obj_width = (window.innerWidth || self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth);
    var obj_left = ((window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft) + ((obj_width - ($(target_div).getWidth() || parseInt(obj.style.width) || obj.offsetWidth)) / 2));
    var obj_top = ((window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop) + ((obj_height - ($(target_div).getHeight() || parseInt(obj.style.height) || obj.offsetHeight)) / 2));
    
    if ((obj.width || parseInt(obj.style.width) || obj.offsetWidth) >= obj_width) obj_left = 0;
    if ((obj.height || parseInt(obj.style.height) || obj.offsetHeight) >= obj_height) obj_top = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
    
    obj.style.left = obj_left + "px";
    obj.style.top = obj_top + "px";
  }
}

function set_opacity(target_name,op) {
  //var obj = $(target_name).style ;
  var obj = document.getElementById(target_name).style ;
  if (!obj) { alert('오류');}
  obj.opacity = ( op / 100);
  obj.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=' + op + ') DXImageTransform.Microsoft.blendTrans(duration=0.5)';
  obj.MozOpacity = ( op / 100);
  obj.KhtmlOpacity = ( op / 100);
}

function opacity_change(target_name,start_op,end_op,timer,change_time,interval_time) {
  var obj = document.getElementById(target_name).style ;
  var opacity_different = (end_op - start_op) / ( change_time / interval_time );
  var now_opacity = (obj.opacity * 100 || obj.MozOpacity * 100 || obj.KhtmlOpacity * 100 )

  var opacity = now_opacity + opacity_different ; 
    set_opacity(target_name,opacity);
  if ( (start_op < end_op && opacity >= end_op) || (start_op > end_op && opacity <= end_op)) {
    if (start_op > end_op && opacity <= end_op && target_name == 'popup_contents') { popup_clear(target_name); }
    clearInterval(timer);
    timer_mode = "off";
  }
  else {
  }
}

function call_op(target_name){
  var obj = document.getElementById(target_name).style ;
  alert(obj.opacity+","+obj.filter+","+obj.MozOpacity+","+obj.KhtmlOpacity);
}

function board_reply_save(number,mode)
{
  switch (mode) {
    case 'add':
      var f = $("reply_form");
      new Ajax.Request( '/asp/board_reply_save.asp?number=' + number + '&mode=' + mode, { method: 'post',
        parameters: f.serialize(), 
        asynchronous: false,
        onComplete : function(oR) {
          var or = oR.responseText;
          //$('main_div').update(or);
          alert(or);
        }
      });
      break;
      
    case 'edit':
      var f = $("reply_form_"+number);
      new Ajax.Request( '/asp/board_reply_save.asp?number=' + number + '&mode=' + mode, { method: 'post',
        parameters: f.serialize(), 
        asynchronous: false,
        onComplete : function(oR) {
          var or = oR.responseText;
          //$('main_div').update(or);
          alert(or);
        }
      });
      break;
      
    case 'del':
      var f = $("reply_div_"+number);
      new Ajax.Request( '/asp/board_reply_save.asp?number=' + number + '&mode=' + mode, { 
        asynchronous: false,
        onComplete : function(oR) {
          var or = oR.responseText;
          //$('main_div').update(or);
          alert(or);
      }
    });
      break;

    default:
      break;
  }

  document.location.href = document.location.href;
}

function onlineapp_save()
{
  var f = $("postscript");
	if( f.iprotect[1].checked == true || ( f.iprotect[0].checked == false && f.iprotect[1].checked == false )  ) { alert("개인정보 보호방침에 동의하셔야 등록이 가능합니다."); return;}

  if (!$("app_category").value) { alert("신청항목을 선택하세요"); return;}
  if (!$("c_name").value) { alert("이름을 입력하세요."); return;}
  if (!$("phone1").value) { alert("전화번호를 입력하세요"); return;}
  if (!$("phone2").value) { alert("전화번호를 입력하세요"); return;}
  if (!$("phone3").value) { alert("전화번호를 입력하세요"); return;}
  if ($("emailcheck").checked) {
    if (!$("email3").value) { alert("이메일을 입력하세요"); return;}
    if ($("email3").value.search(/([a-zA-Z0-9\_\-\.]+)@([a-zA-Z0-9\_\-\.]+)\.([a-zA-Z0-9\_\-\.]+)/)) { alert("이메일을 정확히입력하세요"); return;}
  }
  else {
    if (!$("email1").value) { alert("이메일을 입력하세요"); return;}
    if ($("email1").value.search(/[a-zA-Z0-9\_\-\.]+/)) { alert("이메일을 정확히 입력하세요"); return;}
    if (!$("email2").value) { alert("웹메일을 선택하세요"); return;}
  }
  if (!$("txtZIP").value) { alert("우편번호를 입력하세요"); return;}
  if (!$("txtADDR1").value) { alert("주소를 입력하세요"); return;}
  if (!$("txtADDR2").value) { alert("주소를 정확히 입력하세요"); return;}

  new Ajax.Request( '/asp/application_save.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      $('main_div').update(or);
      for_safari();
    }
  });
}

function onlineapp_edit(number,mode)
{
  new Ajax.Request( '/asp/application_edit.asp?appid=' + number + '&mode=' + mode, { 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      alert(or);
    }
  });
  document.location.href = document.location.href;
}


function view_change(unview,view)
{
  document.getElementById(unview).style.display = "none";  
  document.getElementById(view).style.display = "inline";
}

function mb_leave()
{
  if(confirm('결제 내역도 같이 삭제됩니다. \n\n탈퇴하시겠습니까?')) {
    new Ajax.Request( '/asp/mb_leave.asp', {
      asynchronous: false,
      onComplete : function(oR) {
        var or = oR.responseText;
        switch (or) {
          case 'DELETED':
            alert('회원정보가 삭제되었습니다.');
            goURL("/");
            break;

          case 'NEED_SESSION':
            alert('로그인이 필요합니다.');
            break;
          
           default:
            alert('오류사항 : ' + or.substring(3000, 10000));
            break;
          }
        }
      }
      );
    }
    else {
      return false;
    }
}

function test_sate()
{
  var f = $("reply_form");
  new Ajax.Request( '/asp/board_reply_save.asp?number=' + number + '&mode=' + mode, { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      //$('main_div').update(or);
      alert(or);
    }
  });
}

function slt_area(area)
{
  if (area=='') {return false;}
  area = encodeURIComponent(area);  //UTF-8로 변환
    resetOptions("campus_slt");
    //alert("get_cond2.asp?c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&tid=" + $F("selCond0"));

    new Ajax.Request(
      "/asp/get_univ_list.asp?area=" + area ,
      {
        asynchronous: true,
        onComplete: function(oR) {
          var or = oR.responseText; //alert(or);

          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/");
              break;

            case 'NEED_INPUT':
              alert("선택하신 시험의 성적정보가 정확하게 입력되어 있지 않습니다.\n\n성적입력 화면에서 성적정보를 확인 후 정정해 주십시오.");
              break;

            case 'NOT_FOUND_MATCHED_DATA':
              alert("지정하신 조건에 일치하는 대학을 찾을 수 없거나\n\n선택하신 시험에 해당하는 대학별 전형정보를 확보중입니다.\n\n조회조건을 확인 후 다시 이용해 주세요.");
              break;

            case 'NOT_FOUND':
              alert("관련 정보 조회 과정에서 오류가 발생했습니다.");
              break;

            default:
              //if ( su == 1 ) { alert(or); }
              //alert(or);
              addOptions2("campus_slt", or);
              break;
          }
        }
      }
    );

}

function submit_form(form,url,change) //로그인창 : 아이디, 비밀번호 입력을 확인하고 이상없는 경우 로그인 처리 수행
{
  var f = $(form);

  new Ajax.Request( '/asp/' + url + '.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      switch (or) {
         case 'OK':
           alert('저장하였습니다.');
           break;
         
         default:
           if (change==null) {
             alert(or); // "Exception: " + 
           }
           else {
             f.update(or);
           }
           
           break;
        }
      }
    }
  );
  popup();
}

function setCookie( name, value, expiredays ) { 
//쿠키 설정용
    var todayDate = new Date(); 
        todayDate.setDate( todayDate.getDate() + expiredays ); 
        document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
    } 

function closeNotice() { 
    if ( document.getElementById('chkok').checked ){ 
        setCookie( "notice", "done" , 1 ); 
    } 
    popup();
}

//이하는 이전 함수들임------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  function handlerNum(obj) { //숫자 검증함수
    e = window.event;

    //alert(e.keyCode);

    //숫자열 0 ~ 9 : 48 ~ 57, 키패드 0 ~ 9 : 96 ~ 105 ,8 : backspace, 46 : delete, 190: ., 9: TAB -->키코드값을 구분
    if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || (e.keyCode >= 37 && e.keyCode <= 40) || e.keyCode == 8 || e.keyCode == 9 || e.keyCode == 46 || e.keyCode == 190 || e.keyCode == 110) {
      if (e.keyCode == 48 || e.keyCode == 96)//0을 눌렀을 경우
     {
       if (obj.value == "") //아무 것도 없는 상태에서 0을 눌렀을 경우
          e.returnValue = false; //-->입력되지 않는다.
        else //다른 숫자 뒤에 오는 0은
          return; //-->입력시킨다.
      }
      else //0이 아닌 숫자
        return; //-->입력시킨다.
    }
    else //숫자가 아니면 넣을 수 없다.
      e.returnValue = false;
  }

  function saveBaseInfo() {
    var f = $("frmBaseInfo");

    var rSK = document.getElementsByName("rdoStudentKind");
    var rST = document.getElementsByName("rdoStudentType");

    if (rSK[0].checked == false && rSK[1].checked == false) { alert("학생구분을 선택해 주세요."); return; }
    if ($F("selYear") == "X") { alert("졸업년도를 선택해 주세요."); return; }
    if ($F("txtSchoolName").strip() == "") { alert("출신고등학교명을 입력해 주세요."); $("txtSchoolName").focus(); return; }
    if ($F("selSchoolType") == "X") { alert("출신고등학교 학교유형을 선택해 주세요."); return; }
    if (rST[0].checked == false && rST[1].checked == false && rST[2].checked == false && rST[3].checked == false) { alert("학생유형을 선택해 주세요."); return; }

    new Ajax.Request( '/asp/grade_input_baseInfo_save.asp', { method: 'post',
      parameters: f.serialize(), 
      asynchronous: false,
      onComplete : function(oR) {
      var or = oR.responseText;

          switch (or) {
            case 'SAVED':
              alert("저장되었습니다.");
              display_div('/asp/grade_input_baseInfo.asp','main_div','direct');
              break;

            default:
              alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
              alert(or);
              break;
          }
        }
      }
    );
  }

  function saveAttend() { //비교과 성적정보를 저장
    var f = $("frmAttend");

    new Ajax.Request( '/asp/grade_input_AcademicReport_AttendData_save.asp', { method: 'post',
      parameters: f.serialize(), 
      asynchronous: false,
      onComplete : function(oR) {
      var or = oR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              document.location.href = "/";
              break;

            case 'SAVED':
              alert("저장되었습니다.");
              display_div('/asp/grade_input_academicReport.asp','main_div','direct');
              break;

            default:
              alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
              alert(or);
              break;
          }
        }
      }
    );
  }

  function setNaesinPopValue() { //내신성적 수정용 -
    var val = userSelected_SubjectData_val;

    //alert(val.split('|')[0]); //-> 대상 성적정보 일련번호 확인 ([1학기 seqID]_[2학기 seqID])
    callNaesinPop("edit", val.split('|')[0]); //Edit Mode로 성적팝업 호출 및 대상 성적정보 일련번호를 Form에 세팅

    $("selSubjectArea").value = val.split('|')[1];  //교과지정
    setSubjectList(); //교과에 해당하는 과목 로드 및 세팅
    $("selSubject").value = val.split('|')[2];  //과목지정

    enableNaesinInput(userSelected_SubjectData_termType);

    $("txtAreaDisp").value = val.split('|')[3];
    $("txtSubjectDisp").value = val.split('|')[4];
    
    $("txtV1_1").value = val.split('|')[5];
    $("txtV1_2").value = val.split('|')[6];
    $("txtV1_3").value = val.split('|')[7];
    $("txtV1_4").value = val.split('|')[8];
    $("txtV1_5").value = val.split('|')[9];
    $("txtV1_6").value = val.split('|')[10];
    
    $("txtV2_1").value = val.split('|')[12];
    $("txtV2_2").value = val.split('|')[13];
    $("txtV2_3").value = val.split('|')[14];
    $("txtV2_4").value = val.split('|')[15];
    $("txtV2_5").value = val.split('|')[16];
    $("txtV2_6").value = val.split('|')[17];
  }

  function delNaesinData() { //내신성적 삭제용
    var val = userSelected_SubjectData_val;
    //val Example: 5_6|03|74-0|외국어(영어)|영어I|2|3.00|4.00|5.00|6|7|48.00|8|9.00|1.00|2.00|3|4|90.00

    if (confirm(val.split('|')[3] + " > " + val.split('|')[4] + "에 대한 성적정보를 삭제하시겠습니까?")) {
      new Ajax.Request(
        "/asp/ele_delNaesinData.asp?tid=" + val.split('|')[0],
        {
          asynchronous: false,
          onComplete: function(OR) {
            var or = OR.responseText;

            switch (or) {
              case 'NEED_SESSION':
                alert("세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
                document.location.href = "/";
                break;

              case 'NEED_MORE_PARAMETERS':
                alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
                break;

              case 'DELETED':
                alert("삭제되었습니다.");
                display_div('/asp/grade_input_academicReport.asp','main_div','direct');

                callDisplay('ACADEMICREPORT_INPUT');
                break;

              default:
                alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
                break;
            }
          }
        }
      );
    }

  }

  function callNaesinPop(mode) {
    if (mode == "add") {
      $("trSelectBox").show();
      $("trEtcSubject").hide();

      clearChildInput("divNaesin");

      $("grade").value = arguments[1];
      $("seqID").value = "";
    } else {  //edit
      $("grade").value = "";
      $("seqID").value = arguments[1];

      //alert(userSelected_SubjectData_schoolKind);
      if (userSelected_SubjectData_schoolKind == "공통") {
        $("trEtcSubject").hide();
        $("trSelectBox").show();
        $("etcSubjID").value = "";
        $("etcTermType").value = "";
      } else {
        $("trEtcSubject").show();
        $("trSelectBox").hide();
        $("etcSubjID").value = userSelected_SubjectData_subjCode;
        $("etcTermType").value = userSelected_SubjectData_termType;
      }
    }

    showFilm();

    $("divNaesin").show();
    isPop_Naesin = true;
    $("divNaesin").style.top = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop) + (document.documentElement.offsetHeight / 2) - 85 + "px";
  }

  function callSearchSubjectPop(grade) {
    $("tblResult").update();
    $("txtSearchSubject").value = "";
    $("txtNewGrade").value = grade;

    showFilm();

    $("divEtcSubject").show();
    isPop_EtcSubject = true;
    $("divEtcSubject").style.top = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop) + (document.documentElement.offsetHeight / 2) - 117 + "px";

    $("txtSearchSubject").focus();
  }

  
  function clearChildInput(targetParent) {
    var t = $(targetParent).getElementsBySelector("INPUT");
    var s = $(targetParent).getElementsBySelector("SELECT");

    for (i = 0; i < t.length; i++) {
      t[i].value = "";
    }

    s[0].value = "X";
    s[1].options.length = 1;
  }

  function showFilm() {
  var cover_id = 'popup_cover';
  var contents_id = 'popup_contents';
  var cover = document.getElementById(cover_id);
  var cover_start_opacity = 30;
  var cover_end_opacity = 75;
  var change_time = 0.5; // 기준 1초(1s)
  var interval_time = 0.07; // 기준 1초(1s)

  cover.style.display = "";


  if (timer2) {clearInterval(timer2);}


  if (window.ActiveXObject) { // IE
    cover.style.height = (document.body.scrollHeight - 20) + 'px';
  } else if ( window.XMLHttpRequest) { // Mozilla, Safari, ...
    cover.style.height = (document.body.scrollHeight - 20) + 'px';
  }
  cover.style.width = (document.body.scrollWidth) + 'px';

  //투명도 설정
  set_opacity(cover_id,cover_start_opacity);

  //밝기 변화 - 밝기 변화가 끝나면 내용이 지워지게끔 별도로 함수 지정해 설정함-타이머때문에 어쩔수 없음
  if (cover.style.display != "none") {
    timer2 = setInterval("opacity_change('" + cover_id + "'," + cover_start_opacity + "," + cover_end_opacity + ",timer2," + change_time + "," + interval_time + ")",interval_time*1000);
  }

//    $("SLB_film").show();
//    $("SLB_film").style.top = 0;
//    $("SLB_film").style.left = 0;
//    $("SLB_film").style.display = "";
//    if (document.documentElement.scrollHeight > document.body.scrollHeight) {
//      $("SLB_film").style.height = (document.documentElement.scrollHeight - 4) + 'px';
//    } else {
//      $("SLB_film").style.height = (document.documentElement.scrollHeight - 4) + 'px';
//    }
  }

  function setSubjectList() {
    var o = $F("selSubjectArea");

    if (o == "X" || o == "99") {
      $("selSubject").options.length = 1;
    }

    new Ajax.Request(
      "/asp/ele_getSubjectList.asp?o=" + o,
      {
        asynchronous: false,
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_MORE_PARAMETER':
              alert("과목정보 로딩과정에 알 수 없는 오류가 발생했습니다.\n\n잠시 후 다시 이용해 주세요.");
              break;

            case 'NOT_FOUND_DATA':
              $("selSubject").options.length = 1;
              break;

            default:
              var rows = or.split('||-||');
              var cols = "";

              $("selSubject").options.length = 1;

              for (i = 0; i < rows.length; i++) {
                cols = rows[i].split('|--|');

                $("selSubject").insert({ bottom: "<option value=\"" + cols[0] + "-" + cols[1] + "\">" + cols[2] + "</option>" });
              }
              $("selSubject").value = "X";
              break;
          }
        }
      }
    );
  }

  function enableNaesinInput(mode) {
    var target;
    
    for (i = 1; i < 7; i++) {
      target = $("txtV1_" + i);
      
      if (mode == 0 || mode == 1) {
        target.style.backgroundColor = "#FFFFFF";
        target.readOnly = false;
      } else if (mode == 2) {
        target.style.backgroundColor = "#DFDFDF";
        target.value = "";
        target.readOnly = true;
      }

      target = $("txtV2_" + i);
      
      if (mode == 0 || mode == 2) {
        target.style.backgroundColor = "#FFFFFF";
        target.readOnly = false;
      } else if (mode == 1) {
        target.style.backgroundColor = "#DFDFDF";
        target.value = "";
        target.readOnly = true;
      }

    }

  }
function board_search(category)
{
  var aspfunction;
  search_key = encodeURIComponent($("board_search_ipt").value);
  aspfunction = "/?" + category + "&search=" + search_key;
  //alert(aspfunction);
  //display_div(aspfunction,'main_div','direct');
  document.location.href = aspfunction
}

function chkeckdupID()  //회원가입폼: 아이디 중복확인
{
  var f = $("frmJoinInfo");
  var val = $F("txtID").strip();
   if ( val == "") { alert("먼저 아이디를 입력해 주세요."); $("txtID").focus(); return; }
  if ( val.length < 4 ) { alert("아이디는 최소 4글자 이상이어야 합니다."); clearID(); $("txtID").focus(); return; }
  if ( val.length > 12 ) { alert("아이디는 최대 12글자 이하이어야 합니다."); clearID(); $("txtID").focus(); return; }

  new Ajax.Request( '/asp/check_duplicateID.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: true,
    onComplete : function(oR) { 
      var or = oR.responseText;
         switch (or) {
          case 'NOT_FOUND':
            if (confirm("사용하실 수 있는 아이디입니다.\n\n이 아이디를 사용하시겠습니까?")) {
              $("isChkID").value = "Y";
              $('id_check_img').style.display='none';
            }
            break;
          
          case 'FOUND':
            alert("이미 사용중인 아이디입니다.\n\n다른 아이디로 다시 입력해 주세요.");
            clearID();
            $("txtID").focus();
            $("isChkID").value = "N";
            break;
           default:
            alert("Exception: " + or.substring(3000, 10000));
            break;
        }
      }
    }
  );
}
 function clearID()
{
  $("txtID").value = "";
  $("isChkID").value = "N";
}
 function filter_HAN(obj)
{
  var fld_value = obj.value;
  var pattern = /(^[a-zA-Z0-9\-_]+$)/; 
   if(!pattern.test(fld_value)){ 
    alert('한글은 입력할 수 없습니다.'); 
    return;
  }
}
 function callPop(kind)  //DIV 팝업을 호출한다.
{
  var posXY;
  var textboxHeight;
   switch (kind) {
    case 'zipcode':
      posXY = getAbsolutePosition("txtZIP");
      textboxHeight = $("txtZIP").clientHeight;
      $("divSearchAddr").style.top = posXY[1] + textboxHeight + 5 + "px";
      $("divSearchAddr").style.left = posXY[0] - 0 + "px";
      $("divSearchAddr").style.display = "inline";
      $("txtDong").value = "";
      $("zipcodeResult").innerHTML = "";
      $("txtDong").focus();
      if ($("selSchoolType")) $("selSchoolType").style.display = "none";
      if ($("selYear")) $("selYear").style.display = "none";
      break;
     default:
      break;
  }
}

function closePop(kind)
{
  switch (kind) {
    case 'zipcode':
      $("divSearchAddr").style.display = "none";
      if ($("selSchoolType")) $("selSchoolType").style.display = "inline";
      if ($("selYear")) {$("selYear").style.display = "inline";}
      break;
     default:
      $(kind).hide();
      popup();
      //SLB();
      break;
  }
}


function searchAddr() //주소검색 페이지를 호출하고 결과를 가공하여 주소검색창의 지정영역에 표시한다.
{
  if ($("txtDong") == undefined) { return; }
   var dong = $("txtDong").value.strip();
   if (dong.length < 2 ) { alert("검색을 원하시는 읍/면/동의 이름을 최소한 2글자 이상 입력하셔야 합니다."); $("txtDong").focus(); return; }
   var f = $("frmSearchAddr");
  //f.action = "/asp/search_address.asp";
   $("zipcodeResult").update("검색중입니다...");

  new Ajax.Request( '/asp/search_address.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
         switch (or) {
           case 'NOT_FOUND_MATCHED_DATA':
            $("zipcodeResult").update("검색어 '" + dong + "'과(와) 일치하는 주소자료를 찾을 수 없습니다.");
            break;
           case 'CANNOT_FOUND_MATCHED_DATA':
            $("zipcodeResult").update("검색어에 %를 넣을 수 없습니다.");
            break;
           default:
            //alert(or);
            var rows = or.split('||-||');
            var cols = "", cols4 = "";
            var setResult = "";
             for (i = 0; i < rows.length ; i++) {
              cols = rows[i].split('|--|');
              if (cols[4].indexOf("~")) { cols4 = ""; } else { cols4 = cols[4]; }
               setResult += "<span onmouseover=\"onMOv(this);\" onmouseout=\"onMOo(this);\" onclick=\"setValue('addr', '" + cols[0] + "', '" + cols[1] + " " + cols[2] + " " + cols[3] + " " + cols4 + "');\">"
              setResult += "[" + cols[0] + "] " + cols[1] + " " + cols[2] + " " + cols[3] + " " + cols[4] + "</span><br/>";
            }
            $("zipcodeResult").update(setResult);
            break;
        }
      }
    }
  );
}

 function goSearch() //주소검색창 등 팝업창에서 검색어 입력 후 엔터키 입력시 자동 검색 시작
{
  var key = arguments[0];
   if (event.keyCode == 13) {
    switch (key) {
      
      case undefined:
        searchAddr();
        break;
    }
  }
}

function validateJoin() //회원가입폼: 입력양식 검증
{
  var f = $("frmJoinInfo");
  if (f.txtID.value.length    == 0) { alert("아이디를 입력해 주세요.");   f.txtID.focus();    return false; }
  if (f.txtPWD.value.length   == 0) { alert("비밀번호를 입력해 주세요."); f.txtPWD.focus();   return false; }
  if (f.txtCHKPWD.value.length   == 0) { alert("확인을 위해 비밀번호를 다시 입력해 주세요."); f.txtCHKPWD.focus();   return false; }
  if (f.txtPWD.value != f.txtCHKPWD.value) { alert("비밀번호를 다시 입력해 주세요."); f.txtPWD.value=""; f.txtCHKPWD.value=""; f.txtPWD.focus();   return false; }
  if (f.txtNAME.value.length  == 0) { alert("이름을 입력해 주세요.");     f.txtNAME.focus();  return false; }
  if (f.txtZIP.value.length   == 0) { alert("주소를 입력해 주세요.");     f.txtZIP.focus();   return false; }
  if (f.txtMAIL.value.length  == 0) { alert("e-메일을 입력해 주세요.");   f.txtMAIL.focus();  return false; }
  if (f.isChkID.value == "N")       { alert("아이디 중복확인을 먼저 해 주세요."); return false; }
  new Ajax.Request( '/asp/proc_joinmember.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
         switch (or) {
          case 'NEED_SESSION':
            alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
            goURL("/");
            break;

          case 'SAVED':
            alert("회원정보가 등록되었습니다.\n\n기입하신 아이디 및 비밀번호로 로그인 해 주세요.");
            goURL("/");
            break;

          default:
            alert("Exception: " + or.substring(3000, 10000));
            goURL("now");
            break;
        }
      }
    }
  );
}

  function updateUser() //회원정보 수정폼: 입력양식 검증
  {
    var f = $("frmUserInfo");

    if (f.txtPWD.value.length   == 0) { alert("비밀번호를 입력해 주세요."); f.txtPWD.focus();   return false; }
    if (f.txtCHKPWD.value.length   == 0) { alert("확인을 위해 비밀번호를 다시 입력해 주세요."); f.txtCHKPWD.focus();   return false; }
    if (f.txtPWD.value != f.txtCHKPWD.value) { alert("비밀번호를 다시 입력해 주세요."); f.txtPWD.value=""; f.txtCHKPWD.value=""; f.txtPWD.focus();   return false; }
    if (f.txtZIP.value.length   == 0) { alert("주소를 입력해 주세요.");     f.txtZIP.focus();   return false; }
    if (f.txtMAIL.value.length  == 0) { alert("e-메일을 입력해 주세요.");   f.txtMAIL.focus();  return false; }
    //document.location.href = "/asp/proc_joinmember.asp?mode=edit"
    //*
    new Ajax.Request( '/asp/proc_joinmember.asp?mode=edit', { method: 'post',
      parameters: f.serialize(), 
     asynchronous: false,
      onComplete : function(oR) {
          var or = oR.responseText;
          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/");
              break;

            case 'SAVED':
              alert("수정된 회원정보가 등록되었습니다.");
              break;

            default:
              //alert("Exception: " + or.substring(3000, 10000));
              alert(or);
              break;
          }
        }
      }
    );
    //*/
  }

function getAbsolutePosition( target_obj ) {
  obj = document.getElementById(target_obj);
  var posX = obj.offsetLeft;
  var posY = obj.offsetTop;
  while ( obj.offsetParent ){
    posX = posX + obj.offsetParent.offsetLeft;
    posY = posY + obj.offsetParent.offsetTop;
    if((obj == document.getElementsByTagName('body')[0])||(obj.offsetParent == document.body)) {
      break;
    } else {
      obj = obj.offsetParent;
    }
  }
  return [posX, posY];
}

  //target으로 지정된 객체에 마우스오버시 배경 및 글자색 변경 효과
  //가능한 텍스트 결과물을 SPAN으로 묶은 상태를 대상으로 지정할 것
  function onMOv(target) {
    target.style.backgroundColor = "#999999";
    target.style.color = "#FFFFFF";
    target.style.cursor = "pointer";
  }

  //onMOv으로 변경된 색상을 원래대로 되돌림.
  function onMOo(target) {
    target.style.backgroundColor = "";
    target.style.color = "";
  }


  //kind에 지정된 종류에 따라 추가로 전달된 파라미터값을 화면상의 폼 입력칸에 세팅
  //kind -> 'addr' 우편번호1,2 및 주소1
  //        'teacher' 상담교사명 및 아이디
  function setValue(kind) {
    switch (kind) {
      case 'addr':
        var addr1 = arguments[1];
        var addr2 = arguments[2];

        if ($("txtZIP") != undefined) {
          $("txtZIP").value = addr1;
          $("txtADDR1").value    = addr2;
          $("txtADDR2").focus();
        }
        closePop("zipcode");
        break;

    }
  }

  function selectTest() //모의고사 입력화면에서 학년/시험 선택 변경시-펑션 기능 약간 수정함
  {
    var grade = encodeURIComponent($F("selGrade"));
    var test  = $F("selTest");
    display_div("/asp/grade_input_KSAT.asp?g=" + grade + "&tid=" + test, "main_div","direct");
   // callDisplay('TESTRESULT_INPUT', grade, test);
  }

  function validateFormKSAT() //시험결과 입력화면 폼 저장시 폼 내용을 확인
  {
    var f = $("frmKSAT");

    txtMathSubject = $F("selMath");         //수리영역 선택값

    txtSelectedExp = $F("txtSelectedExp");  //탐구영역 선택값 (r1: 사탐, r2: 과탐, r3: 직탐)
    txtExpSubject1 = $F("selExp1");         //탐구영역 1번 과목
    txtExpSubject2 = $F("selExp2");         //탐구영역 2번 과목
    txtExpSubject3 = $F("selExp3");         //탐구영역 3번 과목
    txtExpSubject4 = $F("selExp4");         //탐구영역 4번 과목 (직탐 선택인 경우 없을 수 있음)

    txtLang2Subject = $F("selLang2");       //제2외국어/한문 선택값 (필수값 아님)

    if (txtMathSubject == "X") { alert("수리영역의 과목을 선택해 주세요."); $("selMath").focus(); return; }
    if (txtSelectedExp == "") { alert("탐구영역을 선택해 주세요."); return; }


    new Ajax.Request( '/asp/grade_input_KSAT_proc.asp', { method: 'post',
      parameters: f.serialize(), 
      asynchronous: false,
      onComplete : function(oR) {
        var or = oR.responseText;
        switch (or) {
          case 'SAVE_OK':
            alert("성적정보 등록이 완료되었습니다.");
            display_div("/asp/grade_input_KSAT.asp", "main_div","direct");
            break;

          case 'NEED_SESSION':
            alert("로그인 상태가 해제되었습니다.\n\n다시 로그인 하신 후 이용해 주세요.");
            goURL("/?mode=3");
            break;

          default:
            alert(or);
            break;
          }
        }
      }
    );
  }


  function drawExpSelect(kind)  //탐구영역 과목선택 SelectBox를 재설정
  {

    //기존 탐구과목 SelectBox의 내용을 모두 소거
    for (i = 1; i < 5 ; i++) {
      var objSelChilds = $("selExp" + i).childElements();

      for (j = 0; j < objSelChilds.length; j++) {
        //if (objSelChilds[j].value != "X") objSelChilds[j].remove();
        objSelChilds[j].remove();
      }
    }
    
    var arrName = "";
    var xCode = "";

    $("txtSelectedExp").value = kind;
    
    switch (kind) {
      case 'r1':
        arrName = "arrSocExp";
        
        $("selExp4").show();
        $("txtExp4StdPoint").show();
        $("txtExp4Percentile").show();
        $("txtExp4Grade").show();

        xCode = "SOC";
        break;

      case 'r2':
        arrName = "arrSciExp";

        $("selExp4").show();
        $("txtExp4StdPoint").show();
        $("txtExp4Percentile").show();
        $("txtExp4Grade").show();

        xCode = "SCI";
        break;

      case 'r3':
        arrName = "arrJobExp";

        //직탐은 3과목이므로 네번째 selExp를 감춘다.
        $("selExp4").hide();
        $("txtExp4StdPoint").hide();
        $("txtExp4Percentile").hide();
        $("txtExp4Grade").hide();

        xCode = "JOB";
        break;
    }

    for (i = 1; i < 5 ; i++) {
      for (j = 0; j < eval(arrName).length; j++) {
        Insertion.Bottom("selExp" + i, "<option value='" + eval(arrName)[j].split('|')[0] + "'>" + eval(arrName)[j].split('|')[1] + "</option>");
      }

      Insertion.Top("selExp" + i, "<option name=\"optBase\" value=\"" + xCode + "\">==선택==</option>");
      $("selExp" + i).selectedIndex = 0;
    }

  }

  function setAreaAll() { //수능산출 > 언수외탐 선택시
    var chks = document.getElementsByName("chkArea");

    for (i = 0; i < chks.length; i++) {
      chks[i].checked = false;
    }

    if ($("chkAreaAll").checked) {
      $("txtArea").value = "언수외탐";
    } else {
      $("txtArea").value = "";
    }

    setDispStatus();
  }

  function setSSW(ssw_chk) {  //
    var chks = document.getElementsByName("chkArea");
    if (ssw_chk == 1) { 
      if (chks[1].checked == true) {
        chks[1].checked = true ; chks[2].checked = false ; }
      else {
        chks[1].checked = false ; chks[2].checked = false ; }
    }
    if (ssw_chk == 2) {
       if (chks[2].checked == true) {
        chks[1].checked = false ; chks[2].checked = true ; }
      else {
        chks[1].checked = false ; chks[2].checked = false ; }
    }

    if (ssw_chk == 4) { 
       if (chks[4].checked == true) {
      chks[4].checked = true ; chks[5].checked = false ; chks[6].checked = false ; }
      else {
      chks[4].checked = false ; chks[5].checked = false ; chks[6].checked = false ; }
    }
    if (ssw_chk == 5) {
       if (chks[5].checked == true) {
      chks[4].checked = false ; chks[5].checked = true ; chks[6].checked = false ; }
      else {
      chks[4].checked = false ; chks[5].checked = false ; chks[6].checked = false ; }
    }
    if (ssw_chk == 6) {
       if (chks[6].checked == true) {
      chks[4].checked = false ; chks[5].checked = false ; chks[6].checked = true ; }
      else {
      chks[4].checked = false ; chks[5].checked = false ; chks[6].checked = false ; }
    }
  }

  function setAreaPart() {  //수능산출 > 언수외탐 외 선택시
    var allArea = document.getElementsByName("chkAreaAll");
    var chks = document.getElementsByName("chkArea");

    allArea[0].checked = false;

    $("txtArea").value = "";

    for (i = 0; i < chks.length; i++) {
      if (chks[i].checked == true) $("txtArea").value += "|" + chks[i].value;
    }

    $("txtArea").value = $F("txtArea").substring(1, $("txtArea").value.length);

    setDispStatus();
  }

  function setDispStatus() {  //반영영역 또는 지역에 대한 선택조건 변경시 대학/모집단위/기존 표시결과 Reset
    resetOptions("selCond3");
    resetOptions("selCond4");

    $("divUnivList").update("");

    $("selCond2").selectedIndex = -1;

    $("caption0").update("[미선택]");
    $("caption1").update("[미선택]");
    $("caption2").update("[전체]");
  }


  function setNation() { //수능산출 > 전국 선택시
    var chks = document.getElementsByName("chkLocal");

    for (i = 0; i < chks.length; i++) {
      chks[i].checked = false;
    }

    if ($("chkLocalAll").checked) {
      $("txtLocal").value = "전국";
    } else {
      $("txtLocal").value = "";
    }

    setDispStatus();
  }


  function setLocal() { //수능산출 > 전국 외 지역 선택시
    var nation = document.getElementsByName("chkLocalAll");
    var chks = document.getElementsByName("chkLocal");

    nation[0].checked = false;

    $("txtLocal").value = "";
    
    for (i = 0; i < chks.length; i++) {
      if (chks[i].checked == true) $("txtLocal").value += "|" + chks[i].value;
    }

    $("txtLocal").value = $F("txtLocal").substring(1, $("txtLocal").value.length);

    setDispStatus();
  }

  function saveLocalConditions() {
    if ($F("txtLocal").strip() == "") {
      alert("선택된 지역이 없습니다.");
      return;
    }

    new Ajax.Request(
      "/asp/ele_saveUserSelectedLocalInfo.asp?l=" + encodeURIComponent($F("txtLocal").strip()),
      {
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/");
              break;

            case 'SAVED':
              alert("지역 선택정보가 저장되었습니다.");
              break;
          
            default:
              alert("작업 수행 중 알 수 없는 오류가 발생했습니다.");
              break;
          }
        }
      }
    );
  }

  function saveAreaConditions() {
    //alert($F("txtArea"));
    
    if ($F("txtArea").strip() == "") {
      alert("선택된 반영영역 항목이 없습니다.");
      return;
    }

    new Ajax.Request(
      "/asp/ele_saveUserSelectedAreaInfo.asp?a=" + encodeURIComponent($F("txtArea").strip()),
      {
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/");
              break;

            case 'SAVED':
              alert("반영영역 선택정보가 저장되었습니다.");
              break;

            default:
              alert("작업 수행 중 알 수 없는 오류가 발생했습니다.");
              //alert(or);
              break;
          }
        }
      }
    );
  }

  function resetOptions(target) //target(Select)의 options를 초기화
  {
    var theSel = $(target);

    theSel.options.length = 0;
    //for(i = theSel.length - 1; i >= 0; i--) {
    //  theSel.options[i] = null;
    //}
  }


  function goUnivList(mode) //(지원가능대학)선택 조건에 맞는 리스트 결과를 조회한다.
  {
    var val0 = encodeURIComponent($F("selCond0"));  //시험ID
    var val1 = encodeURIComponent($F("txtLocal"));  //지역
    var val2 = encodeURIComponent($F("selCond2"));  //모집군
    var val3 = encodeURIComponent($F("selCond3"));  //대학
    var val4 = encodeURIComponent($F("selCond4"));  //모집단위
    var val5 = encodeURIComponent($F("txtArea").strip());

    //var val0 = $F("selCond0");  //시험ID
    //var val1 = $F("txtLocal");  //지역
    //var val2 = $F("selCond2");  //모집군
    //var val3 = $F("selCond3");  //대학
    //var val4 = $F("selCond4");  //모집단위
    //var val5 = $F("txtArea").strip();

    //var val1 = $F("selCond1");

    //alert("val1: " + val1 + "\nval2: " + val2 + "\nval3: " + val3 + "\nval4: " + val4 + "\nval5: " + val5);

    if (val0 == "null") {
      alert("모의고사(수능) 목록에서 항목을 선택해 주세요.");
      return;
    }

    if (val3 == "null" && mode == 0) {
      alert("대학을 선택해 주세요.");
      return;
    }

    if ((val1 == "null" || val2 == "null" || val5 == "null")  && ( mode == 0 || mode == 1 )) {
      alert("지역과 모집군, 또는 반영영역 조회조건을 지정해 주세요.");
      return;
    }

    if (val4 == "null") { //모집단위 선택없음
      $("univTR_Detail").hide();
      $("univTR_Header").show();
      $("univTR_List").show();
      $("trButtons1").show();

      $("divUnivList").update("<center><img src='/images/ajax-loader-big.gif' style='margin-top: 30px;' /></center>");
      callURL("divUnivList", "/asp/get_univ_list3.asp", "c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&c3=" + val3 + "&c4=" + val4 + "&a=" + val5);
    } else { //모집단위 1개 선택
      new Ajax.Request(
        "/asp/ele_isDisp.asp?tid=" + val0 + "&l=" + val1 + "&group=" + val2 + "&univ=" + val3 + "&unit=" + val4,
        {
          onComplete: function(OR) {
            var or = OR.responseText;
            //alert(or);
            var temp_or = or.split("<br>")
            or = temp_or[temp_or.length-1];
            switch (or) {
              case 'Y':
                url = "/asp/get_univ_detail.asp";

                var param = "c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&c3=" + val3 + "&c4=" + val4;
                //alert(param);

                $("univTR_Header").hide();
                $("univTR_List").hide();
                $("trButtons1").hide();

                $("univTR_Detail").show();
                $("divUnivDetail").update("<center><img src='/images/ajax-loader-big.gif' style='margin-top: 234px;'/></center>");
                callURL("divUnivList", "/asp/get_univ_list3.asp", "c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&c3=" + val3 + "&c4=" + val4 + "&a=" + val5);
                callURL("divUnivDetail", url, param);
                break;

              case 'N':
                $("univTR_Detail").hide();
                $("univTR_Header").hide();
                $("univTR_List").show();
                $("trButtons1").show();

                $("divUnivList").update("<center><img src='/images/ajax-loader-big.gif' style='margin-top: 30px;' /></center>");
                callURL("divUnivList", "/asp/get_univ_list3.asp", "c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&c3=" + val3 + "&c4=" + val4 + "&a=" + val5);
                break;
              default:
                alert(or);
                break;
            }
          }
        }
      );
    
    }
    
  }

  function selectCond1(val1)  //수능산출 > 시험목록 항목 선택시
  {
    //선택 시험의 대상연도 세팅 및 입력내용 확인(산출처리 가능한 수준의 시험결과가 입력되었는지 여부)
    new Ajax.Request(
      "ele_setTestTargetYear.asp?tid=" + val1,
      {
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'SET_OK':
              break;

            case 'NOT_FOUND_DATA':
              alert("선택된 시험에 대한 기본정보 저장소에 문제가 있습니다.\n\n관리자에게 문의해 주세요.");
              break;

            default:
              break;
          }
        }
      }
    );
    $("selCond2").selectedIndex = -1;
    resetOptions("selCond3");
    resetOptions("selCond4");
  }

  function selectCond2(val2,su)  //검색조건2(정시모집군 가/나/다) 선택시
  {
    var val0 = encodeURIComponent($F("txtArea").strip());
    var val1 = encodeURIComponent($F("txtLocal").strip());
    val2 = encodeURIComponent(val2);
    tg_url='/asp/get_cond2_new.asp';

    //var val0 = $F("txtArea").strip();
    //var val1 = $F("txtLocal").strip();

    //var val1 = $F("selCond1");

    if (val0 == "") { alert("반영영역을 먼저 선택해 주세요."); return; }
    if (val1 == "") { alert("지역을 먼저 선택해 주세요."); return; }

    //alert("get_cond2.asp?c0=" + val0 + "&c1=" + val1 + "&c2=" + val2);
    $("selCond2").disabled = true;
    resetOptions("selCond3");
    resetOptions("selCond4");
    //alert("get_cond2.asp?c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&tid=" + $F("selCond0"));

    new Ajax.Request(
      tg_url + "?c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&tid=" + $F("selCond0"),
      {
        asynchronous: true,
        onComplete: function(oR) {
          var or = oR.responseText; //alert(or);

          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/");
              break;

            case 'NEED_INPUT':
              alert("선택하신 시험의 성적정보가 정확하게 입력되어 있지 않습니다.\n\n성적입력 화면에서 성적정보를 확인 후 정정해 주십시오.");
              break;

            case 'NOT_FOUND_MATCHED_DATA':
              alert("지정하신 조건에 일치하는 대학을 찾을 수 없거나\n\n선택하신 시험에 해당하는 대학별 전형정보를 확보중입니다.\n\n조회조건을 확인 후 다시 이용해 주세요.");
              //resetOptions("selCond3");
              //resetOptions("selCond4");
              break;

            case 'NOT_FOUND':
              alert("관련 정보 조회 과정에서 오류가 발생했습니다.");
              break;

            default:
              //if ( su == 1 ) { alert(or); }
              //resetOptions("selCond3");
              //resetOptions("selCond4");
              //alert(or);
              addOptions2("selCond3", or);
              break;
          }

          $("selCond2").disabled = false;
          $("selCond3").disabled = false;
        }
      }
    );

    if ($F("selCond2") == null) {
      $("caption0").update("[미선택]");
    } else {
      $("caption0").update($F("selCond2"));
    }
    $("caption1").update("[미선택]");
    $("caption2").update("[전체]");
  }


  function selectCond3(val3,su)  //검색조건3(대학명) 선택시
  {
    var val0 = encodeURIComponent($F("txtArea").strip());
    var val1 = encodeURIComponent($F("txtLocal"));
    var val2 = encodeURIComponent($F("selCond2"));
    val3 = encodeURIComponent(val3);
    if ( su == 1 ) { tg_url='/asp/get_cond3_new.asp'; }
    else { tg_url='/asp/get_cond3_new.asp'; }

    //var val0 = $F("txtArea").strip();
    //var val1 = $F("txtLocal");

    //var val1 = $F("selCond1");

    if (val1 == null) { alert("지역을 먼저 선택해 주세요."); return; }
    if (val2 == null) { alert("모집군을 먼저 선택해 주세요."); return; }

    //alert("get_cond3.asp?c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&c3=" + val3);
    $("selCond3").disabled = true;
    resetOptions("selCond4");
    new Ajax.Request(
      tg_url + "?c0=" + val0 + "&c1=" + val1 + "&c2=" + val2 + "&c3=" + val3 + "&tid=" + $F("selCond0"),
      {
        asynchronous: true,
        onComplete: function(oR) {
          var or = oR.responseText;
          //alert(or);

          switch (or) {
            case 'NOT_FOUND_MATCHED_DATA':
              //alert("지정하신 조건에 일치하는 모집단위를 찾을 수 없습니다.\n\n반영영역, 지역 등 조회조건을 확인 후 다시 이용해 주세요.");
              //resetOptions("selCond4");
              break;

            case 'NOT_FOUND':
              alert("관련 정보 조회 과정에서 오류가 발생했습니다.");
              break;

            default:
              //resetOptions("selCond4");
              //alert(or);
              addOptions2("selCond4", or);
              break;
          }

          $("selCond3").disabled = false;
        }
      }
    );

    if ($F("selCond3") == null) {
      $("caption1").update("[미선택]");
    } else {
      $("caption1").update($F("selCond3"));
      //document.getElementByID("selCond3").innerHTML);
      //$F("selCond3")
    }
    $("caption2").update("[전체]");
  }


  function selectCond4(val4) {
    $("caption2").update(val4);
  }

  function addOptions2(target, data) {
    //alert(data);
    var data_temp=data.split("<start/>");
    data=data_temp[1]
    var theSel = $(target);
    var arrData = data.split("||");
    var newText = "", newValue = "";

    for (dataLoop = 0; dataLoop < arrData.length; dataLoop++) {
      newValue = arrData[dataLoop].split("|")[0];
      newText = arrData[dataLoop].split("|")[1];

      Insertion.Bottom(target, "<option value=\"" + newValue + "\">" + newText + "</option>")
    }

    theSel.selectedIndex = -1;
  }


  function addOptions(target, data) //target(Select)에 options를 추가한다.
  {
    data=data.split("//")[1];
    var theSel = $(target);
    var arrData = data.split("||");
    var newText = "", newValue = "";

    for (dataLoop = 0; dataLoop < arrData.length; dataLoop++) {
      newValue = arrData[dataLoop].split("|")[0];
      newText  = arrData[dataLoop].split("|")[1];
      
      if (theSel.length == 0) {
        var newOpt1 = new Option(newText, newValue);
        theSel.options[0] = newOpt1;
        theSel.selectedIndex = 0;
      } else if (theSel.selectedIndex != -1) {
        var selText = new Array();
        var selValues = new Array();
        var selIsSel = new Array();
        var newCount = -1;
        var newSelected = -1;
        var i;
        
        for(i = 0; i < theSel.length; i++) {
          newCount++;
          selText[newCount] = theSel.options[i].text;
          selValues[newCount] = theSel.options[i].value;
          selIsSel[newCount] = theSel.options[i].selected;
          
          if (newCount == theSel.selectedIndex) {
            newCount++;
            selText[newCount] = newText;
            selValues[newCount] = newValue;
            selIsSel[newCount] = false;
            newSelected = newCount - 1;
          }
        }
        
        for(i = 0; i <= newCount; i++) {
          var newOpt = new Option(selText[i], selValues[i]);
          theSel.options[i] = newOpt;
          theSel.options[i].selected = selIsSel[i];
        }
      }
    }

    theSel.selectedIndex = -1;
  }

  function viewMessage(kind) {
    switch (kind) {
      case 1:
        msg = "회원님은 아직 내비게이션 서비스를 결제하지 않으셨습니다.\n\n본 기능은 내비게이션 서비스를 결제하신 후 이용하실 수 있습니다.\n\n지금 결제 페이지로 이동하시겠습니까?";
        target = "asp/form_paylog.asp";
        break;
    }


    if (confirm(msg)) {
      display_div(target,'main_div','direct');
    }
  }

  function callURL(target, url, param)
  {
    new Ajax.Request(
      url + "?" + param,
      {
        onComplete: function(oR) {
          var or = oR.responseText;

          $(target).update(or);
        }
      }
    );

  }

  function viewDetail_UNIV(c0, c1, c2, c3, c4, c5)  //시험ID, 지역, 모집군, 대학, 모집단위
  {
    var url = "";
    c0 = encodeURIComponent(c0)
    c1 = encodeURIComponent(c1)
    c2 = encodeURIComponent(c2)
    c3 = encodeURIComponent(c3)
    c4 = encodeURIComponent(c4)
    c5 = encodeURIComponent(c5)

    /*new Ajax.Request(
      "/asp/ele_isNaesin.asp?univ=" + c3,
      {
        asynchronous: false,
        onComplete: function(OR) {
          var or = OR.responseText;
          //alert(or);

          switch (or) {
            case 'Y':
              url = "/asp/get_univ_detail_naesin.asp";
              break;

            case 'N':
              url = "/asp/get_univ_detail.asp";
              break;
          }
        }
      }
    );*/
    url = "/asp/get_univ_detail.asp";

    //var url = "get_univ_detail.asp";
    var param = "c0=" + c0 + "&c1=" + c1 + "&c2=" + c2 + "&c3=" + c3 + "&c4=" + c4;
    //alert(param);

    $("univTR_Header").hide();
    $("univTR_List").hide();
    $("trButtons1").hide();
    
    $("univTR_Detail").show();
    $("divUnivDetail").update("<center><img src='/images/ajax-loader-big.gif' style='margin-top: 234px;'/></center>");
    callURL("divUnivDetail", url, param);
  }

  function saveThisUnit(year, target_id) { //사용자 지정 모집단위정보 저장. 연도-모집군-대학-모집단위


    var target_url;
    target_url = '/asp/ele_saveUserTarget.asp?year=' + year + '&target_id=' + target_id ;
    f = $("frmSaveTarget");

    new Ajax.Request(
      target_url ,
      {
      method: 'post',
      parameters: f.serialize(), 
      asynchronous: false,
      onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/");
              break;

            case 'EXIST_DATA':
              alert("이미 저장되어 있는 정보입니다.\n\n내비게이션 기능에서 확인하실 수 있습니다.");
              break;

            case 'NOEXIST_ID':
              alert("존재하지 않는 모집단위입니다.");
              break;

            default:
              if (or.startsWith("SAVED")) {
                alert("현재 선택하신 모집단위 정보가 내비게이션에서 이용할 수 있도록 저장되었습니다.\n\n현재까지 저장된 모집단위는 모두 " + or.split('_')[1] + "개입니다.");
              } else {
                alert("작업 수행 중 알 수 없는 오류가 발생했습니다.");
                alert(or);
              }
              break;
          }
        }
      }
    );
  }

  function returnList_UNIV()
  {
    $("univTR_Header").show();
    $("univTR_List").show();
    $("trButtons1").show();
    
    $("univTR_Detail").hide();
  }

  function tblSort(tblID, colIdx, sortType, direction, startRow) {
    var targetTbl = $(tblID);

    if (targetTbl != undefined) jsfn_table_sort(tblID, colIdx, sortType, direction, startRow);
  } //...tblSort(tblID, colIdx, sortType, direction, startRow) {


  function viewList(kind) {
    var keyname = "";
    
    switch (kind) {
      case '0': keyname = "전체"; break;
      case '1': keyname = "확실"; break;
      case '2': keyname = "안정"; break;
      case '3': keyname = "경합"; break;
      case '4': keyname = "소신"; break;
      case '5': keyname = "무리"; break;
    }

    var tbl = $("tblUnivResult");

    if (tbl != null) {
      var trs = tbl.getElementsByTagName("TR");
      var trlen = trs.length;

      for (i = 0; i < trlen; i++) {
        if (keyname == "전체") {
          trs[i].style.display = "";
        } else {
          if (trs[i].getElementsByTagName("TD")[12].innerText == keyname) {
            trs[i].style.display = "";
          } else {
            trs[i].style.display = "none";
          }
        }
      }
    }

  } //...function viewList(kind) {


  function send(obj) {
    var val = obj.name;

    switch (val) {
      case 'selGA_Y': cancelTarget('GA'); break;
      case 'selNA_Y': cancelTarget('NA'); break;
      case 'selDA_Y': cancelTarget('DA'); break;
      case 'selGA_N': addTarget('GA'); break;
      case 'selNA_N': addTarget('NA'); break;
      case 'selDA_N': addTarget('DA'); break;
    }
  }

  function addTarget(Gun) {//지정군 SelectBox에 option을 추가하고 정렬 후 후보군 SelectBox에서 해당 option을 삭제한다.
    var to = $("sel" + Gun + "_Y");
    var from = $("sel" + Gun + "_N");

    if (to.options.length == 5) {
      alert("각 모집군마다 목표 모집단위는 5개까지 지정가능합니다.");
      return;
    }
    
    if (from.selectedIndex == -1) {
      alert("목표 모집단위로 지정할 항목을 선택해 주세요.");
    } else {
      new Ajax.Request(
        "/asp/ele_target_update_Y.asp?tid=" + $F("sel" + Gun + "_N"),
        {
          asynchronous: true,
          onComplete: function(OR) {
            var or = OR.responseText;

            switch (or) {
              case 'NEED_SESSION':
                alert("세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
                document.location.href = "/?mode=3";
                break;

              case 'NEED_MORE_PARAMETERS':
                alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
                break;

              case 'UPDATED':
                //alert("추가되었습니다.");
                Insertion.Bottom(to.name, from.options[from.selectedIndex].outerHTML);  //목표 추가
                to.selectedIndex = -1;

                from.options[from.selectedIndex].remove();  //목표 삭제

                sortlist(to.name);  //목표 정렬
                break;

              default:
                alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
                alert(or);
                break;
            }
          }
        }
      );
    }
  } //...function addTarget(Gun) {


  function cancelTarget(Gun) {//지정군 SelectBox에서 지정된 option을 후보군으로 되돌려 보낸다.
    var to = $("sel" + Gun + "_N");
    var from = $("sel" + Gun + "_Y");

    if (from.selectedIndex == -1) {
      alert("목표 지정을 취소할 모집단위를 선택해 주세요.");
    } else {
      new Ajax.Request(
        "/asp/ele_target_update_N.asp?tid=" + $F("sel" + Gun + "_Y"),
        {
          asynchronous: true,
          onComplete: function(OR) {
            var or = OR.responseText;

            switch (or) {
              case 'NEED_SESSION':
                alert("세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
                document.location.href = "/?mode=3";
                break;

              case 'NEED_MORE_PARAMETERS':
                alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
                break;

              case 'UPDATED':
                Insertion.Bottom(to.name, from.options[from.selectedIndex].outerHTML);  //후보 추가
                to.selectedIndex = -1;

                from.options[from.selectedIndex] = null;  //목표 삭제

                sortlist(to.name);  //후보 정렬
                break;

              default:
                alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
                //alert(or);
                break;
            }
          }
        }
      );
    }
  } //...function cancelTarget(Gun) {


  function delTarget(Gun) {//후보군 SelectBox에서 지정된 option을 DB에서 삭제하고 목록에서도 삭제한다.
    var to = $("sel" + Gun + "_Y");
    var from = $("sel" + Gun + "_N");

    if (from.selectedIndex == -1) {
      alert("삭제하실 후보군 모집단위를 선택해 주세요.");
    } else {
      new Ajax.Request(
        "/asp/ele_target_delete.asp?tid=" + $F("sel" + Gun + "_N"),
        {
          asynchronous: true,
          onComplete: function(OR) {
            var or = OR.responseText;

            switch (or) {
              case 'NEED_SESSION':
                alert("세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
                document.location.href = "/?mode=3";
                break;

              case 'NEED_MORE_PARAMETERS':
                alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
                break;

              case 'DELETED':
                alert("삭제되었습니다.");
                from.options[from.selectedIndex] = null;  //선택 후보군 삭제
                break;

              default:
                alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
                //alert(or);
                break;
            }
          }
        }
      );
    }
  } //...function deleteTarget(Gun) {


  function sortlist(targetSelect) { //Selectbox의 option들을 정렬한다
    var lb = $(targetSelect);
    arrTexts = new Array();
    arrValues = new Array();
    arrOldTexts = new Array();

    for (i = 0; i < lb.length; i++) {
      arrTexts[i] = lb.options[i].text;
      arrValues[i] = lb.options[i].value;

      arrOldTexts[i] = lb.options[i].text;
    }

    arrTexts.sort();

    for (i = 0; i < lb.length; i++) {
      lb.options[i].text = arrTexts[i];
      for (j = 0; j < lb.length; j++) {
        if (arrTexts[i] == arrOldTexts[j]) {
          lb.options[i].value = arrValues[j];
          j = lb.length;
        }
      }
    }
  }

  function change_navi(test_id) { 
    display_div('/asp/form_navi.asp?tid='+test_id,'main_div','direct');
  }

  function startTrace(user) { //내비게이션 작업을 호출한다.
    var toGA = $("selGA_Y");
    var toNA = $("selNA_Y");
    var toDA = $("selDA_Y");
    var test_id = $("tid").value;

    var cntSelectedItem = toGA.options.length + toNA.options.length + toDA.options.length;

    if (cntSelectedItem == 0) { alert("목표 모집단위에 등록된 데이터가 없습니다.\n\n모집군별 후보군 목록에서 원하는 항목을 선택 후\n\n'추가'버튼으로 등록해 주세요.\n\n\n후보군 등록은 수능산출 기능에서 특정 모집단위 선택 후\n\n화면 하단의 등록 버튼을 누르시면 추가됩니다."); return; }

    var msg = "등록된 목표 모집단위에 대한 지원전략 추적작업을 수행합니다.\n\n이 작업은 등록데이터의 수량에 따라 많은 시간이 소요될 수 있습니다.\n\n진행하시겠습니까?";
    if (confirm(msg)) {
      //'$("trHeader").hide();
      //'$("trWaits").hide();
      //'$("trWaitsButtons").hide();

      $("trNaviResult").show();
      $("trNaviResult_td0").update("<center><img src='/images/ajax-loader-big.gif' style='margin-top: 110px;'/></center>");
      if ( user == "DST" ) {
      new Ajax.Request(
        "/asp/form_navi_proc.asp?tid="+test_id,
        {
          onComplete: function(OR) {
            var or = OR.responseText;

            switch (or) {
              default:
                  $("trNaviResult_td0").update(or);
                 for_safari();
                break;
            }
          }
        }
      );
    }
    else { 
      setTimeout("startTrace_delay();",cntSelectedItem*150);
      }
  }
  } //...function startTrace() 

  function startTrace_delay(){
    var toGA = $("selGA_Y");
    var toNA = $("selNA_Y");
    var toDA = $("selDA_Y");
    var test_id = $("tid").value;

    var cntSelectedItem = toGA.options.length + toNA.options.length + toDA.options.length;

      new Ajax.Request(
        "/asp/form_navi_proc.asp?tid="+test_id,
        {
          onComplete: function(OR) {
            var or = OR.responseText;

            switch (or) {
              default:
                  $("trNaviResult_td0").update(or);
                  for_safari();
                break;
            }
          }
        }
      );
  }

  function setPaid(userID, status) {
    new Ajax.Request(
      "/asp/ele_setpaid.asp",
      {
        method: "post",
        parameters: "uid=" + userID + "&sval=" + status,
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("로그인 상태가 해제되었습니다.\n\n다시 로그인 하신 후 이용해 주세요.");
              goURL("/");
              break;

            case 'NEED_MORE_PARAMETERS':
              alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
              break;

            case 'SAVED':
              alert("선택된 회원의 결제지불정보가 등록되었습니다.");
              break;

            case 'DELETED':
              alert("선택된 회원의 결제지불정보가 삭제되었습니다.");
              document.getElementsByName("rdoEdit_" + userID)[0].checked = true;
              break;

            default:
              alert(or);
              break;
          }
        }
      }
    );
  }


  function setEditable(userID, status) {
    new Ajax.Request(
      "/asp/ele_seteditable.asp",
      {
        method: "post",
        parameters: "uid=" + userID + "&sval=" + status,
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("로그인 상태가 해제되었습니다.\n\n다시 로그인 하신 후 이용해 주세요.");
              goURL("/");
              break;

            case 'NEED_MORE_PARAMETERS':
              alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
              break;

            case 'CANCEL':
              document.getElementsByName("rdoEdit_" + userID)[0].checked = true;
              alert("먼저 결제처리를 '지불' 상태로 변경해 주세요.");
              break;

            case 'UPDATED':
              if (status == "Y") {
                alert("선택된 회원의 성적수정이 가능토록 변경되었습니다.");
              } else {
                alert("선택된 회원의 성적수정이 불가능토록 변경되었습니다.");
              }
              break;

            default:
              alert(or);
              break;
          }
        }
      }
    );
  }

  function goAnalysis(tid)
  {
    display_div("/asp/view_KSAT_analysis.asp?tid=" + tid, "main_div","direct");
    //drawDisplay("/asp/view_KSAT_analysis.asp?tid=" + arguments[1], "dispMain");

  }
//ele_target_update_Y.asp 저장과 /asp/붙이기부터시작할 것

  function callSearchEtcSubject() {
    if (event.keyCode == 13) {
      searchEtcSubject();
    } else {
      return;
    }
  }


  function searchEtcSubject() {
    var f = $("frmSearchEtcSubject");
    var key =encodeURIComponent($F("txtSearchSubject").strip());
    var rows, cols, addTR = "";

    if (key.length < 2) { alert("검색어는 최소 2문자 이상이어야 합니다."); $("txtSearchSubject").focus(); return; }

    f.action = "/asp/ele_searchEtcSubject.asp";

    f.request(
      {
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_MORE_PARAMETER':
              alert("검색에 필요한 검색어가 입력되지 않았습니다.\n\n확인 후 다시 이용해 주세요.");
              break;

            case 'NOT_FOUND_DATA':
              $("tblResult").update();
              $("trResult").hide();
              $("tdMessage").update("입력하신 검색어 '" + key + "'에 해당하는 과목이 없습니다.");
              $("trMessage").show();
              break;

            default:
              $("trMessage").hide();

              rows = or.split('||-||');

              $("trResult").show();
              $("tblResult").update();

              for (i = 0; i < rows.length; i++) {
                cols = rows[i].split('|--|');  //과목번호, 교과코드, 교과명, 학기유형, 과목명

                addTR = "<tr>";
                addTR += "<td width='25%' align='center'>" + cols[2] + "</td>";
                addTR += "<td width='*' align='center'>" + cols[4] + "</td>";
                addTR += "<td width='15%' align='center'>" + cols[5] + "</td>";
                addTR += "<td width='15%' align='center'>" + cols[6] + "</td>";
                addTR += "<td width='35' align='center'><a href=\"javascript: setNewEtcSubject('" + cols[0] + "');\" class=\"nodeco\");>선택</a></td>";
                addTR += "</tr>";
                addTR += "<tr><td colspan='5' height='1' bgcolor='#EAEAEA'></td></tr>";

                Insertion.Bottom("tblResult", addTR);
              }
              break;
          }
        }
      }
    );
  }

  function setNewEtcSubject(subjectCode) {
    $("tblResult").update();
    $("trResult").hide();
    $("tdMessage").update("과목명의 일부를 입력하신 후 검색 버튼을 클릭하세요.");
    $("trMessage").show();

    $("divEtcSubject").hide();

    new Ajax.Request(
      "/asp/ele_addNewEtcSubject.asp?subjid=" + subjectCode + "&grade=" + $F("txtNewGrade"),
      {
        onComplete: function(OR) {
          var or = OR.responseText;

          switch (or) {
            case 'NEED_SESSION':
              alert("사용자 접속세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              goURL("/?mode=3");
              break;

            case 'NEED_MORE_PARAMETERS':
              alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
              break;

            case 'ADDED':
              alert("기타 과목이 등록되었습니다.\n\n과목 선택 후 성적정보를 입력해 주세요.");
              display_div('/asp/grade_input_academicReport.asp','main_div','direct');
              popup();
              break;

            default:
              alert("작업 수행과정에서 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
              alert(or);
              break;
          }
        }
      }
    );
  }


  function viewSubjectButton(grade, val, areaCode, subjCode, termType, schoolKind) {
    var tr = $("trData_" + val);
    var valO = tr.getElementsByTagName("TD");
    var selValue = val + "|" + areaCode + "|" + subjCode + "-" + termType + "|";

    for (i = 1; i < valO.length; i++) {
      selValue += valO[i].innerText + "|";
    }

    selValue = selValue.substring(0, selValue.length - 1);

    userSelected_SubjectData_val        = selValue;
    userSelected_SubjectData_areaCode   = areaCode;
    userSelected_SubjectData_subjCode   = subjCode;
    userSelected_SubjectData_termType   = termType;
    userSelected_SubjectData_schoolKind = schoolKind;
    //alert(selValue + "\n" + areaCode + "\n" + subjCode + "\n" + termType);

    $("tdSubjectButton_" + grade).show();

    if ($("divNaesin").style.display == "") {
      setNaesinPopValue();  //성적수정창도 표시
    }
  }

  function setInputStatus() { //선택과목의 학기 유형에 따라 입력칸 활성/비활성화
    if ($F("selSubject") == "X") {
      enableNaesinInput(0); //모든 입력칸 활성화
    } else {
      //과목 학기유형
      var termType = $F("selSubject").split('-')[1];
      enableNaesinInput(termType);
    }
  }

  function saveNaesin() {
    var f = $("frmNAESIN");

    if ($F("selSubjectArea") == "X")  { alert("교과를 선택해 주세요."); return; }
    if ($F("selSubject") == "X")      { alert("과목을 선택해 주세요."); return; }

    var termType = "";

    //과목 학기유형
    if ($F("etcSubjID") == "") {  //공통
      termType = $F("selSubject").split('-')[1];
    } else {  //공통외 다른 학교유형
      termType = $("etcTermType");
    }


    //과목 학기유형에 따른 성적입력 확인
    if (termType == "0") {  //한 학년 과목인 경우 1,2학기 어느 쪽 하나만 넣어도 관계없으나 각 학기의 입력칸 6개는 모두 채워야 한다.
    
      if (  $F("txtV1_1").strip() != "" || $F("txtV1_2").strip() != ""
         || $F("txtV1_3").strip() != "" || $F("txtV1_4").strip() != ""
         || $F("txtV1_5").strip() != "" || $F("txtV1_6").strip() != "") { // 1학기 6개 입력항목 중 1개 항목이상 입력이 되어 있는가?

        if ($F("txtV1_1").strip() == "") { alert("1학기 단위수를 입력해 주세요.");   $("txtV1_1").focus(); return; }
        if ($F("txtV1_2").strip() == "") { alert("1학기 원점수를 입력해 주세요.");   $("txtV1_2").focus(); return; }
        if ($F("txtV1_3").strip() == "") { alert("1학기 평균점수를 입력해 주세요."); $("txtV1_3").focus(); return; }
        if ($F("txtV1_4").strip() == "") { alert("1학기 표준편차를 입력해 주세요."); $("txtV1_4").focus(); return; }
        if ($F("txtV1_5").strip() == "") { alert("1학기 석차등급을 입력해 주세요."); $("txtV1_5").focus(); return; }
        if ($F("txtV1_6").strip() == "") { alert("1학기 이수자수를 입력해 주세요."); $("txtV1_6").focus(); return; }
      }

      if (  $F("txtV2_1").strip() != "" || $F("txtV2_2").strip() != ""
         || $F("txtV2_3").strip() != "" || $F("txtV2_4").strip() != ""
         || $F("txtV2_5").strip() != "" || $F("txtV2_6").strip() != "") { // 2학기 6개 입력항목 중 1개 항목이상 입력이 되어 있는가?

        if ($F("txtV2_1").strip() == "") { alert("2학기 단위수를 입력해 주세요.");   $("txtV2_1").focus(); return; }
        if ($F("txtV2_2").strip() == "") { alert("2학기 원점수를 입력해 주세요.");   $("txtV2_2").focus(); return; }
        if ($F("txtV2_3").strip() == "") { alert("2학기 평균점수를 입력해 주세요."); $("txtV2_3").focus(); return; }
        if ($F("txtV2_4").strip() == "") { alert("2학기 표준편차를 입력해 주세요."); $("txtV2_4").focus(); return; }
        if ($F("txtV2_5").strip() == "") { alert("2학기 석차등급을 입력해 주세요."); $("txtV2_5").focus(); return; }
        if ($F("txtV2_6").strip() == "") { alert("2학기 이수자수를 입력해 주세요."); $("txtV2_6").focus(); return; }

      }
    
    }
    
    if (termType == "1") {
      if ($F("txtV1_1").strip() == "") { alert("1학기 단위수를 입력해 주세요.");   $("txtV1_1").focus(); return; }
      if ($F("txtV1_2").strip() == "") { alert("1학기 원점수를 입력해 주세요.");   $("txtV1_2").focus(); return; }
      if ($F("txtV1_3").strip() == "") { alert("1학기 평균점수를 입력해 주세요."); $("txtV1_3").focus(); return; }
      if ($F("txtV1_4").strip() == "") { alert("1학기 표준편차를 입력해 주세요."); $("txtV1_4").focus(); return; }
      if ($F("txtV1_5").strip() == "") { alert("1학기 석차등급을 입력해 주세요."); $("txtV1_5").focus(); return; }
      if ($F("txtV1_6").strip() == "") { alert("1학기 이수자수를 입력해 주세요."); $("txtV1_6").focus(); return; }
    }

    if (termType == "2") {
      if ($F("txtV2_1").strip() == "") { alert("2학기 단위수를 입력해 주세요.");   $("txtV2_1").focus(); return; }
      if ($F("txtV2_2").strip() == "") { alert("2학기 원점수를 입력해 주세요.");   $("txtV2_2").focus(); return; }
      if ($F("txtV2_3").strip() == "") { alert("2학기 평균점수를 입력해 주세요."); $("txtV2_3").focus(); return; }
      if ($F("txtV2_4").strip() == "") { alert("2학기 표준편차를 입력해 주세요."); $("txtV2_4").focus(); return; }
      if ($F("txtV2_5").strip() == "") { alert("2학기 석차등급을 입력해 주세요."); $("txtV2_5").focus(); return; }
      if ($F("txtV2_6").strip() == "") { alert("2학기 이수자수를 입력해 주세요."); $("txtV2_6").focus(); return; }
    }

  new Ajax.Request( '/asp/grade_input_academicReport_proc.asp', { method: 'post',
    parameters: f.serialize(), 
    asynchronous: false,
    onComplete : function(oR) {
      var or = oR.responseText;
      switch (or) {
            case 'NEED_SESSION':
              alert("세션이 해제되었습니다.\n\n로그인 후 다시 이용해 주세요.");
              document.location.href = "/mode=3";
              break;

            case 'NEED_MORE_PARAMETERS':
              alert("작업진행에 필요한 정보가 없습니다.\n\n확인 후 다시 이용해 주세요.");
              break;

            case 'FOUND_SAME_SUBJECT':
              alert("같은 과목에 대한 정보가 이미 등록되어 있습니다.\n\n확인 후 다시 이용해 주세요.");
              break;

            case 'SAVED':
              alert("저장되었습니다.");
              display_div('/asp/grade_input_academicReport.asp','main_div','direct');
              popup();
              break;

            case 'UPDATED':
              alert("갱신되었습니다.");
              display_div('/asp/grade_input_academicReport.asp','main_div','direct');
              popup();
              break;

            default:
              alert("작업 도중 알 수 없는 오류가 발생했습니다.\n\n확인 후 다시 이용해 주세요.");
              alert(or);
              break;
          }
        }
      }
    );
  }

function roundXL(n, digits) {
  if (digits >= 0) return parseFloat(n.toFixed(digits)); // 소수부 반올림

  digits = Math.pow(10, digits); // 정수부 반올림
  var t = Math.round(n * digits) / digits;

  return parseFloat(t.toFixed(0));
}
