/* SlideShowTool

 (c) 2005 Jason Truesdell. All Rights Reserved. For licensing information, please
 contact Jason Truesdell at http://www.jagaimo.com/
 
*/

/* Run upon load */
window.onload = SlideShow_Setup;

var slideiterator=0;
var slidecount=0;
var slideshow_ticks=8000;
var arrPanel;
var slideshows=new Array();

function Lib_FindObjectByID(name) {
   var Found;
   if (document.getElementById) {
     Found = document.getElementById(name);
   } else
   if (document.all) {
     Found = document.all[name];
   } else
   if (document.layers) {
     Found = document.layers[name];
   }
   return Found;
}
function Lib_GetClassObjects(className,rootObject,tagFilter)
{
    var Elements = rootObject.getElementsByTagName(tagFilter); // use "*" for all elements

    var ElementsLength = Elements.length;    
    var ClassObjects = new Array();
    for (i = 0, j = 0; i < ElementsLength; i++) 
    {
       if ( Elements[i].className==className )
        {
            ClassObjects[j++] = Elements[i];
        }
    }
    return ClassObjects;
}

function Lib_GetEventSource(MyEvent)
{  
   var e = MyEvent || window.event;
/* dom case */
   if (e.target) { this.target=e.target; }
   /* IE case */
   if (e.srcElement) {this.target=e.srcElement; }
 
   else if (e.type) { this.type=e.type; }
}
   
function SlideShow_StartPanel()
{

}

function SlideShow_SelectSlides(panelclass)
{
    
}

function SlideShow_Setup()
{//currently we only support one panel with id panel1
    var  trpan=  Lib_FindObjectByID("panelframe1");
    var  pause=  Lib_FindObjectByID("panel1_pause");
    if (pause) pause.onclick=SlideShow_Pause;
    var continuer=  Lib_FindObjectByID("panel1_play");
    if (continuer) continuer.onclick=SlideShow_Continue;
    var forward=  Lib_FindObjectByID("panel1_forward");
    if (forward) forward.onclick=SlideShow_Forward;
    var backward=  Lib_FindObjectByID("panel1_back");
    if (backward) backward.onclick=SlideShow_Back;

    var show=new Object();
    show.Name="panelframe1";
    slideshows[0]=show;
    
    arrPanel=Lib_GetClassObjects("slide",trpan,"*");
    slidecount=arrPanel.length;
    if (slidecount){
        if (trpan.filters){
            trpan.filters[0].Apply();}
            
        SlideShow_ToggleDisplay();
        if (trpan.filters){
            trpan.filters[0].Play();}
        
        SlideShow_SetTimeLine();   
    }
}

function SlideShow_ToggleDisplay()
{
    for (i=0; i<slidecount; i++)
    {
        if (i==slideiterator) { arrPanel[i].style.display='block';} else { arrPanel[i].style.display='none'; }
    }
}

function SlideShow_SetTimeLine()
{
    if (slideshows[0].Timer) window.clearTimeout(slideshows[0].Timer);
    slideshows[0].Timer=window.setTimeout('SlideShow_Next()',slideshow_ticks);
}

function SlideShow_Pause(ev)
{
    ev=window.event || ev;
    window.clearTimeout(slideshows[0].Timer);
    //ev.cancelBubble=true;
}

function SlideShow_Continue(ev)
{
    ev=window.event || ev;
    SlideShow_SetTimeLine();
  //  ev.cancelBubble=true;
}
function SlideShow_Back(ev)
{
    ev=window.event || ev;
    slideiterator--;
    if (slideiterator<0) slideiterator=slidecount-1;
    SlideShow_ToggleDisplay();
    SlideShow_SetTimeLine();
// 	ev.cancelBubble=true;
}
function SlideShow_Forward(ev) 
{
    ev=window.event || ev;
    slideiterator++;
    if (slideiterator>=slidecount) slideiterator=0;
        SlideShow_ToggleDisplay();
        SlideShow_SetTimeLine();
//    e.cancelBubble = true;
}

function SlideShow_Next()
{
   if (arrPanel[slideiterator].filters) 
        {SlideShow_Filter();}
   else
   {  slideiterator++;
        if (slideiterator>=slidecount) slideiterator=0;
        SlideShow_ToggleDisplay();
   }
   SlideShow_SetTimeLine(); 
}

function SlideShow_Filter()   
{
    var oldslide=slideiterator;
    slideiterator++;
    if (slideiterator>=slidecount) slideiterator=0;
    var panel=Lib_FindObjectByID("panelframe1");
    if (panel && panel.filters){
    panel.filters[0].Apply();
    SlideShow_ToggleDisplay();
    panel.filters[0].Play(); 
    }
}
