// 입력폼유효값 확인
function fnIsValid(obj, msg) {
	var objVal = obj.value;
	if (objVal != "") {
		return true;
	} else {
		window.alert(msg);
		obj.focus();
		return false;
	}
}

//----------- 포커스 자동이동 --------------
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
	}
	
	function containsElement(arr, ele) {
		var found = false, index = 0;
		while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
		return found;
	}

	function getIndex(input) {
		var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;
		return index;
	}
	
	return true;
}
//----------- 포커스 자동이동 --------------

//----------- 숫자만 입력 --------------------
function Only_Num() { 
  if (event.keyCode < 48 || event.keyCode > 57)
  event.returnValue=false
}
//-------------------------------------------

//------------ 이미지사이즈에맞게 새창띄우기 ------
function ImageSizeNewWin(ImgSrc)
{
	PopImg = new Image();
	PopImg.src = ImgSrc;
	
	
	var imgWidth	= PopImg.width;
	var imgHeight	= PopImg.height;
	//alert(imgWidth + ' * ' + imgHeight);
	var winl = (screen.width-imgWidth)/2;
	var wint = (screen.height-imgHeight)/2;
	
	NewImgWin = window.open("","","status=no,width="+imgWidth+",height="+imgHeight+",top="+wint+",left="+winl);

	NewImgWin.document.write("<HTML><head><title>이미지보기</title></head>"); 
	NewImgWin.document.write("<body leftmargin=0 topmargin=0 onclick=self.close() style=cursor:hand>"); 
	NewImgWin.document.write("<img src='"+ImgSrc+"'>"); 
	NewImgWin.document.write("</body></HTML>"); 

}
//-------------------------------------------------


//------------ 이미지사이즈에맞게 새창띄우기(이미지 크기알때) ------
function ImageSizeNewWin2(ImgSrc, imgW, imgH)
{
	PopImg = new Image();
	PopImg.src = ImgSrc;
	
	var imgWidth	= imgW;
	var imgHeight	= imgH;
	//alert(imgWidth + ' * ' + imgHeight);
	var winl = (screen.width-imgWidth)/2;
	var wint = (screen.height-imgHeight)/2;
	
	NewImgWin = window.open("","","status=no,width="+imgW+",height="+imgH+",top="+wint+",left="+winl);

	NewImgWin.document.write("<HTML><head><title>이미지보기</title></head>"); 
	NewImgWin.document.write("<body leftmargin=0 topmargin=0 onclick=self.close() style=cursor:hand>"); 
	NewImgWin.document.write("<img src="+ImgSrc+" alt='"+js_alertmsg[0]+"'>"); 
	NewImgWin.document.write("</body></HTML>"); 

}
//-------------------------------------------------


//------------ 이미지 크기 리사이즈 ------
function img_resize(imgID,size) {
	
	if(imgID != null) {
		if(imgID.width > size) {
			imgID.width=size;
		}	
	} 	
}

function imgSizeCheck(imgID,size) {
	setTimeout("img_resize("+imgID+","+size+")",100);
}
//-------------------------------------------------


//------------새창 띄워 프린트하기--------------------
function printWindow(printURL)
{	
	NewImgWin = window.open(printURL,'','width=650,height=500');
}
//-----------------------------------------------------

//-------------- 새창 가운데 띄우기 ---------------
function CenterNewPop(url, popName, winWid, winHei, scroll)
{
	var	leftpos = (screen.width-winWid)/2;
	var toppos = (screen.height-winHei)/2;
	window.open(url, popName, 'menubar=no,scrollbars=' + scroll + ',status=no,width=' + winWid + ',height=' + winHei +', left=' + leftpos + ', top=' + toppos);
}
//-------------------------------------------------

//-------  지정된길이만큼 문자열 잘라내기 -----------
String.prototype.cut = function(len, tail) 
{
    var str = this;
    var l = 0;
    for (var i=0; i<str.length; i++) 
    {
        l += (str.charCodeAt(i) > 128) ? 2 : 1;
        if (l > len) return str.substring(0,i) + tail;
    }
    return str;
}
//----------------------------------------------------

