New Year Fireworks for Blogs and Websites

Everyone is eagerly waiting for the new year (2013,2014,2015,2016,2017) 2018 and everyone is celebrating it in their own different way.
You can also celebrate this new year in a different way by putting some amazing firework effects on your blog or website. This tutorial will teach you how to do it, the code we will provide can be used on any website.

See what you will get
Preview the Effect

The Code

The complete effect is created with JavaScript and all you need to do is copy-paste a JavaScript function in the <head> of your website

The code is very long so I didn't put it into this post. The code is quite long but don't worry it 

Using the code

This JavaScript can be used just by putting it in the head of the HTML of the page and the fireworks effect.

For Websites (everyone)

There are two ways to apply the effect on your website, one is to put the script directly on your website's main index file and other is to use the script externally with a .js file.
Script in <head>
Copy the entire code below
<script type="text/javascript">
// <![CDATA[
var bits=80; // how many bits
var speed=33; // how fast - smaller is faster
var bangs=5; // how many can be launched simultaneously (note that using too many can slow the script down)
var colours=new Array("#03f", "#f03", "#0e0", "#93f", "#0cf", "#f93", "#f0c");
// blue red green purple cyan orange pink

/****************************
* Fireworks Effect *
*(c)2004-14 mf2fm web-design*
* http://www.mf2fm.com/rv *
* DON'T EDIT BELOW THIS BOX *
****************************/
var bangheight=new Array();
var intensity=new Array();
var colour=new Array();
var Xpos=new Array();
var Ypos=new Array();
var dX=new Array();
var dY=new Array();
var stars=new Array();
var decay=new Array();
var swide=800;
var shigh=600;
var boddie;

if (typeof('addRVLoadEvent')!='function') function addRVLoadEvent(funky) {
var oldonload=window.onload;
if (typeof(oldonload)!='function') window.onload=funky;
else window.onload=function() {
if (oldonload) oldonload();
funky();
}
}

addRVLoadEvent(light_blue_touchpaper);

function light_blue_touchpaper() { if (document.getElementById) {
var i;
boddie=document.createElement("div");
boddie.style.position="fixed";
boddie.style.top="0px";
boddie.style.left="0px";
boddie.style.overflow="visible";
boddie.style.width="1px";
boddie.style.height="1px";
boddie.style.backgroundColor="transparent";
document.body.appendChild(boddie);
set_width();
for (i=0; i<bangs; i++) {
write_fire(i);
launch(i);
setInterval('stepthrough('+i+')', speed);
}
}}

function write_fire(N) {
var i, rlef, rdow;
stars[N+'r']=createDiv('|', 12);
boddie.appendChild(stars[N+'r']);
for (i=bits*N; i<bits+bits*N; i++) {
stars[i]=createDiv('*', 13);
boddie.appendChild(stars[i]);
}
}

function createDiv(char, size) {
var div=document.createElement("div");
div.style.font=size+"px monospace";
div.style.position="absolute";
div.style.backgroundColor="transparent";
div.appendChild(document.createTextNode(char));
return (div);
}

function launch(N) {
colour[N]=Math.floor(Math.random()*colours.length);
Xpos[N+"r"]=swide*0.5;
Ypos[N+"r"]=shigh-5;
bangheight[N]=Math.round((0.5+Math.random())*shigh*0.4);
dX[N+"r"]=(Math.random()-0.5)*swide/bangheight[N];
if (dX[N+"r"]>1.25) stars[N+"r"].firstChild.nodeValue="/";
else if (dX[N+"r"]<-1.25) stars[N+"r"].firstChild.nodeValue="\\";
else stars[N+"r"].firstChild.nodeValue="|";
stars[N+"r"].style.color=colours[colour[N]];
}

function bang(N) {
var i, Z, A=0;
for (i=bits*N; i<bits+bits*N; i++) {
Z=stars[i].style;
Z.left=Xpos[i]+"px";
Z.top=Ypos[i]+"px";
if (decay[i]) decay[i]--;
else A++;
if (decay[i]==15) Z.fontSize="7px";
else if (decay[i]==7) Z.fontSize="2px";
else if (decay[i]==1) Z.visibility="hidden";
if (decay[i]>1 && Math.random()<.1) {
Z.visibility="hidden";
setTimeout('stars['+i+'].style.visibility="visible"', speed-1);
}
Xpos[i]+=dX[i];
Ypos[i]+=(dY[i]+=1.25/intensity[N]);

}
if (A!=bits) setTimeout("bang("+N+")", speed);
}

