// JavaScript Document
/*****

Image Cross Fade Redux
Version 1.0
Last revision: 02.15.2006
steve@slayeroffice.com

Please leave this notice intact. 

Rewrite of old code found here: http://slayeroffice.com/code/imageCrossFade/index.html


*****/


window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init);

var d=document, imgs = new Array(), zInterval = null, current=0, pause=false;

var CurBanner;
var BannerIndex;
var TimeToFade = 2000.0;
var arrImages = new Array();
	var arrAlts = new Array();
	var arrTitles = new Array();


            
function so_init() {
    initBanners();
    loadxml();
    BannerIndex = 0;
    CurBanner = getIndex();          
    setBanners();	
}
function initBanners()
{
 var left;
                var top;
                var container;
                container = document.getElementById('dvContainer');                
                left = parseInt(GetLeft(container));
                top = parseInt(GetTop(container));
                left = 0;
                top = 0;
                var b1;
                var b2;
                var b3;
                b1 = document.getElementById('imgBanner1');
                b2 = document.getElementById('imgBanner2');
                b3 = document.getElementById('imgBanner3');
                b1.style.position = 'absolute';
                b2.style.position = 'absolute';
                b3.style.position = 'absolute';
                b1.style.left = left + 'px';
                b2.style.left = left + 'px';
                b3.style.left = left + 'px';
                b1.style.top = top + 'px';
                b2.style.top = top + 'px';
                b3.style.top = top + 'px';     
                b2.style.display = 'none';
                b3.style.display = 'none';      
}
function loadxml()
    {
      if (window.XMLHttpRequest)
        {
            xhttp=new XMLHttpRequest();
        }
        else // Internet Explorer 5/6
        {
            xhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhttp.open("GET","http://www.brandinstitute.com/Banner.xml",false);
        xhttp.send("");
        xmlDoc=xhttp.responseXML; 
        readXML();
    }
 
    function readXML()
    {       
	var BannerList;
	BannerList = xmlDoc.getElementsByTagName("Banner");
	
	for (var i = 0; i < BannerList.length; i++){	    
	    arrImages[i] = BannerList[i].attributes.getNamedItem("imagename").nodeValue;
	    arrAlts[i] = BannerList[i].attributes.getNamedItem("alt").nodeValue;
	    arrTitles[i] = BannerList[i].attributes.getNamedItem("title").nodeValue;
	}	
	
    }
    
function getIndex(){
    var index = Math.floor((arrImages.length - 4)*Math.random());
	
	return Number(index);
	
}

function setBanners(){
               
                RunBanners();         
                setInterval("RunBanners();", 4000);            
            }
            function RunBanners(){
                var b1;
                var b2;
                var b3;
                b1 = document.getElementById('imgBanner1');
                b2 = document.getElementById('imgBanner2');
                b3 = document.getElementById('imgBanner3');
                if (BannerIndex == 0){                    
                    b1.src = "/banners/" + arrImages[CurBanner];
                    b1.setAttribute('alt',arrAlts[CurBanner]);
                    b1.alt = arrAlts[CurBanner];
                    b1.title = arrTitles[CurBanner];
                    if (b1.title == "") b1.removeAttribute('title');
                    CurBanner++;
                    b2.src = "/banners/" + arrImages[CurBanner];
                    b2.alt = arrAlts[CurBanner];
                    b2.setAttribute('alt',arrAlts[CurBanner]);
                    b2.title = arrTitles[CurBanner];
                    if (b2.title == "") b2.removeAttribute('title');
                    CurBanner++;             
                    if (b3.title == "") b3.removeAttribute('title');                  
                    fade('imgBanner2');
                    fade('imgBanner3');
                    
                    setTimeout('document.getElementById("imgBanner2").style.display = "block";', 2500);
                    setTimeout('document.getElementById("imgBanner3").style.display = "block";', 2500);
                    
                    BannerIndex = 1;                                        
                } else {
                    if (CurBanner + 1 == arrImages.length - 1){
                        CurBanner = 0;
                    } else {
                        CurBanner++;
                    }
                    if(BannerIndex == 1){                                                
                        b3.src = "/banners/" + arrImages[CurBanner];    
                        b3.alt = arrAlts[CurBanner]
                        b3.title = arrTitles[CurBanner];    
                        if (b3.title == "") b3.removeAttribute('title');
                        fade('imgBanner1');
                        fade('imgBanner2');
                        BannerIndex = 2;
                    } else if(BannerIndex == 2){                                                
                        b1.src = "/banners/" + arrImages[CurBanner];
                        b1.alt = arrAlts[CurBanner];
                        b1.title = arrTitles[CurBanner];
                        if (b1.title == "") b1.removeAttribute('title');
                        fade('imgBanner2');
                        fade('imgBanner3');
                        BannerIndex = 3;
                    } else if(BannerIndex == 3){                                                
                        b2.src = "/banners/" + arrImages[CurBanner];
                        b2.alt = arrAlts[CurBanner];
                        b2.setAttribute('alt',arrAlts[CurBanner]);
                        if (b2.title == "") b2.removeAttribute('title');
                        fade('imgBanner3');
                        fade('imgBanner1');
                        BannerIndex = 1;
                    }
                    
                }
            }
            
            
            function GetLeft(ele)
            {
	            //if (ele.offsetParent)
		            //return ele.offsetLeft + GetLeft(ele.offsetParent);
	            //else
		            return ele.offsetLeft;
            }

            function GetTop(ele)
            {
	            //if (ele.offsetParent)
		            //return (ele.offsetTop + GetTop(ele.offsetParent));
	            //else
		            return (ele.offsetTop);
            }
            function fade(eid)
            {
              var element = document.getElementById(eid);
              if(element == null)
                return;
               
              if(element.FadeState == null)
              {
                if(element.style.opacity == null 
                    || 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;
                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);
            }            
function Get_Cookie( check_name ) {
	        // first we'll split this cookie up into name/value pairs
	        // note: document.cookie only returns name=value, not the other components
	        var a_all_cookies = document.cookie.split( ';' );
	        var a_temp_cookie = '';
	        var cookie_name = '';
	        var cookie_value = '';
	        var b_cookie_found = false; // set boolean t/f default f
        	
	        for ( i = 0; i < a_all_cookies.length; i++ )
	        {
		        // now we'll split apart each name=value pair
		        a_temp_cookie = a_all_cookies[i].split( '=' );
        		
        		
		        // and trim left/right whitespace while we're at it
		        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
        	
		        // if the extracted name matches passed check_name
		        if ( cookie_name == check_name )
		        {
			        b_cookie_found = true;
			        // we need to handle case where cookie has no value but exists (no = sign, that is):
			        if ( a_temp_cookie.length > 1 )
			        {
				        cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			        }
			        // note that in cases where cookie is initialized but no value, null is returned
			        return cookie_value;
			        break;
		        }
		        a_temp_cookie = null;
		        cookie_name = '';
	        }
	        if ( !b_cookie_found )
	        {
		        return null;
	        }
        }
        function setCookie(cookie_name, value, expiredays){            
            var exdate = new Date();            
            exdate.setDate(exdate.getDate() + expiredays);            
            document.cookie = cookie_name + "=" + escape(value) + ((expiredays==null) ? "" : "; expires=" + exdate.toGMTString());        
            }     
            function Get_Cookie( check_name ) {
	        // first we'll split this cookie up into name/value pairs
	        // note: document.cookie only returns name=value, not the other components
	        var a_all_cookies = document.cookie.split( ';' );
	        var a_temp_cookie = '';
	        var cookie_name = '';
	        var cookie_value = '';
	        var b_cookie_found = false; // set boolean t/f default f
        	
	        for ( i = 0; i < a_all_cookies.length; i++ )
	        {
		        // now we'll split apart each name=value pair
		        a_temp_cookie = a_all_cookies[i].split( '=' );
        		
        		
		        // and trim left/right whitespace while we're at it
		        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
        	
		        // if the extracted name matches passed check_name
		        if ( cookie_name == check_name )
		        {
			        b_cookie_found = true;
			        // we need to handle case where cookie has no value but exists (no = sign, that is):
			        if ( a_temp_cookie.length > 1 )
			        {
				        cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			        }
			        // note that in cases where cookie is initialized but no value, null is returned
			        return cookie_value;
			        break;
		        }
		        a_temp_cookie = null;
		        cookie_name = '';
	        }
	        if ( !b_cookie_found )
	        {
		        return null;
	        }
        }   