/*
 * ½ºÆ®¸µ °´Ã¼¿¡¼­ ÀÔ·ÂµÈ ¹®ÀÚ¿­À» Á¦°Å
 * ex)form.object.value = rmChar(form.object, "-");
 */
function rmChar(field, rmstr){
	var retstr = replace(field, rmstr, '');
	return retstr;
}


/*
 * ½ºÆ®¸µ °´Ã¼¿¡¼­ ÀÔ·ÂµÈ ¹®ÀÚ¿­À» Æ¯Á¤¹®ÀÚ¿­·Î ´ëÃ¼
 * ex)form.object.value = replace(form.object, '-', '/');
 */
function replace(field, srcStr, repStr){
	var str = field.value.trim();
	var temp_str = "";

    if (str != "" && srcStr != repStr){
		temp_str = str;
		while (temp_str.indexOf(srcStr) > -1){
			temp_str = temp_str.replace(srcStr, repStr);
		}
	}
	return temp_str;
}

/*
 * ³¯Â¥Çü½ÄÀÇ ¹®ÀÚ¿­ À¯È¿¼º Ã¼Å© (³â¿ùÀÏ:20051123 ¶Ç´Â 2005-11-23)
 */
function isDate(field){
  var str = rmChar(field,'-');
  if (str.length != 8) return false;
  var inputYear = str.substring(0,4);
  var inputMonth = str.substring(4,6) - 1;
  var inputDate = str.substring(6,8);
  var resultDate = new Date(inputYear, inputMonth, inputDate);
  if ( resultDate.getFullYear() != inputYear ||
       resultDate.getMonth() != inputMonth ||
       resultDate.getDate() != inputDate ) {
    return false;
  } else {
    return true;
  }
}

/*
 * ÇÔ¼ö¸í : isEmpty
 * ¼³  ¸í : String ÀÔ·ÂÀÌ ÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
 * @param _str ¹®ÀÚ¿­
 * @return boolean ÀÔ·ÂµÈ ¹®ÀÚ¿­ÀÌ ¾øÀ¸¸é true ¾Æ´Ï¸é false
 */
function isEmpty(_str) {
    if(_str!=null && _str.length > 0) {
        return false;
    } else {
        return true;
    }
}

/*
 * ÇÔ¼ö¸í : getChecked
 * ¼³  ¸í : Radio °´Ã¼¿¡¼­ Ã¼Å©µÈ Ç×¸ñÀÇ value ¸¦ ¹ÝÈ¯ÇÑ´Ù.
 * @param _str (Radio, Ã¼Å©)
 * @param _delim Ã¼Å©µÈ °ªÀ» ±¸ºÐÇÒ ±¸ºÐÀÚ
 * @return String, Ã¼Å©µÈ Ç×¸ñÀÇ value, ¾øÀ» °æ¿ì ""
 */
function getCheckedValues(_str, _delim){
    var radio = document.getElementsByName(_str);
    var result = "";

    for(var i=0; i<radio.length; i++){
        if(radio[i].checked) {
            result += radio[i].value + _delim;
        }
    }

    return result;
}

/*
 * ÇÔ¼ö¸í : checkRadio
 * ¼³  ¸í : Radio °´Ã¼¸¦ ¼±ÅÃÇÑ´Ù.
 */
function checkRadio(_str, _value) {
    var radio = document.getElementsByName(_str);
    var result = "";

    for(var i=0; i<radio.length; i++){
        if(radio[i].value==_value) {
            radio[i].checked = true;
        }
    }
}

/**
 * iframeÀÇ height¸¦ bodyÀÇ ³»¿ë¸¸Å­ ÀÚµ¿À¸·Î ´Ã·ÁÁÜ.
 */
function resizeFrame(name) {
  var oBody = document.body;
  var oFrame = parent.document.all(name);
  var min_height = 50;  //iframeÀÇ ÃÖ¼Ò³ôÀÌ(³Ê¹« ÀÛ¾ÆÁö´Â °É ¸·±âÀ§ÇÔ, ÇÈ¼¿´ÜÀ§, ÆíÁý°¡´É)
  var min_width = 400;  //iframeÀÇ ÃÖ¼Ò³Êºñ
  var i_height = oBody.scrollHeight + (oBody.offsetHeight-oBody.clientHeight);
  var i_width = oBody.scrollWidth + (oBody.offsetWidth-oBody.clientWidth);

  if(i_height < min_height) i_height = min_height;
  if(i_width < min_width) i_width = min_width;
  oFrame.style.height = i_height;
  oFrame.style.width = i_width;
}