function stepthrough(N) {
var i, M, Z;
var oldx=Xpos[N+"r"];
var oldy=Ypos[N+"r"];
Xpos[N+"r"]+=dX[N+"r"];
Ypos[N+"r"]-=4;
if (Ypos[N+"r"]<bangheight[N]) {
M=Math.floor(Math.random()*3*colours.length);
intensity[N]=5+Math.random()*4;
for (i=N*bits; i<bits+bits*N; i++) {
Xpos[i]=Xpos[N+"r"];
Ypos[i]=Ypos[N+"r"];
dY[i]=(Math.random()-0.5)*intensity[N];
dX[i]=(Math.random()-0.5)*(intensity[N]-Math.abs(dY[i]))*1.25;
decay[i]=16+Math.floor(Math.random()*16);
Z=stars[i];
if (M<colours.length) Z.style.color=colours[i%2?colour[N]:M];
else if (M<2*colours.length) Z.style.color=colours[colour[N]];
else Z.style.color=colours[i%colours.length];
Z.style.fontSize="13px";
Z.style.visibility="visible";
}
bang(N);
launch(N);
}
stars[N+"r"].style.left=oldx+"px";
stars[N+"r"].style.top=oldy+"px";
}

window.onresize=set_width;
function set_width() {
var sw_min=999999;
var sh_min=999999;
if (document.documentElement && document.documentElement.clientWidth) {
if (document.documentElement.clientWidth>0) sw_min=document.documentElement.clientWidth;
if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight;
}
if (typeof(self.innerWidth)!="undefined" && self.innerWidth) {
if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth;
if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight;
}
if (document.body.clientWidth) {
if (document.body.clientWidth>0 && document.body.clientWidth<sw_min) sw_min=document.body.clientWidth;
if (document.body.clientHeight>0 && document.body.clientHeight<sh_min) sh_min=document.body.clientHeight;
}
if (sw_min==999999 || sh_min==999999) {
sw_min=800;
sh_min=600;
}
swide=sw_min;
shigh=sh_min;
}
// ]]>
</script>

Now open your main file or web page and paste it above </head>.

For Blogger Users

Instructions above can also be used for Blogger. But as Blogger users are not normally tech savvy, we will write the instructions briefly.
Script in head
Copy the following code

<script type="text/javascript">
// <![CDATA[
var bits=80; // how many bits
var speed=33; // how fast - smaller is faster
var bangs=5; // how many can be launched simultaneously (note that using too many can slow the script down)
var colours=new Array("#03f", "#f03", "#0e0", "#93f", "#0cf", "#f93", "#f0c");
// blue red green purple cyan orange pink

/****************************
* Fireworks Effect *
*(c)2004-14 mf2fm web-design*
* http://www.mf2fm.com/rv *
* DON'T EDIT BELOW THIS BOX *
****************************/
var bangheight=new Array();
var intensity=new Array();
var colour=new Array();
var Xpos=new Array();
var Ypos=new Array();
var dX=new Array();
var dY=new Array();
var stars=new Array();
var decay=new Array();
var swide=800;
var shigh=600;
var boddie;

if (typeof('addRVLoadEvent')!='function') function addRVLoadEvent(funky) {
var oldonload=window.onload;
if (typeof(oldonload)!='function') window.onload=funky;
else window.onload=function() {
if (oldonload) oldonload();
funky();
}
}

addRVLoadEvent(light_blue_touchpaper);

function light_blue_touchpaper() { if (document.getElementById) {
var i;
boddie=document.createElement("div");
boddie.style.position="fixed";
boddie.style.top="0px";
boddie.style.left="0px";
boddie.style.overflow="visible";
boddie.style.width="1px";
boddie.style.height="1px";
boddie.style.backgroundColor="transparent";
document.body.appendChild(boddie);
set_width();
for (i=0; i<bangs; i++) {
write_fire(i);
launch(i);
setInterval('stepthrough('+i+')', speed);
}
}}

function write_fire(N) {
var i, rlef, rdow;
stars[N+'r']=createDiv('|', 12);
boddie.appendChild(stars[N+'r']);
for (i=bits*N; i<bits+bits*N; i++) {
stars[i]=createDiv('*', 13);
boddie.appendChild(stars[i]);
}
}

function createDiv(char, size) {
var div=document.createElement("div");
div.style.font=size+"px monospace";
div.style.position="absolute";
div.style.backgroundColor="transparent";
div.appendChild(document.createTextNode(char));
return (div);
}

