﻿// JScript File
function DoTransition(Type,NewDivID,CurrentDivID,Duration,RunAtEnd)
{
    $j("#" + NewDivID).css('zIndex', 50);
    $j("#" + CurrentDivID).css('zIndex', 60);         
    switch (parseInt(Type))
    {
        case 0 : //None
            $j("#" + NewDivID).show();
            $j("#" + CurrentDivID).hide();  
            if(RunAtEnd)setTimeout(RunAtEnd, 10);                             
            break;                
        case 1 : //Fade = 1
            $j("#" + CurrentDivID).hide('fade', Duration/2, function () {
                    $j("#" + NewDivID).show('fade', Duration/2, function () {
                        if(RunAtEnd)setTimeout(RunAtEnd, 10);        
                });    
            }); 
            break;                
        case 2 : //CrossFade = 2 
            $j("#" + NewDivID).show('fade', Duration, function () {
                if(RunAtEnd)setTimeout(RunAtEnd, 10);        
            });    
            $j("#" + CurrentDivID).hide('fade', Duration);        
            break;                
        case 3 : //SlideInRight = 3
            $j("#" + CurrentDivID).hide('slide', { direction: 'right' }, Duration/2, function () {
                $j("#" + NewDivID).show('slide', { direction: 'left' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);        
                });       
            });            
            break;                
        case 4 : //SlideInLeft = 4
            $j("#" + CurrentDivID).hide('slide', { direction: 'left' }, Duration/2, function () {
                $j("#" + NewDivID).show('slide', { direction: 'right' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);        
                });     
            }); 
            break;                
        case 5 : //SlideInTop = 5
            $j("#" + CurrentDivID).hide('slide', { direction: 'up' }, Duration/2, function () {
                $j("#" + NewDivID).show('slide', { direction: 'down' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);        
                });       
            }); 
            break;
        case 6 : //SlideInBottom = 6
            $j("#" + CurrentDivID).hide('slide', { direction: 'down' }, Duration/2, function () {
                $j("#" + NewDivID).show('slide', { direction: 'up' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);        
                });      
            }); 
            break;                
        case 7 : //SlideOverRight = 7
            $j("#" + NewDivID).css('zIndex', 60);
            $j("#" + CurrentDivID).css('zIndex', 50); 
            $j("#" + NewDivID).show('slide', { direction: 'left' }, Duration, function () {
                $j("#" + CurrentDivID).hide();  
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                     
            });            
            break;                
        case 8 : //SlideOverLeft = 8
            $j("#" + NewDivID).css('zIndex', 60);
            $j("#" + CurrentDivID).css('zIndex', 50); 
            $j("#" + NewDivID).show('slide', { direction: 'right' }, Duration, function () {
                $j("#" + CurrentDivID).hide();     
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                      
            });            
            break;                
        case 9 : //SlideOverTop = 9      
            $j("#" + NewDivID).css('zIndex', 60);
            $j("#" + CurrentDivID).css('zIndex', 50);           
            $j("#" + NewDivID).show('slide', { direction: 'down' }, Duration, function () {
                $j("#" + CurrentDivID).hide();    
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
            });            
            break;               
        case 10 : //SlideOverBottom = 10
            $j("#" + NewDivID).css('zIndex', 60);
            $j("#" + CurrentDivID).css('zIndex', 50);                 
            $j("#" + NewDivID).show('slide', { direction: 'up' }, Duration, function () {
                $j("#" + CurrentDivID).hide();    
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
            });            
            break;                
        case 11 : //PushRight = 11
            $j("#" + NewDivID).show('slide', { direction: 'left' }, Duration, function () {
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
            });            
            $j("#" + CurrentDivID).hide('slide', { direction: 'right' }, Duration);
            break;                
        case 12 : //PushLeft = 12
            $j("#" + NewDivID).show('slide', { direction: 'right' }, Duration, function () {
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
            });            
            $j("#" + CurrentDivID).hide('slide', { direction: 'left' }, Duration);
            break;                
        case 13 : //PushTop = 13
            $j("#" + NewDivID).show('slide', { direction: 'down' }, Duration, function () {
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
            });            
            $j("#" + CurrentDivID).hide('slide', { direction: 'up' }, Duration);
            break;                
        case 14 : //PushBottom = 14
            $j("#" + NewDivID).show('slide', { direction: 'up' }, Duration, function () {
                if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
            });            
            $j("#" + CurrentDivID).hide('slide', { direction: 'down' }, Duration);
            break;                
        case 15 : //ShadeRight = 15
            $j("#" + CurrentDivID).hide('blind', { direction: 'horizontal' }, Duration/2, function () {
                $j("#" + NewDivID).show('blind', { direction: 'horizontal' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
                });             
            });          
            break;                
        case 16 : //ShadeLeft = 16
            $j("#" + CurrentDivID).hide('blind', { direction: 'horizontal' }, Duration/2, function () {
                $j("#" + NewDivID).show('blind', { direction: 'horizontal' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
                });                 
            });                
            break;                
        case 17 : //ShadeTop = 17
            $j("#" + CurrentDivID).hide('blind', { direction: 'vertical' }, Duration/2, function () {
                $j("#" + NewDivID).show('blind', { direction: 'vertical' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
                });                
            });                
            break;                
        case 18 : //ShadeBottom = 18
            $j("#" + CurrentDivID).hide('blind', { direction: 'vertical' }, Duration/2, function () {
                $j("#" + NewDivID).show('blind', { direction: 'vertical' }, Duration/2, function () {
                    if(RunAtEnd)setTimeout(RunAtEnd, 10);                                       
                });                
            });                
            break;                
        case 19 : //SlideOffRight = 19      
            $j("#" + NewDivID).show();
            $j("#" + CurrentDivID).hide('slide', { direction: 'right' }, Duration);
            if(RunAtEnd)setTimeout(RunAtEnd, 10);   
            break;                
        case 20 : //SlideOffLeft = 20
            $j("#" + NewDivID).show();
            $j("#" + CurrentDivID).hide('slide', { direction: 'left' }, Duration);
            if(RunAtEnd)setTimeout(RunAtEnd, 10);   
            break;                
        case 21 : //SlideOffTop = 21
            $j("#" + NewDivID).show();
            $j("#" + CurrentDivID).hide('slide', { direction: 'up' }, Duration);
            if(RunAtEnd)setTimeout(RunAtEnd, 10);   
            break;        
        case 22 : //SlideOffBottom = 22
            $j("#" + NewDivID).show();     
            $j("#" + CurrentDivID).hide('slide', { direction: 'down' }, Duration);
            if(RunAtEnd)setTimeout(RunAtEnd, 10);   
            break;   
        default : 
            $j("#" + NewDivID).show();
            $j("#" + CurrentDivID).hide();     
            if(RunAtEnd)setTimeout(RunAtEnd, 10);      
    }           
}