function popWin(_url, _winName) {
    win = window.open(_url , _winName,'width=400, height=300, menubar=0, resizable=0, status=0, scrollbars=1');

    return win;
}

/**
 * Array ¿¡¼­ Æ¯Á¤°ªÀÇ index ¸¦ ±¸ÇÏ´Â ÇÔ¼ö
 *
 * @param _arr	°Ë»ö´ë»ó Array
 * @param _string °Ë»öÇÒ °ª
 */
function getArrayIndexByValue(_arr, _string) {
	for(var i=0; i < _arr.length; i++) {
		if(_string==_arr[i]) {
			return i;
		}
	}

	return -1;
}

/**
 * ¹è¿­·Î µÈ Object Áß¿¡¼­ index °ªÀ» °¡Á®¿Â´Ù.
 */
function getArrayIndex(_obj) {
	var lst = document.getElementsByName(_obj.name);
	
	for(var i=0; i < lst.length; i++) {
		if(lst[i].uniqueID==_obj.uniqueID) {
			return i;
		}
	}
	
	return -1;
}

/**
 * Æ¯Á¤Å×ÀÌºí¿¡¼­ ¸¶Áö¸· ¶óÀÎ(tr) À» º¹»çÇÏ¿© Ãß°¡ÇÑ´Ù.
 */
function addRow(_tableId) {
	var oTable		= document.getElementById(_tableId);
	var oTr			= oTable.insertRow(oTable.rows.length);
	var oCol		= null;
	
	// ¼Ó¼ºº¹»ç
	oTr.mergeAttributes(oTable.rows(oTr.rowIndex - 1));
	
	// ÄÃ·³»ý¼º	
	for(var i=0; i < oTable.rows(oTr.rowIndex - 1).cells.length; i++) {
		oCol = oTr.insertCell(i);
		oCol.innerHTML = oTable.rows(oTr.rowIndex - 1).cells(i).innerHTML;
		oCol.mergeAttributes(oTable.rows(oTr.rowIndex - 1).cells(i));
	}

	return oTr;
}

/**
 * Æ¯Á¤Å×ÀÌºí¿¡¼­ Æ¯Á¤ ¶óÀÎ(tr) À» »èÁ¦ÇÑ´Ù.
 */
function removeRow(_tableId, _idx) {
	var oTable    = document.getElementById(_tableId);
	if (_idx!=null && _idx > -1 && oTable.rows.length > 1) {
		oTable.deleteRow(_idx);
	} else {
		alert('´õ ÀÌ»ó »èÁ¦ÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.');
		return;
	}
}

/**
 * Æ¯Á¤ ÅÂ±×¾ÈÀÇ ÀÔ·ÂÆûÀ» ÃÊ±âÈ­ ÇÑ´Ù.
 * 
 * @param _obj TABLE, TR, TD µî ÀÔ·ÂÆû(INPUT, SELECT)À» °¡Áú ¼ö ÀÖ´Â ÅÂ±×
 * @param _arrNames ÃÊ±âÈ­ÇÒ ÀÔ·ÂÆûÀÇ ÀÌ¸§(name) À» Æ÷ÇÔÇÑ Array
 * @param _arrValues ÃÊ±âÈ­ÇÒ ÀÔ·ÂÆûÀÇ ±âº»°ª(value)À» Æ÷ÇÔÇÑ Array
 *
 * 
 * ex) name1 = value1, name2 = value2 ·Î ÃÊ±âÈ­ ½ÃÅ³ ¶§
 *     initForm(td, new Array("name1","name2"), new Array("value1","value2"));
 *
 */
