// Jump.js for Astound Presentations Version 7.0.195 (C) 2000 Astound Incorporated.

var NSVersion=(navigator.appName=='Netscape')?(parseInt(navigator.appVersion.substring(0,1))):0;
var isN4=(NSVersion==4)&&(document.layers!=null);
var isN5=(NSVersion==5)&&(document.getElementById!=null);
RPGUID='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
RPPARAMS='<PARAM NAME="CONTROLS" VALUE="ImageWindow">';
RPATTR='CONTROLS="ImageWindow"';
AMGUID='clsid:05589FA1-C356-11CE-BF01-00AA0055595A';
AMPARAMS='<PARAM NAME="ShowDisplay" VALUE="0"><PARAM NAME="ShowControls" VALUE="0"><PARAM NAME="ShowTracker" VALUE="0">';
AMATTR='AUTOSTART="FALSE" AUTOPLAY="FALSE" CONTROLLER="FALSE" SCALE="TOFIT" MASTERSOUND PLUGINSPAGE="http://www.apple.com/quicktime/download/"';
var wX = window.innerWidth;
var wY = window.innerHeight;
var scFact=1.0;
var scFactFont=1.0;
var bReloadOnResize = (!isIE4)&&(!isN5);
function getElm(parent,child) {
	if(child=="") return null;
	if(isN4) {
		if(parent!="") return document.layers[parent].document.layers[child];
		return document.layers[child];
	}
	if(isIE4) return document.all[child];
	if(isN5) return document.getElementById(child);
	return null;
}
function getStyle(parent,child) {
	d=getElm(parent,child);
	if (d) return d.style;
	return null;
}
function getScale(dpi){
	var brDPI=0;
	var s=getStyle('','astDPIQuery');
	if (s) {
		if(isN4)brDPI=s.clip.height;
		else brDPI=s.pixelHeight;
	}
    if (brDPI<72)brDPI=dpi;
	scFactFont=dpi/brDPI;
}
function stretchToFitClient(x,y){
/*
    x = wX / x;
    y = wY / y;
    var fact = x > y ? y : x;
    if (fact > 0 && (fact < 0.8 || fact > 1.2)) {
        if (fact < 0.25) fact = 0.25;
        else if (fact > 5) fact = 5;
        scFact *= fact;
        scFactFont *= fact;
    }
    bReloadOnResize = 1;
*/
}
function RPObj(id,url){
	if(!isN4)return '<OBJECT ID="'+id+'OBJ" CLASSID="'+RPGUID+'" HEIGHT=100% WIDTH=100%>'+RPPARAMS+'<PARAM NAME="SRC" VALUE="'+url+'"></OBJECT>';
	else return	'<EMBED NAME="'+id+'EMB" SRC="'+url+'" WIDTH=100% HEIGHT=100% '+RPATTR+'></EMBED>';
}
function QTObj(id,url,l){
        return '<EMBED NAME="'+id+'EMB" SRC="'+url+'"'+((l>1)?' LOOP="TRUE"':'')+' WIDTH=100% HEIGHT=100% '+AMATTR+'></EMBED>';
}
function AMObj(id,url,l){
	if(!isN4){
        s='<OBJECT ID="'+id+'OBJ" CLASSID="'+AMGUID+'" WIDTH=100% HEIGHT=100%>'+AMPARAMS+'<PARAM NAME="FileName" VALUE="'+url+'"><PARAM NAME="PlayCount" VALUE="'+l+'">';
        if(AMObj.arguments.length>3) s+='<PARAM NAME="MovieWindowWidth" VALUE="'+AMObj.arguments[3]+'"><PARAM NAME="MovieWindowHeight" VALUE="'+AMObj.arguments[4]+'">';
        return (s+'</OBJECT>');
    }
        return QTObj(id,url,l);
}
function ImObj(nm,src,w,h,alt,map){
	w=w*scFact;h=h*scFact;
	str='<IMG SRC="'+src+'" WIDTH="'+w+'" HEIGHT="'+h+'" BORDER="0" NAME="'+nm+'" ALT="'+alt+'"';
	if(map!=null&&map!="")str+=' USEMAP="#'+map+'"';
	str+='>';
	return str;
}
function TObj(FName,bFixed,nPtSize,color,nSt,nLS,text){
	if((nSt&0x10)||(nSt&0x20))nPtSize=nPtSize*2/3;
	if(isN4){
		var attr='FACE="'+FName+'" COLOR="#'+color+'" POINT-SIZE="'+(nPtSize*scFactFont)+'"';
		var str="<FONT "+attr+">";
		if(nSt&0x01)str+="<B>";
		if(nSt&0x02)str+="<I>";
		if(nSt&0x04)str+="<U>";
		if(nSt&0x10)str+="<SUP>";
		if(nSt&0x20)str+="<SUB>";
		str+=text;
		if(nSt&0x20)str+="</SUB>";
		if(nSt&0x10)str+="</SUP>";
		if(nSt&0x04)str+="</U>";
		if(nSt&0x02)str+="</I>";
		if(nSt&0x01)str+="</B>";
		str+="</FONT>";
		return str;
	}
	else{
		var style="font-family:"+FName;
		style+="; font-size:"+(nPtSize*scFactFont)+"pt; color:#"+color+";";
		if(nSt&0x01)style+=" font-weight:bold;";
		if(nSt&0x02)style+=" font-style:italic;";
		if(nSt&0x04)style+=" text-decoration:underline;";
		if(nSt&0x08)style+=" text-decoration:line-through;";
		if(nSt&0x10)style+=" vertical-align:super;";
		if(nSt&0x20)style+=" vertical-align:sub;";
        if(nLS>1.0)style += " line-height:"+nLS+";";
		return '<SPAN STYLE="'+style+'">'+text+'</SPAN>';
	}
}
var bSTr=false;
function DivSt(id,l,t,w,h,vis,sx,sy,sc)	{
	l=l*scFact;t=t*scFact;w=w*scFact;h=h*scFact;
	if(isN4){
		var attr='NAME="'+id+'" LEFT='+l+' TOP='+t;
		if(w>0)attr+=' WIDTH='+w;
		if(h>0)attr+=' HEIGHT='+h;
		if(vis!=-1)attr+=' VISIBILITY='+(vis?'SHOW':'HIDDEN');
		attr+=" CLIP='"+w+","+h+"'";
		return '<LAYER '+attr+'">';
	}
	else{
		var st="position:absolute; left:"+l+"px; top:"+t+"px;";
		if(w>0)st+=" width:"+w+"px;";
		if(h>0)st+=" height:"+h+"px;";
		if(vis!=-1)st+=" visibility:"+(vis?"visible;":"hidden;");
        if(l<-5000||!bSTr||isIE5) {
		    if(sx==256)st+=" filter:DropShadow(Color=#000000,OffX=1,OffY=1);";
		    else if(sx!=0||sy!=0)st+=" filter:DropShadow(Color=#"+sc+",OffX="+sx+",OffY="+sy+");";
		}
		if (isIE4)st+=" overflow:hidden;";
		st+=" clip:rect(0 "+w+" "+h+" 0)";
		return '<DIV ID="'+id+'" STYLE="'+st+'">';
	}
}
function DivEnd(){return isN4?"</LAYER>\n":"</DIV>\n";}
function setIm(d,n,i){eval("d." + n + ".src=i");}
VIZ=0x0001;
MOVE=0x0002;
CLIP=0x0004;
MMSTRT=0x0008;
RPSTRT=0x0010;
IETRANS=0x0020;
PAUSE=0x0040;
ACTION=0x0080;
STARTTL=0x0100
SIZE=0x0200;
MAXTM=32000;
document.tls=new Array;
document.tls[0]=new Array;
var MainTL = document.tls[0];
MainTL.bActive = true;
var pathArray=new Array;
var	trIn=new Array;
var	trOut=new Array;
var nextURL=null;
var nextURLTmp=null;
var nextURLTmpTarget=null;
var sSlideQuestion = "";
var Divs=new Array;
var numDivs=0;
var bStarted=false;
var bPause=false;
var bStopped=false;
var nTimeIndex=0;
var nGlobalTime=0;
var nDur=0;
var nGTStep=100;
var nDelay=0;
var nSTT=0;
var nImgPct=100;
var bTimedPause=false;
var nPauseTime=0;
var bClickUnpause=true;
var nLoop=1;
var nMaxLoop=1;
var nTLoopStart=0;
var nLoopEnd=0;
TimeWarp=0.5;
function Tick(time){this.Time=time;this.Events=new Array;}
function astEvent(LNm,PLNm,time,nIter,nMaxIter,act,x,y,viz,trD,script,url,target){
	this.LNm=LNm;this.PLNm=PLNm;this.time=time;this.iter=nIter;this.maxiter=nMaxIter;this.act=act;
	this.x=x;this.y=y;this.viz=viz;this.trD=trD;this.script=script;this.url=url;this.target=target;
	if(LNm=="") { this.d=null; this.s=null; }
	else{
		this.d=getElm(PLNm,LNm);
		this.s=getStyle(PLNm,LNm);
	}
	this.ExecuteEvent=(isN4?NSEvent:IEEvent);
}
function resetImgObj(obj){
    if (obj) {
        var srcImg = obj.src;
        obj.src = '';
        obj.src = srcImg;
    }
}

