﻿//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 플래쉬를 삽입하기 위한 함수
function fl_view(objhtml) { 
    document.write(objhtml); 
} 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//팝업띄우기 시작
function showPopUp(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';

  cookie_str = document.cookie;
  cookie_str.toString();

  pos_start  = cookie_str.indexOf(name);
  pos_end    = cookie_str.indexOf('=', pos_start);

  cookie_name = cookie_str.substring(pos_start, pos_end);

  pos_start  = cookie_str.indexOf(name);
  pos_start  = cookie_str.indexOf('=', pos_start);
  pos_end    = cookie_str.indexOf(';', pos_start);
  
  if (pos_end <= 0) pos_end = cookie_str.length;
  cookie_val = cookie_str.substring(pos_start + 1, pos_end);
  if (cookie_name == name && cookie_val  == "done")
    return;

  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}
//팝업띄우기 끝


//전체선택 체크박스 시작
function SelectAllChkBox(spanChk){

   var oItem = spanChk.children;
   var theBox= (spanChk.type=="checkbox") ?
        spanChk : spanChk.children.item[0];
   xState=theBox.checked;
   elm=theBox.form.elements;

   for(i=0;i<elm.length;i++)
     if(elm[i].type=="checkbox" &&
              elm[i].id!=theBox.id)
     {
       
       if(elm[i].checked!=xState)
         elm[i].click();       
     }
}  
//전체선택 체크박스 끝


//숫자만
function OnlyNumber()
{
	if((event.keyCode < 48 || event.keyCode > 57)){
		event.returnValue = false;
	}
}


//한글만
function Onlyhangul()
{
	if((event.keyCode < 12592) || (event.keyCode > 12687)) {
		event.returnValue = false;
	}
}


//영어만
function OnlyEnglish()
{
	if(((event.keyCode < 97) || (event.keyCode > 122)) && ((event.keyCode < 65) || (event.keyCode > 90)) && event.keyCode != 32) {
		event.returnValue = false;
	}
}


//한글만 입력
function checkHan(tmp) {
    var i = 0;
    var str = tmp.value;
    for(i=0; i<str.length; i++)
    {
        //if(!((str.charCodeAt(i) > 0x3130 && str.charCodeAt(i) < 0x318F) || (str.charCodeAt(i) >= 0xAC00 && str.charCodeAt(i) <= 0xD7A3)))
        if (str.charCodeAt(i) != 32 && (str.charCodeAt(i) < 44032 || str.charCodeAt(i) > 55203))
        {
         
	        alert("반드시 한글만 입력하세요");
	        tmp.value = "";
	        //tmp.focus();
	        
	        return false;
	        break;
        }
    }
}


//영문소문자만
function IsOnlyLowEng( f ) {
    var Regex = /^[0-9a-z]*$/;
    
    if(!Regex.test(f.value)){
        alert("숫자와 영문소문자만 입력가능합니다.");
        f.value = "";
        f.focus();
        return false;
    }
}
        

//영어만 입력
function checkEng(tmp) {
 var cnt = 0;
 var str = tmp.value;
 for(i=0; i<str.length; i++) {
  if(str.charCodeAt(i)>=0 && str.charCodeAt(i)<=127) {
   // ascii
  } else {
   // not ascii
   cnt++;
  }
  if(cnt!=0) { 
        alert('반드시 영어만 입력하세요'); 
        tmp.value = "";
        tmp.focus();
        return false;
    }
 } 
}

//바이트 길이 체크
function checkLenBytes(str) {
  var tcount = 0;

  var tmpStr = new String(str);
  var temp = tmpStr.length;

  var onechar;
  for ( k=0; k<temp; k++ )
  {
    onechar = tmpStr.charAt(k);
    if (escape(onechar).length > 4)
    {
      tcount += 2;
    }
    else
    {
      tcount += 1;
    }
  }

  return tcount;
}


//체크박스 한개만 선택되게(체크박스리스트명, 지금선택한 Obj명)
function checkBoxCtl(cbListName, cbCheckedName) {
    var elm=document.forms[0].elements;
    for(i=0;i<elm.length;i++)
	{
		if(elm[i].type=="checkbox" && elm[i].name.substring(elm[i].name.length-7,elm[i].name.length) == cbListName)	{
		    if(elm[i].checked == true && elm[i].name != cbCheckedName.name) {
			    elm[i].checked = false;
			}
		}						
	}
}


