252 lines
7.1 KiB
Plaintext
252 lines
7.1 KiB
Plaintext
<%# encoding: utf-8 %>
|
|
$.extend($.expr[':'], {
|
|
'containsi': function (elem, i, match, array) {
|
|
return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
|
|
}
|
|
});
|
|
var galleryAPI = function(){
|
|
g = this;
|
|
this.urlVars = rcom.getUrlVars();
|
|
this.albumArea = $("#orbit_gallery");
|
|
this.loadArea = "theater";
|
|
this.tagList = $(".taglist ul");
|
|
this.loading = $("#loading");
|
|
// this.authenticated = false;
|
|
this.initialize = function(callbackFn){
|
|
if(g.loadArea == "theater"){
|
|
if(rcom.getInternetExplorerVersion()!=-1){
|
|
var photo_id = window.location.hash.replace("#","");
|
|
if(photo_id){
|
|
var params = rcom.getUrlVars();
|
|
var url = window.location.href.split("?")[0];
|
|
params["image_id"] = photo_id;
|
|
for(i=0;i<params.length;i++){
|
|
if(i == 0)
|
|
url+="?"+params[i]+"="+params[params[i]];
|
|
else
|
|
url+="&"+params[i]+"="+params[params[i]];
|
|
|
|
}
|
|
window.location.href = url;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
this.loadTheater = function(albumid,id){
|
|
var imageArray;
|
|
var imagecount = 0;
|
|
// var picHeight = 0;
|
|
g.loadstart();
|
|
var bindHandlers = function(){
|
|
var $slidelist = $('.slidelist'),
|
|
$rslide = $('.rslide'),
|
|
$rslidenav = $('.rslidenav'),
|
|
$img = $("#main_pic img"),
|
|
wHeight = $(window).height();
|
|
|
|
$("#main_pic").height("auto");
|
|
$img.css("height","auto");
|
|
|
|
var updatePhotoTag = function(){
|
|
var tagnames = imageArray[imagecount].tag_names;
|
|
g.tagList.empty();
|
|
for(tag in tagnames){
|
|
g.tagList.append("<li>"+tagnames[tag]+"</li>");
|
|
}
|
|
|
|
}
|
|
|
|
|
|
$(".slidectrl a.togglelist").click(function(){
|
|
var rslide_h = $rslide.outerHeight();
|
|
if ( $slidelist.height() < 1 ){
|
|
$slidelist.stop().animate({'height':rslide_h - 30}, 300);
|
|
$slidelist.find("ul").show();
|
|
} else {
|
|
$slidelist.stop().animate({'height':'0px'}, 300);
|
|
$slidelist.find("ul").hide();
|
|
}
|
|
})
|
|
$(".slidectrl .togglescreen").click(function(){
|
|
toggleFullscreen();
|
|
})
|
|
$(".slidectrl .browserfullscreen").click(function(){
|
|
browserFullScreen();
|
|
})
|
|
$slidelist.find(".list_element").click(function(){
|
|
imagecount = parseInt($(this).parent().attr("for"));
|
|
changeImage($(this));
|
|
})
|
|
$rslidenav.find(".navN").click(function(){
|
|
nextpic($(this));
|
|
})
|
|
$rslidenav.find("a.navP").click(function(){
|
|
prevpic($(this));
|
|
})
|
|
$("#nextpic").click(function(){
|
|
nextpic($(this));
|
|
})
|
|
|
|
$(document).keydown(function(e){
|
|
if (e.keyCode == 37){
|
|
prevpic($rslidenav.find(".navP"));
|
|
return false;
|
|
}
|
|
if(e.keyCode == 39){
|
|
nextpic($rslidenav.find(".navN"));
|
|
return false;
|
|
}
|
|
if(e.keyCode == 27){
|
|
toggleFullscreen();
|
|
$rslide.removeClass('browserFullScreen');
|
|
return false;
|
|
}
|
|
if(e.keyCode == 70 || e.keyCode == 102){
|
|
if($rslide.hasClass("fullscreen"))
|
|
browserFullScreen();
|
|
}
|
|
});
|
|
var browserFullScreen = function(){
|
|
var el = document.documentElement,
|
|
rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen;
|
|
rfs.call(el);
|
|
}
|
|
$(window).resize(function(){
|
|
if(window.innerWidth == screen.width && window.innerHeight == screen.height) {
|
|
$rslide.addClass('browserFullScreen');
|
|
} else {
|
|
$rslide.removeClass('browserFullScreen');
|
|
}
|
|
})
|
|
var nextpic = function(dom){
|
|
if(imagecount == imageArray.length - 1)
|
|
imagecount = 0;
|
|
else
|
|
imagecount++;
|
|
changeImage(dom);
|
|
}
|
|
var prevpic = function(dom){
|
|
if(imagecount == 0)
|
|
imagecount = imageArray.length - 1
|
|
else
|
|
imagecount--;
|
|
changeImage(dom);
|
|
}
|
|
var toggleFullscreen = function(){
|
|
if($rslide.hasClass("fullscreen")){
|
|
$rslide.css("position","relative");
|
|
$rslide.removeClass("fullscreen");
|
|
$(".slidectrl .browserfullscreen").hide();
|
|
$img.css({"padding":""})
|
|
$("#main_pic").height("auto");
|
|
}else{
|
|
$("#main_pic").height(wHeight);
|
|
$img.css("height","auto");
|
|
$rslide.css("position","");
|
|
$rslide.addClass("fullscreen");
|
|
$img.css({"padding":($rslide.height()-$img.height())/2})
|
|
$(".slidectrl .browserfullscreen").show();
|
|
}
|
|
}
|
|
var changeImage = function(dom){
|
|
var pageurl = dom.attr('href');
|
|
|
|
$img.fadeOut(200,function(){
|
|
g.loadstart();
|
|
if($rslide.hasClass("fullscreen")){
|
|
|
|
$img.attr({"src":dom.attr("data-content")}).css("height","100%").load(function(){
|
|
g.loadcomplete();
|
|
$img.fadeIn(200);
|
|
});
|
|
}else{
|
|
$img.attr({"src":dom.attr("data-content")}).css("height","auto").load(function(){
|
|
g.loadcomplete();
|
|
$img.fadeIn(200);
|
|
});;
|
|
}
|
|
if($rslide.hasClass("fullscreen")){
|
|
$img.css({"padding":($rslide.height()-$img.height())/2})
|
|
}
|
|
$slidelist.stop().animate({'height':'0px'}, 300);
|
|
$slidelist.find("ul").hide();
|
|
if(rcom.getInternetExplorerVersion() == -1){
|
|
if(pageurl!=window.location){
|
|
pageurl = window.location.pathname+"?id="+albumid+"&controller_action=theater&image_id="+pageurl;
|
|
window.history.pushState({path:pageurl},'',pageurl);
|
|
}
|
|
}else{
|
|
window.location.hash = pageurl;
|
|
}
|
|
// $(".slideinfo b.info").text(imageArray[imagecount].title);
|
|
updatePhotoTag();
|
|
if(imageArray[imagecount].description)
|
|
$(".slideinfo .info").text(imageArray[imagecount].description);
|
|
else
|
|
$(".slideinfo .info").text("");
|
|
if(imageArray.length > 1)
|
|
updateNavigation();
|
|
})
|
|
|
|
}
|
|
var updateNavigation = function(){
|
|
var next, prev;
|
|
if(imagecount == 0){
|
|
next = 1;
|
|
prev = imageArray.length - 1;
|
|
}else if(imagecount == imageArray.length - 1){
|
|
next = 0
|
|
prev = imageArray.length - 2;
|
|
}else{
|
|
next = imagecount + 1;
|
|
prev = imagecount - 1;
|
|
}
|
|
$(".navN").attr({"href":imageArray[next]._id,"data-content":imageArray[next].file.theater.url});
|
|
$(".navP").attr({"href":imageArray[prev]._id,"data-content":imageArray[prev].file.theater.url});
|
|
};
|
|
if(imageArray.length > 1)
|
|
updateNavigation();
|
|
}
|
|
|
|
var preparestage = function(albumid){
|
|
$.getJSON("/panel/gallery/front_end/albums/"+albumid+"/imgs",{"inner":true},function(album){
|
|
imageArray = eval(album.images);
|
|
$.each(album.images,function(i,image){
|
|
if(image._id == id)
|
|
imagecount = i;
|
|
})
|
|
bindHandlers();
|
|
})
|
|
}
|
|
// if(rcom.getInternetExplorerVersion()!=-1){
|
|
// var url_constructor = window.location.href.split("/");
|
|
// var url = "";
|
|
// for(x=0;x<=url_constructor.length-1;x++){
|
|
// if(x == url_constructor.length-1){
|
|
// url+="#!/"+url_constructor[x];
|
|
// }else{
|
|
// url+=url_constructor[x]+"/";
|
|
// }
|
|
// }
|
|
|
|
// window.location.href = url;
|
|
// }
|
|
|
|
var albumid = $("#main_pic").attr("data-content");
|
|
g.albumArea.css("margin-bottom","0");
|
|
// picHeight = $(window).height() - ($("#orbit-bar").outerHeight() + $("#orbit_gallery .form-actions").outerHeight());
|
|
preparestage(albumid);
|
|
|
|
}
|
|
this.loadcomplete = function(){
|
|
g.loading.hide();
|
|
}
|
|
this.loadstart = function(){
|
|
g.loading.show();
|
|
}
|
|
|
|
}
|
|
galleryAPI.prototype.locale = "en";
|