AS 2014 DRAWS to a close, we tend to take account of where we’ve been, what we’ve accomplished, and what lies ahead for 2015. It’s a time for reviewing the choices we’ve made, and taking a moment to consider if these choices were the right ones.

In that spirit, I offer up my own Stupid Stoner Moments of 2014. Because no matter how much we all insist that we function with unabated excellence while consuming (or over-consuming) cannabis, each of us can cop to some rather, um, interesting thoughts and actions while high.

• In September, after too many cannabis-laced edibles, I concocted what I thought was a genius idea for a musical theatrical production that would feature children while teaching them a valuable history lesson. Handily, it would also appeal to adults who love Star Wars. That idea? Abraham Wookiee—On Ice!, in which a stovepipe hat-wearing, figure-skating Chewbacca would reenact Lincoln’s finest moments.

• A couple of weeks ago, after an eye-sweat-inducing dab session I recounted last week [Cannabuzz, Dec 17], I considered writing a column to celebrate Hanukkah. It was to be a stoned retelling of the story of the Festival of Lights, but I would replace lamp oil with hash oil, and explain how the Israelites stayed high for eight days when by all accounts there was only enough hash oil for one night. There was even a lighting of the “Marijuanorah.” When I shared this idea, my one-quarter-Jewish girlfriend slowly shook her head “no.” She’s right, as always. But I still think the Marijuanorah is going to be a big moneymaker for someone.

• Number of burns to my fingers in 2014 after I placed them on a hot glass bowl after burning cannabis, because c’mon, how hot can the bowl be?: 36.

• During an epic attack of the munchies, I created what I thought was the ultimate ice cream sandwich: a pint of Salt & Straw ice cream layered between three slices of butter-fried Hawaiian bread, each slice covered in jam, and liberally drizzled with caramel sauce (I poured the entire jar on). When I was done, I made another one. That I did not contract instant diabetes is beyond me.

• As stupid as my stoner moments were, they can be topped: Someone thought it would be a good idea to post, via USPS, a couple of grams of BHO to a friend in New York, using the Portland Mercury as a fake return address. Except the mysterious sender was 21 cents short on postage, so sure enough, the strange package turned up at the Mercury‘s office without any indication as to who sent it. Following some great consternation from the Mercury staff as to what the sticky brown substance so carefully packed up was, I was texted a photo to make a positive ID. (“Hey Josh, is this dabs?” asked Music Editor Ned Lannamann naïvely.) Apologies to Markus G., intended recipient, but this contraband required further testing. And possibly another triple-decker ice cream sandwich. 

Happy New Year, y’all!