//비밀번호 체크
function PWRegex(cElement){
    var cValue = cElement.value;
    var returnvalue = true;
    var Regex = /^[0-9a-zA-Z]*$/;
    if(cValue.length < 4 || cValue.length > 12){
	    alert("4 ~ 12자리 이내로 입력해 주십시오.");
	    cElement.value = "";
	    cElement.focus();
	    returnvalue = false;
    }    
    if(!Regex.test(cValue)){
	    alert("숫자와 영문만 입력가능합니다.");
	    cElement.value = "";
	    cElement.focus();
	    returnvalue = false;
    }
    return returnvalue;
//    if(cValue != null && cValue != ""){
//	    var Regex1 = /(.)\1\1|(?=012|123|234|345|456|567|678|789|890)/;
//	    var Regex2 = /^([a-zA-Z]+)([0-9]+)/;
//	    if(Regex1.test(cValue)){
//		    alert("연속된 문자나 숫자는 비밀번호로 사용하실수 없습니다.");
//		    cElement.focus();
//		    return false;
//	    }
//	    else if(!Regex2.test(cValue)){
//		    alert("반드시 영문자로 시작하는 영문자와 숫자로 조합된 비밀번호를 입력해 주십시오.");
//		    cElement.focus();
//		    return false;
//	    } else{
//		    if(cValue.length < 6 || cValue.length > 12){
//			    alert("비밀번호는 6 ~ 12 자리 이내로 입력해 주십시오.");
//			    cElement.focus();
//			    return false;
//		    }
//	    }
//	}
}


//아이디 체크(계정생성시)
function IDRegex(cElement){
    var returnvalue = true;
	var cValue = cElement.value;	
	if(cValue != null && cValue != ""){
	    //var Regex1 = /^[a-zA-Z][_0-9a-zA-Z]*$/;
	    var Regex1 = /^[a-z]/;
	    var Regex2 = /^[a-z][0-9a-z]*$/;
	    if(!Regex1.test(cValue)){
		    alert("첫문자는 반드시 영문 소문자로 입력해 주십시오.");		    
		    cElement.value = "";
		    cElement.focus();
		    returnvalue = false;
		} else if(!Regex2.test(cValue)){
		    alert("영문 소문자와 숫자만 입력가능합니다.");
		    cElement.value = "";
		    cElement.focus();
		    returnvalue = false;
	    }else if(cValue.length < 4 || cValue.length > 12){
		    alert("아이디는 4 ~ 12자리 이내로 입력해 주십시오.");
		    cElement.value = "";
		    cElement.focus();
		    returnvalue = false;
	    }
	}
	return returnvalue;
}


//아이디 체크(로그인시)
function IDLoginRegex(cElement){
	var cValue = cElement.value;
	
	if(cValue != null && cValue != ""){
	    //var Regex = /^[_0-9a-zA-Z]*$/;
	    var Regex = /^[0-9a-zA-Z]*$/;
	    if(!Regex.test(cValue)){
		    alert("숫자와 영문만 입력가능합니다.");
		    cElement.value = "";
		    cElement.focus();
		    return false;
	    }
	}
}


//필드널값체크
function fieldcheck(field, msg, foucs) {
    var returnvalue = true;
    if(field.value == "") {
        alert(msg);
        if (foucs) field.focus();
        returnvalue = false;
    }  
    return returnvalue;      
}


//숫자, 영문만 입력 가능하게...
function IsDigit( f ) {
    var ReturnVal = false;
    //alert(event.keyCode);
    
    if ( ((event.keyCode >= 48) && (event.keyCode <= 57)) || ((event.keyCode >= 97) && (event.keyCode <= 122)) ) {
	    ReturnVal = true;
    }

    return ReturnVal;
}


//a, b(같은값)비교
function comparevalue(a, b, msg) {
    var returnvalue = true;
    if (a.value != b.value) {
        alert(msg);
        a.focus();
        returnvalue = false;
    }
    return returnvalue;
}
    

//###########################################################################
//############              클래스용                
//###########################################################################
//리스트아이템 체크
function ListItemChecked(v) {
    var Cnt = 0;
    var elm=document.forms[0].elements;
    
    for(i=0;i<elm.length;i++) {
	    if(elm[i].type=="checkbox" && elm[i].name.substring(elm[i].name.length-7,elm[i].name.length) == v)	{
	        if(elm[i].checked == true) {
		        Cnt += 1;
		    }
	    }						
    }		    
    return Cnt;
}