function launch(N) {
colour[N]=Math.floor(Math.random()*colours.length);
Xpos[N+"r"]=swide*0.5;
Ypos[N+"r"]=shigh-5;
bangheight[N]=Math.round((0.5+Math.random())*shigh*0.4);
dX[N+"r"]=(Math.random()-0.5)*swide/bangheight[N];
if (dX[N+"r"]>1.25) stars[N+"r"].firstChild.nodeValue="/";
else if (dX[N+"r"]<-1.25) stars[N+"r"].firstChild.nodeValue="\\";
else stars[N+"r"].firstChild.nodeValue="|";
stars[N+"r"].style.color=colours[colour[N]];
}

function bang(N) {
var i, Z, A=0;
for (i=bits*N; i<bits+bits*N; i++) {
Z=stars[i].style;
Z.left=Xpos[i]+"px";
Z.top=Ypos[i]+"px";
if (decay[i]) decay[i]--;
else A++;
if (decay[i]==15) Z.fontSize="7px";
else if (decay[i]==7) Z.fontSize="2px";
else if (decay[i]==1) Z.visibility="hidden";
if (decay[i]>1 && Math.random()<.1) {
Z.visibility="hidden";
setTimeout('stars['+i+'].style.visibility="visible"', speed-1);
}
Xpos[i]+=dX[i];
Ypos[i]+=(dY[i]+=1.25/intensity[N]);

}
if (A!=bits) setTimeout("bang("+N+")", speed);
}

function stepthrough(N) {
var i, M, Z;
var oldx=Xpos[N+"r"];
var oldy=Ypos[N+"r"];
Xpos[N+"r"]+=dX[N+"r"];
Ypos[N+"r"]-=4;
if (Ypos[N+"r"]<bangheight[N]) {
M=Math.floor(Math.random()*3*colours.length);
intensity[N]=5+Math.random()*4;
for (i=N*bits; i<bits+bits*N; i++) {
Xpos[i]=Xpos[N+"r"];
Ypos[i]=Ypos[N+"r"];
dY[i]=(Math.random()-0.5)*intensity[N];
dX[i]=(Math.random()-0.5)*(intensity[N]-Math.abs(dY[i]))*1.25;
decay[i]=16+Math.floor(Math.random()*16);
Z=stars[i];
if (M<colours.length) Z.style.color=colours[i%2?colour[N]:M];
else if (M<2*colours.length) Z.style.color=colours[colour[N]];
else Z.style.color=colours[i%colours.length];
Z.style.fontSize="13px";
Z.style.visibility="visible";
}
bang(N);
launch(N);
}
stars[N+"r"].style.left=oldx+"px";
stars[N+"r"].style.top=oldy+"px";
}

window.onresize=set_width;
function set_width() {
var sw_min=999999;
var sh_min=999999;
if (document.documentElement && document.documentElement.clientWidth) {
if (document.documentElement.clientWidth>0) sw_min=document.documentElement.clientWidth;
if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight;
}
if (typeof(self.innerWidth)!="undefined" && self.innerWidth) {
if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth;
if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight;
}
if (document.body.clientWidth) {
if (document.body.clientWidth>0 && document.body.clientWidth<sw_min) sw_min=document.body.clientWidth;
if (document.body.clientHeight>0 && document.body.clientHeight<sh_min) sh_min=document.body.clientHeight;
}
if (sw_min==999999 || sh_min==999999) {
sw_min=800;
sh_min=600;
}
swide=sw_min;
shigh=sh_min;
}
// ]]>
</script>

Go to your Blogger Dashboard -> Template -> Edit HTML -> Use CTRL+F to find </head> in your template. When you find it, just paste the code (with <script> tag) above </head> and save the template.

Hide the effect on Post Pages

The fireworks are okay on pages other than post. Some people might get disturbed by the fireworks while reading. So if you don't want the fireworks on your post pages then just put your complete code (along with <script> tag) between this Blogger Conditional tag :
<b:if cond='data:blog.pageType != "item"'> 
//Paste your final code here with <script>
</b:if>
Now just put it above </head> in your template and work done !

Any Suggestion ?

If you have any suggestion regarding this post, you can post it in comment. And also comment if you liked this fireworks effect. 

Thanks for reading and a very very Happy New Year !

Select more than 50 Friends on Facebook using JavaScript

Some months back I wrote a post that shows how to select all friends at once on Facebook using a small JavaScript snippet and it works good but there's one problem that needs to be fixed and this post is about it.
Writing a Facebook post after a long time. People uses Facebook to keep up with their friends and families, you can create events and invite others to your event but the inviting section is very boring as you have to select one and every check box manually and if you have 1000s of friends then it's sure you are going to have a bad time. But with some smart codes we can let the computer do all the selecting for us.

