var ID_DELIMITER = "^";

/* 모든 체크박스 요소들의 check 상태를 특정 상태로 설정하는 메소드
 * checkboxObj	해당 체크박스
 * state		check 상태(true:모두 선택된 상태로, false: 모두 해제된 상태로)
 */
function setCheckedStateAllCheckBox(checkboxObj, state){
	if(checkboxObj == null) return;
	if(checkboxObj.length != null){
		for(var i=0; i < checkboxObj.length; i++){
			checkboxObj[i].checked = state;
		}
	} else {
		checkboxObj.checked = state;
	}
}

/* 목록에서 한개항목 선택 처리(수정 시)
 * idTextfieldObj	선택된 항목의 id(checkbox.value)를 넣을 텍스트필드
 * checkboxObj		목록에서 각 항목들의 id를 가지고 있는 체크박스
 * errorMsg1		선택한 항목이 두개 이상일 경우 출력할 에러메시지
 * errorMsg2		선택한 항목이 하나도 없을 경우 출력할 에러메시지
 */
function oneSelectCheck(idTextfieldObj, checkboxObj, errorMsg1, errorMsg2){
	if(checkboxObj == null) return false;
	var checkedNum = 0;
	idTextfieldObj.value = "";
	if(checkboxObj.length != null){
		for(var i=0; i < checkboxObj.length; i++){
			if(checkboxObj[i].checked == true){
				idTextfieldObj.value = checkboxObj[i].value;
				if(++checkedNum > 1){
					alert(errorMsg1);
					return false;
				}
			}
		}
	} else {
		if(checkboxObj.checked == true){
			idTextfieldObj.value = checkboxObj.value;
			return true;
		}
	}
	if(checkedNum <= 0){
		alert(errorMsg2);
		return false;
	}
	return true;
}

/* 목록에서 여러개 항목 선택 처리(삭제, 이동 등..)
 * idTextfieldObj	선택된 항목들의 id(checkbox.value)를 넣을 텍스트필드
 * checkboxObj		목록에서 각 항목들의 id를 가지고 있는 체크박스
 * errorMsg			선택한 항목이 하나도 없을 경우 출력할 에러메시지
 */
function multiSelectCheck(idTextfieldObj, checkboxObj, errorMsg){
	if(checkboxObj == null) return false;
	var checkedNum = 0;
	idTextfieldObj.value = "";
	if(checkboxObj.length != null){
		for(var i=0; i < checkboxObj.length; i++){
			if(checkboxObj[i].checked == true){
				checkedNum++;
				if(checkedNum > 1){
					idTextfieldObj.value += ID_DELIMITER;
				}
				idTextfieldObj.value += checkboxObj[i].value;
			}
		}
	} else {
		if(checkboxObj.checked == true){
			idTextfieldObj.value = checkboxObj.value;
			return true;
		}
	}
	if(checkedNum <= 0){
		alert(errorMsg);
		return false;
	}
	return true;
}

/* 목록에서 한개항목을 선택했는지를 검사해주는 메소드
 * checkboxObj		목록에서 각 항목들의 id를 가지고 있는 체크박스
 * errorMsg1		선택한 항목이 두개 이상일 경우 출력할 에러메시지
 * errorMsg2		선택한 항목이 하나도 없을 경우 출력할 에러메시지
 */
function isOneSelect(checkboxObj, errorMsg1, errorMsg2){
	if(checkboxObj == null) return false;
	var checkedNum = 0;
	if(checkboxObj.length != null){
		for(var i=0; i < checkboxObj.length; i++){
			if(checkboxObj[i].checked == true){
				if(++checkedNum > 1){
					alert(errorMsg1);
					return false;
				}
			}
		}
	} else {
		if(checkboxObj.checked == true){
			return true;
		}
	}
	if(checkedNum <= 0){
		alert(errorMsg2);
		return false;
	}
	return true;
}

/* 목록에서 한개 이상의 항목이 선택되어 있는지 검사
 * checkboxObj		목록에서 각 항목들의 id를 가지고 있는 체크박스
 * errorMsg			선택한 항목이 하나도 없을 경우 출력할 에러메시지
 */
function isMultiSelect(checkboxObj, errorMsg){
	if(checkboxObj == null) return false;
	var checkedNum = 0;
	if(checkboxObj.length != null){
		for(var i=0; i < checkboxObj.length; i++){
			if(checkboxObj[i].checked == true){
				return true;
			}
		}
	} else {
		if(checkboxObj.checked == true){
			return true;
		}
	}
	alert(errorMsg);
	return false;
}