function stHideShow(st,s) {
    if (isN4) {
        if (st.viz == 0) {
            s.visibility='hide';
        }
        else {
            s.visibility='show';
            resetImgObj (s.document.images[0]);
        }
    }
    else {
        if (st.viz == 0) {
	        s.visibility='hidden';
        }
        else {
            s.visibility='visible';
            resetImgObj (document.images[st.LNm+'Im']);
        }
    }
}


function iterViz(ev){return (ev.iter==0||(ev.maxiter==1)||(((nLoop-1)%ev.maxiter)==(ev.iter-1)));}
function NSEvent(){
	if(!iterViz(this)) return false;
	if(this.act&PAUSE){pauseSlide(this.x,this.y); return true;}
	if(this.act&ACTION){eval(this.script); jumpTo(this.url,this.target);}
	if(this.d==null)return false;
	if((this.act&CLIP) && this.trD){this.d.clip.left=this.trD[0];this.d.clip.top=this.trD[1];this.d.clip.width=this.trD[2]-this.trD[0];this.d.clip.height=this.trD[3]-this.trD[1];}
	if(this.act&MOVE)this.d.moveTo(this.x,this.y);
	if(this.act&SIZE)this.d.resizeTo(this.trD[4],this.trD[5]);
	if(this.act&VIZ) stHideShow(this,this.d);
	if(this.act&MMSTRT)playNS(this,false);
	if(this.act&RPSTRT)playNS(this,true);
	if(this.act&STARTTL)controlObj(this.PLNm,this.LNm,0);
	return false;
}
function IEEvent() {
	if(!iterViz(this)) return false;
	if(this.act&PAUSE){pauseSlide(this.x,this.y); return true;}
	if(this.act&ACTION){eval(this.script); jumpTo(this.url,this.target);}
	if(this.d==null)return false;
	if((this.act&CLIP) && this.trD)this.s.clip="rect("+this.trD[1]+" "+this.trD[2]+" "+this.trD[3]+" "+this.trD[0]+")";
	if(this.act&MOVE){this.s.left=this.x;this.s.top=this.y;}
	if(this.act&SIZE){if(this.trD[4])this.s.width=this.trD[4];if(this.trD[5])this.s.height=this.trD[5];}
	if(this.act&VIZ) stHideShow(this,this.s);
	if(this.act&MMSTRT)playIE(this,false);
	if(this.act&RPSTRT)playIE(this,true);
	if(this.act&STARTTL)controlObj(this.PLNm,this.LNm,0);
	if(isIE4&&(this.act&IETRANS)) {
		var sec=Math.floor(this.trD[2]/1000);
		var msec=Math.floor(this.trD[2]-sec*1000);
		if(this.trD[0]==-1)this.s.filter+=" blendtrans(duration="+sec+"."+msec+")";
		else this.s.filter+=" revealtrans(duration="+sec+"."+msec+",transition="+(this.trD[0]-1)+")";
	    this.s.visibility=(this.trD[1]==0)?"hidden":"visible";
            var tdfl = this.d.filters.length - 1;
            if (tdfl>=0)
            {
                this.d.filters[tdfl].apply();
                this.s.visibility=(this.trD[1]==0)?"visible":"hidden";
                this.d.filters[tdfl].play();
            }
	}
	return false;
}
function playNS(ev,r){
	if (!ev.d) return;
	if((em=ev.d.document.embeds[ev.LNm+"EMB"])==null)return;
	bPl=false;
	if(r){if(em.CanPlayPause()){em.DoPlayPause();bPl=true;}}
	else{em.play();bPl=true;}
	if(!bPl)shiftEv(ev,200);
}
function playIE(ev,r){
	ob=getElm("",ev.LNm+"OBJ");
	if(ob==null)return;
	bPl=false;
	if(r){if(ob.CanPlayPause()){ob.DoPlayPause();bPl=true;}}
	else{if(ob.ReadyState==4&&ob.Filename!=""){ob.Run();bPl=true;}}
	if(!bPl)shiftEv(ev,200);
}
function playMM(PLNm,LNm,v, r){ 
    var ev=new astEvent(LNm,PLNm,0,0,1,r?RPSTRT:MMSTRT,-1,-1,1,null,'','','');
    ev.ExecuteEvent();
}
function controlObj(PLNm, LNm, type){
	var tl=null;
	for(var i=1;i<document.tls.length;i++){
		tl=document.tls[i];
		if (tl.LNm==LNm&&tl.PLNm==PLNm){
			switch (type){
				case 0: tl.nTimeIndex=0; tl.bActive=true; break;
				case 1: tl.nTimeIndex=0; tl.bActive=false; break;
				case 2: tl.nTimeIndex=0; tl.bActive=!tl.bActive; break;
				case 4: tl.nTimeIndex=tl.nExitIndex; break;
			}
            var tick;
			if (tl.bActive) {
				tick=tl[tl.nTimeIndex];
				for(var j=0;j<tick.Events.length;j++)tick.Events[j].ExecuteEvent();
			}
			tick=tl[tl.nSteps+(tl.bActive?1:2)];
			tick.Events[0].ExecuteEvent();
			break;
		}
	}
}
function Div(LNm,PLNm){this.LNm=LNm;this.PLNm=PLNm;}
function State(LNm,PLNm){this.LNm=LNm;this.PLNm=PLNm;this.viz=0;this.x=0;this.y=0;this.trD=null;}
INDEXMUL=1000
var bDoingJump=false;
function jumpTo(url,target){
	if(url==''||url=='#') return;
    if(isN4&&window.endMouseEvents)endMouseEvents(); 
    if(url.substring(0,11).toLowerCase()=="javascript:")eval(url.substring(11,url.length));
	else {bDoingJump=true; open(url,(target=='')?"_self":target);}
}
function jumpToNextEvent() {
    var n=nTimeIndex;
    while (n<MainTL.length) {
	    if (MainTL[n].Events.length > 0) break;
	    n++;
    }
    jumpToTime(n*INDEXMUL,0,-1);
}
// This "time" is not really time - it's (TL Index) * INDEXMUL + (event bin index)
function jumpToTime(nT,nP,nO){
	if(nT<0)nT=0;
    var nIndex = Math.floor(nT/INDEXMUL);
    if (nIndex >= MainTL.length) nIndex = MainTL.length-1;
    var nRestartIndex = nT - (nIndex*INDEXMUL);
    if (nRestartIndex >= MainTL[nIndex].Events.length) nRestartIndex = MainTL[nIndex].Events.length-1;
    if(nRestartIndex < 0) nRestartIndex = 0;
    if (nIndex == nTimeIndex && nRestartIndex == nRestart) 
        return;
	var state=new Array;
	var ind=new Array;
    var i,j,n;
	for(i=0;i<Divs.length;i++){
		if(Divs[i].LNm=="")continue;
		eval("ind."+Divs[i].LNm+"=i");
		state[i]=new State(Divs[i].LNm,Divs[i].PLNm);
	}
	var tick,ev;
	for(i=0;i<=nIndex;i++){
		tick=MainTL[i];
		for(j=0;j<tick.Events.length;j++){
            if(i >= nIndex && j >= nRestartIndex) break;
			ev=tick.Events[j];
			if(ev.LNm=="") continue;
			n=ind[ev.LNm]
			state[n].LNm=ev.LNm;
			state[n].PLNm=ev.PLNm;
			if(ev.act&VIZ) state[n].viz=(iterViz(ev)?ev.viz:false);
			if(ev.act&MOVE) {state[n].x=ev.x;state[n].y=ev.y;}
			if(ev.act&CLIP) state[n].trD=ev.trD;
		}
	}
	var st,s;
	for(i=0;i<state.length;i++){
		st=state[i];
		s=getStyle(st.PLNm,st.LNm);
		if(s) {
			if(isN4){
				if(st.trD){s.clip.left=st.trD[0];s.clip.top=st.trD[1];s.clip.width=st.trD[2]-st.trD[0];s.clip.height=st.trD[3]-st.trD[1];}
				s.moveTo(st.x,st.y);stHideShow(st,s);
			}
			else{
				if(st.trD)s.clip="rect("+st.trD[1]+" "+st.trD[2]+" "+st.trD[3]+" "+st.trD[0]+")";
				s.left=st.x;s.top=st.y;stHideShow(st,s);
			}
		}
	}
	nTimeIndex=nIndex;
    nRestart=nRestartIndex;
	nGlobalTime=nTimeIndex*nGTStep;
	tm = new Date();
	startTime = tm.getTime();
	startTime -= nTimeIndex*nGTStep;
    if (nP!=-1) {
    	bPause=(nP==1)?true:false;
    	bTimedPause=false;
    	nPausedTime=0;
    	bClickUnpause=true;
    }
    if (nO != -1) nOdo = nO;
	if(bStopped)DoTimeLine();
}
function mkPath(init){
	if(init)pathArray.length=0;
	var index=pathArray.length;
	for(var i=1;i<mkPath.arguments.length;i++,index++){pathArray[index]=mkPath.arguments[i]*(((i%3)==1)?1:scFact);}
}
function mkTrans(which){
	var tr=new Array;
	var bClip=mkTrans.arguments[1]==2;
    var i, j;
	for(j=0,i=1;i<mkTrans.arguments.length;i++,j++){tr[j]=mkTrans.arguments[i]*((bClip&&(i>1))?scFact:1);}
	if(which)trOut=tr;
	else trIn=tr;	
}
function InsertEvent(tl,nIndex,ev) {
    if (nIndex>=tl.length) nIndex=tl.length-1;
    evList=tl[nIndex].Events;
    var nInsert=0;
    for(; nInsert<evList.length; nInsert++) { 
        if (ev.time<evList[nInsert].time) break;
    }
    var evNext;
    var evIns = ev;
    do {
        evNext=(nInsert>=evList.length)?null:evList[nInsert];
        evList[nInsert]=evIns;
        evIns=evNext;
        nInsert++;
    } while (evNext!=null)
}