//############          닷넷 프레임워크 설치 체크        ############
// 체험하기
function paymentOk(){   
    var vercheck =   0;
    vercheck = frameworkcheck();
    
    if(vercheck == 1) {
        if(confirm('닷넷 프레임워크 설치가 완료되면\n\n이창을 닫고 익스플로러를 시작해야됩니다.\n\n익스플로러를 다시 시작하시겠습니까?')) {
            this.close();
            window.open("/students/Enrichment/testpreview.aspx");
            
        }
        else {
            alert("인터넷 익스플로러를 다시 시작해야 서비스를 이용하실수 있습니다.");
            vercheck = 0;
        }
    }
            
    if(vercheck != 0) {
        aspnetForm.action = 'http://www.successibt.com/cooperate/slp/Default.aspx'; 
        aspnetForm.method = 'post'; 
        aspnetForm.target = 'iframePayment'; 
        aspnetForm.submit();
    }
} 

//프레임워크 설치 체크(설치유무, 페이지URL)
function frameworkcheck(v1, v2){
    var returnvar = 0;
    var curVer = v1;

    if(curVer=="false" || curVer== false) {
        if(confirm('닷넷프레임워크2.0을 설치하셔야 \n\n정상적으로 서비스를 이용 하실수 있습니다.\n\n설치하시겠습니까?')) {
            //window.open("http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe");
            //window.open("/Common/Programs/NetFx20SP2_x86.exe");   //SLP서버로 경로변경
            window.open("http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe");
            returnvar = 1;
        }
        else
            returnvar = 0;
    }
    else
        returnvar = 2;
        
        
    if(returnvar == 1) {
        if(confirm('닷넷 프레임워크 설치가 완료되면\n\n이창을 닫고 익스플로러를 시작해야됩니다.\n\n익스플로러를 다시 시작하시겠습니까?')) {
            this.close();
            window.open(v2);            
        }
        else {
            alert("인터넷 익스플로러를 다시 시작해야 서비스를 이용하실수 있습니다.");
            returnvar = 0;
        }
    }
    
    return returnvar;
}



//체크박스리스트 컨트롤 자바스크립트로체크
function cblistChk(cbname) {

    var tableBody = document.getElementById(cbname).childNodes[0].childNodes[0];
    var cnt = 0;

    
    for (var i=0;i<tableBody.childNodes.length; i++)
    {
        var listControl = tableBody.childNodes[i].childNodes[0];

        if ( listControl.checked == true )
           cnt += 1;             
    }

    if(cnt == 0)
        return false;
    else
        return true;            
}

//클래스관리 > 날짜비교(비교할 첫번째날짜, 두번째날짜, 널체크날짜, 메시지, 텀(비교유효기간)
function DateCheckedAB(f1, f2, ftarget, msg, term) {
    if(f1.value !="" && invalidateDay(f1.value,f2.value, term, msg) == false) {
        ftarget.focus();
        return false;
    }
    return true;
}

//클래스관리 > 세션체크
function sessioncheck(no, sdate, edate) {
    var checkedCnt = 0;
    checkedCnt = ListItemChecked("cbList"+no);
    if(checkedCnt == 0)  {
        if(no=="1") {
            alert("세션("+no+") : 강좌를 선택해 주십시오.");
            return false;
        }else {
            if(sdate.value != "") {
               alert("세션("+no+") : 강좌를 선택해 주십시오.");
               return false;
            }   
        }		        
    }
    else if(checkedCnt == 1)   {    
        if(sdate.value == "") {
            alert("세션("+no+") : 시작날짜를 입력해 주십시오.");
            sdate.focus();
            return false;
        }
        else if(edate.value == "") {
            alert("세션("+no+") : 종료날짜를 입력해 주십시오.");
            edate.focus();
            return false;
        }
        else if(invalidateDay(sdate.value,edate.value,120, "세션("+no+")의 시작일은 종료일보다 앞쪽에 있어야 합니다.") == false){
            sdate.focus();
            return false;        
        }
    }
    else{
        alert("세션("+no+") : 강좌를 하나만 선택해 주십시오.");
        return false;
    }
    return true;             
}

