/********************************************************************
    Fisier:   
        index.js
    Biblioteci utilizate:
        jquery-1.3.2.min.js     (jQuery library)
        jquery.easing.1.2.js    (jQuery library plugin)
      
*********************************************************************/


var $zz = jQuery.noConflict();



/**************************
       COD SLIDER MENU
**************************/

var ACCORDION_HEIGHT = 296;
var ACCORDION_DRAW_ASIDE_HEIGHT = 30;
var ACCORDION_EASING_METHOD = "easeOutCirc";
var ACCORDION_SLIDE_TIME = 500;
var g_slidedDivs2 = null;
var g_hoveredSlideIndex2 = null;
function setupAccordionImageSlider2()
{
    $zz("#accordionContainer2").find(".accordionImgDiv2:first").css("border-top", "0px");
    
    var slidedDivsList = $zz("#accordionContainer2 .accordionImgDiv2");
    g_slidedDivs2 = new Array;
    var firstDiv = $zz("#accordionContainer2 .accordionImgDiv2:first");
    for(var i = 0; i < slidedDivsList.length; i++)
    {
        var obj = new Object(); 
        obj.name = "#" + $zz(firstDiv).attr('id'); 
        obj.dest = 0;
        obj.out = 0;
        g_slidedDivs2.push(obj); 

        firstDiv = $zz(firstDiv).next(".accordionImgDiv2");
    }
                 
    var ribOutHeight = 0;
    ribOutHeight = ACCORDION_HEIGHT / g_slidedDivs2.length;
    
    for(var i = 0; i < g_slidedDivs2.length; i++)
    {
        $zz(g_slidedDivs2[i].name).css("margin-top", (i*ribOutHeight)+"px");
        g_slidedDivs2[i].dest = i*ribOutHeight;
    }

    $zz("#accordionContainer2").hover(
        function()
        {   
            if(true == g_sliderAutoPlay2)
            {
                clearTimeout(g_sliderTimerAutoPlay2);
            }
            if(g_loadedStripCount2 < g_slidedDivs2.length)
            {
                return;
            }            
            $zz("#accordionContainer2 .accordionImgDiv2").find(".slideDesc2").stop().animate({opacity: 0.0}, 50);
        },
        function()
        {   
            if(g_loadedStripCount2 < g_slidedDivs2.length)
            {
                return;
            }
            
            mouseOutAccor2OnAll2(null);        
            for(var i = 0; i < g_slidedDivs2.length; i++)
            {
                $zz(g_slidedDivs2[i].name).stop()
                    .animate({marginTop: (i*ribOutHeight)+"px"}, {duration: 900, easing: ACCORDION_EASING_METHOD});
                g_slidedDivs2[i].dest = i*ribOutHeight;
                $zz(g_slidedDivs2[i].name).find(".slideDesc2").stop().animate({opacity: 1.0}, 1200);
            }
            if(true == g_sliderAutoPlay2)
            {
                clearTimeout(g_sliderTimerAutoPlay2);
                mouseOutAccor2OnAll2(null);
                g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2);
            }
        }
    );                                                    

    $zz(".accordionImgDiv2").hover(
        function()
        {   
            if(true == g_sliderAutoPlay2)
            {
                clearTimeout(g_sliderTimerAutoPlay2);
            }        
            if(g_loadedStripCount2 < g_slidedDivs2.length)
            {
                return;
            }        
        
            var divID = ("#" + $zz(this).attr('id'));
            mouseOutAccor2OnAll2(divID);

            g_hoveredSlideIndex2 = $zz("#accordionContainer2 .accordionImgDiv2").index(this);    
            
            var context = $zz(this)[0];
            $zz(".accordionSlideImage2", context).find("img").stop().animate({opacity: 1.0}, 400); 
            $zz(".accordionDescBack", context).stop().animate({bottom: 0, opacity: 0.8}, 1000);
            $zz(".accordionDesc", context).stop().animate({bottom: 0, opacity: 1.0}, 1000);
            $zz(".slideStrip2", context).stop().animate({opacity: 0.0}, 200, ACCORDION_EASING_METHOD); 
            
            g_slidedDivs2[g_hoveredSlideIndex2].out = 0;
            setMoveForAccordionDivs2(g_hoveredSlideIndex2);
        }, 
        function()
        {
            if(g_loadedStripCount2 < g_slidedDivs2.length)
            {
                return;
            }        
        
            g_hoveredSlideIndex2 = null;
            
            var divID = ("#" + $zz(this).attr('id'));
            var index = 0;
            for(var i = 0; i < g_slidedDivs2.length; i++)
            {
                if(divID == g_slidedDivs2[i].name)
                {        
                    index = i;
                    break;
                }
            }
            
            if(g_slidedDivs2[index].out != 1)
            {
                g_slidedDivs2[index].out = 1;            
                mouseOutAccor2(this);
            }
        }
    );
}

