ChangePosition=function(){};

ChangePosition.test=function(q)
{
    var positionArray = this.BuildPositionArray(q);
    this.SetPositions(positionArray);
}

ChangePosition.OnLoad=function()
{
    var positionArray = this.BuildPositionArray(parseInt(LayoutOptions.DefaultPosition));
    this.SetPositions(positionArray);
}

ChangePosition.BuildPositionArray=function(quadrant)
{   
    var changeArray = new Array();
    
    var vW = LayoutOptions.VideoWidth;
    var vH = LayoutOptions.VideoHeight;
    var sW = LayoutOptions.SlideWidth; // padding surrounding the currentslide
    var sH = LayoutOptions.SlideHeight;
    var pW = LayoutOptions.PlayerWidth;
    var pH = LayoutOptions.PlayerHeight;
    var adBannerHeight = 0;
    var adBannerWidth = 0;
    var titleBannerHeight = 0;
    var titleBannerWidth = 0;
    
    if(LayoutOptions.Images["AdBanner"])
    {
        adBannerHeight = parseInt(LayoutOptions.Images["AdBanner"].Height);
        adBannerWidth = parseInt(LayoutOptions.Images["AdBanner"].Width);
    }
    if(LayoutOptions.Images["TitleBanner"])
    {
        titleBannerHeight = parseInt(LayoutOptions.Images["TitleBanner"].Height);
        titleBannerWidth = parseInt(LayoutOptions.Images["TitleBanner"].Width);
    }
    
    // see if we have a value for these... otherwise use the following values.
    var btnPollWidth = 40; 
    var btnEmailWidth = 40;
    var btnLinksWidth = 40;
    var btnAskButtonWidth = 40;
    var btnHelpWidth = $('btnHelp').offsetWidth;
    var btnPlayPauseWidth = 30;
    var btnSkipBackWidth = 30;     
    var btnMuteWidth = 15;   
    var btnCCWidth = 30; 
    var btnFullScreenWidth = 30;
    if(mPlayer.PlayerDetect.GetPlayerType() == SfKernel.MediaPlayerType.SL1)
    {
        btnFullScreenWidth = 0;
    }
    var liveIndicatorWidth = 20;
    var playerControlsPadding = 4;
    var statusBarHeight = 16;
    var playerControlsHeight = 42;
    var videoElementPadding = 4;
    var playerControlsButtonSpacing = 0;
    var playerSliderPadding = playerControlsPadding * 2;
    var playerSliderWidth = vW - (playerSliderPadding*2);
    var volumeSliderWidth = 33;
    var speedControlWidth = 35;
    var languageSelectionAreaWidth = 40;
    var commandBarPadding = 4;
    var linksPanelWidth = 340;
    var playerPadding = 3;
    var playerPaddingRight = 6;
    var playerPaddingLeft = 2;
    var playerMarginBottom = 1;
    var playerMarginRight = 4;
    var playerMarginLeft = 4;
    var commandBarButtonSpacing = -3;
    var commandBarHeight = 28;
    var currentSlideAreaTopPadding = 4;
    var currentSlideAreaLeftPadding = 4;
    var currentSlideAreaBorderThickness = 1;
    var currentSlideAreaLeft = ((pW - (vW + sW + playerPadding*2))/2) + vW; // obsolete?
    var presentationCardBorderThickness = 1;
    var applicationVersionAreaWidth = 83;
    var slideBrowserWidth = sW; 
    var slideBrowserHeight = sH - (slideBrowserToolbarHeight - currentSlideAreaTopPadding);
    var slideBrowserWidth = 200; 
    var slideBrowserHeight = 100 - (slideBrowserToolbarHeight - currentSlideAreaTopPadding);
    var slideBrowserToolbarHeight = 26;
    var thumbNailPropertiesContainerWidth = 190;
    var thumbNailPropertiesContainerHeight = 112;

    var totalMediaWidth = 0;
    var playerRemainingSpace = 0;
    var presentationCardWidth = pW - vW - 8;
    
    if(sW > 0) {totalMediaWidth = sW + (currentSlideAreaLeftPadding*2) + vW + 2;}
    else       {totalMediaWidth = presentationCardWidth + (currentSlideAreaLeftPadding*2) + vW + 2;}    
    playerRemainingSpace = Math.floor((pW-totalMediaWidth)/3);
    
    if(playerRemainingSpace < 0)
    {
        playerRemainingSpace = 0
    }
    else
    {
        playerMarginLeft = playerRemainingSpace;
        playerMarginRight  = playerRemainingSpace;
        playerPaddingLeft = playerRemainingSpace;
        currentSlideAreaLeft = (2*playerRemainingSpace) + vW + 2;
    }
 
    var tabsLeft = currentSlideAreaLeft + 4;
    var tabsRight = tabsLeft;
    if($("btnSlideShowImg"))
    {
        tabsRight += $("btnSlideShowImg").offsetWidth;
    }
    if($("btnSlideListImg"))
    {
        tabsRight += $("btnSlideListImg").offsetWidth;
    }    
    var currentSlideToolbarWidth = 50;
    var slideTickerWidth;
    if($("SlideTicker"))
    {
        slideTickerWidth = $("SlideTicker").offsetWidth;
    }    
    var remainingCommandBarWidth = (pW - tabsRight - applicationVersionAreaWidth - btnHelpWidth - currentSlideToolbarWidth);
    var remainingCommandBarSpacing = Math.floor((remainingCommandBarWidth - slideTickerWidth)/2);
    if (remainingCommandBarWidth < 0){remainingCommandBarSpacing = 0}
    var presentationCardTop = titleBannerHeight + commandBarHeight + videoElementPadding + vH + statusBarHeight + playerControlsHeight + playerRemainingSpace;
    var presentationCardHeight = pH - (titleBannerHeight + commandBarHeight + videoElementPadding + vH + statusBarHeight + playerControlsHeight + playerRemainingSpace) - playerMarginBottom;
    var presentationCardFooterHeight = 16;
    var speedControlRemainingSpace = (vW - playerControlsPadding - btnFullScreenWidth  - volumeSliderWidth - playerControlsButtonSpacing - btnMuteWidth - btnCCWidth - 4) - (playerControlsPadding + btnPlayPauseWidth + btnSkipBackWidth + (2*playerControlsButtonSpacing));
    var speedControlLeft = ((speedControlRemainingSpace/2)-(speedControlWidth/2)) + (playerControlsPadding + btnPlayPauseWidth + btnSkipBackWidth + (2*playerControlsButtonSpacing));
    
    var basePositionArray = new Array(
    "backgroundImage,w," + pW,
    "backgroundImage,h," + pH,
    "PageContent,w," + pW,
    "PageContent,h," + pH,
     // banners
    "AdBanner,w,"         + adBannerWidth,
    "AdBanner,h,"         + adBannerHeight,
    "AdBanner,l,"         + titleBannerWidth,     
    "AdBannerImage,w,"    + adBannerWidth,
    "AdBannerImage,h,"    + adBannerHeight,
    "TitleBanner,w,"      + titleBannerWidth,
    "TitleBanner,h,"      + titleBannerHeight,
    "TitleBannerImage,w," + titleBannerWidth,  
    "TitleBannerImage,h," + titleBannerHeight,    
    "CommandBar,t,"       + titleBannerHeight,
    "CommandBar,h,"       + commandBarHeight,
    "CommandBar,w,"       + pW,
    "InnerBackground,w,"  + pW,
    "InnerBackground,h,"  + (pH - titleBannerHeight - commandBarHeight),
    "InnerBackground,t,"  + (titleBannerHeight + commandBarHeight),
        
    "EmbeddedPlayer,w,"        + vW,
    "EmbeddedPlayer,h,"        + vH,
    "VideoContainer,w,"        + vW,
    "VideoContainer,h,"        + vH,
    "PlayerContainer,w,"       + vW,
    "PlayerControls,w,"        + vW,
    "StatusBar,w,"             + vW,
    "SamiDropDownArea,w,"      + vW,
    "PlayerAudioOnlyImage,w,"  + vW,
    "PlayerAudioOnlyImage,h,"  + vH,
    "PlayerNotStartedImage,w," + vW,
    "PlayerNotStartedImage,h," + vH,
    
    // playerControls
    "PlayerSlider,w,"               + playerSliderWidth, 
    "PlayerSlider,l,"               + playerSliderPadding,
    "PlayerSlider_positionGuide,w," + playerSliderWidth, 
    // if btnFullScreen exists... subtract its width the below
    "VolumeSlider,l,"               + (vW - volumeSliderWidth - btnFullScreenWidth - playerControlsPadding - 3),
    "VolumeSlider,w,"               + volumeSliderWidth,
    "VolumeSlider_positionGuide,w," + volumeSliderWidth,
    "LanguageSelectionArea,r,"      + ((vW+languageSelectionAreaWidth)/2),
    // if btnFullScreen exists... subtract its width the below
    "btnMute,l,"            + (vW - playerControlsPadding - btnFullScreenWidth  - volumeSliderWidth - playerControlsButtonSpacing - btnMuteWidth - 5),
    "btnCC,l,"              + (vW - playerControlsPadding - btnFullScreenWidth  - volumeSliderWidth - playerControlsButtonSpacing - btnMuteWidth - btnCCWidth - 6),
    "btnFullScreen,l,"      + (vW - playerControlsPadding - btnFullScreenWidth),
    "btnPlayPause,l,"       +  playerControlsPadding,
    "btnSkipback,l,"        + (playerControlsPadding + btnPlayPauseWidth + playerControlsButtonSpacing),    
    "PlayerSpeedControl,l," + speedControlLeft,
            
    // windows (check that its not wider than the current slide, if it is, downsize it.)
    "AskQuestionArea,t,"      + (titleBannerHeight + commandBarHeight),
    "EmailInviteArea,t,"      + (titleBannerHeight + commandBarHeight),
    "LinksPanel,t,"           + (titleBannerHeight + commandBarHeight),           
    
    // command bar
    "btnPoll,t,"               + (titleBannerHeight),
    "btnAskButton,t,"          + (titleBannerHeight),
    "btnEmail,t,"              + (titleBannerHeight),
    "btnLinks,t,"              + (titleBannerHeight),
    "LiveIndicatorArea,t,"     + (titleBannerHeight + 2),
    "LiveIndicatorAreaImg,t,"  + (titleBannerHeight + 2),
    "SlideTicker,t,"           + (titleBannerHeight),
    "btnHelp,t,"               + (titleBannerHeight + 1),
    "btnHelpImg,t,"            + (titleBannerHeight + 1),
    "ApplicationVersionArea,t,"+ (titleBannerHeight + 2),
    "SlideTabs,t,"             + (titleBannerHeight + 3)   
    );    
    changeArray = basePositionArray.concat(basePositionArray);
   
    if((vH/vW) < .75) // widescreen player
    {
        if(quadrant == 1 || quadrant == 4) 
        {
            playerPadding = 0;
        }
        else
        {
            playerPadding = 4;
            playerPaddingLeft = 0;
            playerMarginRight = 2;
        }
    }
    
    if(sW > 0 && sH > 0) // if slide area is showm
    {
        var slidePositionArray = new Array(    
        "CurrentSlideArea,h,"                 + sH,
        "CurrentSlideArea,w,"                 + sW,
        "CurrentSlideArea,t,"                 + (titleBannerHeight + commandBarHeight - 3),
        "CurrentSlideAreaSlideImage,h,"       + sH,
        "CurrentSlideAreaSlideImage,w,"       + sW,
        "CurrentSlideAreaSlideDescription,h," + sH,
        "CurrentSlideAreaSlideDescription,w," + sW,
    
        "ThumbNailsArea,w,"    + (sW + (2*currentSlideAreaLeftPadding)),
        "thumbnailToolbar,w,"  + (sW + (2*currentSlideAreaLeftPadding)),
        "ChapterPointsArea,w," + (sW + (2*currentSlideAreaLeftPadding)),
        "ThumbNailsArea,h,"    + (sH + (2*currentSlideAreaTopPadding)),
        "ThumbNailsArea,t," + (titleBannerHeight + commandBarHeight - 3),
        "thumbNailSlidesContainer,h," + (sH - slideBrowserToolbarHeight + (2*currentSlideAreaTopPadding)),
        "thumbNailSlidesContainer,w," + (sW + (2*currentSlideAreaLeftPadding)),
        "ChapterPointsArea,w," + (sW + (2*currentSlideAreaLeftPadding)),
        "ChapterPointsArea,h," + (sH + (2*currentSlideAreaTopPadding) - slideBrowserToolbarHeight),
        "TextSlideSorterArea,w," + (sW + (2*currentSlideAreaLeftPadding)),
        "TextSlideSorterArea,h," + (sH + (2*currentSlideAreaTopPadding) - slideBrowserToolbarHeight),
        "TextSlideSorterAreaInside,w," + (sW + (2*currentSlideAreaLeftPadding)),
        "TextSlideSorterAreaInside,h," + (sH + (2*currentSlideAreaTopPadding) - slideBrowserToolbarHeight),
        
        "EmailInviteArea,w,"                            + (sW - 20),
        "emailInviteArea_emailInviteMessageFieldtxt,h," + (sH - 175),
        "emailInviteArea_emailInviteFromFieldtxt,w,"    + (sW - 100),
        "emailInviteArea_emailInviteToFieldtxt,w,"      + (sW - 100),
        "emailInviteArea_emailInviteSubjectFieldtxt,w," + (sW - 100),
        "emailInviteStartingPoint,w,"                   + (sW - 100),
        "emailInviteArea_emailInviteMessageFieldtxt,w," + (sW - 100),
        "AskQuestionArea,w,"                            + (sW - 20),
        "askQuestionArea_askQuestionMessageFieldtxt,h," + (sH - 150),
        "askQuestionArea_askQuestionNameFieldtxt,w,"    + (sW - 100),
        "askQuestionArea_askQuestionEmailFieldtxt,w,"   + (sW - 100),
        "askQuestionArea_askQuestionSubjectFieldtxt,w," + (sW - 100),
        "askQuestionArea_askQuestionMessageFieldtxt,w," + (sW - 100),
        "emailInviteStartingPoint,w,"                   + (sW - 100)
        )
        changeArray = changeArray.concat(slidePositionArray);
    }   
    if(quadrant == 1 || quadrant == 4) 
    {
        // players with video on left
        var leftPositionArray = new Array(
        "PlayerContainer,l,"      + playerPaddingLeft,
        "btnPoll,l,"              + playerPadding,
        "btnAskButton,l,"         + (commandBarPadding + btnPollWidth + commandBarButtonSpacing),
        "btnEmail,l,"             + (commandBarPadding + btnPollWidth + btnAskButtonWidth + (2*commandBarButtonSpacing)),
        "btnLinks,l,"             + (commandBarPadding + btnPollWidth + btnAskButtonWidth + btnEmailWidth + (3*commandBarButtonSpacing)),
        "LiveIndicatorArea,l,"    + (commandBarPadding + vW - liveIndicatorWidth - playerPadding - 5),
        "LiveIndicatorAreaImg,l," + (commandBarPadding + vW - liveIndicatorWidth - playerPadding - 5),
        "SlideTicker,l,"          + (tabsRight + remainingCommandBarSpacing),
        "btnHelp,l,"              + (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - (2*commandBarButtonSpacing)),
        "btnHelpImg,l,"           + (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - (2*commandBarButtonSpacing)),
        "ApplicationVersionArea,l,"+ (pW - applicationVersionAreaWidth + 2),
        "ApplicationVersionArea,backgroundImage,spinnerL.gif",
        "SlideTabs,l,"            + tabsLeft,
        "CurrentSlideAreaToolbuttonContainer,l," + (sW - btnHelpWidth - applicationVersionAreaWidth - currentSlideToolbarWidth - (3*commandBarButtonSpacing)),
        "PresentationCardArea,l," + playerPaddingLeft,
        "ThumbNailsArea,l,"  + currentSlideAreaLeft,
        "CurrentSlideArea,l,"+ currentSlideAreaLeft,
        "LinksPanel,l,"      + (currentSlideAreaLeft + 14),
        "AskQuestionArea,l," + (currentSlideAreaLeft + 10),
        "EmailInviteArea,l," + (currentSlideAreaLeft + 10)
        );
        changeArray = changeArray.concat(leftPositionArray);
    }
    
    if(quadrant == 3 || quadrant == 2) 
    {   
        // players with video on right
        var tabsLeft = ((playerMarginLeft + sW) - $("btnSlideShowImg").offsetWidth - $("btnSlideListImg").offsetWidth);
        var helpRight = (playerMarginLeft + applicationVersionAreaWidth + (3*commandBarButtonSpacing) + 5);
        var rightPositionArray = new Array(
        "PlayerContainer,l,"      + (pW - playerMarginRight - vW - 1),
        "PresentationCardArea,l," + (pW - playerMarginRight - vW - 1),
        "btnPoll,l,"              + (pW - playerMarginRight - btnPollWidth),
        "btnAskButton,l,"         + (pW - playerMarginRight - btnPollWidth - btnAskButtonWidth - commandBarButtonSpacing),
        "btnEmail,l,"             + (pW - playerMarginRight - btnPollWidth - btnAskButtonWidth - btnEmailWidth - (2*commandBarButtonSpacing)),
        "btnLinks,l,"             + (pW - playerMarginRight - btnPollWidth - btnAskButtonWidth - btnEmailWidth - btnLinksWidth - (3*commandBarButtonSpacing)),
        "LiveIndicatorArea,l,"    + (pW - vW + 2),
        "LiveIndicatorAreaImg,l," + (pW - vW + 2),
        "ThumbNailsArea,l,"       + playerPaddingLeft,
        "CurrentSlideArea,l,"     + playerPaddingLeft,
        "ApplicationVersionArea,l," + 0,
        "ApplicationVersionArea,backgroundImage,spinnerR.gif",
        "btnHelp,l,"              + helpRight,
        "btnHelpImg,l,"           + helpRight,
        "CurrentSlideAreaToolbuttonContainer,l," + (playerMarginLeft + btnHelpWidth + applicationVersionAreaWidth + (2*commandBarButtonSpacing)),
        "SlideTicker,l,"          + (playerMarginLeft + applicationVersionAreaWidth + (2*commandBarButtonSpacing) + currentSlideToolbarWidth + (2*Math.floor((this.getRemainingSpaceBetweenElements(helpRight,tabsLeft) - currentSlideToolbarWidth - slideTickerWidth)/3))),
        "SlideTabs,l,"            + (tabsLeft + 6),        
        "LinksPanel,l,"           + (playerPaddingLeft + 14),
        "AskQuestionArea,l,"      + (playerPaddingLeft + 10),
        "EmailInviteArea,l,"      + (playerPaddingLeft + 10)
        );
        changeArray = changeArray.concat(rightPositionArray);
    }
    
    if(quadrant == 1 || quadrant == 2) 
    {
        // values for Top Viewers
        var topPositionArray = new Array(
        "PlayerContainer,t,"      + (titleBannerHeight + commandBarHeight + 2),
        "PresentationCardArea,t," + presentationCardTop
        );
        changeArray = changeArray.concat(topPositionArray);
    }
    
    if(quadrant == 3 || quadrant == 4) 
    {
        // values for Bottom Viewers
        var bottomPositionArray = new Array(
        "PlayerContainer,t,"      + (pH - playerMarginBottom - (videoElementPadding + vH + statusBarHeight + playerControlsHeight)),
        "PresentationCardArea,t," + (titleBannerHeight + commandBarHeight + 4)
        );
        changeArray = changeArray.concat(bottomPositionArray);
    }
    
    if($('VendorLogo'))
    {
        var bannerSpecificPositionArray = new Array(
        "backgroundImage,h," + pH,
        "VendorLogo,t," + (pH - LayoutOptions.Images["VendorLogo"].Height - playerMarginBottom)
        );
        if(quadrant == 1 || quadrant == 4) 
        {
            var bannerLeftArray = new Array(
            "VendorLogo,l," + (currentSlideAreaLeft + (((sW + 6)-$('VendorLogo').offsetWidth)/2))
            );
            changeArray = changeArray.concat(bannerLeftArray);
        }
        if(quadrant == 2 || quadrant == 3)
        {
            var bannerRightArray = new Array(
            "VendorLogo,l," + (playerPaddingLeft + (((sW + 6)-$('VendorLogo').offsetWidth)/2))
            );
            changeArray = changeArray.concat(bannerRightArray);
        }        
        changeArray = changeArray.concat(bannerSpecificPositionArray);
    }
   
    // special cases ///////////////
    if(vW == '200' && sW == '1024')
    {
        var tinyVideoArray = new Array(
        "btnCC,l," + 98,
        "btnPlayPause,l," + 0,
        "btnSkipback,l," + 24,
        "PlayerSpeedControl,l," + 54,
        "btnCC,l," + 89,
        "btnMute,l," + 116,
        "VolumeSlider,l," + 134,
        "btnFullScreen,l," + 170
        );
        changeArray = changeArray.concat(tinyVideoArray);
        $('PresentationCardAreaDurationLabel').style.display = 'none';
        $('PresentationCardAreaDurationText').style.display = 'none';
        
        if(mPlayer.PlayerDetect.GetPlayerType() == SfKernel.MediaPlayerType.SL1)
        {
            var tinyVideoSL1Array= new Array(
            "btnCC,l," + 108,
            "btnMute,l," + 140,
            "VolumeSlider,l," + 158            
            );
            changeArray = changeArray.concat(tinyVideoSL1Array);
        }
        else
        {
            var tinyVideoWMArray= new Array("PlayerSpeedControl,l," + 56);
            changeArray = changeArray.concat(tinyVideoWMArray);
        }
    }
    
    if(vW == '400' && sW == '360')
    {
        var remainingWidth = sW + 17;
        $('thumbNailViewButtonSmallThumbnails').style.display = 'none';
        var compactViewerSpecialArray= new Array(
            "EmailInviteArea,w,"+ remainingWidth,
            "AskQuestionArea,w,"+ remainingWidth,
            "emailInviteDialogInternalContent,w," + (sW + 12),
            "askQuestionDialogInternalContent,w," + (sW + 12),
            "EmailInviteArea,t,"+ (titleBannerHeight + commandBarHeight - 5),            
            "AskQuestionArea,t,"+ (titleBannerHeight + commandBarHeight - 5),
            "emailInviteReturnDiv,w,"+ remainingWidth,            
            "askQuestionReturnDiv,w,"+ remainingWidth,
            "LinksPanel,w,"     + remainingWidth,  
            "emailInviteReturnDiv,marginLeft,"+ (Math.floor(remainingWidth/2)*-1),
            "askQuestionReturnDiv,marginLeft,"+ (Math.floor(remainingWidth/2)*-1),
            "askQuestionArea_askQuestionMessageFieldtxt,h," + (sH - 55),
            "askQuestionArea_askQuestionNameFieldtxt,w,"    + (remainingWidth - 80),
            "askQuestionArea_askQuestionEmailFieldtxt,w,"   + (remainingWidth - 80),
            "askQuestionArea_askQuestionSubjectFieldtxt,w," + (remainingWidth - 80),
            "askQuestionArea_askQuestionMessageFieldtxt,w," + (remainingWidth - 80),
            "emailInviteStartingPoint,w,"                   + (remainingWidth - 80),
            "emailInviteArea_emailInviteMessageFieldtxt,h," + (sH - 80), 
            "emailInviteArea_emailInviteFromFieldtxt,w,"    + (remainingWidth - 80),
            "emailInviteArea_emailInviteToFieldtxt,w,"      + (remainingWidth - 80),
            "emailInviteArea_emailInviteSubjectFieldtxt,w," + (remainingWidth - 80),
            "emailInviteStartingPoint,w,"                   + (remainingWidth - 80),
            "emailInviteArea_emailInviteMessageFieldtxt,w," + (remainingWidth - 80),
            "thumbNailViewButtonLargeThumbnails,l," + 18,
            "thumbNailViewButtonChapters,l," + 36,
            "ApplicationVersionArea,t," + (titleBannerHeight + 2),
            "PresentationCardArea,t," + (titleBannerHeight + commandBarHeight + 4 + sH + currentSlideAreaTopPadding*2),
            //"btnHelp,t,"     + (titleBannerHeight + 3),
            "PresentationCardArea,w," + (sW + (currentSlideAreaLeftPadding*2)),
            "PresentationCardArea,h," + (pH - (titleBannerHeight + commandBarHeight + 4 + sH + currentSlideAreaTopPadding*2) - playerMarginBottom - 3),
            "PresentationCardAreaScrollDiv,h," + (pH - (titleBannerHeight + commandBarHeight + 4 + sH + currentSlideAreaTopPadding*2) - playerMarginBottom - presentationCardFooterHeight)
        );
        changeArray = changeArray.concat(compactViewerSpecialArray);
        
        if(quadrant == 1 || quadrant == 4) 
        {
            var compactViewerSpecialLeftArray = new Array(
            "PresentationCardArea,l," + currentSlideAreaLeft,
            "ApplicationVersionArea,l," + 0,
            "ApplicationVersionArea,backgroundImage,spinnerR.gif",
            "btnHelp,l,"     + (playerMarginLeft + applicationVersionAreaWidth + (2*commandBarButtonSpacing) + 4),
            "btnPoll,l,"     + (playerMarginLeft + applicationVersionAreaWidth + btnHelpWidth + (3*commandBarButtonSpacing) + 6),
            "btnAskButton,l,"+ (playerMarginLeft + applicationVersionAreaWidth + btnHelpWidth + btnPollWidth + (4*commandBarButtonSpacing) + 6),
            "btnEmail,l,"    + (playerMarginLeft + applicationVersionAreaWidth + btnHelpWidth + btnPollWidth + btnAskButtonWidth + (5*commandBarButtonSpacing) + 6),
            "btnLinks,l,"    + (playerMarginLeft + applicationVersionAreaWidth + btnHelpWidth + btnPollWidth + btnAskButtonWidth + btnLinksWidth + (6*commandBarButtonSpacing) + 6),
            "SlideTabs,l,"   + (tabsLeft - 3),
            "SlideTicker,l," + (tabsRight + (sW - currentSlideToolbarWidth - slideTickerWidth - 80)/2),
            "CurrentSlideAreaToolbuttonContainer,l," + (sW - currentSlideToolbarWidth + 10),
            "EmailInviteArea,l,"+ (currentSlideAreaLeft - 10),
            "AskQuestionArea,l,"+ (currentSlideAreaLeft - 10),
            "LinksPanel,l,"     + (currentSlideAreaLeft - 6)         
            );
            changeArray = changeArray.concat(compactViewerSpecialLeftArray);
        }    
        if(quadrant == 2 || quadrant == 3) 
        {
            var compactViewerSpecialRightArray = new Array(
            "PresentationCardArea,l," + playerPaddingLeft,
            "ApplicationVersionArea,l," + (pW - applicationVersionAreaWidth - playerMarginRight + 4),
            "ApplicationVersionArea,backgroundImage,spinnerR.gif",            
            "btnHelp,l,"     + (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - (2*commandBarButtonSpacing)),
            "btnPoll,l,"     + (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - btnPollWidth - (3*commandBarButtonSpacing)),            
            "btnAskButton,l,"+ (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - btnPollWidth - btnAskButtonWidth - (4*commandBarButtonSpacing)),
            "btnEmail,l,"    + (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - btnPollWidth - btnAskButtonWidth - btnLinksWidth - (5*commandBarButtonSpacing)),
            "btnLinks,l,"    + (pW - btnHelpWidth - applicationVersionAreaWidth - playerMarginRight - btnPollWidth - btnAskButtonWidth - btnLinksWidth - btnEmailWidth - (6*commandBarButtonSpacing)),
            "SlideTabs,l,"   + (tabsLeft + 5),            
            "SlideTicker,l," + (tabsLeft - slideTickerWidth - 24),
            "CurrentSlideAreaToolbuttonContainer,l," + (playerMarginLeft),
            "EmailInviteArea,l," + (playerMarginLeft - 12),
            "AskQuestionArea,l," + (playerMarginLeft - 12),
            "LinksPanel,l,"      + (playerMarginLeft - 5) 
            );
            changeArray = changeArray.concat(compactViewerSpecialRightArray);
        }   
    }
    else if(sW == 0 || sH == 0) 
    {      
        //alert(playerRemainingSpace);
        //var presentationCardWidth = pW - vW - playerMarginLeft - playerMarginRight - playerRemainingSpace;
        var presentationCardHeight = vH + statusBarHeight + playerControlsHeight;
        var noSlidesSpecialArray= new Array(
            "askQuestionArea_askQuestionMessageFieldtxt,h," + (vH + statusBarHeight + playerControlsHeight - 15),
            "emailInviteArea_emailInviteMessageFieldtxt,h," + (vH + statusBarHeight + playerControlsHeight - 40), 
            "ApplicationVersionArea,t," + (titleBannerHeight + 2),
            "PresentationCardArea,t," + (titleBannerHeight + 2 + commandBarHeight),
            "ThumbNailsArea,t," + (titleBannerHeight + 10 + commandBarHeight),
            //"btnHelp,t,"     + (titleBannerHeight + 3),
            "PresentationCardArea,w," + presentationCardWidth,
            "PresentationCardArea,h," + presentationCardHeight,
            "PresentationCardAreaScrollDiv,h,"              + (vH + statusBarHeight + playerControlsHeight + 1 - presentationCardFooterHeight),
            "LinksPanel,w,"                                 + (presentationCardWidth - 8),
            "EmailInviteArea,w,"                            + (presentationCardWidth - 8),
            "emailInviteReturnDiv,w,"                       + (presentationCardWidth - 8),
            "emailInviteReturnDiv,marginLeft,"              + (Math.floor((presentationCardWidth - 8)/2)*-1),
            "emailInviteArea_emailInviteMessageFieldtxt,h," + (presentationCardHeight - 175),
            "emailInviteArea_emailInviteFromFieldtxt,w,"    + (presentationCardWidth - 100),
            "emailInviteArea_emailInviteToFieldtxt,w,"      + (presentationCardWidth - 100),
            "emailInviteArea_emailInviteSubjectFieldtxt,w," + (presentationCardWidth - 100),
            "emailInviteStartingPoint,w,"                   + (presentationCardWidth - 100),
            "emailInviteArea_emailInviteMessageFieldtxt,w," + (presentationCardWidth - 100),
            "AskQuestionArea,w,"                            + (presentationCardWidth - 8),
            "askQuestionReturnDiv,w,"                       + (presentationCardWidth - 8),
            "askQuestionReturnDiv,marginLeft,"              + (Math.floor((presentationCardWidth - 8)/2)*-1),
            "askQuestionArea_askQuestionMessageFieldtxt,h," + (presentationCardHeight - 150),
            "askQuestionArea_askQuestionNameFieldtxt,w,"    + (presentationCardWidth - 100),
            "askQuestionArea_askQuestionEmailFieldtxt,w,"   + (presentationCardWidth - 100),
            "askQuestionArea_askQuestionSubjectFieldtxt,w," + (presentationCardWidth - 100),
            "askQuestionArea_askQuestionMessageFieldtxt,w," + (presentationCardWidth - 100),
            "emailInviteStartingPoint,w,"                   + (presentationCardWidth - 100)
        );
        changeArray = changeArray.concat(noSlidesSpecialArray);
        
        if(quadrant == 1 || quadrant == 4) 
        {
            var noSlidesSpecialLeftArray = new Array(
            "ThumbNailsArea,l," + playerMarginLeft,
            "PresentationCardArea,l," + (vW + 2 + playerRemainingSpace),
            "ApplicationVersionArea,l," + (pW - applicationVersionAreaWidth),
            "ApplicationVersionArea,backgroundImage,spinnerR.gif",
            "btnHelp,l,"         + (pW - applicationVersionAreaWidth - (3*commandBarButtonSpacing) - btnHelpWidth - 9),
            "btnPoll,l,"     + (playerMarginLeft + (3*commandBarButtonSpacing) + 12),
            "btnAskButton,l,"+ (playerMarginLeft + btnPollWidth + (4*commandBarButtonSpacing) + 12),
            "btnEmail,l,"    + (playerMarginLeft + btnPollWidth + btnAskButtonWidth + (5*commandBarButtonSpacing) + 12),
            "btnLinks,l,"    + (playerMarginLeft + btnPollWidth + btnAskButtonWidth + btnLinksWidth + (6*commandBarButtonSpacing) + 12),
            "EmailInviteArea,l,"+ (vW + 2 + playerMarginLeft + playerMarginRight),
            "AskQuestionArea,l,"+ (vW + 2 + playerMarginLeft + playerMarginRight),
            "LinksPanel,l,"     + (vW + 2 + playerMarginLeft + playerMarginRight + 8)         
            );
            changeArray = changeArray.concat(noSlidesSpecialLeftArray);
        }    
        if(quadrant == 2 || quadrant == 3) 
        { 
            var noSlidesSpecialRightArray = new Array(
            "ThumbNailsArea,l," + (pW - playerMarginRight - 110),
            "PresentationCardArea,l,"   + (playerPaddingLeft - 1),
            "ApplicationVersionArea,l," + playerMarginLeft,
            "ApplicationVersionArea,backgroundImage,spinnerL.gif",            
            "btnHelp,l,"     + (pW - btnHelpWidth - playerMarginRight - (2*commandBarButtonSpacing) - 4),
            "btnPoll,l,"     + (pW - btnHelpWidth - playerMarginRight - btnPollWidth - (3*commandBarButtonSpacing)),            
            "btnAskButton,l,"+ (pW - btnHelpWidth - playerMarginRight - btnPollWidth - btnAskButtonWidth - (4*commandBarButtonSpacing)),
            "btnEmail,l,"    + (pW - btnHelpWidth - playerMarginRight - btnPollWidth - btnAskButtonWidth - btnLinksWidth - (5*commandBarButtonSpacing)),
            "btnLinks,l,"    + (pW - btnHelpWidth - playerMarginRight - btnPollWidth - btnAskButtonWidth - btnLinksWidth - btnEmailWidth - (6*commandBarButtonSpacing)),
            "EmailInviteArea,l," + (playerMarginLeft),
            "AskQuestionArea,l," + (playerMarginLeft),
            "LinksPanel,l,"      + (playerMarginLeft)
            );
            changeArray = changeArray.concat(noSlidesSpecialRightArray);
        } 
        this.HideSlides();
    }
    else
    {
        var presentationCardArray = new Array(
            "PresentationCardArea,w," + vW,
            "PresentationCardArea,h," + (presentationCardHeight - 3),
            "PresentationCardAreaScrollDiv,h," + (presentationCardHeight - presentationCardFooterHeight - 3)            
        );
        changeArray = changeArray.concat(presentationCardArray);
    }
    return changeArray;
}