function openModlessDiaglog(openURL, title, width, height) {
	var newWin;
	if (newWin != null) {
		newWin.close();
	}
	if (document.all && window.print) { //if ie5 http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/showmodelessdialog.asp?frame=true
		eval('newWin = window.showModelessDialog(openURL,"","help:0;center:1;status:0;resizable:0;unadorned:0;scroll:0;dialogWidth:'+width+'px;dialogHeight:'+height+'px")');
	} else {
		//eval('newWin = window.open(openURL,"","width='+width+'px,height='+height+'px,left=5000,top=5000, resizable=0, scrollbars=no")');
		var x = (screen.availWidth-width)/2;
		var y = (screen.availHeight-height)/2;	
		newWin = window.open(openURL,title,'scrollbars=no,left=5000,top=5000,width=' + width + ',height=' + height);
		newWin.moveTo(x,y);
	}	

	return newWin;
}

function openWindows(openURL, title, width, height){
	var x = (screen.availWidth-width)/2;
	var y = (screen.availHeight-height)/2;
	var newWin;
	if (newWin != null) {
		newWin.close();
	}
	newWin = window.open(openURL,title,'scrollbars=no,left=5000,top=5000,width=' + width + ',height=' + height);			
	newWin.moveTo(x,y);
	newWin.focus();

	return newWin;
}

function openWindows(openURL, title, width, height, features) {
	if (features == null || features == "") {
		features = 'scrollbars=no,left=5000,top=5000,width=' + width + ',height=' + height;
	}
	var x = (screen.availWidth-width)/2;
	var y = (screen.availHeight-height)/2;
	var newWin;
	if (newWin != null) {
		newWin.close();
	} else {
		newWin = window.open(openURL,title, 'width=' + width + ',height=' + height + "," + features);
	}
	newWin.moveTo(x,y);
	newWin.focus();
	return newWin;
}

/* 이미지 파일 여부 체크 */
function isImageFile(filename) {
	if (filename.length == 0) {
		return false;
	}
	var ext = filename.substring(filename.lastIndexOf('.')+1, filename.length).toLowerCase();
	if (ext == "jpg" || ext == "jpeg" || ext == "gif" || ext == "png" || ext == "bmp") {
		return true;
	}
	return false;
}

/* 
 * 파일 다운로드/미리보기 
 * type : FileConfigure 에 정의되어 있는 파일 타입
 * cid  : 콘텐츠 ID
 * sid  : 사이트메뉴 ID
 * cfid : 커스텀필드 ID
 * name : 파일명
 * width  : 이미지경우 폭
 * height : 이미지경우 높이
 * forcedown : 강제 다운로드 모드[1]
 * appr : 임시[0]/승인구분[1]
 * targetObj : 오픈할 URL 이 있으면 document.location 으로 호출
 */
function openMagicViewer(type, cid, sid, cfid, name, width, height, forcedown, appr, onIFrame) {
	width = eval(width);
	height = eval(height);

	if (width == null) { width = 300; }
	if (height == null) { height = 200; }

	//alert(width + "::" + height);

	if (width+25 >= screen.availWidth)		{ width = screen.availWidth-150; }
	if (height+100 >= screen.availHeight)	{ height = screen.availHeight-300; }

	var openURL = "/cms/common/resourceView.jsp?type=" + type;
	openURL += "&cid=" + cid + "&sid=" + sid + "&cfid=" + cfid;
	openURL += "&name=" + name + "&width=" + width + "&height=" + height;
	openURL += "&forcedown=" + forcedown;
	openURL += "&appr=" + appr;

	if (onIFrame != null) {
		download.location = openURL;
	} else {
		if (forcedown != null && forcedown == 1) {
			width = 275;
			height = 0;
		} else {
			width = width+10;
			height = height+150;
		}
		openWindows(openURL, "DOWNLOAD", width, height);
	}
}

