<!--
/**
 * 자주 사용되거나, 필요한 JS 함수
 *
 * @Filename	: util.js
 * @Created	: 2007.10.30
 * @Updated	: xxxx.xx.xx
 * @See		: 중복선언 확인요망.
 */

/*******************************************************************************************
 * 브라우저 관련 함수
 *******************************************************************************************/
function isIE(){
	return (navigator.userAgent.indexOf("MSIE") > -1) ? true : false;
}
 
/*******************************************************************************************
 * 스트링 관련 함수
 *******************************************************************************************/
 
/**
 * 입력폼에 글자수 제한을 한다.
 * (입력폼에 글자수를 표시하지 않을때)
 */
function strCheckByte(obj, maxlength) {
	var charOne = "";
	var charCount = 0;
	var charTemp = "";
	var objForm = obj;
	
	for(var i=0; i<objForm.value.length; i++){
		charOne = objForm.value.charAt(i);

		if(escape(charOne).length > 4){
			charCount += 2;
		}else if(charOne != '\r'){
			charCount++;
		}

		if(charCount > maxlength){
			alert("허용된 글자수[한글:"+ Math.floor(maxlength/2) +", 영문:"+ maxlength +"]가 초과되었습니다.\r\n초과된 부분은 자동으로 삭제됩니다.");
			objForm.value = strCutByte(objForm.value, maxlength);
			break;
		}
	}
}

/**
 * 글자를 자른다.(Byte)
 *
 */
function strCutByte(str, maxlength){
	
	var charOne = "";
	var charCount = 0;
	var charTemp = "";
	
	for(var i=0; i<str.length; i++){
		charOne = str.charAt(i);

		if(escape(charOne).length > 4){
			charCount += 2;
		}else{
			charCount++;
		}

		if(charCount > maxlength) break;
		charTemp += charOne;
	}
	
	return charTemp;
}

/**
 * 입력폼에 글자수 제한을 한다.
 * (입력폼에 글자수를 표시할때)
 * 아직 검증이 필요함.
 */
function strCheckByteDisplay(inputObj, dispObj, maxlength) {
	var charOne = "";
	var charCount = 0;
	var charTemp = "";
	var charTempCnt = 0;
	var objForm = inputObj;
	var objFormDisp = document.getElementById(dispObj);
	
	for(var i=0; i<objForm.value.length; i++){
		charOne = objForm.value.charAt(i);
		
		if(escape(charOne).length > 4){
			charCount += 2;
		}else if(charOne != '\r'){
			charCount++;
		}
		
		if(charCount > maxlength){
			alert("허용된 글자수[한글:"+ Math.floor(maxlength/2) +", 영문:"+ maxlength +"]가 초과되었습니다.\r\n초과된 부분은 자동으로 삭제됩니다.");
			objForm.value = strCutByte(objForm.value, maxlength);
			break;
		}
		
		objFormDisp.value = charCount;
	}
}

/** 
 * 양쪽 공백을 없앤다.
 *
 */
function strTrim(str){

	var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자
	str = str.replace(pattern, "");
	return str;
	
}

/**
 * 폼의 입력값이 공백인지 검사한다.
 *
 */
function strCheckNull(str){
	
	var ret = false;
	if(strTrim(str) == ""){
		ret = true;
	}
	return ret;
	
}

function validAlertFocus(obj, msg){
	alert(msg);
	obj.focus();
}

/**
 * 폼의 값이 공백인지 검사하여 alert 및 focus
 * param : obj, msg, flag
 * return : return or return false;
 */
function validCheckForm(obj, msg){
	var ret = false;
	if(strCheckNull(obj.value)){
		validAlertFocus(obj, msg);
	}else{
		ret = true;	
	}
	return ret;
}

/**
 * 폼의 값이 공백인지 검사하여 alert 및 No focus
 * param : obj, msg, flag
 * return : return or return false;
 */
function validCheckFormNF(obj, msg){
	var ret = false;
	if(strCheckNull(obj.value)){
		alert(msg);
	}else{
		ret = true;
	}
	return ret;
}

