/*
* 마스터 정보 상세 레이어
*
* 레이어의 컨텐츠에 따라 resizing 되도록 구현
* jquery ui dialog 를 drag 가능토록 하기위해 title 영역이 필요하여 수신한 html을 delimeter 문자로 구분지어
* title영역과 contents 영역에 분리하여 innerHTML 함
*/
//$.ajaxSetup({async:false});
var dtlDivCss = 'layer'; // dialog contents layer class명
var dtlDivArr = new Array(); // dialog contents object 배열
var delimitStr = ''; // 수신 DATA의 delimeter 스트링
var defaultW = 810; // 기본 width
var defaultH = $(window).height() - 30 // 기본 hieght
var numExp = /[^0-9]/g;
var numExpDot = /^[+-]?\d*(\.?\d*)$/;
var numEngExp = /[^0-9a-zA-Z-]/g;
$(document).ready(function (){
window.addEventListener('resize', function(event) {
$('.ui-dialog').each(function(){
$(this).css('left','50%');
})
});
});
function fnTdTopValueCssSet(dtlObj){
dtlObj.find("table.topico tbody").each(function(){
var len = $(this).find("tr:first td").length;
var tExp = /[,%]/g;
var t2Exp = /[(].*[)]/g;
var t3Exp = /[,.%]/g;
for(var i=0;i"+$mxTd.html());
}
}
});
}
$.fn.toFormmatedDate = function(dStr){
if(this.length > 1){
this.each(function(){
if($(this).val().match(numExp)==null){
var df = $(this).val();
var len = df.length;
if(len>6){
$(this).val(df.substring(0,4)+dStr+df.substring(4,6)+dStr+df.substring(6));
}else if(len>4){
$(this).val(df.substring(0,4)+dStr+df.substring(4,6));
}else{
$(this).val(df.substring(0,4));
}
}
});
}else if(this.length==1){
if($(this).val().match(numExp)==null){
var df = $(this).val();
var len = df.length;
if(len>6){
$(this).val(df.substring(0,4)+dStr+df.substring(4,6)+dStr+df.substring(6));
}else if(len>4){
$(this).val(df.substring(0,4)+dStr+df.substring(4,6));
}else{
$(this).val(df.substring(0,4));
}
}
}
return this;
};
$.fn.toUnder8NumFormat = function(){
if(this.length > 1){
this.each(function(){
$(this).val($(this).val().replace(numExp,'').substring(0,8));
});
}else if(this.length==1){
$(this).val($(this).val().replace(numExp,'').substring(0,8));
}
return this;
};
$.fn.toUnderNumFormat = function(len){
if(this.length > 1){
this.each(function(){
$(this).val($(this).val().replace(numExp,'').substring(0,len));
});
}else if(this.length==1){
$(this).val($(this).val().replace(numExp,'').substring(0,len));
}
return this;
};
function trimToEmpty(os){
var rs = $.trim(os);
return (rs.toLowerCase()=='null' || rs.toLowerCase()=='undefined')?'':rs;
};
function trimToDefault(os,df){
var rs = trimToEmpty(os);
return rs==''?df:rs;
};
$(function(){
// 시작시 layer 실행
try{
if(dtTp){
mstView(dtTp, dtCd);
}
}catch(e){}
});
// modal 영역 조정용
$.ui.dialog.prototype.resize = function(){
$( window ).trigger( 'resize.dialog-overlay' );
this._position( this.options.position );
};
// 초기화
$.fn.initDialog = function(){
if(this.siblings(".ui-dialog-titlebar:has(.list_tab)").length == 0){
this.siblings(".ui-dialog-titlebar").find("*").remove();
}
this.dialog('option','height', 'auto');
this.dialog('option','width', defaultW);
return this;
};
// 타이틀영역 HTML 삽입
$.fn.titleHtml = function(str){
var inst = this;
this.siblings(".ui-dialog-titlebar").html(innerShiv(str)).enableSelection().find(".mtitle span").dblclick(function(){
var draggable = inst.dialog('option','draggable');
inst.dialog('option','draggable',!draggable);
}).attr('title','더블클릭시 드래그모드가 바뀝니다.');
return this;
};
// 컨텐츠영역 HTML 삽입
$.fn.contentsHtml = function(str){
this.html(innerShiv(str));
return this;
};
// 수신 DATA를 title 영역과 contents 영역으로 삽입
$.fn.updateContents = function(dataStr){
if(dataStr == null || $.trim(dataStr).length ==0 ) return ;
var spData = dataStr.split(delimitStr);
if(spData.length==2){
this.initDialog();
this.titleHtml(spData[0]);
this.contentsHtml(spData[1]);
}else{
this.initDialog();
this.contentsHtml(spData[0]);
}
// 탭버튼 동작
this.dialog("widget").find(".cont_tab .item_tab:not(:first-child)").hide();
this.dialog("widget").find(".cont_tab .item_tab:first-child").show();
this.dialog("widget").find(".list_tab li").click(function (e) {
var thistab = $(this).parents('.list_tab');
var eq = thistab.children('li').index(this);
var thisitem = $(this).parents(".ui-dialog").find(".item_tab");
thisitem.hide();
thisitem.eq(eq).show();
thistab.children('li').each(function () {
if ($(this).hasClass("active")) {
$(this).removeClass("active");
}
});
$(this).addClass("active");
});
return this;
};
// 자신의 layer는 삭제
$.fn.removeDtl = function(){
this.dialog('destroy');
this.remove();
return this;
};
// 레이어 숨기기
$.fn.hideDtl = function(){
this.dialog('widget').hide();
this.dialog('widget').next(".ui-widget-overlay").hide();
return this;
};
// 레이어 보이기
$.fn.showDtl = function(){
this.dialog('widget').show();
this.dialog('widget').next(".ui-widget-overlay").show();
return this;
};
// 신규 레이어 생성
function createNewDtlLayer(){
$("body").append("");
var newDl = $("."+dtlDivCss+":last").dialog({
title : '',
closeText : '닫기',
hide : 'slide',
modal : true,
dialogClass: '',
autoOpen : false,
draggable : true,
minHeight : $(window).height() - 30,
maxHeight : $(window).height() - 30,
position : {my: 'center top', at: 'center top+15', of: window},
create: function (event, ui) {
$(event.target).parent().css({ 'position': 'fixed'});
}
});
newDl.initDialog();
if(dtlDivArr.length>0){
var oldDl = dtlDivArr[dtlDivArr.length-1];
if(oldDl) oldDl.hideDtl();
}
dtlDivArr.push(newDl);
return newDl;
}
// 배열의 마지막 레이어를 삭제하고 이전 레이어를 보여줌
function dtlPrev(){
var dtlLayer = dtlDivArr.pop();
if(dtlLayer){
dtlLayer.removeDtl();
}
if(dtlDivArr.length>0){
dtlLayer = dtlDivArr[dtlDivArr.length-1];
if(dtlLayer){
dtlLayer.showDtl();
}
}
};
// 모든 레이어 삭제
function dtlRmAll(){
var cnt = dtlDivArr.length;
for(var i=0;i")!=-1){
alert('해당 데이터가 존재하지 않습니다.');
dtlPrev();
}
for(var i=0;i dl").height());
if (dtlObj.find(".promotion").length>0){
// 클릭토글형 accodion
dtlObj.find(".promotion .support").addClass("ui-accordion ui-accordion-icons ui-widget ui-helper-reset")
.find("h3")
.addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-top ui-corner-bottom")
.hover(function() { $(this).toggleClass("ui-state-hover"); })
.prepend('')
.click(function() {
$(this)
.toggleClass("ui-accordion-header-active ui-state-active ui-state-default ui-corner-bottom")
.find("> .ui-icon").toggleClass("ui-icon-plus-minus-s ui-icon-plus-minus-e").end()
.next().toggleClass("ui-accordion-content-active").slideToggle();
return false;
})
.next()
.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").show();
}
//슬라이더
var posLen = dtlObj.find('.poster').find('.item_slide').length;
var poster = dtlObj.find('.poster').bxSlider({
auto : (posLen > 6 ? true : false),
moveSlides: 1,
touchEnabled : false,
slideWidth: 110,
slideMargin : 10,
minSlides: 6,
maxSlides: 6,
pager: false,
controls: (posLen > 6 ? true : false)
});
//슬라이더
dtlObj.find('.steelcut').each(function(){
var steelLen = $(this).find('.item_slide').length;
var steel = $(this).bxSlider({
auto : (steelLen > 5 ? true : false),
moveSlides: 1,
touchEnabled : false,
slideWidth: 132,
slideMargin : 5,
minSlides: 5,
maxSlides: 5,
pager: false,
controls: (steelLen > 5 ? true : false)
});
})
}
// 상세영역 더보기 처리
function handleMoreArea(dtlObj){
dtlObj.find("div.moreArea").each(function(){
var oh = $(this).innerHeight();
if(oh>161){
$(this).height(122);
$(this).css("overflow","hidden");
$(this).append("더보기");
$(this).find(".btn_more02").toggle(
function(){
$(this).text("감추기");
$(this).parents("div.moreArea").css("overflow","visible");
$(this).parents("div.moreArea").height("auto");
},function(){
$(this).text("더보기");
$(this).parents("div.moreArea").css("overflow","auto");
$(this).parents("div.moreArea").height("auto");
});
}
});
dtlObj.find("div.moreAreaa").each(function(){
dtlObj.find(".btn_more02").toggle(
function(){
$(this).text("감추기");
if($(this).attr("id") == "peopView"){
dtlObj.find("#staffDiv_1").css("display","none"); // 1번째 감추기
dtlObj.find("#staffDiv_2").css("display","block"); // 2번째 보이기
}
},function(){
$(this).text("더보기");
if($(this).attr("id") == "peopView"){
dtlObj.find("#staffDiv_2").css("display","none"); // 2번째 감추기
dtlObj.find("#staffDiv_1").css("display","block"); // 1번째 보이기
}
});
});
}
// 내부용 탭버튼 layer 제어
function dtlShowMyLayer(caller,containerSelector,hideSelector, showSeletor, btnsSelector, selectedClassNm, removedClassNm){
$(caller).parents(containerSelector).find(hideSelector).hide();
$(caller).parents(containerSelector).find(showSeletor).show();
$(caller).parents(containerSelector).find(btnsSelector).removeClass(selectedClassNm).addClass(removedClassNm);
$(caller).removeClass(removedClassNm).addClass(selectedClassNm);
}
// 마스터 상세 뷰
function mstView(type,code){
if($.trim(type)=='' || $.trim(code)=='') return;
if(dtlReq(type,code,'','Y','',createNewDtlLayer())=='err') dtlPrev();
}
// 영화상세 상영영화관으로 이동
function mstViewI(type, code){
if($.trim(type)=='' || $.trim(code)=='') return;
if(dtlReq(type,code,'','Y','',createNewDtlLayer())=='err') dtlPrev();
$(".layerBox").parents(".ui-dialog").find(".dtlLayer:eq(2)").show().siblings(".dtlLayer").hide();
$(".layerBox").siblings("*").find("a.current").attr("class","");
$(".layerBox").siblings("*").find("a:eq(4)").attr("class","current");
$(".wrap_tab").find("li").eq(2).click();
}
// 엑셀 다운로드 요청
function dtlExcelDn(type,sType,code){
var url = '';
switch (type) {
case 'movie':
url = '/kobis/business/mast/mvie/searchMovieDtlXls.do';
break;
case 'people':
url = '/kobis/business/mast/peop/searchPeopleDtlXls.do';
break;
case 'company':
url = '/kobis/business/mast/comp/searchCompanyDtlXls.do';
break;
case 'festival':
url = '/kobis/business/mast/fest/searchFestivalDtlXls.do';
break;
case 'promotion':
url = '/kobis/business/mast/prom/searchPromotionDtlXls.do';
break;
default:
return 'err';
}
var inputStr = " ";
inputStr += " ";
inputStr += " ";
$("").appendTo("body")
.submit(function(){
if(!confirm('많은 양의 데이터를 다운로드시 시간이 오래 걸릴 수 있습니다. 엑셀로 다운받으시겠습니까?')) return false;
}).trigger("submit").remove();
}
function sendTwitter(title, url) {
var params = {};
params["programNm"] = "sendTwitter";
fn_ajaxJsonSua("/kobis/business/comm/comm/savfaceLog.do", params);
var wp = window.open("http://twitter.com/home?status="+encodeURIComponent(title)+" "+encodeURIComponent(url),'twitter','');
if(wp) {
wp.focus();
}
}
function sendFaceBook(title,url) {
var params = {};
params["programNm"] = "sendFaceBook";
fn_ajaxJsonSua("/kobis/business/comm/comm/savfaceLog.do", params);
var wp = window.open("https://www.facebook.com/dialog/feed? app_id=1638654089682007 " + "&picture=http://kobis.or.kr"+ $(".mvie_thumb").attr("src") + " &display=popup&caption= &description= " + "&name="+encodeURIComponent(title) +" &link="+encodeURIComponent(url)+" &redirect_uri="+encodeURIComponent(url) ,'facebook', '');
if(wp) {
wp.focus();
}
}
// 2015년 4월 30일 test
function shareToPopup(url, image, title, summary){
url = $("#h_url").val();
image = $("#h_img").val();
title = $("#h_title").val();
summary = $("#summ").val();
var real = "http://www.facebook.com/sharer.php?s=100&p[url]=" + encodeURIComponent(url) + "&p[images][0]=" + encodeURIComponent(image) + "&p[title]=" +
encodeURIComponent(title) + "&p[summary]=" + encodeURIComponent(summary);
real = real.split("'").join("%100");
real = encodeURI(real);
window.open(real);
}
function fn_showProgressBar(){
var $progress = $("body > #wrap_layer");
if($progress.length==0){
var proHtml = "";
proHtml += "
";
proHtml += "
";
proHtml += "
";
$("body").append(innerShiv(proHtml));
$progress = $("body > #wrap_layer");
}
$progress.show();
$progress.height($("body").height());
}
function fn_hideProgressBar(){
var $progress = $("body > #wrap_layer");
$progress.remove();
}
$.fn.submitXls = function(){
var url = this.attr("action").indexOf("?")==-1 ? this.attr("action")+"?"+this.serialize():this.attr("action")+"&"+this.serialize();
var newWin = open(url,'','width=100,height=100,left=0,top='+screen.height);
fn_showProgressBar();
var intId = setInterval(function(){
if(newWin.closed){
clearInterval(intId);
fn_hideProgressBar();
}
}, 1000);
return this;
};
$.extend($.expr[':'],{ textboxEmpty: function(el){ return $(el).val() == ""; } });
// 한글 기본입력 설정/툴팁
$(function(){
$(":text:not([name*='En'])").css("ime-mode","active");
});
//ISNI코드 국립중앙도서관 인물정보 팝업
function goIsniPage(isniCd){
var url = "https://www.nl.go.kr/isni/" + isniCd;
var win = window.open(url, '_blank');
win.focus();
}
//마이페이지-나의필모용
function mfdtlReq(type,code, sType,titleYN, etcParam, dtlObj){
var url = '';
var tabType = [''];
switch (type) {
case 'people':
url = '/kobis/business/mast/peop/myfilmoList.do';
tabType = ['filmo'];
break;
default:
return 'err';
}
var isOuterReq = location.href.indexOf("Outer.do")!= -1;
$.ajax({
type: 'POST',
url: url,
dataType: 'text',
data: {code:code,sType:sType,titleYN:titleYN,etcParam:etcParam,isOuterReq:isOuterReq},
async: false,
success: function(data){
if(dtlObj!=null){
dtlObj.updateContents(data);
if(data.indexOf("")!=-1){
alert('해당 데이터가 존재하지 않습니다.');
dtlPrev();
}
for(var i=0;i