/* SELECT 객체에서 선택된 하나의 항목을 맨 상위로 옮겨주는 메소드 */
function moveTopSelectItem(selectObj){
	if (selectObj.selectedIndex < 0) { return; }
  if(selectObj.selectedIndex > 0 && selectObj.length > 1){
    var si = selectObj.selectedIndex;
    var sText = selectObj.options[si].text;
    var sValue = selectObj.options[si].value;
    for(var i=(si-1); i>=0; i--){
      selectObj.options[i+1].value = selectObj.options[i].value;
      selectObj.options[i+1].text = selectObj.options[i].text;
    }
    selectObj.options[0].value = sValue;
    selectObj.options[0].text = sText;
    selectObj.selectedIndex = 0;
  }
}

/* SELECT 객체에서 선택된 하나의 항목을 한단계 상위로 옮겨주는 메소드 */
function moveUpSelectItem(selectObj){
	if (selectObj.selectedIndex < 0) { return; }

  if(selectObj.selectedIndex > 0 && selectObj.length > 1){
    var si = selectObj.selectedIndex;
    var sText = selectObj.options[si].text;
    var sValue = selectObj.options[si].value;
    selectObj.options[si].value = selectObj.options[si-1].value;
    selectObj.options[si].text = selectObj.options[si-1].text;
    selectObj.options[si-1].value = sValue;
    selectObj.options[si-1].text = sText;
    selectObj.selectedIndex = si-1;
  }
}

/* SELECT 객체에서 선택된 하나의 항목을 한단계 하위로 옮겨주는 메소드 */
function moveDownSelectItem(selectObj){
	if (selectObj.selectedIndex < 0) { return; }

  if(selectObj.selectedIndex < (selectObj.length-1) && selectObj.length > 1){
    var si = selectObj.selectedIndex;
    var sText = selectObj.options[si].text;
    var sValue = selectObj.options[si].value;
    selectObj.options[si].value = selectObj.options[si+1].value;
    selectObj.options[si].text = selectObj.options[si+1].text;
    selectObj.options[si+1].value = sValue;
    selectObj.options[si+1].text = sText;
    selectObj.selectedIndex = si+1;
  }
}

/* SELECT 객체에서 선택된 하나의 항목을 맨 하위로 옮겨주는 메소드 */
function moveBottomSelectItem(selectObj){
  if (selectObj.selectedIndex < 0) { return; }
  if(selectObj.selectedIndex < (selectObj.length-1) && selectObj.length > 1){
    var si = selectObj.selectedIndex;
    var sText = selectObj.options[si].text;
    var sValue = selectObj.options[si].value;
    for(var i=(si+1); i<selectObj.length; i++){
      selectObj.options[i-1].value = selectObj.options[i].value;
      selectObj.options[i-1].text = selectObj.options[i].text;
    }
    selectObj.options[selectObj.length-1].value = sValue;
    selectObj.options[selectObj.length-1].text = sText;
    selectObj.selectedIndex = selectObj.length-1;
  }
}

/* 목록에 있는 데이터들을 targetObj(text field)에 delimiter로 구분자를 주어 넣어준다. */
function setIdsStrSelectItems(targetObj, selectObj, delimiter){
  if(selectObj.length > 0){
      targetObj.value = "";
	  targetObj.value = selectObj.options[0].value;
	  for(var i=1; i<selectObj.length; i++){
	    targetObj.value += delimiter + selectObj.options[i].value;
	  }
  }
}

/* SELECT 객체에서 value 값들을 delimiter로 구분된 String으로 변환하여 반환하는 메소드 */
function getIdsStrFromSelectObj(selectObj, delimiter){
  var idsStr = "";
  if(selectObj == null) return "";

  if(selectObj.length > 0){
	  idsStr = selectObj.options[0].value;
	  for(var i=1; i<selectObj.length; i++){
	    idsStr += delimiter + selectObj.options[i].value;
	  }
  }
  return idsStr;
}

/* SELECT 객체에 있는 모든 항목을 삭제하는 메소드 */
function deleteSelectObjAllItems(selectObj){
	if(selectObj.length > 0){
		for(var i=selectObj.length-1; i >= 0; i--){
			selectObj.options[i].value = "";
	      	selectObj.options[i].text = "";
	      	selectObj.length--;
	    }
	}
}

/* SELECT 객체에서 선택되어 있는 하나의 항목을 삭제하는 메소드 */
function exceptSelectItem(selectObj){
  if(selectObj.selectedIndex == -1) return;
  if(selectObj.length > 0){
    if(selectObj.selectedIndex != (selectObj.length-1)){
      for(var i=selectObj.selectedIndex; i < (selectObj.length-1); i++){
      	selectObj.options[i].value = selectObj.options[i+1].value;
      	selectObj.options[i].text = selectObj.options[i+1].text;
      }
    }
   	selectObj.options[selectObj.length-1].value = "";
   	selectObj.options[selectObj.length-1].text = "";
   	selectObj.length--;
  }
}

