﻿// realestate things
var realestateImages = [];
var realestateImageI = -1;

var realestateHeadI = 0;

function realestateRegisterImage(src) {
	
	var o = {src: src, loaded: false};
	realestateImages.push(o);
	
	if(realestateImages.length <= 1) {
		// preload
		realestatePreloadImage(o);
	}
}

function realestatePreloadImage(o, callb) {
	var realestateImageContainer = $(".realestateImageContainer").eq(0);
	
	var imgLoader = new Image();
	imgLoader.onload = function() {
		o.loaded = true;
		// check if we need to add it to the dom
		if(realestateImageContainer.children(".realestateImageLarge[src='"+o.src+"']").length == 0) {
			// add
			var imgEl = $(document.createElement("img"));
			imgEl
				.attr("src", o.src)
				.attr("width", "576")
				.addClass("realestateImageLarge")
				.css("opacity", "0");
			realestateImageContainer.append(imgEl);
		}
		if(callb != null) callb();
	}
	imgLoader.src = o.src;
}

function realestateShowImage(i) {
	
	if(i >= 0 && i < realestateImages.length && i != realestateImageI) {
		var realestateImageContainer = $(".realestateImageContainer").eq(0);
		// check if loaded
		if(realestateImages[i].loaded) {
			// show
			var h = realestateImageContainer.children(".realestateImageLarge[src='"+realestateImages[i].src+"']").animate({opacity: '1'}).height();
			$(".realestateImageSelect").eq(0).children(".realestateImageSelector").eq(i).children("a").removeClass("button").addClass("buttonActive");
			
			if(realestateImageI >= 0) {
				realestateImageContainer.children(".realestateImageLarge[src='"+realestateImages[realestateImageI].src+"']").animate({opacity: '0'});
				$(".realestateImageSelect").eq(0).children(".realestateImageSelector").eq(realestateImageI).children("a").addClass("button").removeClass("buttonActive");
			}

			realestateImageContainer.animate({height: h + 'px'});
			$("#realestateHead").animate({height: (h+$("#realestateImageControls").height()+12) + 'px'});
			
			// adjust the parent's height
			if(visibleTab != null) $("#realestateHead").parent().eq(0).animate({height: (h+$("#realestateImageControls").height()+48+visibleTab.height()+$("#realestateTabsContainer").height()) + 'px'});

			realestateImageI = i;
			// load the next
			var next = i+1;
			if(next < realestateImages.length) 
				realestatePreloadImage(realestateImages[next]);
		}
		else {
			// no, preload and then call this function again
			realestatePreloadImage(realestateImages[i], function() {
				realestateShowImage(i);
			});
		}
	}
}

function realestateShowNextImage() {
	realestateShowImage(realestateImageI+1);
}

function realestateShowPreviousImage() {
	realestateShowImage(realestateImageI-1);
}

function realestateShowHead(i) {
	if(i == realestateHeadI) return;
	
	$(".realestateHeadContent").eq(i).css("visibility", "visible").animate({opacity: '1'});
	$(".realestateHeadContent").eq(realestateHeadI).animate({opacity: '0'}, function() {
		$(this).css("visibility", "hidden");
	});
	
	// adjust the size
	$("#realestateHead").animate({height: ($(".realestateHeadContent").eq(i).height()) + 'px'});
	
	realestateHeadI = i;
}

var visibleTab = null;
function realestateShowTab(id) {
	$(".realestateDescription").each(function() {
		var jthis = $(this);
		var op = jthis.css('opacity');
		if(op > 0) {
			// fade out
			jthis.animate({opacity:'0'}, function(){
				$(this).css('visibility', 'hidden');
			});
		}
	});
	
	// probably faster to select by id
	visibleTab = $("#realestateTab" + id).css('visibility','visible').animate({opacity:'1'});
	
	$(".tabActive").removeClass("tabActive").addClass("tab");
	$("#realestateTabH" + id).removeClass("tab").addClass("tabActive");
	
	// adjust the parent's height
	if(visibleTab != null) $("#realestateHead").parent().eq(0).animate({height: ($(".realestateImageContainer").eq(0).height()+$("#realestateImageControls").height()+48+visibleTab.height()+$("#realestateTabsContainer").height()) + 'px'});
}
