/***************************************************************************************
* common function
***************************************************************************************/
var Durian = {
dialogForm: function(args) {
var defaultVal = {
target: '',
title: '',
width: 300
};
var opt = jQuery.extend(defaultVal, args);
jQuery(opt.target).dialog({
modal: true,
width: opt.width,
title: opt.title,
buttons: {
'확인': function() {
if( jQuery.isFunction(opt.callBack) ) {
opt.callBack.call();
}
},
'취소': function() {
jQuery( this ).dialog( "close" );
}
},
close: function(event, ui) {
}
});
var cssData= {
'.ui-dialog-title': {'font-weight':'bold', 'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-content': {'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset': {'height':'30px','font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset button': {'height':'25px', 'padding':'0'},
'.ui-dialog-buttonset button span': {'line-height':'12px'}
};
Durian.setTargetCss(cssData);
},
dialogPopup: function(args) {
var defaultVal = {
'target': '',
'title': '',
'width': 300
};
var opt = jQuery.extend(defaultVal, args);
jQuery(opt.target).dialog({
modal: true,
width: opt.width,
title: opt.title,
buttons: {
'닫기': function() {
jQuery( this ).dialog( "close" );
}
},
close: function(event, ui) {
if( jQuery.isFunction(opt.closeCallBack) ) {
opt.closeCallBack.call(this);
}
},
open : function(event, ui) {
if( jQuery.isFunction(opt.openCallBack) ) {
opt.openCallBack.call(this);
}
}
});
var cssData= {
'.ui-dialog-title': {'font-weight':'bold', 'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-content': {'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset': {'height':'30px','font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset button': {'height':'25px', 'padding':'0'},
'.ui-dialog-buttonset button span': {'line-height':'12px'}
};
Durian.setTargetCss(cssData);
},
imageViewer: function(src, args) {
var defaultVal = {
objID: '__imgViwer__',
minSize: 230,
title: '이미지 보기',
useZoom: true
};
var opt = jQuery.extend(defaultVal, args);
/*
opt.width = jQuery(document).width()-100;
opt.height = jQuery(document).height()-100;
*/
// fixed size
opt.width = 980;
opt.height = 720;
var initUI = function() {
if( !jQuery('#'+opt.objID).length ) {
var zoomControl = '';
var cssData= {
'#__imgViwer__': {'display':'','width': opt.minSize+'px', 'z-index':'9999', 'top':'0', 'left':'0', 'position':'absolute'},
'#__imgViwer__ b': {'display':'block', 'height':'1px', 'overflow':'hidden'},
'#__imgViwer__ b, #__imgViwer__ .r5': {'background': '#F5F5F5'},
'#__imgViwer__ .r1': {'background': '#B4B4B4', 'margin':'0px 5px 0px 5px'},
'#__imgViwer__ .r2': {'border-left':'2px solid #B4B4B4','border-right':'2px solid #B4B4B4','margin':'0px 3px 0px 3px'},
'#__imgViwer__ .r3, #__imgViwer__ .r4, #__imgViwer__ .r5': {'border-left':'1px solid #B4B4B4','border-right':'1px solid #B4B4B4'},
'#__imgViwer__ .r3' : {'margin':'0px 2px 0px 2px'},
'#__imgViwer__ .r4': {'height':'2px', 'margin': '0px 1px 0px 1px'},
'#__imgViwer__ .r5': {'padding':'5px','font-family':'dotum,Verdana,Arial,sans-serif', 'font-size':'11px', 'color':'#7f7f7f', 'position':'relative'},
'#__imgViwer__ .msg': {'padding': '0', 'background':'#FFFFFF', 'text-align':'center', 'vertical-align':'middle', 'position':'relative'},
'#__imgViwer__ .title': {'color':'#000000','height':'20px', 'cursor':'move'},
'#__imgViwer__ .buttons': { 'position':'absolute', 'top':'0', 'right':'0'},
'#__imgViwer__ .buttons .close': {'width': '16px', 'height': '16px', 'margin':'3px 10px 0 0', 'background': 'transparent url(/common/js/jquery/theme/base/images/ui-icons_454545_256x240.png) no-repeat', 'background-position':'-95px -130px', 'cursor': 'pointer', 'border':'0'},
'#__imgViwer__ .buttons .zoom': {'width': '16px', 'height': '16px', 'margin':'3px 5px 0 0', 'background': 'transparent url(/common/js/jquery/theme/base/images/ui-icons_454545_256x240.png) no-repeat', 'background-position':'-175px -193px', 'cursor': 'pointer', 'border':'0'}
};
if( opt.useZoom ) {
zoomControl = '';
}
jQuery('body').append(jQuery('
'));
jQuery('#'+opt.objID+' .msg').append(' 이미지 정보를 불러오고있습니다.
');
Durian.setCenter('#'+opt.objID+' .msg', '#'+opt.objID+' .msg .loading');
Durian.setTargetCss(cssData);
jQuery('#'+opt.objID).draggable({ cancel: '#'+opt.objID+' .msg' });
jQuery('#'+opt.objID+' .close').click(closeViewer);
jQuery('#'+opt.objID+' .zoom').click(function() {
closeViewer();
win = window.open();
win.document.write('');
});
}
};
var initViewer = function() {
jQuery('#'+opt.objID).hide();
jQuery('#'+opt.objID+' .titleTxt').html(opt.title);
jQuery('#'+opt.objID+' .zoom').hide();
jQuery('#'+opt.objID+' .contentImg').remove();
jQuery('#'+opt.objID+' .loading').hide();
jQuery('#'+opt.objID).css({'top':'0', 'left':'0', 'width': opt.minSize+'px'});
Durian.setCenter(document, '#'+opt.objID, true);
};
var loadBegin = function() {
jQuery('#'+opt.objID).show();
jQuery('#'+opt.objID+' .loading').show();
};
var loadEnd = function() {
if( opt.useZoom ) {
jQuery('#'+opt.objID+' .zoom').show();
}
jQuery('#'+opt.objID+' .loading').hide();
};
var closeViewer = function() {
Durian.imageViewerClose();
};
initUI();
initViewer();
loadBegin();
jQuery('#'+opt.objID+' .msg').append('');
var loadHandle = jQuery('#'+opt.objID+' .contentImg').bind('load', function() {
loadEnd();
jQuery(this).click(closeViewer).css({'cursor': 'pointer'}).show();
jQuery('#'+opt.objID).show();
mod.gallery.reSize('#'+opt.objID+' .contentImg', opt.width, opt.height);
width = jQuery('#'+opt.objID+' .contentImg').width();
width = width < opt.minSize ? opt.minSize : width;
jQuery('#'+opt.objID).css({
'top':0,
'left':0,
'width': (width + 15)+'px'
});
Durian.setCenter(document, '#'+opt.objID, true);
});
},
imageViewerClose: function() {
var opt = {
objID: '__imgViwer__'
};
jQuery('#'+opt.objID).hide();
jQuery('#'+opt.objID+' .contentImg').unbind('load');
},
smallNotice: function(msg) {
var target='body';
var cssData= {
'.__snotice__': {'width': '170px', 'z-index':'9999', 'display':'none', 'bottom':'10px', 'left':'10px', 'position':'fixed'},
'.__snotice__ b': {'display':'block', 'height':'1px', 'overflow':'hidden'},
'.__snotice__ b, .__snotice__ .r5': {'background': '#F5F5F5'},
'.__snotice__ .r1': {'background': '#B4B4B4', 'margin':'0px 5px 0px 5px'},
'.__snotice__ .r2': {'border-left':'2px solid #B4B4B4','border-right':'2px solid #B4B4B4','margin':'0px 3px 0px 3px'},
'.__snotice__ .r3, .__snotice__ .r4, .__snotice__ .r5': {'border-left':'1px solid #B4B4B4','border-right':'1px solid #B4B4B4'},
'.__snotice__ .r3' : {'margin':'0px 2px 0px 2px'},
'.__snotice__ .r4': {'height':'2px', 'margin': '0px 1px 0px 1px'},
'.__snotice__ .r5': {'padding':'5px','font-family':'dotum,Verdana,Arial,sans-serif', 'font-size':'11px', 'color':'#7f7f7f', 'position':'relative'},
'.__snotice__ .msg': {'padding': '5px 0 0 0'},
'.__snotice__ .title': {'color':'#000000'},
'.__snotice__ .close': { 'position':'absolute', 'top':'0', 'left': '148px'},
'.__snotice__ .close input': {'width': '16px','height': '16px', 'margin':'0 5px 0 0', 'background':'transparent url(/common/js/jquery/theme/base/images/ui-icons_454545_256x240.png) no-repeat', 'background-position': '-80px -130px', 'cursor':'pointer', 'border':'0' }
};
var html = '';
if( !jQuery(target).children().is('.__snotice__') ) {
jQuery(target).append(jQuery(html));
Durian.setTargetCss(cssData);
}
clearTimeout(this.smallNoticeTimer);
jQuery('.__snotice__ .msg').html(msg);
jQuery('.__snotice__ .close input').click(function() {
clearTimeout(this.smallNoticeTimer);
jQuery('.__snotice__').hide();
});
if( jQuery('.__snotice__').css('position') != 'fixed' ) {
var topSize = jQuery(window).height() - jQuery('.__snotice__').height() - 20 + jQuery(window).scrollTop();
jQuery('.__snotice__').css({
'position':'absolute',
'top': topSize+'px',
'left':'10px'
});
}
jQuery('.__snotice__').fadeIn();
this.smallNoticeTimer = setTimeout(function (){
jQuery('.__snotice__').fadeOut();
},3000);
},
loadingSmallWhite: function(obj) {
jQuery.blockUI.defaults.overlayCSS.color = '#fff';
var options = {
'msg': '',
'backgroundColor':'',
'opacity': 0.5,
'overlay_backgroundColor': '#fff'
};
Durian.loading(obj, options);
},
loadingSmallWhite13: function(obj) {
jQuery.blockUI.defaults.overlayCSS.color = '#fff';
var options = {
'msg': '',
'backgroundColor':'',
'opacity': 0.5,
'overlay_backgroundColor': '#fff'
};
Durian.loading(obj, options);
},
loadingSmallWhiteMsg: function(obj, msg) {
jQuery.blockUI.defaults.overlayCSS.color = '#fff';
var options = {
'msg': msg,
'backgroundColor':'',
'opacity': 0.5,
'overlay_backgroundColor': '#fff',
'padding':5,
'margin':0,
'width': '95%',
'color': '#000000'
};
Durian.loading(obj, options);
},
loadingSmallBlack: function(obj) {
jQuery.blockUI.defaults.overlayCSS.color = '#fff';
var options = {
'msg': '',
'backgroundColor':'',
'opacity': 0.7,
'overlay_backgroundColor': '#000'
};
Durian.loading(obj, options);
},
loadingProgressTxt: function(count, total) {
jQuery('.blockMsg .progress').html(count+'/'+total+'');
},
loading: function(obj, options) {
var defaultVal = {
'zIndex': '999999',
'msg': ' 처리 중입니다. 잠시만 기다려주십시오.',
'border': '0',
'padding': '15px',
'backgroundColor': '#000',
'radius': '8px',
'opacity': 0.7,
'color': '#fff',
'overlay_backgroundColor': '#000',
'overlay_opacity': 0.6
}
var opt = jQuery.extend(defaultVal, options);
if( obj ) {
jQuery(obj).block({
message: opt.msg,
css: {
'zIndex': opt.zIndex,
'border': opt.border,
'width': opt.width,
'padding': opt.padding,
'backgroundColor': opt.backgroundColor,
'-webkit-border-radius': opt.radius,
'-moz-border-radius': opt.radius,
'border-radius': opt.radius,
'opacity': opt.opacity,
'color': opt.color
},
overlayCSS: {
backgroundColor: opt.overlay_backgroundColor,
opacity: opt.overlay_opacity
}
});
} else {
jQuery.blockUI.defaults.baseZ = '1000000';
jQuery.blockUI({
message: opt.msg,
css: {
'zIndex': opt.zIndex,
'border': opt.border,
'width': opt.width,
'padding': opt.padding,
'backgroundColor': opt.backgroundColor,
'-webkit-border-radius': opt.radius,
'-moz-border-radius': opt.radius,
'border-radius': opt.radius,
'opacity': opt.opacity,
'color': opt.color
},
overlayCSS: {
backgroundColor: opt.overlay_backgroundColor,
opacity: opt.overlay_opacity
}
});
}
},
loadingClose: function(obj) {
if( obj ) {
jQuery(obj).unblock();
} else {
jQuery.unblockUI();
}
},
alert : function(msg, type, callBack) {
if( Durian.isMobile() ) {
msg = msg.replace(/\
/gi, '\n').stripTags();
alert(msg);
if( Durian.alertCloseMode ) {
Durian.alertClose();
}
return;
}
if( !jQuery('#__dlgAlert__').length ) {
jQuery('body').append("");
}
jQuery('#__dlgAlert__').attr('title','알림 메시지');
jQuery('#__dlgAlert__ p').html(msg);
jQuery('#__dlgAlert__').dialog({
modal: true,
minHeight: 230,
buttons: {
'확인': function() {
jQuery( this ).dialog( "close" );
}
},
close: function(event, ui) {
if( jQuery.isFunction(callBack) ) {
callBack.call();
} else {
Durian.alertClose();
}
}
});
var cssData= {
'.ui-dialog-title': {'font-weight':'bold', 'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-content': {'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset': {'height':'30px','font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset button': {'height':'25px', 'padding':'0'},
'.ui-dialog-buttonset button span': {'line-height':'12px'}
};
Durian.setTargetCss(cssData);
},
confirm : function(msg, callBackDone, callBackCancel) {
if( Durian.isMobile() ) {
msg = msg.replace(/\
/gi, '\n').stripTags();
if( confirm(msg) ) {
if( jQuery.isFunction(callBackDone) ) {
callBackDone.call();
}
} else {
if( jQuery.isFunction(callBackCancel) ) {
callBackCancel.call();
}
}
return;
}
if( !jQuery('#__dlgConfirm__').length ) {
jQuery('body').append("
");
}
jQuery('#__dlgConfirm__').attr('title','알림 메시지');
jQuery('#__dlgConfirm__ p').html(msg);
jQuery('#__dlgConfirm__').dialog({
modal: true,
minHeight: 200,
buttons: {
'확인': function() {
if( jQuery.isFunction(callBackDone) ) {
callBackDone.call();
}
try{
jQuery( this ).dialog( "close" );
} catch(e){}
},
'취소': function() {
if( jQuery.isFunction(callBackCancel) ) {
callBackCancel.call();
}
try{
jQuery( this ).dialog( "close" );
} catch(e){}
}
},
close: function(event, ui) {
Durian.alertClose();
}
});
var cssData= {
'.ui-dialog-title': {'font-weight':'bold', 'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-content': {'font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset': {'height':'30px','font-size':'12px', 'font-family':'Verdana,Arial,sans-serif'},
'.ui-dialog-buttonset button': {'height':'25px', 'padding':'0'},
'.ui-dialog-buttonset button span': {'line-height':'12px'}
};
Durian.setTargetCss(cssData);
},
alertLayer : function(layer, msg) {
Durian.showLayer(layer, {
center : true,
key : true,
block : true
})
$id('__alert_msg__').innerHTML = msg;
},
alertCloseMode : 0,
alertCloseFocusObject : null,
block : true,
alertClose : function() {
if (/^[+-]?[0-9]$/.test(Durian.alertCloseMode)) {
Durian.alertCloseMode = parseInt(Durian.alertCloseMode, 10);
}
if (typeof Durian.alertCloseMode == 'string' && Durian.alertCloseMode != '') {
location.href = Durian.alertCloseMode;
} else if (typeof Durian.alertCloseMode == 'number') {
switch (Durian.alertCloseMode) {
case -2 : self.close(); break;
case -1 : history.back(); break;
case 1 : location.reload(true); break;
case 2 : opener.location.reload(); self.close(); break;
}
//jQuery.unblockUI();
if (Durian.alertCloseFocusObject) {
try { Durian.alertCloseFocusObject.focus(); } catch (e) {}
Durian.alertCloseFocusObject = null;
}
}
},
alertCallback : function(r) {
if (r.isSuccess()) {
var layer = $c('div');
layer.id = '__alert__';
Element.setStyle(layer, {
padding : '0 0 0 0'
})
document.body.appendChild(layer);
layer.innerHTML = r.value;
Durian.alertLayer(layer, this.param.msg);
} else {
alert(this.param.msg);
}
},
showIf : function(obj, value) {
if (value) {
Element.show(obj);
} else {
Element.hide(obj);
}
},
showHide : function(show, hide, display) {
if (hide) {
hide = $array(hide);
for (var i=0; i
';
obj.iframe = obj.childNodes[0];
// show layer
this.showLayer(obj, option);
// url
if (typeof option.url == 'string') {
obj.iframe.src = option.url;
}
}
},
closeFrameLayer : function(id) {
id = '__frame_layer_' + (id || 'common');
var obj = $id(id);
Durian.showLayerClose(obj);
},
autoResizeIframe : function(iframe) {
Util.autoResizeIframe(iframe);
var obj = iframe.parentNode;
if (obj.option) {
if (obj.option.center) {
var pos = Element.getCenter(obj);
Element.moveTo(obj, pos);
}
}
},
// iframe resizing
resizeIframe : function(iframe, height) {
var iframe = $id(iframe);
if (typeof iframe != 'undefined') {
if (height > 0) {
Element.setStyle(iframe, 'height', height);
} else {
Util.autoResizeIframe(iframe, true, false);
//Durian.autoResizeIframe(iframe);
}
}
},
resizeImage : function(image, width, index) {
var list = $array(image).filter(function(img) {
img.style.display = "";
img.size = Element.getSize(img);
if (img.size.width > 0 && img.size.width > width) {
var rate = width / img.size.width;
img.style.width = width + 'px';
img.style.height = Math.round(img.size.height * rate) + 'px';
return false;
}
return true;
});
index = index || 0;
index++;
if (list.length && index <= 10) {
setTimeout(function() {
Durian.resizeImage(list, width, index);
}, 200);
}
},
// parent : 1 base offset
searchParentTag : function(obj, tag, offset) {
tag = tag.toLowerCase();
var count = 0;
var p = obj.parentNode;
while (p != document.body) {
if (p.tagName.toLowerCase() == tag) {
count++;
if (count == offset) {
return p;
}
}
p = p.parentNode;
}
return false;
},
// child : 1 base offset
searchChildTag : function(obj, tag, offset) {
var list = obj.getElementsByTagName(tag);
if (typeof list[offset-1] != 'undefined') {
return list[offset-1];
} else {
return false;
}
},
// prev : 1 base offset
searchPrevSameTag : function(obj, offset, parent) {
var tag = obj.tagName;
var list = (parent || document).getElementsByTagName(tag);
var key = -1;
for (var i=0; i -1 && key >= offset) {
return list[key - offset];
} else {
return false;
}
},
// next : 1 base offset
searchNextSameTag : function(obj, offset, parent) {
var tag = obj.tagName;
var list = (parent || document).getElementsByTagName(tag);
var key = -1;
for (var i=0; i -1 && key + offset < list.length) {
return list[key + offset];
} else {
return false;
}
},
searchByClassName : function(obj, className) {
var list = obj.getElementsByTagName('*');
var result = [];
for (var i=0; i 2) {
var winl = (screen.width - x) / 2;
var wint = (screen.height - y) / 2;
var w = window.open(url, name, 'scrollbars=' + sc + ', resizable=yes, width=' + x + ', height=' + y + ', top='+wint+', left='+winl);
} else {
var w = window.open(url, name);
}
this.win[name] = w;
}
if (w) {
w.focus();
}
return w;
},
// modal window
openModalWin : function(url, x, y, resize, arg) {
if (window.showModalDialog) {
return Durian.openWin('', url, x, y, resize);
} else {
return window.showModalDialog(url, arg || self, 'dialogHeight: '+y+'px; dialogWidth: '+x+'px; edge: Raised; center: Yes; help: No; resizable: '+resize+'; status: No; scroll: No;');
}
},
// clipboard copy - ZeroClipboard
attachClipCopy : function(obj, callback, endCallback) {
if (obj instanceof Array) {
if (!obj.length) {
return;
}
} else if (obj) {
obj = [obj];
} else {
return;
}
ZeroClipboard.setMoviePath('/common/js/ZeroClipboard/ZeroClipboard.swf');
var clip = new ZeroClipboard.Client();
clip.setHandCursor(true);
clip.addEventListener('mousedown', callback);
if (endCallback) {
clip.addEventListener('complete', endCallback);
}
clip.glue(obj[0]);
obj.each(function(el) {
el.clip = clip;
return el;
});
$l(obj, 'mouseover', Durian._attachClipCopy.bindForEvent(clip));
},
_attachClipCopy : function(evt, obj) {
//if (this.domElement != obj) {
this.reposition(obj);
//}
},
imgDefault : function(img, src, widthParam) {
if (!src || /^[0-9]+$/.test(src) || img.src.search(src) > -1) {
var width = 100;
var default_prefix = 'default_';
if( widthParam ) {
size = widthParam;
} else {
size = parseInt((src || img.width || img.getAttribute('width')), 10) || 100;
}
if( src == '#lock' ) {
default_prefix = 'lock_';
}
if (size <= 50) {
fixSize = 50;
} else if (size <= 100) {
fixSize = 100;
} else if (size <= 300) {
fixSize = 300;
} else {
fixSize = 500;
}
src = '/images/default/common/'+default_prefix+fixSize+'.gif';
}
if (img.src.search(src) == -1) {
img.src = src;
}
},
imgResize : function(img, maxW, maxH) {
if (maxW) {
if (img.width > maxW) {
img.width = maxW;
}
}
if (maxH) {
if (img.width > maxH) {
img.width = maxH;
}
}
},
formatPrice : function(value, forceSign) {
var number = parseInt(value, 10);
if (number < 0) {
var sign = '-';
} else if (forceSign && number > 0) {
var sign = '+';
} else {
var sign = '';
}
var value = ('' + value).trim().replace(/[^0-9]/, '');
var gap = value.length % 3 || 3;
var str = value.slice(0, gap);
value = value.slice(gap);
while (value) {
str += ',' + value.slice(0, 3);
value = value.slice(3);
}
return sign + str;
},
// upload
checkUploadCount : function(option) {
option = Class.extend(option || {});
var max = parseInt(option.max, 10) || 0;
if (!max) {
return true;
}
var count = count2 = 0;
if (typeof option.single != 'undefined' && option.single == true) {
count = !option.file_path ? 0 : 1;
count2 = !option.db_file_path ? 0 : 1;
} else {
if (typeof option.list != 'undefined') {
var list_child = option.list.childNodes;
for (i = 0; i < list_child.length; i++) {
if (list_child[i].nodeType == 1) {
count++;
}
}
}
if (typeof option.db_list != 'undefined') {
var db_list_child = option.db_list.childNodes;
for (i = 0; i < db_list_child.length; i++) {
if (db_list_child[i].nodeType == 1) {
count2++;
}
}
}
}
var total = count + count2;
if (max <= total) {
alert('첨부파일은 최대 ' + max + '개까지 업로드 가능합니다.');
return false;
} else {
return true;
}
},
openUploadWin : function(option) {
if( Durian.isHanDomain() ) {
Durian.openUploadWinSingle(option);
return;
}
option = Class.extend({
act : 'common.popup_upload_multi',
ch : 'pop',
upload_mode : 'FILE'
}, option || {});
var domain = 'http://' + Durian.getDomain();
var img_server = 'http://' + Durian.getImgServer();
option.domain = domain;
var query = ''.encodeQuery(option);
return Durian.openWin('upload', img_server + '/?' + query, 570, 388, 'no');
},
openUploadWinSingle : function(option) {
option = Class.extend({
act : 'common.popup_upload',
ch : 'pop',
upload_mode : 'FILE'
}, option || {});
var domain = 'http://' + Durian.getDomain();
var img_server = 'http://' + Durian.getImgServer();
option.domain = domain;
var query = ''.encodeQuery(option);
return Durian.openWin('upload', img_server + '?' + query, 350, 150, 'no');
},
ajaxDeleteFile : function(option, obj) {
option = Class.extend({
act : 'common.upload_delete_ajax',
upload_mode : 'FILE'
}, option || {});
new Ajax({
url : './',
method : 'post',
type : 'JSON',
param : option,
callback : Durian.ajaxDeleteFileCallback,
obj : obj
});
},
ajaxDeleteFileCallback : function(r) {
if (r.isSuccess()) {
var success = r.value.success;
if (success) {
applyDeleteFile(r, this.obj);
} else {
alert(r.value.msg);
}
}
},
getDomain : function() {
return location.href.split('/')[2];
},
getBaseDomain : function() {
var domain = Durian.getDomain();
// ip
if (domain.search(/^[0-9\.]+$/) > -1) {
return domain;
}
return domain.replace(/^(www|img|m|home|desk|mail|contact|calendar|cafe|tax|marketing|site|stat|setting)\./, '');
},
isHanDomain : function() {
var baseDomain = Durian.getBaseDomain();
var regExp = /^[a-zA-Z0-9_\-.]+$/;
if ( regExp.test(baseDomain) && baseDomain.substr(0, 4) != 'xn--' ) {
return false;
} else {
return true;
}
},
getImgServer : function() {
return Durian.getDomain();
},
// Editor
initEditor : function(option) {
return Durian.initCHEditor(option);
},
initCHEditor : function(option) {
if (option.mode == 'ALL') {
option.item = option.mode;
} else {
if (typeof option.item == 'string') {
option.item = option.item.split(',');
} else if (!option.item) {
// error
alert('ERROR : Invalid Editor Configuration.');
return;
}
}
var u = new Durian.CHEditor(option);
// focus problem :-(
setTimeout(function() {
window.scrollTo(0, 0);
}, 500);
},
// upload
initUpload : function(option) {
return new Durian.SWFUpload(option);
//return new Durian.TrueUpload(option);
},
// display Image or Flash
displayImageFlash : function(url, width, height) {
if (url.search(/\.swf$/i) > -1) {
Durian.displayFlash(url, width, height);
} else {
Durian.displayImage(url, width, height);
}
},
displayImage : function(url, width, height) {
if (width && height) {
var size = 'width="' + width + '" height="' + height + '"';
} else {
var size = '';
}
var html = '';
document.write(html);
},
// displayFlash
displayFlash : function(url, width, height, id, vars, wmode, bg, scriptAccess) {
var html = Durian.getFlashHTML(url, width, height, id, vars, wmode, bg);
document.write(html);
},
getFlashHTML : function(url, width, height, id, vars, wmode, bg, scriptAccess) {
if (width && height) {
var size = 'width="' + width + '" height="' + height + '"';
} else {
var size = 'width="100%"';
}
if (!id) {
id = Util.randomId(4, 'flash');
}
if (!vars) {
vars = '';
}
if (!wmode) {
wmode = 'transparent';
}
if (!bg) {
bg = '';
}
if (!scriptAccess) {
scriptAccess = 'sameDomain';
}
var html = '';
return html;
},
// block page
blockPage : function(zIndex, color, blockBindEvents) {
if (!zIndex) {
zIndex = 1000;
}
jQuery.blockUI.defaults.overlayCSS = {
'baseZ':zIndex,
'cursor': 'default',
'backgroundColor': color,
'opacity': 0.5
};
jQuery.blockUI({
message: '',
bindEvents: blockBindEvents
});
},
// add bookmark
// refered to http://www.dynamicdrive.com/dynamicindex9/addbook.htm
bookmark : function(url, title) {
if (Util.isIE) {
window.external.AddFavorite(url, title);
} else if (Util.isFF) {
window.sidebar.addPanel(title, url, '');
} else if (Util.isOpera) {
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel', 'sidebar');
elem.click();
}
},
isMobile : function() {
// test mode
//return true;
if (window.navigator.userAgent.search(/(iphone|samsung|lgtel|mobile)/i) != -1) {
return true;
} else {
return false;
}
},
applyHiddenSubmit : function(formName, debug) {
var form = document.forms[formName];
form.target = '__hidden_frame__';
var iframe = $id('__hidden_frame__')
if (!iframe) {
iframe = $c('iframe');
iframe.id = iframe.name = '__hidden_frame__';
iframe.setAttribute('width', debug ? '100%' : '0');
iframe.setAttribute('height', debug ? '100' : '0');
iframe.setAttribute('frameborder', debug ? '1' : '0');
iframe.setAttribute('border', debug ? '1' : '0');
document.body.appendChild(iframe);
}
},
increaseClientAutoSize : function() {
if (typeof Durian.initCommon.clientOldSize == 'undefined') {
alert('undefined');
return false;
}
var clientCurSize = Util.getDocSize();
var increaseX = 0;
var increaseY = 0;
if( Durian.initCommon.clientCurSize.width < clientCurSize.width ) {
increaseX = clientCurSize.width - Durian.initCommon.clientCurSize.width;
}
if( Durian.initCommon.clientCurSize.height < clientCurSize.height ) {
increaseY = clientCurSize.height - Durian.initCommon.clientCurSize.height;
}
Durian.initCommon.clientCurSize = clientCurSize;
window.resizeBy(increaseX, increaseY);
},
setHeadCss :function(cssTxt) {
if(!cssTxt) return false;
var cssObj = document.createElement('style');
var headObj = document.getElementsByTagName('head')[0];
cssObj.setAttribute('type', 'text/css');
if(cssObj.styleSheet) {
cssObj.styleSheet.cssText = cssTxt;
} else {
cssObj.appendChild(document.createTextNode(cssTxt));
}
headObj.appendChild(cssObj);
},
setTargetCss: function(cssData) {
jQuery.each(cssData, function(key) {
jQuery(key).css(this);
});
},
setCenter : function(baseObj, targetObj, useScroll) {
if( useScroll ) {
scrollLeft = jQuery(window).scrollLeft();
scrollTop = jQuery(window).scrollTop();
} else {
scrollLeft = 0;
scrollTop = 0;
}
var posX = (jQuery(baseObj).width() - jQuery(targetObj).width()+scrollLeft) / 2;
var posY = (jQuery(baseObj).height() - jQuery(targetObj).height()+scrollTop) /2;
//alert(jQuery(baseObj).width()+' / '+jQuery(targetObj).width());
jQuery(targetObj).css({'top':posY+'px', 'left':posX+'px'});
},
fixFlash : function() {
// loop through every embed tag on the site
var embeds = document.getElementsByTagName('embed');
for(i=0; i/i))
new_object = html.replace(//i,"");
// add a new wmode parameter
else
new_object = html.replace(/<\/object\>/i,"\n");
// loop through each of the param tags
var children = object.childNodes;
for(j=0; j/i,"");
}
} catch (e) {}
}
// replace the old embed object with the fixed versiony
object.insertAdjacentHTML('beforeBegin',new_object);
object.parentNode.removeChild(object);
}
}
},
onlyNumericInput : function(selector, useComma, callBack, useMinus) {
jQuery(selector).keypress(function(event){
if (event.which && (event.which > 47 && event.which < 58 || event.which == 8 || (event.which == 45 && useMinus) )) {
// true
} else {
// false
event.preventDefault();
}
var num = jQuery(this).val().replace(/\,/g,'').replace(/--/g,'-');
if( num.length > 14 ) {
event.preventDefault();
}
}).focus(function(){
jQuery(this).select();
}).keyup(function(){
if( !jQuery(this).val() ) return false;
var num = jQuery(this).val().replace(/\,/g,'').replace(/--/g,'-');
if( useMinus && isNaN(parseInt(num)) ) {
jQuery(this).val(num);
return false;
}
if(useComma) {
jQuery(this).val(
Durian.formatPrice(parseInt(num))
);
}
if( jQuery.isFunction(callBack) ) {
callBack.call(this);
}
}).bind('paste', function(event){ // 숫자만 입력할 경우 붙여넣기 금지
event.preventDefault();
}).css({'ime-mode':'disabled'});
},
dateFormat : function(dt, fmt) { // dt: new Date()
return fmt.replace(/(Y|y|m|d|h|H|i|s|am|pm)/gi,
function($1){
switch ($1){
case 'Y': return dt.getFullYear();
case 'y': return dt.getFullYear().toString().substr(2);
case 'm': return (m = dt.getMonth()+1) < 10 ? '0'+m : m;
case 'd': return (d = dt.getDate()) < 10 ? '0'+d : d;
case 'h': return (h = dt.getHours() % 12) ? (h < 10 ? '0'+h : h) : 12;
case 'H': return (H = dt.getHours()) < 10 ? '0'+H : H;
case 'i': return (i = dt.getMinutes()) < 10 ? '0'+i : i;
case 's': return (s = dt.getSeconds()) < 10 ? '0'+s : s;
case 'am': return dt.getHours() < 12 ? 'am' : 'pm';
case 'pm': return dt.getHours() < 12 ? 'am' : 'pm';
}
}
);
},
debug : function(msg) {
if( !jQuery('#debug').size() ) {
jQuery('body').append('
#DEBUG
');
}
jQuery('#debug').html(msg+'
'+jQuery('#debug').html() );
}
}