/** * @name Search Module * @description Searches through your photos and albums. * @author Tobias Reich * @copyright 2014 by Tobias Reich */ search = { code: null, find: function(term) { var params, albumsData = "", photosData = "", code; clearTimeout($(window).data("timeout")); $(window).data("timeout", setTimeout(function() { if ($("#search").val().length!==0) { params = "search&term=" + term; lychee.api(params, function(data) { if (data&&data.albums) { albums.json = { content: data.albums }; $.each(albums.json.content, function() { albums.parse(this); albumsData += build.album(this); }); } if (data&&data.photos) { album.json = { content: data.photos }; $.each(album.json.content, function() { album.parse(this); photosData += build.photo(this); }); } if (albumsData===""&&photosData==="") code = "error"; else if (albumsData==="") code = build.divider("Photos")+photosData; else if (photosData==="") code = build.divider("Albums")+albumsData; else code = build.divider("Photos")+photosData+build.divider("Albums")+albumsData; if (search.code!==md5(code)) { $(".no_content").remove(); lychee.animate(".album:nth-child(-n+100), .photo:nth-child(-n+100)", "contentZoomOut"); lychee.animate(".divider", "fadeOut"); search.code = md5(code); setTimeout(function() { if (code==="error") $("body").append(build.no_content("search")); else { lychee.content.html(code); lychee.animate(".album:nth-child(-n+100), .photo:nth-child(-n+100)", "contentZoomIn"); $("img[data-type!='svg']").retina(); } }, 300); } }); } else search.reset(); }, 250)); }, reset: function() { $("#search").val(""); $(".no_content").remove(); if (search.code!=="") { // Trash data albums.json = null; album.json = null; photo.json = null; search.code = ""; lychee.animate(".divider", "fadeOut"); albums.load(); } } };