function validCheckEmail(obj){
	var ret = false;
	if(strCheckNull(obj.value)){
		validAlertFocus(obj, "이메일을 입력하여 주십시요.");
	}else if(!isValidEmail(obj.value)){
		validAlertFocus(obj, "이메일을 정확하게 입력하여 주십시요.");
	}else{
		ret = true;
	}
	return ret;
}

function validCheckJumin2(obj1, obj2){
	var ret = false;
	if(strCheckNull(obj1.value)){
		validAlertFocus(obj1, "주민등록번호 앞자리[6자]를 입력하여 주십시요.");
	}else if(strCheckNull(obj2.value)){
		validAlertFocus(obj2, "주민등록번호 뒷자리[7자]를 입력하여 주십시요.");
	}else if(!isValidJumin2(obj1.value, obj2.value)){
		validAlertFocus(obj1, "주민등록번호를 정확하게 입력하여 주십시요.");
	}else{
		ret = true;
	}
	return ret;
}

// 전자우편 주소검사
function isValidEmail(email) {
	var regDoNot = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; 
	var regMust = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3})$/;  
	return (!regDoNot.test(email) && regMust.test(email)) ? true : false;
}

// 주민등록번호 검사(입력 두자리)
function isValidJumin2(jumin1,jumin2){
	var check=false;
	var total = 0 ;
	var temp = new Array(13) ;

	for(var i=1; i<=6; i++) {
		temp[i] = jumin1.charAt(i-1);
	}
	for(var i=7; i<=13; i++) {
		temp[i] = jumin2.charAt(i-7);
	}

	var k=0;
	for(var i=1; i<=12; i++){ 
		k = i + 1 ;
		if(k >= 10) k = k % 10 + 2 ;
		total = total + temp[i] * k ;
	} 
	mm = temp[3] + temp[4] ;
	dd = temp[5] + temp[6] ;

	totalmod = total % 11 ;
	chd = 11 - totalmod ;
	if(chd ==11) {
		chd =1;
	}else if(chd==10) {
		chd =0;
	}

	if(chd == temp[13] && mm < 13 && dd < 32 && (temp[7]==1 || temp[7]==2 || temp[7]==3 || temp[7]==4)){
		check=true ;
	}
	return check;
}

// 업체 홈페이지 : 희망URL을 위한 함수
function isValidCompanyID(cid) {
	isCID = /^[a-zA-Z0-9_]{4,12}$/;
	return isCID.test(cid) ? true : false;
}
	
/**
 * 입력값이 숫자인지를 확인한다 
 * param : sVal 입력스트링 
 * return : Boolean True이면 숫자값 
 */
 
function isNumber(sVal)
{    
  if(sVal.length < 1)
  { 
  	return false;
  }

  for(i=0; i<sVal.length; i++) 
  {
    iBit = parseInt(sVal.substring(i,i+1));     //문자(Char)를 숫자로 변경
    if(('0' < iBit) || ('9' > iBit)) 
    {
      //alert(i+':'+iBit+':'+'Mun');
    }
    else 
    {
      return false;
    } 
  }
  return true;
}


/*
 * 입력값이 숫자인지를 확인한다. (' '까지 괜찮음)
 * param : sVal 입력스트링 
 * return : Boolean True이면 숫자값 
 */ 
function isNumberSpace(sVal)
{    
  if(sVal.length < 1)
  {
    return false;
  }
   
  for(var i=0;i<sVal.length;i++)
    {
      sBitData = sVal.substring(i,i+1);     //문자열의 문자(char)를 넣는다
      if(sBitData == ' ') 
      {
      }
      else
      {
        iBit = parseInt(sVal.substring(i,i+1)); //문자(char)를 숫자로
        if(('0' < iBit) || ('9' > iBit) || (' ' == sBitData)) 
        {
        }
        else 
        {
		  return false;
        }
      }
    }
  return true;
}


/*
 * sVal 값이 숫자인지를 확인한다.('.'까지 괜찮음)
 * 
 * param : sVal 입력스트링
 *
 * return : Boolean  True이면 숫자값
 */
