﻿/*
##### Alérion
##### petit programme javaScript pour faire tomber les coeurs ;) pour CanalBlog
##### conception 2010;
##### libre de droit faites-en bon usage
##### version 01002.01
*/

var largeurEcran= 800;
var hauteurEcran= 600;
var urlCoeur="http://contes-de-web.fr/img/coeur.gif";


var coeurs=new Array();
var nbCoeursMax=4;
var nbCoeurs=0;
var palpitanttimeout;
var timeOutMaj;
var scrollYCoeur=0;

function addEvent(ou, eventName, quoi) {
if (ou.addEventListener)
ou.addEventListener(eventName, quoi, false);
else if (ou.attachEvent)
ou.attachEvent('on'+ eventName, quoi);
}

function createCoeurs() {
	var posDX=4+Math.random()*largeurEcran;
	var posDY=1+scrollYCoeur;
	idcoeur=coeurs.length;
	var sizecoeur=30+Math.random()*65;
	var coeur=createDivCoeur(posDX,posDY,idcoeur,sizecoeur);
    var sensposx=parseInt(1+Math.random()*100);
    if (sensposx>50) { incposx= -parseInt(sizecoeur/5); }
    else  { incposx= parseInt(sizecoeur/5); }	
	coeurs[coeurs.length]= new Array(coeur,posDX,posDY,sizecoeur,incposx);
	nbCoeurs++;
	if (nbCoeurs<=nbCoeursMax) { palpitanttimeout= setTimeout("createCoeurs()", 3000); }
}

function majCoeurs() {
var incposy=1;
if (getScroll()) {

var limiteecran=(scrollYCoeur+hauteurEcran)-3;
for (i=0; i<coeurs.length; i++) {
var incposx= coeurs[i][4];
incposy=parseInt((coeurs[i][3]/2.2)/4);
  if (coeurs[i][2]<limiteecran) { 
  var Fposx=coeurs[i][1]+incposx;

  if (Fposx>largeurEcran) { 
  Fposx=largeurEcran; 
  coeurs[i][4]=-parseInt(coeurs[i][3]/5);
  }

  if (Fposx<2) { 
  Fposx=2; 
  coeurs[i][4]=parseInt(coeurs[i][3]/5);
  }
  
  coeurs[i][1]=Fposx;
  coeurs[i][2]=coeurs[i][2]+incposy;
  }
  else {

  var posDX=1+Math.random()*largeurEcran;
  coeurs[i][1]=posDX;
  coeurs[i][2]=scrollYCoeur;
    if (palpitanttimeout) {
	clearTimeout(palpitanttimeout);
    }
  }
  coeurs[i][0].style.left=coeurs[i][1]+"px";
  coeurs[i][0].style.top=coeurs[i][2]+"px";
}

  timeOutMaj=setTimeout("majCoeurs()", 100);
  }
  else { ResetCoeurs(); }
}

function getScroll() {
var lastScrollyCoeur=scrollYCoeur;
  if (typeof(self.pageYOffset)=="number") {
    scrollYCoeur=self.pageYOffset;
  }
  else if (document.body.scrollTop) {
    scrollYCoeur=document.body.scrollTop;
  }
  else if (document.documentElement && document.documentElement.scrollTop) {
    scrollYCoeur=document.documentElement.scrollTop;
  }
  else {
    scrollYCoeur=0;
  }
  if (scrollYCoeur<lastScrollyCoeur) { return false; }
  else  {return true; }
}


function createDivCoeur(posx,posy,id,sizeCoeur) {
  var div=document.createElement("div");
  var pzindex=1000+id;
  div.style.position="absolute";
  div.id="flc"+id;
  div.name="flc"+id;
  div.style.border="none";
  div.style.display="block";
  div.style.backgroundColor="transparent";
  div.style.left=posx+"px";
  div.style.top=posy+"px";  
  div.style.zindex=pzindex;
  document.body.appendChild(div);
  var retour =document.getElementById("flc"+id);
  var coeurtype="<img border='0' src='"+ urlCoeur + "' style='width:"+sizeCoeur+"px;' />";
  retour.innerHTML=coeurtype;
  return (retour);
}

function getSizeNavigateur() {
  if (typeof(self.innerWidth)=="number") {
    largeurEcran=self.innerWidth;
    hauteurEcran=self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientWidth) {
    largeurEcran=document.documentElement.clientWidth;
    hauteurEcran=document.documentElement.clientHeight;
  }
  else if (document.body.clientWidth) {
    largeurEcran=document.body.clientWidth;
    hauteurEcran=document.body.clientHeight;
  }
hauteurEcran=hauteurEcran-65;
largeurEcran=largeurEcran-80;
 }
 
function ResetCoeurs () {
getSizeNavigateur();
  if (palpitanttimeout) {
  clearTimeout(palpitanttimeout);
  }
  if (timeOutMaj) {
  clearTimeout(timeOutMaj);
  }  
    for (i=0; i<nbCoeurs;i++) {
  var thiscoeur=document.getElementById("flc"+i);
  var supprimercoeur = document.body.removeChild(thiscoeur);  
  }
  nbCoeurs=0;
  coeurs=new Array();
  createCoeurs();
  majCoeurs();
}


function tombeLesCoeurs() {
getSizeNavigateur();
createCoeurs();
setTimeout("majCoeurs()", 40);
addEvent(window, "resize", ResetCoeurs);
 }

document.write('<a href="http://alerionexemple.canalblog.com/archives/2010/02/03/16775697.html" alt="Tombe les coeurs" title="Tombe les coeurs" target="_blank"><img style="background-color:transparent" src="http://contes-de-web.fr/img/coeur.gif" /></a>');
addEvent(window, "load", tombeLesCoeurs);