‘);
} else if (jQuery(this).attr(“id”) == “sortSelect”){
jQuery(“#Comments .sortSpinner”).show();
}

var url = “/portland/cannabuzz-the-week-in-marijuana/Content?oid=14496898”;
var myStart = jQuery(this).attr(“id”) == “sortSelect” ? “1” : jQuery(this).attr(“rel”);
var showAllComments = jQuery(this).attr(“id”) == “showAllComments” ? “yes” : “no”;
if (!myStart) var myStart = “1”;
var mySort = jQuery(“#sortSelect”).val() || “asc”;
var params = {
sort: mySort,
ajaxComponent: componentId,
startIndex: myStart,
showAll: showAllComments
};
jQuery.ajax({
url: url,
data: (params),
success: function (data) {
jQuery(“#”+componentId+”_PaginationBottom”).remove();
jQuery(“#”+componentId+”_commentContent .brandNewComment”).remove();
jQuery(“#Comments .sortSpinner”).hide();
if (myStart == “1”) jQuery(“#”+componentId+”_commentContent”).html(data);
else jQuery(“#”+componentId+”_commentContent”).append(data);
}
});
};

function removeEdit(oid){
if (oid){
var cont = jQuery(“#Comments-comment-“+oid).closest(“.brandNewComment”);
cont.find(“.newCommentOptions”).fadeOut(“fast”, function(){
jQuery(this).remove();
});
}
}

function getComment(oid){
var url = “/portland/cannabuzz-the-week-in-marijuana/Content?oid=14496898”;
if (oid){
var params = {
ajaxComponent: componentId,
commentOid: oid
};
jQuery.ajax({
url: url,
data: (params),
success: function (data) {
if (!jQuery.trim(jQuery(“#”+componentId+”_commentContent”).html())){
jQuery(“#”+componentId+”_commentContent”).append(data).find(“.brandNewComment”).fadeIn(“fast”);
} else {
jQuery(“#”+componentId+”_commentContent”).children(“div.comment, div.brandNewComment”).filter(“:last”).after(data).parent().find(“.brandNewComment”).fadeIn(“fast”);
}
var t=setTimeout(function(){removeEdit(oid)},300000);
var myTotal = parseInt(jQuery(“#comments_total”).text(), 10);
myTotal++;
updateCommentTotals(false,myTotal);
}
});
}
}

function doLikeComment(e){
e.preventDefault();
if (!this.clicked){
var oid = jQuery(this).attr(“data-commentOid”);
jQuery(“#Comments #”+oid+”_likeLinks a”).addClass(“dimmed”).css(“opacity”,”0.4″).each(function(){this.clicked = true;});

var myCurrentLikes = jQuery(“#”+oid+”_rating_likes”).html() || 0;
var myCurrentDislikes = jQuery(“#”+oid+”_rating_dislikes”).html() || 0;

var thisRating = jQuery(this).attr(“rel”);
if (thisRating == “Like”){
myCurrentLikes = parseFloat(myCurrentLikes)+1;
} else {
myCurrentDislikes = parseFloat(myCurrentDislikes)+1;
}
var myNewLine = ‘‘ + myCurrentLikes + ‘ like’;
if (myCurrentLikes != 1) {
myNewLine += ‘s’;
}
myNewLine += ‘, ‘ + ‘‘ + myCurrentDislikes + ‘ dislike’;
if (myCurrentDislikes != 1) {
myNewLine += “s”;
}

jQuery(“#”+oid+”_rating_sub”).html(myNewLine);
jQuery(“#”+oid+”_rating_sub”).show();

var params = {
oid: oid,
rating: thisRating
};
jQuery.ajax({
url: “/gyrobase/Tools/AjaxLike”,
type: “POST”,
data: (params),
success: function (data) {
jQuery(“#”+oid+”_rating_sub”).html(data);
if (thisRating == “Like”){
jQuery(“#Comments #”+oid+”_likeLinks a.dislike”).removeClass(“dimmed”).css(“opacity”,”1″).each(function(){this.clicked = false;});
} else {
jQuery(“#Comments #”+oid+”_likeLinks a.like”).removeClass(“dimmed”).css(“opacity”,”1″).each(function(){this.clicked = false;});
}
}
});
}
}

function reportComment(e){
e.preventDefault();
e.stopPropagation();
var oid = jQuery(this).attr(“rel”);
var elem = jQuery(“#”+oid+”_report”);
elem.click(function(e){e.stopPropagation();})
if (!elem.is(“:visible”)){
jQuery(“#Comments .reportCommentContainer”).hide();
if (elem.is(“:empty”)){
var params = {
oid: oid,
ajaxComponent: “ReportComment”
};
jQuery.ajax({
url: “/gyrobase/Tools/ReportComment”,
data: (params),
success: function (data) {
elem.html(data);
elem.fadeIn(“fast”);
}
});
} else {
elem.fadeIn(“fast”);
}
}
// attach close event handler to the html
jQuery(“html”).one(“click”, function(){
jQuery(“#Comments .reportCommentContainer:visible”).hide();
});
}

function closeReport(obj){
jQuery(obj).closest(“.reportCommentContainer”).fadeOut(“fast”);
}

function submitReport(e){
var params = jQuery(e).closest(“form”).serialize()+”&ajaxComponent=ReportComment”;
jQuery.ajax({
url: “/gyrobase/Tools/ReportComment”,
type: “POST”,
data: (params),
success: function (data) {
jQuery(e).closest(“.reportCommentContainer”).html(data);
}
});
}

(function($) {
var subscribed=false;

function showFollowPanel(e){
e.preventDefault();
myPanel = $(this).parent().next(“.togglePanel”);
myPanel.fadeIn(“fast”);
}

function doSubscribe(obj){
var myPanel = obj.parent().next(“.togglePanel”);
myPanel.fadeIn(“fast”);
if (!subscribed){
var myLink = obj.parent();
var myLoader = myPanel.children(“.loading”);
var myUpdater = myPanel.children(“.ajaxUpdater”);
var params = {
object: myPanel.attr(“data-toolsoid”),
macro: myPanel.attr(“data-toolsajaxmacro”),
url: window.location
};

$.ajax({
url: “/gyrobase/Macros/ToolsAjax”,
data: (params),
type: “POST”,
dataType: “html”,
success: function (data) {
subscribed = true;
if (myUpdater){
myUpdater.html(data);
myLoader.fadeOut(“fast”, function(){
myUpdater.fadeIn(“fast”, function(){
setTimeout(function(){
myPanel.fadeOut(“fast”);
}, 3000);
});
});
} else {
myPanel.fadeOut(“fast”);
}
}
});
}
}

function activateSubscribe(e){
e.preventDefault();
var myObj = $(this);
var isAuthenticated = Foundation.SessionManager.sharedSessionManager().isAuthenticated();
if (!isAuthenticated){
new Foundation.Login.Dialog({
“feelingShy”: false,
“callback”: function(){doSubscribe(myObj);}
});
return false;
} else {
// Proceed
doSubscribe(myObj);
}
}

function deleteComment(e){
e.preventDefault();
var thisComment = $(this);
var params = {
macro: “deleteComment”,
comment: thisComment.attr(“data-comment”)
};
$.ajax({
url: “/gyrobase/Macros/ToolsAjax”,
data: (params),
type: “POST”,
dataType: “html”,
success: function (data) {
thisComment.closest(“.brandNewComment”).fadeOut(“fast”, function(){
$(this).remove();
var myTotal = parseInt(jQuery(“#comments_total”).text(), 10);
myTotal–;console.log(myTotal);
updateCommentTotals(false,myTotal);
});
}
});
}

function editComment(e){
e.preventDefault();
var thisComment = $(this);
var commentCont = thisComment.closest(“.brandNewComment”).find(“.description”);
var commentTemp = thisComment.closest(“.brandNewComment”).find(“.commentTemp”);
var commentText = commentTemp.html();
var toolbar = thisComment.closest(“.brandNewComment”).find(“.commentToolbar”);
commentCont.next(“.commentEditCont”).remove();
commentCont.after(”);
toolbar.fadeOut(“fast”);
commentCont.fadeOut(“fast”, function(){
commentCont.next(“.commentEditCont”).fadeIn(“fast”, function(){
$(“.brandNewComment textarea.expandableBox”).autoBoxResize();
$(“.brandNewComment textarea.expandableBox”).focus();
});
});
}

function editCommentSave(e){
e.preventDefault();
var thisComment = $(this);
var editCont = thisComment.closest(“.commentEditCont”);
var commentTemp = thisComment.closest(“.brandNewComment”).find(“.commentTemp”);
var newText = thisComment.prevAll(“textarea”).val();
var toolbar = thisComment.closest(“.brandNewComment”).find(“.commentToolbar”);

var params = {
macro: “editComment”,
comment: thisComment.attr(“data-comment”),
commentText: newText
};
$.ajax({
url: “/gyrobase/Macros/ToolsAjax”,
data: (params),
type: “POST”,
dataType: “html”,
success: function (data) {
editCont.fadeOut(“fast”, function(){
editCont.prev(“.description”).html($.trim(data));
commentTemp.html(newText);
editCont.prev(“.description”).fadeIn(“fast”);
toolbar.fadeIn(“fast”);
});
}
});
}

function editCommentCancel(e){
e.preventDefault();
var editCont = $(this).closest(“.commentEditCont”);
var toolbar = $(this).closest(“.brandNewComment”).find(“.commentToolbar”);
editCont.fadeOut(“fast”, function(){
editCont.prev(“.description”).fadeIn(“fast”);
toolbar.fadeIn(“fast”);
editCont.remove();
});
}

$(“#Comments”).on(‘click’, “.bottomOptionBar a#doSubscribe”, activateSubscribe);
$(“#Comments”).on(‘click’, “.bottomOptionBar a.togglePanelClose”, function(){$(this).parent().fadeOut(“fast”); return false;});
$(“#Comments”).on(‘click’, “.brandNewComment a.commentDeleteLink”, deleteComment);
$(“#Comments”).on(‘click’, “.brandNewComment a.commentEditLink”, editComment);
$(“#Comments”).on(‘click’, “.brandNewComment a.doneEditLink”, editCommentSave);
$(“#Comments”).on(‘click’, “.brandNewComment a.cancelEditLink”, editCommentCancel);
})(jQuery);

jQuery(document).ready(function($){
$(“#Comments”).on(‘click’, ‘#showMoreComments,#showAllComments’, getMoreComments);
$(“#Comments #sortSelect”).change(getMoreComments);
getMoreComments();
new Foundation.PostCommentComponent(componentId);
var nc = Foundation.NotificationCenter.sharedNotificationCenter();
nc.observe(“comment:added”, function (e) {
var comment = e.data;
getComment(comment.get(“oid”));
// clear rating
if (jQuery(“.commentFormRating”).length!=0){
jQuery(“.commentFormRating input[name=’reviewRating’]”).val(“”);
jQuery(“.commentFormRating .goldStarContainer”).css(“left”, zeroPos+”px”);
}
});
var subscribeCheckBox = $(“#Comments_commentSubscribe”);
subscribeCheckBox.prop(“checked”, getCookie(“subscribeToThread”) === “true” ? true : false);
subscribeCheckBox.change(function (e) {
var subscribeToThread = $(this).prop(“checked”);
setCookie(“subscribeToThread”, subscribeToThread ? “true” : “false”, 30);
});
var shareFacebookBox = $(“#Comments_postCommentToFacebook”);
shareFacebookBox.prop(“checked”, getCookie(“shareOnFacebook”) === “true” ? true : false);
shareFacebookBox.change(function (e) {
var shareOnFacebook = $(this).prop(“checked”);
setCookie(“shareOnFacebook”, shareOnFacebook ? “true” : “false”, 30);
});
$(“#Comments”).on(‘click’, ‘a.likeLink’, doLikeComment);
$(“#Comments”).on(‘click’, ‘a.reportCommentLink’, reportComment);
});


Read More