function isNumberDot(sVal)
{
	if (sVal.length < 1) {
	    return false;
	}
	
	var result=0;
	var position=0;
	var bMinus;

	//마이너스 부호의 갯수를 카운트하여 올바른지 확인
	for(position=0; position<sVal.length; position++)
	{
	    if( getAt(sVal, position) == '-' )
 	    {
			result += 1;
	    }
	}

	if(result > 1)
	    return false;
	
	result = 0;
	//소수점의 갯수를 카운트하여 올바른지 확인
	for(position=0; position<sVal.length; position++)
	{
	    if( getAt(sVal, position) == '.' )
 	    {
			result += 1;
	    }
	}

	if(result > 1)
	    return false;

	//마이너스 부호를 가지고 있는지 확인. 있다면 부호는 빼낸다.
	if(sVal.substr(0,1) == '-')
	{
	    bMinus = true;
	    sVal = sVal.substring(1, sVal.length);	    
	}

	//맨앞에 소수점이 있거나 맨 뒤에 있을 경우 0 을 추가해 줌.
	if(sVal.substring(0,1) == '.')
	    sVal = '0' + sVal;
	else if(sVal.substring(sVal.length-1,sVal.length) == '.')
	    sVal = sVal + '0';
	
	//검사.
	for(var position=0; position<sVal.length; position++)
	{
	    if( (getAt(sVal, position) < '0' || getAt(sVal, position) >'9') && getAt(sVal,position) != '.' )
			return false;
	}
    return true;
}

//공백 제거 
String.prototype.trim = function(){
	return this.replace(/(^[ \f\n\r\t]*)|([ \f\n\r\t]*$)/g, "");
}

/*
 * 체크박스 선택 됬는지 검사
 * 
 * param : 체크박스 이름 
 *
 * return : Boolean  true 
 */
 
function IsChecked(id){

 	var chkCode = document.getElementsByName(id);
	var ChekCnt = 0;	
	var flag = false;

	for(var i=0;i<chkCode.length;i++){
		if(chkCode[i].checked == true)ChekCnt++;
	}
	
	if(ChekCnt > 0){
		 flag = true;
	}	
	return flag;
}

/*******************************************************************************************
 * 팝업 관련 함수
 *******************************************************************************************/
 
/**
 * 팝업을 중앙에 띄운다.(옵션: 스크롤 있음)
 *
 */
function popScrollCenter(url,name,w,h){
	var px = (screen.availWidth/2)-(w/2)
	var py = (screen.availHeight/2)-(h/2)
	var popWins = window.open(url,name,'left='+px+',top='+py+',width='+w+',height='+h+',scrollbars=yes');
	popWins.focus();
}

/**
 * 팝업을 중앙에 띄운다.(옵션: 스크롤 없음)
 *
 */
function popNoScrollCenter(url,name,w,h){
	var px = (screen.availWidth/2)-(w/2)
	var py = (screen.availHeight/2)-(h/2)
	var popWins = window.open(url,name,'left='+px+',top='+py+',width='+w+',height='+h+',scrollbars=no');
	popWins.focus();
}

/**
 * 팝업에 이미지를 사이즈만큼 띄울때 사용한다.
 *
 */
function popImageSize(img_src,pop_w,pop_h) { 

	imgFile001 = new Image();

	imgFile001.src = img_src;
	var x001 = imgFile001.width;
	var y001 = imgFile001.height;
	alert(x001+"/"+y001);

	var temp001 = 'width='+x001+',height='+y001+',left=0,top=0,scrollbars=no,resizable=no';

	img_view = window.open('','img_popup',temp001); 
	img_view.document.focus(); // 팝업창 문서에 포커스 
	img_view.document.open(); // 팝업창 문서를 열어서 
	
	img_view.document.write('<html>\n');
	img_view.document.write('<head>\n');
	img_view.document.write('<title> :: ImageView :: </title>\n');
	img_view.document.write('</head>\n');
	img_view.document.write('<body topmargin="0" leftmargin="0">\n');
	img_view.document.write('<a href="#" onclick="window.close();" onfocus="this.blur();">\n');
	img_view.document.write('<img src="'+img_src+'" width="100%" height="100%" galleryimg="no" border="0"></a>\n');
	img_view.document.write('</body>\n');
	img_view.document.write('</html>\n');
	img_view.document.close();
}