function setMoveForAccordionDivs2(index)
{
    for(var i = 0; i < g_slidedDivs2.length; i++)
    {
        var context = $zz(g_slidedDivs2[i].name)[0];
        var object = $zz(g_slidedDivs2[i].name);
        $zz(".slideDesc2", context).stop().animate({opacity: 0.0}, 150);
        if(i < index)
        {
            var newMargin = (i*ACCORDION_DRAW_ASIDE_HEIGHT);
            if(g_slidedDivs2[i].dest != newMargin)
            {
                object.stop();
                var animTime = ACCORDION_SLIDE_TIME;
                g_slidedDivs2[i].dest = newMargin;
                object.animate(
                    {marginTop: newMargin+"px"}, 
                    {duration: animTime, easing: ACCORDION_EASING_METHOD});
            }
            continue;
        }
        if(index == i)
        {
            var newMargin = (i*ACCORDION_DRAW_ASIDE_HEIGHT);
            if(g_slidedDivs2[i].dest != newMargin) 
            {   
                object.stop();
                var animTime = ACCORDION_SLIDE_TIME;
                g_slidedDivs2[i].dest = newMargin;
                object.animate(
                    {marginTop: newMargin+"px"}, 
                    {duration: animTime, easing: ACCORDION_EASING_METHOD});
            }
            continue;
        }
        if(i > index)
        {
            var newMargin = (ACCORDION_HEIGHT - ((g_slidedDivs2.length - i) * ACCORDION_DRAW_ASIDE_HEIGHT));
            if(g_slidedDivs2[i].dest != newMargin) 
            {   
                object.stop();
                var animTime = ACCORDION_SLIDE_TIME;
                g_slidedDivs2[i].dest = newMargin;
                object.animate({"marginTop": newMargin+"px"}, {duration: animTime,
                    easing: ACCORDION_EASING_METHOD});
            }
            continue;
        }
    }
} 


var g_actualSlideImage2 = 0;
var g_sliderTimerAutoPlay2 = null;
var g_sliderTimerInterval2 = 4500;
var g_sliderAutoPlay2 = true;
var g_sliderNewLoop2 = false;
var g_setBackwardBtnOnLast2 = false;

function accordionPlay2()
{
    if(g_loadedStripCount2 < g_slidedDivs2.length)
    {
        if(true == g_sliderAutoPlay2)
        {
            g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2);
        }      
        return;
    }      

    var timeOut = g_sliderTimerInterval2;
 
    if(BACKWARD == g_lastSlideMoveDirection)
    {
        g_actualSlideImage2++;
        if(g_actualSlideImage2 >= g_slidedDivs2.length)
        {
            g_actualSlideImage2 = 0;
            g_sliderNewLoop2 = true;
        } 
    }
    g_lastSlideMoveDirection = FORWARD;
    
    g_setBackwardBtnOnLast2 = false;
    if(true == g_sliderNewLoop2)
    {
        ribOutHeight = ACCORDION_HEIGHT / g_slidedDivs2.length;
        mouseOutAccor2OnAll2(null);
       
        for(var i = 0; i < g_slidedDivs2.length; i++)
        {
            $zz(g_slidedDivs2[i].name).stop()
                .animate({marginTop: (i*ribOutHeight)+"px"}, {duration: 900, easing: ACCORDION_EASING_METHOD});
            g_slidedDivs2[i].dest = i*ribOutHeight;
            $zz(g_slidedDivs2[i].name).find(".slideDesc2").stop().animate({opacity: 1.0}, 2000); 
        }
        timeOut = g_sliderTimerInterval2 * 2;
        g_sliderNewLoop2 = false;
        g_setBackwardBtnOnLast2 = true;
        g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, timeOut); 
        return;
    }
    
    mouseOutAccor2OnAll2(null); 
    mouseOnAccor2(g_slidedDivs2[g_actualSlideImage2].name);
    
    g_actualSlideImage2++;
    if(g_actualSlideImage2 >= g_slidedDivs2.length)
    {
        g_actualSlideImage2 = 0;
        g_sliderNewLoop2 = true;   
    }
    
    if(true == g_sliderAutoPlay2)
    {
        g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2);
    }      
    
} 

