
var fadetimer = false;
var timerloopback = 1;
var dtCurrentTime;

instantaspTransition = new Object();

function InstantASPTransition(transitionid) { 
 this.TransitionID = transitionid;
 this.ExpandSlide = 2;
 this.ExpandSlideDuration = 200;
 this.ExpandTransition = 12;
 this.ExpandTransitionDuration = 175;
 this.CollapseSlide = 2;
 this.CollapseSlideDuration = 200;
 this.CollapseTransition = 12;
 this.CollapseTransitionDuration = 175;
 this.UseFade = false;
 this.FadeIncrement = 25;
 this.Container = null;
 if (instantaspTransition[this.TransitionID]!=null) {
 return instantaspTransition[this.TransitionID];
 } else { 
  instantaspTransition[this.TransitionID]=this;
 }
 return this;
}

InstantASPTransition.prototype.ExpandDiv = function(obj) {
	
	if (obj!=null) {
	
		obj.style.overflow = 'hidden';
		obj.style.display = '';
		
		if (this.ExpandSlide > 0) {dtCurrentTime = (new Date()).getTime();
		ExpandDivSlide(InstantASP_GetObjHeight(obj), this.ExpandSlideDuration, this.ExpandSlide, obj.id);}	
		
		if (this.ExpandTransition>0&&InstantASP_Transitions) {
			obj.style.filter = InitializeFilter(this.ExpandTransition, this.ExpandTransitionDuration);
			if (obj.filters && obj.filters[0]) {
				obj.style.visibility = 'hidden';
				obj.filters[0].apply();
				obj.style.visibility = 'visible';
				obj.filters[0].play();
			}
		} else {
			obj.style.visibility = 'visible'		
		} 		
	
		if (this.UseFade) {doFade(obj, this.FadeIncrement);}
	
	}
		
}

InstantASPTransition.prototype.CollapseDiv = function(obj) {

	if (obj!=null) {
	
		obj.style.overflow = 'hidden';
		
		if (this.CollapseTransition>=0&&InstantASP_Transitions) {
			obj.style.filter = InitializeFilter(this.CollapseTransition, this.CollapseTransitionDuration);
			if (obj.filters && obj.filters[0]) {
				obj.style.visibility = 'visible';
				obj.filters[0].apply();
				obj.style.visibility = 'hidden';
				obj.filters[0].play();
			}
		} else {
			obj.style.visibility = 'hidden'		
		} 
		
		if (this.CollapseSlide > 0) {
			if (this.CollapseSlide > 0) {dtCurrentTime = (new Date()).getTime();
			CollapseDivSlide(InstantASP_GetObjHeight(obj), this.CollapseSlideDuration, this.CollapseSlide, obj.id);}	
		} else {
			obj.style.display='none';
		}
		
		if (this.UseFade) {doFade(obj, this.FadeIncrement);}
	
	}
	
}

function ExpandDivSlide (height, slideduration, slidetype, id) {
	var obj = InstantASP_FindControl(id);
	var slidetimer = (new Date()).getTime()-dtCurrentTime;
	var slideincrement = InitializeSlide(slidetimer, slideduration, slidetype);
	if (slideincrement==1) { 
		obj.style.height = height + 'px'; 
		obj.style.overflow='visible'; 
		obj.style.height=''; 
		obj=null;
	} else {
		obj.style.height = Math.max(1, Math.floor(height*slideincrement))+'px';
		setTimeout('ExpandDivSlide('+height+','+slideduration+','+slidetype+',"'+id+'");',timerloopback);
	};
}

function CollapseDivSlide (height, slideduration, slidetype, id) {
	var obj = InstantASP_FindControl(id);
	var slidetimer = (new Date()).getTime()-dtCurrentTime;
	var slideincrement = InitializeSlide(slidetimer, slideduration, slidetype);
	if (slideincrement==1) {
		obj.style.display='none'; obj=null;
	} else {
		obj.style.height = Math.ceil((1-slideincrement)*height)+'px';
		setTimeout('CollapseDivSlide('+height+','+slideduration+','+slidetype+',"'+id+'");',timerloopback);
	};
}

function InitializeFilter(transition, duration) {  
	var s; if (InstantASP_BrowserVer < 5.5) { 
	 if (transition=37) {transition=parseInt(23*Math.random());} 
	 s = "revealTrans(Transition="+transition+",Duration="+(duration/1000)+");";
	} else { 
	 if (transition==37) {transition=parseInt(36*Math.random());} 
	 s = "progid:DXImageTransform.Microsoft."+GetFilter(transition); 
	 s = s.replace(')','Duration='+(duration/1000)+');');}
	 return s;
}

