/***************************************************************************
 * filename : head.js<br>
 * 공통으로 사용되는 함수및 속성<br>
 *
 * @version	: 1.0
 * @author	: free270
****************************************************************************/
if(HEAD_CLASS!=null) {
	alert("[head.js]는 이미 include 되어있습니다!!");
}
var HEAD_CLASS = true;

function showEmbedObject(objid){
	var obj = document.getElementById(objid)
	document.write(obj.innerHTML);
	obj.id = "";
}

//BODY태그의 onLoad() 이벤트에서 호출하는 함수
function init(){
	//해당페이지내에서 overriding되어짐
}
function popupEvent(){}
function init_start(){
	// code here ...  init()함수가 해당페이지내에서 overriding되어지기 때문에 그 이전에 실행하고자 하는 기능을 여기에 넣으시오	
	init();

	setTimeout("popupEvent();", 2000);	
}


//[ 바로가기 함수 ] ==================================================================================================
function goHome(){
	top.document.location = "/";
}
function goTopLink(url){
	top.document.location = url;
}
function goNewLink(url){
	open(url);
}
/** For Flash menu interface *************************************************************/
function goMenuTop(menu1, menu2){
	goMenu(menu1, menu2, "", "", "", "1");
}
function goMenu(menu1, menu2, menu3, menu4, target, menuani){	
	if(menu1 == null){	menu1 = ""	}
	if(menu2 == null){	menu2 = ""	}
	if(menu3 == null){	menu3 = ""	}
	if(menu4 == null){	menu4 = ""	}
	if(target == null){	target = ""	}
	if(menuani == null) {	menuani = ""	}

	document.location = URL_ROOT + "/gomenu.asp?menu1=" + menu1 + "&menu2=" + menu2 + "&menu3=" + menu3 + "&target=" + target + "&menuani=" + menuani;
}
function goFamilySite(url){
	open(url);
}

function FFOpen(link, winname, option){
	window.open(link, winname, option); 
	return;
}
function limitTextarea(obj){
	if(obj.maxlength == null || obj.maxlength == ""){
		alert("개발시에 maxlength속성값을 주셔야 합니다.\n\n ex) mextlength='100'");
		return true;
	}

	var length = parseInt(obj.maxlength);

	if (obj.value.length > length) {
		msg = "";
		if(obj.title!=null && obj.title!=""){
			msg = obj.title + " 은(는) ";
		}
		msg += "한글 " + length + "자 이내로 입력해주세요\n\n한글 " + length + "자 기준으로 자동으로 잘려집니다.";
		alert(msg);
		obj.value = obj.value.substring(0,length);
		obj.focus();

		return false;
	}				

	return true;
}	

/*
 * EX) <input type="text" onKeyDown="javascript:if(isEnterDown()){goCommSubmit();}">
 */
function isEnterDown(){
	if(event.keyCode==13){
		return true;
	}else{
		return false;	
	}
}

/**
 * TEXTAREA의 입력글자수 제한하는 함수
 * @auth      : free270
 * @ver       : 1.1
 *
 * @param obj : 처리하고자하는 textarea 객체
 * @param evn : 처리하고자하는 event 이벤트 함수는 아래와 같이 작성한다
 *				예제는 lengthCounting 함수를 참고
 */
function FFCheckmaxLength(obj, showMsg, autoCut, evn) {
	var maxLen = 0;
	var rtn	   = false;

	if(showMsg == null){
		showMsg = true;
	}

	if(autoCut == null){
		autoCut = true;
	}
	
	if(obj.maxLength==null || obj.maxLength==""){
		maxLen = 0;
	}else{
		maxLen = parseInt(obj.maxLength);
	}

	if(maxLen<=0){
		// 개발오류는 줄이기위해 maxLength옵션이 잘못되면 오류메세지를 보여준다			
		alert("개발시에 maxLength 속성값을 1이상의 숫자로 주셔야 합니다.\n\n ex) <textarea maxLength=\"100\"></textarea>");
		return;
	}

	var orgStr      = obj.value;
	var orgStrLen   = orgStr.length;
	var byteLen     = 0;
	var validLen    = 0;
	var chr			= "";
	var validByteLen= 0;

	for(var i=0; i<orgStrLen; i++) {
		chr = orgStr.charAt(i);

		if (escape(chr).length > 4){//2byte문자인 경우				
			byteLen += 2;
		}else{//1byte문자인 경우
			byteLen++;
		}

		if (byteLen <= maxLen){
			validLen = i + 1;
			validByteLen = byteLen;
		}else{
			break;	//효율을 높이기 위해 maxLen보다 크면 for를 빠져 나간다
		}
	}

	if(byteLen > maxLen) {
		//메세지를 출력하고 유효한 길이로 잘라낸다
		if(showMsg){
			alert("한글 " +  parseInt(maxLen/2) + "자, 영문 " + maxLen + "자 이내로 입력해주세요.\n\n초과된 내용은 자동으로 삭제 됩니다.");
		}
		obj.blur();	//이부분을 주지않고 alert를 띄우지 않으면.. 이상한동작을 함

		if(autoCut){
			obj.value = orgStr.substr(0, validLen);
		}
	}else{
		validLen = byteLen;
		rtn      = true;
	}
	
	//길이를 표시하는 함수를 호출해 준다
	if(evn!=null){
		evn(obj, validByteLen, validLen);
	}

	obj.focus();   

	return rtn;
}

