﻿/*
    작성자 : 오정석
    작성일 : 2007-01-09
    내  용 : 지사약도 팝업
*/
function brcmPopup(brcmcd)
{
    cm_WindowOpen('/CMM/Popup/CMMP021.aspx?BrcmpCd='+brcmcd, 'left=300,top=100,width=437,height=510,toolbar=0,menubar=0,status=0,scrollbars=0,resizable=0');
}

/*
    작성자 : C.H.S
    작성일 : 2007-01-09
    내  용 : Calendar Open
*/
function ShowCalendar(sDate)
{
    var openPage = "/CMM/Popup/Calendar.aspx";
    
    var Args = new Object();
	Args.DATE = sDate;
    
    var returnValue = window.showModalDialog(openPage, Args, "status:no;center:yes;help:no;minimize:no;maximize:no;border:thin;statusbar:no;dialogWidth:250px;dialogHeight:270px");
    
    return returnValue == undefined ? "" : returnValue;
}

// 컨틀롤의 값이 날짜형식인지 체크
function IsDate(obj, isRequired)
{
    var dateStr = obj.value;
    
    var datePat = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
    var matchArray = dateStr.match(datePat);
    
    // 날짜등록이 미필수일 경우 그냥 return
    if(!isRequired && dateStr == "") return true;
    
    if (matchArray == null)
    {
        alert('Error : Date Format');
        obj.focus();
        return false;
    }
        
    var year = eval(matchArray[1]);
    var month = eval(matchArray[3]);
    var day = eval(matchArray[5]);
    
    if (year < 1900)
    {
        alert('Error : Date Format');
        obj.focus();
        return false;
    }

    if (month < 1 || month > 12)
    {
        alert('Error : Date Format');
        obj.focus();
        return false;
    }
    if (day < 1 || day > 31)
    {
        alert('Error : Date Format');
        obj.focus();
        return false;
    }

    if ((month==4 || month==6	|| month==9 || month==11) && day==31)
    {
        alert('Error : Date Format');
        obj.focus();
        return false;
    }
    if (month == 2)
	{
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap))
        {
            alert('Error : Date Format');
            obj.focus();
            return false;
        }
    }
    
    if (month < 10)
    {
        month = "0" + month;
    }
    
    if (day < 10)
    {
        day = "0" + day;
    }
    
    obj.value = year + "-" + month + "-" + day;
    
    return true;
}


// 컨트롤, 변수 존재 여부 확인 
function isObject(obj)
{
	if(typeof(obj) == "object")
	{
		return true;
	}
	else
	{
		return false;
	} 			
}

/*
    작성자 : 김동민
    작성일 : 2006-12-14
    내  용 : 플래쉬에서 콜하는 팝업 Function
*/
function flash_winopen(goUrl)
{
    if (goUrl=="CMMP002")
    {// 지사현황 팝업
        window.open("/CMM/Popup/"+ goUrl + ".aspx", "_blank", "left=100,top=100,width=820,height=300,toolbar=0,menubar=0,status=0,scrollbars=1,resizable=0");
    }
    else if (goUrl=="CMMP003")
    {// 운영자비상 연락망 팝업
        window.open("/CMM/Popup/"+ goUrl + ".aspx", "_blank", "left=300,top=100,width=328,height=270,toolbar=0,menubar=0,status=0,scrollbars=0,resizable=0");
    }
    else if (goUrl=="CMMP008")
    {// SK제휴카드 팝업
        window.open("/CMM/Popup/"+ goUrl + ".aspx", "_blank", "left=30,top=10,width=900,height=600,toolbar=0,menubar=0,status=0,scrollbars=1,resizable=1");
    }
    else        
    {
        alert("이동할 주소가 올바르지 않습니다.");
        history.back();
    }
}

/*
    작성자 : 오정석
    작성일 : 2006-12-15
    내  용 : 쿠키정보관련
*/
//쿠키에 저장된 값 가져오기
function getCookie( name )
{
	var nameOfCookie = name + "=";
	var x = 0;
	while ( x <= document.cookie.length )
	{
		var y = (x + nameOfCookie.length);
		if ( document.cookie.substring( x, y ) == nameOfCookie ) {
			if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
				endOfCookie = document.cookie.length;
			return unescape( document.cookie.substring( y, endOfCookie ) );
		}
		x = document.cookie.indexOf( " ", x ) + 1;
		if ( x == 0 )
			break;
	}
	return "";
}

function setCookie( name, value, expiredays )
{
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expiredays );
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString()  + ";"
}

