maxLetterSpacing = 4; // Maksymalny odstęp pomiędzy literami
var VEfekt = 30; // Spowolnienie efektu
var licznikZdarzen = new Array();
var efektpropagacja = new Array();
var efektwektor = new Array();
var idtE = null;
var idnumer = 0;
var stanLicznika = 0;
var opacity_tE = new Array();

function dodajZdarzenie() {
        idnumer = 1;
        var uchwyt = document.getElementById("tekstefekt_o1");
        while (uchwyt != null) {
                if(typeof window.addEventListener != "undefined"){
                        uchwyt.addEventListener("mouseover", inicjujEfekt, false);
                }
                else {
                        uchwyt.attachEvent("onmouseover", inicjujEfekt);
                }
                idnumer++;
                uchwyt = document.getElementById('tekstefekt_o'+idnumer);
        }
}
function efektLetterSpacing(i) {
        var j = i+1;
        var obiekt = document.getElementById('tekstefekt_t'+j);
        var IE = document.all ? true : false;
        efektpropagacja[i] += efektwektor[i];
        opacity_tE[i] = opacity_tE[i]-efektwektor[i]*80/maxLetterSpacing;
        if(efektpropagacja[i] == maxLetterSpacing){
                efektwektor[i] = -1;
        }
        if(efektpropagacja[i] <= 0){
                licznikZdarzen[i] = null;
        }
        if(IE){
                obiekt.filters.alpha.opacity = opacity_tE[i];
        }
        else {
                obiekt.style.opacity = opacity_tE[i]/100;
        }
        obiekt.style.letterSpacing = efektpropagacja[i]+'px';
}
function inicjujEfekt(e) {
        znajdzObiekt(e);
        efektpropagacja[idnumer-1] = 0;
        efektwektor[idnumer-1] = 1;
        opacity_tE[idnumer-1] = 100;
	licznikZdarzen[idnumer-1] = stanLicznika;
	if(idtE == null){
                idtE = setInterval("skryptLicznik()", 10+VEfekt);
        }
}
function skryptLicznik() {
	var statusZdarzen = null;
        stanLicznika++;
	for (var i = 0; i < licznikZdarzen.length; i++){
                if(licznikZdarzen[i] != null){
                        if(stanLicznika - licznikZdarzen[i] >= 1){
                                licznikZdarzen[i] = stanLicznika;
                                efektLetterSpacing(i);
			}
        	}
                statusZdarzen += licznikZdarzen[i];
	}
	if(statusZdarzen == null){
	        stop(idtE);
                stanLicznika = 0;
	}
}
function stop(idtE)
{
         clearInterval(idtE);
}
function znajdzObiekt(e) {
        var obiekt = e.target ? e.target : window.event.srcElement;
        var idobiekt = obiekt.id;
        while (!idobiekt) {
                obiekt = obiekt.parentNode;
                idobiekt = obiekt.id;
        }
        var regul = new RegExp('[0-9]+', 'g');
        idobiekt = regul.exec(idobiekt);
        idnumer = idobiekt[idobiekt.length-1];
}

