// Set parent window’s hidden field value from child window
window.opener.document.getElementById(Client ID of Hidden Field).value = Selected IDs;

// raise button click event of parent window
window.opener.document.getElementById(Client ID Of Button).click();

// Close the child window
close();

Fig – (1) Javascript on child window to raise button click event on parent window

I had written this script on child page. Tis will raise button click event and in post back I wrote the logic of retrieving data from database for IDs set in hidden field and displayed them in grid.

Now the second way, call javascript function of parent window from child window.

<script language="Javascript" type="text/javascript">
    function CallAlert()
    {
        alert("This is parent window's alert function.");
    }
</script>

Fig – (2) Javascript on parent window.

<script language="Javascript" type="text/javascript">

    function SetParentWindowsHiddenFieldValue()
    {
        window.opener.document.getElementById("HiddenField1").value =
                            document.getElementById("TextBox1").value;
        return false;
    } 

    function CallParentWindowFunction()
    {
        window.opener.CallAlert();
        return false;
    }
</script>

Fig – (3) Javascript on child window

Posted by 홍상길 홍상길

댓글을 달아 주세요

<!-- 새로고침방지 -->

<script language="JavaScript">
document.onkeydown = function() {
if (
( event.ctrlKey == true && ( event.keyCode == 82 ) ) ||
( event.keyCode == 116 )) {
event.keyCode = 505;
}
if (event.keyCode == 505) {
    location.reload();
return false;
}
}
</script>
<!-- 새로고침방지 -->

Posted by 홍상길 홍상길

댓글을 달아 주세요


/*************************************************************************
************************* 문자 관련 함수 ********************************
**************************************************************************/
/*************************************************************************
함수명 : fReplaceSpecialChar
기 능 : ' --> &acute; , " --> &quot; 로 변환
인 수 : vInputString - 문자열
리턴값 :
**************************************************************************/
function fReplaceCuteChar(vInputString){
var vReturnString;
vReturnString = vInputString.replace(/\'/gi,"&acute;");
vReturnString = vInputString.replace(/\"/gi,"&quot;");
return vReturnString;
}
/*************************************************************************
함수명 : isNull
기 능 : 객체의 value가 Null 또는 "" 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isNull(input) {
if (input.value == null || input.value == "") {
return true;
}
return false;
}
/*************************************************************************
함수명 : isEmpty
기 능 : 객체의 value가 Null 또는 Blank 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isEmpty(input) {
if (input.value == null || input.value.replace(/ /gi,"") == "") {
return true;
}
return false;
}
/*************************************************************************
함수명 : containsChars
기 능 : 특정문자가 존재하는지 체크
인 수 : input, chars - 객체, 찾고자하는 문자
리턴값 : 존재하면 true
**************************************************************************/
function containsChars(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) != -1)
return true;
}
return false;
}
/*************************************************************************
함수명 : containsCharsOnly
기 능 : 특정문자가 존재하는지 체크
인 수 : input, chars - 객체, 찾고자하는 문자
리턴값 : 존재하면 true
**************************************************************************/
function containsCharsOnly(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) == -1)
return false;
}
return true;
}
/*************************************************************************
함수명 : isAlphabet
기 능 : 알파벳인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isAlphabet(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : isKorean
기 능 : 한글인지를 체크
인 수 : ch - 문자
리턴값 :
**************************************************************************/
function isKorean(ch) {
var numUnicode = ch.charCodeAt(0);
if ( 44032 <= numUnicode && numUnicode <= 55203 ) return true;
return false;
}
/*************************************************************************
함수명 : isKoreanAll
기 능 : 문자열 전체가 한글인지를 체크
인 수 : input_val - 문자열
리턴값 :
**************************************************************************/
function isKoreanAll(input_val) {
if (input_val.length != getByteLengthVal(input_val)) {
return true;
} else {
return false;
}
}
/*************************************************************************
함수명 : isUpperCase
기 능 : 문자열 전체가 대문자 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isUpperCase(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : isLowerCase
기 능 : 문자열 전체가 소문자 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isLowerCase(input) {
var chars = "abcdefghijklmnopqrstuvwxyz";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : isAlphaNum
기 능 : 문자열 전체가 알파벳 또는 숫자 인지를 체크
인 수 : input - 객체
리턴값 :
**************************************************************************/
function isAlphaNum(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
return containsCharsOnly(input,chars);
}
/*************************************************************************
함수명 : rmChar
기 능 : 문자열의 모든 특정 문자 제거 처리 함수
인 수 : strString - 체크하려는 스트링
strChar - 삭제하고자 하는 문자
리턴값 :
**************************************************************************/
function rmChar(strString, strChar) {
var i;
var delChar = strChar;
var strTmp = "";
for(i=0;i<strString.length;i++){
if(strString.charAt(i) != delChar) {
strTmp += strString.charAt(i);
}
}
return strTmp;
}