// RD관련 함수 시작 --------------------------------------------------------------------------------------
/*
    작성자 : 오정석
    작성일 : 2006-12-04
    내용 : RdViewer Object
*/
function obj_rdview(){
	document.write('<object style="display:none"');
	document.write('   id=rdpdf');
	document.write('   classid="clsid:3CC691A9-582C-404E-8711-4BF0BEAC9FCA"');
	document.write('   width=0%');
	document.write('   height=0%');
	document.write('   codebase="http://www.elpg.com/cab/rdpdf20.cab#version=2,0,0,19">');
	document.write('</OBJECT>');
	document.write('<object style="display:none"');
	document.write('   id=TChart');
	document.write('   name=TChart');
	document.write('   width=0%');
	document.write('   height=0%');
	document.write('   classid="CLSID:FAB9B41C-87D6-474D-AB7E-F07D78F2422E"');
	document.write('   codebase="http://www.elpg.com/cab/teechart7.cab#version=7,0,0,5">');
	document.write('</object>');
	document.write('<object');
	document.write('   id="rdviewer"');
	document.write('   classid="clsid:ADB6D20D-80A1-4aa4-88AE-B2DC820DA076"');
	document.write('   codebase="http://www.elpg.com/cab/rdviewer50.cab#version=5,0,0,157"');
	document.write('   name=rdviewer');
	document.write('   width="100%"');
	document.write('   height="100%">');
	document.write('</object>');
}

// 리포트 포맷 지정
function SetReport(rdviewer) 
{   
    rdviewer.HideScrollBar(3);          // 스크롤바 생기지 않게함
    rdviewer.AutoAdjust = true;
	rdviewer.ZoomRatio=100;            //출력 화면의 배율을 작성된 용지 사이즈로 설정
	rdviewer.SetReportDialogInfo (1,"서버에 접속중입니다", "서버접속중", 1, "보고서를 작성중입니다", "보고서작성중");
	rdviewer.HideStatusBar();          //RD OCX 하단의 상태바를 화면에서 숨기기
	rdviewer.SetBackgroundColor(255,255,255); 
	rdviewer.SetPageLineColor(255,255,255);
	
	rdviewer.ViewShowMode(2);
	//rdviewer.HideToolBar();
	rdviewer.HideStatusBar();
}

// RD관련 함수 종료 --------------------------------------------------------------------------------------

/*
    작성자 : 오정석
    작성일 : 2006-12-03
    내용 : 사이트 이동
*/
function goLinkSite(url) {
	if (url != "") {
		window.open(url, "_blank");
	}
}

/*
    작성자 : 이민호
    작성일 : 2006-10-10
    내  용 : 팝업창 띄움
    옵션예 : left=300,top=100,width=498,height=430,toolbar=0,menubar=0,status=0,scrollbars=0,resizable=0
*/
function cm_WindowOpen( url, option)
{
    if (cm_CheckStr(url, " ", "") != 0)
    {
        window.open(url, "_blank", option);
    }
}

function cm_WindowsOpen( url )
{
        window.open(url, "_blank", "left=300,top=100,width=498,height=430,toolbar=0,menubar=0,status=0,scrollbars=0,resizable=0");
}

// 공통 팝업 오픈
function cm_OpenCommonPopup(sSearchType, sSearchText, sIsMulti, sEtcField )
{
    if(sEtcField == undefined) sEtcField = "";
    var openPage = "/CMM/Popup/CMMP026.aspx";
    
    var Args = new Object();
	Args.SEARCHTYPE = sSearchType;
	Args.SEARCHTEXT = sSearchText;
	Args.ISMULTI = sIsMulti;
	Args.ETCFIELD = sEtcField;
    
    var returnValue = window.showModalDialog(openPage, Args, "status:no;center:yes;help:no;minimize:no;maximize:no;border:thin;statusbar:no;dialogWidth:640px;dialogHeight:580px");
    
    return returnValue;
}

// 모달창 오픈
function cm_ModalWinOpen( sUrl, iWidth, iHeight, Args )
{
    var returnValue = window.showModalDialog(sUrl, Args, "status:no;center:yes;help:no;minimize:no;maximize:no;border:thin;statusbar:no;dialogWidth:"+iWidth+"px;dialogHeight:"+iHeight+"px");
    return returnValue;
}

/*  
    작성장  : 오정석
    작성일  : 2007-01-09
    설  명  : 타 사이트 링크시
    예      : linkSiteWinOpen("http://smartbill.co,kr")
*/
function linkSiteWinOpen( url )
{
        window.open(url, "_blank");
}

