/* * FILo <> Facebook Image Loader jQuery Plugin v1.2.3 * http://www.berlinpix.com/filo * * Copyright 2015, BerlinPix.com * licensed under the LGPL license. * * last update: 2015-03-16 */ (function(filo_jQuery){filo_jQuery.fn.filo=function(filo_options){if(!filo_jQuery(this).length){console.log("filo container is undefined, please check the ID or class name");return}if(filo_options===undefined)filo_options={container:this};if((filo_jQuery(this).attr("class")!=undefined&&filo_jQuery(this).attr("class").indexOf("template"))==-1&&filo_options.template!=undefined){filo_jQuery(this).addClass("template_"+filo_options.template+" filo")}else{filo_jQuery(this).addClass("filo")}var id=filo_jQuery(this).attr("id");var uid=id+"_"+Date.now();uid=uid.replace(/\./g,"");filo_jQuery(this).attr("id",uid);filoHandler(filo_jQuery,uid,id,filo_options);filo_jQuery(window).unbind("resize");filo_jQuery(window).resize(function(evt){resizeImage(filo_jQuery,filo_options)})};filo_jQuery.filo=function(id,filo_options){if(filo_options===undefined){filo_options={};filo_options.container="body"}else{if(filo_options.container===undefined)filo_options.container="body"}var uid=id+"_"+Date.now();uid=uid.replace(/\./g,"");var template=filo_options.template!=undefined?"template_"+filo_options.template:"";filo_jQuery(filo_options.container).append('
');filoHandler(filo_jQuery,uid,id,filo_options);filo_jQuery(window).unbind("resize");filo_jQuery(window).resize(function(evt){resizeImage(filo_jQuery,filo_options)})};jQuery.filo.getUrlParams=function(){var vars=[],hash;var hashes=window.location.href.slice(window.location.href.indexOf("?")+1).split("&");for(var i=0;i0){for(var i=0;i0){for(var i=0;i1?data[1].fql_result_set:data[0].fql_result_set;handleAlbum(filo_jQuery,uid,id,albums,add,nope,filo_options)})}else{filo_jQuery.getJSON(url,function(json){var data=json.data;var albums=data.length>1?data[1].fql_result_set:data[0].fql_result_set;if(albums.length<=0){filo_jQuery(".filo_loader").remove();alert("There are no albums, please check your Facebook-ID")}handleAlbum(filo_jQuery,uid,id,albums,add,nope,filo_options)}).error(function(evt){filo_jQuery(".filo_loader").remove();alert("Error while loading, please check your Facebook-ID or write me: info@berlinpix.com")})}}function handleAlbum(filo_jQuery,uid,id,albums,add,nope,filo_options){filo_jQuery.filo.toLoad[uid]=0;filo_jQuery.filo.isLoaded[uid]=0;for(album in albums){albums[album].name=replaceForLoop(albums[album].name)}var url="https://graph.facebook.com/fql?q=";var fql="";var q1="SELECT src, src_big, src_big_width, images FROM photo WHERE aid = ";if(add.length>0){filo_jQuery.each(albums,function(key,album){if(inArray(album.name,add)){filo_jQuery.filo.toLoad[uid]+=1;var maxCount=filo_jQuery.filo.maxCountDefault;if(filo_jQuery("#"+uid+" #"+album.name).attr("maxCount")!=undefined){maxCount=parseInt(filo_jQuery("#"+uid+" #"+album.name).attr("maxCount"))}else if(filo_jQuery("#"+uid+" #"+album.name.toLowerCase()).attr("maxCount")!=undefined){maxCount=parseInt(filo_jQuery("#"+uid+" #"+album.name.toLowerCase()).attr("maxCount"))}else if(filo_options!=undefined&&filo_options.maxCount!=undefined){maxCount=filo_options.maxCount}if(maxCount=="all"){fql=JSON.stringify({photos:q1+"'"+album.aid+"' LIMIT "+1e3})}else{fql=JSON.stringify({photos:q1+"'"+album.aid+"' LIMIT "+maxCount})}var album_url=url+encodeURIComponent(fql);$("#"+uid+" .album").each(function(i,a){if(filo_jQuery(a).attr("id").toLowerCase()===album.name.toLowerCase()){filo_jQuery(a).remove()}});var alb=filo_jQuery('
').append('
'+replaceForTitle(album.name)+'
');filo_jQuery(alb).hide();filo_jQuery("#"+uid).append(alb);var maxLoad=maxCount=="all"?album.count:maxCount;if(filo_jQuery.browser.msie){filo_jQuery.ajax({url:album_url,dataType:"jsonp"}).success(function(jsonp){var photos=jsonp.data[0].fql_result_set;handlePhoto(1,filo_jQuery,id,uid,photos,alb,maxCount,filo_options)})}else{filo_jQuery.getJSON(album_url,function(data){var photos=data.data[0].fql_result_set;handlePhoto(1,filo_jQuery,id,uid,photos,alb,maxCount,filo_options)})}}})}else{filo_jQuery.each(albums,function(key,album){if(!inArray(album.name,nope)){filo_jQuery.filo.toLoad[uid]+=1;var maxCount=filo_jQuery.filo.maxCountDefault;if(filo_options!=undefined&&filo_options.maxCount!=undefined){maxCount=filo_options.maxCount}else if(filo_jQuery("#"+album.name).attr("maxCount")!=undefined){maxCount=parseInt(filo_jQuery("#"+album.name).attr("maxCount"))}if(maxCount=="all"){fql=JSON.stringify({photos:q1+"'"+album.aid+"'"})}else{fql=JSON.stringify({photos:q1+"'"+album.aid+"' LIMIT "+maxCount})}var album_url=url+encodeURIComponent(fql);var alb=filo_jQuery('
').append('
'+replaceForTitle(album.name)+'
').hide();filo_jQuery("#"+uid).append(alb);if(filo_jQuery.browser.msie){filo_jQuery.ajax({url:album_url,dataType:"jsonp"}).success(function(jsonp){var photos=jsonp.data[0].fql_result_set;handlePhoto(1,filo_jQuery,id,uid,photos,alb,maxCount,filo_options)})}else{filo_jQuery.getJSON(album_url,function(data){var photos=data.data[0].fql_result_set;handlePhoto(1,filo_jQuery,id,uid,photos,alb,maxCount,filo_options)})}}})}}function handlePhoto(depth,filo_jQuery,id,uid,photos,album,maxCount,filo_options){var i=depth==1?1:(depth-1)*26;var photos_array=new Array;var ph=photos;var root_path=filo_jQuery.filo.root_path;if(filo_options.order!=undefined&&filo_options.order=="reverse")ph.reverse();else if(filo_options.order!=undefined&&filo_options.order=="random"){var r=new Array;var keys=new Array;while(r.lengthmaxScreenHeight;filo_jQuery.each(ph,function(key,photo){var p=photo.images[0].source;for(var j=photo.images.length-1;j>0;j--){if(isHorizontal){if(maxScreenWidth'+'
'+''+""+"
"+"");filo_jQuery(img).find("a").append(file);filo_jQuery(album).find(".thumbs").append(img);filo_jQuery(album).find(".filo_picture").unbind("click");filo_jQuery(album).find(".filo_picture").click(function(evt){evt.preventDefault();if(filo_options.href!=undefined){if(filo_options.method!=undefined&&filo_options.method.toLowerCase()=="post"){var newWindow=filo_options.newWindow==true?'target="_blank"':"";filo_jQuery("body").append('
');filo_jQuery("#filo_forward").trigger("submit").remove();return false}else{if(!filo_options.newWindow){document.location=filo_options.href+"?profile="+id+"&album="+filo_jQuery(album).attr("id");return false}else{window.open(filo_options.href+"?profile="+id+"&album="+filo_jQuery(album).attr("id"));return false}}}else{if(filo_jQuery(".filo_overlay").length<1){filo_jQuery.filo.closeButton=root_path+filo_jQuery.filo.closeButtons["black"];if(filo_options.closeButton!=undefined){if(filo_jQuery.filo.closeButtons[filo_options.closeButton]!=undefined){filo_jQuery.filo.closeButton=root_path+filo_jQuery.filo.closeButtons[filo_options.closeButton]}else{filo_jQuery.filo.closeButton=filo_options.closeButton}}var maxZ=900;filo_jQuery.each(filo_jQuery("body *"),function(index,value){if(filo_jQuery(value).css("zIndex")!="auto"){maxZ=Math.max(maxZ,parseInt(filo_jQuery(value).css("zIndex")))}});var background=filo_options.overlay!=undefined?"background: "+filo_options.overlay+"; ":"background: "+filo_jQuery.filo.overlayDefault+";";var opacity=filo_options.overlayOpacity!=undefined?" opacity: "+filo_options.overlayOpacity+";":" opacity: "+filo_jQuery.filo.overlayOpacityDefault+";";filo_jQuery("body").append('
'+'
'+'
'+'
'+'
'+'
'+"
"+"
");var closeButton=new Image;closeButton.onload=function(){filo_jQuery(".filo_overlay_container").append(closeButton);var border=filo_jQuery(".filo_overlay_container").css("border-width")>0?filo_jQuery(".filo_overlay_container").css("border-width"):17;filo_jQuery(this).css("right",(this.width/2+border)*-1);filo_jQuery(this).css("top",(this.height/2+border)*-1);closeButton.setAttribute("class","filo_overlay_container_close");filo_jQuery(".filo_overlay_container_close").click(function(evt){filo_jQuery(".filo_overlay").remove()})};closeButton.src=filo_jQuery.filo.closeButton;setNewImage(filo_jQuery,filo_jQuery(this).attr("id"),photos_array,filo_jQuery(album).attr("id"),filo_options);filo_jQuery(".filo_overlay_background").click(function(evt){if(filo_jQuery(evt.target).attr("class")=="filo_overlay_background")filo_jQuery(".filo_overlay").remove()});filo_jQuery(".filo_overlay_container_left").click(function(evt){var id=parseInt(filo_jQuery(".filo_full_picture").attr("id"));if(id>0){setNewImage(filo_jQuery,id-1,photos_array,filo_jQuery(album).attr("id"),filo_options)}});filo_jQuery(".filo_overlay_container_right").click(function(evt){var id=parseInt(filo_jQuery(".filo_full_picture").attr("id"));if(id=maxCount){filo_jQuery(album).append('
');return false}else{i++}if(i==photos.length){filo_jQuery(album).append('
')}});filo_jQuery.filo.isLoaded[uid]+=1;filo_jQuery(album).fadeIn("slow");if(filo_jQuery.filo.isLoaded[uid]==filo_jQuery.filo.toLoad[uid]){filo_jQuery("#"+uid+" .album").last().attr("class",filo_jQuery("#"+uid+" .album").last().attr("class")+" last");filo_jQuery("#"+uid).append('
');filo_jQuery("#"+uid+" .add").remove();filo_jQuery("#"+uid+" .excluded").remove();filo_jQuery("#"+uid+" .filo_loader").remove();if(typeof filo_options.load=="function"){var e=jQuery.Event("FILo Load Event");filo_options.load(e)}}}function setNewImage(filo_jQuery,id,photos_array,album_name,filo_options){filo_jQuery(".filo_overlay_container_left").show();filo_jQuery(".filo_overlay_container_right").show();if(id==0)filo_jQuery(".filo_overlay_container_left").hide();if(id==photos_array.length-1)filo_jQuery(".filo_overlay_container_right").hide();var border_width=parseInt(filo_jQuery(".filo_overlay_container").css("border-top-width").split("px")[0]);var counter_height=parseInt(filo_jQuery(".picture_counter").height());var maxWidth=(filo_options.maxWidth?filo_options.maxWidth:filo_jQuery.filo.maxWidth)/100;var maxHeight=(filo_options.maxHeight?filo_options.maxHeight:filo_jQuery.filo.maxHeight)/100;var doc_width=filo_jQuery(window).width()*maxWidth-border_width;var doc_height=filo_jQuery(window).height()*maxHeight-(border_width+counter_height);var img=new Image;img.onload=function(){var old_width=this.width;var old_height=this.height;var new_width;var new_height;if(old_width>old_height){new_width=old_width>doc_width?doc_width:old_width;new_height=new_width*old_height/old_width;if(new_height>doc_height){new_height=old_height>doc_height?doc_height:old_height;new_width=new_height*old_width/old_height}}else{new_height=old_height>doc_height?doc_height:old_height;new_width=new_height*old_width/old_height;if(new_width>doc_width){new_width=old_width>doc_width?doc_width:old_width;new_height=new_width*old_height/old_width}}if(filo_jQuery(".filo_overlay_container .filo_full_picture").length>0){filo_jQuery(".filo_overlay_container .filo_full_picture").fadeOut(300,function(){filo_jQuery(img).css("display","none");img.width=new_width;img.height=new_height;filo_jQuery(".filo_overlay_container").width(new_width).height(new_height).css("margin-left",new_width/2*-1).css("margin-top",new_height/2*-1-counter_height).prepend(img).find(img).fadeIn(300);filo_jQuery(this).remove();filo_jQuery(".filo_overlay_container_close").show();filo_jQuery(".filo_overlay_container .picture_counter").html("Album: "+album_name+" | Pic: "+(parseInt(id)+1)+" of "+photos_array.length+"")})}else{filo_jQuery(img).width(new_width).height(new_height);filo_jQuery(".filo_overlay_container").width(new_width).height(new_height).css("margin-left",new_width/2*-1).css("margin-top",new_height/2*-1-counter_height).prepend(img).fadeIn(300);filo_jQuery(".filo_overlay_container_close").show();filo_jQuery(".filo_overlay_container .picture_counter").html("Album: "+album_name+" | Pic: "+(parseInt(id)+1)+" of "+photos_array.length+"")}var w=filo_jQuery(".filo_overlay_container .picture_counter span").width();var paddingLeft=filo_jQuery(".filo_overlay_container .picture_counter span").css("paddingLeft").split("px")[0];var paddingRight=filo_jQuery(".filo_overlay_container .picture_counter span").css("paddingRight").split("px")[0];filo_jQuery(".filo_overlay_container .picture_counter").width(w+parseInt(paddingRight)+parseInt(paddingRight)).css("position","absolute").css("left","50%").css("marginLeft","-"+(w+parseInt(paddingRight)+parseInt(paddingRight))/2+"px")};img.setAttribute("class","filo_full_picture");img.setAttribute("id",id);img.src=photos_array[id]}function resizeImage(filo_jQuery,filo_options){if(filo_jQuery(".filo_overlay").length>0&&!filo_jQuery.filo.resize){filo_jQuery(".filo_full_picture").css("width","").css("height","");resize=true;var maxWidth=(filo_options.maxWidth?filo_options.maxWidth:filo_jQuery.filo.maxWidth)/100;var maxHeight=(filo_options.maxHeight?filo_options.maxHeight:filo_jQuery.filo.maxHeight)/100;var border_width=parseInt(filo_jQuery(".filo_overlay_container").css("border-top-width").split("px")[0]);var counter_height=parseInt(filo_jQuery(".picture_counter").height());var doc_width=filo_jQuery(window).width()*maxWidth-border_width;var doc_height=filo_jQuery(window).height()*maxHeight-(border_width+counter_height);var old_width=parseInt(filo_jQuery(".filo_full_picture").width());var old_height=parseInt(filo_jQuery(".filo_full_picture").height());var new_width;var new_height;if(old_width>old_height){new_width=old_width>doc_width?doc_width:old_width;new_height=new_width*old_height/old_width;if(new_height>doc_height){new_height=old_height>doc_height?doc_height:old_height;new_width=new_height*old_width/old_height}}else{new_height=old_height>doc_height?doc_height:old_height;new_width=new_height*old_width/old_height;if(new_width>doc_width){new_width=old_width>doc_width?doc_width:old_width;new_height=new_width*old_height/old_width}}filo_jQuery(".filo_overlay_container img.filo_full_picture").width(new_width);filo_jQuery(".filo_overlay_container").width(new_width).height(new_height).css("margin-left",new_width/2*-1).css("margin-top",new_height/2*-1-counter_height);resize=false}}function inArray(needle,array){for(var i=0;i=0){s=value.src.split("/")}})}if(s=="")return"filo/"}var path="";for(var i=0;i