function addEvent(LNm,PLNm,tl,nIter,nMaxIter,time,act,x,y,viz,trD){
	if(PLNm!=""&&time!=0&&tl==MainTL)time+=nSTT;
	var nIndex=Math.floor(time/nGTStep);
    InsertEvent(tl,nIndex,new astEvent(LNm,PLNm,time,nIter,nMaxIter,act,x,y,viz,trD,"","",""));
}
function addActionEvent(time,script,url,target) {
	time+=nSTT;
	var nIndex=Math.floor(time/nGTStep);
    InsertEvent(MainTL,nIndex,new astEvent("","X",time,0,0,ACTION,0,0,1,"",script,url,target));
}
function shiftEv(ev,delt){
	var nIndex=Math.floor(nTimeIndex+delt/nGTStep);
	if(nIndex<MainTL.length){
		evList=MainTL[nIndex].Events;
		evList[evList.length]=ev;
	}
}
function addItem(LNm,PLNm,nInter,nIter,nMaxIter,nTStep,trI,trO,T1,T2,T3,T4,nState,x,y,p,mmType){
    var bInter=(nInter&0x0001);
	x=x*scFact;y=y*scFact;
	if(nTStep < nGTStep)nTStep=nGTStep;
	var fact=nDur/MAXTM;
	Divs[numDivs++]=new Div(LNm,PLNm);
	var nT1=T1*fact,nT2=T2*fact,nT3=T3*fact,nT4=T4*fact;
	var tl = MainTL;
	if (bInter){
		nT4-=nT1; nT3-=nT1; nT2-=nT1; nT1=0;
	    if(nT3<=nT2+nGTStep)nT3=nT2+nGTStep;
	    if(nT4<=nT3+nGTStep)nT4=nT3+nGTStep;
	    tl = document.tls[document.tls.length] = new Array;
		var nSteps=Math.floor(nT4/nGTStep);
		for(var i=0;i<=nSteps+2;i++)tl[i]=new Tick(i*nGTStep);
		tl.LNm=LNm;
		tl.PLNm=PLNm;
		tl.bActive=false;
		tl.nTimeIndex=0;
		tl.nSteps=nSteps;
        tl.bHideClick=(nInter&0x0004)?true:false;
		tl.nExitIndex=Math.floor(nT3/nGTStep);
		addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT4+nGTStep,VIZ,0,0,1,null);
		addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT4+2*nGTStep,VIZ,0,0,0,null);
	}
	if((p==null || p.length<6) && trI==null && trO==null)	{
		addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT1,VIZ|MOVE,x,y,1,null);
		if(T4!=MAXTM || bInter)addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT4,VIZ,0,0,0,null);
	}
	else{
		var path=new Array;
		if(p==null || p.length<6){
			if(p==null)p=path;
			p.length=0;
			p[0]=T1;p[3]=T2;p[6]=T3;p[9]=T4;
			p[1]=p[4]=p[7]=p[10]=p[2]=p[5]=p[8]=p[11]=0;
		}
		var j,delj,nTStart,nTEnd,nT,x1,y1,x2,y2,delX,delY,trD,tr,xShift,yShift,xx,yy,act;
		nTStart=p[0]*fact;
		if (bInter) nTStart = 0;
		x1=p[1]+x;y1=p[2]+y;
		var bFirst=true;
		if(trI!=null && trI[0]==1){
			trD=new Array(trI[1],0,nT2-nT1);
    		addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT1,VIZ,0,0,0,null);
			addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT1+1,VIZ|IETRANS,0,0,1,trD);
		}
		else
    		addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT1,VIZ,0,0,1,null);
		if(trO!=null && trO[0]==1){
			trD=new Array(trO[1],1,nT4-nT3);
			addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT3+1,IETRANS,0,0,1,trD);
		}
		for(var i=3;i<p.length;i+=3){
			nTEnd=p[i]*fact;
			if (bInter) nTEnd = (p[i]-p[0])*fact;
			x2=p[i+1]+x;y2=p[i+2]+y;
			delX=x2-x1;delY=y2-y1;
			tm=nTStart;
			bDone=false;
			delj=((nTEnd==nTStart)?0:nTStep/(nTEnd-nTStart));
			j=0;
			do{
				tr=null;trD=null;act=MOVE;
				xx=x1+j*delX;yy=y1+j*delY;
				if(trI!=null && trI[0]==2 && tm>=nT1-0.5 && tm<=nT2+0.5){
					tr=trI;rat=((nT2==nT1)?1:(tm-nT1)/(nT2-nT1));
				}
				if(trO!=null && trO[0]==2 && tm>=nT3-0.5 && tm<=nT4+0.5){
					tr=trO;rat=((nT4==nT3)?1:(tm-nT3)/(nT4-nT3));
				}
				if(tr!=null){
					xShift=tr[1]+(tr[7]-tr[1])*rat;
					yShift=tr[2]+(tr[8]-tr[2])*rat;
					trD=new Array(tr[3]+(tr[9]-tr[3])*rat,tr[4]+(tr[10]-tr[4])*rat,tr[5]+(tr[11]-tr[5])*rat,tr[6]+(tr[12]-tr[6])*rat);
					act|=CLIP;xx+=xShift;yy+=yShift;
				}
				if(bFirst||delX!=0||delY!=0||tr!=null)addEvent(LNm,PLNm,tl,nIter,nMaxIter,tm,act,xx,yy,1,trD);
				bFirst=false;
				if(tm==nTEnd)bDone=true;
				tm+=nTStep;j+=delj;
				if(tm>nTEnd){tm=nTEnd;j=1;}
			}while(!bDone);
			x1=x2;y1=y2;
			nTStart=nTEnd;
		}
		if(T4!=MAXTM || bInter)addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT4,VIZ,0,0,0,null);
	}
	if(mmType>0){del=(isIE4?screen.updateInterval:nGTStep);if(del<nGTStep)del=nGTStep;addEvent(LNm,PLNm,tl,nIter,nMaxIter,nT1+del,mmType==2?RPSTRT:MMSTRT,0,0,0,null);}
}
function addPause(nT,nD,bClick){addEvent("","X",MainTL,0,0,nT*nDur/MAXTM,PAUSE,nD,bClick,0,null);}
function setStartTL(LNm,PLNm,nT){addEvent(LNm,PLNm,MainTL,0,0,nT*nDur/MAXTM+nGTStep,STARTTL,0,0,0,null);}
function addMarker(nT,script,url,target){addActionEvent(nT*nDur/MAXTM,script,url,target);}
function setNext(URL){nextURL=URL;}
function setNextTmp(URL,target){if(bStopped==true)jumpTo(URL,target);else {nextURLTmp=URL;nextURLTmpTarget=target;}}
function setQuestion(sQ) { sSlideQuestion = sQ;}; 
function getQuestion() { return sSlideQuestion;}; 


