/*
 * Description:  Script to crossfade background images.
 * Created by Mike Reid 6/6/2009.  
 * Original source: http://www.brainerror.net/scripts_js_blendtrans.php
 */

function blendimage(divid, imageid, imagefile, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //set the current image as background
    document.getElementById(divid).style.backgroundImage = document.getElementById(imageid).style.backgroundImage;
    //make image transparent
    changeOpac(0, imageid);

    //make new image
	document.getElementById(imageid).style.backgroundImage = 'url('+imagefile+')';
//alert(imagefile);
    //fade in image
    for(i = 0;i <= 100;i++) {
        setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
        timer++;
    }
}

//
//change the opacity for different browsers
function changeOpac(opacity, id) { 
     var object = document.getElementById(id).style;
     object.opacity = (opacity / 101);
     object.MozOpacity = (opacity / 101);
     object.KhtmlOpacity = (opacity / 100);
     object.filter = "alpha(opacity=" + opacity + ")";
}

//
//
function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart;i >= opacEnd;i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart;i <= opacEnd;i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

var uvThread =-1;
var kROTATE_TIME_IN_MS = 6000;
var kBLEND_TIME_IN_MS = 2500;

var bannerImages = new Array;
var forward = true;
var begin = true;

bannerImages[0] = new Image(941,205);
bannerImages[1]	= new Image(941,205);
bannerImages[2] = new Image(941,205);
bannerImages[3] = new Image(941,205);
bannerImages[4] = new Image(941,205);
bannerImages[5] = new Image(941,205);

bannerImages[0].src = COGRANT_CONTEXT_PATH + '/view/img/banner_0.jpg';
bannerImages[1].src = COGRANT_CONTEXT_PATH + '/view/img/banner_1.jpg';
bannerImages[2].src = COGRANT_CONTEXT_PATH + '/view/img/banner_2.jpg';
bannerImages[3].src = COGRANT_CONTEXT_PATH + '/view/img/banner_3.jpg';
bannerImages[4].src = COGRANT_CONTEXT_PATH + '/view/img/banner_4.jpg';
bannerImages[5].src = COGRANT_CONTEXT_PATH + '/view/img/banner_5.jpg';

// Random sort algorithm for Javascript.
bannerImages.sort(function() {return 0.5 - Math.random()});

//
//
function updateHeroImage( ) { 
    ( uvThread == bannerImages.length-1) ? forward = false : forward = true;
	( uvThread == bannerImages.length-1 && !forward)  ? uvThread =  0 : ++uvThread;//{

    if (! begin ) {
        blendimage(
					
					'rotatorBase'
					,'rotatorFader' 
					, bannerImages[ uvThread ].src
					, kBLEND_TIME_IN_MS
				);
        } else {
            begin = false;
        }
    setTimeout(
        updateHeroImage,
        kROTATE_TIME_IN_MS
        );
}

//
//
function bootstrap_banner( ) {
		updateHeroImage( );
}





/* 
 * There is a collision between Mootools and ICEfaces in IE6 only.
 * 	This collision has something to do with the Mootools "window.addEvent"
 * 	method.  While it works in other browsers, IE 6 fails when including
 * 	ICEfaces JS - although no errors are raised.  There appears to be an ICEfaces
 * 	function by the same name, albeit a different namespace.  I suspect
 * 	this is the issue, but this has not yet been confirmed conclusively.
 * 	I am adding this method to avoid any method/function collision, as nothing
 * 	else seems to be named "add_event."  This approach seems to work...
 */

function add_event(obj,evType,fn,useCapture){if(obj.addEventListener){obj.addEventListener(evType,fn,useCapture);return true;}
else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}else{alert("Handler could not be attached");return false;}}
function add_load_event(fn,useCapture){return add_event(window,'load',fn,useCapture);}


// Old code to attach event...
//window.addEvent("domready", function() {
//	bootstrap_banner();
//});

// New code to attach event...
add_load_event( function() { bootstrap_banner( ); });


