	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// LAYER FADING
	
	function fadeIn(obj){
		if ( (is.isMac) || (is.isNS) ) {
			MM_showHideLayers(obj,'','show');
		} else {			
			obj = eval(obj);
		    obj.style.filter="blendTrans(duration=0.5)";
		    // Make sure filter is not playing.
	    	if ((obj.visibility != "visible") && (obj.filters.blendTrans.status != 1)) {
		    	obj.filters.blendTrans.Apply();
		        obj.style.visibility="visible";
	    	    obj.filters.blendTrans.Play();
		    }	
		}
	}
	function fadeOut(obj){
		if ( (is.isMac) || (is.isNS) ) {
			MM_showHideLayers(obj,'','hide');
		} else {
			obj = eval(obj);				
		    obj.style.filter="blendTrans(duration=0.5)";
		    // Make sure filter is not playing.
	    	if ((obj.visibility != "hidden") && (obj.filters.blendTrans.status != 1)) {
		    	obj.filters.blendTrans.Apply();
		        obj.style.visibility="hidden";
	    	    obj.filters.blendTrans.Play();
		    }	
		}
	}	
	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// IMAGE FADING

	function imgFilter(obj,imgfile,filterFunction){

		// TechNote:
		// http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/reference/filters/gradientwipe.asp

		if (obj.filters==null) 						obj.style.filter = "blendTrans(duration=1)";
		if (filterFunction=="pixellate") 			obj.style.filter = "progid:DXImageTransform.Microsoft.Pixelate(duration=1.5)";
		else if (filterFunction=="fade") 			obj.style.filter = "blendTrans(duration=1)";
		else if (filterFunction=="fadefast") 		obj.style.filter = "blendTrans(duration=0.25)";		
		else if (filterFunction=="fadems")			obj.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.25,center=true,overlap=0.5)"; // syntax: overlap 0.0-1.0
		else if (filterFunction=="reval")			obj.style.filter = "revealTrans(duration=1, transition=10)";
		else if (filterFunction=="gradientwipe")	obj.style.filter = "progid:DXImageTransform.Microsoft.gradientWipe(duration=1)";
		else if (filterFunction=="dissolve")		obj.style.filter = "revealTrans(duration=1, transition=12)";
		else if (filterFunction=="radialwipe")		obj.style.filter = "progid:DXImageTransform.Microsoft.RadialWipe(duration=1.5)";		
		else if (filterFunction=="strips")			obj.style.filter = "revealTrans(duration=1, transition=19)";				
		else if (filterFunction=="circleopen")		obj.style.filter = "revealTrans(duration=0.5, transition=3)";								
		else if (filterFunction=="revstripsrb")		obj.style.filter = "revealTrans(duration=0.5, transition=18)";								
		else if (filterFunction=="revstripsrt")		obj.style.filter = "revealTrans(duration=0.5, transition=17)";								
		else if (filterFunction=="revstripslt")		obj.style.filter = "revealTrans(duration=0.5, transition=19)";										
		else if (filterFunction=="revstripslb")		obj.style.filter = "revealTrans(duration=0.5, transition=20)";						
		else if (filterFunction=="destroy")			obj.style.filter = "revealTrans(duration=1, transition=21)";						 
		else if (filterFunction=="checkerboard")	obj.style.filter = "progid:DXImageTransform.Microsoft.CheckerBoard(duration=1)";		
		else if (filterFunction=="inset")			obj.style.filter = "progid:DXImageTransform.Microsoft.Inset(duration=1)";
		else if (filterFunction=="iris")			obj.style.filter = "progid:DXImageTransform.Microsoft.Iris(duration=1)";				
		else if (filterFunction=="randombars")		obj.style.filter = "progid:DXImageTransform.Microsoft.RandomBars(duration=0.5,orientation=horizontal)";		
		else if (filterFunction=="randombarsv")		obj.style.filter = "progid:DXImageTransform.Microsoft.RandomBars(duration=0.5,orientation=vertical)";				
		else if (filterFunction=="randomdissolve")	obj.style.filter = "progid:DXImageTransform.Microsoft.RandomDissolve(duration=0.5)";		
		else if (filterFunction=="slide")			obj.style.filter = "progid:DXImageTransform.Microsoft.Slide(duration=1,slideStyle=SWAP,bands=10)"; // syntax: bands: 1-10 default: 1	
		else if (filterFunction=="spiral")			obj.style.filter = "progid:DXImageTransform.Microsoft.Spiral(duration=0.5,GridSizeX=8,GridSizeY=8)";		
		else if (filterFunction=="stretch")			obj.style.filter = "progid:DXImageTransform.Microsoft.Stretch(duration=0.5,stretchStyle=SPIN)";		
		else if (filterFunction=="stripsld")		obj.style.filter = "progid:DXImageTransform.Microsoft.Strips(duration=0.5,motion=leftdown)";		
		else if (filterFunction=="stripslu")		obj.style.filter = "progid:DXImageTransform.Microsoft.Strips(duration=0.5,motion=leftup)";		
		else if (filterFunction=="stripsrd")		obj.style.filter = "progid:DXImageTransform.Microsoft.Strips(duration=0.5,motion=rightdown)";	
		else if (filterFunction=="stripsru")		obj.style.filter = "progid:DXImageTransform.Microsoft.Strips(duration=0.5,motion=rightup)";				
		else if (filterFunction=="wheel")			obj.style.filter = "progid:DXImageTransform.Microsoft.Wheel(duration=0.5,spokes=8)"; // syntax: spokes 2-20 default: 4
		else if (filterFunction=="zigzag")			obj.style.filter = "progid:DXImageTransform.Microsoft.Zigzag(duration=0.5,GridSizeX=10,GridSizeY=10)"; 
		else if (filterFunction=="wipetop")			obj.style.filter = "progid:DXImageTransform.Microsoft.gradientWipe(duration=0.5,wipestyle=1,motion=forward)";
		else if (filterFunction=="wipebottom")		obj.style.filter = "progid:DXImageTransform.Microsoft.gradientWipe(duration=0.5,wipestyle=1,gradientSize=0.75,motion=reverse)"; // syntax: gradientSize: 0.0-1.0 motion: forward|reverse
		obj.filters[0].Apply();
		obj.src = imgfile;
		obj.filters[0].Play();
	}	

	function imgBlend(obj,imgfile){
		obj.filters.blendTrans.Apply();
		obj.src = imgfile;
		obj.filters.blendTrans.Play();
	}	
    function img(from,to)  { if ( (is.isMac) || (is.isNS) ) MM_swapImage(from,'',to,1); else if (to != "") imgBlend(eval(from),to); }
    function imgF(from,to,filterFunction)  { if ( (is.isMac) || (is.isNS) ) MM_swapImage(from,'',to,1); else if (to != "") imgFilter(eval(from),to,filterFunction); }	
    function imgFilterBlend(from,to,filterFunction)  { if ( (is.isMac) || (is.isNS) ) { MM_swapImage(from,'',to,1); } else if (to != "") imgFilter(eval(from),to,filterFunction); }