var strStatus="";
function GetStatusMSG() {
    return strStatus;
}
function SetStatusMSG(str) {
    strStatus=str;
	window.status=str;
}
function stat(){
	var str="";
	if(bPause){
		str+="Paused";
		if(bTimedPause)str+=" ["+nPauseTime/1000+" sec]";
		if(bClickUnpause)str+=": Click to continue";
	}
    SetStatusMSG(str);
}

var loopCount = 0;
var nRestart=0;
function EndTL() {
	bStopped=true;
	bDoUnload = true;
	if(RangeLast!=""&&(RangeLast==getFName(location.pathname)))	{
		clearRange();
		if (AfterRange!="")	{
			jumpTo(AfterRange+paramsToS(params),"_self");
			return;
		}
	}
    s=paramsToS(params);
    var bSelf=false;
	if(nextURLTmp!=null){u=nextURLTmp;nextURLTmp=null;bSelf=(nextURLTmpTarget=="_self");tg=nextURLTmpTarget;nextURLTmpTarget=null;jumpTo(u+s,tg);}
	if(!bSelf&&nextURL!=null)jumpTo(nextURL+s,"_self");
}
function DoTimeLine(){
	bStopped=false;
	nGlobalTime=nTimeIndex*nGTStep;
	if(bPause){
		nPauseTime-=100;
		if(bTimedPause&&nPauseTime<0){unpauseSlide();}
		else{setTimeout("DoTimeLine()",100);stat();return;}
	}
    if(nTimeIndex>=MainTL.length) { EndTL(); return; }
	var t;
	do { t = new Date(); curTime = t.getTime();} while (curTime - startTime < nGlobalTime); // resync time ...
	if (((loopCount%5) == 0) && nGlobalTime > nSTT && parentFrame && parentFrame.SetTime)
		parentFrame.SetTime ((bTimedSlide ? nGlobalTime : curTime - realStartTime) - nSTT, nDur, bTimedSlide);
	loopCount++;
	var tick=MainTL[nTimeIndex];
    var bP=false;
	for(i=nRestart;i<tick.Events.length;i++){
        if (bP) {nRestart=i; setTimeout("DoTimeLine()",10); return;}
	    bP=tick.Events[i].ExecuteEvent();
	}
    nRestart=0;
	nTimeIndex++; 
	var tl;
	for(var ntl=1; ntl<document.tls.length; ntl++){
		tl = document.tls[ntl];
		if (tl.bActive && tl.nTimeIndex <= tl.nSteps){
			tick=tl[tl.nTimeIndex++];
			for(var i=0;i<tick.Events.length;i++)tick.Events[i].ExecuteEvent();
		}
	}
	if(nGlobalTime+nGTStep<=nLoopEnd+nSTT) setTimeout("DoTimeLine()",nDelay);
	else {
		if (nLoop < nMaxLoop){bStopped=true;nLoop++;jumpToTime(nTLoopStart*INDEXMUL,0,-1);}
		else setTimeout("DoTimeLine()",nDelay);
	}
}
var bCBTNeedLogin = false;