ChangePosition.HideSlides=function()
{
    $('SlideTicker').style.display = 'none';
    $('CurrentSlideArea').style.display = 'none';
    $('SlideTabs').style.display = 'none';
    $('ThumbNailsArea').style.display = 'none';
}

ChangePosition.SetPositions=function(changeArray)
{
    for (var changeNum=0; changeNum<changeArray.length; changeNum++)
    {
       var thisChange = changeArray[changeNum].split(",");
       if(document.getElementById(thisChange[0]) != null)
       {
           switch(thisChange[1])
           {
            case "h":
                this.setHeight(thisChange[0],thisChange[2]);
                break;
            case "w":
                this.setWidth(thisChange[0],thisChange[2]);
                break;
            case "l":
                this.setPos(thisChange[0],'left',thisChange[2]);
                break;
            case "r":
                this.setPos(thisChange[0],'right',thisChange[2]);
                break;
            case "t":
                this.setPos(thisChange[0],'top',thisChange[2]);
                break;
            case "marginTop":
                this.setMargin(thisChange[0],'top',thisChange[2]);
                break;
            case "marginRight":
                this.setMargin(thisChange[0],'right',thisChange[2]);
                break;
            case "marginBottom":
                this.setMargin(thisChange[0],'bottom',thisChange[2]);
                break;
            case "marginLeft":
                this.setMargin(thisChange[0],'left',thisChange[2]);
                break;
            case "paddingTop":
                this.setPadding(thisChange[0],'top',thisChange[2]);
                break;
            case "paddingRight":
                this.setPadding(thisChange[0],'right',thisChange[2]);
                break;
            case "paddingBottom":
                this.setPadding(thisChange[0],'bottom',thisChange[2]);
                break;
            case "paddingLeft":
                this.setPadding(thisChange[0],'left',thisChange[2]);
                break;
            case "backgroundImage":
                this.backgroundImageSwap(thisChange[0],thisChange[2]);
                break;
            case "img":
                this.imgSwap(thisChange[0],thisChange[2]);
                break;
            case "vis":
                this.setVisible(thisChange[0],thisChange[2]);
                break;
            case "cssW":
                this.setCSS(thisChange[0],'width',thisChange[2]);
                break;
            case "cssL":
                this.setCSS(thisChange[0],'left',thisChange[2]);
                break;
            }
        }
    }
}

