/*  DHTML Effects Processor by Damien 02/14/06  */
//features:
fx_null=0;
fx_loop=1;
fx_slidein=2;
fx_slideout=4;

fx_tmr = 33

browser="";bver=0;
nav=String(navigator.userAgent).toLowerCase();
platform = navigator.platform;
if (nav.indexOf("msie")!=-1)	{browser="ie"}
if (nav.indexOf("firefox")!=-1)	{browser="ff"}
if (nav.indexOf("safari")!=-1)	{browser="safari"}
if (nav.indexOf("opera")!=-1)	{browser="opera"}
if (nav.indexOf("msie 7.0")!=-1){bver=7}
if (nav.indexOf("msie 6.0")!=-1){bver=6}
if (nav.indexOf("msie 5.5")!=-1){bver=5.5}
if (nav.indexOf("msie 5.0")!=-1){bver=5}

fxarray=new Array();fxmarray=new Array();
fxtmr=0;fxinproc=0;fxcommand=0;objidx=0;
function fx() {

	objects=testid(arguments[0]);
	if (objects==undefined){return}
	steps=parseInt(arguments[1],10);
	features=parseInt(arguments[2],10);if(arguments[2]==true){features=1};
	notifyfunc=arguments[3];
	stepidx=steps;
	newfx=objects+"|"+steps+"|"+stepidx+"|"+features+"|"+notifyfunc;
	saveargs="";

	for(argi=4;argi<arguments.length;argi++) {
		saveargs+=",'"+arguments[argi]+"'";
		newtype="";
		if(String(arguments[argi]).indexOf("null")!=-1){return}
		if(String(arguments[argi]).toLowerCase().indexOf("color")!=-1){newtype="#"}
		arguments[argi]=String(arguments[argi]).replace(/\#/g,"").replace(/px/g,"");
		sargs=arguments[argi].split(",");
		if(newtype=="#") {newfx+="|"+sargs[0]+","+getdec(sargs[1].substr(0,2))+","+getdec(sargs[1].substr(2,2))+","+getdec(sargs[1].substr(4,2))+","+((getdec(sargs[2].substr(0,2))-getdec(sargs[1].substr(0,2)))/steps)+","+((getdec(sargs[2].substr(2,2))-getdec(sargs[1].substr(2,2)))/steps)+","+((getdec(sargs[2].substr(4,2))-getdec(sargs[1].substr(4,2)))/steps);continue}
		if((features&2)==2){sarg1=0}else{sarg1=sargs[1]}
		newfx+="|"+sargs[0]+","+sarg1+","+String((parseFloat(sargs[2])-parseFloat(sargs[1]))/steps)+","+sargs[1];continue;
	}
	fxidx=-1;
	for(i=0;i<fxarray.length;i++){if (fxarray[i].split("|")[0]==objects){fxidx = i}}
	if(fxinproc==1){thisargs="'"+objects+"',"+steps+","+features+",'"+notifyfunc+"'"+saveargs;eval('setTimeout("fx('+thisargs+')",1)');return}
	if(steps>0){if(fxidx==-1){fxarray.push(newfx)}else{fxarray[fxidx]=newfx}}
	if((fxarray.length>0)&&(fxtmr==0)){fxtmr=setTimeout("fxproc()",1)}
}

function fxproc() {
fxinproc=1;
for (i=0;i<fxarray.length;i++) {
	fxa=fxarray[i].split("|");
	fx_objs=String(fxa[0]);
	fx_totalsteps=parseInt(fxa[1],10);
	fx_stepidx=parseInt(fxa[2],10);
	fx_feature=parseInt(fxa[3],10);
	fx_notifyfunc=String(fxa[4]);
	fx_stepidx=fx_stepidx-1;
	
//dg("test").innerHTML += fxarray.join("<br/>")+"<hr/>"

	if (fx_stepidx<0) {
		if ((fx_feature&1)==0) {
			nulval=fxarray.splice(i,1);
			i--;
			eval(fx_notifyfunc);
			continue;
		}else{
			fx_stepidx=fx_totalsteps-1;
			newfx=fx_objs+"|"+fx_totalsteps+"|"+fx_stepidx+"|"+fx_feature+"|"+fx_notifyfunc;
			for (argi=5;argi<fxa.length;argi++) {
				if (fxa[argi].indexOf("null")!=-1){break;continue}
				sarg=fxa[argi].split(",");
				if (sarg[0].toLowerCase().indexOf('color')!=-1) {
					newarg=sarg[0]+","+parseFloat(sarg[1])+","+parseFloat(sarg[2])+","+parseFloat(sarg[3])+","+(-parseFloat(sarg[4]))+","+(-parseFloat(sarg[5]))+","+(-parseFloat(sarg[6]));
				} else {
					newarg=sarg[0]+","+(parseFloat(sarg[1])+(-parseFloat(sarg[2])))+","+(-parseFloat(sarg[2]))+","+sarg[3];
				}
				newfx+="|"+newarg;
			}
			fxarray[i]=newfx;
			fxa=newfx.split("|");
		}
	}
	newfx = fx_objs+"|"+fx_totalsteps+"|"+fx_stepidx+"|"+fx_feature+"|"+fx_notifyfunc;

	for (argi=5;argi<fxa.length;argi++) {
		if(fxa[argi].indexOf("null")!=-1){break;continue}
		newarg="";
		sarg=fxa[argi].split(",");
		if (sarg[0].toLowerCase().indexOf('color')!=-1) {
			newarg=sarg[0]+","+(parseFloat(sarg[1])+parseFloat(sarg[4]))+","+(parseFloat(sarg[2])+parseFloat(sarg[5]))+","+(parseFloat(sarg[3])+parseFloat(sarg[6]))+","+sarg[4]+","+sarg[5]+","+sarg[6];
			sarg=newarg.split(",");
			eval("try{dg(fx_objs).style."+sarg[0]+"='#"+gethex(Math.round(sarg[1]))+gethex(Math.round(sarg[2]))+gethex(Math.round(sarg[3]))+"'}catch(e){}");
		} else {
			if ((fx_feature&2)==2) {
				deg = parseFloat(sarg[1]);
				if (parseFloat(sarg[2],10)<0) {deg=deg+(90/fx_totalsteps)}else{deg=deg-(90/fx_totalsteps)}
				newarg=sarg[0]+","+String(deg)+","+sarg[2]+","+sarg[3];
			} else {
				newarg=sarg[0]+","+(parseFloat(sarg[1])+parseFloat(sarg[2]))+","+sarg[2]+","+sarg[3]
			}
			sarg = newarg.split(",");
			if (sarg[0]=="opacity") {
				if ((fx_feature&2)==2) {
					radians=parseFloat(sarg[1])*(0.0174532925);
					sineval=Math.sin(radians)*(fx_totalsteps*parseFloat(sarg[2]));
					if(parseFloat(sarg[2])>0){sineval=parseInt(sarg[3],10)-sineval}else{sineval=parseInt(sarg[3],10)+sineval}
					setopacity(fx_objs,Math.abs(Math.round(sineval)));
				} else {
					setopacity(fx_objs,Math.abs(Math.round(parseFloat(sarg[1]))));
				}
			} else {
				if ((fx_feature&2)==2) {
					radians=parseFloat(sarg[1])*(0.0174532925);
					sineval=Math.sin(radians)*(fx_totalsteps*parseFloat(sarg[2]));
					if(parseFloat(sarg[2])>0){sineval=parseInt(sarg[3],10)-sineval}else{sineval=parseInt(sarg[3],10)+sineval}
					try{eval("dg(fx_objs).style."+sarg[0]+"='"+Math.round(sineval)+"px'")}catch(e){}
				} else {					
					try{eval("dg(fx_objs).style."+sarg[0]+"='"+String(Math.round(sarg[1]))+"px';")}catch(e){}
				}
			}
		}
		newfx+= "|"+newarg;
	}
	fxarray[i]=newfx;
}
if (fxarray.length>0) {fxtmr = setTimeout("fxproc()",fx_tmr)}else{fxtmr=0}
fxinproc=0;
}

function setopacity(elementid,opacity) {
try{
	if ((browser=="ie")&&(platform=="Win32")){
		thisfilter=String(dg(elementid).style.filter);
		thisfilter = thisfilter.replace(/alpha\(opacity\=.*?\)/g,"");
		thisfilter=thisfilter.replace(/\s/g,"");
		dg(elementid).style.filter=thisfilter+" alpha(opacity="+parseInt(Math.round((opacity)),10)+")";
		return
	};
	if ((browser=="ie")&&(platform=="mac")){return};
	if (browser=="safari"){dg(elementid).style.opacity=(opacity/100)+"";return};
	if (browser=="ff"){if(opacity>99){opacity=99};dg(elementid).style.MozOpacity=(opacity/100);return};
	if (browser=="opera") {dg(elementid).style.opacity = String((opacity/100)).replace(/0\./g,".");return}
	
}catch(e){}
}
function testid(thisid) {if(thisid==undefined){return undefined};try {returnid = String(dg(thisid).id)} catch(e) {if (String(thisid.id)=="") {returnid=String("dhtmlobj"+objidx);thisid.id=returnid;objidx++} else {returnid = thisid.id}};return returnid}
function fixpng() {if ((browser=="ie")&&(bver<7)) {if (event.srcElement.src.indexOf("spacer.gif")!=-1) {return};event.srcElement.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+event.srcElement.src+"', sizingMethod='image')";event.srcElement.src="img/spacer.gif"}}
function fxm(thisobj,fxmidx) {eval("fx('"+testid(thisobj)+"',"+fxmarray[fxmidx]+")")}
function dg(thisid) {try{return document.getElementById(thisid)}catch(e){return null}}
function gethex(decnum) {hex="0123456789ABCDEF";return hex.substr(decnum/16,1)+hex.substr((decnum&15),1)}
function getdec(hexnum) {hex="0123456789ABCDEF";return parseInt(hex.indexOf(hexnum.toUpperCase().substr(0,1))*16)  +  parseInt(hex.indexOf(hexnum.toUpperCase().substr(1,1)))     }


