var startAlpha=100;
var minAlpha=60;
var maxAlpha=100;
var zonePrefix='OBLAST';
var deltaAlpha=6;
var deltaAlphaUndo=4;
var pauseAlpha=4;
var pauseoutId;
var timeoutId;
var canAlphe=false;
var tm1;
var tm2;
var wrk=false;
var sumTm=0;
var qntTm=0;

function alphingOn(zone)
{
	if(!canAlphe)return;
var nozones=true;
for(var j=1; j<alphingOn.arguments.length;j++)
{
	i=alphingOn.arguments[j];
var alpha=eval(i).filters.item("alpha").opacity;
var zoneover=false;
if(i==zone)
{
	if(alpha<maxAlpha)eval(i).filters.item("alpha").opacity+=deltaAlpha;
else zoneover=true;
}
else
{
	if(alpha>minAlpha)eval(i).filters.item("alpha").opacity-=deltaAlpha;
else zoneover=true;
}
nozones=nozones&&zoneover;
}
if(nozones)clearInterval(timeoutId);
/*qntTm++;if(nozones){clearInterval(timeoutId);wrk=false;tm2=new Date();sumTm=tm2.getTime()-tm1.getTime();alert(sumTm/qntTm);}*/
}

function alphingOff(zone)
{
	if(!canAlphe)return;
var nozones=true;
for(var j=1;j<alphingOff.arguments.length;j++)
{
	i=alphingOff.arguments[j];
var zoneover=false;
var alpha=eval(i).filters.item("alpha").opacity;
var dA=(alpha<startAlpha)?deltaAlphaUndo:-deltaAlphaUndo;
if(Math.abs(alpha-startAlpha)>deltaAlpha)eval(i).filters.item("alpha").opacity+=dA;
else if(alpha!=startAlpha)eval(i).filters.item('alpha').opacity+=startAlpha-alpha;
else zoneover=true;
nozones=nozones&&zoneover;
}
if(nozones)clearInterval(timeoutId);
/*qntTm++;if(nozones){clearInterval(timeoutId);wrk=false;tm2=new Date();sumTm=tm2.getTime()-tm1.getTime();alert(sumTm/qntTm);}*/
}

function zoneOver(zone)
{
	clearInterval(pauseoutId);
clearInterval(timeoutId);
var zones="";
for(var i in document.all)if(i.indexOf(zonePrefix)==0)zones=zones+",'"+i+"'";
timeoutId=setInterval("alphingOn('"+zone+"'"+zones+")",pauseAlpha);
}

function zoneOutNow(zone)
{
	clearInterval(pauseoutId);
clearInterval(timeoutId);
var zones="";
for(var i in document.all)if(i.indexOf(zonePrefix)==0)zones=zones+",'"+i+"'";
timeoutId=setInterval("alphingOff('"+zone+"'"+zones+")",pauseAlpha);
}

function zoneOut(zone)
{
	clearInterval(pauseoutId);
pauseoutId=setInterval("zoneOutNow('"+zone+"')",10);
}
