


function w2Fn() {

	this.requiredFn = function(obj,msg,option){
		if(typeof obj == 'object'){
			var oType = "";
			if(typeof obj.type == 'undefined'){ oType = obj[0].type; }
			else{ oType = obj.type; }
			switch (oType.toLowerCase()) {
				case 'checkbox':
					return this.checkboxFn(obj,msg,option);
					break;
				case 'radio':
					return this.radioFn(obj,msg);
					break;
				case 'text':
					return this.textFn(obj,msg,option);
					break;
				case 'textarea':
					return this.textFn(obj,msg,option);
					break;
				case 'password':
					return this.textFn(obj,msg,option);
					break;
				case 'file':
					return this.textFn(obj,msg,option);
					break;
				case 'select-one':
					return this.selectFn(obj,msg);
					break;
				default:
					alert("-- object type error! --");
			}
		}
	}

	this.trimFn = function(str) {
		return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
	}

	this.textFn = function(obj,msg,options){
		if(this.equalsFn(obj.value,'')){
			this.messageFn(msg);
			this.focusFn(obj);
			return true;
		}else{ return false; }
	}

	this.equalsFn = function(str1,str2){
		if(this.trimFn(str1) == this.trimFn(str2)){ return true; }
		else{ return false; }
	}

	this.focusFn = function(obj){
		obj.focus();
	}

	this.messageFn = function(msg){
		alert(msg);
	}

	this.selectFn = function(obj,msg){
		if(obj.selectedIndex == 0 ){
			this.messageFn(msg);
			return true;
		}else{ return false; }
	}

	this.radioFn = function(obj,msg){
		var returnChk = true;
		for(var i=0;i<obj.length;i++){
			if(obj[i].checked) returnChk = false;
		}
		if(returnChk) this.messageFn(msg);
		return returnChk;
	}

	this.checkboxFn = function(obj,msg,option){
		if(typeof obj.length == 'undefined'){
			if(!obj.checked) {
				this.messageFn(msg);
				return true;
			}else{ return false; }
		}else{
			var cnt = 0;
			var num = (typeof option=='undefined') ? 1 : option;
			for(var i=0;i<obj.length;i++){
				if(obj[i].checked) cnt++;
			}
			if (cnt < num) {
				this.messageFn(msg);
				return true;
			}else{ return false; }
		}
	}

	this.emailFn = function(str,msg) {
		var isEmail = /\w+([-.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/;
		if (!isEmail.test(str.value)) {
			this.messageFn(msg);
			return true;
		}else { return false; }
	}

	this.email2Fn = function(obj1,obj2,msg){
		//alert(obj1.value);
		//alert(obj2.value);
		var isEmail = /\w+([-.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/;
		var chkMail = obj1.value + '@' + obj2.value;

		//alert(chkMail);
		if(!isEmail.test(chkMail)){
			alert(msg);
			return true;
		}else{
			return false;
		}
	}

	this.juminFn = function(str,msg){
		//alert(str.value);
		var juminNo = str.toString();
		var _val = new Array(13);
		for(var i=0;i<_val.length;i++){
			_val[i] = juminNo.substring(i, i+1)
		}
		month = juminNo.substring(2,4);
//alert(month);
		day = juminNo.substring(4,6);
//alert(day);
		var juminNo1 = juminNo.substring(0, 6);
//alert(juminNo1);
		var juminNo2 = juminNo.substring(6, 13);
//alert(juminNo2);
		if(month <= 0 || month > 12){alert('주민등록번호가 올바르지 않습니다.');return true;}
		if(day <= 0 || day > 31){alert('주민등록번호가 올바르지 않습니다.');return true; }
		if (isNaN(juminNo1) || isNaN(juminNo2))  { return true; }
	    temp = _val[0]*2+_val[1]*3+_val[2]*4+_val[3]*5+_val[4]*6+_val[5]*7+_val[6]*8+_val[7]*9;
	    temp+= _val[8]*2+_val[9]*3+_val[10]*4+_val[11]*5;
	    temp=temp%11;
	    temp=11-temp;
	    temp=temp%10;
//alert(_val[12]);
//alert(temp);
		if(temp != _val[12]) {
			this.messageFn(msg);
			return true;
	    }else { return false; }
	}

	this.jumin2Fn = function(str1,str2,msg){
		//alert(str1.value);
		//alert(str2.value);
		var juminNo = (str1.value+str2.value).toString();
		//alert(juminNo);
		var _val = new Array(13);
		for(var i=0;i<_val.length;i++){
			_val[i] = juminNo.substring(i, i+1)
		}
		month = juminNo.substring(2,4);
//alert(month);
		day = juminNo.substring(4,6);
//alert(day);
		var juminNo1 = juminNo.substring(0, 6);
//alert(juminNo1);
		var juminNo2 = juminNo.substring(6, 13);
//alert(juminNo2);
		if(month <= 0 || month > 12){alert('주민등록번호가 올바르지 않습니다.');return true;}
		if(day <= 0 || day > 31){alert('주민등록번호가 올바르지 않습니다.');return true; }
		if (isNaN(juminNo1) || isNaN(juminNo2))  { return true; }
	    temp = _val[0]*2+_val[1]*3+_val[2]*4+_val[3]*5+_val[4]*6+_val[5]*7+_val[6]*8+_val[7]*9;
	    temp+= _val[8]*2+_val[9]*3+_val[10]*4+_val[11]*5;
	    temp=temp%11;
	    temp=11-temp;
	    temp=temp%10;
//alert(_val[12]);
//alert(temp);
		if(temp != _val[12]) {
			this.messageFn(msg);
			return true;
	    }else { return false; }
	}

	this.numberFn = function(obj,msg){
		if( /\D/.test(obj.value) ) {
			this.messageFn(msg);
			this.focusFn(obj);
			return true;
		}else { return false; }
	}

	this.eng_numberFn = function(obj,msg){
		if( /[^0-9|a-z|A-Z]/.test(obj.value) ) {
			this.messageFn(msg);
			this.focusFn(obj);
			return true;
		}else { return false; }
	}

	this.hangulFn = function(obj,msg){

		var len;
		len = obj.value.length;
		for (var i = 0; i < len; i++)  {
			if (obj.value.charCodeAt(i) != 32 && (obj.value.charCodeAt(i) < 44032 || obj.value.charCodeAt(i) > 55203)) {
				this.messageFn(msg);
				this.focusFn(obj);
				return true;
			}
		}
		return false;
	}

	this.confirmFn = function(msg) {
		if(confirm(msg)){ return false; }
		else{ return true; }
	}

	this.select_box_selected = function(obj,str){
		for(var i=0;i<obj.length;i++){
			if(obj[i].value == str) obj[i].selected = true;
		}
	}

	this.radio_checked = function(obj,str){
		if( typeof obj.length == 'undefined'){
		if(obj.value == str) obj.checked = true;
		}else{
			for(var i=0;i<obj.length;i++){
				if(obj[i].value == str) obj[i].checked = true;
			}
		}
	}

	this.checkbox_checked = function(obj,str){
		var ar = str.split(",");
		if( typeof obj.length == 'undefined'){
			for(var a=0;a<ar.length;a++){
				if(obj.value == ar[a]) obj.checked = true;
			}
		}else{
			for(var i=0;i<obj.length;i++){
				for(var a=0;a<ar.length;a++){
					if(obj[i].value == ar[a]) obj[i].checked = true;
				}
			}
		}
	}

	this.fn_checkbox_all_checked = function(obj,Boolean){
		if( typeof obj.length == 'undefined'){
			for(var a=0;a<obj.length;a++){
				obj.checked = Boolean;
			}
		}else{
			for(var i=0;i<obj.length;i++){
				obj[i].checked = Boolean;
			}
		}
	}



	this.popImgFn = function(msg,img){
		var clintAgent = navigator.userAgent;
		var brVer = navigator.userAgent;
		var brVerId = brVer.indexOf('MSIE');
		brNum = brVer.substr(brVerId,8);
		brNum2 = brNum.substr(5,3)
		imgWin=window.open("","","width=100, height=100, resizable=yes");
	    imgWin.document.write("<html><head><title>"+msg+"</title></head>");
		imgWin.document.write("<script>");
	 	imgWin.document.write("function resizeWin() {");
	 	imgWin.document.write("var obj = document.getElementById('img');");
	 	imgWin.document.write("var w = obj.width;");
	 	imgWin.document.write("var h = obj.height;");
	 	if ( clintAgent.indexOf("MSIE") != -1 ){// IE 일 경우
	 		if(brNum2 != 6.0){
	 			imgWin.document.write("window.resizeTo(w + 23, h + 83);");
	 		}else{
	 			imgWin.document.write("window.resizeTo(w + 23, h + 41);");
	 		}
		}else{
			imgWin.document.write("window.resizeTo(w + 19, h + 90);");
		}
	 	imgWin.document.write("}");
	 	imgWin.document.write("</script>");
	    imgWin.document.write("<body topmargin='0' leftmargin='0' bgcolor='#e4e4e4' onload='resizeWin();'>");
	    imgWin.document.write("<img src='"+img+"' onclick='self.close()' style='cursor:pointer;' hspace='5' vspace='5' id='img' />");
		imgWin.document.write("</body></html>");
	    imgWin.document.close();
	}

	//브라우져 리사이즈
	//w2Fn.window_resizeFn(width,height);
	//
	this.window_resizeFn = function(winWidth, winHeight){
		document.body.style.overflow='hidden';
		var clintAgent = navigator.userAgent;
		var foxHeight = 60;
		var ieHeight = 60;
		var ie7Height = 80;
		if ( clintAgent.indexOf("MSIE") != -1 )	// IE 일 경우
		{
			var res = this.isIE7();
			if( res ) {
				window.resizeTo(winWidth, winHeight + ie7Height);
			} else {
				window.resizeTo(winWidth, winHeight + ieHeight);
			}
		}
		else	// IE 가 아닐 경우
		{
			window.resizeTo(winWidth, winHeight + foxHeight);
		}
	}

	this.isIE7 = function(){
		var agent = window.navigator.userAgent;
		if(agent.indexOf("MSIE 7")!= -1)
		    return true;
	    else
	        return false;
	}


	//공백존재여부확인
	//w2Fn.chkSpaceFn('string');
	//
	this.chkSpaceFn = function(str){
	     if(str.search(/\s/) != -1){
	     	return true;
	     } else {
	        return false;
	     }
	}

	//바이트길이 가져오기
	//w2Fn.bytelengthFn('string');
	//
	this.bytelengthFn = function(str) {
		var i, ch;
		len = str.value.length;
		for (i = 0; i < str.value.length; i++) {
			ch = str.value.substr(i,1).charCodeAt(0);
			if (ch > 127) { len++; }
		}
		return len;
	}

	//입력값 Byte수 체크하여 자르기
	//onkeyup('string',number)
	//
	this.charbyteFn = function(str,limit){
		var pe_str = str.value;
		var pe_str_len = pe_str.length;
		var pe_max = limit;

		var i = 0;
		var pe_byte = 0;
		var pe_len = 0;
		var pe_one_char = "";
		var pe_str2 = "";

		for(i=0; i< pe_str_len; i++){
			pe_one_char = pe_str.charAt(i);
			if (escape(pe_one_char).length > 4){
				pe_byte += 2;
			}else{
				pe_byte++;
			}

			if(pe_byte <= pe_max){
				pe_len = i + 1;
			}
		}

		if(pe_byte > pe_max){
			alert("한글"+ pe_max/2 + "글자, 숫자 및 영문"+pe_max+"글자를 초과 입력할 수 없습니다.\n초과된 내용은 자동으로 삭제 됩니다.");
			pe_str2 = pe_str.substr(0, pe_len);
			str.value = pe_str2;
			return true;
		}
			return false;
	}


	//디스플레이 show,hide
	//w2Fn.fn_display(form.id,Boolean,number), w2Fn.fn_display(form.id,Boolean);
	//
	this.fn_display = function(obj,Boolean,index){
		if(typeof obj.length == 'undefined'){
			obj.style.display = (Boolean) ? 'block':'none';
		}else{
			if (typeof index == 'undefined'){
				for (var i = 0; i < obj.length; i++) {
					obj[i].style.display = (Boolean) ? 'block':'none';
				}
			}else{
				for (var i = 0; i < obj.length; i++) {
					obj[i].style.display = (!Boolean) ? 'block':'none';
				}
				obj[index].style.display = (Boolean) ? 'block':'none';
			}
		}
	}


	this.checkExtFn = function(file_name, bad_ext){
		if ( file_name != "" ){
			var bad_a = (bad_ext.toUpperCase()).split(",");
			file_ext = (file_name.toUpperCase()).substring(file_name.lastIndexOf(".")+1);
			for(i=0;i<bad_a.length;i++){
				if ( file_ext == bad_a[i]){
					alert("파일형식이 "+bad_a[i]+"는(은) 업로드 하실수 없습니다.");
					return true;
				}

			}

		}
		return false;
	}


}

