/*
 *
	Funkcje do seryjnego i nie seryjnego zapodawania efektow

*/	


/*
 *
 Seryjne nadawanie efektu rollOver i rollOut dla elementow
 Zastosowanie: element na ktorym chcemy zastosowac efekt musi miec nadana wlasciwosc class="effectRollOver"
*/



function addRollOverToElements() {

	var obj = document.getElementsByTagName('*');
	for (i = 0; i < obj.length; i++) {
		if(obj[i].className == 'effectRollOver') {
			setEffectsEvents(obj[i]);
		}
		
	}
}

function setEffectsEvents(obj) {
			
			/*
			 *
			 Regulacja prędkości efektów effectFadeIn i effectFadeOut
			 efekty przy najezdzaniu myszką
			*/
			var effectFadeOut_speed	= 50;
			var effectFadeIn_speed	= 20;
			var effectFadeOut_steps	= 20;
			var effectFadeIn_steps	= 20;
			
			// NIE RUSZAĆ!
			var effectFadeOut_step	= 100;
			var effectFadeIn_step		= 60;
			var isMouseOver = false;
			var isMouseOut  = false;
			
			obj.onmouseover	= function() {
					do {
						isMouseOver = true;
						this.onmouseout	= function() { };
					} while(effectFadeOut(this));
					this.onmouseout	= function() { isMouseOver = false; effectFadeIn(obj); };
			}
			

			function effectFadeOut(obj) {
				if(effectFadeOut_step > 90 && isMouseOver){
					//alert(isMouseOver);
					var step = effectFadeOut_steps / effectFadeOut_speed;
					effectFadeOut_step -= step;
					obj.style.opacity = effectFadeOut_step / 100;
					obj.style.filter  = 'alpha(opacity=' + effectFadeOut_step + ')';
					var timer=setTimeout(function(){effectFadeOut(obj);}, 1);
				} else {
					clearTimeout(timer);
					effectFadeIn_step = 50;
					if(!isMouseOver) effectFadeIn(obj);
					return false;
				}
			}
			
			function effectFadeIn(obj) {
				if(effectFadeIn_step < 100 && !isMouseOver){
					var step = effectFadeIn_steps / effectFadeIn_speed;
					effectFadeIn_step += step;
					obj.style.opacity = effectFadeIn_step / 100; 
					obj.style.filter  = 'alpha(opacity=' + effectFadeIn_step  + ')';
					var timer=setTimeout(function(){effectFadeIn(obj);}, 1);
				} else {
					clearTimeout(timer);
					effectFadeOut_step = 100;
					return false;
				}
			}
}



window.onload = addRollOverToElements;