function setupAccordionAutoPlay2()
{
    if(true == g_sliderAutoPlay2)
    {
        g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2);
    }
} 

function mouseOnAccor2(_this)
{
    var index = 0;
    for(var i = 0; i < g_slidedDivs2.length; i++)
    {
        if(("#" + $zz(_this).attr('id')) == g_slidedDivs2[i].name)
        {        
            index = i;
            break;
        }
    }
    g_slidedDivs2[index].out = 0;

    $zz(_this).find(".accordionSlideImage2").find("img").stop().animate({opacity: 1.0}, 400); 
    $zz(_this).find(".accordionDescBack").stop().animate({bottom: 0, opacity: 0.8}, 1000);
    $zz(_this).find(".accordionDesc").stop().animate({bottom: 0, opacity: 1.0}, 1000);
    $zz(_this).find(".slideStrip2").stop().animate({opacity: 0.0}, 300);
  
    setMoveForAccordionDivs2(index);
}

function mouseOutAccor2(_this)
{
    var context = $zz('#accordionContainer2')[0];
    $zz(_this, context).find(".accordionSlideImage2").find("img").stop().animate({opacity: 0.0}, 800
    ,function(){$zz(_this, context).find(".slideStrip2").stop().animate({opacity: 1.0}, 600);}
    );
    $zz(_this, context).find(".accordionDescBack").stop().animate({bottom: -70, opacity: 0}, 300);
    $zz(_this, context).find(".accordionDesc").stop().animate({bottom: -70, opacity: 0}, 300);
    
}

function mouseOutAccor2OnAll2(excludedID)
{
    for(var j = 0; j < g_slidedDivs2.length; j++)
    {
		
       if(excludedID != null)
       {
         if(excludedID == g_slidedDivs2[j].name)
         {
            continue;
         }
       }
       if(g_slidedDivs2[j].out != 1)
       {
            g_slidedDivs2[j].out = 1;
            mouseOutAccor2(g_slidedDivs2[j].name);
       }
    } 
} 


