//원하는 자릿수만큼 왼쪽에 특정문자열로 채워넣어줍니다.
function leftPad(source, targetLength, padChar) {
	if (!padChar) {
		padChar = " ";
	}
	if (source.length < targetLength)
	{
		var padding = "";

		while (padding.length + source.length < targetLength)
			padding += padChar;

		return padding + source;
	}
	return source;
}
//원하는 자릿수만큼 오른쪽에 특정문자열로 채워넣어줍니다.
function rightPad(source, targetLength, padChar) {
	while (source.length < targetLength)
		source += padChar;

	return source;
}

/*
 * integer check
 */
function isInteger(str)
{
	var len = str.length;
	var integer_flag = true;
	
    for(i=0; i<len; i++)
    {
        if(isNaN(str.substring(i,i+1))) //문자일경우
        {
			integer_flag = false;
        }
    }
    
    return integer_flag;
}

/*
 * 인자로 받은 값에 특정문자가 있는지 체크
 */
function isIndexof(v1,v2)
{
	if(v1.indexOf(v2) < 0)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function cutStr(str,limit)
{
    var tmpStr = str;
    var byte_count = 0;
    var len = str.length;
    var dot = "";
    
    for(i=0; i<len; i++)
    {
        byte_count += chr_byte(str.charAt(i)); 
        if ( byte_count > limit )
            return false;
    }
    
    //document.writeln(tmpStr+dot);
    return true;
}

function chrByte(chr)
{
  if(escape(chr).length > 4)
    return 2;
  else
    return 1;
}

/**
 * 입력값이 NULL인지 체크
 */
function isNull(input) {
    if (input.value == null || input.value == "") {
        return true;
    }
    return false;
}

/**
 * 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
 */
function isEmpty(input) {
    if (input.value == null || input.value.replace(/ /gi,"") == "") {
        return true;
    }
    return false;
}

/**
 * 입력값에 특정 문자(chars)가 있는지 체크
 * 특정 문자를 허용하지 않으려 할 때 사용
 * ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
 *         alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
 *     }
 */
function containsChars(input,chars) {
    for (var inx = 0; inx < input.value.length; inx++) {
       if (chars.indexOf(input.value.charAt(inx)) != -1)
           return true;
    }
    return false;
}

/**
 * 입력값이 특정 문자(chars)만으로 되어있는지 체크
 * 특정 문자만 허용하려 할 때 사용
 * ex) if (!containsCharsOnly(form.blood,"ABO")) {
 *         alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
 *     }
 */
function containsCharsOnly(input,chars) {
	var temp = input;
    for (var inx = 0; inx < temp.length; inx++) {
       if (chars.indexOf(temp.charAt(inx)) == -1)
           return false;
    }
    return true;
}
function startChars(input,chars) {
	var temp = input.toLowerCase();
	temp = temp.substring(0,1);
	if(chars.indexOf(temp) == -1)
		return false;
}

/**
 * 입력값이 알파벳인지 체크
 * 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
 * 자주 쓰이는 경우에는 var chars 변수를 
 * global 변수로 선언하고 사용하도록 한다.
 * ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 *     var lowercase = "abcdefghijklmnopqrstuvwxyz"; 
 *     var number    = "0123456789";
 *     function isAlphaNum(input) {
 *         var chars = uppercase + lowercase + number;
 *         return containsCharsOnly(input,chars);
 *     }
 */
function isAlphabet(input) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    return containsCharsOnly(input,chars);
}

/**
 * 입력값이 알파벳 대문자인지 체크
 */
function isUpperCase(input) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return containsCharsOnly(input,chars);
}

/**
 * 입력값이 알파벳 소문자인지 체크
 */
function isLowerCase(input) {
    var chars = "abcdefghijklmnopqrstuvwxyz";
    return containsCharsOnly(input,chars);
}
/**
 * 첫번째 입력 글자가 영문자인지 체크
 */
function isStartCase(input) {
    var chars = "abcdefghijklmnopqrstuvwxyz";
    return startChars(input,chars);
}

/**
 * 입력값에 숫자만 있는지 체크
 */
function isNumber(input) {
    var chars = "0123456789";
    return containsCharsOnly(input,chars);
}

/**
 * 입력값이 알파벳,숫자로 되어있는지 체크
 */
function isAlphaNum(input) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    return containsCharsOnly(input,chars);
}

