var regNum        = /^[0-9]+$/; 
var regPhone      = /^[0-9]{2,3}-[0-9]{3,4}-[0-9]{3,4}$/; 
var regMail       = /^[._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+\.[a-zA-Z]+$/; 
var regDomain     = /^ftp|http|https:\/\/[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/; 
var regAlpha      = /^[a-zA-Z]+$/; 
var regIdPass     = /^[a-zA-Z0-9]+$/; 
var regHost       = /^[a-zA-Z-]+$/; 
var regHangul     = /[가-힣]/; 
var regHangulOnly = /^[가-힣]*$/; 
var regHangulNumSpace = /^[가-힣\s]*$/; 

//욕설 방지 리스트
var AbuseList = new Array('개새끼','십팔');


var head="display:''"
var ns6=document.getElementById&&!document.all  ;
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1  ;


/*-------------------------------------------------------------
 오픈윈도우 화면 중앙에 띄우기
 (페이지경로,이름,넓이,높이,스크롤여부,상태바여부,리사이즈여부)
-------------------------------------------------------------*/
function NewWindow(mypage,myname,w,h,scroll,status,resizable) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',status='+status+',resizable='+resizable+',toolbar=0,location=0';
	var win = window.open(mypage, myname, winprops);
//	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}


/*-------------------------------------------------------------
										 자동 탭 기능
-------------------------------------------------------------*/
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 Hangul_check(item) {
	var str2=item;  
	alert(srt2);

  for(h=0; h<str2.length; h++){
	  var g = str2.charCodeAt(h);
    if( !( ( 0xAC00 <= g && g <= 0xD7A3 ) || ( 0x3131 <= g && g <= 0x318E ) )){
     //alert("한글 이름에는 한글만 입력하세요");
     return "F";
    }
  }
  return "S";
}

/*-------------------------------------------------------------
	욕설 필터링
-------------------------------------------------------------*/
function isExistAbuseValue(conts)
{
	var strYock = ""; 
	var strReg = "";
	var strRegExp = "";
	var isMatch = false;
 
	for(var kk=0; kk< AbuseList.length ; kk++)
	{
		isMatch = false;
		strYock = AbuseList[kk]; 
		strReg = "";
	
	  for(var jj=0; jj<strYock.length;jj++)
	  { 
			strReg += strYock.charAt(jj);
			if(jj != strYock.length-1){ 
				strReg += "\\s*";     //욕문자 사이에 공백이 있는 문자열도 검사
			}	   
	 	}
	 	
		strRegExp = new RegExp(strReg);
		isMatch = strRegExp.test(conts);
	
		if(isMatch){
			return false;
		} 
	}
	 return true;
}



/*-------------------------------------------------------------
	입력된 문자의 길이 구하기(Byte)
-------------------------------------------------------------*/
function Item_Length(item) {
 var tmpStr;
 var temp=0;
 var onechar;
 var tcount;
 tcount = 0;

	tmpStr = new String(item);
	temp = tmpStr.length;

	for (k=0;k<temp;k++) {
		onechar = tmpStr.charAt(k);
		if (escape(onechar).length > 4) {
			 tcount += 2;
		}else if (onechar!='\r') {
			 tcount++;
		}
	}
	return tcount;
}


/*-------------------------------------------------------------
	폼의 해당 아이템 내용 체크하기
-------------------------------------------------------------*/
function Check_Elements(form) { 

	var rtnpass = true

	$(':input',form).each(function(){
		
//			alert( $(this).attr('name') + " => " + $(this).attr('required'))
		if($(this).attr('required') != null && $(this).val() == "") {
				rtnpass = false;
				return Go_Error(this);
		} 

		if(  $(this).attr('option') != null && $(this).val() != "") { 
			
			if($(this).attr('option') == "email"  && !regMail.test($(this).val())) 	 {
				rtnpass = false;
				return Go_Error(this, "email"); 
			} else if($(this).attr('option') == "domain" && !regDomain.test($(this).val())) {
				rtnpass = false;
				return Go_Error(this, "domain"); 
			} else if($(this).attr('option') == "phone"  && !regPhone.test($(this).val())) {
				 rtnpass = false;
				 return Go_Error(this, "phone"); 
			} else if($(this).attr('option') == "hangul" && !regHangul.test($(this).val())) {
				rtnpass = false;
				return Go_Error(this, "hangul"); 
			} else if($(this).attr('option') == "idpass" && !regIdPass.test($(this).val())) {
				rtnpass = false;
				return Go_Error(this, "idpass"); 
			} else if($(this).attr('option') == "number" && !regNum.test($(this).val())) {
				   rtnpass = false;
				   return Go_Error(this, "number"); 
			} else if($(this).attr('option') == "hangulnumspace" && !regHangulNumSpace.test($(this).val())) {
				 rtnpass = false;
				 return Go_Error(this, "hangulnumspace"); 			
			}
			
		} 

		if($(this).attr('filter') != null && $(this).val() != "") { 
			if(this.filter == "abuse") {
			 	var rtn = isExistAbuseValue($(this).val())
			 	if(!rtn) {
			 		rtnpass = false;
			 		return Go_Error(this, "abuse"); 									
				}
			}
		}

		if($(this).attr('same') != null && $(this).val() != "") { 
			sameEI = eval("form." + $(this).attr('same') + ".value"); 
			if($(this).val() != sameEI) {
				rtnpass = false;
				return Go_Error(this, "same"); 
			}
		} 
		if($(this).attr('smsize') != null && $(this).val() != "") { 
			if(this.smsize > Item_Length($(this).val())) {
				rtnpass = false;
				return Go_Error(this, "smsize"); 
			}
		} 
		if($(this).attr('mxsize') != null && $(this).val() != "") { 
			if($(this).attr('option') == "hangulnumspace"){
				var trimString = $.trim($(this).val()) ;
				if($(this).attr('mxsize') < Item_Length(trimString)) {
					rtnpass = false;
					return Go_Error(this, "hanmxsize"); 
				}
			}else{
				if($(this).attr('mxsize') < Item_Length($(this).val())) {
					rtnpass = false;
					return Go_Error(this, "mxsize"); 				
				}
			}
		} 			
    });

	return rtnpass ;		

}

function Go_Error(el,type) { 

	name = ($(el).attr('hname')) ? $(el).attr('hname') : $(el).attr('name'); 
	switch(type) { 
		case "same": 
				alert(name + " : " + $(el).attr('hname2') + " 항목과 같아야 합니다."); 	
				break; 
		case "email": 
				alert(name + " : 형식이 올바르지 않습니다"); 
				break; 
		case "domain": 
				alert(name + " : 형식이 올바르지 않습니다"); 
				break; 
		case "phone": 
				alert(name + " : 형식이 올바르지 않습니다"); 
				break; 
		case "number": 
				alert(name + " : 형식이 올바르지 않습니다"); 
				break; 
		case "hangul": 
				alert(name + " : 한글이 포함되어있지 않습니다"); 
				break; 
		case "hangulonly": 
				alert(name + " : 한글만 입력할 수 있습니다"); 
				break; 				
		case "hangulnumspace": 
				alert(name + " : 한글,공백만 입력할 수 있습니다"); 
				break; 				
		case "abuse": 
				alert(name + " : 희망문구에 적합하지 않은 단어가 있습니다."); 
				break; 								
		case "english": 
				alert(name + " : 영문만 입력하실수 있습니다"); 
				break; 
		case "idpass": 
				alert(name + " : 영문, 숫자만 입력하실수 있습니다"); 
				break; 
		case "smsize": 
				alert(name + " : " + el.smsize + "자 이상이어야 합니다."); 
				break; 
		case "mxsize": 
				alert(name + " : " + el.mxsize + "자 이하이어야 합니다."); 
				break; 
		case "hanmxsize": 
				alert(name + " :  희망문구 한글15자 이내여야 합니다."); 
				break; 
		default: 
				alert(name + " :  필수 항목입니다.!!"); 
	} 
	
	if($(el).attr('type') !=='hidden') el.focus(); 
	return false; 	
} 

function calculateFileSize( fileSize ) {
	// 사이즈가 1메가 초과일 경우
	if( fileSize > 1048576 )
		fileSize = Math.floor( ( ( fileSize / 1024 ) / 1024  ) * 100 ) / 100 + "MB";
	else if( fileSize > 1024 )
		fileSize = Math.floor( ( fileSize / 1024 ) * 100 ) / 100 + "KB";
	else
		fileSize += "Byte";
	return fileSize;
}		

//첨부된파일 디비 및 물리적 파일삭제 처리
ContentsFileDelete = function(cf_id) {
	//alert(cf_id);		
	$.ajax({
		type : "POST",
		dataType: "json",
		url  : "common/filedelete.asp",
		data : "mode=DELETE&cf_id="+cf_id,
		beforeSend: function() {
		},
		success : function(response, status) {
			switch(response.success)
			{
				case 'success' :
					//modal.alert(response.message);
					break;
				case "FAIL" :
					//modal.alert(response.message);
					break;
			}
		},
		error: function() {
//						_indicator.disable();
			modal.alert('죄송합니다. 잠시 후에 다시 시도하세요.');
		}
	});
};	


//add comma
function display_comma(value) {

	var src;
	var i;
	var factor;
	var su;
	var Spacesize = 0;
	
	var String_val = value.toString();
	
	factor = String_val.length % 3;
	su = (String_val.length - factor) /3;
	src = String_val.substring(0,factor);

	for(i=0; i<su ; i++)
	{
	   if ((factor==0)&&(i==0))// " XXX "の場合
		{
			 src += String_val.substring(factor+(3*i), factor+3+(3*i));
		}
		else 
		{
			if ( String_val.substring(factor+(3*i) - 1, factor+(3*i)) != "-" ) src +=",";
			src += String_val.substring(factor+(3*i), factor+3+(3*i));
		}
	}
	return src;
}
//delete comma 
function reduce_comma(value) {
	var x, ch;
	var i=0;
	var newVal="";
	for(x=0; x <value.length ; x++){
		ch=value.substring(x,x+1);
		if(ch != ",")  newVal += ch;
	}
	return newVal;
}

/*  금액에 콤마 찍기 - 인수가 문자형으로 들어와야 함 */
function addCommas( strValue ){ 
	var objRegExp = new RegExp('(-?[0-9]+)([0-9]{3})'); 
	while(objRegExp.test(strValue)) { 
		strValue = strValue.replace(objRegExp, '$1,$2'); 
	} 
	return strValue; 
} 
