Skip to content

Instantly share code, notes, and snippets.

@HichemBenChaaben
Created November 21, 2019 17:11
Show Gist options
  • Select an option

  • Save HichemBenChaaben/ee57ba8e2ea1d3d8af4a67512c6b65ba to your computer and use it in GitHub Desktop.

Select an option

Save HichemBenChaaben/ee57ba8e2ea1d3d8af4a67512c6b65ba to your computer and use it in GitHub Desktop.

Revisions

  1. HichemBenChaaben created this gist Nov 21, 2019.
    191 changes: 191 additions & 0 deletions husein.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,191 @@
    (function() {
    var cornify_count = 0;
    var cornify_add = function(options) {
    // Track how often we cornified.
    cornify_count += 1;
    // Create a container DIV for our 'corn or 'bow.
    var div = document.createElement('div');
    div.style.position = 'fixed';
    // Prepare our lovely variables.
    var numType = 'px';
    var heightRandom = Math.random() * 0.75;
    var windowHeight = 768;
    var windowWidth = 1024;
    var height = 0;
    var width = 0;
    var de = document.documentElement;
    // Get the window width and height - requires some cross browser checking.
    if(typeof(window.innerHeight) == 'number') {
    windowHeight = window.innerHeight;
    windowWidth = window.innerWidth;
    } else if(de && de.clientHeight) {
    windowHeight = de.clientHeight;
    windowWidth = de.clientWidth;
    } else {
    numType = '%';
    height = Math.round(height*100) + '%';
    }
    div.onclick = cornify_add; // Click for more magic.
    div.style.zIndex = 10;
    div.style.outline = 0;
    if(cornify_count == 15) {
    // Clicking 15 times summons the grand unicorn - which is centered on the screen.
    div.style.top = Math.max( 0, Math.round((windowHeight-530)/2)) + 'px';
    div.style.left = Math.round((windowWidth-530)/2) + 'px';
    div.style.zIndex = 1000;
    } else {
    // Otherwise we randomize the position.
    if(numType == 'px') {
    div.style.top = Math.round( windowHeight*heightRandom ) + numType;
    } else {
    div.style.top = height;
    }
    div.style.left = Math.round(Math.random()*90) + '%';
    }
    var img = document.createElement('img');
    var currentTime = new Date();
    // Used as a cache buster so the browser makes a new request every time instead of usign the previous, cached one.
    var submitTime = currentTime.getTime();
    if( cornify_count==15 ) submitTime = 0;
    // Construct our unicorn & rainbow request.
    var url = 'https://slack-imgs.com/?c=1&o1=gu&url=https%3A%2F%2Femoji.slack-edge.com%2FT02CHP58P%2Fhuseyin%2F7d08bf5e690fdf31.png';
    // Add younicorns if requested.
    if(options && (options.y || options.younicorns)) {
    url += '&y='+(options.y ? options.y : options.younicorns);
    if(Math.random() > 0.5) {
    // Flip horizontally at random.
    div.style.transform = 'scaleX(-1)';
    };
    }
    img.setAttribute('src', url);
    // Add a nice hover transition.
    var ease = "all .1s linear";
    div.style.WebkitTransition = ease;
    div.style.WebkitTransform = "rotate(1deg) scale(1.01,1.01)";
    div.style.transition = "all .1s linear";
    div.onmouseover = function() {
    var size = 1 + Math.round(Math.random()*10)/100;
    var angle = Math.round(Math.random()*20-10);
    var result = "rotate("+angle+"deg) scale("+size+","+size+")";
    this.style.transform = result;
    this.style.WebkitTransform = result;
    };
    div.onmouseout = function() {
    var size = .9+Math.round(Math.random()*10)/100;
    var angle = Math.round(Math.random()*6-3);
    var result = "rotate("+angle+"deg) scale("+size+","+size+")";
    this.style.transform = result;
    this.style.WebkitTransform = result;
    };
    // Append our container DIV to the page.
    var body = document.getElementsByTagName('body')[0];
    body.appendChild(div);
    div.appendChild(img);
    // Hooray - now we have a sparkly unicorn (or rainbow) on the page. Another cornification well done. Congrats!
    // When clicking 5 times, add a custom stylesheet to make the page look awesome.
    if(cornify_count == 5) {
    var cssExisting = document.getElementById('__cornify_css');
    if(!cssExisting) {
    var head = document.getElementsByTagName("head")[0];
    var css = document.createElement('link');
    css.id = '__cornify_css';
    css.type = 'text/css';
    css.rel = 'stylesheet';
    css.href = 'https://www.cornify.com/css/cornify.css';
    css.media = 'screen';
    head.appendChild(css);
    }
    cornify_replace();
    }
    cornify_updatecount();
    };
    // Tracks how often we cornified.
    var cornify_updatecount = function() {
    var p = document.getElementById('cornifycount');
    if(p == null) {
    var p = document.createElement('p');
    p.id = 'cornifycount';
    p.style.position = 'fixed';
    p.style.bottom = '5px';
    p.style.left = '0px';
    p.style.right = '0px';
    p.style.zIndex = '1000000000';
    p.style.color = '#ff00ff';
    p.style.textAlign = 'center';
    p.style.fontSize = '24px';
    p.style.fontFamily = "'Comic Sans MS', 'Comic Sans', 'Marker Felt', serif"; // Only the best!
    var body = document.getElementsByTagName('body')[0];
    body.appendChild(p);
    }
    // Stores our count in a cookie for our next session.
    cornify_setcookie('cornify', cornify_count+'', 1000);
    };
    var cornify_setcookie = function(name, value, days) {
    var d = new Date();
    d.setTime(d.getTime()+(days*24*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = name + "=" + value + "; " + expires;
    };
    var cornify_getcookie = function(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
    var c = ca[i].trim();
    if(c.indexOf(name)==0) {
    return c.substring(name.length,c.length);
    }
    }
    return "";
    };
    // Retrieve our click count from the cookie when we start up.
    cornify_count = parseInt(cornify_getcookie('cornify'));
    if(isNaN(cornify_count)) {
    cornify_count = 0;
    }
    // Adds happy words at the beginning of all headers on the page.
    var cornify_replace = function() {
    // Replace text.
    var hc = 6;
    var hs;
    var h;
    var k;
    var words = ['Happy','Sparkly','Glittery','Fun','Magical','Lovely','Cute','Charming','Amazing','Wonderful'];
    while(hc >= 1) {
    hs = document.getElementsByTagName('h' + hc);
    for (k = 0; k < hs.length; k++) {
    h = hs[k];
    h.innerHTML = words[Math.floor(Math.random()*words.length)] + ' ' + h.innerHTML;
    }
    hc-=1;
    }
    };
    /*
    * Adapted from http://www.snaptortoise.com/konami-js/
    */
    var cornami = {
    input:"",
    pattern:"38384040373937396665",
    clear:setTimeout('cornami.clear_input()', 5000),
    load: function() {
    window.document.onkeydown = function(e) {
    if (cornami.input == cornami.pattern) {
    cornify_add();
    clearTimeout(cornami.clear);
    return;
    }
    else {
    cornami.input += e ? e.keyCode : event.keyCode;
    if (cornami.input == cornami.pattern) cornify_add();
    clearTimeout(cornami.clear);
    cornami.clear = setTimeout("cornami.clear_input()", 5000);
    }
    };
    },
    clear_input: function() {
    cornami.input="";
    clearTimeout(cornami.clear);
    }
    };
    cornami.load();
    window.setInterval(() => cornify_add(), Math.random(1000));
    })()