/*
::::::::::::::::::::::::::::::::::::: ANIM 2.1 ::::::::::::::::::::::::::::::::::::::::::
Note: name animation layers as   NAME + 'Layer' (eg. imgLayer)
The script would recognize imgLayer as 'img' 
This animation script written by David Do and may be copied for private use 
*/
frameRate=20;
objArray=new Array();
objAnimOn=new Array();
animZ=new Array();
goAnim();


function inArray(str1,array1) {for (var i=0;i<array1.length;i++) {if (array1[i]==str1) {return i}}; return -1}

function animCheck(obj1) { 
  var ind1=inArray(obj1,objArray);
  if (ind1==-1) { 
    objArray.push (obj1);
		eval(obj1+'Obj=document.getElementById("'+obj1+'Layer")');
		ind1=inArray(obj1,objArray);
		eval('animX'+ind1+'=new Array()'); eval('animY'+ind1+'=new Array()');
  }
	return ind1;	
}

function anim(obj1,xpos1,ypos1,time1,mod1) {
	var ind1=animCheck(obj1);
  objAnimOn[ind1]=true;
 	arrayLen=eval('animX'+ind1).length;
	if (arrayLen!=0&&mod1.indexOf("app")!=-1) { //Add to the list
  	xpos0=eval('animX'+ind1+'[arrayLen-1]'); ypos0=eval('animY'+ind1+'[arrayLen-1]');
	} else { //overwrite list
  	eval('animX'+ind1+'=new Array()'); eval('animY'+ind1+'=new Array()');
		with (eval(obj1+"Layer.style")) { xpos0=parseInt(left); ypos0=parseInt(top); }
	}
	if (mod1.indexOf("rel")!=-1) {xpos1+=xpos0;ypos1+=ypos0}
	var fr1=(time1==0)?1:Math.ceil(frameRate*time1);
		
  var deltax=(xpos1-xpos0)/fr1; deltay=(ypos1-ypos0)/fr1;	//linear
  for (i=0;i<fr1;i++) {
		eval('animX'+ind1).push(  Math.floor(xpos0+deltax*(i+1))  )
  	eval('animY'+ind1).push(  Math.floor(ypos0+deltay*(i+1))  )
  }
}

function runScript(script1,time1) { var fr1=(time1==0)?1:Math.ceil(frameRate*time1); while (animZ.length<fr1) { animZ.push(''); };	animZ[fr1-1]+=script1+';';	}

function goAnim() {
	setTimeout("goAnim()",1000/frameRate);
	for (i=0;i<objArray.length;i++) {
		if (objAnimOn[i]) {
			eval('arrayLen1=animX'+i+'.length');
			if (arrayLen1>0) {
				eval(objArray[i]+'Obj.style.left=animX'+i+'.shift()');
				eval(objArray[i]+'Obj.style.top=animY'+i+'.shift()');
			}
			if (arrayLen1<=1) {objAnimOn[i]=false}
		}
	}
	if (animZ.length>0) {  eval(animZ.shift()); }
}

function setOpacity(lyr1,pctOpaq) {	with (eval(lyr1+'Layer.style')) {	opacity=(Math.floor(pctOpaq)/100); filter=('alpha(opacity='+Math.floor(pctOpaq)+')');	} } 

function fade(lyr1,pct0,pct1,time1) {

	var fr1=(time1==0)?1:Math.ceil(frameRate*time1);
	for( var i =0; i<fr1; i++) {
		if (animZ[i]==undefined) {animZ[i]=''};
		animZ[i]+=('setOpacity(  "'+lyr1+'",'+Math.floor(  (pct1-pct0) / fr1 * (i+1) + pct0)+');'   )
	}
}