//-------- 문자열 byte 구하기 ------------------------
String.prototype.bytes = function() 
{
    var str = this;
    var l = 0;
    for (var i=0; i<str.length; i++) 
        l += (str.charCodeAt(i) > 128) ? 2 : 1;

    return l;
}
//---------------------------------------------------

//---------- trim() / ltrim() / rtrim() 함수 -----------------------------
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

String.prototype.ltrim = function() {
    return this.replace(/(^\s*)/g, "");
}

String.prototype.rtrim = function() {
    return this.replace(/(\s*$)/g, "");
}
//----------------------------------------------------------------

//---------- 태그 제거 함수 -----------------------------
String.prototype.stripTags = function () {
       var str = this;
       var pos1 = str.indexOf('<');

		if (pos1 == -1) {
			return str.replace("&nbsp;","").trim();
		}
		else {
			var pos2 = str.indexOf('>', pos1);
			if (pos2 == -1) return str;
			return (str.substr(0, pos1) + str.substr(pos2+1)).stripTags().replace("&nbsp;","").trim();
		}
}
//----------------------------------------------------------------

//-------- 따옴표와 역슬래쉬 처리 ----------------------
function replaceBackslash(paramStr) 
{
    var str = paramStr;
    if (str.indexOf("\\") >= 0) str = str.replace(/\\/g, "\\\\");
    if (str.indexOf("\"") >= 0) str = str.replace(/\"/g, "\\\"");
    return str;
}
//-----------------------------------------------------------

//-------- 스크롤을 Top 으로 이동 ------------------------
function setTop()
{
	window.scrollTo(0,0);
}
//----------------------------------------------------------

//검색시 제한하기
function SearchCheck(obj,str){
	if (!spChrLimit(str)) {
		alert(js_alertmsg[1]);
		obj.select();
		return false;		
	}

}

// 해당 필드의 문자열을 잘라내는 함수
function textLengthLimit(theField, theLimit, message) {
	if (theField.value.length > theLimit) {
		alert(message + " " + theLimit + "자까지만 쓸 수 있습니다.");
		theField.value = theField.value.substring(0, theLimit);
		return false;	
	}
}

//TEXTAREA 라인 제한
function CheckStrLength(s, maxval) {
	var i
	var enter = 0;
	for(i=0; i< s.length; i++) {
		temp = s.charAt(i);
   
		if(temp == '\n') { // 입력 라인 제한을 위해 엔터키 횟수 증가   
			enter++;
		}
	}	
	
   if(enter >= maxval)   {
		return false;
   }else{
		return true;
   }
}