/**
 * 팝업에 이미지 사이즈만큼 자동계산되어 띄울때 사용한다.
 * 추후 추가 예정
 */
 function showPicture(src) {
	var imgObj = new Image();
	imgObj.src = src;
	var wopt = "scrollbars=no,status=no,resizable=no";
	wopt += ",width=" + imgObj.width;
	wopt += ",height=" + imgObj.height;
	var wbody = "<head><title>보기</title>";
	wbody += "<script language='javascript'>";
	wbody += "function finalResize(){";
	wbody += "  var oBody=document.body;";
	wbody += "  var oImg=document.images[0];";
	wbody += "  var xdiff=oImg.width-oBody.clientWidth;";
	wbody += "  var ydiff=oImg.height-oBody.clientHeight;";
	wbody += "  window.resizeBy(xdiff,ydiff);";
	wbody += "}";
	wbody += "</"+"script>";
	wbody += "</head>";
	wbody += "<body onLoad='finalResize()' style='margin:0'>";
	wbody += "<a href='javascript:window.close()'><img src='" + escape(src) + "' border=0></a>";
	wbody += "</body>";
	winResult = window.open("about:blank","",wopt);
	winResult.document.open("text/html", "replace");
	winResult.document.write(wbody);
	winResult.document.close();
	return;
}
 
 /**
 * 값의 Byte를 구해서 반환
 */ 
 function value_byte(val) {
	var temp_estr = escape(val);
	var s_index   = 0;
	var e_index   = 0;
	var temp_str  = "";
	var cnt       = 0;

	while ( (e_index = temp_estr.indexOf("%u", s_index)) >= 0 ) {
		temp_str += temp_estr.substring(s_index, e_index);
		s_index = e_index + 6;
		cnt ++;
	}

	temp_str += temp_estr.substring(s_index);
	temp_str = unescape(temp_str);
	return ((cnt * 2) + temp_str.length) + "";
}

/*******************************************************************************************
 * 기타 함수
 *******************************************************************************************/

/*
 * 임베디드 태그를 표시할때
 *
 */
function ObjectWrite(mmsUrl, width, height, autoStart, showControl, showStatus){
	document.write("<embed src=\""+ mmsUrl +"\" width=\""+ width +"\" height=\""+ height +"\" autostart=\""+ autoStart +"\" SHOWCONTROLS=\""+ showControl +"\" showstatusbar=\""+ showStatus +"\">");
}

 
function fileDown(intNum, strPath){

	var oDiv = document.createElement("<div style='display: none;'></div>");
	
	var oForm = document.createElement("<form name='fileFomAction'></form>");
	oForm.method = "post";
	oForm.action = "/common/asp/fileDown.asp?";
	
	var oInputHidden = document.createElement("<input text='hidden' name='fn'>");
	oInputHidden.value = intNum;
	oForm.appendChild(oInputHidden);
	
	var oInputHidden = document.createElement("<input text='hidden' name='fp'>");
	oInputHidden.value = strPath;
	oForm.appendChild(oInputHidden);
	
	oDiv.appendChild(oForm);
	document.body.appendChild(oDiv);
	
	oForm.submit();
}

function fileDown2(path, orcp, save){
	
	var oDiv = document.createElement("<div style='display: none;'></div>");
	
	var oForm = document.createElement("<form name='fileFomAction'></form>");
	oForm.method = "post";
	oForm.action = "/common/asp/fileDown2.asp?";
	
	var oInputHidden = document.createElement("<input text='hidden' name='path'>");
	oInputHidden.value = path;
	oForm.appendChild(oInputHidden);
	
	var oInputHidden = document.createElement("<input text='hidden' name='orcp'>");
	oInputHidden.value = orcp;
	oForm.appendChild(oInputHidden);
	
	var oInputHidden = document.createElement("<input text='hidden' name='save'>");
	oInputHidden.value = save;
	oForm.appendChild(oInputHidden);
	
	oDiv.appendChild(oForm);
	document.body.appendChild(oDiv);
	
	oForm.submit();
}

 
/*******************************************************************************************
 * Ajax 관련 함수
 *******************************************************************************************/

/*
 * 에러 공통 처리 함수
 * @CREATED : 2008-01-08
 */
function alertException(){
	alert("처리중에 에러가 발생되었습니다. \n다시 시도하여 주십시요.");
}

function alertError(){
	alert("처리중에 에러가 발생되었습니다. \n다시 시도하여 주십시요.");
}
//-->