The script I provided in this post worked great for many people http://www.stramaxon.com/2012/02/how-to-select-all-friends-at-once-to.html . But one problem that everybody reported me was that they can only select 50 people at once (this is the number of people appears by default in invite box). It's is very easy to get rid of these problem and select all of your friends by only running the script once. Let's recall the script and then we will learn how to solve this problem.

This is the JavaScript code you may have used to invite all friends at once :
javascript:elms=document.getElementsByName("checkableitems[]");for (i=0;i<elms.length;i++){if (elms[i].type="checkbox" )elms[i].click()};
And if you don't know how to use this code then check the link above.

How to select all friends at once

No, you don't have to use another code to do this. To better understand the trick I suggest you to watch the screencast. First the writing tutorial and then the video.

Tutorial

It's is very easy, just read every instruction carefully to be successful.
  1. Create an event and then click on the 'Invite Friends' button on the top right corner.
  2. Wait for the box with the name of your friends to be opened
  3. When it's completely loaded, select the first check box
  4. And without clicking anywhere outside the box press and hold Page Down button on your keyboard, it is just above your arrow keys.
  5. Hold it until the complete list of your friend appears in the box. 
That's great, now all you friends are visible in the invite box, so now when you run the code it will select every one. Great, it's now easier for you to invite all your friends.

Video Tutorial



Anyways, some people using different browsers were having difficulties opening developer console on their browser, so here's a list of browsers and the command to use to open the developer console.

  1. Google Chrome - CTRL+SHIFT+J
  2. Mozilla Firefox - CTRL+SHIFT+K
  3. Safari - CMD + OPT + C [mac] / CTRL + ALT + C [win]
If your browser isn't listed here, you can check your browser's documentation online for help.

    Embed PDF or Docs File In Blog Posts

    File formats like PDF, Docx, PPT etc. are used widely to share documents digitally. In this post we will talk about embedding or attaching such files into a blog post. This method can be used on any blogging platform.
    Document files like PDF are used to share documents from one person to another but sometimes people needs to implement it in a blog post which can be shared with multiple readers.

    You can even upload a document file on your host and then share the direct link but it's not a good idea to share the document like that, as it's not sure how Google or other search engines will treat the files. The best way is to embed the file using HTMLs <iframe> element. The idea is simple but procedure is long but once you understand the method you will be able to do it yourself.

    Embedding Files

    HTML is the language of the www and I am sure your blogging platform also uses HTML for posts. We will use the iframe element to embed the files on blog posts (using too many iframe or making a loop with iframe can make your website slow). Follow the instructions :

    Uploading the File on Google Docs

    First of all we need to upload the file to a host and Google Docs/Drive is the best for this purpose. Go to https://drive.google.com/ sign-in and click on the upload button (next to the Create button), browse to the file and upload it.

    When the uploading is done click on the the share

    Now a new box will appear, click on the 'Change' link under Who Has Access To It, again a new box may appear just select the Public On The Web radio box under Visibility Option and click on the Save Button. This will make the document visible to everybody, you can also specify who can view the doc. you just need to enter their email addresses. 

    Getting the Embedding Code

    After changing the visibility settings we will need the iframe code to embed it on a blog post. To do that click on the file and a new window will be opened, click on File on the menu-bar and then select Embed this PDF File or other file format, you will then get the iframe code. It may look like this
    <iframe src="https://docs.google.com/file/d/0B2jVGjwW6nn5dWtKb000UnQ2eHM/preview" width="640" height="480"></iframe>
    The URL in src attribute might be different.

    If you want to change the width or height of the iframe just change the values in width or height attribute.

    Implementing the code in Blog post

    The final step is to use the iframe code. You can easily implement the code in a HTML file or a blog post from your editor. Make sure your blog post editor supports editing HTML. Blogger, WordPress and most of the Blogger platforms have HTML friendly blog post editor.
    For Bloger
    Open your post editor and you will see a button that says 'HTML', click on it and you will be in the HTML editing mode, so this is where you will place your iframe code. Paste the code anywhere in the post, make sure it's not between another format markup. Publish or Update the post and you can then view the document from your blog post.
    For WordPress
    The procedure is same. Switch to the HTML mode and place the code wherever you want the document iframe to appear.

    That's it. You are done attaching document to your blog post. 

    Your Feedback

    Tell us how you got helped with this tutorial or how we can improve this tutorial. Drop your suggestion in the comments.