/**********************************
    COD PANOU CONTROL - contine butoanele de control: FORWARD2, backward, stop
***********************************/
var FORWARD2 = true;
var BACKWARD2 = false;
var g_lastSlideMoveDirection2 = FORWARD2;
function setupAccordionControlPanel2()
{
    $zz("#accorControlBtnDesc").fadeTo(0, 0.0);

    $zz("#accorPlayBtn").click(
        function()
        {
            g_sliderAutoPlay2 = !g_sliderAutoPlay2;
            if(false == g_sliderAutoPlay2)
            {
                clearTimeout(g_sliderTimerAutoPlay2);
                
                mouseOutAccor2OnAll2(null);
                var ribOutWidth = ACCORDION_WIDTH / g_slidedDivs2.length; 
                for(var i = 0; i < g_slidedDivs2.length; i++)
                {
                    $zz(g_slidedDivs2[i].name).stop()                    
                        .animate({marginTop: (i*ribOutWidth)+"px"}, {duration: 900, easing: ACCORDION_EASING_METHOD});
                    g_slidedDivs2[i].dest = i*ribOutWidth;
                    $zz(g_slidedDivs2[i].name).find(".slideDesc2").stop().animate({opacity: 1.0}, 2000); 
                }                
            } else
            {
                 g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2); 
            }
            if(true == g_sliderAutoPlay2)
            {
                 $zz(this).attr("src", "img/slider/accordion/control/pause_hover.png");
            } else
            {
                  $zz(this).attr("src", "img/slider/accordion/control/play_hover.png");
            }
        }
    );

    $zz("#accorPlayBtn").hover(
        function ()
        {
            $zz("#accorControlBtnDesc").text("stop").fadeTo("slow", 1.0);
           
            if(false == g_sliderAutoPlay2)
            {
                $zz(this).attr("src", "img/slider/accordion/control/play_hover.png");
            } else
            {
                $zz(this).attr("src", "img/slider/accordion/control/pause_hover.png");
            }
        },
        function ()
        {
            if(false == g_sliderAutoPlay2)
            {
                $zz(this).attr("src", "img/slider/accordion/control/play.png");
            } else
            {
                $zz(this).attr("src", "img/slider/accordion/control/pause.png")
            }
            $zz("#accorControlBtnDesc").stop().fadeTo(0, 0.0);  
        }
    );
    
    $zz("#accorBackBtn").hover(
        function ()
        {
           $zz("#accorControlBtnDesc").text("previous slide").fadeTo("slow", 1.0); 
           $zz(this).attr("src", "img/slider/accordion/control/back_hover.png");
        },
        function ()
        {
            $zz(this).attr("src", "img/slider/accordion/control/back.png");
            $zz("#accorControlBtnDesc").stop().fadeTo(0, 0.0); 
        }
    );
    
    $zz("#accorBackBtn").click(
        function()
        {
            clearTimeout(g_sliderTimerAutoPlay2);
            if(FORWARD2 == g_lastSlideMoveDirection2)
            {
               g_actualSlideImage2--;
            }
            g_lastSlideMoveDirection2 = BACKWARD2;
            
            if(false == g_setBACKWARD2BtnOnLast)
            {
                mouseOutAccor2OnAll2(null);
                g_actualSlideImage2--;
                
                if(true == g_sliderNewLoop2)
                {
                    g_sliderNewLoop2 = false;
                }
                
                if(0 > g_actualSlideImage2)
                {
                    if(g_actualSlideImage2 == -2)
                    {
                        g_actualSlideImage2 = g_slidedDivs2.length - 2;
                    } else
                    {
                        g_actualSlideImage2 = g_slidedDivs2.length - 1;
                    }
                }
                mouseOnAccor2(g_slidedDivs2[g_actualSlideImage2].name);
            } else
            {
                mouseOutAccor2OnAll2(null);
                g_actualSlideImage2 = g_slidedDivs2.length - 1;                                               
                mouseOnAccor2(g_slidedDivs2[g_actualSlideImage2].name);
                g_setBACKWARD2BtnOnLast = false;               
            }
            if(true == g_sliderAutoPlay2)
            {
                g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2); 
            }
        }
    );     
    
    $zz("#accorFORWARDBtn").hover(
        function ()
        {
            $zz("#accorControlBtnDesc").text("next slide").fadeTo("slow", 1.0);
            $zz(this).attr("src", "img/slider/accordion/control/FORWARD_hover.png");
        },
        function ()
        {
            $zz(this).attr("src", "img/slider/accordion/control/FORWARD.png");
            $zz("#accorControlBtnDesc").stop().fadeTo(0, 0.0);   
        }
    ); 
    
    $zz("#accorFORWARDBtn").click(
        function()
        {
            clearTimeout(g_sliderTimerAutoPlay2);
            g_sliderNewLoop2 = false; 
            
            if(BACKWARD2 == g_lastSlideMoveDirection2)
            {
                 g_actualSlideImage2++;
                 if(g_actualSlideImage2 >= g_slidedDivs2.length)
                 {
                    g_actualSlideImage2 = 0;
                    g_sliderNewLoop2 = true;
                 }                  
            }
            g_lastSlideMoveDirection2 = FORWARD2;
            mouseOutAccor2OnAll2(null);
            mouseOnAccor2(g_slidedDivs2[g_actualSlideImage2].name);
    
            g_actualSlideImage2++;
            if(g_actualSlideImage2 >= g_slidedDivs2.length)
            {
                g_actualSlideImage2 = 0;
                g_sliderNewLoop2 = true;
            }
            if(true == g_sliderAutoPlay2)
            {
                g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2); 
            }
        }
    );       

}



/*********************************************
    SLIDER ASYNCHRONOUS IMAGE
**********************************************/
g_loadedSlideCount2 = 0;
g_imgList2 = null;

