window.console||(console={log:function(){}});var gbks=gbks||{};gbks.Grid=function(){this.init=function(e){this.config=e;this.layout=new gbks.Tiles;this.layout.init(e);this.polaroid=new gbks.Polaroid;this.polaroid.init();$("#homeNav").show();$(".hometile .nav a").click($.proxy(this.onClickHomeNavItem,this));$(".hometile .categories a").click($.proxy(this.onClickHomeNavItem,this));$(".followButton").click($.proxy(this.onClickFollowButton,this))};this.onClickHomeNavItem=function(e){var t=$(e.currentTarget),n=t.attr("data-type"),r=t.attr("data-id");if(n&&n.length>0){this.layout.config={type:n,page:0,id:r};this.layout.currentPage=-1;this.layout.itemCount=null;$("#images .polaroid").remove();this.layout.loadMore();$(".hometile .nav li").removeClass("active");$(".hometile .categories li").removeClass("active");t.parent().addClass("active");var i=t.attr("title"),s=t.attr("href");this.setHistory(s,i);e.preventDefault();e.stopPropagation()}};this.setHistory=function(e,t){var n=typeof history.pushState!="undefined";n&&history.pushState({url:e,title:t},t,e)};this.onHistoryChange=function(e){var t=e.state};this.onClickFollowButton=function(e){e.preventDefault();e.stopPropagation();var t=$(e.currentTarget),n=$("a",t),r=n.parent(),i=t.attr("data-type"),s=t.attr("data-id"),o=r.hasClass("active");if(s&&i){var u="/following/follow",a="Following";if(o){u="/following/unfollow";a="Follow";r.removeClass("active")}else r.addClass("active");n.html(a);$.ajax({url:u,data:{targetId:s,type:i},type:"POST",success:$.proxy(this.onSubmitFollow,this)})}};this.onSubmitFollow=function(e,t,n){}};var grid,pageConfig=pageConfig||{};$(document).ready(function(){if(pageConfig){grid=new gbks.Grid;grid.init(pageConfig)}});var gbks=gbks||{};gbks.Polaroid=function(){this.init=function(){this.polaroids=$(".polaroid");var e=$("html");this.isSlow=e.hasClass("ie6")||e.hasClass("ie7")||e.hasClass("ie8")||e.hasClass("ie9");this.auth=$("body").hasClass("auth");this.loader=$("#loader");this.lightbox=null;this.groupsOverlay=null;this.savePopup=null;this.htmlDecoder=null;this.autoComplete=null;this.focusedField=null;this.lastFocusedField=null;this.keyPressMethod=$.proxy(this.onKeyPress,this);this.keyUpMethod=$.proxy(this.onKeyUp,this);this.resizeMethod=$.proxy(this.onResize,this);this.showGroupInfoTimer=null;this.hideGroupInfoTimer=null;this.shiftDown=!1;$(window).bind("keydown",$.proxy(this.keyDown,this));$(window).bind("keyup",$.proxy(this.keyUp,this));var t=$(".polaroid .options");if(this.auth){$(".like",t).live("click",$.proxy(this.onClickLikeImage,this));$(".comment",t).live("click",$.proxy(this.onClickCommentIcon,this));$(".save",t).live("click",$.proxy(this.onClickSaveIcon,this))}$(".imageLink",this.polaroids).live("click",$.proxy(this.onClickMagnify,this));$(".nsfwCover",this.polaroids).live("click",$.proxy(this.onClickNSFWCover,this));$(".expander",this.polaroids).live("click",$.proxy(this.onClickExpand,this));var n=$(".groups a",this.polaroids);n.live("mouseenter",$.proxy(this.onGroupOver,this));n.live("mouseleave",$.proxy(this.onGroupOut,this));this.clickDocumentMethod=$.proxy(this.onClickDocument,this)};this.onGroupOver=function(e){var t=$(e.currentTarget);this.groupInfoLink=t;var n=t.attr("href"),r=n.split("/"),i=0,s=r.length,o,u;for(;ii){u=r[i+1];break}if(u){clearTimeout(this.hideGroupInfoTimer);this.groupInfoId=u;clearTimeout(this.showGroupInfoTimer);this.showGroupInfoTimer=setTimeout($.proxy(this.loadGroupInfoPopup,this),1e3)}};this.loadGroupInfoPopup=function(e){$.ajax({url:"/groups/popup",data:{groupId:this.groupInfoId},type:"POST",success:$.proxy(this.onGetGroupPopup,this)})};this.onGetGroupPopup=function(e){if(!e||!this.groupInfoId)return;if(this.groupInfoPopup){this.groupInfoPopup.remove();this.groupInfoPopup=null;this.groupInfoId=null}var e=gbks.common.wrapPopupContent("groupInfoPopup",e);this.groupInfoPopup=$(e);$("body").append(this.groupInfoPopup);gbks.common.positionPopup(this.groupInfoPopup,this.groupInfoLink)};this.onGroupOut=function(e){clearTimeout(this.showGroupInfoTimer);if(this.groupInfoPopup){this.groupInfoPopup.remove();this.groupInfoPopup=null;this.groupInfoId=null}clearTimeout(this.hideGroupInfoTimer);this.hideGroupInfoTimer=setTimeout($.proxy(this.hideGroupPopup,this),500)};this.hideGroupPopup=function(e){if(this.groupInfoPopup){clearTimeout(this.showGroupInfoTimer);this.groupInfoPopup.remove();this.groupInfoPopup=null;this.groupInfoId=null}};this.onClickLikeImage=function(e){e.stopPropagation();e.preventDefault();var t=$(e.currentTarget),n=$(t.parents(".polaroid")[0]),r=$(".likes",n),i=$(".likes",n),s=!t.hasClass("active"),o=t.attr("data-id"),u=parseInt(n.attr("data-likes"));s?u++:u--;n.attr("data-likes",u);this.updateStats(n,!1,!0);var a="/likes/like";if(s){t.addClass("active");gbks.common.track("Polaroid","Like",o)}else{a="/likes/unlike";t.removeClass("active");gbks.common.track("Polaroid","Unlike",o)}$.ajax({url:a,data:{imageId:o},type:"POST",success:$.proxy(this.onLikeImage,this)});this.updateLayout()};this.onLikeImage=function(e){};this.onClickCommentIcon=function(e){e.stopPropagation();e.preventDefault();var t=$(e.currentTarget),n=$(t.parents(".polaroid")[0]),r=$(".comments",n),i=$("form",r),s=t.hasClass("active");if(s){t.removeClass("active");i.hide();var o=$(".comments .comment",n);o.length==0&&r.hide()}else{t.addClass("active");if(r.length==0){r=$('
');var u=$(".stats",n),a=$(".groups",n);u.length>0?r.insertAfter(u):a.length>0?r.insertBefore(a):n.append(r)}else r.show();var f=t.attr("data-id");if(i.length==0){var l='
';l+=' ';l+=' ';l+=' ';l+="
";i=$(l);r.append(i);$("textarea",i).focus($.proxy(this.onFocusCommentForm,this));$("textarea",i).blur($.proxy(this.onBlurCommentForm,this));i.submit($.proxy(this.onClickSubmitComment,this))}else i.show();$("textarea",i).focus()}this.updateLayout()};this.onFocusCommentForm=function(e){this.focusedField=$(e.currentTarget);$(document).bind("keypress",this.keyPressMethod);$(document).bind("keyup",this.keyUpMethod)};this.onBlurCommentForm=function(e){var t=$(e.currentTarget);if(this.focusedField[0]==t[0]){this.lastFocusedField=t;this.focusedField=null;setTimeout($.proxy(this.hideAutoComplete,this),500)}$(document).unbind("keypress",this.keyPressMethod);$(document).unbind("keyup",this.keyUpMethod)};this.keyDown=function(e){e.which==16&&(this.shiftDown=!0)};this.keyUp=function(e){e.which==16&&(this.shiftDown=!1)};this.onKeyPress=function(e){if(e.which==13&&this.autoComplete&&this.autoComplete.is(":visible")){var t=$("li:visible",this.autoComplete);if(t.length>0){e.stopPropagation();e.preventDefault();var n=$(t[0]);n.length>0&&this.handleAutoCompleteItemClick(n)}}};this.onKeyUp=function(e){this.auth&&(this.autoComplete?this.updateAutoComplete():this.loadAutoComplete())};this.updateAutoComplete=function(){if(!this.focusedField)return;var e=this.focusedField.val(),t=e.indexOf("@")!=-1,n=e.split("@"),r=n[n.length-1];r=r.toLowerCase();var i=$("li",this.autoComplete),s=this.autoComplete&&i.length>0&&t,o=0;if(s&&r.length>0){var u=5,a=0,f=i.length,l,c,h,p,d;for(;a');$("body").append(this.autoComplete);$("ul",this.autoComplete).load("/autocomplete",$.proxy(this.onLoadAutoComplete,this))}};this.onLoadAutoComplete=function(){var e=$("li",this.autoComplete);e.click($.proxy(this.onClickAutoCompleteItem,this));this.updateAutoComplete()};this.onClickAutoCompleteItem=function(e){e.preventDefault();e.stopPropagation();var t=$(e.currentTarget);this.handleAutoCompleteItemClick(t)};this.handleAutoCompleteItemClick=function(e){var t=$("a",e).html();t=t.split("");t=t[0];if(!this.lastFocusedField)return;var n=this.lastFocusedField.val(),r=n.split(" ");r[r.length-1]="@"+t;n=r.join(" ")+" ";this.lastFocusedField.val(n);this.lastFocusedField.focus();this.setCursorPosition(this.lastFocusedField,n.length);this.hideAutoComplete()};this.setCursorPosition=function(e,t){var n=e.get(0);if(n.setSelectionRange)n.setSelectionRange(t,t);else if(n.createTextRange){var r=n.createTextRange();r.collapse(!0);r.moveEnd("character",t);r.moveStart("character",t);r.select()}};this.onClickSubmitComment=function(e){e.stopPropagation();e.preventDefault();var t=$(e.currentTarget),n=$('input[name="imageId"]',t).val(),r=$("textarea",t).val(),i="/comment/add";t.hide();if(r.length>0&&r!=this.commentDefault){this.showLoader("Saving comment");gbks.common.track("Polaroid","Comment",n);var s={imageId:n,comment:r};$.ajax({url:i,data:s,type:"POST",success:$.proxy(this.onSubmitComment,this)})}this.updateLayout()};this.onSubmitComment=function(e,t,n){var r=$(e),i=r.attr("data-imageid"),s=$("#image_"+i),o=$(".comments",s);o.append(e);o.removeClass("empty");this.updateLayout();this.hideLoader()};this.onClickSaveIcon=function(e){e.stopPropagation();e.preventDefault();var t=$(e.currentTarget),n=$(t.parents(".polaroid")[0]),r=$(".save",n).attr("data-id"),i=!1;$(".save span",n).html("Edit");n.addClass("saved");if(this.groupsOverlay){i=this.groupsOverlay.attr("data-imageId")==r;this.groupsOverlay.remove();this.groupsOverlay=null}i||this.saveImage(n)};this.saveImage=function(e){var t=$(".options .save",e),n=$(".saves",e),r=$(".saves",e),i=t.hasClass("active");t.addClass("active");var s=e.attr("id"),o=s.split("_"),u=o[1];gbks.common.track("Polaroid","Save",u);if(!i){t.addClass("active");var a=parseInt(e.attr("data-saves"));e.attr("data-saves",a+1);this.updateStats(e,!0,!1)}this.hideGroupsOverlay();var f=$.proxy(this.onSaveImage,this);this.shiftDown?f=null:t.addClass("loading");$.ajax({url:"/bookmark/savetouser?imageId="+u,type:"POST",dataType:"jsonp",success:f});this.updateLayout()};this.onCloseSavePopup=function(e){};this.onClickRemoveImage=function(){var e=$("#image_"+this.savePopup.data.imageId),t=$(".save",e);t.removeClass("active");$("span",t).html("Save");var n=parseInt(e.attr("data-saves"));e.attr("data-saves",n-1);this.updateStats(e,!0,!1)};this.onSaveImage=function(e){var t=$("#image_"+e.imageId),n=$(".save",t);n.removeClass("loading");this.savePopup=new gbks.common.SavePopup;this.savePopup.init(n,e,$.proxy(this.onClickRemoveImage,this),$.proxy(this.onCloseSavePopup,this))};this.unsaveImage=function(e){var t=e.attr("id"),n=t.split("_"),r=n[1];gbks.common.track("Polaroid","Unsave",r);var i=parseInt(e.attr("data-saves"));e.attr("data-saves",i-1);this.updateStats(e,!0,!1);var s=$(".save",e);s.addClass("active");$("span",s).html("Save");e.removeClass("saved");this.hideGroupsOverlay();$.ajax({url:"/bookmark/removefromuser?imageId="+r,type:"POST",dataType:"jsonp",success:$.proxy(this.onUnsaveImage,this)});this.updateLayout()};this.onUnsaveImage=function(e){console.log("onUnsaveImage",e)};this.onFocusCreateGroupInput=function(e){console.log("onFocusCreateGroupInput",$("#formCreateGroup .addForm"));$(".addForm",this.groupsOverlay).addClass("active");this.onFocusInput(e)};this.onClickGroupOverlayUnsave=function(e){var t=$(e.currentTarget),n=this.groupsOverlay.attr("data-imageId"),r=$("#image_"+n);this.unsaveImage(r)};this.onClickCreateGroup=function(e){e.preventDefault();var t=$("#formCreateGroup",this.groupsOverlay),n=$("input[type=text]",t),r=$('input[name="imageId"]',t).val(),i=n.val(),s=n.attr("data-default"),o="/groups/create";if(i.length>0&&i!=s){console.log("onClickCreateGroup",t,r,i,o);gbks.common.track("Polaroid","CreateGroup",i);t.removeClass("active");n.val("");$("input",t).attr("disabled",!0);$("input[type=submit]",this.groupsOverlay).addClass("loading");var u={imageId:r,groupName:i};$.ajax({url:o,data:u,type:"POST",success:$.proxy(this.onCreateGroup,this)})}};this.onCreateGroup=function(e){$("#formCreateGroup input[type=submit]",this.groupsOverlay).removeClass("loading");$("#formCreateGroup input",this.groupsOverlay).removeAttr("disabled");var t=$.parseJSON(e);t=e;console.log("onCreateGroup",e,t);var n='
  • '+t.name+"
  • ",r=$("ul",this.groupsOverlay),i=$(r[r.length-1]);i.append(n);r.removeClass("empty");this.hideLoader()};this.updateStats=function(e,t,n){var r=e.attr("data-likes"),i=e.attr("data-saves"),s=[],o;(i>1||t)&&s.push(''+i+"");(r>1||n)&&s.push('");var u=s.join(""),a=$(".stats",e);a.html(u);u.length>0?a.removeClass("empty"):a.addClass("empty")};this.onFocusInput=function(e){var t=$(e.currentTarget);t.addClass("active");t.val()==t.attr("data-default")&&t.val("")};this.onBlurInput=function(e){var t=$(e.currentTarget);t.addClass("active");t.val()==""&&t.val(t.attr("data-default"))};this.onClickGroupOverlayItem=function(e){console.log("onClickGroupOverlayItem");e.preventDefault();e.stopPropagation();var t=this.groupsOverlay.attr("data-imageId"),n=$(e.currentTarget),r=$(n.parents("li")[0]),i=r.attr("data-checked");console.log("type",i,typeof i);i===undefined?console.log("y"):console.log("n");var s=n.val(),o=i=="true",u="/groups/removeImageFromGroup",a="Removing from group";if(o){n.removeAttr("checked");r.attr("data-checked",!1);gbks.common.track("Polaroid","RemoveFromGroup",t+"-"+s)}else{u="/groups/addImageToGroup";a="Adding to group";n.attr("checked","checked");r.attr("data-checked",!0);gbks.common.track("Polaroid","AddToGroup",t+"-"+s)}r.addClass("loading");$.ajax({url:u,data:{imageId:t,groupId:s},type:"POST",success:$.proxy(this.onGroupSaved,this)})};this.onGroupSaved=function(e){this.groupsOverlay&&$("li",this.groupsOverlay).removeClass("loading")};this.onClickDocument=function(e){var t=$(e.target),n=t.parents("#groupsOverlay");if(n.length==0){this.hideGroupsOverlay(null);e.stopPropagation();e.preventDefault()}console.log("onClickDocument",t,n,e.target)};this.hideGroupsOverlay=function(e){$(document).unbind("mousedown",this.clickDocumentMethod);if(this.groupsOverlay){var t=this.groupsOverlay.attr("data-imageId");this.groupsOverlay.remove();this.groupsOverlay=null;var n=$("#image_"+t);n.removeClass("optionsActive");console.log("hideGroupsOverlay",t,n)}};this.updateLayout=function(){typeof tiles!="undefined"&&tiles.layout()};this.onClickMagnify=function(e){e.preventDefault();e.stopPropagation();this.hideLightbox();var t=$(e.currentTarget),n=$(t.parents(".tile")[0]);this.createLightbox();this.lightbox.updateHistory();this.lightbox.update(n)};this.hideLightbox=function(){this.lightbox&&this.lightbox.hide()};this.createLightbox=function(){if(!this.lightbox){this.lightbox=new gbks.common.Lightbox;this.lightbox.init()}};this.onClickExpand=function(e){e.preventDefault();e.stopPropagation();var t=$(e.currentTarget),n=$(t.parents(".expand")[0]),r=n.parent(),i=$(".hidden",r);n.hide();i.show();this.updateLayout()};this.showLoader=function(e){if(!this.loader||this.loader.length==0)this.loader=$("#loader");this.loader.stop();e&&e.length>0?this.loader.html(e):this.loader.html("");this.loader.show();this.loader.animate({opacity:1},50)};this.hideLoader=function(){this.loader.stop();var e=null;this.onHideLoader&&(e=$.proxy(this.onHideLoader,this));this.loader.animate({opacity:0},250,e)};this.onHideLoader=function(e){this.loader.hide()};this.onClickNSFWCover=function(e){var t=$(e.currentTarget),n=t.parents(".nsfw");console.log("onClickNSFWCover",e,n);if(n.length>0){var r=$(n[0]);r.removeClass("nsfw");e.preventDefault();e.stopPropagation()}}};var gbks=gbks||{};gbks.tilesInstance=null;gbks.Tiles=function(){this.init=function(e){this.config=e;gbks.tilesInstance=this;this.columns=[];this.columnCount=null;this.baseOffset=null;this.itemCount=null;this.fadeIndex=0;this.superAds=$("#images .tile.superad");this.columnWidth=e.columnWidth||240;this.itemOffset=e.itemOffset||2;this.itemWidth=e.itemWidth||238;this.itemMargin=e.itemMargin||5;this.maxWidth=e.maxWidth||null;tiles=this;this.loader=$("#loader");this.loadMoreUrl="/bookmarks/loadMore";this.currentPage=0;this.tiles=$(".tile");console.log("config",this.config);if(this.tiles.length>0){this.layout();if(this.tiles.length>2){this.initAutoLayout();this.config.type&&this.startEndlessScroll()}}setTimeout($.proxy(this.tiles.show,this.tiles),25);this.fadeImages()};this.fadeImages=function(){if(Modernizr.opacity&&Modernizr.cssanimations){var e=$(".polaroid img");e.each(function(e){if(!this.complete){var t=$(this);t.addClass("imageLoading");t.one("load",function(e){$(this).addClass("imageLoaded")})}})}};this.initAutoLayout=function(){$(window).resize($.proxy(this.resize,this))};this.resize=function(){clearTimeout(this.layoutTimer);this.layoutTimer=setTimeout($.proxy(this.layout,this),500)};this.onAfterUpdateElement=function(e){};this.columnLayout=function(){var e=[],t=0;this.config.verticalOffset&&(t=this.config.verticalOffset);while(e.length1&&(t=!0);while(u0?f.insertBefore(a):$("#images").append(f);u++}return t};this.onLoadMore=function(e){if(this.currentPage==0&&this.superAds.length>0){var t=this.insertElementsAroundAds(e);t&&this.superAds.show()}else $("#images").append(e);this.fadeImages();$("#noMoreImages").length==0&&this.startEndlessScroll();typeof _bsap!="undefined"&&_bsap.exec();this.hideLoader();this.layout()};this.onLoadMoreError=function(e){this.hideLoader()};this.showLoader=function(){this.loader.stop();this.loader.show();this.loader.animate({opacity:1},50)};this.hideLoader=function(){this.loader.stop();var e=null;this.onHideLoader&&(e=$.proxy(this.onHideLoader,this));this.loader.animate({opacity:0},250,e)};this.onHideLoader=function(e){this.loader.hide()}};