/* SELECT 객체에서 선택되어 있는 여러개의 항목을 삭제하는 메소드 */
function exceptMultipleSelectItem(selectObj){
	var nLength = selectObj.length;
	for (var i = nLength-1; i >= 0; i--) {
		if (selectObj.options[i].selected == true) {
			selectObj.options[i] = null;
		}
	}
}

/* SELECT 객체에서 선택되어 있는 하나의 항목을 삭제하는 메소드 
*  동시에 하단 레이어의 SHOW,HIDE 기능을 컨트롤한다.
*/
function exceptSelectItemCtrlLayers(selectObj){
  if(selectObj.selectedIndex == -1) return;
  if(selectObj.length > 0){
    if(selectObj.selectedIndex != (selectObj.length-1)){
      for(var i=selectObj.selectedIndex; i < (selectObj.length-1); i++){
      	selectObj.options[i].value = selectObj.options[i+1].value;
      	selectObj.options[i].text = selectObj.options[i+1].text;
      }
    }
   	selectObj.options[selectObj.length-1].value = "";
   	selectObj.options[selectObj.length-1].text = "";
   	selectObj.length--;
  }
  if(selectObj.length == 0){
  	hideLayers();
  }
}

/* SELECT 객체에 항목을 하나 추가하는 메소드(value값에 id값이 있는 경우 추가하지 않음) */
function addSelectItem(selectObj, id, name){
  if(selectObj.length > 0){
    for(var i=0; i < selectObj.length; i++){
      if(selectObj.options[i].value == id){
      	return false;
      }
    }
  }
  var lastIx = selectObj.length;
  selectObj.length++;
  selectObj.options[lastIx].value = id;
  selectObj.options[lastIx].text = name;
  return true;
}

/* 특정 텍스트필드 값을 SELECT 객체의 한 항목으로 추가해주는 메소드(value값에 동일한 값이 있는 경우 추가하지 않음) */
function addSelectItemFromTextField(selectObj, textFieldObj){
  var addValue = textFieldObj.value;
  if(addValue == "") return;
  if(selectObj.length > 0){
    for(var i=0; i < selectObj.length; i++){
      if(selectObj.options[i].value == addValue){
      	return;
      }
    }
  }
  var lastIx = selectObj.length;
  selectObj.length++;
  selectObj.options[lastIx].value = addValue;
  selectObj.options[lastIx].text = addValue;
}

/* SELECT 객체에서 특정 인덱스 항목을 삭제하는 메소드 */
function exceptSelectItemByIndex(selectObj, ix){
  if(selectObj.length > ix){
    if(ix != (selectObj.length-1)){
      for(var i=ix; i < (selectObj.length-1); i++){
      	selectObj.options[i].value = selectObj.options[i+1].value;
      	selectObj.options[i].text = selectObj.options[i+1].text;
      }
    }
   	selectObj.options[selectObj.length-1].value = "";
   	selectObj.options[selectObj.length-1].text = "";
   	selectObj.length--;
  }
}

/* 소스 SELECT 객체에서 선택된 항목을 Target SELECT 객체의 항목으로 옮겨주는 메소드
   (value값이 동일한 경우 옮기지 않는다.) */
function moveSelectItemToSelectObj(srcSelectObj, tgSelectObj){
	if(srcSelectObj == null || tgSelectObj == null){
		return false;
	}
	if(srcSelectObj.length == null || srcSelectObj.length == 0){
		return false;
	}
	var moveFlag = false;
    for(var i=(srcSelectObj.length-1); i >=0; i--){
      if(srcSelectObj.options[i].selected == true){
      	if(addSelectItem(tgSelectObj, srcSelectObj.options[i].value, srcSelectObj.options[i].text)){
      		srcSelectObj.options[i].selected = false;
      		exceptSelectItemByIndex(srcSelectObj, i);
      		moveFlag = true;
      	}
      }
    }
	return moveFlag;
}