function initForm(_obj, _arrNames, _arrValues) {
	var inputs = _obj.getElementsByTagName("INPUT");
	var selects = _obj.getElementsByTagName("SELECT");
	var textareas = _obj.getElementsByTagName("TEXTAREA");
	var spans = _obj.getElementsByTagName("SPAN");
	var input = null;
	var select = null;
	var textarea = null;
	var span = null;
	var defaultValue = "";
	var idx = -1;

	/* INPUT ÅÂ±×ÀÇ °ªÀ» ÃÊ±âÈ­ ÇÑ´Ù. */
	for(var i=0; i < inputs.length; i++) {
		input = inputs[i];
		// ±âº»°ªÀ» ¼³Á¤ÇÑ´Ù.
		idx = (getArrayIndexByValue(_arrNames, input.name));
		if(idx > -1) {
			defaultValue = _arrValues[idx];
			switch(input.type) {
				case "text" : input.value = defaultValue; break;
				case "checkbox" : input.checked = input.value == defaultValue ? true : false; break;
				/*
				   radio ÀÇ °æ¿ì ÀÌ¸§ÀÌ °°À¸¸é ÀüÃ¼°¡ ¿¬µ¿µÇ±â ¶§¹®¿¡ »ç¿ëÀÌ ºÒ°¡´ÉÇÏ´Ù.
				   select ·Î ´ëÃ¼»ç¿ë
				case "radio" : input.checked = input.value == defaultValue ? true : false; break;
				*/
				case "hidden" : input.value = defaultValue; break;
				default :
			}
		}
	}

	/* SELECT ÅÂ±×ÀÇ °ªÀ» ÃÊ±âÈ­ ÇÑ´Ù. */
	for(var i=0; i < selects.length; i++) {
		select = selects[i];
		idx = getArrayIndexByValue(_arrNames, select.name);
		if(idx > -1) {
			defaultValue = _arrValues[idx];
			idx = getOptionIndexByValue(select.options, defaultValue);
			if(idx > -1) {
				select.options[idx].selected = true;
			}
		}
	}

	/* TEXTAREA ÅÂ±×ÀÇ °ªÀ» ÃÊ±âÈ­ ÇÑ´Ù. */
	for(var i=0; i < textareas.length; i++) {
		textarea = textareas[i];
		idx = getArrayIndexByValue(_arrNames, textarea.name);
		if(idx > -1) {
			defaultValue = _arrValues[idx];
			textarea.innerText = defaultValue;
		}
	}

	/* SPAN ÅÂ±×ÀÇ °ªÀ» ÃÊ±âÈ­ ÇÑ´Ù. */
	for(var i=0; i < spans.length; i++) {
		spans[i].innerText = "";
	}
}

/**
 * ´Ù¿î·Îµå
 */ 
function download(_filename, _filepath) {
	
    // alert(_filename+ "/" + _filepath);
	_filename = _filename.replace("`","'");
	_filepath = _filepath.replace("`","'");
    var url = "/common/fileDownload.jsp?filename=" + _filename;
    url += "&filepath=" + _filepath;

    ifrControl.location.href=url;
}

/**
 * ¾÷·Îµå
 */
function upload(type) {
    var winUp = popWin("/common/fileUpload.jsp?type=" + type, "winUp");
}

/**
 * ¾÷·ÎµåÆÄÀÏ Ãß°¡
 * @param _filelist SELECT
 * @param _filename ÆÄÀÏ¸í
 * @param _filesize ÆÄÀÏÅ©±â
 * @param _filepath ÆÄÀÏ°æ·Î
 */
function addFile(_filename, _filesize, _filepath) {
  _filesize = parseInt(_filesize);
  var obj = document.all.filelist;
  var text = _filename + " (" + setComma(_filesize) + " Bytes)";
  var value = _filename + "|" + _filesize + "|" + _filepath + "|new";

   obj[obj.length] = new Option(text, value);
}

function openerAddFile(_filename, _filesize, _filepath) {
	_filename = _filename.replace("`","'");
	_filepath = _filepath.replace("`","'");
  _filesize = parseInt(_filesize);
  var obj = document.all.filelist;
  var text = _filename + " (" + setComma(_filesize) + " Bytes)";
  var value = _filename + "|" + _filesize + "|" + _filepath + "|new";

   obj[obj.length] = new Option(text, value);

   //self.close(); 
}

/**
 * ÀüÃ¼ÆÄÀÏ»çÀÌÁî¸¦ ±¸ÇÑ´Ù. 
 */
function getFileSize() {
  var obj = document.all.filelist;
  var filesize = 0;
  for(var i=1; i < obj.length; i++) {
    var txt = obj[i].value.split("|"); //Array
    filesize += parseInt(txt[1]);
  }
  return filesize;
}