/*************************************************************************
함수명 : 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;
}
[출처] 문자관련함수|작성자 송욱이네
Posted by 홍상길 홍상길

댓글을 달아 주세요


/*************************************************************************
************************* 숫자 관련 함수 *******************************
**************************************************************************/ /*********************************************************************************
함수명 : 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;
}
[출처] 숫자관련함수|작성자 송욱이네
Posted by 홍상길 홍상길

댓글을 달아 주세요

/*************************************************************************
************************* 일자 관련 함수 *******************************
**************************************************************************/ /*************************************************************************
함수명 : 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;
}
[출처] 일자관련함수|작성자 송욱이네

Posted by 홍상길 홍상길

댓글을 달아 주세요


/*************************************************************************
************************* 금액 관련 함수 *********************************
**************************************************************************/
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;
}
[출처] 금액관련함수|작성자 송욱이네
Posted by 홍상길 홍상길

댓글을 달아 주세요


/*************************************************************************
************************* 기타 함수 ************************************
**************************************************************************/
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;
}
[출처] 기타유틸함수|작성자 송욱이네
Posted by 홍상길 홍상길

댓글을 달아 주세요


/*************************************************************************
************************* 팝업 관련 함수 *************************
**************************************************************************/
/*********************************************************************************
함수명 : 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();
}
[출처] 팝업관련함수|작성자 송욱이네
Posted by 홍상길 홍상길

댓글을 달아 주세요



/*************************************************************************
함수명 : 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;
}

[출처] 함수모듬|작성자 송욱이네
Posted by 홍상길 홍상길

댓글을 달아 주세요


<!-- 항상따라다니는 Div창 & 자동 창 크기 설정 스크립트 시작 -->
        <script type="text/javascript">

            window.onload = scrollHandler; // 페이지 로드시마다 발생

            window.onresize = windowResize; // 창 크기 변경시마다 발생

            function scrollHandler() {
                var offsetX = 950;
                var offsetY = 50;

                var offsetWidth = 0;

                var objVisible = document.getElementById("alwaysVisible");
                var targetY = document.documentElement.scrollTop + offsetY;
                var currentY = parseInt(objVisible.style.top);

                var objFrom = document.getElementById("wrapper");
                var myWidth = 0, myHeight = 0;

                // 버전별 창크기 알아오기
                if (typeof (window.innerWidth) == 'number') {
                    //Non-IE
                    myWidth = window.innerWidth;
                    myHeight = window.innerHeight;
                }
                else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                    //IE 6+ in 'standards compliant mode'
                    myWidth = document.documentElement.clientWidth;
                    myHeight = document.documentElement.clientHeight;
                }
                else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                    //IE 4 compatible
                    myWidth = document.body.clientWidth;
                    myHeight = document.body.clientHeight;
                }

                offsetWidth = (myWidth - 1000) / 2;
               
                // 따라다니는 Div 좌표 설정
                if (currentY != targetY) {
                    objVisible.style.left = offsetX + offsetWidth;

                    var scrollAmount = Math.ceil(Math.abs(targetY - currentY) / 20);

                    if (currentY > targetY) objVisible.style.top = currentY - scrollAmount;
                    else objVisible.style.top = currentY + scrollAmount;
                }               

                setTimeout(scrollHandler, 10);
            }

            function windowResize() {

                var offsetWidth = 0;
                var myWidth = 0, myHeight = 0;

                var objFrom = document.getElementById("wrapper");               
               
                // 버전별 창크기 알아오기
                if (typeof (window.innerWidth) == 'number') {
                    //Non-IE
                    myWidth = window.innerWidth;
                    myHeight = window.innerHeight;
                }
                else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                    //IE 6+ in 'standards compliant mode'
                    myWidth = document.documentElement.clientWidth;
                    myHeight = document.documentElement.clientHeight;
                }
                else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                    //IE 4 compatible
                    myWidth = document.body.clientWidth;
                    myHeight = document.body.clientHeight;
                }

                offsetWidth = (myWidth - 1000) / 2;

                // 왼쪽 마진 설정
                if (myWidth >= 1000) {

                    objFrom.style.paddingLeft = offsetWidth;
                }
                else {
                    objFrom.style.paddingLeft = 0;
                }
            }
        </script>

        <!-- 항상따라다니는 Div창 & 자동 창 크기 설정 스크립트 종료 -->

Posted by 홍상길 홍상길

댓글을 달아 주세요

이전버튼 1 2 이전버튼

블로그 이미지
홍상길

공지사항

Yesterday23
Today2
Total294,528

달력

 « |  » 2019.11
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 달린 댓글

글 보관함