function CustomTransition(Show, Hide, ShowDivID, HideDivID, Order, RunAtEnd)
{  
    switch (parseInt(Order))
    {
        case 2 : //show first 
            $j("#" + ShowDivID).css('zIndex', 60);
            $j("#" + HideDivID).css('zIndex', 50);  
            if(Show.Type==CustomTransitionType.None) {
                NoTransition(ShowDivID, HideDivID, Hide, Show, RunAtEnd);
            } else {
                $j("#" + ShowDivID).show(GetCustomTransitionVerb(Show.Type), Show.Options, Show.Duration, function () {
                    $j("#" + HideDivID).hide(GetCustomTransitionVerb(Hide.Type), Hide.Options, Hide.Duration, function () {
                        if(RunAtEnd)setTimeout(RunAtEnd, 10);          
                    }); 
                    if(Hide.Type==CustomTransitionType.None&&RunAtEnd)setTimeout(RunAtEnd, 10);  
                });                   
            }          
            break;        
        case 1 : //hide first    
            $j("#" + ShowDivID).css('zIndex', 50);
            $j("#" + HideDivID).css('zIndex', 60);          
            if(Hide.Type==CustomTransitionType.None) {
                NoTransition(ShowDivID, HideDivID, Hide, Show, RunAtEnd);
            } else {
                $j("#" + HideDivID).hide(GetCustomTransitionVerb(Hide.Type), Hide.Options, Hide.Duration, function () {
                    $j("#" + ShowDivID).show(GetCustomTransitionVerb(Show.Type), Show.Options, Show.Duration, function () {
                        if(RunAtEnd)setTimeout(RunAtEnd, 10);          
                    });   
                    if(Show.Type==CustomTransitionType.None&&RunAtEnd)setTimeout(RunAtEnd, 10);                                    
                });                 
            }             
            break;
        case 0 : //same time
            $j("#" + ShowDivID).css('zIndex', 60);
            $j("#" + HideDivID).css('zIndex', 50);  
            NoTransition(ShowDivID, HideDivID, Hide, Show, RunAtEnd);
            break;
    }
}
function NoTransition(ShowDivID, HideDivID, Hide, Show, RunAtEnd)
{ 
    if(Hide.Duration>=Show.Duration) {
        $j("#" + ShowDivID).show(GetCustomTransitionVerb(Show.Type), Show.Options, Show.Duration);
        $j("#" + HideDivID).hide(GetCustomTransitionVerb(Hide.Type), Hide.Options, Hide.Duration, function () {
            if(RunAtEnd)setTimeout(RunAtEnd, 10);          
        });         
        if(Hide.Type==CustomTransitionType.None&&RunAtEnd)setTimeout(RunAtEnd, 10);             
    } else {
        $j("#" + ShowDivID).show(GetCustomTransitionVerb(Show.Type), Show.Options, Show.Duration, function () {
            if(RunAtEnd)setTimeout(RunAtEnd, 10);          
        });                              
        $j("#" + HideDivID).hide(GetCustomTransitionVerb(Hide.Type), Hide.Options, Hide.Duration);
    }
}

function CreateCustomTransition(Type,Duration,Options)
{ 
    var Trans = new Object;
    Trans.Type = Type;
    Trans.Duration = Duration;
    Trans.Options = eval('(' + "{" + Options + "}" + ')');    
    return Trans;
}

var CustomTransitionType = 
{
    "None" : 0,
    "Fade" : 1,
    "Slide" : 2,
    "Blind" : 3,
    "Clip" : 4,
    "Drop" : 5,
    "Explode" : 6,
    "Fold" : 7,
    "Puff" : 8,
    "Scale" : 9
};

function GetCustomTransitionVerb(Type)
{
    switch (parseInt(Type))
    {
        case CustomTransitionType.None : return "";
        case CustomTransitionType.Fade : return "fade";
        case CustomTransitionType.Slide : return "slide";
        case CustomTransitionType.Blind : return "blind";
        case CustomTransitionType.Clip : return "clip";
        case CustomTransitionType.Drop : return "drop";
        case CustomTransitionType.Explode : return "explode";
        case CustomTransitionType.Fold : return "fold";
        case CustomTransitionType.Puff : return "puff";
        case CustomTransitionType.Scale : return "scale";
        default : return "";
    }
}