ChangePosition.setMargin=function(e,dir,val)
{
    var E = $(e);
    switch(dir)
    {
    case "top":
        E.style.marginTop=this.withPX(val);
        break;
    case "right": 
        E.style.marginRight=this.withPX(val);
        break;
    case "bottom":
        E.style.marginBottom=this.withPX(val);
        break;
    case "left":   
        E.style.marginLeft=this.withPX(val);
        break;
    }
}


ChangePosition.setPadding=function(e,dir,val)
{
    var E = $(e);
    switch(dir)
    {
    case "top":
        E.style.paddingTop=this.withPX(val);
        break;
    case "right": 
        E.style.paddingRight=this.withPX(val);
        break;
    case "bottom":
        E.style.paddingBottom=this.withPX(val);
        break;
    case "left":   
        E.style.paddingLeft=this.withPX(val);
        break;
    }
}

ChangePosition.getRemainingSpaceBetweenElements=function(leftStop, rightStop)
{
    var spacing = (rightStop - leftStop);
    return spacing;
}
     
ChangePosition.withPX=function(val){return val + "px";}
ChangePosition.setFloat=function(e,f)
{
    $(e).style.cssFloat = f;
    $(e).style.styleFloat = f; /* for old IE */
}

ChangePosition.setZ=function(e,zIndex){$(e).style.zIndex = zIndex;}
ChangePosition.setHeight=function(e, height){$(e).style.height = this.withPX(height);}
ChangePosition.setWidth=function(e, width){$(e).style.width = this.withPX(width);}
ChangePosition.setPos=function(e,direction,val)
{
    var E = $(e);
    switch(direction)
    {
    case "top":
        E.style.top=this.withPX(val);
        break;
    case "right": 
        E.style.right=this.withPX(val);
        break;
    case "bottom":
        E.style.bottom=this.withPX(val);
        break;
    case "left":   
        E.style.left=this.withPX(val);
        break;
    }
}

