/*************************************************************************
함수명 : trim
기 능 : 문자열 앞뒤에있는 공백없애기
인 수 : arg - trim하려는 스트링
리턴값 :
**************************************************************************/
function trim( arg ) {
var st = 0;
var len = arg.length;
//문자열앞에 공백문자가 들어 있는 Index 추출
while((st < len) && (arg.charCodeAt(st) == 32)) {
st++;
}
//문자열뒤에 공백문자가 들어 있는 Index 추출
while((st < len) && (arg.charCodeAt(len-1) == 32)) {
len--;
}
return ((st > 0) || (len < arg.length)) ? arg.substring(st, len) : arg;
}
/*************************************************************************
************************* 숫자 관련 함수 *******************************
**************************************************************************/
/*********************************************************************************
함수명 : chkNumber
기 능 : 입력 필드에 들어온 데이타가 숫자면 true, 숫자가 아니라면 false를 리턴한다.
인 수 : num - 체크하고자하는 필드값
fName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면 해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 :
**********************************************************************************/
function chkNumber(num , fName) {
var numTemp = Number(num);
var errorMesg = fName+" 값을 숫자로 입력해 주십시요!";
var nullMesg = fName+" 값을 입력해 주십시요!";
//값이 있다면
if(num != "") {
//숫자면 false반환 - if는 문자라면
if(isNaN(numTemp)) {
if("" == fName){}
else {
alert(errorMesg);
}
return false;
} else { //숫자라면.
return true;
}
} else {
if(fName == ""){}
else {
alert(nullMesg);
}
return false;
}
}
/*************************************************************************
함수명 : isNumber
기 능 : 입력값이 숫자인지를 체크
인 수 : input - 입력값
리턴값 :
**************************************************************************/
function isNumber(input) {
var chars = "0123456789";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : isNumDash
기 능 : 문자열 전체가 숫자 또는 '-' 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isNumDash(input) {
var chars = "-0123456789";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : isNumComma
기 능 : 문자열 전체가 숫자 또는 ',' 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isNumComma(input) {
var chars = ",0123456789";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : isFloat
기 능 : 입력값이 실수인지를 체크
인 수 : input - 입력값
리턴값 :
**************************************************************************/
function isFloat(input) {
var numstr = "0123456789.-";
var dotstr = ".";
var thischar;
var count = 0;
var countdot = 0;
var violation = 0;
for ( var i=0; i < input.value.length; i++ ) {
thischar = input.value.substring(i, i+1 );
if ( numstr.indexOf( thischar ) != -1 )
count++;
if ( dotstr.indexOf( thischar ) != -1 )
countdot++;
if(i==0 && thischar == '.') {
violation++;
}
if(i!=0 && thischar == '-') {
violation++;
}
}
if ( count == input.value.length && countdot <= 1 && violation == 0)
return(true);
else
return( false );
}
/*************************************************************************
함수명 : numbersonly
기 능 : 키입력 이벤트에서 숫자만 입력 가능하도록
인 수 :
리턴값 :
**************************************************************************/
function numbersonly(){
if (event.keyCode<48 || event.keyCode>57)
return false
}
/*************************************************************************
함수명 : pad_zero
기 능 : 한자리 숫자의 경우 앞에 '0'을 붙임 ('1' --> '01')
인 수 : Which - 폼 엘리먼트 네임
리턴값 :
**************************************************************************/
function pad_zero(Which) {
DaysObject = eval("document.main." + Which);
var vpn = DaysObject.value;
if (vpn.length == 1)
vpn = '0' + vpn;
DaysObject.value = vpn;
}
/*************************************************************************
함수명 : pad_zero2
기 능 : 한자리 숫자의 경우 앞에 '0'을 붙임 ('1' --> '01') - 엘리먼트 배열의 경우
인 수 : Which - 폼 엘리먼트 네임
리턴값 :
**************************************************************************/
function pad_zero2(Which,idx) {
DaysObject = eval("document.main." + Which);
try {
var vpn = DaysObject[idx].value;
if (vpn.length == 1)
vpn = '0' + vpn;
DaysObject[idx].value = vpn;
} catch (e) {
pad_zero(Which);
}
}
/*************************************************************************
함수명 : Zero2Space
기 능 : 변수의 0값을 공백으로 바꾼다. 바꾸길 원하는 대상은 숫자의 형태여야한다.
숫자,문자 체크안함.(00101 -> 101)
인 수 : SrcObj : 바뀌기전 객체(form.xx)
DstObj : 바뀐후에 값이들어가기를 원하는 객체(form.yy)
리턴값 :
**************************************************************************/
function Zero2Space(SrcObj, DstObj) {
DstObj.value = parseInt(SrcObj.value, 10);
}
/*************************************************************************
함수명 : Space2Zero
기 능 : 변수의 공백을 0으로 바꾼다. 바꾸길 원하는 대상은 숫자의 형태여야한다.
숫자,문자 체크안함.(" 101" -> "00101")
인 수 : vSrcObj - 바뀌기전 객체(form.xx)
vDstObj - 바뀐후에 값이들어가기를 원하는 객체(form.yy)
리턴값 :
**************************************************************************/
function Space2Zero(vSrcObj, vDstObj) {
vDstObj.value = vSrcObj.value.replace(/ /g, 0);
}
/*************************************************************************
함수명 : isInteger
기 능 : 숫자인지 판별
인 수 : str - 체크하고자 하는 스트링
리턴값 :
**************************************************************************/
function isInteger(str) {
if (str != "") {
for (j=0; (j<str.length); j++) {
if (((str.substring(j,j+1) < "0")||(str.substring(j,j+1) > "9"))
&& (str.substring(j,j+1)!="-")
&& (str.substring(j,j+1)!="/")
&& (str.substring(j,j+1)!=",")) {
return false;
}
}
} else {
return false;
}
return true;
}
/*************************************************************************
************************* 일자 관련 함수 *******************************
**************************************************************************/
/*************************************************************************
함수명 : isValidMonth
기 능 : 유효한(존재하는) 월(月)인지 체크
인 수 : mm - 체크하고자 하는 스트링(월)
리턴값 :
**************************************************************************/
function isValidMonth(mm) {
var m = parseInt(mm,10);
return (m >= 1 && m <= 12);
}
/*************************************************************************
함수명 : isValidDay
기 능 : 유효한(존재하는) 일(日)인지 체크
인 수 : yyyy, mm, dd - 체크하고자 하는 년, 월, 일
리턴값 :
**************************************************************************/
function isValidDay(yyyy, mm, dd) {
var m = parseInt(mm,10) - 1;
var d = parseInt(dd,10);
var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
end[1] = 29;
}
return (d >= 1 && d <= end[m]);
}
/*************************************************************************
함수명 : isValidHour
기 능 : 유효한(존재하는) 시(時)인지 체크
인 수 : hh - 체크하고자 하는 스트링(시)
리턴값 :
**************************************************************************/
function isValidHour(hh) {
var h = parseInt(hh,10);
return (h >= 0 && h <= 24);
}
/*************************************************************************
함수명 : isValidMin
기 능 : 유효한(존재하는) 분(分)인지 체크
인 수 : mi - 체크하고자 하는 스트링(분)
리턴값 :
**************************************************************************/
function isValidMin(mi) {
var m = parseInt(mi,10);
return (m >= 0 && m <= 60);
}
/**
* Time 형식인지 체크(느슨한 체크)
*/
function isValidTimeFormat(time) {
return (!isNaN(time) && time.length == 12);
}
/**
* 유효하는(존재하는) Time 인지 체크
* ex) var time = form.time.value; //'200102310000'
* if (!isValidTime(time)) {
* alert("올바른 날짜가 아닙니다.");
* }
*/
function isValidTime(time) {
var re = /-/g
time = time.replace(re,"");
var re = /:/g
time = time.replace(re,"");
var year = time.substring(0,4);
var month = time.substring(4,6);
var day = time.substring(6,8);
var hour = time.substring(8,10);
var min = time.substring(10,12);
if (parseInt(year,10) >= 1900 && isValidMonth(month) &&
isValidDay(year,month,day) && isValidHour(hour) &&
isValidMin(min)) {
return true;
}
return false;
}
/**
* 유효하는(존재하는) Time 인지 체크
* ex) var time = form.time.value; //'2001023'
* if (!isValidDate(time)) {
* alert("올바른 날짜가 아닙니다.");
* }
*/
function isValidDate(time) {
var re = /-/g
time = time.replace(re,"");
var year = time.substring(0,4);
var month = time.substring(4,6);
var day = time.substring(6,8);
if (parseInt(year,10) >= 1000 && isValidMonth(month) &&
isValidDay(year,month,day)) {
return true;
}
return false;
}
/**
* 유효하는(존재하는) Time 인지 체크
* ex) var time = form.time.value; //'2001'
* if (!isValidDate1(time)) {
* alert("올바른 날짜가 아닙니다.");
* }
*/
function isValidDate1(time) {
var re = /-/g
time = time.replace(re,"");
var year = '';
var month = '01';
var day = '01';
if (time.length >= 8) {
year = time.substring(0,4);
month = time.substring(4,6);
day = time.substring(6,8);
} else if (time.length >= 6) {
year = time.substring(0,4);
month = time.substring(4,6);
} else if (time.length >= 4) {
year = time.substring(0,4);
} else {
return false;
}
if (parseInt(year,10) >= 1000 && isValidMonth(month) &&
isValidDay(year,month,day)) {
return true;
}
return false;
}
/**
* Time 스트링을 자바스크립트 Date 객체로 변환
* parameter time: Time 형식의 String
*/
function toTimeObject(time) { //parseTime(time)
var year = time.substr(0,4);
var month = time.substr(4,2) - 1; // 1월=0,12월=11
var day = time.substr(6,2);
var hour = time.substr(8,2);
var min = time.substr(10,2);
return new Date(year,month,day,hour,min);
}
/**
* 자바스크립트 Date 객체를 Time 스트링으로 변환
* parameter date: JavaScript Date Object
*/
function toTimeString(date) { //formatTime(date)
var year = date.getFullYear();
var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
var day = date.getDate();
var hour = date.getHours();
var min = date.getMinutes();
if (("" + month).length == 1) { month = "0" + month; }
if (("" + day).length == 1) { day = "0" + day; }
if (("" + hour).length == 1) { hour = "0" + hour; }
if (("" + min).length == 1) { min = "0" + min; }
return ("" + year + month + day + hour + min)
}
/**
* Time이 현재시각 이후(미래)인지 체크
*/
function isFutureTime(time) {
return (toTimeObject(time) > new Date());
}
/**
* Time이 현재시각 이전(과거)인지 체크
*/
function isPastTime(time) {
return (toTimeObject(time) < new Date());
}
/**
* 주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴
* ex) var time = form.time.value; //'20000101000'
* alert(shiftTime(time,0,0,-100,0));
* => 2000/01/01 00:00 으로부터 100일 전 Time
*/
function shiftTime(time,y,m,d,h) { //moveTime(time,y,m,d,h)
var date = toTimeObject(time);
date.setFullYear(date.getFullYear() + y); //y년을 더함
date.setMonth(date.getMonth() + m); //m월을 더함
date.setDate(date.getDate() + d); //d일을 더함
date.setHours(date.getHours() + h); //h시를 더함
return toTimeString(date);
}
/**
* 두 Time이 몇 개월 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getMonthInterval(time1,time2) { //measureMonthInterval(time1,time2)
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var years = date2.getFullYear() - date1.getFullYear();
var months = date2.getMonth() - date1.getMonth();
var days = date2.getDate() - date1.getDate();
return (years * 12 + months + (days >= 0 ? 0 : -1) );
}
/**
* 두 Time이 며칠 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getDayInterval(time1,time2) {
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var day = 1000 * 3600 * 24; //24시간
return parseInt((date2 - date1) / day, 10);
}
/**
* 두 Time이 몇 시간 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getHourInterval(time1,time2) {
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var hour = 1000 * 3600; //1시간
return parseInt((date2 - date1) / hour, 10);
}
/**
* 현재 시각을 Time 형식으로 리턴
*/
function getCurrentTime() {
return toTimeString(new Date());
}
/**
* 현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
*/
function getRelativeTime(y,m,d,h) {
/*
var date = new Date();
date.setFullYear(date.getFullYear() + y); //y년을 더함
date.setMonth(date.getMonth() + m); //m월을 더함
date.setDate(date.getDate() + d); //d일을 더함
date.setHours(date.getHours() + h); //h시를 더함
return toTimeString(date);
*/
return shiftTime(getCurrentTime(),y,m,d,h);
}
/**
* 현재 年을 YYYY형식으로 리턴
*/
function getYear() {
/*
var now = new Date();
return now.getFullYear();
*/
return getCurrentTime().substr(0,4);
}
/**
* 현재 月을 MM형식으로 리턴
*/
function getMonth() {
/*
var now = new Date();
var month = now.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
if (("" + month).length == 1) { month = "0" + month; }
return month;
*/
return getCurrentTime().substr(4,2);
}
/**
* 현재 日을 DD형식으로 리턴
*/
function getDay() {
/*
var now = new Date();
var day = now.getDate();
if (("" + day).length == 1) { day = "0" + day; }
return day;
*/
return getCurrentTime().substr(6,2);
}
/**
* 현재 時를 HH형식으로 리턴
*/
function getHour() {
/*
var now = new Date();
var hour = now.getHours();
if (("" + hour).length == 1) { hour = "0" + hour; }
return hour;
*/
return getCurrentTime().substr(8,2);
}
/**
* 오늘이 무슨 요일이야?
* ex) alert('오늘은 ' + getDayOfWeek() + '요일입니다.');
* 특정 날짜의 요일을 구하려면? => 여러분이 직접 만들어 보세요.
*/
function getDayOfWeek() {
var now = new Date();
var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
var week = new Array('일','월','화','수','목','금','토');
return week[day];
}
/* 날짜 입력시 "-" 자동으로 붙이기 */
function check_num() { // 숫자만 입력 가능하게
if ((event.keyCode >= 48 && event.keyCode <=111)
||(event.keyCode >= 187) || (event.keyCode == 32)) {
if(event.keyCode >= 96) event.keyCode = parseInt(event.keyCode - 48);
if(isNaN(String.fromCharCode(event.keyCode))) {
event.returnValue = false;
}
}
}
function fromDate(){ // 시작 년-월-일
mainf = document.main;
var fdate = mainf.fromdate.value;
if(event.keyCode != 46 && event.keyCode != 8){
check_num();
if(fdate.length == 4 || fdate.length == 7){
if(mainf.fromdate.value.length == 4){
mainf.fromdate.value = fdate + "-";
}else if(mainf.fromdate.value.length == 7){
mainf.fromdate.value = fdate + "-";
}
return;
}
if(fdate.length == 10){
mainf.todate.focus();
return;
}
return;
}
}
function toDate(){ // 종료 년-월-일
mainf = document.main;
var tdate = mainf.todate.value;
if(event.keyCode != 46 && event.keyCode != 8){
check_num();
if(tdate.length == 4 || tdate.length == 7){
if(mainf.todate.value.length == 4){
mainf.todate.value = tdate + "-";
}else if(mainf.todate.value.length == 7){
mainf.todate.value = tdate + "-";
}
return;
}
return;
}
}
function fmt_date(input) {
if ((event.keyCode >= 48 && event.keyCode <=111)
||(event.keyCode >= 187) || (event.keyCode == 32)) {
if(event.keyCode >= 96) event.keyCode = parseInt(event.keyCode - 48);
if(!isNaN(String.fromCharCode(event.keyCode)) && input.value.length <10) {
input.value += String.fromCharCode(event.keyCode);
if (input.value.length == 4 || input.value.length == 7) {
input.value += "-";
}
}
event.returnValue = false;
}
}
function fmt_time(input) {
if ((event.keyCode >= 48 && event.keyCode <=111)
||(event.keyCode >= 187) || (event.keyCode == 32)) {
if(event.keyCode >= 96) event.keyCode = parseInt(event.keyCode - 48);
if(!isNaN(String.fromCharCode(event.keyCode)) && input.value.length <5) {
input.value += String.fromCharCode(event.keyCode);
if (input.value.length == 2) {
input.value += ":";
}
}
event.returnValue = false;
}
}
function isEmpty_date(Which) {
YearObject = eval("document.main." + Which + "1");
MonthObject = eval("document.main." + Which + "2");
DaysObject = eval("document.main." + Which + "3");
if (isEmpty(YearObject)
&& isEmpty(MonthObject)
&& isEmpty(DaysObject)){
return true;
}
return false;
}
function pad_datevalue(Which) {
YearObject = eval("document.main." + Which + "1");
MonthObject = eval("document.main." + Which + "2");
DaysObject = eval("document.main." + Which + "3");
var dateString = '';
if (YearObject.value.length == 4) {
dateString = YearObject.value + MonthObject.value + DaysObject.value;
} else {
dateString = '0001';
}
return dateString;
}
/*************************************************************************
함수명 : chkFromToDay
기 능 : 기간을 체크
인 수 : frYyyy - 시작기간의 년
frMmm - 시작기간의 월
frDdd - 시작기간의 일
toYyyy - 끝기간의 년
toMm - 끝기간의 월
toDd - 끝기간의 일
chkNull - null check여부 "Y"=null체크함, "N"=null체크안함.
frName, toName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면
해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 : 시작기간과 끝기간이 빈값이 경우 true 반환
시작기간과 끝기간이 들어가고 (시작기간 <= 끝기간) 이 경우 true 반환
그외의 경우 false 반환
**************************************************************************/
function chkFromToDay(frYyyy,frMm,frDd,toYyyy,toMm,toDd,chkNull,frName, toName) {
if (eval(frYyyy+frMm+frDd)==0 && eval(toYyyy+toMm+toDd)==0) {
return true;
} else {
var date1 = chkYyyyMmDd(frYyyy, frMm, frDd, chkNull, frName);
var date2 = chkYyyyMmDd(toYyyy, toMm, toDd, chkNull, toName);
var gap = eval(date2) - eval(date1); // 받아온 날짜값을 숫자로 바꾼후 계산한다
// 종료일자에서 시작일자를 뺀값이 0보다 적다면(시작일자가 크다면)
if(gap < 0 ) {
return false;
}
return true;
}
}
/*************************************************************************
함수명 : chkDay
기 능 : 일 체크 function
인 수 : vDay - 체크하고자 하는 일
chkNull - null check여부 "Y"=null체크함, "N"=null체크안함.
fName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면 해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 :
**************************************************************************/
function chkDay(vDay, chkNull, fName) {
if( trim(vDay) == "" ) {
if( chkNull == "N" || chkNull == "n" ) {
return true;
}
if("" == fName){}
else {
alert(fName + "(을)를 반드시 입력 또는 선택하여야 합니다.");
}
return false;
}
if(isNaN(vDay) || vDay > 31 || vDay == 0) {
if("" == fName){}
else {
alert(fName+" 필드는 1-31값만 허용합니다.");
}
return false;
}
if(vDay.length == 1) return "0"+vDay;
return vDay;
}
/*************************************************************************
함수명 : chkMonth
기 능 : 월 체크 function
인 수 : vMonth - 체크하고자 하는 월
chkNull - null check여부 "Y"=null체크함, "N"=null체크안함.
fName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면 해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 :
**************************************************************************/
function chkMonth(vMonth, chkNull, fName) {
if( trim(vMonth) == "" ) {
if( chkNull == "N" || chkNull == "n" ) {
return true;
}
if("" == fName){}
else {
alert(fName + "(을)를 반드시 입력 또는 선택하여야 합니다.");
}
return false;
}
if(isNaN(vMonth) || vMonth > 12 || vMonth == 0) {
if("" == fName){}
else {
alert(fName+" 필드는 1-12값만 허용합니다.");
}
return false;
}
if(vMonth.length == 1) return "0"+vMonth;
return vMonth;
}
/*************************************************************************
함수명 : chkYear
기 능 : 년 체크 function
인 수 : vYear - 체크하고자 하는 년도
chkNull - null check여부 "Y"=null체크함, "N"=null체크안함.
fName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면 해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 :
**************************************************************************/
function chkYear(vYear, chkNull, fName) {
var yearTemp = Number(vYear);
var errorMesg = fName + "값을 숫자로 입력해 주십시요!";
var isYearMsg = "년도를 4 자리로 입력하시기 바랍니다";
var yearCheckMsg = "년도를 확인하시기 바랍니다";
if( trim(vYear) == "" ) {
if( chkNull == "N" || chkNull == "n" ) {
return true;
}
if("" == fName){}
else {
alert(fName + "(을)를 반드시 입력 또는 선택하여야 합니다.");
}
return false;
}
if(isNaN(yearTemp)) {
if("" == fName){}
else {
alert(errorMesg);
}
return false;
} else if(vYear.length != 4) {
if("" == fName){}
else {
alert(isYearMsg);
}
return false;
} else {
if (yearTemp < 1900) {
alert(yearCheckMsg);
return false;
} else {
return vYear;
}
}
}
/*************************************************************************
함수명 : chkYyyyMmDd
기 능 : 년월일을 체크하는 Function
인 수 : vYear - 체크하고자 하는 년도
vMonth - 체크하고자 하는 월
vDay - 체크하고자 하는 일
chkNull - null check여부 "Y"=null체크함, "N"=null체크안함.
fName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면 해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 :
**************************************************************************/
function chkYyyyMmDd(vYear, vMonth, vDay, chkNull, fName) {
var date = "";
var errorMesg1 = fName + "의 년도에 정확한 값을 넣어주십시오!예) 2001";
var errorMesg2 = fName + "의 월에 정확한 값을 넣어주십시오!예) 2001/01/31";
var errorMesg3 = fName + "의 일자에 정확한 값을 넣어주십시오!예) 2001/01/31";
//년도의 4자리수 체크
if( vYear.length != 4 ) {
if("" == fName){}
else {
alert(errorMesg1);
}
return false;
}
//월이 두자리가 아닐경우 앞에 "0"을 붙여서 두자리로 만듬"
if(vMonth < 10 && vMonth.indexOf(0) == -1 ) {
vMonth = "0" + vMonth;
}
//일이 두자리가 아닐경우 앞에 "0"을 붙여서 두자리로 만듬"
if(vDay < 10 && vDay.indexOf(0) == -1 ) {
vDay = "0" + vDay;
}
date = vYear + vMonth + vDay;
if( date.length != 8 || date.length == 0 ) {
if( chkNull == "N" || chkNull == "n" ) {
return true;
}
if("" == fName){}
else {
alert(fName + "(을)를 반드시 입력 또는 선택하여야 합니다.");
}
return false;
}
//날짜가 숫자인지 체크
if( !chkNumber(date, fName)) {
return false;
}
// 월이 12 보다 큰 수가 있는지 체크
if(vMonth > 12 || vMonth == 0) {
if("" == fName){}
else {
alert(errorMesg2);
}
return false;
}
// 일 체크
if(vMonth == 01 || vMonth == 03 || vMonth == 05 || vMonth == 07 || vMonth == 08 || vMonth == 10 || vMonth == 12) {
if(vDay > 31 || vDay == 0) {
if("" == fName){}
else {
alert(errorMesg3);
}
return false
}
} else if(vMonth == 02) { //윤년 조사
if(((vYear % 4 == 0) && (vYear % 100 != 0)) || (vYear % 400 == 0)) {
if(vDay > 29 || vDay == 0) {
if("" == fName){}
else {
alert(errorMesg3);
}
return false;
}
} else {
if(vDay > 28 || vDay == 0) {
if("" == fName){}
else {
alert(errorMesg3);
}
return false
}
}
} else if(vMonth == 04 || vMonth == 06 || vMonth == 09 || vMonth == 11) {
if(vDay > 30 || vDay == 0) {
if("" == fName){}
else {
alert(errorMesg3);
}
return false
}
}
return true;
}
/*************************************************************************
함수명 : cntDayYyyyMmDd
기 능 : 기간 사이의 일수 Count
인 수 : frYyyyMmDd - 시작 년월일
toYyyyMmDd - 종료 년월일
frDdHh24Ss - 시작 시간
toDdHh24Ss - 종료 시간
리턴값 :
**************************************************************************/
function cntDay ( frYyyyMmDd, toYyyyMmDd, frDdHh24Ss, toDdHh24Ss ) {
var frDdHh24SsTmp = ( frDdHh24Ss == null || frDdHh24Ss == "" || isNaN ( frDdHh24Ss ) ) ? "000000" : frDdHh24Ss;
var toDdHh24SsTmp = ( toDdHh24Ss == null || toDdHh24Ss == "" || isNaN ( toDdHh24Ss ) ) ? "000000" : toDdHh24Ss;
var frDt = new Date( frYyyyMmDd.substring(0, 4), frYyyyMmDd.substring(4, 6) - 1,
frYyyyMmDd.substring(6, 8), frDdHh24SsTmp.substring(0, 2),
frDdHh24SsTmp.substring(2, 4), frDdHh24SsTmp.substring(4, 6));
var toDt = new Date( toYyyyMmDd.substring(0, 4), toYyyyMmDd.substring(4, 6) - 1,
toYyyyMmDd.substring(6, 8), toDdHh24SsTmp.substring(0, 2),
toDdHh24SsTmp.substring(2, 4), toDdHh24SsTmp.substring(4, 6));
var tmp = toDt.getTime() - frDt.getTime();
var dayCnt = ( tmp / 24 / 60 / 60 / 1000 );
dayCnt = dayCnt + 1;
return dayCnt;
}
/*************************************************************************
함수명 : addDays
기 능 : srcDate에서 days 후의 년월일을 반환
인 수 : srcDate - 기준 년월일
days - 경과일수
리턴값 :
**************************************************************************/
function addDays(srcDate, days) {
//var srcDate = srcDate.getTime();
var srcDate = new Date(srcDate);
var srcTime = srcDate.getTime();
var destDateTmp1 = new Date( srcTime + (days * 86400000));
var destDateYear = destDateTmp1.getFullYear();
var destDateMonth = destDateTmp1.getMonth() + 1;
var destDateDay = destDateTmp1.getDate();
var destDateTmp2 = "" + destDateYear;
if (destDateMonth < 10) {
destDateTmp2 = destDateTmp2 + "0" + destDateMonth;
} else {
destDateTmp2 = destDateTmp2 + destDateMonth;
}
destDateTmp2 = destDateTmp2 + destDateDay;
var destDate = formatDate(destDateTmp2, "/");
return destDate;
}
/*************************************************************************
함수명 : formatDate
기 능 : YYYYMMDD -> YYYY/MM/DD로 변경
인 수 : sdate - 년월일(YYYYMMDD)
vformat - format String
리턴값 :
**************************************************************************/
function formatDate(sdate, vFormat) {
var fmtDate = "";
if(sdate.length == 8) {
fmtDate = sdate.substring(0, 4) + vFormat + sdate.substring(4, 6)
+ vFormat + sdate.substring(6, 8);
} else if (sdate.length == 6) {
fmtDate = sdate.substring(0, 4) + vFormat + sdate.substring(4, 6);
}
return fmtDate;
}
/*************************************************************************
함수명 : lastDay
기 능 : 해당 년월의 마지막 날짜 구하는 함수
인 수 : calYear - 해당 년도
calMonth - 해당 월
리턴값 :
**************************************************************************/
function lastDay(calYear,calMonth) {
if (((calYear %4 == 0) && (calYear % 100 != 0))||(calYear % 400 == 0))
endDayOfMonth[1] = 29;
var nDays = endDayOfMonth[calMonth-1];
return nDays;
}
/*************************************************************************
************************* 금액 관련 함수 *********************************
**************************************************************************/
function removeComma(input) {
return input.value.replace(/,/gi,"");
}
function insertComma(str) {
str = str + "";
var tmpStr = str+"";
var underComma = "";
if (str.indexOf(".") >=0) {
tmpStr = str.substring(0,tmpStr.indexOf("."));
underComma = "."+str.substring(str.indexOf(".")+1, str.length);
}
var len = tmpStr.length;
var resultValue = "";
var sign = "";
if (str.substring(0,1) == "-") {
sign = "-";
len = len -1;
tmpStr = tmpStr.substring(1);
}
for (var i=0 ; i<len ; i++) {
if (i > 0 && (i % 3) == 0 )
resultValue = "," + resultValue;
resultValue = tmpStr.charAt(len - 1 - i) + resultValue;
}
return sign+resultValue+underComma;
}
/*************************************************************************
함수명 : fmtAmount
기 능 : 숫자 스트링에 "," format을 줌
인 수 : str - formatting하고자 하는 스트링
리턴값 :
**************************************************************************/
function fmtAmount(str) {
var saveStr = "" + str;
if (saveStr.length < 4) return str;
var revStr = reverseStr(saveStr);
var newStr = '';
for (var i=0;i<revStr.length;i++) {
if (i>0 && (i%3)==0) newStr += ',';
newStr += revStr.charAt(i);
}
return reverseStr(newStr);
}
/*************************************************************************
함수명 : delFmtAmount
기 능 : 숫자 스트링에서 ","을 제거함
인 수 : str - 변환대상 스트링
리턴값 :
**************************************************************************/
function delFmtAmount(str) {
str = rmChar(str, ',');
if (!chkNumber(str, "")) return false;
return str;
}
/*************************************************************************
함수명 : roundAllFloat
기 능 : 실수 중 지정된 소수점 이하 자리 올림
인 수 : floatNum - 처리대상 실수
intPosition - 올림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundAllFloat( floatNum, intPosition ) {
var decimalPosition = Math.pow( 10.0, intPosition );
var returnValue = ( Math.ceil( floatNum * decimalPosition ) ) / decimalPosition ;
return returnValue;
}
/*************************************************************************
함수명 : roundHalfFloat
기 능 : 실수 중 지정된 소수점 이하 자리 반올림
인 수 : floatNum - 처리대상 실수
intPosition - 반올림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundHalfFloat( floatNum, intPosition ) {
var decimalPosition = Math.pow( 10.0, intPosition );
var returnValue = ( Math.round( floatNum * decimalPosition ) ) / decimalPosition ;
return returnValue;
}
/*************************************************************************
함수명 : roundCutFloat
기 능 : 실수 중 지정된 소수점 이하 자리 버림
인 수 : floatNum - 처리대상 실수
intPosition - 버림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundCutFloat( floatNum, integerNum ) {
//var sTargetFloat = Float.toString(floatNum);
//var stk = new StringTokenizer(sTargetFloat, ".");
//var stk = new StringTokenizer(floatNum, ".");
//var sIntPart = stk.nextToken();
//var sFloPart = stk.nextToken();
//if(integerNum > sFloPart.length()) return floatNum;
//sFloPart = sFloPart.substring(0, integerNum);
//var sReturnFloat = sIntPart + "." + sFloPart;
//return Float.parseFloat(sReturnFloat);
var vPeriodPos = floatNum.toString().indexOf(".");
var sIntPart = floatNum.toString().substring(0, vPeriodPos);
var sFloPart = floatNum.toString().substring(vPeriodPos + 1);
if(vPeriodPos == -1) return floatNum;
sFloPart = sFloPart.substring(0, integerNum);
var sReturnFloat = sIntPart + "." + sFloPart;
return parseFloat(sReturnFloat);
}
/*************************************************************************
함수명 : toMoney
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다.
인 수 : text 박스명
리턴값 : 없음
**************************************************************************/
function toMoney(vObj)
{
var txtObj = rmChar(vObj.value, ",");
if(isNaN(txtObj))
{
alert("숫자를 입력하십시오."); vObj.focus(); return;
}
var sObj = Number(!txtObj?0:txtObj);
vObj.value = fmtAmount(sObj);
}
/*************************************************************************
함수명 : formatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - 숫자를 입력하는 text Object
hanObj - 한글로 표시해줄 Text Object
howManyUnderDot - 소숫점 이하 자리수(소수점이하입력받지 않을 시에는 입력하지말것)
리턴값 : 없음
**************************************************************************/
function formatNumber(numObj,hanObj,howManyUnderDot)
{
//문자열에서 컴마를 없앰
var txtObj = rmChar(numObj.value, ",");
if(txtObj == ""){
if(hanObj != null) hanObj.value = "";
return;
}
if(isNaN(txtObj)){
alert("숫자를 입력하십시오."); numObj.value = ""; numObj.focus(); return;
}
var dotPoint = getPointOfDot(txtObj);
if(dotPoint == null){ // 정수형으로입력한경우
var longPart = Number(!txtObj?0:txtObj);
numObj.value = fmtAmount(longPart);
}else{ // 소숫점 포함
if(howManyUnderDot == null || howManyUnderDot == "" || howManyUnderDot == 0){
alert("소숫점을 입력할 수 없습니다.");
return;
}
var longPart = Number(!txtObj.substring(0,dotPoint)?0:txtObj.substring(0,dotPoint));
var underDotPart = txtObj.substring(dotPoint+1);
if(underDotPart.length > howManyUnderDot){
alert("소숫점 이하 "+howManyUnderDot+"번째 자리까지 입력 가능합니다.");
underDotPart = underDotPart.substring(0,howManyUnderDot);
}
numObj.value = fmtAmount(longPart)+"."+underDotPart;
}
// 한글로표시해줄 텍스트박스를 넘겨준 경우 한글로 표시해준다.
if(hanObj != null){
// 소숫점 이상 부분 한글변환
hanObj.value = longPart;
var hanLongPart = convHanAMT(hanObj.value);
// 소숫점 이하 부분 한글변환
if(underDotPart != null){
hanObj.value = underDotPart;
var hanUnderDotPart = convHanAMT(hanObj.value);
}
// 합쳐서 Display
if(longPart != "") hanObj.value = hanLongPart + "원";
if(underDotPart != null && underDotPart != "" && underDotPart != "0" && underDotPart != "00") hanObj.value = hanObj.value + " " + hanUnderDotPart + "전";
}
}
function getPointOfDot(str)
{
for(var i=0; i<str.length; i++){
if(str.substring(i,i+1) == ".") return i;
}
}
function bidTrimLastDot(numObj)
{
var txtObj = numObj.value;
if(txtObj == "") return;
if(txtObj.substring(txtObj.length-1,txtObj.length) == "."){
numObj.value = txtObj.substring(0,txtObj.length-1);
}
}
/*************************************************************************
함수명 : unformatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - Formatted된 숫자가 들어 있는 text Object
리턴값 : 없음
**************************************************************************/
function unformatNumber(numObj)
{
numObj.value = rmChar(numObj.value,",");
}
/*************************************************************************
함수명 : unformatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - Formatted된 숫자가 들어 있는 text Object
리턴값 : unformatted 문자열
**************************************************************************/
function getUnformatNumber(numObj)
{
var str = numObj.value;
str = rmChar(str,",");
return str;
}
/*************************************************************************
함수명 : calc()
기 능 : 해당 수식의 결과를 정확히 계산해서 원하는 자리에서 절사하는 함수
인 수 : expression - 해당 수식
digit - 절사 위치
리턴값 :
**************************************************************************/
function calc(expression, digit) {
var vRetVal;
var n;
vRetVal = String(eval(expression));
if (vRetVal.length > 16) {
n=vRetVal.indexOf(".");
if (n > 0) n=vRetVal.length-n-2;
if (n > 0) vRetVal=Math.round(eval(vRetVal)*Math.pow(10, n))/Math.pow(10, n);
}
vRetVal = roundCutFloat(vRetVal, digit);
return vRetVal;
}
/*************************************************************************
함수명 : calcRound()
기 능 : 해당 수식의 결과를 정확히 계산해서 원하는 자리에서 반올림하는 함수
인 수 : expression - 해당 수식
digit - 절사 위치
리턴값 :
**************************************************************************/
function calcRound(expression, digit) {
var vRetVal;
var n;
vRetVal = String(eval(expression));
if (vRetVal.length > 16) {
n=vRetVal.indexOf(".");
if (n > 0) n=vRetVal.length-n-2;
if (n > 0) vRetVal=Math.round(eval(vRetVal)*Math.pow(10, n))/Math.pow(10, n);
}
vRetVal = roundHalfFloat(vRetVal, digit);
return vRetVal;
}
/*************************************************************************
************************* 기타 함수 ************************************
**************************************************************************/
function isValidFormat(input,format) {
if (input.value.search(format) != -1) {
return true;
}
return false;
}
function isValidFormat2(str,format) {
if (str.search(format) != -1) {
return true;
}
return false;
}
function isValidEmail(input) {
var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
return isValidFormat(input,format);
}
function isValidZip(input) {
var tel_no = input.split("-");
if (tel_no[0] == "" && tel_no[1] == "" && tel_no[2] == "") {
return true;
}else if (isNaN(tel_no[0]) || isNaN(tel_no[1]) || isNaN(tel_no[2])) {
return false;
}else if (tel_no[0].length < 2 || tel_no[1].length < 3 || tel_no[2].length < 4) {
return false;
} else {
return true;
}
}
function isValidPhone(input) {
var tel_no = input.split("-");
if (tel_no[0] == "" && tel_no[1] == "" && tel_no[2] == "") {
return true;
}else if (isNaN(tel_no[0]) || isNaN(tel_no[1]) || isNaN(tel_no[2])) {
return false;
}else if (tel_no[0].length < 2 || tel_no[1].length < 3 || tel_no[2].length < 4) {
return false;
} else {
return true;
}
}
function hasCheckedRadio(input) {
if (input.length > 1) {
for (var inx = 0; inx < input.length; inx++) {
if (input[inx].checked) return true;
}
} else {
if (input.checked) return true;
}
return false;
}
function getRadioValue(input) {
if (input.length > 1) {
for (var inx = 0; inx < input.length; inx++) {
if (input[inx].checked) return input[inx].value;
}
} else {
if (input.checked) return input.value;
}
return "";
}
function hasCheckedBox(input) {
return hasCheckedRadio(input);
}
function getByteLength(input) {
var byteLength = 0;
for (var inx = 0; inx < input.value.length; inx++) {
var oneChar = escape(input.value.charAt(inx));
if ( oneChar.length == 1 ) {
byteLength ++;
} else if (oneChar.indexOf("%u") != -1) {
byteLength += 2;
} else if (oneChar.indexOf("%") != -1) {
byteLength += oneChar.length/3;
}
}
return byteLength;
}
function getByteLengthVal(input_val) {
var byteLength = 0;
for (var inx = 0; inx < input_val.length; inx++) {
var oneChar = escape(input_val.charAt(inx));
if ( oneChar.length == 1 ) {
byteLength ++;
} else if (oneChar.indexOf("%u") != -1) {
byteLength += 2;
} else if (oneChar.indexOf("%") != -1) {
byteLength += oneChar.length/3;
}
}
return byteLength;
}
function cnt_checkbox(form){
var count = 0
for (var i = 0; i < form.elements.length; i++){
var e = form.elements[i];
if (e.type == 'checkbox')
{
if (e.checked) {
count++;
}
}
}
return count;
}
function chk_all_checkbox(form){
var count = 0
for (var i = 0; i < form.elements.length; i++){
var e = form.elements[i];
if (e.type == 'checkbox')
{
e.checked = true;
}
}
return count;
}
function unchk_all_checkbox(form){
var count = 0
for (var i = 0; i < form.elements.length; i++){
var e = form.elements[i];
//alert(e.type);
if (e.type == 'checkbox')
{
e.checked = false;
}
}
return count;
}
function set_readonly(obj) {
obj.readOnly = true;
}
function release_readonly(obj) {
obj.readOnly = false;
}
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
try {
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();
}
} catch(e) {}
return true;
}
function containsElement(arr, ele) {
var found = false, index = 0;
try {
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
} catch(e) {}
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
try {
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
} catch(e) {}
return index;
}
function isObject(object_key) {
try {
document.all[object_key].value;
return true;
}catch(e) {
return false;
}
}
/*************************************************************************
함수명 : delSpaceNum
기 능 : string을 입력받아 공백제거하고 순수 숫자열만 return
인 수 : str은 check 될 string
리턴값 : String/ 문자일경우 false return
**************************************************************************/
function delSpaceNum(str) {
var i = 0; // looping을 돌기위해 필요한 임시변수
var returnStr = ""; // 반환값을 저장시킬 변수
var len = str.length; // 파라메터의 문자열 길이를 담아주는 변수
// string을 한글자씩 비교하는 while문
while (i<len) {
var sub = str.substring(i,i+1) // 한글자를 잘라옴
var code = sub.charCodeAt(0) // 잘라온 글자의 아스키코드를 담아주는 변수
//한글자씩 잘라온 것이 공백인지를 검사하는 if문
if (code==32) {
} else {
var returnStr = returnStr + sub;
// 전화번호 값이 문자인 경우 return false 시킴
if (code < 48 || code > 57) {
return false;
}
}
i++;
}
return returnStr;
}
/*************************************************************************
함수명 : chkStrLen
기 능 : 입력 필드에 들어온 데이타의 크기를 계산
인 수 : data - 입력 필드에 들어온 데이타
리턴값 :
**************************************************************************/
function chkStrLen(data) {
var size = 0;
var fieldSize = "";
fieldSize = data.length;
for(i=0; i<fieldSize; i++) {
//특수 문자 체크 ",&,$
//if( data.charCodeAt(i) == 34 || data.charCodeAt(i) == 38 || data.charCodeAt(i) == 36 || data.charCodeAt(i) == 39) {
// return false;
//}
//한글이 들어오면 255보다 크다
if( data.charCodeAt(i) > 255 ) {
//size += 2;
size += 3;
} else {
size += 1;
}
}
return size;
}
/*************************************************************************
함수명 : chkStr
기 능 : 입력 필드에 들어온 데이타의 크기를 계산과 특수문자를 체크
인 수 : data - 입력 필드에 들어온 데이터
maxSize - 입력필드의 최대크기
chkNull - null check여부 "Y"=null체크함, "N"=null체크안함.
fName - alert메세지를 뿌려줄것인지 구분 메세지를 넣어주면 해당메세지와 함께 alert창이 뜨고
- 메세지를 넣어주지않으면 alert창이 뜨지 않는다.
리턴값 :
**************************************************************************/
function chkStr(data , maxSize, chkNull, fName) {
var size = 0;
var fieldSize = "";
var errorMesg = fName + "에 입력 하신 값이 너무 큽니다!";
if( trim(data) == "" ) {
if( chkNull == "N" || chkNull == "n" ) {
return true;
}
if("" == fName){}
else {
alert(fName + "(을)를 반드시 입력 또는 선택하여야 합니다.");
}
return false;
}
fieldSize = data.length;
if( chkSpecialChar(data, chkNull, fName )) { // 특수문자가 없을때는 true를 리턴함.
fieldSize = data.length;
for(i=0; i<fieldSize; i++) {
//한글이 들어오면 255보다 크다
if( data.charCodeAt(i) > 255 ) {
//size += 2;
size += 3;
} else {
size += 1;
}
}
if( maxSize < size ) {
//메세지가 없으면 alert을 뿌려주지 않겠다.
if("" == fName){}
else {
alert(errorMesg);
}
return false;
} else {
return true;
}
} // if checkSpecialChar(data) == true end
else {
//메세지가 없으면 alert을 뿌려주지 않겠다.
if("" == fName){}
else {
}
return false;
}// if checkSpecialChar(data) == false end
return true;
}
/*********************************************************************************
함수명 : chkRegNo
기 능 : 사업자등록번호 체크 함수
인 수 : str1 - 사업자등록번호 앞 3자리
str2 - 사업자등록번호 중간 2자리
str3 - 사업자등록번호 뒷 5자리
리턴값 :
**********************************************************************************/
function chkRegNo(str1, str2, str3) {
if (chkNumber(str1, "")) return false;
if (chkNumber(str2, "")) return false;
if (chkNumber(str3, "")) return false;
var i;
var iSum = 0;
var L11,L12,L13;
var L21,L22;
var L31,L32,L33,L34,L35;
if (isInteger(str1) && isInteger(str2) && isInteger(str3)) {
L11 = parseInt(str1.substring(0,1));
L12 = parseInt(str1.substring(1,2));
L13 = parseInt(str1.substring(2,3));
L21 = parseInt(str2.substring(0,1));
L22 = parseInt(str2.substring(1,2));
L31 = parseInt(str3.substring(0,1));
L32 = parseInt(str3.substring(1,2));
L33 = parseInt(str3.substring(2,3));
L34 = parseInt(str3.substring(3,4));
L35 = parseInt(str3.substring(4,5));
iSum = (L11*1)%10 + (L12*3)%10 + (L13*7)%10 + (L21*1)%10 + (L22*3)%10 + (L31*7)%10 + (L32*1)%10 + (L33*3)%10;
var i = (L34*5).toString();
var tmp = 0;
if (i < 10 ) tmp = 0;
else tmp = parseInt(i.substring(0,1));
iSum = iSum + (tmp + (i%10));
iSum = iSum%10;
}
if ( ((10-iSum)%10) != parseInt(L35) ) {
return false;
}
return true;
}
//법인등록번호 체크
function vndr_reg_no_chk(vndr_reg_no1,vndr_reg_no2,vndr_reg_no3){
var v_vndr_reg_no1 = 0;
var v_vndr_reg_no2 = 0;
var v_vndr_reg_no3 = 0;
var v_vndr_reg_no4;
var vndr_reg_chk;
var str= vndr_reg_no1 + vndr_reg_no2 + vndr_reg_no3;
var j = 0;
object = new Array(13)
for(var i=0;i < 12;i++) {
++j;
object[i] = str.substring(i,i+1)
if ( j % 2 == 0 )
v_vndr_reg_no1 = v_vndr_reg_no1 + parseInt(object[i]) * 2;
else
v_vndr_reg_no1 = v_vndr_reg_no1 + parseInt(object[i]) * 1;
}
v_vndr_reg_no2 = Math.floor(v_vndr_reg_no1 / 10); //몫
v_vndr_reg_no3 = parseInt(v_vndr_reg_no1 % 10); //나머지
var chkdigit = str.substring(12, 13); //오류검색번호
vndr_reg_chk = 10 - v_vndr_reg_no3;
if ( vndr_reg_chk == 10 ) vndr_reg_chk = 0;
if ( chkdigit == vndr_reg_chk ) {
return true;
}
else {
return false;
}
}
/*********************************************************************************
함수명 : chkJuminNo
기 능 : 주민번호 체크 함수
인 수 : str1 - 주민번호 앞자리
str2 - 주민번호 뒷자리
리턴값 :
**********************************************************************************/
function chkJuminNo(str1, str2) {
if (chkNumber(str1, "") == false) return false;
if (chkNumber(str2, "") == false) return false;
var x, y, z;
var L11,L12,L13,L14,L15,L16;
var L21,L22,L23,L24,L25,L26,L27;
L11 = parseInt(str1.substring(0,1));
L12 = parseInt(str1.substring(1,2));
L13 = parseInt(str1.substring(2,3));
L14 = parseInt(str1.substring(3,4));
L15 = parseInt(str1.substring(4,5));
L16 = parseInt(str1.substring(5,6));
L21 = parseInt(str2.substring(0,1));
L22 = parseInt(str2.substring(1,2));
L23 = parseInt(str2.substring(2,3));
L24 = parseInt(str2.substring(3,4));
L25 = parseInt(str2.substring(4,5));
L26 = parseInt(str2.substring(5,6));
L27 = parseInt(str2.substring(6,7));
x = (L11*2) + (L12*3) + (L13*4) + (L14*5) + (L15*6) + (L16*7) + (L21*8) + (L22*9) + (L23*2) + (L24*3) + (L25*4) + (L26*5);
y = x % 11;
z = 11 - y;
if (z == 10) z = 0;
else if (z == 11) z = 1;
if (z == parseInt(str2.substring(6,7))) {
return true;
} else {
return false;
}
return false;
}
/*************************************************************************
************************* 팝업 관련 함수 *************************
**************************************************************************/
/*********************************************************************************
함수명 : openWindow
기 능 : 윈도우 띄우기
인 수 : theURL - Source
winName - 윈도우 명
feature - 윈도우 properties('width=530,height=450')
리턴값 :
**********************************************************************************/
function openWindow(theURL, winName, feature) {
var tmp_focus;
if (feature=="" || feature==null) {
tmpFocus = window.open(theURL, winName );
} else {
tmpFocus = window.open(theURL, winName, feature );
}
tmpFocus.focus();
}
/*********************************************************************************
함수명 : openWinSize
기 능 : 윈도우 띄우기
인 수 : theURL - Source
winName - 윈도우 명
winWifth - 윈도우 가로크기
winHeight - 윈도우 세로크기
리턴값 :
**********************************************************************************/
function openWinSize(theURL, winName, winWidth, winHeight) {
var tmp_focus;
var winSize;
if ((winWidth=="" || winWidth==null) && (winHeight=="" || winHeight==null)) {
tmpFocus = window.open(theURL, winName );
}
else {
if (winWidth=="" || winWidth==null)
winSize = "height="+winWidth;
else if (winHeight=="" || winHeight==null)
winSize = "height="+winWidth;
else
winSize = "width="+winWidth+",height="+winWidth;
tmpFocus = window.open(theURL, winName, winSize );
}
tmpFocus.focus();
}
/*************************************************************************
************************* 이미지 팝업 관련 함수 *************************
**************************************************************************/
// function imageAutoResize(img){
// img1= new Image();
// img1.src=(img);
// imgControll(img);
//}
function imageAutoResize(image_URL){
full_image = new Image();
full_image["src"] = image_URL;
// Netscape 때문에 다음 코드를 넣어줌
//var str = "";
//for (var propName in full_image) {
// str += propName + ":" + full_image[propName] + ", ";
//}
//alert(str);
i = 0;
img_width = 0;
img_height = 0;
var str = "";
// Netscape 때문에 Loop 넣어줌
do {
i += 1;
img_width = full_image["width"];
img_height = full_image["height"];
str += i + "= width:" + img_width + ", height:" + img_height + "\n";
} while(i < 40 && (img_width == "0" || img_height == "0"));
if(img_width == "0" || img_height == "0")
{
img_width = 600;
img_height = 500
}
else
{
if(img_width > 660)
img_width = 660;
if(img_height > 500)
img_height = 500;
img_width += 40;
img_height += 45;
}
var full_win = window.open(image_URL, "full_image_win", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=yes,Width="+img_width+",Height="+img_height);
full_win.focus();
}
function imgControll(img){
if((img1.width!=0)&&(img1.height!=0)){
viewImage(img);
}
else{
controller="imgControll('"+img+"')";
intervalID=setTimeout(controller,20);
}
}
function viewImage(img){
W=img1.width;
H=img1.height;
O="width="+W+",height="+H;
imgWin=window.open("","",O);
imgWin.document.write("<html><head><title>확대보기</title></head>");
imgWin.document.write("<body topmargin=0 leftmargin=0>");
imgWin.document.write("<img src='"+img+"' omclick='self.close()'>");
imgWin.document.close();
}
/*********************************************************************************
함수명 : emailCheck (2003.07.08추가)
기 능 : 이메일체크
인 수 : input - 폼필드
리턴값 :true면 유효한 메일주소
**********************************************************************************/
function emailCheck (input) {
emailObj=input;
emailStr = emailObj.value;
if(emailStr == "")
{
alert ( "이메일을 입력해 주세요" );
emailObj.focus();
return false;
}
var checkTLD=0;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert("이메일주소가 유효하지 않습니다.\n\n다시 입력해 주세요");
emailObj.select();
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("메일주소에 유효하지 않은 문자가 있습니다.\n\n다시 입력해 주세요");
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("도메인이름에 유효하지 않은 문자가 있습니다.\n\n다시 입력해 주세요");
return false;
}
}
if (user.match(userPat)==null) {
alert("사용자 이름이 유효하지 않습니다.");
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("IP주소가 유효하지 않습니다.");
return false;
}
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("유효하지 않은 도메인명입니다.");
return false;
}
}
if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("도메인명 확장자가 유효하지 않습니다.");
return false;
}
if (len<2) {
alert("호스트명이 메일주소에 포함되지 않았습니다.");
return false;
}
return true;
}
/*********************************************************************************
함수명 : filenameSpaceCheck (2003-08-27 2:31오후 추가)
기 능 : 파일명 공백 들어가지 못하게 막는다
인 수 : input - 폼필드
리턴값 :true면 유효한 파일명
**********************************************************************************/
function filenameSpaceCheck (VInput,msg) {
obj=VInput;
str = obj.value;
if(str!=""){
var s1 = trim(str);
s1 = s1.substring(s1.lastIndexOf("\\")+1,s1.length);
if(msg==""){
msg = "파일명에 공백이 있습니다.\n\n첨부파일은 공백없이 등록하십시요.\n\n파일명-->" + s1 ;
}
for (i=0; i<s1.length; i++) {
if (s1.charCodeAt(i)==32) {
alert(msg);
return false;
break;
}
}
}
return true;
}
'Programming > Java Script' 카테고리의 다른 글
[스크랩] 숫자 관련 함수 (0) | 2010.03.26 |
---|---|
[스크랩] 날짜 관련 함수 (0) | 2010.03.26 |
[스크랩] 금액 관련 함수 (0) | 2010.03.26 |
[스크랩] 기타 유틸 함수 (0) | 2010.03.26 |
[스크랩] 팝업 관련 함수 (0) | 2010.03.26 |
항상따라다니는 Div창 & 자동 창 크기 설정 스크립트 (0) | 2010.03.23 |
Window 객체 속성 (0) | 2010.03.23 |
윈도우 창 크기 알아오기 (0) | 2010.03.22 |
Asp.Net 에서 페이지 따라 댕기기 (0) | 2010.02.24 |
정규화 표현 2 (0) | 2010.02.19 |