//<------------- 텍스트 박스 문자열 길이 반환
function updateChar(obj, length_limit) {
   var length = calculate_msglen(obj.value);
//   textlimit.innerText = length;
   if (length > length_limit) {
       alert("최대 " + length_limit + "byte이므로 초과된 글자수는 자동으로 삭제됩니다.");
       obj.value = obj.value.replace(/\r\n$/, "");
       obj.value = assert_msglen(obj.value, length_limit);
   }
}

function calculate_msglen(message) {
   var nbytes = 0;

   for (i=0; i<message.length; i++) {
       var ch = message.charAt(i);
       if(escape(ch).length > 4) {
           nbytes += 2;
       } else if (ch == '\n') {
           if (message.charAt(i-1) != '\r') {
               nbytes += 1;
           }
       } else if (ch == '<' || ch == '>') {
           nbytes += 4;
       } else {
           nbytes += 1;
       }
   }

   return nbytes;
}

//한글/영문 문자열 바이트 반환
function StrLenChk_2(len_limit, inputbox_obj) {
	var str_len = getStrByte(inputbox_obj.val());
	if(str_len > len_limit) {
		alert("*** 글자수 제한 ***\n영문 : "+ len_limit +"자\n한글 : "+ len_limit/2 +"자\n\n초과된 글자수는 자동으로 삭제됩니다.");
		inputbox_obj.val(inputbox_obj.val().replace(/\r\n$/,""));
		inputbox_obj.val(assert_msglen(inputbox_obj.val(), len_limit));
//		inputbox_obj.html(inputbox_obj.val());
	}
}

//한글/영문 문자열 바이트 반환
function StrLenChk(limit, obj_input, obj_output) {
	var strlen = getStrByte(obj_input.val());
	obj_output.html(strlen);
	if(strlen > limit) {
		alert("최대"+ limit +"byte이므로 초과된 글자수는 자동으로 삭제됩니다.");
		obj_input.val(obj_input.val().replace(/\r\n$/,""));
		obj_input.val(assert_msglen(obj_input.val(), limit));
		obj_output.html(limit);
	}
}

//바이트 계산 함수
function getStrByte(str) {
	var nbytes = 0;
	for(var i = 0 ; i < str.length ; i++) {
		var ch = str.charAt(i);
		if(escape(ch).length > 4) {
//			nbytes += 1;
			nbytes += 2;
		} else if(ch == '\n') {
			if(str.charAt(i-1) != '\r') {
//				nbytes += 0.5;
				nbytes += 1;
			}
		} else if(ch == '<' || ch == '>') {
//			nbytes += 4;
			nbytes += 2;
		} else {
//			nbytes += 0.5;
			nbytes += 1;
		}
	}
	return nbytes;
}

function assert_msglen(message, maximum) {
   var inc = 0;
   var nbytes = 0;
   var msg = "";
   var msglen = message.length;

   for (i=0; i<msglen; i++) {
       var ch = message.charAt(i);
       if (escape(ch).length > 4) {
           inc = 2;
       } else if (ch == '\n') {
           if (message.charAt(i-1) != '\r') {
               inc = 1;
           }
       } else if (ch == '<' || ch == '>') {
           inc = 4;
       } else {
           inc = 1;
       }
       if ((nbytes + inc) > maximum) {
           break;
       }
       nbytes += inc;
       msg += ch;
   }
//   textlimit.innerText = nbytes;
   return msg;
}


function SsnChk(s1, s2) {
	var n1 = s2.charAt(0);

	if((n1 == 5) || (n1 == 6) || (n1 == 7) || (n1 == 8)) {
		if(!isRegNo_fgnno(s1.concat(s2))) {
			return false;
		} else {
			return true;
		}
	} else {
		var hap = 0;
		for (var i = 0; i < 6; i++) {
			var temp = s1.charAt(i)*(i+2);
			hap += temp;
		}
		var n1 = s2.charAt(0);
		var n2 = s2.charAt(1);
		var n3 = s2.charAt(2);
		var n4 = s2.charAt(3);
		var n5 = s2.charAt(4);
		var n6 = s2.charAt(5);
		var n7 = s2.charAt(6);
	
		hap += n1*8 + n2*9 + n3*2 + n4*3 + n5*4 + n6*5;
		hap %= 11;
		hap = 11 - hap;
		hap %= 10;
	
		if(hap != n7) {
			return false;
		} else {
			return true;
		}
	}
}

function isRegNo_fgnno(fgnno) { 
	var sum=0; 
	var odd=0; 
	buf = new Array(13); 
	for(i=0; i<13; i++) { buf[i]=parseInt(fgnno.charAt(i)); } 
	odd = buf[7]*10 + buf[8]; 
	if(odd%2 != 0) { return false; } 
	if( (buf[11]!=6) && (buf[11]!=7) && (buf[11]!=8) && (buf[11]!=9) ) { 
		return false; 
	} 
	multipliers = [2,3,4,5,6,7,8,9,2,3,4,5]; 
	for(i=0, sum=0; i<12; i++) { sum += (buf[i] *= multipliers[i]); } 
	sum = 11 - (sum%11); 
	if(sum >= 10) { sum -= 10; } 
	sum += 2; 
	if(sum >= 10) { sum -= 10; } 
	if(sum != buf[12]) { return false } 
	return true; 
} 