/*  
    작성장  : 이민호
    작성일  : 2006-10-10
    설명    : 값 변경 유틸 스크립트
    예      : cm_CheckStr ("12345 789", " ", "") 출력  9 -> 8 length 리턴
*/
function cm_CheckStr(strValue, strFind, strChange)
{
    var position, strOri_Length;
    position = strValue.indexOf(strFind);  
    
    while (position != -1){
      strValue = strValue.replace(strFind, strChange);
      position    = strValue.indexOf(strFind);
    }
  
    strOri_Length = strValue.length;
    return strOri_Length;
}
/*
    작성장  : 이민호
    작성일  : 2006-10-24
    설명    : 클라이언트아이디 + 폼아이디 getElementById 묶음 value값 리턴
    예      : cm_FormName("클라이언트아이디", "폼아이디")
*/
function cm_FormValue( clientid, formid )
{
    return document.getElementById(clientid + formid).value;
}
/*
    작성장  : 이민호
    작성일  : 2006-10-24
    설명    : 클라이언트아이디 + 폼아이디 getElementById 묶음 focus 
    예      : cm_FormFocus("클라이언트아이디", "폼아이디")
*/
function cm_FormFocus( clientid, formid )
{
    document.getElementById(clientid + formid).focus();
}
/*
    작성장  : 이민호
    작성일  : 2006-10-24
    설명    : 클라이언트아이디 + 폼아이디 getElementById 묶음 value값 "" 
    예      : cm_FormNull("클라이언트아이디", "폼아이디")
*/
function cm_FormNull( clientid, formid )
{
    document.getElementById(clientid + formid).value = "";
}

/*
    작성장  : 김동민
    작성일  : 2006-10-24
    설명    : 숫자만 입력받을 수 있는....... 
    예      : cm_FormNull("값")
*/
function cm_NumCheck(strValue) 
{ 
    for(i=0;i<strValue.length;i++) 
    { 
        char = strValue.substring(i,i+1); 
        if (char < '0' || char > '9') 
        { 
            return false; 
        }
        else 
        { 
            return true;        
        } 
    } 
}

/*
    작성자 : 이민호
    작성일 : 2006-10-30
    설명 : AJAX를 위한 각종 스크립트
    예 : //<A>sss</A>형식을 만듬
*/
var cm_xml		= new ActiveXObject("MSXML2.DOMDocument");
var cm_xmlhttp	= new ActiveXObject("MSXML2.XMLHTTP");
var cm_xsl		= new ActiveXObject("MSXML2.DOMDocument");	
var cm_cvtXML   = new ActiveXObject("MSXML2.DOMDocument").createTextNode("");
function cm_MakeNode(sName,vVal,sKey,bCData) 
{
	try{
		cm_cvtXML.text = vVal;
		return "<"+sName+">"+vVal+"</"+sName+">";
	}catch(e){
		alert("Error : "+e.description + "\r\nError number: " + e.number);
	}
}
function cm_evalXML( sXML )
{
	if(!cm_xml.loadXML( sXML )){
		var err = cm_xml.parseError;
		throw new Error(err.errorCode,"desc:"+err.reason+"\nsrctxt:"+err.srcText+"\nline:"+err.line+"\tcolumn:"+err.linepos);
	}
}
function cm_RequestHTTP( sMethod, sUrl, bAsync, sCType, pCallback, vBody )
{
    cm_xmlhttp.open(sMethod,sUrl,bAsync);
	cm_xmlhttp.setRequestHeader("Accept-Language","ko");
	cm_xmlhttp.setRequestHeader("Content-type", sCType);
	if(pCallback!=null)cm_xmlhttp.onreadystatechange = pCallback;
	(vBody!=null)?cm_xmlhttp.send(vBody):cm_xmlhttp.send();
}
/*
    자리수 10자리 0으로 채워줌
*/
function cm_TenLength(values)
{
    var cnt = 10 - values.length;
    var morezero = "";
    for(i = 0; cnt > i; i++)
    {
        morezero = morezero + "0";
    }
    return morezero + values;
}

/*
    replace
*/
function ReplaceString(sString, fromString, toString){ 
    var RegExpString = new RegExp(fromString, "gi") 
	var NewString = sString.replace(RegExpString, toString); 
	return NewString;
} 

/*
   반올림
*/
function Round(dVal, iDec)
{
    var iLength = 10;
    if(iDec == 1)
    {
        iLength = 10;
    }
    else if(iDec == 2)
    {
        iLength = 100;
    }
    else if(iDec == 3)
    {
        iLength = 1000;
    }
    else if(iDec == 4)
    {
        iLength = 10000;
    }
    else if(iDec == 5)
    {
        iLength = 100000;
    }
    
    return Math.round(dVal * iLength)/iLength;
} 

