function gfn_isNull(str) { if (str == null) return true; if (str == "NaN") return true; if (new String(str).valueOf() == "undefined") return true; var chkStr = new String(str); if( chkStr.valueOf() == "undefined" ) return true; if (chkStr == null) return true; if (chkStr.toString().length == 0 ) return true; return false; } /** * 공통 서브밋 객체 (Target/Popup 대응 버전) */ function ComSubmit(opt_formId) { this.formId = (typeof opt_formId === "undefined" || opt_formId === null || opt_formId === "") ? "commonForm" : opt_formId; this.url = ""; this.target = "_self"; // 기본값은 현재 창 var $targetForm = $("#" + this.formId); // [1] 초기화: commonForm일 경우 내부를 비우고 target도 기본값으로 리셋 if ($targetForm.length > 0 && this.formId === "commonForm") { $targetForm.empty(); $targetForm.attr("target", "_self"); // 이전 타겟 설정 제거 } this.setUrl = function setUrl(url) { this.url = url; }; /** * [2] 타겟 설정 (팝업창 이름이나 _blank 등) */ this.setTarget = function setTarget(target) { this.target = target; }; this.addParam = function addParam(key, value) { if ($targetForm.length === 0) return; var $existingParam = $targetForm.find("input[name='" + key + "']"); if ($existingParam.length > 0) { $existingParam.val(value); } else { var inputHtml = $("", { type: "hidden", name: key, id: key, value: value }); $targetForm.append(inputHtml); } }; /** * [3] 서버 전송 */ this.submit = function submit() { if ($targetForm.length === 0) return; var frm = $targetForm[0]; if (!this.url) { alert("전송할 URL이 설정되지 않았습니다."); return; } frm.action = this.url; frm.method = "post"; frm.target = this.target; // 설정된 타겟 적용 frm.submit(); }; } var gfv_ajaxCallback = ""; function ComAjax(opt_formId) { this.url = ""; this.formId = gfn_isNull(opt_formId) == true?"commonForm":opt_formId; this.param = ""; if(this.formId == "commonForm") { var frm = $("#commonForm"); if(frm.length>0){ frm.remove(); } var str = "
"; $('body').append(str); } this.setUrl = function setUrl(url) { this.url = url; }; this.setCallback = function setCallback(callBack) { fv_ajaxCallback = callBack; }; this.addParam = function addParam(key, value) { this.param = this.param + "&" + key + "=" + value; }; this.ajax = function ajax() { if(this.formId != "commonForm"){ this.param += "&" + $("#" + this.formId).serialize(); } $.ajax({ url : this.url, type : "post", data : this.param, async : false, success : function(data, status){ if(typeof(fv_ajaxCallback) == "function"){ fv_ajaxCallback(data); }else{ eval(fv_ajaxCallback + "(data);"); } } }); }; } //페이징 태그부분 /* * divId : 페이징 태그가 그려질 div * pageIndx : 현재 페이지 위치가 저장될 input 태그 id * recordCount : 페이지당 레코드 수 * totalCount : 전체 조회 건수 * eventName : 페이징 하단의 숫자 등의 버튼이 클릭되었을때 호출될 함수 이름 */ var gfv_pageIndex = null; var gfv_eventName = null; function gfn_renderPaging(params) { var divId = params.divId; //페이징이 그려질 div id gfv_pageIndex = params.pageIndex; //현재 위치가 저장될 input 태그 var totalCount = params.totalCount; //전체 조회 건수 var currentIndex = $("#"+params.pageIndex).val(); //현재 위치 if($("#"+params.pageIndex).length == 0 || gfn_isNull(currentIndex) == true){ currentIndex = 1; } var recordCount = params.recordCount; //페이지당 레코드 수 if(gfn_isNull(recordCount) == true){ recordCount = 20; } var totalIndexCount = Math.ceil(totalCount/recordCount); //전체 인덱스 수 gfn_eventName = params.eventName; /* * Math.floor : 소수점 버림 * Math.ceil : 소수점 올림 * Math.round : 반올림 * Math.random : 랜덤함수 * Math.sqrt : 제곱근 * Math.pow : 제곱 * Math.abs : 절대값 */ $("#"+divId).empty(); var preStr = ""; var postStr = ""; var str = ""; var first = (parseInt((currentIndex-1)/10)*10) + 1; var last = (parseInt(totalCount/10)==parseInt(currentIndex/10))?totalIndexCount%10:10; var prev = (parseInt((currentIndex-1)/10)*10) - 9 > 0 ? (parseInt((currentIndex-1)/10)*10) - 9 : 1; var next = (parseInt((currentIndex-1)/10)+1) * 10 + 1 < totalIndexCount ? (parseInt((currentIndex-1)/10)+1) * 10 + 1 : totalIndexCount; if(totalIndexCount>10){ preStr += "[<<]" } }