/**
 * 입력값이 숫자,대시(-)로 되어있는지 체크
 */
function isNumDash(input) {
    var chars = "-0123456789";
    return containsCharsOnly(input,chars);
}

/**
 * 입력값이 숫자,콤마(,)로 되어있는지 체크
 */
function isNumComma(input) {
    var chars = ",0123456789";
    return containsCharsOnly(input,chars);
}

/**
 * 입력값에서 콤마를 없앤다.
 */
function removeComma(input) {
    return input.value.replace(/,/gi,"");
}

/**
 * 입력값이 사용자가 정의한 포맷 형식인지 체크
 * 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
 */
function isValidFormat(input,format) {
    if (input.value.search(format) != -1) {
        return true; //올바른 포맷 형식
    }
    return false;
}

/**
 * 입력값이 이메일 형식인지 체크
 */
function isValidEmail(input) {
//    var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    return isValidFormat(input,format);
}

//날짜입력
function isValidDate(data)
{
    var format = /^(\d+)-(\d+)-(\d+)$/;
    if (data.search(format) != -1) {
        return true; //올바른 포맷 형식
    }
    //return isValidFormat(data,format);
}

/**
 * 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
 */
function isValidPhone(input) {
    var format = /^(\d+)-(\d+)-(\d+)$/;
    return isValidFormat(input,format);
}

/**
 * 입력값의 바이트 길이를 리턴
 * Author : Wonyoung Lee
 */
function getByteLength(input) {
    var byteLength = 0;
    for (var inx = 0; inx < input.value.length; inx++) {
        var oneChar = escape(input.value.charAt(inx));
        if ( oneChar.length == 1 ) {
            byteLength ++;
        } else if (oneChar.indexOf("%u") != -1) {
            byteLength += 2;
        } else if (oneChar.indexOf("%") != -1) {
            byteLength += oneChar.length/3;
        }
    }
    return byteLength;
}

function checkLicense(user_license_1,user_license_2)
{
    if (user_license_1.value.length != 6)
    {
//        alert("올바른 주민등록번호를 입력해주세요.");
        user_license_1.focus();
        return false;
    } else if (user_license_2.value.length != 7){
//        alert("올바른 주민등록번호를 입력해주세요.");
        user_license_2.focus();
        return false;
    } else {
        var str_sn1 = user_license_1.value;
        var str_sn2 = user_license_2.value;
 
        var digit=0
        for (var i=0;i<str_sn1.length;i++)
        {
            var str_dig=str_sn1.substring(i,i+1);
            if (str_dig<'0' || str_dig>'9')
            { 
                digit=digit+1 
            }
        }

        if ((str_sn1 == '') || ( digit != 0 ))
        {
//            alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
            user_license_1.focus();
            return false;   
        }

        var digit1=0
        for (var i=0;i<str_sn2.length;i++)
        {
            var str_dig1=str_sn2.substring(i,i+1);
            if (str_dig1<'0' || str_dig1>'9')
            { 
                digit1=digit1+1 
            }
        }

        if ((str_sn2 == '') || ( digit1 != 0 ))
        {
//            alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
            user_license_2.focus();
            return false;   
         }

        if (str_sn1.substring(2,3) > 1)
        {
//            alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
            user_license_1.focus();
            return false;   
        }

        if (str_sn1.substring(4,5) > 3)
        {
//            alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
            user_license_1.focus();
            return false;   
        } 

        if (str_sn2.substring(0,1) > 4 || str_sn2.substring(0,1) == 0)
        {
//            alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
            user_license_2.focus();
            return false;   
        }

        var a1=str_sn1.substring(0,1)
        var a2=str_sn1.substring(1,2)
        var a3=str_sn1.substring(2,3)
        var a4=str_sn1.substring(3,4)
        var a5=str_sn1.substring(4,5)
        var a6=str_sn1.substring(5,6)
        
        var check_digit=a1*2+a2*3+a3*4+a4*5+a5*6+a6*7
        
        var b1=str_sn2.substring(0,1)
        var b2=str_sn2.substring(1,2)
        var b3=str_sn2.substring(2,3)
        var b4=str_sn2.substring(3,4)
        var b5=str_sn2.substring(4,5)
        var b6=str_sn2.substring(5,6)
        var b7=str_sn2.substring(6,7)
        
        var check_digit=check_digit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5 
        
        check_digit = check_digit%11
        check_digit = 11 - check_digit
        check_digit = check_digit%10

        if (check_digit != b7)
        {
//            alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
            user_license_2.focus();
            return false;   
        } else{
            return true;
        }
    }
}