function getParent()
{
    // IE 5.0 Bug FIX - window.parent returns the window itself!!  Check and discard such crap -gps
	parentFrame=window.parent;
    if (parentFrame) {
        if (parentFrame==window) {
            parentFrame=null;
        }
    }
}

function setPresURL() {
	getParent();
    if (parentFrame && parentFrame.setPresURL) parentFrame.setPresURL(location.href);
}
function InitSlide(sPageId, sPageNm,dur,nLoopSt,nLoop,tr,step,bTimed){
    sToParams(location.search,params);
	getParamData();
	strPageNm=sPageNm;
	strPageId=sPageId;
	nDur=dur;nTLoopStart=(nLoopSt*nDur/MAXTM)/step;nLoopEnd=nLoop;nSTT=tr;
	ui=screen.updateInterval;
	if(isIE4&&step<ui&&ui>50)step=ui;
	nGTStep=nTStep=step;
	nDelay=nGTStep*TimeWarp;
	nTimeIndex=0;
	bTimedSlide=bTimed;
	var nSteps=(dur+tr)/step;
	for(var i=0;i<=nSteps;i++)MainTL[i]=new Tick(i*step);
	getParent();
	if (parentFrame) {
	    if (isIE4) parentFrame.document.title = document.title;
	    if (parentFrame.initFrameset) parentFrame.initFrameset(isN4);
	    if (parentFrame.startPresSlide) parentFrame.startPresSlide();
	}
	return true;
}
var nTryTime=0;
WAITINC=500;
function startTimeline(){
	if(bStarted) return;
	if(checkImages(nTryTime)){
	    if (checkApplets(nTryTime)){
        	bStarted=true;
    		var start = new Date();
    		realStartTime = startTime = start.getTime();
    		loopCount=0;
            loadNotes();
            if(nOffsetTime>0) {bStopped=true;jumpToTime(nOffsetTime,nOffsetPause,nOffsetOdo);}
    		else DoTimeLine();
            return;
        }
	}
    nTryTime+=WAITINC;
	setTimeout("startTimeline();",WAITINC);
}
function checkApplets(n){
	if (!parentFrame||!parentFrame.appletsReady)
		return true;
	if (!parentFrame.appletsReady(n))
		return false;
	if (parentFrame.ConfIsConference&&parentFrame.ConfStartTL){
		if (parentFrame.ConfIsConference()&&(parentFrame.ConfStartTL(location.href)!=1)) return false;
	}
	if (bCBTNeedLogin&&parentFrame.LogIn&&!parentFrame.LogIn()){
		bDoUnload=false;
		parentFrame.location.href=strNoLoginURL;
		return false;
	}
	return true;
}
MAXWAIT=30000;
function checkImages(nT){
	var nIm=0,nC=0;
	if (isN4){
		for(var l=0;l<document.layers.length;l++){
			for(var s=0;s<document.layers[l].document.layers.length;s++){
				ims=document.layers[l].document.layers[s].document.images;
				if(ims.length>0){ nIm++; if(ims[0].complete==true)nC++;} 
			}
		}
	}
	else if (isIE4) {
		for(var i=0;i<document.images.length;i++){
		    var r=document.images[i].readyState;
            if (r!="unitialized"&&r!="uninitialized"){ nIm++; if(r=="complete")nC++; }
		}
	}
    var bDone = (nIm==0)||(nC/nIm*100>=nImgPct)||(nT>MAXWAIT)||(nT>nImgPct*50*nIm);
    SetStatusMSG(bDone?"":"Waiting for Images to load ... ");
	return bDone;
}
function pauseSlide(time,click){bPause=true;bTimedPause=(time!=-1);nPauseTime=time;bClickUnpause=click;}
function unpauseSlide(){bPause=false;stat();}
function getClickedLink(e){
    if(!bMaskOn) {
    	if(isIE4&&((s=window.event.srcElement)!=null)&&(s.parentElement!=null)){r=s.parentElement.href;return r?r:"";}
	    else if(e!=null&&e.target!=null){return e.target.href?e.target.href:"";}
	}
	return "X";
}
function clickHandler(e){
    if(getClickedLink(e)=="") {
    	var tl;
    	for(var i=1; i<document.tls.length; i++){
            tl=document.tls[i];
            if (tl.bHideClick) controlObj (tl.PLNm,tl.LNm,1);
        }    
        if(bPause) { if(bClickUnpause)evUnpauseSlide(true); }
        else if (bAdvOnClick) jumpToNextEvent();
    }
}
var bAdvOnClick=false;
function advanceOnClick(b) { bAdvOnClick=b; }
function setLooping(n){nMaxLoop=n;}
var bDoUnload = false;
function resizeCalled(){
	if(!bReloadOnResize) return;
	if (window.innerWidth!=wX||window.innerHeight!=wY){
        setParam(params,"t",""+GetTime());
        setParam(params,"p",bPause?"1":"0");
        setParam(params,"o",""+nOdo);
        var srch = paramsToS(params);
		location.href=location.pathname+srch;
		bDoUnload=false;
	}
}
NX="astrangenext";
RL="astrangelast";
AR="astafterrange";
function playRange(url1,url2,bReplay,bTime,bDelay){
	setParam(params,NX,url1);
	setParam(params,RL,url2);
	if (bReplay){
		after=getFName(location.pathname);
		if(bTime) { 
		    after+="?t="+GetTime();
		    after+="&p="+(bPause?"1":"0");
		    after+="&o="+nOd;
        }
	}
	else after=nextURL;
	setParam(params,AR,after);
	if (bDelay) setNextTmp(url1,"_self");
	else jumpTo(url1+paramsToS(params),"_self");
}
var RangeNext="";
var RangeLast="";
var AfterRange="";
var params = new Array;
var nOffsetTime=0;
var nOffsetPause=0;
var nOffsetOdo=0;
function getParamData(){
	RangeNext=getParam(params,NX);
	RangeLast=getParam(params,RL);
	AfterRange=getParam(params,AR);
    nOffsetTime=getTimeOffset();
    nOffsetPause=getPauseOffset();
    nOffsetOdo=getOdoOffset();
}
function getTimeOffset() { 
    str=getParam(params,"t");
    setParam(params,"t",null);
    return ((str=="")?0:str);
}
function getPauseOffset() { 
    str=getParam(params,"p");
    setParam(params,"p",null);
    return ((str=="")?0:str);
}
function getOdoOffset() { 
    str=getParam(params,"o");
    setParam(params,"o",null);
    return ((str=="")?0:str);
}
function clearRange(){
    setParam(params,NX,null);
    setParam(params,RL,null);
    setParam(params,AR,null);
}
function getFName(path){
	var i=path.lastIndexOf('/');
	if (i<=0)i=path.lastIndexOf('\\');
	if(i<0) return path;
	return path.substring(i+1,path.length);
}
function getBase(path) {
	var i=path.indexOf('?');
	if (i>0) path=path.substring(0,i);
    i=path.lastIndexOf('/');
	if (i<=0)i=path.lastIndexOf('\\');
	if(i<0) return "";
	return path.substring(0,i+1);
}
var docbtns = new Array;
docbtns.length = 0;
BTN_TOGGLE=1;
BTN_EXCLUDE=2;
BTN_PUSH=0;
BTN_CHECK=BTN_TOGGLE;
BTN_RADIO=BTN_EXCLUDE;
function Button (PLNm,LNm,name,type,src,srcDn,srcOvr){
	if (isN4){
		l=getElm(PLNm,LNm);
		this.img=(l?l.document.images[0]:null);
	}
	else
		this.img=document.images[name];
	this.name = name;
	this.type = type;
	this.src = src;
	this.srcDn = srcDn;
	this.srcOvr = srcOvr;
	this.state = false;
}
function defBtn (PLNm,LNm,name,type,src,srcDn,srcOvr){
	btn = new Button(PLNm,LNm,name,type,src,srcDn,srcOvr);
	if (defBtn.arguments.length>7){
		btn.exclude = new Array;
		for(var i=7;i<defBtn.arguments.length; i++)
			btn.exclude[i-7]=defBtn.arguments[i];
	}
	docbtns[name]=btn;
}
function btnClick(name){
	var btn=docbtns[name];
	if(btn)
	{
		if (btn.type&BTN_TOGGLE) btn.state=!btn.state;
		else btn.state=true;
		if ((btn.type&BTN_EXCLUDE)&&btn.exclude){
			for(var i=0; i<btn.exclude.length; i++){
				btn2 = docbtns[btn.exclude[i]];
				if (btn2.name!=btn.name){
					btn2.state=false;
					btn2.img.src=btn2.src;
				}
			}
		}
		btn.img.src=(btn.state&&btn.srcDn!="")?btn.srcDn:btn.src;
	}
}
function btnUnclick(name){
	var btn=docbtns[name];
	if(btn)
	{
		if (btn.type&(BTN_TOGGLE|BTN_EXCLUDE))
			btn.img.src=(btn.state&&btn.srcDn!="")?btn.srcDn:btn.src;
		else {
			btn.state=false;
			btn.img.src=btn.src;
		}
	}

}
function btnOver(name){
	var btn=docbtns[name];
	if(btn&&btn.srcOvr!=""&&!btn.state)
		btn.img.src=btn.srcOvr;
}

