/**
 * @author rgaumond
 */
Element.addMethods ('IMG',{
       
	    imgSwitch: function (element) {
 		   
		if (element.getAttribute("neg_src") == null) 
			return false;
		else {
			var container = element.src;
			element.src = element.getAttribute("neg_src");
			element.setAttribute("neg_src",container);
		}
}
});


Element.addMethods ({
        fadeIn: function (element, args) {
          var args  = args || {};
          var begin = args.begin || element.getOpacity ();
          var end   = args.end || 1.0;
          var delay = args.delay || 8;
          var i     = parseFloat (begin);
  
          element.setOpacity (i);
          if (Object.isUndefined (element.fadeInCreate) ||
              !element.fadeInCreate) {
            element.fire ('fadeIn:onCreate');
            element.fadeInCreate = false;
          }
          
		  
		  if (i < end)
            setTimeout (function () {
              element.fadeIn ({begin: begin + (0.1), end:end, delay:delay});
            }, delay);
          else {
            element.fire ('fadeIn:onComplete');
            element.fadeInCreate = true;
          }
          return element;
        },
  
        fadeOut: function (element, args) {
          var args  = args || {};
          var begin = args.begin || element.getOpacity ();
          var end   = args.end || 0.0;
          var delay = args.delay || 8;
          var i     = parseFloat (begin);
  
          element.setOpacity (i);
          if (Object.isUndefined (element.fadeOutCreate) ||
              !element.fadeOutCreate) {
            element.fire ('fadeOut:onCreate');
            element.fadeOutCreate = true;
          }
          if (i > end)
            setTimeout (function () {
            element.fadeOut ({begin: begin - (0.1), end:end, delay:delay});
            }, delay);
          else {
            element.fire ('fadeOut:onComplete');
            element.fadeOutCreate = false;
          }
          return element;
        }
      });

Element.addMethods ({
float_and_follow:function (element, args) {
        var args  = args || {};
		var begin = args.begin || element.getOpacity ();
		var startX = args.left || parseInt(element.getStyle("left"));
		var startY = args.top ||parseInt(element.getStyle("top"));
		
		var ns = (navigator.appName.indexOf("Netscape") != -1);
		var d = document;
		var verticalpos="fromtop";
		function ml()
		{
			var el=element;			
			el.sP=function(x,y){this.style.left=x;this.style.top=y;};			
			el.x = startX;
			
			if (verticalpos == "fromtop") {
				el.y = startY;				
			}
			else {
				el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
				el.y -= startY;
			}
			return el;
		}
		
		window.stayTopLeft=function()
		{	

			if (verticalpos == "fromtop") {
				var pY;
				if(document.body.scrollTop<the_scroll)
					pY = ns ? pageYOffset : document.body.scrollTop;
				else
					pY=the_scroll;
				ftlObj.y += (pY + startY - ftlObj.y) / 20;
			}
			else {
				var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
				ftlObj.y += (pY - startY - ftlObj.y) / 8;
			}
				
			
			ftlObj.sP(ftlObj.x, ftlObj.y);
			setTimeout("stayTopLeft()", 20);
		}
		ftlObj = ml();
		stayTopLeft();
}
});