/*
 * Copyright (C) 2003 by John Glorioso, Right Way Web, LLC
 * <support@rightwayweb.com>. All rights reserved.
 *
 * Redistribution and use in source forms, with or without modification, are
 * permitted provided that the following condition is met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * @author John Glorioso
 * @version $Id: banner_functions.js,v 1.1 2011/05/08 19:39:42 jglorioso Exp $
 */

document.write("<scr"+"ipt src=\"_js/dhtml_functions.js\"></scr"+"ipt>");
document.write("<scr"+"ipt src=\"_js/ajax_functions.js\"></scr"+"ipt>");

currentBannerId = "0";
function prevBanner(anchor)
{
    currentBannerId = getCurrentBannerId(anchor);
    if (currentBannerId)
    {
        eval("var bannerIdx = banner_index_"+currentBannerId+";");
        eval("var banners = banners_"+currentBannerId+";");
        if (bannerIdx >= 0 && banners && banners.length > 0)
        {
            if (--bannerIdx < 0) bannerIdx = banners.length-1;
            eval("banner_index_"+currentBannerId+" = "+bannerIdx);
            new ajax("/showContent?name="+banners[bannerIdx], {onComplete: showBanner}).request();
            eval("var tmout = banner_timeout_"+currentBannerId);
            eval("var interval = banner_interval_"+currentBannerId);
            window.clearTimeout(tmout);
            eval("banner_timeout_"+currentBannerId+" = window.setTimeout(\"nextBanner(getObject('"+currentBannerId+"_next_banner_button'))\", "+(interval*1000)+")");
        }
    }
}
function pauseBanner(anchor)
{
    currentBannerId = getCurrentBannerId(anchor);
    if (currentBannerId)
    {
        eval("var tmout = banner_timeout_"+currentBannerId);
        window.clearTimeout(tmout);
    }
}
function nextBanner(anchor)
{
    currentBannerId = getCurrentBannerId(anchor);
    if (currentBannerId)
    {
        eval("var bannerIdx = banner_index_"+currentBannerId+";");
        eval("var banners = banners_"+currentBannerId+";");
        if (bannerIdx >= 0 && banners && banners.length > 0)
        {
            if (++bannerIdx >= banners.length) bannerIdx = 0;
            eval("banner_index_"+currentBannerId+" = "+bannerIdx);
            new ajax("/showContent?name="+banners[bannerIdx], {onComplete: showBanner}).request();
            eval("var tmout = banner_timeout_"+currentBannerId);
            eval("var interval = banner_interval_"+currentBannerId);
            window.clearTimeout(tmout);
            eval("banner_timeout_"+currentBannerId+" = window.setTimeout(\"nextBanner(getObject('"+currentBannerId+"_next_banner_button'))\", "+(interval*1000)+")");
        }
    }
}
function getCurrentBannerId(anchor)
{
    var ret;
    if (anchor && anchor.id)
    {
        var idx = anchor.id.indexOf("_");
        if (idx > -1)
        {
            ret = anchor.id.substring(0, idx);
        }
    }
    return ret;
}
var animate = true;
function showBanner(response)
{
    var obj = getObject(currentBannerId+"_banner");
    if (obj && response)
    {
     if (window.animate)
     {
      var obj2 = getObject("banner_fade_div");
      if (obj2)
      {
       obj2.innerHTML = response;
       fade(currentBannerId+"_banner");
      }
      else obj.innerHTML = response;
     }
     else obj.innerHTML = response;
    }
}
function showProps(obj)
{
    var props = "null";
    if (obj)
    {
        props = "";
        for (var prm in obj)
        {
            props += prm+": "+obj[prm]+"\n";
        }
    }
    alert(props);
}

var TimeToFade = 800.0;
function fade(eid)
{
 var element = document.getElementById(eid);
 if (!element) return;

 if (!element.FadeState)
 {
  if (!element.style.opacity || element.style.opacity == '' || element.style.opacity == '1') element.FadeState = 2;
  else element.FadeState = -2;
 }

 if (element.FadeState == 1 || element.FadeState == -1)
 {
  element.FadeState = (element.FadeState == 1 ? -1 : 1);
  element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
 }
 else
 {
  element.FadeState = (element.FadeState == 2 ? -1 : 1);
  element.FadeTimeLeft = TimeToFade;
  setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
 }
}
function animateFade(lastTick, eid)
{
 var curTick = new Date().getTime();
 var elapsedTicks = curTick - lastTick;

 var element = document.getElementById(eid);

 if (element.FadeTimeLeft <= elapsedTicks)
 {
  element.style.opacity = (element.FadeState == 1 ? '1' : '0');
  element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
  element.FadeState = (element.FadeState == 1 ? 2 : -2);
  var obj2 = getObject("banner_fade_div");
  if (animate && obj2)
  {
//alert("element="+element.innerHTML);
//alert("obj2="+obj2.innerHTML);
   element.innerHTML = obj2.innerHTML;
   element.style.opacity = 1;
   element.style.filter = 'alpha(opacity = 100)';
   element.FadeState = 2;
  }
  return;
 }

 element.FadeTimeLeft -= elapsedTicks;
 var newOpVal = element.FadeTimeLeft/TimeToFade;
 if (element.FadeState == 1) newOpVal = 1 - newOpVal;

 element.style.opacity = newOpVal;
 element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';

 setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