function InitializeSlide(slidetimer, slideduration, slidetype) {
	if (slidetype == 0 || slidetimer >= slideduration) {return 1;};
	if (slidetype==1) {slidetimer = slideduration-slidetimer;};
	var intMod = slidetimer/slideduration; 
	var intReturn;
	switch (slidetype) { 
		case 1: intReturn = 1-Math.pow(1/300,intMod); break;
		case 2:
		case 3: intReturn = intMod; break;
	};
	if (slidetype==1) {intReturn = 1-intReturn;};
	return Math.min(Math.max(0,intReturn),1);
};

function GetFilter(transition) {
    switch (transition) {
     case 0:return "Iris(irisStyle=SQUARE,motion=in,)";
     case 1:return "Iris(irisStyle=SQUARE,motion=out,)";
     case 2:return "Iris(irisStyle=CIRCLE,motion=in,)";
     case 3:return "Iris(irisStyle=CIRCLE,motion=out,)";
     case 4:return "Wipe(GradientSize=1.0,wipeStyle=1,motion=reverse,)";
     case 5:return "Wipe(GradientSize=1.0,wipeStyle=1,motion=forward,)";
     case 6:return "Wipe(GradientSize=1.0,wipeStyle=0,motion=forward,)";
     case 7:return "Wipe(GradientSize=1.0,wipeStyle=0,motion=reverse,)";
     case 8:return "Blinds(bands=8,direction=RIGHT,)";
     case 9:return "Blinds(bands=8,direction=DOWN,)";
     case 10:return "Checkerboard(squaresX=16,squaresY=16,direction=right,)";
     case 11:return "Checkerboard(squaresX=12,squaresY=12,direction=down,)";
     case 12:return "RandomDissolve()";
	 case 13:return "Barn(orientation=vertical,motion=in,)";
	 case 14:return "Barn(orientation=vertical,motion=out,)";
	 case 15:return "Barn(orientation=horizontal,motion=in,)";
	 case 16:return "Barn(orientation=horizontal,motion=out,)";
	 case 17:return "Strips(Motion=leftdown,)";
	 case 18:return "Strips(Motion=leftup,)";
	 case 19:return "Strips(Motion=rightdown,)";
	 case 20:return "Strips(Motion=rightup,)";
	 case 21:return "RandomBars(orientation=horizontal,)";
	 case 22:return "RandomBars(orientation=vertical,)";
	 case 23:return "Fade(overlap=.5,)";
	 case 24:return "Wheel(spokes=16,)";
     case 25:return "Slide(slideStyle=hide,bands=15,)";
	 case 26:return "Slide(slideStyle=swap,bands=15,)";
	 case 27:return "Inset()";
	 case 28:return "Pixelate(MaxSquare=15,)";
	 case 29:return "Stretch(stretchStyle=hide,)";
	 case 30:return "Stretch(stretchStyle=spin,)";
	 case 31:return "Iris(irisStyle=cross,motion=in,)";
	 case 32:return "Iris(irisStyle=cross,motion=out,)";
	 case 33: return "Iris(irisStyle=plus,motion=in,)";
	 case 34: return "Iris(irisStyle=plus,motion=out,)";
	 case 35: return "Iris(irisStyle=star,motion=in,)";
	 case 36: return "Iris(irisStyle=star,motion=out,)";
    };
     return null;
}


function doFade(obj, fadeincrement) {
	if (obj.filters!=null&&obj.style.filter.indexOf("alpha")==-1) {
	 obj.style.filter = "alpha(opacity=0); moz-opacity:0%;" 
	} 
	FadeIn(obj.id, 0, fadeincrement);
}

function FadeIn(id, opac, fadeincrement) {
	obj = InstantASP_FindControl(id);
	if (opac <= 100) {
		opac+=fadeincrement; 
		if (InstantASP_IE4 || InstantASP_IE5) {obj.filters.alpha.opacity = opac;}
		if (InstantASP_NS6) {obj.style.MozOpacity = opac/100;}
		fadetimer = setTimeout("FadeIn('"+id+"', "+opac+","+fadeincrement+");",timerloopback);
	} else {
		clearTimeout(fadetimer)
	}
}
