first commit 2

This commit is contained in:
hmw1001
2026-06-11 18:47:38 +09:00
parent c768729ce6
commit 6f534e33a6
11095 changed files with 1595758 additions and 0 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,67 @@
/**
* 파일명: contact-form-handler.js
* 설명: 홈페이지 메인의 상담 신청 폼을 처리하는 스크립트
*/
document.addEventListener('DOMContentLoaded', function() {
const contactForm = document.getElementById('contactForm');
const formMessages = document.getElementById('form-messages');
const submitButton = document.getElementById('contact-submit-btn');
if (contactForm && formMessages && submitButton) {
contactForm.addEventListener('submit', function(e) {
e.preventDefault(); // 기본 폼 전송을 막습니다.
const originalButtonText = submitButton.textContent;
submitButton.disabled = true;
submitButton.textContent = '전송 중...';
formMessages.style.display = 'none';
formMessages.className = 'form-message-area'; // CSS 클래스 초기화
const formData = new FormData(contactForm);
const variables = {
contact_subject: formData.get('contact_subject'),
contact_name: formData.get('contact_name'),
contact_hp: formData.get('contact_hp'),
contact_email: formData.get('contact_email'),
// textarea의 줄바꿈을 HTML <br> 태그로 변환하여 메일에 반영합니다.
contact_message: formData.get('contact_message').replace(/\n/g, '<br>')
};
// 💡 universalMailer 객체를 사용하여 메일 발송
window.universalMailer.send({
template_code: 'contact_inquiry', // 관리자에서 생성할 템플릿 코드
to_email : variables.contact_email,
// [추가] 참조 이메일 설정
// 'ADMIN_EMAIL' 키워드를 사용하면 서버(ajax_universal_send.php)에서
// 실제 관리자 이메일 주소(config.php의 cf_admin_email)로 자동 치환합니다.
// 이렇게 하면 클라이언트 코드에 이메일 주소를 노출하지 않고도 관리자에게 발송할 수 있습니다.
cc_email: ['ADMIN_EMAIL'],
variables: variables,
onSuccess: function(response) {
alert(response.message || '상담 신청이 성공적으로 접수되었습니다. 빠른 시일 내에 연락드리겠습니다.');
contactForm.reset(); // 폼 초기화
// formMessages.textContent = response.message || '상담 신청이 성공적으로 접수되었습니다. 빠른 시일 내에 연락드리겠습니다.';
// formMessages.classList.add('success');
// formMessages.style.display = 'block';
contactForm.reset();
// 성공 시 팝업 닫기
const contactModal = document.getElementById('contact-modal');
if (contactModal) {
// 모달의 닫기 버튼을 클릭하는 방식으로 닫습니다.
const closeButton = contactModal.querySelector('.modal-close');
if (closeButton) closeButton.click();
}
},
onError: function(errorMessage) {
formMessages.textContent = errorMessage || '오류가 발생했습니다. 잠시 후 다시 시도해주세요.';
formMessages.classList.add('error');
formMessages.style.display = 'block';
},
onComplete: function() {
submitButton.disabled = false;
submitButton.textContent = originalButtonText;
}
});
});
}
});
+525
View File
@@ -0,0 +1,525 @@
var charset = 'UTF-8';
var domain = document.domain;
var is_http = /\s(?:http|https):\/\/\S*(?:\s|$)/g;
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'':(v='hide')?'none':v; }
obj.display=v; }
}
function showhide() { //v3.0
var i,p,v,obj,args=showhide.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }
}
// TAB -------------------------------------------------------------------*/
function Chtab(layername,xid,len){
try{
for(i=1;i <= len; i++){
if (i==xid) document.getElementById(layername+i).style.display="block";
else document.getElementById(layername+i).style.display="none";
}
} catch (e) {}
}
function Ch_Class(layername,xid,len,class_name){
try{
for(i=1;i <= len; i++){
if (i==xid) document.getElementById(layername+i).className=class_name;
else document.getElementById(layername+i).className="";
}
} catch (e) {}
}
// 포커싱 -------------------------------------------------------------------*/
function bluring(){
if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG") document.body.focus();
}
document.onfocusin=bluring;
// 인풋 비활성화 배경 -------------------------------------------------------------------*/
isDisabled = function (){
for (var i=0; i<this.length; i++){
if(this.item(i).disabled) this.item(i).style.backgroundColor="#e5e5e5";
}
}
window.onload = function (){
var input = document.getElementsByTagName("INPUT");
//isDisabled.apply(input);
}
// 플래시 출력 -------------------------------------------------------------------*/
function get_embed(src,query,width,height,vars)
{
src += '?' + query;
var codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0";
var pluginspage = "http://www.macromedia.com/go/getflashplayer";
if (document.location.protocol == "https:") {
codebase = codebase.replace(/http:/, "https:");
pluginspage = pluginspage.replace(/http:/, "https:");
}
var widthAttr = (width > 0 ? 'width="'+width+'"' : '');
var heightAttr = (height > 0 ? 'height="'+height+'"' : '');
var tag = '';
tag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+codebase+'" '+widthAttr+' '+heightAttr+'>';
tag += '<param name="movie" value="'+src+'"/>';
tag += '<param name="quality" value="high"/>';
tag += '<param name="wmode" value="transparent"/>';
tag += '<param name="bgcolor" value="#FFFFFF"/>';
tag += '<param name="flashvars" value="' + vars + '"/>';
tag += '<embed src="'+src+'" quality="high" wmode="transparent" bgcolor="#FFFFFF" '+widthAttr+' '+heightAttr+' type="application/x-shockwave-flash" pluginspage="'+pluginspage+'" flashvars="' + vars + '"></embed>';
tag += '</object>';
return tag;
}
function embed(src,query,width,height,vars)
{
var tag = get_embed(src,query,width,height,vars);
document.write(tag);
}
// 플래시 활성화 -------------------------------------------------------------------*/
function insertFlash( id, flashUri, vWidth, vHeight, winMode ) {
var _obj_ = "";
_obj_ = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8.0.35.0" width="' + vWidth + '" height="' + vHeight + '" id="' + id + '" align="middle">';
_obj_ += '<param name="allowScriptAccess" value="always" />';
_obj_ += '<param name="movie" value="' + flashUri + '" />';
_obj_ += '<param name="quality" value="high" />';
_obj_ += '<param name="wmode" value="' + winMode + '" /> ';
_obj_ += '<param name="bgcolor" value="#ffffff" /> ';
_obj_ += '<param name="scale" value="exactfit" /> ';
_obj_ += '<embed src="' + flashUri + '" quality="high" wmode="' + winMode + '" bgcolor="#ffffff" width="' + vWidth +'" height="' + vHeight + '" id="' + id + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></embed> ';
_obj_ += '</object>';
document.writeln( _obj_ );
}
var addslashes = function(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}
var stripslashes = function (str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\0/g,'\0');
str=str.replace(/\\\\/g,'\\');
return str;
}
var nl2br = function(str, is_xhtml) {
var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br ' + '/>' : '<br>'; // Adjust comment to avoid issue on phpjs.org display
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}
function length_count(num,filed, max_count) {
var str;
var str_count = 0;
var cut_count = 0;
var max_length = max_count;
var str_length = filed.value.length;
//alert( str_length+"@"+max_length );
for (k=0;k<str_length;k++) {
str = filed.value.charAt(k);
if (escape(str).length > 4) {
str_count += 2;
max_length -= 2;
} else {
// (\r\n은 1byte 처리)
if (escape(str) == '%0A') {
} else {
str_count++;
max_length--;
}
}
if (max_count < str_count) {
alert("글자수가 "+ max_count +" byte 이상은 사용불가능 합니다");
if (escape(str).length > 4) {
str_count -= 2;
max_length += 2;
} else {
str_count--;
max_length++;
}
filed.value = filed.value.substring(0,k);
break;
}
}
max_length=max_count-max_length;
eval("this.span_byte"+num+".innerText = max_length;");
}
//텍스트에어리어 비우기
function OnEnter( field ) { if( field.value == field.defaultValue ) { field.value = ""; } }
var selAll = function(){ // 전체선택
$('.check_all').each(function(){
var sel = $(this).attr('checked');
if(sel=='checked') {
$('.check_all').attr('checked',false);
$("input[name='check_all']").attr('checked',false);
return false;
} else {
$('.check_all').attr('checked',true);
$("input[name='check_all']").attr('checked',true);
return false;
}
});
}
// 이달 마지막날짜
var LastDayOfMonth = function(Year, Month) {
return(new Date((new Date(Year, Month+1,1))-1)).getDate();
}
// 기본 팝업창
var win_open = function(a, b, c, k) {
c = window.open(a, b, "width=" + c + ", height=" + k + ", scrollbars=no, resizable=no, status=no,top=" + (screen.height - 550) / 2 + ",left=" + (screen.width - 640) / 2);
c.focus()
}
// input field 한글/숫자/영문 (onkeyup event)
var field_types = function( sel, type ){
switch(type){
case 'english':
sel.value = sel.value.replace(/^a-zA-z]/g,'');
break;
case 'hangle':
sel.value = sel.value.replace(/[^ㄱ-ㅎ가-횧]/g,'');
break;
case 'number':
sel.value = sel.value.replace(/[^0-9]/g,'');
break;
}
}
var file_download = function(link, file) { // 파일 다운로드
document.location.href = link;
}
var isValidBlank = function(value) {
var pattern = /[\s]/g; ///^\s+|\s+$/g;(/\s/g
return (pattern.test(value)) ? true : false;
}
var CountChar = function( message, limit ){ // 문자 bytes 계산 msg_bytes id 값만 잘 체크하면 됨
var nbytes = 0;
var availMsg = "";
var chk=0;
for (var i=0; i <message.value.length; i++){
ch = message.value.charAt(i);
if(escape(ch).length > 4) {
nbytes += 2;
} else if (ch == '\n') {
if (message.value.charAt(i-1) != '\r') {
nbytes += 1;
}
} else {
nbytes += 1;
}
if (limit*1 >= nbytes*1) {
availMsg += message.value.charAt(i);
}
$('#msg_bytes').html(nbytes*1);
}
if (nbytes*1 > limit*1) { // 바이트를 초과했을경우
alert("[" + availMsg + "] 까지 발송됩니다.");
//message.value = availMsg;
$('#msg_bytes').html(limit*1);
//message.focus();
return;
}
}
var CountCharText = function( message, limit, msg_bytes ){ // text 필드 검사
var nbytes = 0;
var availMsg = "";
var chk=0;
for (var i=0; i <message.value.length; i++){
ch = message.value.charAt(i);
if(escape(ch).length > 4) {
nbytes += 1;
} else if (ch == '\n') {
if (message.value.charAt(i-1) != '\r') {
nbytes += 1;
}
} else {
nbytes += 1;
}
if (limit*1 >= nbytes*1) {
availMsg += message.value.charAt(i);
}
$('#'+msg_bytes).html(nbytes*1);
}
if (nbytes*1 > limit*1) { // 바이트를 초과했을경우
//alert("[" + availMsg + "] 까지 입력 가능합니다.");
$('#'+msg_bytes).html(limit*1);
return;
}
}
jQuery.fn.center = function () { // 가운데 정렬
this.css("position","absolute");
//this.css("top", ((jQuery(window).height() - this.outerHeight()) / 2) + jQuery(window).scrollTop() + "px");
this.css("left", ((jQuery(window).width() - this.outerWidth()) / 2) + jQuery(window).scrollLeft() + "px");
return this;
}
$(function(){
// 숫자만 입력 받기
$('.tnum').keypress(function(event){
//alert(event.which);
if (event.which && (event.which > 47 && event.which < 58 || event.which == 8)) {
} else {
event.preventDefault();
}
});
// 핸드폰 번호만 입력 받기 ('-' 허용)
$('.phone').keypress(function(event){
//alert(event.which);
if (event.which && (event.which > 47 && event.which < 58 || event.which == 8 || event.which == 45)) {
} else {
event.preventDefault();
}
});
// 기본 리스트 전체 체크 ( Check Box )
$("input[name='check_all']").click(function(){
var sel = $(this).attr('checked');
if(sel=='checked') $('.check_all').attr('checked',true);
else $('.check_all').attr('checked',false);
});
$('#start_day').datepicker({dateFormat: 'yy-mm-dd'});
$('#end_day').datepicker({dateFormat: 'yy-mm-dd'});
/* 날짜 선택에 따른 Value Sets */
$('.set_day').click(function(){
var sel_date = $(this).attr('date');
var todate = new Date();
switch(sel_date){
case 'all': $('#start_day, #end_day').val(''); break;
case 'today': $('#start_day, #end_day').datepicker('setDate', 'd'); break;
case 'week': // 이번주
startDate = new Date(todate.getFullYear(), todate.getMonth(), todate.getDate() - todate.getDay());
endDate = new Date(todate.getFullYear(), todate.getMonth(), todate.getDate() - todate.getDay() + 6);
$('#start_day').datepicker('setDate', startDate);
$('#end_day').datepicker('setDate', endDate);
break;
case 'month': // 이번달
startDate = new Date(todate.getFullYear(), todate.getMonth());
endDate = new Date(todate.getFullYear(), todate.getMonth(), LastDayOfMonth(todate.getFullYear(), todate.getMonth()));
$('#start_day').datepicker('setDate', startDate);
$('#end_day').datepicker('setDate', endDate);
break;
case 'yesterday':
$('#start_day').datepicker('setDate', '-1d');
$('#end_day').datepicker('setDate', '-1d');
break;
case '3day':
$('#start_day').datepicker('setDate', '-3d');
$('#end_day').datepicker('setDate', 'd');
break;
case '7day':
$('#start_day').datepicker('setDate', '-7d');
$('#end_day').datepicker('setDate', 'd');
break;
case '15day':
$('#start_day').datepicker('setDate', '-15d');
$('#end_day').datepicker('setDate', 'd');
break;
case '30day':
$('#start_day').datepicker('setDate', '-30d');
$('#end_day').datepicker('setDate', 'd');
break;
case '60day':
$('#start_day').datepicker('setDate', '-60d');
$('#end_day').datepicker('setDate', 'd');
break;
case '90day':
$('#start_day').datepicker('setDate', '-90d');
$('#end_day').datepicker('setDate', 'd');
break;
case '120day':
$('#start_day').datepicker('setDate', '-120d');
$('#end_day').datepicker('setDate', 'd');
break;
}
});
});
$(function(){
$('#login_passwd').keydown(function(event){
if(event.keyCode==13){ // 엔터키 이벤트
member_login();
}
});
});
var member_login = function(){ // 회원 로그인
$('#MemberLoginFrm').submit();
}
var member_logout = function( mb_id ){ // 회원 로그 아웃
if(confirm('로그아웃 하시겠습니까?')){
$.post("/include/regist.php", { mode:'logout_process'}, function(result){
result = $.parseJSON(result);
if(result.msg) alert(result.msg);
if(result.move) location.href = result.move;
});
}
}
var is_members = function( url ){
if( confirm('회원만 접근 가능합니다.\n\n로그인 하시겠습니까?') ){
location.href = "/member/login.php?url=" + url;
return false;
}
}
var bookmarks = function(){ // 즐겨찾기
// $('#favorite').on('click', function(e) {
var bookmarkURL = window.location.href;
var bookmarkTitle = document.title;
var triggerDefault = false;
if (window.sidebar && window.sidebar.addPanel) {
// Firefox version < 23
window.sidebar.addPanel(bookmarkTitle, bookmarkURL, '');
} else if ((window.sidebar && (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) || (window.opera && window.print)) {
// Firefox version >= 23 and Opera Hotlist
var $this = $(this);
$this.attr('href', bookmarkURL);
$this.attr('title', bookmarkTitle);
$this.attr('rel', 'sidebar');
$this.off(e);
triggerDefault = true;
} else if (window.external && ('AddFavorite' in window.external)) {
// IE Favorite
window.external.AddFavorite(bookmarkURL, bookmarkTitle);
} else {
// WebKit - Safari/Chrome
alert((navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Cmd' : 'Ctrl') + '+D 키를 눌러 즐겨찾기에 등록하실 수 있습니다.');
}
return triggerDefault;
// });
}
function trim(str){
//정규 표현식을 사용하여 화이트스페이스를 빈문자로 전환
str = str.replace(/^\s*/,'').replace(/\s*$/, '');
return str; //변환한 스트링을 리턴.
}
// 쿠키 입력
function set_cookies(name, value, expirehours, domain) {
var today = new Date();
today.setTime(today.getTime() + (60*60*1000*expirehours));
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + today.toGMTString() + ";";
if (domain) {
document.cookie += "domain=" + domain + ";";
}
}
// 쿠키 얻음
function get_cookies(name) {
var find_sw = false;
var start, end;
var i = 0;
for (i=0; i<= document.cookie.length; i++){
start = i;
end = start + name.length;
if(document.cookie.substring(start, end) == name) {
find_sw = true
break
}
}
if (find_sw == true) {
start = end + 1;
end = document.cookie.indexOf(";", start);
if(end < start)
end = document.cookie.length;
return document.cookie.substring(start, end);
}
return "";
}
// 쿠키 지움
function delete_cookies(name) {
var today = new Date();
today.setTime(today.getTime() - 1);
var value = get_cookie(name);
if(value != "")
document.cookie = name + "=" + value + "; path=/; expires=" + today.toGMTString();
}
var font_size = 14;
var font_array = {12:14, 13:16, 14:18, 15:20};
var last_font;
var getFontSize = function () {
var fontSize = parseInt(get_cookies("ck_fontsize")); // 폰트크기 조절
if (isNaN(fontSize)) { fontSize = 14; }
return fontSize;
}
var scroll_up = function(){// 페이지 상단으로 이동
$('html, body').animate({scrollTop:0}, 800);
}
var leadingZeros = function (n, digits) {
var zero = '';
n = n.toString();
if (n.length < digits) {
for (i = 0; i < digits - n.length; i++)
zero += '0';
}
return zero + n;
}
// 삭제 검사 확인
function del(href){
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
var iev = -1;
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
iev = parseFloat(RegExp.$1);
}
// IE6 이하에서 한글깨짐 방지
if (iev != -1 && iev < 7) {
document.location.href = encodeURI(href);
} else {
document.location.href = href;
}
}
}
document.addEventListener('DOMContentLoaded', function() {
const topButton = document.getElementById('topBtn');
if (topButton) {
topButton.addEventListener('click', function() {
window.scrollTo({
top: 0,
behavior: 'smooth' // 부드러운 스크롤 효과
});
});
}
});
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";function b(b,c,d,e){"caption2"===c.captionPlugin&&a.each(["caption","overlay"],function(){var a,b=this+"Fx",f=c[b+"Out"]||"hide",g=d[this+"Template"],h=c.API.getComponent(this),i=c[b+"Sel"],j=c.speed;c.sync&&(j/=2),a=i?h.find(i):h,h.length&&g?("hide"==f&&(j=0),a[f](j,function(){var k=c.API.tmpl(g,d,c,e);h.html(k),a=i?h.find(i):h,i&&a.hide(),f=c[b+"In"]||"show",a[f](j)})):h.hide()})}function c(b,c,d,e){"caption2"===c.captionPlugin&&a.each(["caption","overlay"],function(){var a=d[this+"Template"],b=c.API.getComponent(this);b.length&&a&&b.html(c.API.tmpl(a,d,c,e))})}a.extend(a.fn.cycle.defaults,{captionFxOut:"fadeOut",captionFxIn:"fadeIn",captionFxSel:void 0,overlayFxOut:"fadeOut",overlayFxIn:"fadeIn",overlayFxSel:void 0}),a(document).on("cycle-bootstrap",function(a,d){d.container.on("cycle-update-view-before",b),d.container.one("cycle-update-view-after",c)})}(jQuery);
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";a(document).on("cycle-bootstrap",function(a,b,c){"carousel"===b.fx&&(c.getSlideIndex=function(a){var b=this.opts()._carouselWrap.children(),c=b.index(a);return c%b.length},c.next=function(){var a=b.reverse?-1:1;b.allowWrap===!1&&b.currSlide+a>b.slideCount-b.carouselVisible||(b.API.advanceSlide(a),b.API.trigger("cycle-next",[b]).log("cycle-next"))})}),a.fn.cycle.transitions.carousel={preInit:function(b){b.hideNonActive=!1,b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.API.stopTransition=this.stopTransition;for(var c=0;c<b.startingSlide;c++)b.container.append(b.slides[0])},postInit:function(b){var c,d,e,f,g=b.carouselVertical;b.carouselVisible&&b.carouselVisible>b.slideCount&&(b.carouselVisible=b.slideCount-1);var h=b.carouselVisible||b.slides.length,i={display:g?"block":"inline-block",position:"static"};if(b.container.css({position:"relative",overflow:"hidden"}),b.slides.css(i),b._currSlide=b.currSlide,f=a('<div class="cycle-carousel-wrap"></div>').prependTo(b.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(b.slides),b._carouselWrap=f,g||f.css("white-space","nowrap"),b.allowWrap!==!1){for(d=0;d<(void 0===b.carouselVisible?2:1);d++){for(c=0;c<b.slideCount;c++)f.append(b.slides[c].cloneNode(!0));for(c=b.slideCount;c--;)f.prepend(b.slides[c].cloneNode(!0))}f.find(".cycle-slide-active").removeClass("cycle-slide-active"),b.slides.eq(b.startingSlide).addClass("cycle-slide-active")}b.pager&&b.allowWrap===!1&&(e=b.slideCount-h,a(b.pager).children().filter(":gt("+e+")").hide()),b._nextBoundry=b.slideCount-b.carouselVisible,this.prepareDimensions(b)},prepareDimensions:function(b){var c,d,e,f,g=b.carouselVertical,h=b.carouselVisible||b.slides.length;if(b.carouselFluid&&b.carouselVisible?b._carouselResizeThrottle||this.fluidSlides(b):b.carouselVisible&&b.carouselSlideDimension?(c=h*b.carouselSlideDimension,b.container[g?"height":"width"](c)):b.carouselVisible&&(c=h*a(b.slides[0])[g?"outerHeight":"outerWidth"](!0),b.container[g?"height":"width"](c)),d=b.carouselOffset||0,b.allowWrap!==!1)if(b.carouselSlideDimension)d-=(b.slideCount+b.currSlide)*b.carouselSlideDimension;else for(e=b._carouselWrap.children(),f=0;f<b.slideCount+b.currSlide;f++)d-=a(e[f])[g?"outerHeight":"outerWidth"](!0);b._carouselWrap.css(g?"top":"left",d)},fluidSlides:function(b){function c(){clearTimeout(e),e=setTimeout(d,20)}function d(){b._carouselWrap.stop(!1,!0);var a=b.container.width()/b.carouselVisible;a=Math.ceil(a-g),b._carouselWrap.children().width(a),b._sentinel&&b._sentinel.width(a),h(b)}var e,f=b.slides.eq(0),g=f.outerWidth()-f.width(),h=this.prepareDimensions;a(window).on("resize",c),b._carouselResizeThrottle=c,d()},transition:function(b,c,d,e,f){var g,h={},i=b.nextSlide-b.currSlide,j=b.carouselVertical,k=b.speed;if(b.allowWrap===!1){e=i>0;var l=b._currSlide,m=b.slideCount-b.carouselVisible;i>0&&b.nextSlide>m&&l==m?i=0:i>0&&b.nextSlide>m?i=b.nextSlide-l-(b.nextSlide-m):0>i&&b.currSlide>m&&b.nextSlide>m?i=0:0>i&&b.currSlide>m?i+=b.currSlide-m:l=b.currSlide,g=this.getScroll(b,j,l,i),b.API.opts()._currSlide=b.nextSlide>m?m:b.nextSlide}else e&&0===b.nextSlide?(g=this.getDim(b,b.currSlide,j),f=this.genCallback(b,e,j,f)):e||b.nextSlide!=b.slideCount-1?g=this.getScroll(b,j,b.currSlide,i):(g=this.getDim(b,b.currSlide,j),f=this.genCallback(b,e,j,f));h[j?"top":"left"]=e?"-="+g:"+="+g,b.throttleSpeed&&(k=g/a(b.slides[0])[j?"height":"width"]()*b.speed),b._carouselWrap.animate(h,k,b.easing,f)},getDim:function(b,c,d){var e=a(b.slides[c]);return e[d?"outerHeight":"outerWidth"](!0)},getScroll:function(a,b,c,d){var e,f=0;if(d>0)for(e=c;c+d>e;e++)f+=this.getDim(a,e,b);else for(e=c;e>c+d;e--)f+=this.getDim(a,e,b);return f},genCallback:function(b,c,d,e){return function(){var c=a(b.slides[b.nextSlide]).position(),f=0-c[d?"top":"left"]+(b.carouselOffset||0);b._carouselWrap.css(b.carouselVertical?"top":"left",f),e()}},stopTransition:function(){var a=this.opts();a.slides.stop(!1,!0),a._carouselWrap.stop(!1,!0)},onDestroy:function(){var b=this.opts();b._carouselResizeThrottle&&a(window).off("resize",b._carouselResizeThrottle),b.slides.prependTo(b.container),b._carouselWrap.remove()}}}(jQuery);
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";a.extend(a.fn.cycle.defaults,{centerHorz:!1,centerVert:!1}),a(document).on("cycle-pre-initialize",function(b,c){function d(){clearTimeout(i),i=setTimeout(g,50)}function e(){clearTimeout(i),clearTimeout(j),a(window).off("resize orientationchange",d)}function f(){c.slides.each(h)}function g(){h.apply(c.container.find("."+c.slideActiveClass)),clearTimeout(j),j=setTimeout(f,50)}function h(){var b=a(this),d=c.container.width(),e=c.container.height(),f=b.outerWidth(),g=b.outerHeight();f&&(c.centerHorz&&d>=f&&b.css("marginLeft",(d-f)/2),c.centerVert&&e>=g&&b.css("marginTop",(e-g)/2))}if(c.centerHorz||c.centerVert){var i,j;a(window).on("resize orientationchange load",d),c.container.on("cycle-destroyed",e),c.container.on("cycle-initialized cycle-slide-added cycle-slide-removed",function(){d()}),g()}})}(jQuery);
+2
View File
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";function b(b){return{preInit:function(a){a.slides.css(d)},transition:function(c,d,e,f,g){var h=c,i=a(d),j=a(e),k=h.speed/2;b.call(j,-90),j.css({display:"block",visibility:"visible","background-position":"-90px",opacity:1}),i.css("background-position","0px"),i.animate({backgroundPosition:90},{step:b,duration:k,easing:h.easeOut||h.easing,complete:function(){c.API.updateView(!1,!0),j.animate({backgroundPosition:0},{step:b,duration:k,easing:h.easeIn||h.easing,complete:g})}})}}}function c(b){return function(c){var d=a(this);d.css({"-webkit-transform":"rotate"+b+"("+c+"deg)","-moz-transform":"rotate"+b+"("+c+"deg)","-ms-transform":"rotate"+b+"("+c+"deg)","-o-transform":"rotate"+b+"("+c+"deg)",transform:"rotate"+b+"("+c+"deg)"})}}var d,e=document.createElement("div").style,f=a.fn.cycle.transitions,g=void 0!==e.transform||void 0!==e.MozTransform||void 0!==e.webkitTransform||void 0!==e.oTransform||void 0!==e.msTransform;g&&void 0!==e.msTransform&&(e.msTransform="rotateY(0deg)",e.msTransform||(g=!1)),g?(f.flipHorz=b(c("Y")),f.flipVert=b(c("X")),d={"-webkit-backface-visibility":"hidden","-moz-backface-visibility":"hidden","-o-backface-visibility":"hidden","backface-visibility":"hidden"}):(f.flipHorz=f.scrollHorz,f.flipVert=f.scrollVert||f.scrollHorz)}(jQuery);
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";function b(a,b,c){if(a&&c.style.filter){b._filter=c.style.filter;try{c.style.removeAttribute("filter")}catch(d){}}else!a&&b._filter&&(c.style.filter=b._filter)}a.extend(a.fn.cycle.transitions,{fade:{before:function(c,d,e,f){var g=c.API.getSlideOpts(c.nextSlide).slideCss||{};c.API.stackSlides(d,e,f),c.cssBefore=a.extend(g,{opacity:0,visibility:"visible",display:"block"}),c.animIn={opacity:1},c.animOut={opacity:0},b(!0,c,e)},after:function(a,c,d){b(!1,a,d)}},fadeout:{before:function(c,d,e,f){var g=c.API.getSlideOpts(c.nextSlide).slideCss||{};c.API.stackSlides(d,e,f),c.cssAfter=a.extend(g,{opacity:0,visibility:"hidden"}),c.cssBefore=a.extend(g,{opacity:1,visibility:"visible",display:"block"}),c.animOut={opacity:0},b(!0,c,e)},after:function(a,c,d){b(!1,a,d)}}})}(jQuery);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";a.fn.cycle.transitions.scrollVert={before:function(a,b,c,d){a.API.stackSlides(a,b,c,d);var e=a.container.css("overflow","hidden").height();a.cssBefore={top:d?-e:e,left:0,opacity:1,display:"block",visibility:"visible"},a.animIn={top:0},a.animOut={top:d?e:-e}}}}(jQuery);
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";a.fn.cycle.transitions.shuffle={transition:function(b,c,d,e,f){function g(a){this.stack(b,c,d,e),a()}a(d).css({display:"block",visibility:"visible"});var h=b.container.css("overflow","visible").width(),i=b.speed/2,j=e?c:d;b=b.API.getSlideOpts(e?b.currSlide:b.nextSlide);var k={left:-h,top:15},l=b.slideCss||{left:0,top:0};void 0!==b.shuffleLeft?k.left=k.left+parseInt(b.shuffleLeft,10)||0:void 0!==b.shuffleRight&&(k.left=h+parseInt(b.shuffleRight,10)||0),b.shuffleTop&&(k.top=b.shuffleTop),a(j).animate(k,i,b.easeIn||b.easing).queue("fx",a.proxy(g,this)).animate(l,i,b.easeOut||b.easing,f)},stack:function(b,c,d,e){var f,g;if(e)b.API.stackSlides(d,c,e),a(c).css("zIndex",1);else{for(g=1,f=b.nextSlide-1;f>=0;f--)a(b.slides[f]).css("zIndex",g++);for(f=b.slideCount-1;f>b.nextSlide;f--)a(b.slides[f]).css("zIndex",g++);a(d).css("zIndex",b.maxZ),a(c).css("zIndex",b.maxZ-1)}}}}(jQuery);
+2
View File
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";a.fn.cycle.transitions.tileSlide=a.fn.cycle.transitions.tileBlind={before:function(b,c,d,e){b.API.stackSlides(c,d,e),a(c).css({display:"block",visibility:"visible"}),b.container.css("overflow","hidden"),b.tileDelay=b.tileDelay||"tileSlide"==b.fx?100:125,b.tileCount=b.tileCount||7,b.tileVertical=b.tileVertical!==!1,b.container.data("cycleTileInitialized")||(b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.container.data("cycleTileInitialized",!0))},transition:function(b,c,d,e,f){function g(a){m.eq(a).animate(t,{duration:b.speed,easing:b.easing,complete:function(){(e?p-1===a:0===a)&&b._tileAniCallback()}}),setTimeout(function(){(e?p-1!==a:0!==a)&&g(e?a+1:a-1)},b.tileDelay)}b.slides.not(c).not(d).css("visibility","hidden");var h,i,j,k,l,m=a(),n=a(c),o=a(d),p=b.tileCount,q=b.tileVertical,r=b.container.height(),s=b.container.width();q?(i=Math.floor(s/p),k=s-i*(p-1),j=l=r):(i=k=s,j=Math.floor(r/p),l=r-j*(p-1)),b.container.find(".cycle-tiles-container").remove();var t,u={left:0,top:0,overflow:"hidden",position:"absolute",margin:0,padding:0};t=q?"tileSlide"==b.fx?{top:r}:{width:0}:"tileSlide"==b.fx?{left:s}:{height:0};var v=a('<div class="cycle-tiles-container"></div>');v.css({zIndex:n.css("z-index"),overflow:"visible",position:"absolute",top:0,left:0,direction:"ltr"}),v.insertBefore(d);for(var w=0;p>w;w++)h=a("<div></div>").css(u).css({width:p-1===w?k:i,height:p-1===w?l:j,marginLeft:q?w*i:0,marginTop:q?0:w*j}).append(n.clone().css({position:"relative",maxWidth:"none",width:n.width(),margin:0,padding:0,marginLeft:q?-(w*i):0,marginTop:q?0:-(w*j)})),m=m.add(h);v.append(m),n.css("visibility","hidden"),o.css({opacity:1,display:"block",visibility:"visible"}),g(e?0:p-1),b._tileAniCallback=function(){o.css({display:"block",visibility:"visible"}),n.css("visibility","hidden"),v.remove(),f()}},stopTransition:function(a){a.container.find("*").stop(!0,!0),a._tileAniCallback&&a._tileAniCallback()},onDestroy:function(){var a=this.opts();a.container.find(".cycle-tiles-container").remove()}}}(jQuery);
+2
View File
@@ -0,0 +1,2 @@
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";function b(){try{this.playVideo()}catch(a){}}function c(){try{this.pauseVideo()}catch(a){}}var d='<div class=cycle-youtube><object width="640" height="360"><param name="movie" value="{{url}}"></param><param name="allowFullScreen" value="{{allowFullScreen}}"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="opaque"></param><embed src="{{url}}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="{{allowFullScreen}}" wmode="opaque"></embed></object></div>';a.extend(a.fn.cycle.defaults,{youtubeAllowFullScreen:!0,youtubeAutostart:!1,youtubeAutostop:!0}),a(document).on("cycle-bootstrap",function(e,f){f.youtube&&(f.hideNonActive=!1,f.container.find(f.slides).each(function(b){if(void 0!==a(this).attr("href")){var c,e=a(this),g=e.attr("href"),h=f.youtubeAllowFullScreen?"true":"false";g+=(/\?/.test(g)?"&":"?")+"enablejsapi=1",f.youtubeAutostart&&f.startingSlide===b&&(g+="&autoplay=1"),c=f.API.tmpl(d,{url:g,allowFullScreen:h}),e.replaceWith(c)}}),f.slides=f.slides.replace(/(\b>?a\b)/,"div.cycle-youtube"),f.youtubeAutostart&&f.container.on("cycle-initialized cycle-after",function(c,d){var e="cycle-initialized"==c.type?d.currSlide:d.nextSlide;a(d.slides[e]).find("object,embed").each(b)}),f.youtubeAutostop&&f.container.on("cycle-before",function(b,d){a(d.slides[d.currSlide]).find("object,embed").each(c)}))})}(jQuery);
+349
View File
@@ -0,0 +1,349 @@
/**
* /application/_helpers/_js/form.js
* @author Netfu
* @since 2012/04/22
* @last update 2014/04/28
* @Module v4.0 ( SNOW )
* @Brief :: Form Validate Script
* @Comment :: Form 검증 및 필드 확인 Javascript
*/
/// 에러메시지 포멧 정의 ///
var NO_BLANK = "{name+을를} 입력하여 주십시오.";
var NO_CHECK = "{name+을를} 선택하여 주십시오.";
var NOT_VALID = "{name+이가} 올바르지 않습니다.";
var TOO_LONG = "{name}의 길이가 초과되었습니다. (최대 {maxbyte}바이트)";
var SPACE = (navigator.appVersion.indexOf("MSIE")!=-1) ? " " : "";
/// 스트링 객체에 메소드 추가 ///
String.prototype.trim = function(str) {
str = this != window ? this : str;
return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
}
String.prototype.text_trim = function(){
return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.hasFinalConsonant = function(str) {
str = this != window ? this : str;
var strTemp = str.substr(str.length-1);
return ((strTemp.charCodeAt(0)-16)%28!=0);
}
String.prototype.bytes = function(str) {
str = this != window ? this : str;
var len = 0;
for(var j=0; j<str.length; j++) {
var chr = str.charAt(j);
len += (chr.charCodeAt() > 128) ? 2 : 1
}
return len;
}
String.prototype.number_format=function(){
return this.replace(/(\d)(?=(?:\d{3})+(?!\d))/g,'$1,');
}
Array.prototype.shuffle = function() {
return this.concat().sort(function() {
return Math.random() - Math.random();
});
}
function in_array(value, array, similar) {
for(var i=0; i<array.length; i++) {
if(similar==true) {
if(value.indexOf(array[i]) != -1) return true; // 비슷한 값
} else {
if(array[i]==value) return true; // 동일한 값
}
}
return false;
}
function validate(form, skip) {
for (var i=0; i<form.elements.length; i++) {
var el = form.elements[i];
if (el.tagName == "FIELDSET") continue;
if(skip && in_array(el.name, skip.split('|'), true) === true) continue; // 추가
if(el.type.toLowerCase() != "file" && el.value) el.value = el.value.trim(); // 수정 :: 파폭 보안 문제
var _type = $(el).attr("type");
if(_type=='editor') {
el.value = _editor_use[el.name].outputBodyHTML();
var _content = _editor_use[el.name].trimSpace(el.value.replace(/(<([^>]+)>)/gi, ""));
}
var PATTERN = el.getAttribute("PATTERN");
var minbyte = el.getAttribute("MINBYTE");
var maxbyte = el.getAttribute("MAXBYTE");
var minval = el.getAttribute("MINVAL");
var maxval = el.getAttribute("MAXVAL");
var option = el.getAttribute("OPTION");
var match = el.getAttribute("MATCHING"); // 수정 :: Prototype JS 와 충돌하여 'MATCH' 에서 'MATCHING' 으로 변경
var glue = el.getAttribute("GLUE");
var unit = el.getAttribute("UNIT");
var or = el.getAttribute("OR");
if(unit == null) unit = '';
if (el.getAttribute("REQUIRED") != null) {
var ERR_MSG = (el.getAttribute("MESSAGE") != null) ? el.getAttribute("MESSAGE") : null;
if ((el.type.toLowerCase() == "radio" || el.type.toLowerCase() == "checkbox") && !checkMultiBox(el)) return (ERR_MSG) ? doError(el,ERR_MSG) : doError(el,NO_CHECK);
if (el.tagName.toLowerCase() == "select" && (el.value == null || el.value == "")) {
return (ERR_MSG) ? doError(el,ERR_MSG) : doError(el,NO_CHECK);
}
if (el.value == null || el.value == "" ) {
if(el.tagName.toLowerCase()!='textarea' || (el.tagName.toLowerCase()=='textarea' && _type!='editor')) {
return (ERR_MSG) ? doError(el,ERR_MSG) : doError(el,NO_BLANK);
}
}
if(_type=='editor' && _editor_use[el.name] && !_content) {
return doError(el,NO_BLANK);
}
}
if (minbyte != null && el.value != "" && el.value.bytes() < parseInt(minbyte)) {
if(unit=='') unit = "바이트";
return doError(el,"{name+은는} 최소 "+minbyte+" "+unit+" 이상 입력해야 합니다.");
}
if (maxbyte != null && el.value != "" && el.value.bytes() > parseInt(maxbyte)) {
if(unit=='') unit = "바이트";
return doError(el,"{name+은는} 최대 "+maxbyte+" "+unit+" 이하로 입력해야 합니다.");
}
if (minval != null && el.value != "" && el.value < parseInt(minval)) return doError(el,"{name+은는} 최저 "+minval+" "+unit+" 이상 입력해야 합니다.");
if (maxval != null && el.value != "" && el.value > parseInt(maxval)) return doError(el,"{name+은는} 최고 "+maxval+" "+unit+" 이하로 입력해야 합니다.");
if (PATTERN != null && el.value != "" && !PATTERN(el,pattern)) return false;
if (match != null && (el.value != form.elements[match].value)) return doError(el,"{name+이가} 일치하지 않습니다.");
if (or != null && (el.value == null || el.value == "") && (form.elements[or].value==null || form.elements[or].value == "")) {
var name2 = (hname = form.elements[or].getAttribute("HNAME")) ? hname : form.elements[or].getAttribute("NAME");
return doError(el,"{name+} 또는 "+name2+" 중 하나는 입력해야 합니다.");
}
if (option != null && el.value != "") {
if (el.getAttribute('SPAN') != null) {
var _value = new Array();
for (span=0; span<el.getAttribute('SPAN');span++ ) _value[span] = form.elements[i+span].value;
var value = _value.join(glue == null ? '' : glue);
if (!funcs[option](el,value)) return false;
} else {
try{
if (!funcs[option](el)) return false;
} catch(e) {
//
}
}
}
}
return true;
}
function josa(str,tail) {
return (str.hasFinalConsonant()) ? tail.substring(0,1) : tail.substring(1,2);
}
function checkMultiBox(el) {
var obj = document.getElementsByName(el.name);
for (var i=0; i<obj.length; i++) if(obj[i].checked==true) return true;
return false;
}
function doError(el,type,action) {
var _type = $(el).attr("type");
var pattern = /{([a-zA-Z0-9_]+)\+?([가-힝]{2})?}/;
var name = (hname = el.getAttribute("HNAME")) ? hname : el.getAttribute("NAME");
pattern.exec(type);
var tail = (RegExp.$2) ? josa(eval(RegExp.$1),RegExp.$2) : "";
alert(type.replace(pattern,eval(RegExp.$1) + tail) + SPACE);
try{
if (action == "sel") el.select();
else if (action == "del") el.value = "";
if (el.getAttribute("NOFOCUS") == null) el.focus();
if(el.getAttribute("SETFOCUS") != null && el.getAttribute("SETFOCUS") !='') el.form.elements[el.getAttribute("SETFOCUS")].focus();
if(_type=='editor') {
// : cheditor는 어떻게 focus해야하나..
_editor_use[el.name].editArea.focus();
//_editor_use[el.name].returnFalse();
}
} catch(e){
return false;
}
return false;
}
/// 특수 패턴 검사 함수 매핑 ///
var funcs = new Array();
funcs['domain'] = isValidDomain;
funcs['email'] = isValidEmail;
funcs['hphone'] = isValidHPhone;
funcs['phone'] = isValidPhone;
funcs['tel'] = isValidTel;
funcs['userid'] = isValidUserid;
funcs['userpw'] = isValidUserpw;
funcs['number'] = isNumeric;
funcs['float'] = isFloat;
funcs['engonly'] = alphaOnly;
funcs['jumin'] = isValidJumin;
funcs['bizno'] = isValidBizNo;
funcs['image'] = isValidImage;
/// 패턴 검사 함수들 ///
function isValidDomain(el,value) {
var value = value ? value : el.value;
var pattern = /^[_a-zA-Z가-힝0-9-]+\.[a-zA-Z가-힝0-9-\.]+[a-zA-Z]+$/;
return (pattern.test(value)) ? true : doError(el,NOT_VALID);
}
function isValidEmail(el,value) {
var value = value ? value : el.value;
var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
return (pattern.test(value)) ? true : doError(el,NOT_VALID);
}
function isValidUserid(el) {
var pattern = /^[a-z]{1}[a-z0-9_]{3,19}$/;
return (pattern.test(el.value)) ? true : doError(el,"\n죄송합니다. 입력하신 아이디는 입력규칙에 어긋나므로 사용하실 수 없습니다.\n\n{name+은는} 영문자로 시작하는 6~20자의 영문 소문자와 숫자의 조합만 사용할 수 있습니다.");
}
function isValidUserpw(el) {
var pattern = /^[a-zA-Z0-9_.]{6,20}$/;
return (pattern.test(el.value)) ? true : doError(el,"\n죄송합니다. 입력하신 비밀번호는 입력규칙에 어긋나므로 사용하실 수 없습니다."+SPACE+"\n\n{name+은는} 6~20자의 영문 소문자와 숫자의 조합만 사용할 수 있습니다.");
}
function hasHangul(el) {
var pattern = /[가-힝]/;
return (pattern.test(el.value)) ? true : doError(el,"{name+은는} 반드시 한글을 포함해야 합니다.");
}
function alphaOnly(el) {
var pattern = /^[a-zA-Z]+$/;
return (pattern.test(el.value)) ? true : doError(el,NOT_VALID);
}
function isNumeric(el) {
var pattern = /^[0-9]+$/;
return (pattern.test(el.value)) ? true : doError(el,"{name+은는} 반드시 숫자로만 입력해야 합니다.");
}
function isFloat(el) {
var pattern = /^[0-9]+(\.[0-9]{1,4})?$/;
return (pattern.test(el.value)) ? true : doError(el,"{name+은는} 반드시 정수 또는 소수 넷째 자리까지만 입력해야 합니다.");
}
function isValidImage(el) {
var pattern = /(.+)(gif|jpeg|jpg|png)+$/i;
return (pattern.test(el.value)) ? true : doError(el,"{name+은는} 이미지 형식만 가능합니다.");
}
function isValidJumin(el,value) {
var pattern = /^([0-9]{6})-?([0-9]{7})$/;
var num = value ? value : el.value;
if (!pattern.test(num)) return doError(el,NOT_VALID);
num = RegExp.$1 + RegExp.$2;
var sum = 0;
var last = num.charCodeAt(12) - 0x30;
var bases = "234567892345";
for (var i=0; i<12; i++) {
if (isNaN(num.substring(i,i+1))) return doError(el,NOT_VALID);
sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
}
var mod = sum % 11;
return ((11 - mod) % 10 == last) ? true : doError(el,NOT_VALID);
/* 상위 계산방식에 걸리는 주민등록번호가 있을 경우에 아래와 같이 처리
var num = value ? value : el.value;
num = num.replace(/[^0-9]/g,'');
num = num.substr(0,13);
if(num.length<13) doError(el, NOT_VALID);
else {
num = num.replace(/([0-9]{6})([0-9]{7}$)/,"$1-$2");
el.value = num;
return true;
}
*/
}
function isValidBizNo(el, value) {
var pattern = /([0-9]{3})-?([0-9]{2})-?([0-9]{5})/;
var bizID = value ? value : el.value;
if (!pattern.test(bizID)) return doError(el,NOT_VALID);
bizID = RegExp.$1 + RegExp.$2 + RegExp.$3;
var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
var i, Sum=0, c2, remander;
for (i=0; i<=7; i++) Sum += checkID[i] * bizID.charAt(i);
c2 = "0" + (checkID[8] * bizID.charAt(8));
c2 = c2.substring(c2.length - 2, c2.length);
Sum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));
remander = (10 - (Sum % 10)) % 10 ;
if (Math.floor(bizID.charAt(9)) != remander) {
return doError(el,NOT_VALID);
}else{
return true;
}
}
function isValidPhone(el,value) {
var pattern = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
var num = value ? value : el.value;
if (pattern.exec(num)) { // 2007-09-30 전화번호 추가(03, 067) by 이창우
var phones = new Array("020","021","022","023","024","025","026","027","028","029","030","034","035","036","037","038","039","02","03","031","032","033","041","042","043","051","052","053","054","055","061","062","063","064","067", "070", "060");
if(in_array(RegExp.$1, phones, false)) {
if(!el.getAttribute('SPAN')) el.value = RegExp.$1 + "-" + RegExp.$2 + "-" + RegExp.$3;
return true;
}
}
return doError(el,NOT_VALID);
}
function isValidHPhone(el,value, flag) {
var pattern = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
var num = value ? value : el.value;
if (pattern.exec(num)) {
var hphones = new Array("011","016","017","018","019","010", "070", "060");
if(in_array(RegExp.$1, hphones, false)) {
if(!el.getAttribute('SPAN')) el.value = RegExp.$1 + "-" + RegExp.$2 + "-" + RegExp.$3;
return true;
}
}
if(flag)
return false;
else
return doError(el,NOT_VALID);
}
function isValidTel(el, value){
var result = false;
var result2 = false;
var pattern = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
try{
var num = value ? value : el.value;
} catch(e){
alert(e.message);
}
if (pattern.exec(num)) {
var hphones = new Array("011","016","017","018","019","010", "070", "060");
if(in_array(RegExp.$1, hphones, false)) {
if(!el.getAttribute('SPAN')) el.value = RegExp.$1 + "-" + RegExp.$2 + "-" + RegExp.$3;
return true
}
}
if(!result) {
var pattern = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
var num = value ? value : el.value;
if (pattern.exec(num)) { // 2007-09-30 전화번호 추가(03, 067) by 이창우
var phones = new Array("020","021","022","023","024","025","026","027","028","029","030","034","035","036","037","038","039","02","03","031","032","033","041","042","043","051","052","053","054","055","061","062","063","064","067", "070", "060");
if(in_array(RegExp.$1, phones, false)) {
if(!el.getAttribute('SPAN')) el.value = RegExp.$1 + "-" + RegExp.$2 + "-" + RegExp.$3;
return true;
}
}
}
return doError(el,NOT_VALID);
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+363
View File
@@ -0,0 +1,363 @@
/*
* JQuery Rolling
* songsungkyun@naver.com
* 2008/03/16
*/
(function(jQuery) {
var rollingParam = {};
jQuery.fn.rolling = function(rollingDirection, rollingItemWidth, rollingItemHeight, viewingItemCount) {
var rollingId = new Date().getTime();
var id = this.attr("id");
rollingParam[rollingId] = {
id: id,
rollingIsStarted: false,
rollingItemCount: 0,
rollingAnimationIndex: 0,
rollingItemWidth: 0,
rollingItemHeight: 0,
viewingItemCount: 0,
rollingTime: 0,
viewingTime: 0,
rollingAnimationFrame: 0,
rollingDirection: null,
rollingLeft: 0,
rollingTop: 0,
requestReverse: false,
newRollingAnimationFrame: 0
};
var param = rollingParam[rollingId];
param.rollingDirection = rollingDirection;
param.rollingItemWidth = rollingItemWidth;
param.rollingItemHeight = rollingItemHeight;
if (viewingItemCount == undefined) {
param.viewingItemCount = 1;
} else {
param.viewingItemCount = viewingItemCount;
}
if (param.rollingDirection == "left" ||
param.rollingDirection == "right") {
this.css("width", param.rollingItemWidth * param.viewingItemCount);
this.css("height", param.rollingItemHeight);
} else if (param.rollingDirection == "up" ||
param.rollingDirection == "down") {
this.css("width", param.rollingItemWidth);
this.css("height", param.rollingItemHeight * param.viewingItemCount);
}
this.css("position", "relative");
this.css("overflow", "hidden");
this.attr("rollingId", rollingId);
this.empty();
rollingContentDiv = jQuery("<div/>").appendTo(this);
rollingContentDiv.attr("id", rollingId);
rollingContentDiv.css("position", "absolute");
rollingContentDiv.attr("align", "left");
rollingContentDiv.css("left", "0");
rollingContentDiv.css("top", "0");
return this;
};
jQuery.fn.addRollingItem = function(html) {
var param = rollingParam[this.attr("rollingId")];
var rollingContentDiv = jQuery("#" + this.attr("rollingId"));
param.rollingItemCount++;
var rollingItem = null;
if (param.rollingDirection == "up") {
rollingItem = jQuery("<div class='item'/>").appendTo(rollingContentDiv);
} else if (param.rollingDirection == "right") {
rollingItem = jQuery("<div class='item'/>").prependTo(rollingContentDiv);
rollingItem.css("float", "left");
rollingContentDiv.css("width", param.rollingItemCount * param.rollingItemWidth);
rollingContentDiv.css("left", -(param.rollingItemCount - param.viewingItemCount) * param.rollingItemWidth);
param.rollingLeft = -(param.rollingItemCount - param.viewingItemCount) * param.rollingItemWidth;
} else if (param.rollingDirection == "down") {
rollingItem = jQuery("<div class='item'/>").prependTo(rollingContentDiv);
param.rollingTop = -(param.rollingItemCount - param.viewingItemCount) * param.rollingItemHeight;
rollingContentDiv.css("top", -(param.rollingItemCount - param.viewingItemCount) * param.rollingItemHeight);
} else if (param.rollingDirection == "left") {
rollingItem = jQuery("<div class='item'/>").appendTo(rollingContentDiv);
rollingItem.css("float", "left");
rollingContentDiv.css("width", param.rollingItemCount * param.rollingItemWidth);
}
rollingItem.css("overflow", "hidden");
rollingItem.css("width", param.rollingItemWidth);
rollingItem.css("height", param.rollingItemHeight);
rollingItem.html(html);
return this;
};
rollingAnimation = function(id) {
var param = rollingParam[id];
var rollingContentDiv = jQuery("#" + id);
if (rollingContentDiv.size() == 0) {
return;
}
var delayTime = param.rollingTime;
if (param.rollingIsStarted == false) {
setTimeout("rollingAnimation('" + id + "')", delayTime);
return;
}
if (param.rollingAnimationIndex == 0) {
if (param.newRollingAnimationFrame != param.rollingAnimationFrame) {
param.rollingAnimationFrame = param.newRollingAnimationFrame;
}
}
var isReverse = false;
if (param.requestReverse == true) {
isReverse = true;
param.requestReverse = false;
param.rollingAnimationIndex = param.rollingAnimationFrame - param.rollingAnimationIndex;
if (param.rollingDirection == "left") {
param.rollingDirection = "right";
} else if (param.rollingDirection == "right") {
param.rollingDirection = "left";
} else if (param.rollingDirection == "down") {
param.rollingDirection = "up";
} else if (param.rollingDirection == "up") {
param.rollingDirection = "down";
}
jQuery("#" + param.id).trigger("reverse");
} else {
if (param.rollingDirection == "up") {
param.rollingTop -= param.rollingItemHeight/param.rollingAnimationFrame;
if (-param.rollingTop > parseFloat(param.rollingItemHeight)* param.rollingItemCount) {
param.rollingTop = - parseFloat(param.rollingItemHeight)* param.rollingItemCount;
}
rollingContentDiv.css("top", param.rollingTop);
} else if (param.rollingDirection == "right") {
param.rollingLeft += param.rollingItemWidth/param.rollingAnimationFrame;
if (param.rollingLeft > parseFloat(param.rollingItemWidth)) {
param.rollingLeft = parseFloat(param.rollingItemWidth);
}
rollingContentDiv.css("left", param.rollingLeft);
} else if (param.rollingDirection == "down") {
param.rollingTop += param.rollingItemHeight/param.rollingAnimationFrame;
if (param.rollingTop > parseFloat(param.rollingItemHeight)) {
param.rollingTop = parseFloat(param.rollingItemHeight);
}
rollingContentDiv.css("top", param.rollingTop);
} else if (param.rollingDirection == "left") {
param.rollingLeft -= param.rollingItemWidth/param.rollingAnimationFrame;
if (-param.rollingLeft > parseFloat(param.rollingItemWidth) * param.rollingItemCount) {
param.rollingLeft = -parseFloat(param.rollingItemWidth) * param.rollingItemCount;
}
rollingContentDiv.css("left", param.rollingLeft);
}
param.rollingAnimationIndex++;
}
if (param.rollingAnimationIndex != 0 && param.rollingAnimationIndex%param.rollingAnimationFrame == 0) {
var currentRollingItemIndex = 0;
if (param.rollingDirection == "up" || param.rollingDirection == "left") {
currentRollingItemIndex = 0;
} else if (param.rollingDirection == "right" || param.rollingDirection == "down") {
currentRollingItemIndex = param.rollingItemCount - 1;
}
var currentRollingItem = jQuery("div[class='item']:eq(" + currentRollingItemIndex + ")", rollingContentDiv);
var rollingItem = null;
if (param.rollingDirection == "up") {
rollingItem = currentRollingItem.clone(true).appendTo(rollingContentDiv);
param.rollingTop += parseFloat(param.rollingItemHeight);
param.rollingTop = param.rollingItemHeight * Math.round(param.rollingTop/param.rollingItemHeight);
rollingContentDiv.css("top", param.rollingTop);
} else if (param.rollingDirection == "right") {
rollingItem = currentRollingItem.clone(true).prependTo(rollingContentDiv);
param.rollingLeft -= parseFloat(param.rollingItemWidth);
param.rollingLeft = param.rollingItemWidth * Math.round(param.rollingLeft/param.rollingItemWidth);
jQuery("#debug").html("rollingLeft:" + param.rollingLeft);
rollingItem.css("float", "left");
rollingContentDiv.css("left", param.rollingLeft);
} else if (param.rollingDirection == "down") {
rollingItem = currentRollingItem.clone(true).prependTo(rollingContentDiv);
param.rollingTop -= parseFloat(param.rollingItemHeight);
param.rollingTop = param.rollingItemHeight * Math.round(param.rollingTop/param.rollingItemHeight);
rollingContentDiv.css("top", param.rollingTop);
} else if (param.rollingDirection == "left") {
rollingItem = currentRollingItem.clone(true).appendTo(rollingContentDiv);
param.rollingLeft += parseFloat(param.rollingItemWidth);
param.rollingLeft = param.rollingItemWidth * Math.round(param.rollingLeft/param.rollingItemWidth);
jQuery("#debug").html("rollingLeft:" + param.rollingLeft);
rollingItem.css("float", "left");
rollingContentDiv.css("left", param.rollingLeft);
}
currentRollingItem.remove();
if (!isReverse) {
delayTime = param.viewingTime;
} else {
delayTime = 0;
}
var previousRollingItem = jQuery("div[class='item']:eq(" + currentRollingItemIndex + ")", rollingContentDiv);
jQuery("#" + param.id).trigger("viewing", [previousRollingItem]);
param.rollingAnimationIndex = 0;
}
if (param.rollingAnimationIndex != 0) {
var currentRollingItem = jQuery("div[class='item']:eq(0)", rollingContentDiv);
jQuery("#" + param.id).trigger("rolling", [currentRollingItem]);
}
setTimeout("rollingAnimation('" + id + "')", delayTime);
}
jQuery.fn.initRolling = function(rollingTime, viewingTime, rollingAnimationFrame) {
var param = rollingParam[this.attr("rollingId")];
var rollingContentDiv = jQuery("#" + this.attr("rollingId"));
var currentRollingItemIndex = 0;
if (param.rollingDirection == "up" ||
param.rollingDirection == "left") {
currentRollingItemIndex = 0;
} else if (param.rollingDirection == "right" ||
param.rollingDirection == "down") {
currentRollingItemIndex = param.rollingItemCount - 1;
}
var currentRollingItem = jQuery("div[class='item']:eq(" + currentRollingItemIndex + ")", rollingContentDiv);
this.trigger("viewing", [currentRollingItem]);
param.rollingTime = rollingTime
param.viewingTime = viewingTime;
param.rollingAnimationFrame = rollingAnimationFrame;
param.newRollingAnimationFrame = rollingAnimationFrame;
};
jQuery.fn.startRolling = function(rollingTime, viewingTime, rollingAnimationFrame) {
this.initRolling(rollingTime, viewingTime, rollingAnimationFrame);
var param = rollingParam[this.attr("rollingId")];
if (param.rollingIsStarted == false) {
param.rollingIsStarted = true;
this.trigger("start");
setTimeout("rollingAnimation('" + this.attr("rollingId") + "')", param.viewingTime);
}
return this;
};
jQuery.fn.readyRolling = function(rollingTime, viewingTime, rollingAnimationFrame) {
this.initRolling(rollingTime, viewingTime, rollingAnimationFrame);
var param = rollingParam[this.attr("rollingId")];
param.rollingIsStarted = false;
setTimeout("rollingAnimation('" + this.attr("rollingId") + "')", param.viewingTime);
return this;
};
jQuery.fn.stopRolling = function() {
this.trigger("stop");
rollingParam[this.attr("rollingId")].rollingIsStarted = false;
return this;
};
jQuery.fn.resumeRolling = function() {
if (rollingParam[this.attr('rollingId')].rollingIsStarted == false) {
rollingParam[this.attr('rollingId')].rollingIsStarted = true;
this.trigger("start");
}
return this;
};
jQuery.fn.getRollingTime = function() {
return rollingParam[this.attr('rollingId')].rollingTime;
};
jQuery.fn.getViewingTime = function() {
return rollingParam[this.attr('rollingId')].viewingTime;
};
jQuery.fn.getRollingAnimationFrame = function() {
return rollingParam[this.attr('rollingId')].rollingAnimationFrame;
};
jQuery.fn.getRollingDirection = function() {
return rollingParam[this.attr('rollingId')].rollingDirection;
};
jQuery.fn.setRollingTime = function(rollingTime) {
rollingParam[this.attr('rollingId')].rollingTime = rollingTime;
return this;
};
jQuery.fn.setViewingTime = function(viewingTime) {
rollingParam[this.attr('rollingId')].viewingTime = viewingTime;
return this;
};
jQuery.fn.setRollingAnimationFrame = function(rollingAnimationFrame) {
var oldStep = rollingParam[this.attr('rollingId')].rollingAnimationFrame;
var oldIndex = rollingParam[this.attr('rollingId')].rollingAnimationIndex;
var multiplier = rollingAnimationFrame / oldStep;
rollingParam[this.attr('rollingId')].rollingAnimationFrame = rollingAnimationFrame;
rollingParam[this.attr('rollingId')].newRollingAnimationFrame = rollingAnimationFrame;
rollingParam[this.attr('rollingId')].rollingAnimationIndex = Math.round(multiplier * oldIndex);
return this;
};
jQuery.fn.setRollingAnimationFrameNext = function(rollingAnimationFrame) {
rollingParam[this.attr('rollingId')].newRollingAnimationFrame = rollingAnimationFrame;
return this;
}
jQuery.fn.getRollingItems = function() {
return jQuery("div[class=item]", this);
};
jQuery.fn.getViewingItemCount = function() {
return rollingParam[this.attr('rollingId')].viewingItemCount;
};
jQuery.fn.bindViewingEvent = function(rollingEvent) {
return this.bind("viewing", rollingEvent);
};
jQuery.fn.unbindViewingEvent = function() {
return this.unbind("viewing");
};
jQuery.fn.bindRollingEvent = function(rollingEvent) {
return this.bind("rolling", rollingEvent);
};
jQuery.fn.unbindRollingEvent = function() {
return this.unbind("rolling");
};
jQuery.fn.bindStartEvent = function(rollingEvent) {
return this.bind("start", rollingEvent);
};
jQuery.fn.unbindStartEvent = function() {
return this.unbind("start");
};
jQuery.fn.bindStopEvent = function(rollingEvent) {
return this.bind("stop", rollingEvent);
};
jQuery.fn.unbindStopEvent = function() {
return this.unbind("stop");
};
jQuery.fn.bindReverseEvent = function(rollingEvent) {
return this.bind("reverse", rollingEvent);
};
jQuery.fn.unbindReverseEvent = function() {
return this.unbind("reverse");
};
jQuery.fn.reverseRolling = function() {
rollingParam[this.attr('rollingId')].requestReverse = true;
return this;
};
})(jQuery);
+247
View File
@@ -0,0 +1,247 @@
/**
* jquery.scrollFollow.js
* Copyright (c) 2008 Net Perspective (http://kitchen.net-perspective.com/)
* Licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php)
*
* @author R.A. Ray
*
* @projectDescription jQuery plugin for allowing an element to animate down as the user scrolls the page.
*
* @version 0.4.0
*
* @requires jquery.js (tested with 1.2.6)
* @requires ui.core.js (tested with 1.5.2)
*
* @optional jquery.cookie.js (http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/)
* @optional jquery.easing.js (http://gsgd.co.uk/sandbox/jquery/easing/ - tested with 1.3)
*
* @param speed int - Duration of animation (in milliseconds)
* default: 500
* @param offset int - Number of pixels box should remain from top of viewport
* default: 0
* @param easing string - Any one of the easing options from the easing plugin - Requires jQuery Easing Plugin < http://gsgd.co.uk/sandbox/jquery/easing/ >
* default: 'linear'
* @param container string - ID of the containing div
* default: box's immediate parent
* @param killSwitch string - ID of the On/Off toggle element
* default: 'killSwitch'
* @param onText string - killSwitch text to be displayed if sliding is enabled
* default: 'Turn Slide Off'
* @param offText string - killSwitch text to be displayed if sliding is disabled
* default: 'Turn Slide On'
* @param relativeTo string - Scroll animation can be relative to either the 'top' or 'bottom' of the viewport
* default: 'top'
* @param delay int - Time between the end of the scroll and the beginning of the animation in milliseconds
* default: 0
*/
( function( $ ) {
$.scrollFollow = function ( box, options )
{
// Convert box into a jQuery object
box = $( box );
// 'box' is the object to be animated
var position = box.css( 'position' );
function ani()
{
// The script runs on every scroll which really means many times during a scroll.
// We don't want multiple slides to queue up.
box.queue( [ ] );
// A bunch of values we need to determine where to animate to
var viewportHeight = parseInt( $( window ).height() );
var pageScroll = parseInt( $( document ).scrollTop() );
var parentTop = parseInt( $("body").offset().top );
var parentHeight = parseInt( $("body").height() );
var boxHeight = parseInt( box.height() + ( parseInt( box.css( 'marginTop' ) ) || 0 ) + ( parseInt( box.css( 'marginBottom' ) ) || 0 ) );
var aniTop;
// Make sure the user wants the animation to happen
if ( isActive )
{
// If the box should animate relative to the top of the window
if ( options.relativeTo == 'top' )
{
// Don't animate until the top of the window is close enough to the top of the box
if ( box.initialOffsetTop >= ( pageScroll + options.offset ) )
{
aniTop = box.initialTop;
}
else
{
aniTop = Math.min( ( Math.max( ( -parentTop ), ( pageScroll - box.initialOffsetTop + box.initialTop ) ) + options.offset ), ( parentHeight - boxHeight - box.paddingAdjustment ) );
}
}
// If the box should animate relative to the bottom of the window
else if ( options.relativeTo == 'bottom' )
{
// Don't animate until the bottom of the window is close enough to the bottom of the box
if ( ( box.initialOffsetTop + boxHeight ) >= ( pageScroll + options.offset + viewportHeight ) )
{
aniTop = box.initialTop;
}
else
{
aniTop = Math.min( ( pageScroll + viewportHeight - boxHeight - options.offset ), ( parentHeight - boxHeight ) );
}
}
// Checks to see if the relevant scroll was the last one
// "-20" is to account for inaccuracy in the timeout
if ( ( new Date().getTime() - box.lastScroll ) >= ( options.delay - 20 ) )
{
box.animate(
{
top: aniTop
}, options.speed, options.easing
);
}
}
};
// For user-initiated stopping of the slide
var isActive = true;
if ( $.cookie != undefined )
{
if( $.cookie( 'scrollFollowSetting' + box.attr( 'id' ) ) == 'false' )
{
var isActive = false;
$( '#' + options.killSwitch ).text( options.offText )
.toggle(
function ()
{
isActive = true;
$( this ).text( options.onText );
$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), true, { expires: 365, path: '/'} );
ani();
},
function ()
{
isActive = false;
$( this ).text( options.offText );
box.animate(
{
top: box.initialTop
}, options.speed, options.easing
);
$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), false, { expires: 365, path: '/'} );
}
);
}
else
{
$( '#' + options.killSwitch ).text( options.onText )
.toggle(
function ()
{
isActive = false;
$( this ).text( options.offText );
box.animate(
{
top: box.initialTop
}, 0
);
$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), false, { expires: 365, path: '/'} );
},
function ()
{
isActive = true;
$( this ).text( options.onText );
$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), true, { expires: 365, path: '/'} );
ani();
}
);
}
}
// If no parent ID was specified, and the immediate parent does not have an ID
// options.container will be undefined. So we need to figure out the parent element.
if ( options.container == '')
{
box.cont = box.parent();
}
else
{
box.cont = $( '#' + options.container );
}
// Finds the default positioning of the box.
box.initialOffsetTop = parseInt( box.offset().top );
box.initialTop = parseInt( box.css( 'top' ) ) || 0;
// Hack to fix different treatment of boxes positioned 'absolute' and 'relative'
if ( box.css( 'position' ) == 'relative' )
{
box.paddingAdjustment = parseInt( $("body").css( 'paddingTop' ) ) + parseInt( $("body").css( 'paddingBottom' ) );
}
else
{
box.paddingAdjustment = 0;
}
// Animate the box when the page is scrolled
$( window ).scroll( function ()
{
// Sets up the delay of the animation
$.fn.scrollFollow.interval = setTimeout( function(){ ani();} , options.delay );
// To check against right before setting the animation
box.lastScroll = new Date().getTime();
}
);
// Animate the box when the page is resized
$( window ).resize( function ()
{
// Sets up the delay of the animation
$.fn.scrollFollow.interval = setTimeout( function(){ ani();} , options.delay );
// To check against right before setting the animation
box.lastScroll = new Date().getTime();
}
);
// Run an initial animation on page load
box.lastScroll = 0;
ani();
};
$.fn.scrollFollow = function ( options )
{
options = options || {};
options.relativeTo = options.relativeTo || 'top';
options.speed = options.speed || 1000;
options.offset = options.offset || 10;
options.easing = options.easing || 'swing';
options.container = options.container || this.parent().attr( 'id' );
options.killSwitch = options.killSwitch || 'killSwitch';
options.onText = options.onText || 'Turn Slide Off';
options.offText = options.offText || 'Turn Slide On';
options.delay = options.delay || 0;
this.each( function()
{
new $.scrollFollow( this, options );
}
);
return this;
};
})( jQuery );
+23
View File
@@ -0,0 +1,23 @@
/* Korean initialisation for the jQuery calendar extension. */
/* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */
jQuery(function($){
$.datepicker.regional['ko'] = {
closeText: '닫기',
prevText: '이전달',
nextText: '다음달',
currentText: '오늘',
monthNames: ['1월','2월','3월','4월','5월','6월',
'7월','8월','9월','10월','11월','12월'],
monthNamesShort: ['1월','2월','3월','4월','5월','6월',
'7월','8월','9월','10월','11월','12월'],
dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'],
dayNamesShort: ['일','월','화','수','목','금','토'],
dayNamesMin: ['일','월','화','수','목','금','토'],
weekHeader: 'Wk',
dateFormat: 'yy-mm-dd',
firstDay: 0,
isRTL: false,
showMonthAfterYear: true,
yearSuffix: '년'};
$.datepicker.setDefaults($.datepicker.regional['ko']);
});
@@ -0,0 +1,6 @@
/*!
* jQuery Cycle2 Carousel Plugin
* http://jquery.malsup.com/cycle2/
* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL
*/
!function(a){"use strict";a.fn.cycle.transitions.carousel={preInit:function(b){b.hideNonActive=!1,b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.API.stop=this.stop;for(var c=0;c<b.slides.length;c++)a(b.slides[c]).css("position","static")},postInit:function(b){var c,d,e,f,g=b.carouselVertical;b.carouselWrap=b.container.wrap('<div class="cycle-carousel-wrap"></div>').parent(),b.carouselWrap.css({margin:0,padding:0,position:"absolute",top:0,left:0}),d=b.container.css("overflow","visible"),e=b.carouselWrap.css("overflow","hidden"),g?(f=b.carouselSlideDimension=b.slides.eq(0).outerHeight(!0),b.carouselWrap.css("height",b.carouselVisible*f),b.carouselOffset=0,b.API.getSlideExpr=function(a){return a},b.API.next=this.next,b.API.prev=this.prev,b.API.prepareTx=this.prepareTx,b.API.getTx=this.getTx,b.API.stop=this.stop,b.API.onDestroy=this.onDestroy,b.API.reinit=this.reinit,b.API.doTransition=this.doTransition,c=b.container.find(b.slides),b.slideCount=c.length):(f=b.carouselSlideDimension=b.slides.eq(0).outerWidth(!0),b.carouselWrap.css("width",b.carouselVisible*f),b.carouselOffset=0,b.API.getSlideExpr=function(a){return a},b.API.next=this.next,b.API.prev=this.prev,b.API.prepareTx=this.prepareTx,b.API.getTx=this.getTx,b.API.stop=this.stop,b.API.onDestroy=this.onDestroy,b.API.reinit=this.reinit,b.API.doTransition=this.doTransition,c=b.container.find(b.slides),b.slideCount=c.length),b.carouselWrap.on("cycle-update-view",function(){b.API.updateView()}),b.API.updateView()},getTx:function(a,b,c,d){var e={};return e.oldSlide=c,e.newSlide=b,e.opts=d,e.fx="carousel",e.slides=d.slides,e.slideCount=d.slides.length,[e]},prepareTx:function(a,b){var c,d,e,f,g=this.data("cycle.opts");if(g.busy)return;g.API.stop(),g.busy=!0,g.API.trigger("cycle-before",g),g.reverse=b,g.nextSlide=g.API.calcNextSlide(),g.currSlide=g.API.calcPrevSlide(),c=g.nextSlide-g.currSlide,g.allowWrap===!1&&g.currSlide===g.slideCount-1&&g.nextSlide===0&&g.reverse?c=-g.slideCount+1:g.allowWrap===!1&&g.currSlide===0&&g.nextSlide===g.slideCount-1&&!g.reverse&&(c=g.slideCount-1),d=g.carouselVertical,e=g.carouselSlideDimension*c,f=g.speed,g.carouselOffset+=e,g.container.animate(d?{top:g.carouselOffset}:{left:g.carouselOffset},f,g.easing,function(){g.API.doTransition()})},doTransition:function(){var a=this.data("cycle.opts");a.busy=!1,a.container.css(a.carouselVertical?{top:a.carouselOffset}:{left:a.carouselOffset}),a.API.trigger("cycle-after",a),a.API.queue()},next:function(){var a=this.data("cycle.opts");if(!a.busy||a.manualTrump){var b=a.API.calcNextSlide();a.allowWrap===!1&&b<a.currSlide&&a.currSlide!==a.slideCount-1||a.API.prepareTx(!1,a.reverse)}},prev:function(){var a=this.data("cycle.opts");if(!a.busy||a.manualTrump){var b=a.API.calcPrevSlide();a.allowWrap===!1&&b>a.currSlide&&a.currSlide!==0||a.API.prepareTx(!1,a.reverse)}},stop:function(){var b=this.data("cycle.opts");b.timeoutId&&clearTimeout(b.timeoutId),b.timeoutId=0,b.container.stop(),b.carouselWrap.stop(),b.API.trigger("cycle-stopped",b)},onDestroy:function(){var a=this.data("cycle.opts");a.carouselWrap.remove(),a.carouselWrap=null,a.container.unwrap()},reinit:function(){var b=this.data("cycle.opts"),c=a.extend({},b);this.cycle("destroy"),this.cycle(c)}}}(jQuery);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+22
View File
@@ -0,0 +1,22 @@
function flogin_submit(f) {
if (!f.mb_id.value) {
alert("아이디를 입력해주세요.");
f.mb_id.focus();
return false;
}
if (!f.mb_password.value) {
alert("비밀번호를 입력해주세요.");
f.mb_password.focus();
return false;
}
return true;
}
// flogin_submit 함수는 member.js 파일에 있으므로 여기서는 자동로그인 확인 스크립트만 남겨둡니다.
jQuery(function($){
$("#login_auto_login").click(function(){
if (this.checked) {
this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");
}
});
});
+38
View File
@@ -0,0 +1,38 @@
/**
* 지정된 범위(scope) 내에서 '.rb-autounwrap' 클래스를 찾아 포장을 해제하는 함수
* @param {HTMLElement} scope - 검색을 수행할 DOM 요소. 제공되지 않으면 문서 전체를 검색합니다.
*/
function unwrapModuleContainers(scope) {
// 검색 범위를 지정합니다.
const searchScope = scope || document;
// 'rb-autounwrap' 클래스를 가진 모든 모듈 컨테이너를 찾습니다.
const autoUnwrapModules = searchScope.querySelectorAll('.rb-autounwrap');
autoUnwrapModules.forEach(moduleContainer => {
// 이 모듈이 리빌더의 .content_box 안에 직접적으로 포함되어 있는지 확인합니다.
if (moduleContainer.parentElement.closest('.content_box')) {
// 부모가 .content_box라면, 이 모듈은 중첩된 상태입니다.
// 따라서, moduleContainer의 포장을 해제합니다.
// 1. moduleContainer 안의 모든 자식 요소들을 가져옵니다.
const children = Array.from(moduleContainer.childNodes);
// 2. moduleContainer의 부모 요소를 찾습니다.
const parent = moduleContainer.parentNode;
// 3. 모든 자식 요소들을 moduleContainer의 앞으로 이동시킵니다.
children.forEach(child => {
parent.insertBefore(child, moduleContainer);
});
// 4. 이제 비어있는 moduleContainer를 제거합니다.
parent.removeChild(moduleContainer);
}
});
}
// 페이지가 처음 로드될 때 한 번 실행하여, 정적으로 포함된 모듈도 처리할 수 있도록 합니다.
document.addEventListener('DOMContentLoaded', function() {
unwrapModuleContainers(document.body);
});
+164
View File
@@ -0,0 +1,164 @@
var netfu_board = function() {
this.del = function() {
}
this.board_read = function(el, bo_table, no) {
$.post("/include/regist.php", "mode=board_read&bo_table="+bo_table+"&no="+no, function(data){
data = $.parseJSON(data);
if(data.msg) alert(data.msg);
if(data.js) eval(data.js);
if(data.move) location.href = data.move;
});
}
this.board_btn_click = function(el, bo_table, no, code) {
$.post("/include/regist.php", "mode=board_btn_click&code="+code+"&bo_table="+bo_table+"&no="+no, function(data) {
data = $.parseJSON(data);
if(data.msg) alert(data.msg);
if(data.js) eval(data.js);
if(data.move) location.href = data.move;
});
}
this.board_add_file = function(el, code) {
switch(code) {
case "add":
if(location.href.indexOf("/m/")==-1) {
var tag = '<div class="file_item_"><div class="item_"><div class="file_bx"><input type="file" id="" name="file_name[]" value=""></div></div><div style="float:left; margin-bottom:5px; width:100%; "></div></div>';
} else {
var tag = '<div class="file_item_"><div class="item_"><span><input type="file" id="" name="file_name[]" value=""></span></div><div style="float:left; margin-bottom:5px; width:100%; "></div></div>';
}
$(el).closest("tr").find("td.file").find(".file-in-").append(tag);
break;
case "del":
if(confirm("삭제하시겠습니까?")) {
var _len = $(el).closest("tr").find(".file").find(".file_item_").length;
if(_len<=1) {
alert("1개이하는 삭제할 수 없습니다.");
return;
}
$(el).closest("tr").find(".file").find(".file_item_").eq(_len-1).remove();
}
break;
}
}
this.board_file_delete = function(el, bo_table, no, k) {
var chk = $(el).closest(".file_item_").find(".file_chk-")[0].checked;
if(!chk) {
alert("파일을 삭제하실려면 파일명앞에 체크박스에 체크해주셔야합니다.");
} else {
if(confirm("삭제하시겠습니까?")) {
$.post(url+"/board/process/regist.php", "mode=file_delete&bo_table="+bo_table+"&no="+no+"&k="+k, function(data){
data = $.parseJSON(data);
if(data.msg) alert(data.msg);
if(data.move) location.href = data.move;
if(data.js) eval(data.js);
});
}
}
}
this.is_goods = function(el) {
var board_code = $(el).attr("board_code");
var code = $(el).attr("code");
var bo_table = $(el).attr("bo_table");
var no = $(el).attr("no");
$.post(url+"/board/process/good.php", { ajax:'true', good:'good', board_code:board_code, code:code, bo_table:bo_table, wr_no:no }, function(result){
switch(result){
case '0046': alert("회원만 추천 가능합니다."); break;
case '0047': alert("값이 제대로 넘어오지 않았습니다."); break;
case '0048': alert("해당 게시물에서만 추천 또는 비추천 하실 수 있습니다."); break;
case '0049': alert("게시판이 존재하지 않습니다."); break;
case '0050': alert("자신의 글에는 추천 또는 비추천 하실 수 없습니다."); break;
case '0051': alert("이 게시판은 추천 기능을 사용하지 않습니다."); break;
case '0052': alert("이 게시판은 비추천 기능을 사용하지 않습니다."); break;
default :
alert(result);
if(result.indexOf('이 글을')>=0) location.reload();
break;
}
});
}
this.fwrite_submit = function() {
var f = document.fwrite;
var con = '';
if(location.href.indexOf("/m/")==-1) {
if (document.getElementById('tx_wr_content')) {
if (!ed_wr_content.outputBodyText()) {
alert('내용을 입력하십시오.');
ed_wr_content.returnFalse();
return false;
}
}
// : 게시판 글쓸때 이 함수가 꼭 있어야함.
editor_check();
document.getElementById('tx_wr_content').value = ed_wr_content.outputBodyHTML();
}
var subject = "";
var content = "";
if(validate(f)){
if(_editor_use['wr_content']) con = _editor_use['wr_content'].outputBodyHTML();
else con = f.wr_content.value;
$.ajax({
url: "/include/regist.php",
type: "POST",
data: {
"mode":"board_filter",
"bo_table" : f.bo_table.value,
"subject": f.wr_subject.value,
"content": con
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
if (subject) {
alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
f.wr_subject.focus();
return false;
}
if (content) {
alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
if (typeof(ed_wr_content) != "undefined")
ed_wr_content.returnFalse();
else
f.wr_content.focus();
return false;
}
f.action = '/board/process/regist.php';
f.submit();
}
});
}
return false;
}
}
var netfu_board = new netfu_board();
+310
View File
@@ -0,0 +1,310 @@
var netfu_news = function() {
this.page_code = '';
this.all_menu = function(code) {
//if(_display=='none') $(".side_menu2").fadeOut();
//else $(".side_menu2").fadeIn('slow');
var _class = $(".allMenu").attr("class");
switch(code) {
case "open":
$(".allMenu").fadeIn('slow');
//$(".allMenu").removeClass("none_");
break;
case "close":
$(".allMenu").fadeOut();
//$(".allMenu").addClass("none_");
break;
default:
if(_class.indexOf("none_")>=0) $(".allMenu").fadeIn('slow');
else $(".allMenu").fadeOut();
//if(_class.indexOf("none_")>=0) $(".allMenu").removeClass("none_");
//else $(".allMenu").addClass("none_");
break;
}
}
this.click_more_page = {};
this.click_more2 = function(el, code, section) {
if(!this.click_more_page[code+section]) this.click_more_page[code+section] = 1;
this.click_more_page[code+section]++;
$.post("/include/regist.php", "mode=ajax_more_click&code="+code+"&page="+this.click_more_page[code+section]+"&section="+section, function(data) {
data = $.parseJSON(data);
if(data.js) eval(data.js);
});
}
this.login_tab = function(el, code) {
$(".login_form_").css({"display":"none"});
$(".login_tab").find(".tab").removeClass("on");
$(el).addClass("on");
switch(code) {
case 'login':
$(".login_form_.login_form").css({"display":"block"});
break;
case 'sns':
$(".login_form_.sns_login").css({"display":"block"});
break;
}
}
this.search = function(el) {
var form = $(el).closest("form");
form.submit();
}
this.news_scrap = function(no) {
$.post('/include/regist.php', { mode:'news_scrap', ajax:1, no:no }, function(result){
if( result=='0012') {
alert("회원만 스크랩 가능합니다.\n\n회원이시라면 로그인해 주세요.");
if(netfu_util.page_check=='mobile') location.href = "/m/page/login.php?url="+encodeURIComponent(location.href);
else location.href = "/member/login.php?url="+encodeURIComponent(location.href);
} else {
if( result == '0013' ){
alert("기사 스크랩중 오류가 발생했습니다.");
} else if( result == '0014' ){
alert("이미 스크랩한 기사 입니다.");
} else {
alert("뉴스 기사를 스크랩 하였습니다.");
}
}
});
}
this.mail_send = function(){
var send_mail = $('#send_mail').val();
if( !send_mail || send_mail == '' ){
alert("보내는분 이메일 주소를 입력해 주세요.");
$('#send_mail').focus();
return;
}
var receive_mail = $('#receive_mail').val();
if( !receive_mail || receive_mail == '' ){
alert("받는분 이메일 주소를 입력해 주세요.");
$('#receive_mail').focus();
return;
}
var mail_options = {
beforeSubmit: function(formData, jqForm, form_options){
var queryString = $.param(formData);
return true;
},
success : function(responseText, statusText, xhr, $form){
alert("기사 내용이 메일로 발송 되었습니다.");
mail_layer_close();
}
};
$('#mailLayerFrm').ajaxSubmit(mail_options);
//$('#mailLayerFrm').submit();
}
this.comment_box = function(el, no, code) {
var form = document.forms['fcomment'];
switch(code) {
case 'comment_insert':
case 'comment_update':
var obj = $(el).closest('.reply_con');
$(".reply_list_start").find(".reply_con_write__").css({"display":"none"});
var form_is = obj.find(".reply_con_write__");
if(!form_is[0]) {
var _clone = $(".reply_con_write__").eq(0).clone();
_clone.find("[name='comment_id']").val(no);
_clone.find("form").attr("name", "freply_"+no);
_clone.removeClass("mt0");
if(location.href.indexOf("/m/")>=0) {
obj.find(".comment01.comment_con").append(_clone);
} else
obj.append(_clone);
} else {
obj.find(".reply_con_write__").css({"display":"block"});
}
if(code=='comment_update') obj.find("textarea").val(obj.find(".reply_text").find("p").html());
obj.find("[name='mode']").val(code);
break;
case 'comment_delete':
if( is_member ) {
if( confirm("댓글을 삭제하시겠습니까?")){
var actions = form.action.indexOf("/board/")>=0 ? '/board/process/delete_comment.php' : form.action;
var token = form.token ? form.token.value : '';
$.post(actions,{ mode:'comment_delete', ajax:1, comment_id:no, bo_table:form.bo_table.value, token:token }, function(result){
result = $.parseJSON(result);
if(result.msg) alert(result.msg);
location.reload();
});
}
} else {
netfu_util.password_click(el, form.bo_table.value, no, code, '.reply_con_list_');
}
break;
case 'comment_report':
if( confirm("기사의 해당 댓글을 신고하시겠습니까?")){
$.post('/include/regist.php',{ mode:'comment_report', ajax:1, comment_id:no }, function(result){
switch(result){
case '0011':
alert("등록된 코멘트가 없거나 코멘트 글이 아닙니다.");
break;
case '0020':
alert("이미 신고하신 글 입니다.");
break;
default:
alert("해당 댓글을 신고 하였습니다.");
break;
}
});
}
break;
}
}
this.is_goods = function( el, wr_id, is_good ){
var form = document.forms['fcomment'];
var _para = $(form).serialize();
$.post('/include/regist.php', _para+"&mode=comment_is_goods&ajax=1&wr_id="+wr_id+"&is_good="+is_good, function(result){
result = $.parseJSON(result);
if(result.comment_is) {
if(location.href.indexOf("/m/")>=0) {
var _count = parseInt($(el).find("span").text());
alert(_count);
$(el).find("span").text((_count+1));
} else {
var _count = parseInt($(el).find("em").text());
$(el).find("em").text((_count+1));
}
}
if(result.msg) {
alert(result.msg);
}
else {
if( is_good == 'good' ){
$('#good_'+wr_id).html(result);
} else {
$('#nogood_'+wr_id).html(result);
}
}
});
}
// : 이메일
this.send_email = function(el, no) {
if(el) {
var _offset = $(el).offset();
var _width = $(".mail_box").width();
$(".mail_box").css({"top":(_offset.top+37)+'px', "left":(_offset.left-_width+60)+'px'});
}
var _class = $(".mail_box").attr("class");
if(_class.indexOf("none_")>=0) $(".mail_box").removeClass("none_");
else $(".mail_box").addClass("none_");
}
this.send_mail_process = function() {
var form = document.forms['mailLayerFrm'];
if( !form.send_mail.value ){
alert("보내는분 이메일 주소를 입력해 주세요.");
form.send_mail.focus();
return;
}
if( !form.receive_mail.value ){
alert("받는분 이메일 주소를 입력해 주세요.");
form.send_mail.focus();
return;
}
var mail_options = {
beforeSubmit: function(){
},
success : function(){
alert("기사 내용이 메일로 발송 되었습니다.");
netfu_news.send_email();
}
};
$(form).ajaxSubmit(mail_options);
}
this.support_price_click = function(el, k) {
var form = document.forms['fsupport'];
var _para = $(form).serialize();
$.post("/include/regist.php", _para+"&mode=support_price_click&k="+k, function(data){
data = $.parseJSON(data);
if(data.js) eval(data.js);
$(el).closest(".tab").find("li").removeClass("on");
$(el).addClass("on");
});
}
this.add_price = function(price) {
var form = document.forms['fsupport'];
var _para = $(form).serialize();
$.post("/include/regist.php", _para+"&mode=support_price_add&price="+price, function(data){
data = $.parseJSON(data);
if(data.msg) alert(data.msg);
if(data.js) eval(data.js);
if(data.move) location.href = data.move;
});
}
this.more_page = {};
this.more_view = function(type, limit, p_limit) {
var _para = $(document.forms['base_form']).serialize();
if(!netfu_news.more_page[type+'_use']) netfu_news.more_page[type+'_use'] = 'Y';
if(netfu_news.more_page[type+'_use']=='Y') {
if(!netfu_news.more_page[type]) netfu_news.more_page[type] = 1;
p_limit = p_limit ? p_limit : '';
$.post("/m/include/regist.php", _para+"&mode=more_view&type="+type+"&start="+limit+"&p_limit="+p_limit+"&page="+netfu_news.more_page[type]+"&page_code="+netfu_news.page_code, function(data){
//alert(data);
data = $.parseJSON(data);
if(data.js) eval(data.js);
$("."+type+"_news").find(".data_paste").append(data.html);
netfu_news.more_page[type]++;
});
}
}
this.ajax_cate_change = function(el) {
if(el.value=='photo' || el.value=='movie') {
netfu_util.ajax_cate(el, el.value, 1)
} else {
netfu_util.ajax_cate(el, 'section', 1);
}
}
// : 설문조사
// : 설문조사
}
var netfu_news = new netfu_news();
+638
View File
@@ -0,0 +1,638 @@
var netfu_util = function() {
this.page_check = location.href.indexOf("/m/")>=0 ? 'mobile' : 'pc';
this.all_check = function(el, c) {
if(el.type=='checkbox') {
is = el.checked;
} else {
is = $(".all_chk")[0].checked;
is = is ? false : true;
}
$(".all_chk").prop("checked", is);
$(c).prop("checked", is);
}
this.agree_chk = function(fname, name_arr) {
var form = document.forms[fname];
var len = name_arr.length;
if(len>0) {
for(var i=0; i<len; i++) {
var chk = $(form).find("[name='"+name_arr[i]+"']:checked").length;
if(chk<=0) return name_arr[i];
}
}
return false;
}
this.put_text = function(el, obj) {
obj.val(el.value);
};
this.email_select = function(el, name) {
$(el).closest("td").find("[name='"+name+"']").eq(1).val(el.value);
}
this.login_submit = function(form) {
netfu_util.ajax_submit(form);
return true;
}
this.ajax_cate = function(el, type, key, read_type) {
var obj = $(el.form).find("[name='"+el.name+"']");
var _put = $(el).attr("put");
var put_obj = _put ? $("#"+_put) : obj.eq(key);
var val = $(el).attr("val");
var _this = $(el).attr("this");
var _no = read_type!='auto' ? el.value : (el.value ? el.value : _this);
var _html = '<option value="">'+put_obj.find("option").eq(0).html()+'</option>';
if(!el.value && !read_type) {
put_obj.html(_html);
} else {
if(_no) {
$.post("/include/regist.php", "mode=get_cate_array&type="+type+"&no="+_no, function(data){
data = $.parseJSON(data);
var len = data.cate.length;
if($(put_obj).closest(".third_section")[0]) {
var _display = len>0 ? 'inline' : 'none';
$(".third_section").css("display",_display);
}
put_obj.html('');
for(var i=0; i<len; i++) {
var selected = val==data.cate[i]['wr_code'] && val ? 'selected' : '';
_html += '<option value="'+data.cate[i]['wr_code']+'" '+selected+'>'+data.cate[i]['wr_name']+'</option>';
}
put_obj.html(_html);
});
}
}
}
this.ajax_submit = function(el, noneObj) {
var form = el;
if(validate(form)) {
$(form).ajaxSubmit({
//보내기전 validation check가 필요할경우
beforeSubmit: function (data, frm, opt) {
//alert("전송전!!");
return true;
},
//submit이후의 처리
success: function(data, statusText) {
//alert(data);
data = $.parseJSON(data);
if(data.msg) alert(data.msg);
if(data.js) eval(data.js);
if(data.move) location.href = data.move;
if(noneObj) noneObj.css('display', 'none');
return false;
},
//ajax error
error: function(data,status,error){
alert("에러발생!!");
return false;
}
});
}
return false;
}
this.calendar_sels = function(){
$('#calendar_sel').datepicker({
dateFormat: 'yy-mm-dd',
maxDate: '+0d',
onSelect: function(dateText, inst) {
var date = $(this).val();
location.href = "./all.php?date=" + date;
/*
var time = $('#time').val();
alert('on select triggered');
$("#start").val(date + time.toString(' HH:mm').toString());
*/
}
});
}
/* : 쿠키 저장하기*/
this.setCookie = function( name, value, expiredays )
{
var todayDate = new Date();
todayDate.setDate(todayDate.getDate() + expiredays);
document.cookie = name + '=' + escape( value ) + '; path=/; expires=' + todayDate.toGMTString() + ';'
};
this.getCookie = function(name) {
var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
return value? value[2] : null;
};
this.scaleFont = function (val, c) {
var fontSize = getFontSize();
var fontSizeSave = fontSize;
if (val > 0) {
if (fontSize <= 30) {
fontSize = fontSize + val;
}
} else {
if (fontSize > 14) {
fontSize = fontSize + val;
}
}
fontSize = fontSize + "px";
$(c).css({'font-size':fontSize});
//$(c).css('fontSize',fontSize);
set_cookies("ck_fontsize", fontSize, 30, domain);
}
this.password_reset_form = function(el, c) {
var form = $(el).closest("form")[0];
$(c).css({"display":"none"});
form.reset();
}
this.password_click = function(el, bo_table, no, code, c) {
var form = document.forms['fpassword'];
form.no.value = no;
form.code.value = code;
form.bo_table.value = bo_table;
$.post("/include/regist.php", "mode=get_token", function(data){
data = $.parseJSON(data);
form.token.value = data.token;
$(el).closest(c).css('position','relative');
$(".password_div__").css({"display":"block"});
$(".password_div__").parent().appendTo($(el).closest(c));
if(c=='.btn_board1_') $(".password_div__").css({"top":"40px", "left":"0px", "right":"auto"});
if(location.href.indexOf("/m/")>=0) $(".password_div__").css({"top":"50px"});
if(c=='.reply_con_list_') {
if(location.href.indexOf("/m/")>=0) $(".password_div__").css({"top":"95px", "left":"5px"});
else $(".password_div__").css({"top":"50px", "right":"5px"});
}
if(c=='.info_tag_') $(".password_div__").css({"top":"5px", "left":"30px"});
$(".password_div__").addClass("on");
form.password.focus();
});
}
this.password_click_confirm = function(el) {
if(validate(el)) {
var _para = $(el).serialize();
$.post("/include/regist.php", _para+"&mode=password_confirm", function(data){
data = $.parseJSON(data);
if(data.msg) alert(data.msg);
if(data.js) eval(data.js);
if(data.move) location.href = data.move;
});
}
return false;
}
this.search_page_rows = function(el, fname) {
var form = document.forms[fname];
form.submit();
}
this.mb_id_checking = function(fname){
var form = document.forms[fname];
var mb_id = form.mb_id.value;
if( mb_id.trim() ){
$('#duplicate_id_check').val(1);
$.post('/member/process/regist.php', { mode:'mb_id_check', ajax:1, mb_id:mb_id }, function(result){
if(result=='0007'){
$('#is_duplicate_id').val(1);
alert("이미 존재하는 아이디 입니다!");
form.mb_id.value = "";
} else if(result=='0003'){
$('#is_duplicate_id').val(0);
alert("사용 가능한 아이디 입니다.");
}
});
} else {
$('#duplicate_id_check').val(0);
$('#is_duplicate_id').val(1);
alert("아이디를 입력해 주세요.");
form.mb_id.focus();
return false;
}
}
this.mb_nick_checking = function(fname){
var form = document.forms[fname];
var mb_nick = form.mb_nick.value;
if( mb_nick.trim() ){
$('#duplicate_nick_check').val(1);
$.post('/member/process/regist.php', { mode:'mb_nick_check', ajax:1, mb_nick:mb_nick }, function(result){
if(result=='0010'){
$('#is_duplicate_nick').val(1);
$('#duplicate_nick_check').val(0);
alert("닉네임에 공백이 존재합니다.\n\n공백없이 입력해 주세요.");
} else if(result=='0011'){
$('#is_duplicate_nick').val(1);
alert("이미 존재하는 닉네임 입니다!");
if(location.href.indexOf('mypage/update_form.php')==-1) form.mb_nick.value = "";
} else if(result=='0004'){
$('#is_duplicate_nick').val(0);
alert("사용 가능한 닉네임 입니다.");
}
});
} else {
$('#duplicate_nick_check').val(0);
$('#is_duplicate_nick').val(1);
alert("닉네임을 입력해 주세요.");
form.mb_nick.focus();
return false;
}
}
this.find_id = function(){ // 아이디 찾기
var form = document.forms['f_findid'];
if( $('#find_id_use').length ){
var use_sel = $('#find_id_use').val();
} else {
var use_sel = $("input[name='find_id_use']:checked").val();
}
if(validate(form)) {
var find_name = $('#find_id_name').val(), find_email = $('#find_id_email').val();
$.post('/member/process/regist.php', { mode:'find_id', find_type:use_sel, find_name:find_name, find_email:find_email }, function(result){
if( result=='0026' ){
alert("가입된 회원정보를 찾을 수 없습니다.");
} else {
alert("문의하신 아이디가 ["+find_email+"] 로 전송되었습니다.");
form.reset();
}
});
}
}
this.find_pass = function(){ // 비밀번호 찾기
var form = document.forms['f_findpw'];
if( $('#find_pass_use').length ){
var use_sel = $('#find_pass_use').val();
} else {
var use_sel = $("input[name='find_pass_use']:checked").val();
}
if(validate(form)) {
var find_name = $('#find_pass_name').val(), find_id = $('#find_pass_id').val(), find_email = $('#find_pass_email').val();
$.post('/member/process/regist.php', { mode:'find_pass', find_type:use_sel, find_name:find_name, find_id:find_id, find_email:find_email }, function(result){
if(result=='0026'){
alert("가입된 회원정보를 찾을 수 없습니다.");
} else {
alert("문의하신 비밀번호가 ["+find_email+"] 로 전송되었습니다.");
form.reset();
}
});
}
}
this.date_calc = function(date, sel_date) {
var ch_date = new Date(date);
var sel_date_arr = sel_date.split(" ");
switch(sel_date_arr[1]) {
case "day":
ch_date.setDate(ch_date.getDate()-sel_date[0]);
break;
case "month":
ch_date.setDate(ch_date.getMonth()-sel_date[0]);
break;
case "year":
ch_date.setDate(ch_date.getFullYear()-sel_date[0]);
break;
}
return ch_date.getFullYear()+'-'+('0'+(ch_date.getMonth() + 1)).slice(-2)+'-'+('0'+ch_date.getDate()).slice(-2);
}
this.put_date = function(el) {
var sel_date = $(el).attr('date');
var d_start = $(el).attr("d_start");
var d_end = $(el).attr("d_end");
var todate = new Date();
var day_txt = todate.getFullYear()+'-'+('0'+(todate.getMonth() + 1)).slice(-2)+'-'+('0'+todate.getDate()).slice(-2);
switch(sel_date) {
case 'today':
$('#'+d_start).val(day_txt);
$('#'+d_end).val(day_txt);
break;
default:
var ch_date = netfu_util.date_calc(day_txt, sel_date);
$('#'+d_start).datepicker('setDate', '-'+sel_date);
$('#'+d_end).val(day_txt);
break;
}
}
this.editor_start = function() {
$("textarea").each(function(){
var _type = $(this).attr("type");
if(_type=='editor') {
var _name = $(this).attr("name");
var _width = $(this).css("width");
var _height = $(this).css("height");
if(!$(this).attr("id")) $(this).attr("id", "tx_"+_name);
try{
_editor_use[_name] = new cheditor('ed_'+_name);
_editor_use[_name].config.editorHeight = _height ? _height : '250px';
_editor_use[_name].config.editorWidth = _width ? _width : '100%';
_editor_use[_name].inputForm = 'tx_'+_name;
_editor_use[_name].run();
}catch(e){
alert(e.message);
}
}
});
}
this.tr_open = function(el, k) {
var display = $(el).closest("tbody").find("tr").eq(k).css("display");
display = display=='none' ? 'table-row' : 'none';
$(el).closest("tbody").find("tr").eq(k).css({"display":display});
}
this.view_photo = function(el) {
}
this.share_sns = function(el, code) {
var _subject = $(el).attr("txt_");
var _link = location.href;
switch(code) {
case "kakao_story":
Kakao.Story.share({
url: _link
});
break;
case "facebook":
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(_link),'sharer','toolbar=0,status=0,width=626,height=436');
break;
case "twitter":
var url = "http://twitter.com/share?text="+encodeURIComponent(_subject)+"&url="+escape(_link);
window.open(url);
break;
case "google":
var url = "https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=&url=https://plus.google.com/share?url="+_link;
window.open(url);
break;
case "naver_band":
window.open('http://band.us/plugin/share?body='+encodeURIComponent(_subject+" - "+_link)+'&route='+encodeURIComponent(url), 'share_band', 'width=410, height=540, resizable=no');
break;
case "naver_blog":
var url = encodeURI(encodeURIComponent(_link));
var title = encodeURI(_subject);
var shareURL = "https://share.naver.com/web/shareView?url=" + url + "&title=" + title;
window.open(shareURL);
break;
}
}
this.share_btn_gp_click = function() {
var display = $(".share_btn_gp").css("display")=='none' ? 'block' : 'none';
$(".share_btn_gp").css("display", display);
}
this.get_date = function(val) {
var val_arr = val.split(" ");
val_arr[0] = parseInt(val_arr[0]);
if(val_arr[1]=='week') {
val_arr[0] = val_arr[0]*7;
val_arr[1] = 'day';
}
// : 오늘날짜
var today = new Date();
var today_dd = (today.getDate()+1 < 10) ? '0' + (today.getDate()+1) : today.getDate()+1;
var today_mm = (today.getMonth()+1 < 10) ? '0' + (today.getMonth()+1) : today.getMonth()+1;
var yy = today.getFullYear();
var mm = today.getMonth();
var dd = today.getDate();
if(val_arr[1]=='year') yy = yy - val_arr[0];
if(val_arr[1]=='month') mm = mm - val_arr[0];
if(val_arr[1]=='day') dd = dd - val_arr[0];
// : 클릭날짜
var prev_day = new Date(yy, mm, dd);
var prev_mm = (prev_day.getMonth()+1 < 10) ? '0' + (prev_day.getMonth()+1) : prev_day.getMonth()+1;
var prev_dd = (prev_day.getDate() < 10) ? '0' + (prev_day.getDate()+1) : prev_day.getDate()+1;
// : 결과
var day1 = prev_day.getFullYear()+'-'+(prev_mm)+'-'+prev_dd;
var day2 = today.getFullYear()+'-'+(today_mm)+'-'+today_dd;
return [day1, day2];
}
this.add_tag_func = function(el) {
var txt = $(el).text();
switch(txt) {
case "추가":
var tag = $(el).parent().eq(0).clone(true).wrapAll("<div/>").parent();
tag.find("input").val("");
tag = tag.html();
tag = tag.replace(/추가/gi, '삭제');
$(el).closest(".paste_tag_").append(tag);
break;
default:
if(confirm("삭제하시겠습니까?"))
$(el).parent().remove();
break;
}
}
/*############## 설문조사 ###############*/
this.poll_result = function(el) {
$.post("/include/regist.php", "mode=poll_result", function(data){
data = $.parseJSON(data);
if(data.js) eval(data.js);
});
}
this.poll_position = function(el) {
var _offset = $(el).closest(".poll_select_").offset();
var _width = $(".poll_result_view").width();
$(".poll_result_view").css({'top':_offset.top, 'left':(_offset.left-_width-30)+'px'});
}
this.poll_insert = function( el, no ){
var poll_answer = $("input[name='wr_answer']:checked").val();
if(!poll_answer) {
alert("설문조사를 선택해주시기 바랍니다.");
} else {
$.post('/include/process/poll.php', { mode:'poll_insert', no:no, answer:poll_answer }, function(result){
switch(result){
case '0085': // 회원만 투표 가능합니다.
alert("회원만 투표 가능합니다.");
location.href = "/member/login.php?url="+location.href;
return false;
break;
case '0086': // 이미 투표하셨습니다.
alert("이미 투표하셨습니다.");
return false;
break;
default:
if(confirm("투표가 완료 되었습니다.\n결과를 확인하시겠습니까?")) {
netfu_util.poll_result(el);
}
return false;
break;
}
$('#poll_quest_info').show();
});
}
}
this.poll_questionAnswer = function(answer, mode, no, sels){ // 질의 응답에 따른 처리
if(answer=='yes'){
switch(mode){
// 비회원일때 로그인 페이지로 이동
case 'member_login':
location.href = document.domain+"/member/login.php?url="+location.href;
break;
// 투표 결과 확인
case 'poll_view':
$.unblockUI();
$('#poll_info').load('/include/process/poll.php', { mode:'poll_view', no:no }, function(result){
$('#poll_info').show();
});
break;
}
} else {
$.unblockUI();
}
}
/*############## 설문조사 ###############*/
this.copyToClipboard = function(val, al) {
var t = document.createElement("textarea");
document.body.appendChild(t);
t.value = val;
t.select();
document.execCommand('copy');
document.body.removeChild(t);
if(al) alert(al);
}
}
var netfu_util = new netfu_util();
var date_val = new Date();
var datepicker_json = {
dateFormat: "yy-mm-dd", /* 날짜 포맷 */
prevText: '이전달',
nextText: '다음달',
showButtonPanel: true, /* 버튼 패널 사용 */
changeMonth: true, /* 월 선택박스 사용 */
changeYear: true, /* 년 선택박스 사용 */
showOtherMonths: false, /* 이전/다음 달 일수 보이기 */
selectOtherMonths: true, /* 이전/다음 달 일 선택하기 */
yearSuffix: '년',
closeText: '닫기',
currentText: '오늘',
showMonthAfterYear: true, /* 년과 달의 위치 바꾸기 */
/* 한글화 */
monthNames : ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
monthNamesShort : ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
dayNames : ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'],
dayNamesShort : ['일', '월', '화', '수', '목', '금', '토'],
dayNamesMin : ['일', '월', '화', '수', '목', '금', '토'],
weekHeader: 'Wk',
yearRange :"-100:+0",
firstDay: 0,
isRTL: false,
showAnim: 'slideDown',
onSelect:function(dateText, inst){
}
};
var _editor_use = {};
$(window).ready(function() {
if(location.href.indexOf("/m/page/view.php")>=0) {
$(".news_body").find("iframe").css({"max-width":($( window ).width()-30)+"px"});
$(".news_body").find("img").css({"max-width":($( window ).width()-30)+"px"});
}
netfu_util.editor_start();
// : 날짜
$( ".datepicker_inp" ).datepicker(datepicker_json).keyup(function(e) {
if(e.keyCode == 8 || e.keyCode == 46) {
$.datepicker._clearDate(this);
}
});
$('.set_day').click(function() {
$(this).closest("ol").find("button").removeClass("on");
$(this).parent().addClass("on");
netfu_util.put_date($(this)[0]);
});
});
+177
View File
@@ -0,0 +1,177 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
àRCopyright 1990-2009 Adobe Systems Incorporated.
All rights reserved.
See ./LICENSEáCNS2-H
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
àRCopyright 1990-2009 Adobe Systems Incorporated.
All rights reserved.
See ./LICENSEá ETen-B5-H` ^
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More