")
.attr("id","xe_gallery_screen")
.css({
position:"absolute",
display:"none",
backgroundColor:"black",
zIndex:500,
opacity:0.5
});
// 이미지를 보여주고 컨트롤 버튼을 다룰 레이어
controls = $("
")
.attr("id","xe_gallery_controls")
.css({
position:"absolute",
display:"none",
overflow:"hidden",
zIndex:510
});
// 닫기 버튼
closebtn = $("
![]()
")
.attr("id", "xe_gallery_closebtn")
.attr("src", request_uri+"addons/resize_image/iconClose.png")
.css({
top : "10px"
})
.click(function(){xScreen.xeHide()})
.appendTo(controls);
// 이전 버튼
prevbtn = $("
![]()
")
.attr("id", "xe_gallery_prevbtn")
.attr("src", request_uri+"addons/resize_image/iconLeft.png")
.css("left","10px")
.click(function(){xScreen.xePrev()})
.appendTo(controls);
// 다음 버튼
nextbtn = $("
![]()
")
.attr("id", "xe_gallery_nextbtn")
.attr("src", request_uri+"addons/resize_image/iconRight.png")
.css("right","10px")
.click(function(){xScreen.xeNext()})
.appendTo(controls);
// 버튼 공통 속성
controls.find("img")
.attr({
width : 60,
height : 60,
className : "iePngFix"
})
.css({
position : "absolute",
width : "60px",
height : "60px",
zIndex : 530,
cursor : "pointer"
});
// 이미지 홀더
imgframe = $("
![]()
")
.attr("id", "xe_gallery_holder")
.css("border", "7px solid white")
.css("zIndex", 520)
.appendTo(controls).draggable();
body.append(xScreen).append(controls);
// xScreen 객체를 확장한다.
xScreen.xeShow = function() {
var clientWidth = $(window).width();
var clientHeight = $(window).height();
$("#xe_gallery_controls,#xe_gallery_screen").css({
display:"block",
width : clientWidth + "px",
height : clientHeight + "px",
left : $(document).scrollLeft(),
top : $(document).scrollTop()
});
closebtn.css("left", Math.round((clientWidth-60)/2) + "px");
$("#xe_gallery_prevbtn,#xe_gallery_nextbtn").css("top", Math.round( (clientHeight-60)/2 ) + "px");
this.xeMove(0);
};
xScreen.xeHide = function(event) {
xScreen.css("display","none");
controls.css("display","none");
};
xScreen.xePrev = function() {
this.xeMove(-1);
};
xScreen.xeNext = function() {
this.xeMove(1);
};
xScreen.xeMove = function(val) {
var clientWidth = $(window).width();
var clientHeight = $(window).height();
this.index += val;
prevbtn.css("visibility", (this.index>0)?"visible":"hidden");
nextbtn.css("visibility", (this.index
").css({height:"1px",overflow:"hidden",opacity:0,display:"block"});
var newWidth = -1;
// 더미 객체를 넣어서 너비 구하기
img.before(dummy);
newWidth = dummy.innerWidth();
dummy.remove();
// 리사이즈 및 경로 지정
if (img_width <= 0) img_width = $(this).attr("width");
if (img_height <= 0) img_height = $(this).attr("height");
if (img_width > newWidth) {
img_height = newWidth * img_height/img_width;
img_width = newWidth;
}
img.attr({width:img_width,height:img_height,src:img_src});
// 링크가 설정되어 있거나 onclick 이벤트가 부여되어 있으면 원본 보기를 하지 않음
if ( img.parent("a").size() || img.attr("onclick") ) return;
// 스타일 설정
img.css("cursor", "pointer");
// 클릭하면 슬라이드쇼 시작
img.click(slideshow);
}
$(document).ready(function(){
var regx_skip = /(?:modules|addons|classes|common|layouts|libs|widgets)/i;
var regx_parent = /(?:document|comment)_[0-9]+_[0-9]+/i;
// 이미지 목록을 가져와서 리사이즈
$(".xe_content img").each(function(){
var img = $(this);
var src = img.attr("src");
var width = img.attr("width");
var height = img.attr("height");
// XE 내부 프로그램 또는 스킨의 이미지라면 이미지 리사이즈를 하지 않음
if ( regx_skip.test(src) ) return;
// 커스텀 속성 추가
img.attr("rel", "xe_gallery");
// 크기를 줄인다.
img.attr({src:"about:blank", width:16,height:16});
// 이미지를 다 읽어들이면 리사이즈
$("
").bind("load", [img, width, height, src], resize).attr("src", src);
});
});
})(jQuery);