function Fader(option,target,interval,callback,text){
     this.option=option;
     
     this.target=target;
     this.callback=callback;
     this.interval=interval;
     this.text=text;
     
     this.startFading=function(){
    	if(option==1){
    		this.fadeIn("");
    	}
    	if(option==2){
    		this.fadeOut("");
    	}
    	if(option==3){
    		this.fadeTo();
    	}
    	if(option==4){
    		//fade out then fade in
    		this.fadeOutThenFadeIn();
    	}
     }
     this.fadeIn=function(callback){
    	 //alert("fade in target, callback:"+callback);
    	
    	 if(callback){
    		 $("#"+this.target).fadeIn(this.interval,callback);
    	 }
    	 else{
    		// alert("no call back, interval:"+this.interval);
    		 $("#"+this.target).fadeIn(this.interval);
    	 }
     }
     this.fadeOut=function(callback){
    	//alert(this.target);
    	 if(callback){
    		 //alert("call back:"+this.callback);
    		 $("#"+this.target).fadeOut(this.interval,callback);
    	 }
    	 else{
    		 //alert("no call back, fade out interval:"+this.interval);
    		 $("#"+this.target).fadeOut(this.interval);
    	 }
    	 
     }
     this.fadeTo=function(){
    	 
    	 
     }
     this.fadeOutThenFadeIn=function(){
    	 this.fadeIn();
    	 //alert("fade in then fade out");
    	 var myTarget=document.getElementById(this.target);
    	 this.fadeOut();
    	 //alert("done fadeout..");
    	 var callwrapper = new CCallWrapper(this, this.interval,'changeText');
 		 CCallWrapper.asyncExecute(callwrapper);
 		 //alert("fade in");
    	 //document.getElementById(this.target).innerHTML="XXXXX";
 		 //alert(this.callback);
 		 var callwrapper2 = new CCallWrapper(this, this.interval,'fadeIn',this.callback);
 		 CCallWrapper.asyncExecute(callwrapper2);
     }
     this.changeText=function(){
    	// alert("change Text:"+this.text);
    	 var myTarget=document.getElementById(this.target);
    	 document.getElementById(this.target).innerHTML=this.text;
     }
}
