﻿// LandingRotator.js
// Holds functions responsible for content rotator on landing pages
// Last Modified: 09/18/2008
// Author: Chris Baran

function AddRotatorItem(item) {
    rtrItems.push(item);
}

function RotatorItem(thmb, url, stdt, title, intro) {
    this.Thumbnail = thmb;
    this.Url = url;
    this.StartDate = stdt;
    this.Title = title;
    this.Intro = intro;
}

// holds display item information
var rtrItems, pics;   
// items that display
var rtrImg, rtrImgLnk, rtrTitle, rtrIntro, rtrReadMoreLnk;

var rtrCurrentId, rtrTimeOut, rtrTimer;

var rtrDisplayedId;

// panels to hide or show play / pause buttons
var panelPause = 'divPause';
var panelPlay = 'divPlay';

function MakeRotator(tmOut) {          
    rtrItems = new Array();
    LoadRotatorItems();
    
    var rtrImgId = 'rtrImage', rtrImgLnkId = 'rtrImgLnk';
    var rtrTitleId = 'rtrTitle', rtrIntroId = 'rtrDesc';
    var rtrReadMoreLnkId = 'rtrReadMoreLnk';
    
    try {
        // get control locations for swapping elements
        rtrImg = document.getElementById(rtrImgId); rtrImgLnk = document.getElementById(rtrImgLnkId);
        rtrTitle = document.getElementById(rtrTitleId); rtrIntro = document.getElementById(rtrIntroId);
        rtrReadMoreLnk = document.getElementById(rtrReadMoreLnkId);
    } catch(err) {
        alert(err.message);
    }
    
    // load display images
    var imgSrc = '', curItem;
    for( var i = 0; i < rtrItems.length; i++ ) {
        curItem = 'rtrImage' + (i + 1);
        imgSrc = (pics != null) ? pics[i].src : rtrItems[i].Thumbnail;
        document.getElementById(curItem).setAttribute('src', imgSrc);
        document.getElementById(curItem).setAttribute('alt', rtrItems[i].Title);
        document.getElementById(curItem).setAttribute('title', rtrItems[i].Title);
    }
    
    // set main rotation interval
    rtrTimeOut = (tmOut * 1000); 
    // set current index   
    rtrCurrentId = 0;
    rtrDisplayedId = 0;
    
    // preload pause/play buttons    
    var rtrPlay = new Image(15, 12); rtrPlay.src = '/images/LandingRotator/play.jpg';
    var rtrPause = new Image(15, 12); rtrPause.src = '/images/LandingRotator/pause.jpg;';    
    
    // hide options if not enough items present
    var rtrItemCt = rtrItems.length;
    if (rtrItemCt < 4) 
        document.getElementById('rtrLi4').style.display = 'none';
    if (rtrItemCt < 3)
        document.getElementById('rtrLi3').style.display = 'none';
    if (rtrItemCt < 2)
        document.getElementById('rtrLi2').style.display = 'none';
    
    // show display
    ShowDisplay();
}

function ShowDisplay() {
    // clear highlight for previous item
    var curItem = 'rtrLi' + (rtrDisplayedId + 1);
    document.getElementById(curItem).removeAttribute('class'); 
    document.getElementById(curItem).removeAttribute('className');

    var actLi = 'rtrLi' + (rtrCurrentId + 1);
    var actImg = 'rtrImage' + (rtrCurrentId + 1);
    // set background for current nav item
    document.getElementById(actLi).setAttribute('class', 'active');
    document.getElementById(actLi).setAttribute('className', 'active');
    
    // get previous img display for hiding
    var remImg = 'rtrImage' + (rtrDisplayedId + 1);    
    // hide previous img
    document.getElementById(remImg).style.display = 'none';
    // activate current img
    document.getElementById(actImg).style.display = 'inline';    
    
    // get info for current item
    var item = rtrItems[rtrCurrentId];
    // set to image and read more links
    rtrImgLnk.setAttribute('href', item.Url);
    rtrReadMoreLnk.setAttribute('href', item.Url);
    rtrTitle.innerHTML = item.Title;
    // swap in body
    rtrIntro.innerHTML = item.StartDate + ' - ' + item.Intro;
    
    // save viewed id
    rtrDisplayedId = rtrCurrentId;
    
    // increment current viewing id
    rtrCurrentId = (rtrCurrentId + 1) % rtrItems.length;
    // set display to appear in specified interval
    rtrTimer = setTimeout('ShowDisplay()', rtrTimeOut);
}

function Pause() {
    if (document.getElementById(panelPause) == null)
    {
        panelPause = 'divPause';           
    }
    if (document.getElementById(panelPlay) == null)
    {        
        panelPlay = 'divPlay';             
    }
    document.getElementById(panelPause).style.display = 'none';    
    document.getElementById(panelPlay).style.display = 'inline';   
    clearTimeout(rtrTimer);    
}

function Play() {
    if (document.getElementById(panelPause) == null)
    {
        panelPause = 'divPause';           
    }
    if (document.getElementById(panelPlay) == null)
    {
        panelPlay = 'divPlay';
    } 
    document.getElementById(panelPlay).style.display = 'none';
    document.getElementById(panelPause).style.display = 'inline';                   
    ShowDisplay();        
}

function ShowStory(id) { 
    if (document.getElementById(panelPause) == null)
    {
        panelPause = 'divPause';           
    }
    if (document.getElementById(panelPlay) == null)
    {
        panelPlay = 'divPlay';
    }   
    document.getElementById(panelPause).style.display = 'none';
    document.getElementById(panelPlay).style.display = 'inline';
    rtrCurrentId = id - 1;
    clearTimeout(rtrTimer);
    ShowDisplay();
    clearTimeout(rtrTimer);    
}

function jsEncode(s) {
	s = s.replace(new RegExp('\\\\', 'g'), '\\\\');
	s = s.replace(new RegExp('"', 'g'), '\\"');
	s = s.replace(new RegExp("'", 'g'), "\\'");
	return s;
}