function isEmail(emailAddress) { var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; // alert( pattern.test(emailAddress) ); return pattern.test(emailAddress); }; function getDistance(lat1 , lng1 , lat2 , lng2){ var rad = Math.PI / 180.0; return Math.acos(Math.sin(lat2*rad) * Math.sin(lat1*rad) + Math.cos(lat2*rad) * Math.cos(lat1*rad) * Math.cos(lng2*rad - lng1*rad)) * 6371000; } function HttpPostXml(url, param) { var rtn = ''; $.ajax({ url : url, type: "POST", data : param, dataType:"xml", contentType: "application/x-www-form-urlencoded;charset=utf-8", success:function(resultData){ result = data; } }); return rtn; } function HttpGetXml(url, param) { var rtn = ''; $.ajax({ url : url, data : param, dataType:"xml", contentType: "application/x-www-form-urlencoded;charset=utf-8", success:function(resultData){ result = data; } }); return rtn; } function HttpGetJson(url, param) { var rtn = ''; $.ajax({ url: url, async: false, data: param, contentType: "application/x-www-form-urlencoded;charset=utf-8", dataType: 'json', success: function (response) { rtn = response; } }); return rtn; } //var Data = HttpPostJson('http://aa.aa/a.php', param) ; function HttpPostJson(url, data) { var result; $.ajax({ type : 'post', url : url, dataType:'json', contentType: "application/x-www-form-urlencoded;charset=utf-8", async : false, data : data, beforeSend : function(xhr){}, success : function(data) { result = data; } }); return result; } // 익스 10 이상! function HttpPostData(url, formData) { var result; $.ajax({ url: url, data: formData, processData: false, contentType: false, async: false, type: 'POST', success: function(data){ result = data; } }); return result; } /* // 프로그래스바 테스트 했던거 function _(el){ return document.getElementById(el); } function progressHandler(event){ var percent = (event.loaded / event.total) * 100; $("#progressBar").show(); _("progressBar").value = Math.round(percent); } */ function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A"); } function get_version_of_IE () { var word; var version = "N/A"; var agent = navigator.userAgent.toLowerCase(); var name = navigator.appName; // IE old version ( IE 10 or Lower ) if ( name == "Microsoft Internet Explorer" ) word = "msie "; else { // IE 11 if ( agent.search("trident") > -1 ) word = "trident/.*rv:"; // IE 12 ( Microsoft Edge ) else if ( agent.search("edge/") > -1 ) word = "edge/"; } var reg = new RegExp( word + "([0-9]{1,})(\\.{0,}[0-9]{0,1})" ); if ( reg.exec( agent ) != null ) version = RegExp.$1 + RegExp.$2; return version; } function noCtlrV(){ var ctrl = false; $(this).keydown(function(){ if(event.keyCode == 17){ ctrl = true; } }); $(this).keyup(function(){ if(event.keyCode == 17){ ctrl = false; } }); $(this).keydown(function(){ if(ctrl && event.keyCode == 86){ alert('Ctrl + V 를 사용하실수 없습니다.'); return false; } }); } /* var id = ''; // 페이징 시작할 태그 id var url = ''; // 페이징 할 리스트 url var search1 = 'q='+q; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search2 = 'q_type='+q_type; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search3 = 'type='+type; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search4 = 'mode='+mode; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search5 = 'line='+line; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var total = result.total_count; // 리스트 전체 게시물 수 var count = 9; // 페이지당 보여 줄 페이징 개수 pagenation(id,url,search1,search2,search3,search4,search5,page,total,count); */ function pagenation(id,url,search1,search2,search3,search4,search5,page,total,count){ var S1 = ''; var S2 = ''; var S3 = ''; var S4 = ''; var S5 = ''; var count_H = parseInt(count / 2); if(search1 != ''){ S1 = '?'+search1; } if(search2 != ''){ S2 = '&'+search2; } if(search3 != ''){ S3 = '&'+search3; } if(search4 != ''){ S4 = '&'+search4; } if(search5 != ''){ S5 = '&'+search5; } var search = S1+S2+S3+S4+S5; if(page == "" || page ==1){ $('#'+id).html(''); }else{// <,<< var first_page = ''; if(page > count){ first_page = '
");
info.id = "ie_preview_error_" + previewId;
info.innerHTML = "a";
preview.insertBefore(info, null);
}
}
} else { //ie가 아닐때
var files = _this.files;
for ( var i = 0; i < files.length; i++) {
var file = files[i];
var imageType = /image.*/; //이미지 파일일경우만.. 뿌려준다.
if (!file.type.match(imageType))
continue;
var prevImg = document.getElementById("prev_" + previewId);
if (prevImg) {
prevImg.id = "prev_" + previewId;
prevImg.file = file;
}
if (window.FileReader) { // FireFox, Chrome, Opera 확인.
var reader = new FileReader();
reader.onloadend = (function(aImg) {
return function(e) {
aImg.src = e.target.result;
};
})(prevImg);
reader.readAsDataURL(file);
} else { // safari is not supported FileReader
//alert('not supported FileReader');
if (!document.getElementById("sfr_preview_error_"
+ previewId)) {
var info = document.createElement("p");
info.id = "sfr_preview_error_" + previewId;
info.innerHTML = "not supported FileReader";
preview.insertBefore(info, null);
}
}
}
}
}
function SpecialCharacterCheck(input) {
var RegExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi;//정규식 구문
var str = $(input).val();
if (RegExp.test(str)) {
alert("특수문자는 입력하실 수 없습니다.");
$(input).val(str.substring(0, str.length - 1));//특수문자를 지우는 구문
}
}
function SpecialCharacterCheckRemoveAll(input) {
var RegExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi;//정규식 구문
var str = $(input).val();
if (RegExp.test(str)) {
$(input).val("");//특수문자를 지우는 구문
}
}
function PasswordCheck(input) {
var RegExp = /^.*(?=.{6,20})(?=.*[0-9])(?=.*[a-zA-Z]).*$/;
$(input).focusout(function(){
var str = $(input).val();
if (RegExp.test(str)) {
alert("비밀번호는 영문 숫자 혼합하여 6~20자리 이내로 입력해 주세요.");
$(input).val("");
}
});
}
function Preview_Image(previewId,src,width,height){
var preview = document.getElementById(previewId); //div id
var ua = window.navigator.userAgent;
if (ua.indexOf("MSIE") > -1) {
var img = document.getElementById(previewId); //이미지가 뿌려질 곳
img.style.width = width;
img.style.height = height;
img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')"; //이미지 로딩, sizingMethod는 div에 맞춰서 사이즈를 자동조절 하는 역할
}else{
var prevImg = document.getElementById("prev_" + previewId); //이전에 미리보기가 있다면 삭제
if (prevImg) {
preview.removeChild(prevImg);
}
var img = document.createElement("img"); //크롬은 div에 이미지가 뿌려지지 않는다. 그래서 자식Element를 만든다.
img.id = "prev_"+previewId;
img.classList.add("obj");
img.style.width = width; //기본설정된 div의 안에 뿌려지는 효과를 주기 위해서 div크기와 같은 크기를 지정해준다.
img.style.height = height;
preview.appendChild(img);
img.src = src;
}
}
function P_Number_Only(event){
if ((event.keyCode<48) || (event.keyCode>57)) event.returnValue=false;
}
function Number_Only(key){
$(key).keydown(function(event){
$(this).val($(this).val().replace(/[^0-9]/gi , ''));
if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39) return false;
});
$(key).keypress(function(event){
$(this).val($(this).val().replace(/[^0-9]/gi , ''));
if ((event.keyCode<48) || (event.keyCode>57)) return false;
});
$(key).keyup(function(event){
$(this).val($(this).val().replace(/[^0-9]/gi , ''));
if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39) return false;
});
}
function Double_Only(key){
$(key).keydown(function(event){
$(this).val($(this).val().replace(/[^0-9\.]/gi , ''));
if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 190 && event.keyCode != 46 && event.keyCode != 110) return false;
});
$(key).keypress(function(event){
$(this).val($(this).val().replace(/[^0-9\.]/gi , ''));
if (((event.keyCode<48) || (event.keyCode>57)) && event.keyCode != 190 && event.keyCode != 46 && event.keyCode != 110) return false;
});
$(key).keyup(function(event){
$(this).val($(this).val().replace(/[^0-9\.]/gi , ''));
if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 190 && event.keyCode != 46 && event.keyCode != 110) return false;
});
}
function Comma(num) {
return num == null || num == undefined ? 0 : num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function autoHypenPhone(key) {
$(key).keyup(function (event) {
$(this).val($(this).val().replace(/[^0-9\-]/gi , ''));
if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39) return false;
event = event || window.event;
var phone = this.value.trim();
phone = phone.replace(/[^0-9]/g, '');
let phoneRegex = (phone.length < 8) ? /(02|[0-9]{3,3})([0-9]{0,4})/ : /(02|[0-9]{3,3})([0-9]{3,4})([0-9]{0,4})/;
if(phone.length >= 10) phoneRegex = /(02|[0-9]{3,3})([0-9]{3,4})([0-9]{4,4})/
let phoneMatch = phone.match(phoneRegex);
let phoneValue = phone;
if(phoneMatch != null){
phoneValue = "";
for(var phoneKey in phoneMatch ){
if(phoneKey > 0){
if(phoneValue != "") phoneValue += "-";
phoneValue += phoneMatch[phoneKey];
}
}
}
// (phoneMatch != null && phoneMatch.length > 3) ? phoneMatch[1]+"-"+phoneMatch[2]+"-"+phoneMatch[3] : phone;
this.value = phoneValue;
});
}
/* * * * 다음 주소 관련 * * * */
function closeDaumPostcode(layer_id) {
$('#'+layer_id).hide();
}
function DaumPostcode(layer_id, postcode_id , address_id , width , height) {
var element_layer = $('#'+layer_id);
new daum.Postcode({
oncomplete: function(data) {
// 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
var fullAddr = data.address; // 최종 주소 변수
var extraAddr = ''; // 조합형 주소 변수
// 기본 주소가 도로명 타입일때 조합한다.
if(data.addressType === 'R'){
//법정동명이 있을 경우 추가한다.
if(data.bname !== ''){
extraAddr += data.bname;
}
// 건물명이 있을 경우 추가한다.
if(data.buildingName !== ''){
extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
}
// 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
fullAddr += (extraAddr !== '' ? ' ('+ extraAddr +')' : '');
}
// 우편번호와 주소 정보를 해당 필드에 넣는다.
document.getElementById(postcode_id).value = data.zonecode; //5자리 새우편번호 사용
document.getElementById(address_id).value = fullAddr;
// document.getElementById('sample2_addressEnglish').value = data.addressEnglish;
// iframe을 넣은 element를 안보이게 한다.
// (autoClose:false 기능을 이용한다면, 아래 코드를 제거해야 화면에서 사라지지 않는다.)
element_layer.hide();
},
width : '100%',
height : '100%'
}).embed(document.getElementById(layer_id));
// iframe을 넣은 element를 보이게 한다.
element_layer.show();
// iframe을 넣은 element의 위치를 화면의 가운데로 이동시킨다.
initLayerPosition(layer_id , width , height);
}
// 브라우저의 크기 변경에 따라 레이어를 가운데로 이동시키고자 하실때에는
// resize이벤트나, orientationchange이벤트를 이용하여 값이 변경될때마다 아래 함수를 실행 시켜 주시거나,
// 직접 element_layer의 top,left값을 수정해 주시면 됩니다.
function initLayerPosition(layer_id , width , height){
var element_layer = $('#'+layer_id);
var width = width; //우편번호서비스가 들어갈 element의 width
var height = height; //우편번호서비스가 들어갈 element의 height
var borderWidth = 5; //샘플에서 사용하는 border의 두께
// 위에서 선언한 값들을 실제 element에 넣는다.
element_layer.css({
"width": width + 'px',
"height": height + 'px' ,
"border" : borderWidth + 'px solid',
"left" : (((window.innerWidth || document.documentElement.clientWidth) - width)/2 - borderWidth) + 'px',
"top" : (((window.innerHeight || document.documentElement.clientHeight) - height)/2 - borderWidth) + 'px'
});
}
/* * * * 다음 주소 관련 * * * */
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i