      var openMenu=0;

      function toggleMenu(id)
      {
        var obj=document.getElementById('submenu_'+id);
        if (obj)
        {
          if (obj.style.display=='none'||!obj.style.display)
          {
            if (openMenu!=0) document.getElementById('submenu_'+openMenu).style.display='none';
            obj.style.display='block';
            openMenu=id;
          }
          else
          {
            obj.style.display='none';
            openMenu=0;
          }
        }
      }

 		var faders=new Array();
    var startDelay=500; 	// delay between different faders start
		var fadeDelay=[2000, 2000];		// fading phase delay per fader
		var stepDelay=50;			// fade step delay
		var fadeStep=10;			// fade step increase
		var maxFaders=1;			// max fader count to search for

    var fheights=new Array(0, 0);

    function changeOpacity(id, opacity)
    {
      var object=document.getElementById(id);
      if (object) // object exists, do opacity change
      {
        object=object.style;
        if (opacity>0) object.visibility="visible"; else object.visibility="hidden";
				if (opacity>100) opacity=100;
        object.opacity=(opacity/100);
        object.MozOpacity=(opacity/100);
        object.KhtmlOpacity=(opacity/100);
        object.filter="alpha(opacity="+opacity+")";
      }
    }

    function doFade(idx) // optional second argument will force the action parameter
		{
  		var div1='fade_'+idx+'_'+faders[idx][1];
	  	var div2='fade_'+idx+'_'+faders[idx][2];
			var arg=(arguments.length>1)?arguments[1]:-1;
			if (arg!=-1)
			{
			  faders[idx][4]=arg;
				if (arg==0) // there is STOP action, so restore previous div at 100% opacity
				{
					clearTimeout(faders[idx][5]); // cancel timeout set for this fader
					faders[idx][3]=0; // reset fade step
					changeOpacity(div1, 100); // change divs opacity
					if (div1!=div2) changeOpacity(div2, 0);
				}
				else if (arg==1)
				{
					if (faders[idx][0]>0) faders[idx][5]=setTimeout('doFade('+idx+')', parseInt(fadeDelay[idx]/2, 10)); // schedule next fade after a half of fade delay
				}
			}
			if (faders[idx][4]==1 && arg!=1) // fading is allowed
			{
				if (faders[idx][2]!=faders[idx][1]) changeOpacity(div1, 100-faders[idx][3]); // fade out current div
				changeOpacity(div2, faders[idx][3]); // there is more than one div, so fade in next div
				if (faders[idx][3]>=100) // fading completed; change divs
				{
					faders[idx][3]=0; // reset fade step
					if (faders[idx][0]>0) // there is more than one div
					{
						faders[idx][1]=faders[idx][2]; // next div becomes current
						faders[idx][2]++; // increase/fix next div
						if (faders[idx][2]>faders[idx][0]) faders[idx][2]=0;
						faders[idx][5]=setTimeout('doFade('+idx+')', fadeDelay[idx]);  // schedule next fading cycle
					}
				}
				else
				{
					faders[idx][3]+=fadeStep; // increase fade step
					faders[idx][5]=setTimeout('doFade('+idx+')', stepDelay); //schedule next fade step
				}
			}
		}

    function fixHeights()
    {
      var nb=document.getElementById('news-block');
      if (nb)
      {
        nb.style.height=fheights[0];
        nb.style.visibility='visible';
      }
      document.getElementById('market-block').style.height=fheights[1];
      document.getElementById('market-block').style.visibility='visible';
    }

    function startFaders()
		{
			var f=0;
			var i=0;
			var delay=0;
      var maxHeight=0;
			for (f=0; f<=maxFaders; f++) // find avaliable divs for fading
			{
  			i=0;
				faders[f]=new Array(-1, -1, -1, 0, 0, -1);	// Indexes: 0-max divs, 1-current div, 2-next div, 3-fade step, 4-in action, 5-setTimeout index
				while(document.getElementById('fade_'+f+'_'+i))
				{
					faders[f][0]=i;
					faders[f][1]=0;
					faders[f][2]=0;
					faders[f][4]=1;
          maxHeight=document.getElementById('fade_'+f+'_'+i).offsetHeight+32;
          if (fheights[f]<maxHeight) fheights[f]=maxHeight;
					i++;
				}
			}

//      fixHeights();

			for (f=0; f<=maxFaders; f++) // start/schedule fading cycles
			{
				if (f>0)
				{
					if (faders[f][0]>-1)
					{
						delay++;
				    setTimeout('doFade('+f+')', (delay*startDelay)+10);
					}
				}
				else setTimeout('doFade('+f+')', (delay*startDelay)+10);
			}
		}