//클래스관리 > 필드체크
function FieldChecked(ClassSData1, ClassSData2, ClassSData3, ClassEData1, ClassEData2, ClassEData3, 
                        ReviewDate1, ReviewDate2, ReviewDate3, AchiveDate1, AchiveDate2, AchiveDate3, isTest) {
                        
    if(!sessioncheck(1, ClassSData1, ClassEData1)) {return false;}
    if(!sessioncheck(2, ClassSData2, ClassEData2)) {return false;}
    if(!sessioncheck(3, ClassSData3, ClassEData3)) {return false;}       

    if(isTest) {
    //필드에 날짜 자동입력
    if(ReviewDate1.value == "")   {ReviewDate1.value = ClassEData1.value;}
    if(ReviewDate2.value == "")   {ReviewDate2.value = ClassEData2.value;}
    if(ReviewDate3.value == "")   {ReviewDate3.value = ClassEData3.value;}
    if(AchiveDate1.value =="")    {AchiveDate1.value = ClassEData1.value;}
    if(AchiveDate2.value =="")    {AchiveDate2.value = ClassEData2.value;}
    if(AchiveDate3.value =="")    {AchiveDate3.value = ClassEData3.value;}

    var msg = "시작일보다 Test Review 날짜가 빠를 수 없습니다.";	
    if(!DateCheckedAB(ClassSData1, ReviewDate1, ReviewDate1, msg, "1000")) {return false;}
    if(!DateCheckedAB(ClassSData2, ReviewDate2, ReviewDate2, msg, "1000")) {return false;}
    if(!DateCheckedAB(ClassSData3, ReviewDate3, ReviewDate3, msg, "1000")) {return false;}
    
    msg = "시작일보다 Achievement Test 날짜가 빠를 수 없습니다.";	
    if(!DateCheckedAB(ClassSData1, AchiveDate1, AchiveDate1, msg, "1000")) {return false;}
    if(!DateCheckedAB(ClassSData2, AchiveDate2, AchiveDate2, msg, "1000")) {return false;}
    if(!DateCheckedAB(ClassSData3, AchiveDate3, AchiveDate3, msg, "1000")) {return false;}
    
    msg = "Test Review 날짜보다 세션 종료일이 빠를 수 없습니다.";
    if(!DateCheckedAB(ReviewDate1, ClassEData1, ReviewDate1, msg, "1000")) {return false;}
    if(!DateCheckedAB(ReviewDate2, ClassEData2, ReviewDate2, msg, "1000")) {return false;}
    if(!DateCheckedAB(ReviewDate3, ClassEData3, ReviewDate3, msg, "1000")) {return false;}

    msg = "Achievement Test 날짜보다 세션 종료일이 빠를 수 없습니다.";
    if(!DateCheckedAB(AchiveDate1, ClassEData1, AchiveDate1, msg, "1000")) {return false;}
    if(!DateCheckedAB(AchiveDate2, ClassEData2, AchiveDate2, msg, "1000")) {return false;}
    if(!DateCheckedAB(AchiveDate3, ClassEData3, AchiveDate3, msg, "1000")) {return false;}        
    }

	var NextdateMsg = "이전세션 종료일보다 시작일이 빠를 수 없습니다.";
    if(invaliNextdateDay(ClassEData1.value,ClassSData2.value,1000, NextdateMsg) == false) {
	    ClassSData2.focus();
	    return false;
	}
	if(invaliNextdateDay(ClassEData1.value,ClassSData3.value,1000, NextdateMsg) == false) {
	    ClassSData3.focus();
	    return false;
	}		
	if(invaliNextdateDay(ClassEData2.value,ClassSData3.value,1000, NextdateMsg) == false) {
	    ClassSData3.focus();
	    return false; 
	}		
	if(invaliNextdateDay(ClassSData1.value,ClassEData3.value,1000, "") == false) {
	    ClassSData3.focus();
	    return false;
	}
	return true;
}

