/***************************************************************************
 * 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 doBlink( i ){
	var blink = document.all.tags("blink")
	blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""
}

function initBlink(){
	var blink = document.all.tags("blink")
	for (var i=0; i < blink.length; i++){
		var speed = parseInt(blink[i].speed);		
		if(speed>0){		
		
		}else{
			speed = 300;
		}

		setInterval("doBlink(" + i + ")" , speed);	
	}
} 

function popupEvent(){}
function initLeftMenu(){}
function init_start(){
	// code here ...  init()함수가 해당페이지내에서 overriding되어지기 때문에 그 이전에 실행하고자 하는 기능을 여기에 넣으시오	
	initLeftMenu();
	init();

	initBlink();
	allblur();
	//setTimeout("popupEvent();", 2000);	
}


//[ 바로가기 함수 ] ==================================================================================================
function goHome(){
	document.location = URL_ROOT;
}
function goSitemap(){
	document.location = URL_ROOT + "/sitemap/sitemap.asp";
}
function goLang(lang){
	document.location = URL_ROOT + "/golang.asp?lang=" + lang;
}
function goTopLink(url){
	var a = document.createElement("a");
	document.appendChild(a);
	a.target = "_top";
	a.href = url;
	a.click();
}
function goNewLink(url){
	FFOpen(url);
}


function goSitemap(){
	document.location = URL_ROOT + "/sitemap/sitemap.asp";
}
function goLogin(returnURL){
	if(returnURL == null){
		document.location = URL_ROOT + "/member/login.asp?returnURL=" + escape(CURRENT_PAGE);	
	}else{
		document.location = URL_ROOT + "/member/login.asp?returnURL=" + returnURL;	
	}
}
function loginConfirm(){
	if(!confirm("로그인정보가 필요한 페이지입니다.\n\n로그인페이지로 이동하시겠습니까?")){
		return;
	}

	goLogin(escape(CURRENT_PAGE));
}
function goLogout(){
	document.location = URL_ROOT + "/member/xt_logout.asp";	
}
function goJoin(){
	document.location = URL_ROOT + "/member/join.asp";	
}
function goModify(){
	document.location = URL_ROOT + "/member/join.asp?sWt=edit";	
}

function findPWD(gubun){
	FFOpen(URL_ROOT + "/member/findpwd.asp?gubun=" + gubun, "findpwd", "width=360, height=330");
}
function findID(gubun){
	FFOpen(URL_ROOT + "/member/findid.asp?gubun=" + gubun, "findid", "width=360, height=330");
}

function goLeave(){

}

function findZip(gubun){
	FFOpen( URL_ROOT + "/common/zip/findzip.asp?gubun=" + gubun, "findzip", "width=370,height=420");
}

function goBack(){
	history.back(-1)
}

/** 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 FFOpen(link, winname, option){
	window.open(link, winname, option); 
	return;
}

function _getByteLength( msg ){
	var str = new String(msg);
	var len = str.length;
	var count = 0;

	for (k=0 ; k<len ; k++){
		temp = str.charAt(k);

		if (escape(temp).length > 4) {
			count += 2;
		}
		else if (temp == '\r' && str.charAt(k+1) == '\n') { // in case \r\n
			count += 2;
		}
		else if (temp != '\n') {
			count++;
		}
	}
	return count;	
}

function limitTextarea(obj){
	if(obj.maxlength == null || obj.maxlength == ""){
		alert("개발시에 maxlength속성값을 주셔야 합니다.\n\n ex) mextlength='100'");
		return true;
	}

	var length = parseInt(obj.maxlength);

	alert(parseInt(_getByteLength(obj.value)));

	if (parseInt(_getByteLength(obj.value)) > 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;
}	

/**
 * 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;
}


/*
 * EX) <input type="text" onKeyDown="javascript:if(isEnterDown()){goCommSubmit();}">
 */
function isEnterDown(){
	if(event.keyCode==13){
		return true;
	}else{
		return false;	
	}
}

function isNumberDown(){
	if(event.keyCode>=48 && event.keyCode<=57){
		return true;
	}else{
		return false;	
	}
}
function __onFocus(){
	alert("__onFocus");
}
function allblur(){
	var links = document.links;

	for (i = 0; i < links.length; i++) { 
		//alert(links[i].href);
		links[i].onfocusin =links[i].blur; 
	} 
} 
// 정규식 검사 함수 //
function chkReg(val, chk) {
	var pattern = new RegExp(chk, 'i');
	if(pattern.exec(val) != null) {
		return false;
	}
	return true;
}

// 메시지를 뿌리고 false를 리턴 //
function printErr(msg, fcs) {
	alert(msg);
	if(fcs != '') {
		fcs.focus();
	}
}

var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the FSCommand messages in a Flash movie.
function navi_DoFSCommand(command, args) {
	var naviObj = isInternetExplorer ? document.all.navi : document.navi;
	
	if(command=="goMenu"){	
		var arrArg = args.split("||");
		goMenu(arrArg[0], arrArg[1], arrArg[2], arrArg[3]);
		
	}
}
// Hook for Internet Explorer.
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
	document.write('<script language=\"VBScript\"\>\n');
	document.write('On Error Resume Next\n');
	document.write('Sub navi_FSCommand(ByVal command, ByVal args)\n');
	document.write('	Call navi_DoFSCommand(command, args)\n');
	document.write('End Sub\n');
	document.write('</script\>\n');
}

//document.onfocusin = allblur; 


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
