
var m_strImageList;
var m_strImageObject;
var m_intFadeTimerSpeed = 100;
var m_intFaderStepSize = 5;
var m_intShowDelay = 3000;    

var m_strBrowserType = "";
var m_blnIsFading = 0;
var m_intCurrentImageId = -1;
var m_intCurrentOpacityPercentage = 0;
    
var m_objFadeTimer;
var m_arrImages;
var m_objImage;
    
function SlideShow(p_strImageList, p_strImageObject)
{
    m_strImageList = p_strImageList;
    m_strImageObject = p_strImageObject;

    m_objImage = document.getElementById(m_strImageObject);
    if(!m_objImage)
	    return
		
    SetBrowserType();
    LoadImages()
    if(!m_arrImages)
        return;
    
    var l_intRandomStartImage = Math.round(Math.random() * (m_arrImages.length-1));
    SetImage(l_intRandomStartImage);
    
 }

function LoadImages()
{
    var l_arrImages = m_strImageList.split(",");
    m_arrImages = new Array(l_arrImages.length);
    for(var l_intIdx=0;l_intIdx<l_arrImages.length;l_intIdx++)
    {
        m_arrImages[l_intIdx]= new Array(2);
        m_arrImages[l_intIdx][0]= l_arrImages[l_intIdx];
        m_arrImages[l_intIdx][1]= new Image();
        
        //preload image
        //m_arrImages[l_intIdx][1].src= l_arrImages[l_intIdx];
    }
   
}

function FadeOut(){
    
    SetOpacity();

    if(m_intCurrentOpacityPercentage>0){
	    m_blnIsFading = 1;
	    m_intCurrentOpacityPercentage -= m_intFaderStepSize;
	    m_objFadeTimer = setTimeout("FadeOut()",m_intFadeTimerSpeed);
    }else{
	    m_blnIsFading = 0;
	    SetImage();
	    m_objFadeTimer = setTimeout("FadeIn()",m_intFadeTimerSpeed);
    }	

}

function FadeIn(){

    SetOpacity();
	
    if(m_intCurrentOpacityPercentage<98){
	    m_blnIsFading = 1;
	    m_intCurrentOpacityPercentage += m_intFaderStepSize;
	    m_objFadeTimer = setTimeout("FadeIn()",m_intFadeTimerSpeed);
    }else{
	    m_blnIsFading = 0;
	    m_objFadeTimer = setTimeout("FadeOut()",m_intShowDelay);
    }

}

function GetCurrentImageIndex(p_intImageId)
{
    if(p_intImageId>=m_arrImages.length-1){
            p_intImageId = 0;
        }else{
            p_intImageId++;
        }
    return p_intImageId;
}

function SetImage(p_intImageIndex){

    if(p_intImageIndex==null)
    {
        m_intCurrentImageId = GetCurrentImageIndex(m_intCurrentImageId);
        eval("m_objImage.style.backgroundImage = 'url(' + m_arrImages[m_intCurrentImageId][0] + ')';"); 
    }
    else
    {
        clearTimeout(m_objFadeTimer);
        m_intCurrentOpacityPercentage = 0;
        SetOpacity();
        
        eval("m_objImage.style.backgroundImage = 'url(' + m_arrImages[p_intImageIndex][0] + ')';"); 

        m_intCurrentImageId = p_intImageIndex;
        m_intCurrentOpacityPercentage = 100;
        SetOpacity();
        
        m_objFadeTimer = setTimeout("FadeOut()",m_intShowDelay + 2000); //add 2 secs bcoz of downloadtime
    }

    //preload next image
    var l_intNextImageId = GetCurrentImageIndex(m_intCurrentImageId);
    m_arrImages[l_intNextImageId][1].src= m_arrImages[l_intNextImageId][0];
    
}


function SetOpacity(){

    switch(m_strBrowserType)
    {
	    case 'ie' :
		    m_objImage.filters.alpha.opacity = m_intCurrentOpacityPercentage; 
		    break;
			
	    case 'khtml' :
		    m_objImage.style.KhtmlOpacity = m_intCurrentOpacityPercentage/100;
		    break;
			
	    case 'moz' : 
		    m_objImage.style.MozOpacity = (m_intCurrentOpacityPercentage == 100 ? 0.9999999 : m_intCurrentOpacityPercentage/100);
		    break;
			
	    default : 
		    m_objImage.style.opacity = (m_intCurrentOpacityPercentage == 100 ? 0.9999999 : m_intCurrentOpacityPercentage/100);
    }
	
}

function SetBrowserType(){
		
	    if(typeof m_objImage.filters == 'object')
	    {
		    m_strBrowserType = (m_objImage.filters.length > 0 && typeof m_objImage.filters.alpha == 'object' && typeof m_objImage.filters.alpha.opacity == 'number') ? 'ie' : 'none';
	    }
	    else if(typeof m_objImage.style.opacity != 'undefined')
	    {
		    m_strBrowserType = 'w3c';
	    }
	    else if(typeof m_objImage.style.MozOpacity != 'undefined')
	    {
		    m_strBrowserType = 'moz';
	    }
	    else if(typeof m_objImage.style.KhtmlOpacity != 'undefined')
	    {
		    m_strBrowserType = 'khtml';
	    }
	    else if(typeof m_objImage.filters == 'object')
	    {
		    m_strBrowserType = (m_objImage.filters.length > 0 && typeof m_objImage.filters.alpha == 'object' && typeof m_objImage.filters.alpha.opacity == 'number') ? 'ie' : 'none';
	    }
	    else
	    {
		    m_strBrowserType = 'none';
	    }

}