//클래스관리 > LH, NHK 과정 필드체크(세션 4까지 기본적으로 등록)
function FieldChecked_S4(ClassSData1, ClassSData2, ClassSData3, ClassSData4, 
                         ClassEData1, ClassEData2, ClassEData3, ClassEData4,
                         ReviewDate1, ReviewDate2, ReviewDate3, ReviewDate4, 
                         AchiveDate1, AchiveDate2, AchiveDate3, AchiveDate4, isTest) {

    if (!sessioncheck(1, ClassSData1, ClassEData1)) { return false; }
    if (!sessioncheck(2, ClassSData2, ClassEData2)) { return false; }
    if (!sessioncheck(3, ClassSData3, ClassEData3)) { return false; }
    if (!sessioncheck(4, ClassSData4, ClassEData4)) { return false; }

    if (isTest) {
        //필드에 날짜 자동입력
        if (ReviewDate1.value == "") { ReviewDate1.value = ClassEData1.value; }
        if (ReviewDate2.value == "") { ReviewDate2.value = ClassEData2.value; }
        if (ReviewDate3.value == "") { ReviewDate3.value = ClassEData3.value; }
        if (ReviewDate4.value == "") { ReviewDate4.value = ClassEData4.value; }
        
        if (AchiveDate1.value == "") { AchiveDate1.value = ClassEData1.value; }
        if (AchiveDate2.value == "") { AchiveDate2.value = ClassEData2.value; }
        if (AchiveDate3.value == "") { AchiveDate3.value = ClassEData3.value; }
        if (AchiveDate4.value == "") { AchiveDate4.value = ClassEData4.value; }

        var msg = "시작일보다 Test Review 날짜가 빠를 수 없습니다.";
        if (!DateCheckedAB(ClassSData1, ReviewDate1, ReviewDate1, msg, "1000")) { return false; }
        if (!DateCheckedAB(ClassSData2, ReviewDate2, ReviewDate2, msg, "1000")) { return false; }
        if (!DateCheckedAB(ClassSData3, ReviewDate3, ReviewDate3, msg, "1000")) { return false; }
        if (!DateCheckedAB(ClassSData4, ReviewDate4, ReviewDate4, msg, "1000")) { return false; }

        msg = "시작일보다 Achievement Test 날짜가 빠를 수 없습니다.";
        if (!DateCheckedAB(ClassSData1, AchiveDate1, AchiveDate1, msg, "1000")) { return false; }
        if (!DateCheckedAB(ClassSData2, AchiveDate2, AchiveDate2, msg, "1000")) { return false; }
        if (!DateCheckedAB(ClassSData3, AchiveDate3, AchiveDate3, msg, "1000")) { return false; }
        if (!DateCheckedAB(ClassSData4, AchiveDate4, AchiveDate4, msg, "1000")) { return false; }

        msg = "Test Review 날짜보다 세션 종료일이 빠를 수 없습니다.";
        if (!DateCheckedAB(ReviewDate1, ClassEData1, ReviewDate1, msg, "1000")) { return false; }
        if (!DateCheckedAB(ReviewDate2, ClassEData2, ReviewDate2, msg, "1000")) { return false; }
        if (!DateCheckedAB(ReviewDate3, ClassEData3, ReviewDate3, msg, "1000")) { return false; }
        if (!DateCheckedAB(ReviewDate4, ClassEData4, ReviewDate4, msg, "1000")) { return false; }

        msg = "Achievement Test 날짜보다 세션 종료일이 빠를 수 없습니다.";
        if (!DateCheckedAB(AchiveDate1, ClassEData1, AchiveDate1, msg, "1000")) { return false; }
        if (!DateCheckedAB(AchiveDate2, ClassEData2, AchiveDate2, msg, "1000")) { return false; }
        if (!DateCheckedAB(AchiveDate3, ClassEData3, AchiveDate3, msg, "1000")) { return false; }
        if (!DateCheckedAB(AchiveDate4, ClassEData4, AchiveDate4, msg, "1000")) { return false; }
    }

    var NextdateMsg = "이전세션 종료일보다 시작일이 빠를 수 없습니다.";
    if (invaliNextdateDay(ClassEData1.value, ClassSData2.value, 1000, NextdateMsg) == false) {
        ClassSData2.focus();
        return false;
    }
    if (invaliNextdateDay(ClassEData1.value, ClassSData3.value, 1000, NextdateMsg) == false) {
        ClassSData3.focus();
        return false;
    }
    if (invaliNextdateDay(ClassEData2.value, ClassSData3.value, 1000, NextdateMsg) == false) {
        ClassSData3.focus();
        return false;
    }
    if (invaliNextdateDay(ClassEData3.value, ClassSData4.value, 1000, NextdateMsg) == false) {
        ClassSData4.focus();
        return false;
    }   
    if (invaliNextdateDay(ClassSData1.value, ClassEData4.value, 1000, "") == false) {
        ClassSData4.focus();
        return false;
    }

    return true;
}

//공백제거 프로퍼티 추가
String.prototype.trim = function() 
{	
    return this.replace(/(^\s*)|(\s*$)/gi,"");
}