//특수문자 제한하기
function spChrLimit(str)
{
	var m_Sp = /[$\!\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|\;\:\"\'\,\.\<\>\/\?\ ]/;
	var strLen = str.length;
	var m_char, Isresult
	for (var i=0;i<strLen;i++)
	{
		m_char = str.charAt(i);
		if(m_char.search(m_Sp) != -1) 
		{
			Isresult = false;
			break;
		}
		else
		{
			Isresult = true;
		}
	}
	
	return Isresult;
}

//------------- 세자리마다 콤마 찍기 -----------------
function FormatComma(para, strValue)
{
	if(event.keyCode == 9 || event.keyCode == 16 || event.keyCode == 13)
		return;

	var length;
	var i;
	var str = "";
	var strtemp = "";
	
	if(para!=""){
		
		strValue =String(parseInt(StripComma(para)));
	}
	
	length = strValue.length;
	
	for ( i = length - 1; i >= 0 ; i--)
		if ( strValue.substring(i, i+1) != "," )
			strtemp = strtemp + strValue.substring(i, i+1)

	length = strtemp.length;
	for ( i = 0; i < length ; i++)
		if ( i != 0 && i %3 == 0 )
			str = strtemp.substring( i, i+1) + "," + str;
		else
			str = strtemp.substring( i, i+1) + str;
	if(para)
		para.value = str;
	else
		return str;
}

function StripComma(objThis)
{
	var strValue = objThis.value;
	var nLength = strValue.length;
	var strTemp = "";
	var i;

	for(i=0; i < nLength; i++)
	{
		var chrValue = strValue.substring(i,i+1);
		if(chrValue != ",")
			strTemp += chrValue;
	}
	if(strTemp.length)
		return strTemp;
	else
		return 0;
}
//------------------------------------------------------------------

//숫자인지 체크
var NUM = "0123456789";
function CheckType(s,spc) {
	var i;
	for(i=0; i<s.length; i++) {
		if (spc.indexOf(s.substring(i, i+1)) < 0) {
			return false;
		}
	}
	return true;
}

function isNumber(str){
	if(CheckType(str,NUM)&&str!="") return true;
	else return false;
}


//날짜 형식 체크
function fnIsDate(objVal) {
	var chkYear	 = objVal.substr(0,4);
	var chkMonth = objVal.substr(4,2) - 1;
	var chkDay	 = objVal.substr(6,2);
	var chkDate	 = new Date(chkYear, chkMonth, chkDay);
	var chkGetYear;
	if (chkDate.getYear() < 2000) {
		chkGetYear = "19" + chkDate.getYear();
	} else {
		chkGetYear = chkDate.getYear();
	}
	if ((chkGetYear != chkYear) || (chkDate.getMonth() != chkMonth) || (chkDate.getDate() != chkDay)) {
		window.alert("잘못된 날짜형식입니다");
		return false;
	} else {
		if ((chkYear.substr(0,2) != "19") && (chkYear.substr(0,2) != "20")) {
			window.alert("잘못된 날짜형식입니다");
			return false;
		} else {
			return true;
		}
	}
}

//주민번호 체크
function Social_No_Chk(frmItem1,frmItem2)
{
// 주민등록번호가 유효한지를 검사하기 위한 변수들 ==> r_chk, yy, mm, dd, sex
	var r_chk = 0
	var yy = frmItem1.value.substring(0,2)
	var mm = frmItem1.value.substring(2,4)
	var dd = frmItem1.value.substring(4,6)
	var sex = frmItem2.value.substring(0,1)
	if(frmItem1.value.length<6 && frmItem2.value.length<7){
		alert("주민등록번호를 입력해주세요! ");
		frmItem1.focus();
		return false;
	} 
	if ((frmItem1.value.length != 6 )|| (yy < 25 || mm < 1 || mm > 12 ||dd < 1 || dd > 31) )
	{
		alert ("주민등록번호를 바로 입력하여 주십시오.");
		frmItem1.select();
		return false;
	}
	if ((sex != 1 && sex !=2 )|| (frmItem2.value.length != 7 ))
	{
		alert ("주민등록번호를 바로 입력하여 주십시오.");
		frmItem2.select();
		return false;
	}   
	// 주민등록번호 validation check
	for (var i = 0; i <=5 ; i++){ 
		r_chk = r_chk + ((i%8+2) * parseInt(frmItem1.value.substring(i,i+1)))
	}
	for (var i = 6; i <=11 ; i++){ 
		r_chk = r_chk + ((i%8+2) * parseInt(frmItem2.value.substring(i-6,i-5)))
	}
	r_chk = 11 - (r_chk %11)
	r_chk = r_chk % 10
	if (r_chk != frmItem2.value.substring(6,7))
	{
		alert("유효하지 않은 주민등록번호입니다.");
		frmItem2.select();
		return false;
	}
}


//이메일체크
function EmailChk(frmItem1, frmItem2)
{
	if(frmItem1.value.length < 1 || frmItem2.value.length < 1)
	{
	    alert('이메일을 입력해주세요!');
	    frmItem1.focus();
		return false;
	}	
	else
	{
	    var emailVal = frmItem1.value + '@' + frmItem2.value
		var k,j;
		k=emailVal.indexOf("@");
		j=emailVal.indexOf(".");
    
		if (k<2 || j<4) {
			alert("이메일이 정확하지 않습니다.");
			frmItem2.select();
			return false;
		}
	}
}

//검색 영역
function searchFrmChk(Form)
{
	if (Form.findWord.value == '' ){
		alert('검색어을 입력해 주세요');
		Form.findWord.focus();
		return false;
	}
	if (Form.findWord.value.match(/\S/) == null){
		alert('검색어을 입력해 주세요');
		Form.findWord.value = "";
		Form.findWord.focus();
		return false;
	}

    if (!spChrLimit(Form.findWord.value))  {
		alert("검색어에는 특수문자및 띄워쓰기를 사용하실 수 없습니다.");
		Form.findWord.select(); 
		Form.findWord.focus();
		return false;
	}
}