// JScript source code

var Arrow                               // object of span with arrow
var Link                                // object of tag <A> (link)
var Tabs = new Array("News","Service","Multimedia","Succes","Magazin"); // Array of Tab's IDes
var Conditions = new Array(1,0,0,0,1); // Array of Tab's Conditions ( 1 - maximized, 0 - minimized )
var IdTermination = "Content";
var ArrowIdTermination = "Arrow";
var template = "<a href=\"#\" class=\"local\" onclick=\"return develop('#ID#')\"><span id=\"#ID#"+ArrowIdTermination+"\"></span> #NAME#</a>";

var TabObject = new Array();            // Array of objects

var winScroll = 1;                      // If you don't need to scroll window Set variable with "0" either Set "1"

var Down_Arrow = "&darr; ";             // You may use HTML tags
var Up_Arrow = "&uarr; ";               // You may use HTML tags
var MarginTop = -35;                    // ... (-35) - this is distane from top of tab
var Height = 200;                       // Container's Height in Minimized condition 
var ContaienersFullHeight;              // Container's Height in Maximized condition 
var ContaienersPaddingBottom = 100;      // Container's padding in Maximized condition 
var Step = 25;                          // develop steps ( in pixels )
var steps;                              // cantity of steps
var WStep = 15;                         // Window scroll steps ( in pixels )
var Wsteps                              // cantity of steps for Window scroll
var step_counter = 0;                   // counter for Container enlarge steps
var counter = 0;                        // counter for Window Scroll steps
var Delay = 0;                          // develop step delay
var currentY = 0;                       //
var Distance;                           //
var timer = null;                       //
var Wtimer = null;                      //

    function start()
    {

            isDOM=document.getElementById; //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
            isMSIE=document.all && document.all.item; //Microsoft Internet Explorer 4+
            isOpera=window.opera; //Opera
            isMSIE5=isDOM && isMSIE && !isOpera; //MSIE 5+
            
            //if (isMSIE5)    {   Step += 10; }
            if (isOpera)    {   Step += 5;  }

        //var str = "";
        Step = em(Step); Height = em(Height); ContaienersPaddingBottom = em(ContaienersPaddingBottom);
        
        for (var i=0; i< Tabs.length-1; i++)
        {
            if ( TabObject[Tabs[i]] = document.getElementById(Tabs[i]) ) 
            {
                TabObject[Tabs[i]+"MT"] = -40; // 40 is a height of TabTitle 
                TabObject[Tabs[i]+IdTermination] = document.getElementById(Tabs[i]+IdTermination)
                TabObject[Tabs[i]+IdTermination+"FH"] = em(TabObject[Tabs[i]+IdTermination].offsetHeight)+ContaienersPaddingBottom; // Tab's height in enlarged mode
                TabObject[Tabs[i]].style.marginBottom = "-20px";
  //                      alert( em(TabObject[Tabs[i]+IdTermination].offsetHeight) );
                if ( TabObject[Tabs[i]+IdTermination+"FH"]-ContaienersPaddingBottom >= Height )
                {
                    
                    modifyH1(Tabs[i]);
                    TabObject[Tabs[i]+ArrowIdTermination] = document.getElementById(Tabs[i]+ArrowIdTermination);
                    
                    if ( Conditions[i] )
                    {
                        TabObject[Tabs[i]+IdTermination].style.height = TabObject[Tabs[i]+IdTermination+"FH"]+"em";
                        TabObject[Tabs[i]+ArrowIdTermination].innerHTML = Up_Arrow;
                    }
                    else{
                            TabObject[Tabs[i]+IdTermination].style.height = Height+"em";
                            TabObject[Tabs[i]+ArrowIdTermination].innerHTML = Down_Arrow;
						}
                }
                else{
                        TabObject[Tabs[i]+IdTermination].style.height = TabObject[Tabs[i]+IdTermination+"FH"]+"em";
                    }
                
                //str += Tabs[i]+IdTermination+"FH = "+TabObject[Tabs[i]+IdTermination+"FH"]+"\n";
            }
            
        }
        //alert(str);
    }

            function modifyH1(id)
            {
               var H1 = document.getElementById(id+"Title");
               var tabName = H1.innerHTML;
               var str = template;
               str = str.replace(/#ID#/,id);
               str = str.replace(/#ID#/,id);
               str = str.replace(/#NAME#/,tabName);
               //alert(b+"\n"+str);
               H1.innerHTML = str;
            }


    
    function em(px)
    { 
        var result = (px/14).toString();
        var ind = result.indexOf(".")+2;
        if(ind>1){
            result = result.substr(0,ind);
        }
        return parseFloat( result );
    }
        
    function number(str,unit)
    { 
       result = (unit) ? parseFloat( str.replace(unit,"") ) : parseFloat(str);
       return result; 
    }
        
    function develop(id)
    {
        steps = Math.ceil( (TabObject[id+IdTermination+"FH"] - Height) / Step ); 

        //alert(number(TabObject[id+IdTermination].style.height, "em")+" <= "+number(Height,0));
        //alert(number("123.333em","em"));
                
        if ( number(TabObject[id+IdTermination].style.height, "em") <= number(Height,0) )
        {
            
            if (winScroll)
            {       
                    if ( TabObject[id+"MT"] < 0 )
                    {
                            // What is tab's margin from Top ?
                            elem = TabObject[id];
                            while (elem)
                            {
	                            TabObject[id+"MT"] += elem.offsetTop;
	                            elem = elem.offsetParent;
                            }
                    }
                    // Let's calculate if we need to Scroll the window
                    Distance = (window.scrollY) ? TabObject[id+"MT"] - window.scrollY : TabObject[id+"MT"]-document.body.scrollTop;
                    //alert(Distance);
                    if ( Distance>10 && Distance >= WStep )
                    {
                        Wsteps = Math.ceil( Distance/WStep + Math.pow(10,-8) ) - 1;
                        //alert("Distance = "+Distance+", Wsteps = "+Wsteps+"  "+Math.pow(10,-8) );
                        currentY = (window.scrollY) ? window.scrollY : document.body.scrollTop;
                        windowScroll(id, WStep, Delay);
                    }
                    else{
                            stopTimer();
                            maximize(id, Step, Delay);
                        }
             
             }
             else
                 {
                      stopTimer();
                      maximize(id, Step, Delay); 
                 }
                 
                 
        }
        else
            {
                stopTimer();
                minimize(id, Step, Delay);
            }
        
        return false;
    }
    
   
    function windowScroll(id,x,delay)
    {
        

        currentY += x;
        window.scroll(0,currentY);
        counter++;
        
        if (counter == Wsteps)
        { 
            if(Wtimer) clearTimeout(Wtimer); Wtimer = null; counter = 0;

            stopTimer();
            maximize(id, Step, Delay);

        }
        else{
                Wtimer = setTimeout("windowScroll('"+id+"',"+x+","+delay+")", delay);
            }
        
    }
    
    function maximize(id, x, delay)
    {
        var y = TabObject[id+IdTermination].style.height;
        y = parseFloat( y.replace(/em/, "") );
        //alert(y);
        TabObject[id+IdTermination].style.height = (y + x)+'em';
        step_counter++;
        if (step_counter == steps)
        {
            //TabObject[id+IdTermination].style.height = "none";
            //alert(TabObject[id+IdTermination].style.height);
            stopTimer();
            changeArrow(id);
        }
        else{
                timer = setTimeout("maximize('"+id+"', "+x+", "+delay+")", delay);
            }
    }
    
    function minimize(id, x, delay)
    {
        var y = TabObject[id+IdTermination].style.height;
        y = parseFloat( y.replace(/em/, "") );
        TabObject[id+IdTermination].style.height = (y - x)+'em';
        step_counter++;
        
        if (step_counter == steps)
        {
            stopTimer();
            changeArrow(id);
        }
        else{
                timer = setTimeout("minimize('"+id+"', "+x+", "+delay+")", delay);
            }
    }
    
    function stopTimer() 
    { 
        if(timer) clearTimeout(timer); timer = null; step_counter = 0;
    }    
    
    function changeArrow(id) 
    { 
        if ( number(TabObject[id+IdTermination].style.height, "em") > number(Height,0) )
            { TabObject[id+ArrowIdTermination].innerHTML = Up_Arrow; }
            
        else{ TabObject[id+ArrowIdTermination].innerHTML = Down_Arrow; }
    }
    
