// In order to prevent calling to onae function from multiple places in the site at the same time (and thus causing a mass of half fadet canvases), I cleverly deviced this two object-fadein and fadeout, instances of each are created for every mousover and mousout on a menu link. The only problem is that anoyng bug in ie6 wich prevents the mouse cursore to turn into pointer. Grrr...
	// Capsulation rulez :P Long Live Rock'n'Roll and Let there be rock :)
	function  fadein(object){	
		this.change = function(a){
		b = a.parentNode;
		canvas =  document.createElement('div');
		canvas.className = "canvas";
		canvas.style.width = b.offsetWidth + "px";
		b.appendChild(canvas);
		canvas.style.position="absolute";
		canvas.style.top =0;
		canvas.style.left = 0;
		canvas.style.opacity = (0); 
		canvas.style.MozOpacity = (0); 
		canvas.style.KhtmlOpacity = (0); 
		canvas.style.filter = "alpha(opacity=0)"; 
		recfade(canvas,0);
		}		
		// Using recursive function to fade in the div with the canvas
		function recfade(canvas,i){
		if (i<101){
				opacity= i+5;
				i = i+5;
				canvas.style.opacity = (opacity / 100); 
				canvas.style.MozOpacity = (opacity / 100); 
				canvas.style.KhtmlOpacity = (opacity / 100); 
				canvas.style.filter = "alpha(opacity=" + opacity + ")";	
				var t = setTimeout(function(){ recfade(canvas,i); }, 10);
			} else return;
		}
	}	
		
	function fadeout(obj){	
		this.back = function(a){
			b = a.parentNode;
			children = b.childNodes;
			for (i=0; i<children.length; ++i)
				if (children[i].nodename == "DIV") 
				{
					canvas=children[i]; 
					break;
				} 
			recfadeout(canvas,100);
		}		
		//Using recursive function to fade out the canvas div and then remove it from the parrent ellement
		function recfadeout(canvas,i){
		if (i>0){ 
				opacity= i-5;
				i = i-5;
				canvas.style.opacity = (opacity / 100); 
				canvas.style.MozOpacity = (opacity / 100); 
				canvas.style.KhtmlOpacity = (opacity / 100); 
				canvas.style.filter = "alpha(opacity=" + opacity + ")";	
				var t = setTimeout(function(){ recfadeout(canvas,i); }, 10);
			} else { 
				b = canvas.parentNode; 
				b.removeChild(canvas);
				return;
			}
		}
	}
	
	// This function creates instance of the pbject fadein
	function change(a){
		 var obj = new fadein(a);
		 obj.change(a);
		}
	//This function creates instance for the object fadeout	
	function back(a){
		 var obj = new fadeout(a);
		 obj.back(a);
		}