/**
 * 날짜format
 * getDateFormat('2004-06-05 12:12:12' , 'xxxx-xx-xx [xx:xx:xx]');
 */
function getDateFormat(date_data,type)
{
    //data 날짜
    var array_date  = date_data.split(' ');
    var years       = array_date[0];
    var times       = array_date[1].substring(0,array_date[1].indexOf("."));
    
    var array_years = years.split('-');
    var c_date  = new Date(array_years[0],array_years[1],array_years[2]);
    var data_years  = c_date.getYear()+'-'+(c_date.getMonth())+'-'+c_date.getDate();

    
    //금일날짜
    var today   = new Date();
    if (today.getYear() < 1000) today.getYear() +=1900; // Y2K fix
    var today_years = today.getYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();

    if ( data_years == today_years )
    {
        if ( type == "1" )            
	        document.write(times);	
        else if ( type == "2" )            
            document.write(years+' ['+times+']');	
		else
            document.write(years);	
    } else {
        document.write(years);
    }        
}

/**
 * 입력시 세자리 콤마넣기
 * onKeyUp(this)
 */
function comma(me){
	var myStr=numOffMask(me.value);
	me.value=numOnMask(myStr);
}
function numOffMask(me){
	var tmp=me.split(",");
	tmp=tmp.join("");
	return tmp;
}
function numOnMask(me){
	var tmpH		
	if(me.charAt(0)=="-"){
		tmpH=me.substring(0,1);
		me=me.substring(1,me.length);
		}me.indexOf('-')
		if(me.length > 3){
			var c=0;
			var myArray=new Array();
			for(var i=me.length;i>0;i=i-3){
				myArray[c++]=me.substring(i-3,i);
		}
		myArray.reverse();
		me=myArray.join(",");
	}
	if(tmpH){
		me=tmpH+me;
	}
	return me
}

/**
 * 금액 세자리 컴머넣기
 */
function formatCurrency(num) 
{ 
	num = num.toString().replace(/\$|\,/g,''); 
	if(isNaN(num)) num = "0"; 
	cents = Math.floor((num*100+0.5)%100); 
	num = Math.floor((num*100+0.5)/100).toString(); 
	if(cents < 10) cents = "0" + cents; 
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) 
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3)); 
	return (num); 
} 

/**
 * 전화번호잘라넣기(xxx-1111-xxxx)
 * 0123456789 => 012-345-6789
 */
function getPhone(value)
{
	if ( value.indexOf("-") == -1 )
	{
		return (value.substring(0,3)+'-'+value.substring(3,value.length-4)+'-'+value.substring(value.length-4, value.length));
	}
	else return value;
}

/**
* 문자열 변경
*/
function changeChar(o_src,t_src)
{
    var newstr = o_src.replace(t_src,",");
    return newstr;
}

/*
 * print..
 */
function printDoc()
{
	var frm = document.forms['print'];
	var phtml = document.all['rc'].innerHTML;
	
	frm.action = '/adm/inc/IncPrint.jsp';
	frm.phtml.value = phtml;
	frm.submit();
}

function openWindow(url) {
	OPENING_WINDOW = window.open(url);
	OPENING_WINDOW.focus();
}

function openWin1(u, w, h, r, s) 
{
	OPENING_WINDOW = window.open(u, '', 'width='+w+',height='+h+', resizable='+r+', scrollbars='+s);
	if (OPENING_WINDOW!=null) {
		OPENING_WINDOW.focus();
	}
}

function openWin2(url, winname, width, height, tbar, mbar, sbar, loc, status, resizable, fscreen, left, top, cflag)
{
	if(cflag == 'yes' || cflag == 'y' || cflag == '1')
	{
		left = (window.screen.width - width ) / 2; 
		top  = (window.screen.height- height) / 2; 
	}

	opening_window = window.open(url, winname, 'width=' + width + ', height=' + height + ', toolbar=' + tbar + ', menubar=' + mbar + ', scrollbars=' + sbar + ', location=' + loc + ', status=' + status + ', resizable=' + resizable + ', fullscreen=' + fscreen + ', left=' + left + ', top=' + top);
	opening_window.focus();
}