/* 특정 텍스트필드 값을 SELECT 객체의 한 항목으로 추가해주는 메소드(value값에 동일한 값이 있는 경우 추가하지 않음) 
* 동시에 하단의 레이어의 SHOW,HIDE 가능을 컨트롤한다.
*/
function addSelectItemCtrlLayer(selectObj, textFieldObj){
  var addValue = textFieldObj.value;
  if(addValue == "") return;
  if(selectObj.length > 0){
    for(var i=0; i < selectObj.length; i++){
      if(selectObj.options[i].value == addValue){
      	return;
      }
    }
  }
  textFieldObj.value = "";
  var lastIx = selectObj.length;
  selectObj.length++;
  selectObj.options[lastIx].value = addValue;
  selectObj.options[lastIx].text = addValue;
  selectObj.selectedIndex=selectObj.length-1;
  showLayers();
}

function ItemInfo(id, name){
  this.id = id;
  this.name = name;
}

/* SELECT 객체 항목을 ItemInfo Array로 변환하여 반환하는 메소드 */
function getItemArrayFromSelectObj(selectObj){
  itemList = new Array();
  if(selectObj.length > 0){
    itemList = new Array(selectObj.length);
    for(var i=0; i < selectObj.length; i++){
      itemList[i] = new ItemInfo(selectObj.options[i].value, selectObj.options[i].text);
    }
  }
  return itemList;
}

/* SELECT 객체 항목을 ItemInfo Array로 변환하여 반환하는 메소드 */
function getItemArrayFromSelectObjBySelected(selectObj){
  itemList = new Array();
  if(selectObj.length > 0){
    var ix = 0;
    for(var i=0; i<selectObj.length; i++){
      if(selectObj.options[i].selected == true){
      	itemList[ix++] = new ItemInfo(selectObj.options[i].value, selectObj.options[i].text);
      }
    }
  }
  return itemList;
}

/* ItemInfo Array 항목들을 SELECT 객체에 넣는 메소드 */
function setSelectObjFromItemArray(selectObj, arrayObj){
  if(arrayObj != null && selectObj != null){
    selectObj.length = arrayObj.length;
    for(var i=0; i < arrayObj.length; i++){
      selectObj.options[i].value = arrayObj[i].id;
      selectObj.options[i].text = arrayObj[i].name;
    }
  }
}

/* ItemInfo Array 항목들을 SELECT 객체에 추가하는 메소드 */
function addSelectObjFromItemArray(selectObj, arrayObj){
	if(arrayObj != null && selectObj != null){
		for(var i=0; i < arrayObj.length; i++){
			addSelectItem(selectObj, arrayObj[i].id, arrayObj[i].name);
		}
	}
}

/* ItemInfo Array 항목들을 idsStr 객체에 넣는 메소드 */
function setIdsStrFromItemArray(idsStrObj, arrayObj){
  if(arrayObj != null && idsStrObj != null){
  	idsStrObj.value = "";
  	idsStrObj.value = arrayObj[0].id;
    for(var i=1; i < arrayObj.length; i++){
      idsStrObj.value += ID_DELIMITER + arrayObj[i].id;
    }
  }
}

/* List 페이지에서 페이지이동 */
function movePage(formObj, pageNum){
	//formObj.command.value = "list";
	formObj.pageNum.value = pageNum;
	formObj.method="get";
	formObj.submit();
}

/* --- 동적 테이블 항목을 구성하기 위한 함수 정의--- */

/* 테이블 각 ROW의 사용자정의 셀 정보 */
function CellInfo(content, align, width, height){
	this.content = content;
	this.aligh = align;
	this.width = width;
	this.height = height;
}

/* inputDataNum에 의해 ID:inputTableId를 갖는 테이블의 각 ROW를 동적으로 구성
 * cellArray 변수에 CellInfo() 객체가 배열로 미리 정의되어야 함
 */