ChangePosition.imgSwap=function(e,ImageVariant)
{
    /* parses img url, returns old url but with new filename */
    var imageElement = $(e);
    var imgUrl = imageElement.src;
    imgUrl = imgUrl.split("/");
    var oldFileName = imgUrl.pop();
    imgUrl = imgUrl.join("/");
    imgUrl = imgUrl + "/" + ImageVariant;
    imageElement.src = imgUrl;
}

ChangePosition.setCSS=function(theClass,element,value) 
{
	var cssRules;
	if (document.all) 
	{
	    cssRules = 'rules';
	}
	else if (document.getElementById) 
	{
	    cssRules = 'cssRules';
	}
	for (var s = 0; s < document.styleSheets.length; s++)
	{
	    for (var r = 0; r < document.styleSheets[s][cssRules].length; r++) 
	    {
	        if (document.styleSheets[s][cssRules][r].selectorText == theClass) 
	        {
	            document.styleSheets[s][cssRules][r].style[element] = value;
	        }
	    }
    }
}

ChangePosition.backgroundImageSwap=function(e,ImageVariant)
{
    $(e).style.backgroundImage = 'url(' + LayoutOptions.ThemeImageBase + '/' + ImageVariant + ')';
}

ChangePosition.setClass=function(e,newClass)
{    
    $(e).className = newClass;
}

ChangePosition.setVisible=function(e,visibility)
{   
    var E = $(e);
    if(E != null)
    {
        if(visibility ==  "true" || visibility == true){E.style.display = "block";}
        else {E.style.display = "none";}
    }
}