// 이미지 리사이즈
function imgResize(imgObj,limitSize) {
	var imgx, imgy;
	if (imgObj.width > limitSize) {
		imgx = limitSize;
		imgy = (imgObj.height * limitSize) / imgObj.width;

		imgObj.width = imgx;
		imgObj.height = imgy;
	}
}

function resizeImage(limitSize) {
	try {
		for (var i=0; i<document.images.length; i++) {
			if (document.images[i].id=="resizeImage") {
				imgResize(document.images[i], limitSize);
			}
		}	
	} catch(e) {
	}
}

function doBlink() {
	var blink = document.all.tags("BLINK");
	for (var i=0; i < blink.length; i++) {
		blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""
	}
}

function startBlink() {
	setInterval("doBlink()",400);
}

function prepare() {
	alert("죄송합니다. 요청하신 페이지는 현재 준비중입니다.");
}

  //add comma
function displayComma(value) {
	var src;
	var i;
	var factor;
	var su;
	var Spacesize = 0;
	var String_val = value.toString();
	factor = String_val.length % 3;
	su = (String_val.length - factor) /3;
	src = String_val.substring(0,factor);

	for(i=0; i<su ; i++) {
		if ((factor==0)&&(i==0)) {
			src += String_val.substring(factor+(3*i), factor+3+(3*i));
		} else {
			if ( String_val.substring(factor+(3*i) - 1, factor+(3*i)) != "-" ) {
				src +=",";
				src += String_val.substring(factor+(3*i), factor+3+(3*i));
			}
		}
	}
	return src;
}

//delete comma 
function deleteComma(value) {
	var x, ch;
	var i=0;
	var newVal="";
	for (x=0; x <value.length ; x++) {
		ch = value.substring(x,x+1);
		if (ch != ",")  {
			newVal += ch;
		}
	}
	return newVal;
}

function autoResizePopup() {
     var winW, winH, sizeToW, sizeToH;
 
     if ( parseInt(navigator.appVersion) > 3 ) {
         
          if ( navigator.appName=="Netscape" ) {
               winW = window.innerWidth;
               winH = window.innerHeight;
          }
 
          if ( navigator.appName.indexOf("Microsoft") != -1 ) {
               winW = document.body.scrollWidth;
               winH = document.body.scrollHeight;
          }
     }
 
     sizeToW = 0;
     sizeToH = 0;
 
     if ( winW > 1024 ) { //1024은 제한하고자 하는 가로크기
          sizeToW = 1024 - document.body.clientWidth;
     } else if ( Math.abs(document.body.clientWidth - winW ) > 3 ) {
          sizeToW = winW - document.body.clientWidth;
     }
 
     if ( winH > 768 ) {  //768은 제한하고자 하는 세로크기
          szeToH = 768 - document.body.clientHeight;
     } else if ( Math.abs(document.body.clientHeight - winH) > 4 ) {
          sizeToH = winH - document.body.clientHeight;
     }
 
     if ( sizeToW != 0 || sizeToH != 0 ) {
          window.resizeBy(sizeToW, (sizeToH+15));
     }
}