function resetInputDataForm(inputDataNum, inputTableId){
	var tableObj = eval("document.all." + inputTableId);
	if(tableObj == null){
		alert("not found Table-Object(ID:" + inputTableId + ")");
		return;
	}
	if(inputDataNum > tableObj.rows.length-1){
		for(var i=tableObj.rows.length; i<= inputDataNum;i++){
			tableObj.insertRow();
			newCell = tableObj.rows[i].insertCell();
			newCell.setAttribute("align","center");
			newCell.insertAdjacentHTML("BeforeEnd", i);
			if(cellArray != null){
				for(var k=0; k<cellArray.length; k++){
					newCell = tableObj.rows[i].insertCell();
					if(cellArray[k].aligh != null && cellArray[k].aligh != ""){
						newCell.setAttribute("align",cellArray[k].aligh);
					}
					if(cellArray[k].width != null && cellArray[k].width != ""){
						newCell.setAttribute("width",cellArray[k].width);
					}
					if(cellArray[k].height != null && cellArray[k].height != ""){
						newCell.setAttribute("height",cellArray[k].height);
					}
					newCell.insertAdjacentHTML("BeforeEnd", cellArray[k].content);
				}
			}
		}
	} else if(inputDataNum < tableObj.rows.length-1){
		var deletNum = tableObj.rows.length-inputDataNum-1;
		for(var i=0; i<deletNum;i++){
			tableObj.deleteRow();
		}
	}
}

function showLayers(){	
	document.all.selectType.style.display="block";
}

function hideLayers(){
	document.all.selectType.style.display="none";
}

/* 라디오버튼에서 선택된 항목의 value값을 반환하는 함수 */
function getRadioCheckedValue(radioObj){
	var checkedValue = null;
	if(radioObj != null){
		for(var i=0; i<radioObj.length; i++){
			if(radioObj[i].checked == true){
				checkedValue = radioObj[i].value;
				break;
			}
		}
	}
	return checkedValue;
}

/* 라디오버튼에서 특정 값의 항목을 선택된 상태로 설정하는 함수 */
function setRadioCheckedState(radioObj, checkValue){
	if (radioObj != null) {
		if (radioObj.length > 0) {
			for(var i=0; i<radioObj.length; i++){
				if(radioObj[i].value == checkValue){
					radioObj[i].checked = true;
				} else if(radioObj[i].checked == true){
					radioObj[i].checked = false;
				}
			}
		} else {
			radioObj.checked = true;
		}
	}
}

/* 연관콘텐츠분류 조건 지정 시 연산자 종류에 따른 스트링 반환 */
function getOperationSymbol(operationType){
	var operationSymbol = "";
	switch(operationType){
		case 'EQ' : return "=";
		case 'NE' : return "!=";
		case 'GE' : return ">=";
		case 'GT' : return ">";
		case 'LE' : return "<=";
		case 'LT' : return "<";
		case 'Y' : return "exist";
		case 'N' : return "not exist";
		default : break;
	}
}

/* 연관콘텐츠분류 조건 지정 시 자료형에 따른 조건값 스트링 반환 */
function getConditionValueStr(dataType, conditionValue){
	switch(dataType){
		case 'S' :
		case 'A' :
		case 'D' :
		case 'T' :
			return "\'" + conditionValue + "\'";
		case 'N' : return conditionValue;
		default : break;
	}
	return "";
}

<!-- TRIM FUNCTION -->
<!-- Written by Jae K. Shim; Webmaster of Bergen Community College; jshim@bergen.cc.nj.us -->
/** 문자열의 왼쪽만 TRIM */
function ltrim(str) {
	var s = new String(str);

    if (s.substr(0,1) == " ") {
		return ltrim(s.substr(1));
	} else {
		return s;
	}
}

/** 문자열의 오른쪽만 TRIM */
function rtrim(str) {
	var s = new String(str);
	if (s.substr(s.length-1, 1) == " ") {
		return rtrim(s.substring(0, s.length-1));
	} else {
		return s;
	}
}

/** 문자열을 TRIM */
function trim(str) {
	return ltrim(rtrim(str));
}
<!-- TRIM FUNCTION END -->


// Calendar Show
// pDate DATE 
// pTime TIME
// bOne  컬럼이 하나일때
function showCal(pDate, pTime, bOne) {
	var tmpLeft = event.screenX+20;
	var tmpTop = event.screenY-200;

	var calWin;
	var openURL = "/dev/webmgmt/common/calendar.jsp?pDate=" + pDate + "&pTime=" + pTime;
	if (bOne != null && bOne.length > 0) {
		openURL += "&bOne=" + bOne;
	}
	var width = 250;
	var height= 170;
	if (calWin != null) {
		calWin.close();
	}
	calWin = window.open(openURL, 'CALENDAR', 'scrollbars=no,left=' + tmpLeft + ',top=' + tmpTop + ',width=' + width + ',height=' + height);			
	calWin.focus();
}

