
function Fade(fade_set_ID, fade_loader_ID, speed) {

	var effects     = new Array();
	var fade_speed  = null;
	var fade_set    = null;
	var fade_loader = null;	

	this.start_fade=function() {

		fade_speed 	= speed;
		this.fade_set    = document.getElementById(fade_set_ID);
	    this.fade_loader = document.getElementById(fade_loader_ID);

		if ((!this.fade_set) || (!this.fade_loader)) {
		  return false;
		}
	
		create_image_fades(fade_set);

		run_fades();


	}


	function fade_next(x) {
	  
  	  return function() { window.setTimeout(function() {
	    //alert(x + " has finished");
	    effects[x-1].toggle(); 
	    },
	    fade_speed); 
            };
        }

	function restartSequence(x) {
	  
  	  return function() { 

	    window.setTimeout(
	      function() {

//		effects[x].options.onComplete=fade_next(x);
//		effects[x].options.onComplete=function() { alert("a"); };

//		effects[first_item].toggle(); 

	      },

	    1); 

            }; // end function

        }
	
	
	function get_fading_images() {
	

	}

function create_image_fades(fade_set) {
	
		var images  = this.fade_set.getElementsByTagName("div");

		var i;
		i = 0;
	
		// For Each image
		for (i=0; i<images.length; i++) {
		  //alert(images[i].src);
		  effects.push(new Fx.Opacity(images[i])); // end push 
		}

		
		//effects[4].toggle();		

	

		// For each effect
		for(i=effects.length-1; i>=0;i--) {
		
		//alert(i);
		//alert(images[i].src);
	
		  if (i == 0) {
			effects[i].options.onStart=function() { effects[effects.length-1].toggle(); };			
			effects[i].options.onComplete=restartSequence(effects.length-1);
		  } else {
		  /**if (i == effects.length-1) {   // start **/
		       effects[i].options.onComplete=fade_next(i);
		  }
		  

		} // end for


	
	}


	function show_element() {
		alert(this.fade_set);
		//el.style.display = 'block';
	}
	
	function run_fades() {
			
		var fade_stage = new Fx.Opacity(this.fade_loader);
		
		var fade = new Fx.Opacity(this.fade_loader);
		
		load_msg = document.getElementById('loading_message');
		
		
		load_msg.innerHTML = "Loading Complete";
		
		fade.options.onComplete = function() { document.getElementById(fade_set_ID).style.display = "block"; };
		
		fade.toggle();
		window.setTimeout(function() { effects[effects.length-1].toggle(); }, fade_speed);
	}

	
} // End Class Fade