//input Null 체크
NullChk = function(obj, text) {
	if ($.trim(obj.val()).replace(/\s/g, "").length == 0) {
		alert(text +" 입력하세요.");
		obj.focus();
		return false;
	};
	return true;
};

//select Null 체크
NullChk_Select = function(obj, text) {
	if ($.trim(obj.val()).replace(/\s/g, "").length == 0) {
		alert(text +" 선택하세요");
		return false;
	};
	return true;
};

//radio Null 체크
NullChk_Radio = function(obj, text) {
	valChecked = obj.is(":checked");
	if (!valChecked) { alert(text +" 선택하세요"); };
	return valChecked;
};

//obj input Null 체크
NullChk_Obj = function(obj) {
	if ($.trim(obj.val()).replace(/\s/g, "").length == 0) { return false; };
	return true;
};

//obj radio Null 체크
NullChk_Radio_Obj = function(obj) { return obj.is(":checked"); };

//<------------- 이미지/파일 체크
ExtChk_File = function(arrExt, obj, text) {
	var isChecked = false;
	var file_Name = obj.val().slice(obj.val().lastIndexOf(".")).toLowerCase();
	for (var i = 0; i < arrExt.length; i++) {
		if (file_Name == arrExt[i]) {
			isChecked = true;
			break;
		};
	};
	if (!isChecked) {
		alert(text);
		obj.val("");
		obj.focus();
	};
	return isChecked;
};

//패스워드 확인
PwChk = function(obj, text) {
	if (!NullChk(obj, text)) return false;
	var str = obj.val();
	var chkStr = '0123456789';
	var chkEng = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var j = 0;
	var k = 0;

	if(str.length < 6 || str.length > 20){
		alert("패스워드는 6 ~ 20자 숫자/영문 혼용만 가능합니다.");
		obj.val("");
		obj.focus();
		return false;
	}
	for(var i = 0; i < str.length; i++) {
		if(chkStr.indexOf(str.substring(i, i+1))== -1){ //숫자가 아니고
			if(chkEng.indexOf(str.substring(i, i+1))==-1){ //영문소문자가 아닌경우
				alert("패스워드는 특수문자 또는 한글은 불가능합니다.");
				obj.val("");
				obj.focus();
				return false;
			} else {
				j++;
			}
		} else {
			k++;
		}
	}
	if((j==str.length || k==str.length)){
		alert("패스워드는 숫자와 영문을 혼용하여야합니다.");
		obj.val("");
		obj.focus();
		return false;
	}
	return true;
}

//주소 검색 창 띄우기
function do_search_zip() {
	window.open("zip.asp?todo=info","","width=450,height=300, top=100,left=500, resizable=1,scrollbars=yes ");
}

//text박스 자리 이동	
function dokeypress(here, next, strlength) {
	if (here.value.length == strlength) {
		next.focus();
	}
}

//엔터키와 숫자만 넣기
function keypress_enter_number(val_Num) {
	if (event.keyCode == 13) {
		return true;
	} else if( (event.keyCode < 48) || (event.keyCode > 57) ) {
		event.returnValue = false;
	}
}

//이메일확인
function isEmail(obj, stralert) {
	var str = trim(obj.value);
	if(!nullChk(obj, stralert))
		return false;
	var tempChar;
	for (var i=0; i<str.length; i++) {
		tempChar = str.charAt(i);
		if(!(('a'<= tempChar && tempChar<='z') || (0<=tempChar && tempChar<=9) || tempChar == "." )) {
			alert("잘못된 이메일 형식입니다.");
			obj.select();
			obj.value='';
			obj.focus();
			return false;
		}
	}
	return true;
}

//이미지 가운데로
function BGImgBox(src, width, height) {
	var imgBox = $("<img>").addClass("ui-widget ui-widget-content ui-corner-all").attr("src", src).css({margin:0, border:"none", cursor:"pointer"}).click(function() {$("#complete_box").remove();});

	var pointX = ($(window).width() - width) / 2 + $(document).scrollLeft();
	var pointY = ($(window).height() - height) / 2 + $(document).scrollTop();

	var popScreen = $("<div>").attr("id", "complete_box").css({position:"absolute", zIndex:500, left:pointX, top:pointY});
	var backScreen = $("<div>").addClass("ui-overlay").append($("<div>").addClass("ui-widget-shadow ui-corner-all").css({position:"absolute", zIndex:501, width:width+2, height:height+2}));
	var imgScreen = $("<div>").addClass("ui-widget ui-widget-content ui-corner-all").css({position:"absolute", zIndex:502});
	$(document.body).append(popScreen.append(backScreen).append(imgScreen.append(imgBox)));
}