/** 날짜 차이 계산 스크립트 */
function dayOfTwo(from_year, from_month, from_day, to_year, to_month, to_day) {
	var from = new Date(from_year, from_month, from_day);
	var to = new Date(to_year, to_month, to_day);
	return eval(from - to);
}

/* IP Address Check */
function isValidIP(IPvalue) {
	var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
	var ipArray = IPvalue.match(ipPattern); 

	if (IPvalue == "0.0.0.0") {
		return false;
	} else if (IPvalue == "255.255.255.255") {
		return false;
	}
	
	if (ipArray == null) {
		return false;
	} else {
		for (i = 1; i <= 4; i++) {
			thisSegment = ipArray[i];
			if (eval(thisSegment) > 255) {
				return false;
			}
			if ((i == 0) && (thisSegment > 255)) {
				return false;
			}
		}
	}

	return true;
}

/** 변수의 구성 요소를 조사하는 함수들 시작 **/
/* 인자가 숫자로만 구성된것인지 체크 */
function isNumberOnly(str){
	if (str == null) {
		return false;
	}
	if (str == "") {
		return false;
	}
	if (str.length == 0) {
		return false;
	}
	for(i = 0; i < str.length; i++) {
		if ((str.charAt(i) < '0') || (str.charAt(i) > '9')) {
			return false;
		}
	}
	return true;
}

/* 인자가 영문으로만 구성된것인지 체크 */
function isEnglishOnly(str){
	for(i = 0; i < str.length; i++) {
		if (str.charAt(i) > 'z') {
			return false;
		} else if (str.charAt(i) < 'a') {
			if ((str.charAt(i) > 'A') || (str.charAt(i) < 'Z')) {
				return true;
			} else {
				return false;
			}
		}
	}
	return true;
}

/* 문자 길이가 원하는 길이보다 긴지 아닌지 확인하는 Function */
function checkGtLength(str, len) {
	var strLen = str.length;

	if (strLen > len) {
		return true;
	} else {
		return false;
	}
}

/** 한글이면 TRUE 를 리턴한다 */
function isKorean(str) {
	if (str == null) {
		return;
	}
	if (str.length == 0) {
		return;
	}

	for (i = 0; i < str.length; i++) {
		var curChar = str.charCodeAt(i);
		if (curChar > 128) {
			return true;
		}
	} 
	return false;
}

//주민등록번호 체크하는 스크립트
function isValidSSN(pre, post) {
    var jumin1 = pre;
    var jumin2 = post;

    if(jumin1.length < 6) {
    	//alert("주민등록번호를 다시 입력하세요");
    	return false;
    }

    if(jumin2.length < 7) {
    	//alert("주민등록번호를 다시 입력하세요");
    	return false;
    }

    a = new Array(6);
	b = new Array(7);
	tot = 0;
	c = 0;
	for(i = 1; i < 7; i++) {
		a[i] = jumin1.substring(i-1, i);
		b[i] = jumin2.substring(i-1, i);
		if (i < 3) {
			c = Number(b[i])*(i+7);
		} else if(i>=3) {
			c = Number(b[i]) * ((i+9)%10);
		}
		tot = tot + Number(a[i]) * (i+1) + c;
	}
	b[7] = jumin2.substring(6,7);
	if (Number(b[7]) != ((11-(tot % 11)) % 10)) {
		//alert("유효한 주민등록번호가 아닙니다. 다시입력하세요");
		return false;
	}

    return true;
}
/** 변수의 구성 요소를 조사하는 함수들 끝 **/

function isIEBrowser() {
	var appName = navigator.appName;
	var appVersion = navigator.appVersion;
	if (appName.indexOf("Microsoft") >= 0) {
		return true;
	} else {
		return false;
	}
}

/** 
 * DISABLE TAB KEY ON TEXTAREA :: Support Only IE 
 * < textarea cols=40 rows=10 onkeydown="useTabkey(this)" >
 */
function useTabkey(tabElement) {
	if (isIEBrowser) {
		if (9 == event.keyCode) {
			(tabElement.selection = document.selection.createRange()).text = "\t";
			event.returnValue=false;
		}
	}
}

// Create Link List 
function templateLinkList(templateId, templateName) {
	//constant data 
	this.templateId = templateId
	this.templateName = templateName
	this.prev = null
	this.next = null
}
		
function templateNextAdd(prevObj, nextObj) {
	prevObj.next = nextObj;
	nextObj.prev = prevObj;
}