/////////////////////////////////////////////////////////////////////////////////// rowspan 생성 스크립트
//tableId :  table id를 넣자 
//rowIndex : table의 시작 row index(0부터 시작)
//cellIndex : 해당 row의 cell index(0부터 시작)
// created by singi(20030611)
///////////////////////////////////////////////////////////////////////////////////
	function cellMergeChk(tableObj, rowIndex, cellIndex)
	{
		var rowsCn = tableObj.rows.length;
		
		if(rowsCn-1 > rowIndex)
			cellMergeProcess(tableObj, rowIndex, cellIndex);
	}
	
	function cellMergeProcess(tableObj, rowIndex, cellIndex)
	{
		var rowsCn = tableObj.rows.length;
		var compareCellsLen = tableObj.rows(rowIndex).cells.length;		//시작 row에 cell 개수
		
		//초기화	
		var compareObj = tableObj.rows(rowIndex).cells(cellIndex);
		var compareValue = compareObj.innerHTML;
		var cn = 1;
		var delCells = new Array();
		var arrCellIndex = new Array();
		for(i=rowIndex+1; i < rowsCn; i++)
		{
			var cellsLen = tableObj.rows(i).cells.length;
			var bufCellIndex = cellIndex

			//실질적인 row에 cellIndex를 구하자.			
			if(compareCellsLen != cellsLen) 
			{
				bufCellIndex = bufCellIndex - (compareCellsLen - cellsLen);
			}
			cellObj = tableObj.rows(i).cells(bufCellIndex);
			
			if(compareValue == cellObj.innerHTML)
			{
				delCells[cn-1] = tableObj.rows(i);		//삭제할 cell의 row를 저장한다.
				arrCellIndex[cn - 1] = bufCellIndex;	//해당 row cell index를 저장한다.
				cn++;
			}
			else
			{
				//병합
				compareObj.rowSpan = cn;
				
				//삭제
				for(j=0; j < delCells.length; j++)
				{
					delCells[j].deleteCell(arrCellIndex[j]);
				}
				
				//초기화	
				compareObj = cellObj;
				compareValue = cellObj.innerHTML;
				cn = 1;
				delCells = new Array();
				arrCellIndex = new Array();
			}
		}

		//병합		
		compareObj.rowSpan = cn;
		//삭제
		for(j=0; j < delCells.length; j++)
		{
			delCells[j].deleteCell(arrCellIndex[j]);
		}
	}

	
	
	
// Multiple 형태의 Select Element의 순서를 바꾼다.
// 예) moveItem('위치', 'Select Element ID')
function moveItem(goto, elementId) {
	var element = document.getElementById(elementId);  // Multiple Select Element
	var selIndex = element.selectedIndex;              // Selected Index
	var elementLength = element.options.length;        // Select Element Item Length
	var selText = element.options[selIndex].text;      // Selected Item Text
	var selValue = element.options[selIndex].value;    // Selected Item Value

	if(selIndex < 0) {
	    alert("선택해 주세요.");
	    return;
	}

	if(goto == "top") {  // 최상위로 이동

	    var index = selIndex;
	    while(index > 0) {
		element.options[index].text = element.options[index-1].text;
		element.options[index].value = element.options[index-1].value;
		index--;
	    }

	    element.options[0].text = selText;
	    element.options[0].value = selValue;
	    element.selectedIndex = 0;

	} else if(goto == "up") {  // 위로 이동

	    if(selIndex-1 < 0) return;

	    var oldText = element.options[selIndex-1].text;
	    var oldValue = element.options[selIndex-1].value;
	    element.options[selIndex-1].text = selText;
	    element.options[selIndex-1].value = selValue;
	    element.options[selIndex].text = oldText;
	    element.options[selIndex].value = oldValue;

	    element.selectedIndex = selIndex-1;

	} else if(goto == "down") {  // 아래로 이동

	    if(selIndex+2 > elementLength) return;

	    var oldText = element.options[selIndex+1].text;
	    var oldValue = element.options[selIndex+1].value;
	    element.options[selIndex+1].text = selText;
	    element.options[selIndex+1].value = selValue;
	    element.options[selIndex].text = oldText;
	    element.options[selIndex].value = oldValue;

	    element.selectedIndex = selIndex+1;

	} else if(goto == "bottom") {  // 최하위로 이동

	    var index = selIndex;
	    while(index < elementLength-1) {
		element.options[index].text = element.options[index+1].text;
		element.options[index].value = element.options[index+1].value;
		index++;

	   }

	    element.options[element.options.length-1].text = selText;
	    element.options[element.options.length-1].value = selValue;

	    element.selectedIndex = element.options.length-1;

	} else {
		return;
	}
}

function tdFillColor(tr, color) {
	if (tr.cells) {
		for (var i=0; i<tr.cells.length; i++) {
			var td = tr.cells[i];
			td.style.backgroundColor=color;
		}
	}
}


function resizeAutoTextArea(obj) {
	var text = obj.value;
	var pcount = 0;
	
	if (text.length > 0) {
		pcount = text.split('\n').length;
	}
	
	/*	
	for (i=0; i<text.length; i++) {
		if (text.charAt(i) == '\n') pcount++;
	}
	*/
			
	if (pcount <= 2) {
		obj.style.height = 70;
		return;
	}
	
	var oH = 14.1;
	if (!document.all) oH = 14.9;
			
	var mpx = 70 + (Math.ceil((pcount - 2) * oH));
	obj.style.height = mpx;
	
}