function checkAccordionLoading2()
{
    if(g_loadedSlideCount2 < g_imgList2.length)
    {  
       setupLoadingAsynchronousImagesForAccordion2();
    }
}  

function setupLoadingAsynchronousImagesForAccordion2()
{
    if(g_imgList2 == null)
    {
        var imgDivsList = $zz("#accordionContainer2 .asyncImgLoadAccordion2");
         g_imgList2 = new Array;
         var firstDiv = $zz("#accordionContainer2 .accordionImgDiv2:first");
         var imgDiv = $zz(firstDiv).find(".asyncImgLoadAccordion2");
         for(var i = 0; i < imgDivsList.length; i++)
         {
            var obj = new Object(); 
            obj.id = "#" + $zz(imgDiv).attr('id'); 
            g_imgList2.push(obj); 

            firstDiv = $zz(firstDiv).next(".accordionImgDiv2");    
            imgDiv = $zz(firstDiv).find(".asyncImgLoadAccordion2");
         }
    }
        
    if(g_loadedSlideCount2 < g_imgList2.length)
    {  
       g_loadedSlideCount2++;
       loadAccordionImg2(g_imgList2[g_loadedSlideCount2-1].id, g_loadedSlideCount2-1);
       setTimeout(setupLoadingAsynchronousImagesForAccordion2, 500);
    }
        
        function loadAccordionImg2(id, _index)
        {   
            var loader = $zz(id);
            var imagePath = loader.attr('title');
            var img = new Image();
            $zz(img).css("opacity", "0.0")
                .load(
                    function() 
                    {
                        loader.append(this).removeAttr('title');
                        loader.css("background-image", "none");
                        $zz(this)
                            .css("margin", "0px")
                            .css("opacity", "0.0");
                        
                        if(_index == g_hoveredSlideIndex2)
                        {
                            $zz(this).animate({opacity: 1.0}, 500);
                        }                        
                            
                    }
                ).attr('src', imagePath);                        
        } 
        
           
}

var g_loadedStripCount2 = 0;
var g_stripList2 = null;
function setupLoadingAsyncslideStrip2Images2()
{
    if(g_stripList2 == null)
    {
        var imgDivsList = $zz("#accordionContainer2 .slideStrip2");
         g_stripList2 = new Array;
         var firstDiv = $zz("#accordionContainer2 .accordionImgDiv2:first");
         var imgDiv = $zz(firstDiv).find(".slideStrip2");
         for(var i = 0; i < imgDivsList.length; i++)
         {
            var obj = new Object(); 
            obj.id = imgDiv; 
            g_stripList2.push(obj); 

            firstDiv = $zz(firstDiv).next(".accordionImgDiv2");    
            imgDiv = $zz(firstDiv).find(".slideStrip2");
         }
    }
        
    if(g_loadedStripCount2 < g_stripList2.length)
    {  
       
       loadStripImg2(g_stripList2[g_loadedStripCount2].id, g_loadedStripCount2);
       
    } else
    {
        clearTimeout(g_sliderTimerAutoPlay2);
        g_sliderTimerAutoPlay2 = setTimeout(accordionPlay2, g_sliderTimerInterval2);
    }
        
        function loadStripImg2(id, _index)
        {   
            var loader = $zz(id);
            var imagePath = loader.attr('title');
            var img = new Image();
            $zz(img).css("opacity", "0.0")
                .load(
                    function() 
                    {
                        loader.append(this).removeAttr('title');
                        g_loadedStripCount2++;
                        $zz(this)
                            .css("margin", "0px")
                            .css("opacity", "0.0")
                            .animate({opacity: 1.0}, 400, function()
                            {
                                loader.css("background-image", "none"); 
                                setTimeout(setupLoadingAsyncslideStrip2Images2, 20); 
                            });                            
                    }

                ).attr('src', imagePath);                        
        } 
} 


       

       
/***************************************
    MAIN CODE
****************************************/
       
$zz(document).ready(
    function()
    {


        if($zz("#accordionContainer2").length > 0)
        {
            setupLoadingAsynchronousImagesForAccordion2();
            setupLoadingAsyncslideStrip2Images2();            
            setupAccordionImageSlider2();
            setupAccordionControlPanel2();        
            setupAccordionAutoPlay2();
        }

    }
);