/*
    숫자만 입력 가능
*/
function OnlyNumber(obj, strAdd) { 
	var bBreak = true;
	var str = strAdd + "0123456789";
	
	for(i = 0; i < obj.value.length; i++) 
	{
		idcheck = obj.value.charAt(i);
		for(j = 0; j < str.length; j++) 
		{
			if(idcheck == str.charAt(j))
				break;
			if(j + 1 == str.length) 
			{
				bBreak = false;
			}
		}
	}
	
	if(!bBreak)
		obj.value = "";
		
	return bBreak;
	
}

// 컨트롤의 XY좌표
function getXYcoord(obj)
{
	if ( document.layers ) return obj;
	var rd = { x:0 ,y:0 };
	do {
		rd.x += parseInt(obj.offsetLeft );
		rd.y += parseInt(obj.offsetTop );
		obj = obj.offsetParent;
	} while ( obj );
	return rd;
}

// 초성, 중성, 종성으로 분리하기
function GetUtf8String(str) 
{
    var ChrLen = str.length;
    var TotalValue = "";
    var Cho  = "";
    for(i=0; i < ChrLen ; i++){
        var OneStr = str.substring(i,i+1);
        
        if(OneStr.charCodeAt() >= 12593 && OneStr.charCodeAt() <= 12622)
        {
            TotalValue = TotalValue + OneStr;
        }
        else
        {
             var regExp1 = /[^-a-zA-Z0-9]/;
            if (regExp1.test(OneStr)){  // 영문 및 숫자만 존재하는지 체크한다. ( 한글 및 특수문자면 실행하지 않는다. )
                n_ch = OneStr.charCodeAt();
                ch_L = Math.floor(Math.floor((n_ch - 0xAC00) / 28) / 21);
                Cho = String.fromCharCode(GetConsonant(ch_L + 0x1100));
                TotalValue = TotalValue + Cho;
            }else{
                TotalValue = TotalValue + OneStr;
            }
        }
    }
    return TotalValue;
}

// 자음 가져오기
function GetConsonant (Code) 
{
    var rtnCode = null;
    switch(Code)
    {
        // ㄱ
        case 4352 :
        case 4353 : rtnCode =  12593;
        break;
        
        // ㄴ
        case 4354 : rtnCode =  12596;
        break;
        
        // ㄷ
        case 4355 : 
        case 4356 : rtnCode =  12599;
        break;
        
        // ㄹ
        case 4357 : rtnCode =  12601;
        break;
        
        // ㅁ
        case 4358 : rtnCode =  12609;
        break;
        
        // ㅂ
        case 4359 : 
        case 4360 : rtnCode =  12610;
        break;
        
        // ㅅ
        case 4361 : 
        case 4362 : rtnCode =  12613;
        break;
        
        // ㅇ
        case 4363 : rtnCode =  12615;
        break;
        
        // ㅈ
        case 4364 : 
        case 4365 : rtnCode =  12616;
        break;
        
        // ㅊ
        case 4366 : rtnCode =  12618;
        break;
        
        // ㅋ
        case 4367 : rtnCode =  12619;
        break;
        
        // ㅌ
        case 4368 : rtnCode =  12620;
        break;
        
        // ㅍ
        case 4369 : rtnCode =  12621;
        break;
        
        // ㅎ
        case 4370 : rtnCode =  12622;
        break;
    }
    
    return rtnCode;
}


/*메시지모음*/
function GetMailMsg()
{
    return "메일주소를 확인하세요";
}

// XML.aspx의 파일을 비동기로 호출하여 코드명을 조회한다.
var sQryType = "";
function GetCode(qtype, obj, isFullLength)
{
    sQryType = qtype;
    var values = obj.value;
    
    if(values == "")
    {
        SetCode("0000");
        return;
    }
    
    if(isFullLength == 1)
        values = cm_TenLength(values);
        
    var sXML = "";
    sXML += cm_MakeNode("QTYPE", qtype, null, true);    // 쿼리타입
    sXML += cm_MakeNode("PARAM1", values, null, true);  // 계약번호
	
    var sText = "<Request>"+sXML+"</Request>";
    cm_evalXML(sText);
    cm_RequestHTTP("POST", "/CMM/Common/XML.aspx", true, "text/xml", rcvHTTP, sText);
}

function rcvHTTP()
{
    if(cm_xmlhttp.readyState == 4)
	{				
		cm_xmlhttp.onreadystatechange = Event_Noop;
		var errorNode = cm_xmlhttp.responseXML.selectSingleNode("Response/error");
		if(errorNode != null)
		{
			alert("Desc: " + errorNode.text);
			return;
		}
		else
		{
		    SetCode(cm_xmlhttp.responseText); // 각페이지에 SetCode을 정의해 주어야 한다.
		}
	}
}
function Event_Noop(){return(false);}


/*메뉴 스크립트 */
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v;     
    }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