function showElm(elm,bOn){
	var s=getStyle('',elm);
	if (s) {
		if(isN4){s.visibility=(bOn?"show":"hide");}
		else{s.visibility=(bOn?"visible":"hidden");}
	}
}

var bMaskOn=false;
function clickMask(bOn){
    bMaskOn=bOn;
	showElm(MASKLAYER,bOn);
}
function blockDisplay(bOn){
	showElm(BLOCKLAYER,bOn);
}
SCORE_NONE=314159265;
var SlideScore=SCORE_NONE;
var startTime=0;
var realStartTime=0;
var curTime=0;
var parentFrame=null;
var bTimedSlide=true;
var strPageNm="";
var strPageId="";
var nQ=1;
var nQA=1;
function setScore(n){SlideScore=n;}
function getScore(){ return SlideScore; }
function unloadSlide(){ 
    if(!bDoingJump)killNotes();
	getParent();
    if (parentFrame) {
        if (parentFrame.stopPresSlide) parentFrame.stopPresSlide();
        if (parentFrame.setPresURL) parentFrame.setPresURL("");
    	if (bDoUnload&&parentFrame.CBTData) {
            if(getScore()==SCORE_NONE){nQ=0;setScore(0);}
    		parentFrame.CBTData(strPageId,strPageNm,nQ,nQA,getScore(),getScore(),(curTime-realStartTime-nSTT),(realStartTime+nSTT),curTime,getBase(location.href)+nextURL, getQuestion());
    	}
	}
}
var strNotesURL="";
var bDoSpeakerNotes=false;
var bNotesInWindow=true;
var notesW=null;
function GetNotesURL() { return strNotesURL; }
function loadNotes() {
    if (!bDoSpeakerNotes) return;
    if (parentFrame&&parentFrame.ConfCanLoadNotes) if (!parentFrame.ConfCanLoadNotes()) return;
    if (bNotesInWindow){
        attr='scrollbars=yes,resizable=yes,';
        if(isN4)attr+='left='+window.screenX+',top='+(window.screenY+window.outerHeight)+',width='+window.innerWidth+',height=150';
        else attr+='left=0,top=0,width=320,height=240';
        notesW=open(strNotesURL==''?'about:blank':strNotesURL,'SpeakerNotes',attr);
    }
    else { if (parentFrame&&parentFrame.NotesLoadFrame) parentFrame.NotesLoadFrame();}
}
function killNotes() { 
    if(bNotesInWindow) {if(notesW&&notesW.close)notesW.close();notesW=null;}
}
function sendConfEvent(n,str1,str2,nP1,nP2,nP3) {
	if (parentFrame&&parentFrame.ConfSendEvent)
		parentFrame.ConfSendEvent(n,str1,str2,nP1,nP2,nP3);
}
function doEvent(n,str1,str2,nP1,nP2,nP3) {
    if (n > 100 && window.doAnnotEvent)
        doAnnotEvent(n,str1,str2,nP1,nP2,nP3);
	else {
    	switch (n) {
    	case 1: evGotoURL(false,str1,str2,nP1); break;
    	case 2: evGotoSlide(false,str1,nP1); break;
    	case 3: evControlObj(false,str1,nP1); break;
    	case 4: evPlayRange(false,str1,str2,nP1,nP2,nP3); break;
    	case 5: evPlayMedia(false,str1,nP1,nP2); break;
    	case 6: evJumpTime(false,nP1,nP2,nP3,str1==""?-1:Number(str1)); break;
    	case 7: evPauseSlide(false,nP1,nP2); break;
    	case 8: evUnpauseSlide(false); break;
    	}
    }
}
function evGotoURL(c,url,target,bFinish) {
	if (c) sendConfEvent(1,url,target,bFinish?1:0,0,0);
	if (bFinish) setNextTmp (url,target);
	else jumpTo(url,target);
}
function evGotoSlide(c,url,bFinish) {
	if (c) sendConfEvent(2,url,'',bFinish?1:0,0,0);
	if (bFinish) setNextTmp (url,"_self");
	else jumpTo(url,"_self");
}
function evControlObj (c,name,nAction) {
	if (c) sendConfEvent(3,name,'',nAction,0,0);
	controlObj ('SCL',name,nAction);
}
function evPlayRange (c,sl1,sl2,bFinish,bRestart,bSameTime) {
	if (c) sendConfEvent(4,sl1,sl2,bFinish?1:0,bRestart?1:0,bSameTime?1:0);
	playRange (sl1,sl2,bRestart,bSameTime,bFinish);
}
function evPlayMedia(c, name, v, bReal) {
	if (c) sendConfEvent(5,name,'',v,bReal?1:0,0);
	playMM('SCL',name,v,bReal);
}
function evJumpTime2(c,t,bFinish,p,o) {
    // Convert from Astound 0-32000 time to timeline index
    evJumpTime(c, (Math.floor((t*nDur/MAXTM+nSTT)/nGTStep))*INDEXMUL, bFinish, p, o);
}
function evJumpTime(c,t,bFinish,p,o) {
	if (c) sendConfEvent(6,'','',t,bFinish?1:0,p);
	if (bFinish) setNextTmp ("javascript:jumpToTime("+t+","+p+","+o+");","_self");
	else jumpToTime(t,p,o);
}
function evPauseSlide(c,t,cl) {
	if (c) sendConfEvent(7,'','',t,cl,0);
	pauseSlide(t,cl);
}
function evUnpauseSlide(c) {
	if (c) sendConfEvent(8,'','',0,0,0);
	unpauseSlide();
}
function useFrame(fr,url) {
    sToParams(location.search,params);
    setParam(params,"astredirect",url);
    location.href=fr+paramsToS(params);
}
function GetURL() { return location.href}
function GetTime() { return nTimeIndex*INDEXMUL + nRestart; }
function IsPaused() { return bPause?1:0; }
function Param(n,v) { this.name=n;this.value=v; }
function sToParams(s,p) {
    p.length=0;
    if(!s||s=="") return;
    var i=s.indexOf("?")+1;
    if (i<=0) return;
    var j;
    var bDone=false;
    while (!bDone) {
        j=s.indexOf("&",i); if(j<0) {j=s.length; bDone=true;}
        str=s.substring(i,j);
        k=str.indexOf("="); if(k<0) k=str.length-1;
        pm=new Param(unescape(str.substring(0,k)), unescape(str.substring(k+1,str.length)));
        p[p.length]=pm;
        i=j+1;
    }
}
function paramsToS(p) {
    var s="?";
	var bFirst=true;
    for(var i=0;i<p.length;i++)
        if (p[i].name!="") { s+=(bFirst?"":"&")+escape(p[i].name)+"="+escape(p[i].value); bFirst=false;}
	return (s=="?")?"":s;
}
function getPm(p,name) {
	var pm=null;
    for(var i=0;i<p.length;i++) {
    	if (p[i].name==name) pm=p[i];
    }
   	return pm;
}
function getParam(p,name) {
    pm=getPm(p,name);
    return (pm?pm.value:"");
}
function setParam(p,name,val) {
    pm=getPm(p,name);
    if(pm) {
        if (val) pm.value=val;
        else pm.name="";
    }
    else if (val) { pm = new Param(name,val); p[p.length]=pm; }
}
var nOdo=0;
function getOdo() { return nOdo; }
function setOdo(n) { nOdo = n; }