/**
 * ÆÄÀÏÈ®ÀåÀÚ °Ë»ç
 * @param fileName ÆÄÀÏ¸í
 * @param extension È®ÀåÀÚ('|'·Î ±¸ºÐµÈ ¹®ÀÚ¿­ : 'gif|png|jpg')
 */
function validateFileExtension(fileName, extension) {
    if(fileName==null || extension==null) return false;

    var ext = fileName.substring(fileName.lastIndexOf(".") + 1);
    if(extension.lastIndexOf(ext) < 0) {
    	alert("Invalid extension");
    	return false;
    }
	//var pattern = new RegExp("[zip|rar|doc|xls|ppt|pdf|hwp]$","i");
    //if(!pattern.test(fileName)) {
    //    alert("Invalid extension");
    //    return false;
    //}
    return true;
}

/**
 * ÀÌ¹ÌÁö ¸®»çÀÌÁî
 */
function resizeImg(imgObj, max_width, max_height) {
	var width, height;

	width	= parseInt(imgObj.width);
	if(width == 0) {
		return false;
	}

	height	= parseInt(imgObj.height);
	if(height > max_height) {
		imgObj.style.width		= Math.ceil(width * max_height / height);
		imgObj.style.height	= max_height;
	}
	if(width > max_width) {
		imgObj.style.height	= Math.ceil(height * max_width / width);
		imgObj.style.width		= max_width;
	}

	return true;
}

/*
 * ¹®ÀÚ¿­ °´Ã¼¿¡ trim ¸Þ¼Òµå ¼³Á¤
 * ex) str.value.trim()
 */
String.prototype.trim = function(str){
	str = this != window ? this : str;
	return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

/*
 * String ÀÇ Byte ¼ö¸¦ Count ÇÏ´Â ÇÔ¼ö
 */
function byteLength(str) {
	var charCnt = 0;

	for(var i = 0; i < str.length; i++) {
		var chr = str.substr(i,1);
		chr = escape(chr);
		var key_eg = chr.charAt(1);

		switch(key_eg) {
			case "u":
				key_num = chr.substr(2,(chr.length - 1));

				charCnt += 2;
				break;
			case "B":
				charCnt += 2;
				break;
			default:
				charCnt += 1;
		}
	}

	return charCnt;

}

/*
 * ¼ýÀÚ¸¸ ÀÔ·ÂÇß´ÂÁö ¿©ºÎ¸¦ Ã¼Å©
 */
function checkNumeric(field) {
	var pattern = /^[0-9]+$/;
    var str = field.value.trim();
	if(str.length > 0 && !pattern.test(str)) {
        alert("Number's only");
        return field.focus();
    }
}

// ¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÏµµ·Ï ÇÏ´Â ÇÔ¼ö(¼Ò¼ýÁ¡Æ÷ÇÔ)
function isNumber(input) {
	if( input.value.search(/[^0-9.]/) >= 0 ) { 
		return false;
	} else
		return true;
}

/**
 * IDÇü½Ä Ã¼Å©
 */
function validateId(field) {
    // Ã¹¹®ÀÚ´Â ¿µ¹®ÀÚ
	var pattern = /^[a-z|A-Z][a-z|A-Z|0-9]+$/;
    var str = field.value.trim();

    if(str.length < 1) {
    } else if(str.length < 4 || str.length > 20) {
        alert("The ID is unavailable");
        return field.focus();
    } else if(!pattern.test(str)) {
        alert("The ID is unavailable");
        return field.focus();
    }
}

/**
 * PasswordÇü½Ä Ã¼Å©
 */
function validatePassword(field) {
    var str = field.value.trim();
    if(str.length < 1) {
    } else if(str.length < 6 || str.length > 10) {
        alert("Invalid");
        return field.focus();
    }
}

/*
 * ¼ýÀÚÇüÅÂÀÇ ¹®ÀÚ¿­ 3ÀÚ¸®¸¶´Ù ÄÞ¸¶ ¼³Á¤
 */
function setComma(fieldValue){
	var str = String(fieldValue);
	str = str.trim();
	var pattern = /^(-?\d+)(\d{3})($|\..*$)/;
	if (pattern.test(str)){
		return str.replace(pattern,
				function(str1,p1,p2,p3) {
					return setComma(p1) + "," + p2 + p3;
				}
		);
	}else{
		return str;
	}
}


