// index_preload.js - javascript to preload images & other routines



var images = new Array();

var tour_photos = new Array("http://belladomus.com/Portfolio/decks/MainImage", "http://belladomus.com/Portfolio/millhouse/MainImage", "http://belladomus.com/Portfolio/cream_dway/MainImage", "http://belladomus.com/Portfolio/ChathamAerie/MainImage", "http://belladomus.com/Portfolio/ChathamBungalow/MainImage", "http://belladomus.com/Portfolio/Lambertson/MainImage", "http://belladomus.com/Portfolio/HauteGarage/MainImage", "http://belladomus.com/Portfolio/Bushnell/MainImage", "http://belladomus.com/Portfolio/ChapelHillNeighborhood/MainImage", "http://belladomus.com/Portfolio/Arcadian/MainImage");

var tour_isloaded = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

var tour_isloading = new Array(00, 00, 00, 00, 00, 00, 00, 00, 00, 00);

var tour_ids = new Array("decks", "millhouse", "cream_dway", "ChathamAerie", "ChathamBungalow", "Lambertson", "HauteGarage", "Bushnell", "ChapelHillNeighborhood", "Arcadian");

var tour_widths = new Array("360", "640", "640", "437", "600", "640", "640", "360", "640", "640");

var tour_heights = new Array("480", "480", "480", "480", "480", "480", "480", "244", "480", "480");

var tour_captions = new Array("Decks and porches help connect the interior and exterior.", "A window seat adds character to a child's bedroom.", "", "Hilltop aerie in Chatham County", "", "Ranch update in Durham County", "", "Chapel Hill - A prarie style home near the Arboretum", "Chapel Hill - a neighborhood home with attitude", "Arcadian solar with a three-story porch");

var last_loading_one = -1;
var loading_timer;

function preload(imgnum) {
	if (imgnum > tour_photos.length) {
   return;
  }

	if (imgnum == last_loading_one || (tour_isloading[imgnum])) {
		tour_isloading[imgnum] ++;
		return;
	} else {
		last_loading_one = imgnum;

		tour_isloading[imgnum] ++;

		images[imgnum] = new Image(tour_widths[imgnum], tour_heights[imgnum])
		images[imgnum].src =  tour_photos[imgnum]
		var failfunc = new Function("imgnum", "return reload(" + imgnum + ");");
		var onloadfunc = new Function("imgnum", "tour_isloaded["+ imgnum + "] = 1; preload(" + imgnum + 1 + ")");
		images[imgnum].onabort = failfunc;
		images[imgnum].onerror = failfunc;
		images[imgnum].onload = onloadfunc;

	}

	if (loading_timer) {
		window.clearTimeout(loading_timer);
		loading_timer = 0;
	}
	loading_timer = window.setTimeout("check_images_loaded()", 5000)

}

function check_images_loaded() {
	var cur_ind = 0;

	while ((cur_ind < tour_isloaded.length) && (tour_isloaded[cur_ind])) {
		cur_ind ++;
	}

	if (cur_ind >= tour_isloaded.length) {
		return;
	} else {
		preload(cur_ind);
	}
}

function reload(imgnum) {
	if (imgnum > tour_photos.length) return;

	if (imgnum != last_loading_one) {
		return;
	} else {

		var cache  = new Image()
		cache.src=images[imgnum].src

		var onloadfunc = new Function("imgnum", "tour_isloaded["+ imgnum + "] = 1; preload(" + imgnum + 1 + ")");
		images[imgnum].onload = onloadfunc;

		images[imgnum].src=cache.src
	}

	if (loading_timer) {
		window.clearTimeout(loading_timer);
		loading_timer = 0;
	}
	loading_timer = window.setTimeout("check_images_loaded()", 5000)

}

function do_simple_show () {

	if ( ((OperatingSys == 'Mac') && (BrowserName == 'Netscape'))
			|| ((BrowserName == 'Netscape') && (BrowserVersion < 5))
			|| ((OperatingSys == 'Mac')
				&& (BrowserName == 'Microsoft Internet Explorer')
				&& (BrowserVersion < 4.5))
			|| (BrowserVersion < 4)
		) {
		return 1;
	}

	return 0;
}

check_images_loaded();

var firstImage = new Image();
firstImage.src = tour_photos[0];

// preload nav images
var backbtnimg = new Image; backbtnimg.src = "slideshow/slide_prev.gif";
var topbtnimg = new Image; topbtnimg.src = "slideshow/slide_top.gif";
var nextbtnimg = new Image; nextbtnimg.src = "slideshow/slide_next.gif";
var stopbtnimg = new Image; stopbtnimg.src = "slideshow/slide_stop.gif";
var startbtnimg = new Image; startbtnimg.src = "slideshow/slide_start.gif";


// called to write slideshow links on page
function slideshow_linkage () {

	var linktext = '';

// form without width and height works for Opera7 & IE5 under WIN
// doesn't maximize window for Netscape 4.5, 7(WIN) or Mozilla (Linux)

	if (do_simple_show()) {
		linktext = '<p><a href="Portfolio/slideshow/slideshow_simpler.html">View Slide Show</a>';

	} else {

		linktext = '<a href="Portfolio/slideshow/index.html?not_popup=1" '
		+ "onclick='return slideshow("
		+ '"Portfolio/slideshow/index.html"'
		+ ")'>View Slide Show</a>";

		// When uncommented, the line below gives access the simpler version
		// even with advanced browsers
		// linktext = linktext + '<p><a href="Portfolio/slideshow/slideshow_simpler.html">Simpler Slide Show</a>';

	}

	return linktext;
}


// this routine launches the slideshow window

function slideshow(pageurl) {
	var newwin;

	if (do_simple_show()) {

		newwin = window.open("slideshow/slideshow_simpler.html",'slideshowwin', 'directories=no,fullscreen=yes,type=fullWindow,left=0,top=0,screenX=0,screenY=0,location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbar=no');
		return false;

	} else if ((OperatingSys == 'Win') && ((BrowserName == 'Opera') || (BrowserName == 'Microsoft Internet Explorer')) ) {

		newwin = window.open(pageurl,'slideshowwin', 'directories=no,fullscreen=yes,type=fullWindow,left=0,top=0,screenX=0,screenY=0,location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbar=no');
		newwin.ispopup = 1;

	} else if (self.screen) {

		var width,height;
		width = self.screen.width;
		height = self.screen.height;
		newwin = window.open(pageurl,'slideshowwin', 'width=' + width + ',height=' + height + ',directories=no,fullscreen=yes,type=fullWindow,left=0,top=0,screenX=0,screenY=0,location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbar=no');

          newwin.ispopup = 1;

	} else {

		newwin = window.open(pageurl,'slideshowwin', 'directories=no,fullscreen=yes,type=fullWindow,left=0,top=0,screenX=0,screenY=0,location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbar=no');

          newwin.ispopup = 1;

	}
	return false;
}
